{"push_id":990285532,"size":22,"distinct_size":1,"ref":"refs/heads/master","head":"2247c4abfbf70c4068d5ca4e5ba75320f87632ca","before":"d97d2864b7852439c07bb1a0dce625003d47c49c","commits":[{"sha":"6d079c69aa8557e24426487a8d04a8d792b42892","author":{"email":"761e2155c807c98ac95212b7909c99106084c765@diamond.ac.uk","name":"Richard Fearn"},"message":"Fix ScriptDrivenScannableMotionUnitsTest.testAsynchronousMoveTo\n\nUp to now a DummyMotor hasn't actually saved its position to file, as it's\nsupposed to. In ScriptDrivenScannableMotionUnitsTest, that means that in each\ntest method, the dummyMotor object starts at position 0.\n\nIf DummyMotor is changed to save its position, testAsynchronousMoveTo does a\nmove from 1.0 to 1.0 and assumes it will take at least 50 ms. This is unlikely\nto pass.\n\n1. Make testAsynchronousMoveTo move the scannable to 0 before moving to 1.0.\n   Then we know the move to 1.0 should take about one second.\n\n2. Replace 2-element positions with 1-element positions, as the underlying\n   scannable has one dimension.\n\n3. Add some explanation as to how this thing works!\n\nChange-Id: I7110aaac79d47deb2710e2bd86e45bf501aecb4d","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/6d079c69aa8557e24426487a8d04a8d792b42892"},{"sha":"7366cf52f2bf96d5e9746568aadafb66bc1b5e8a","author":{"email":"1dadf990c084c98723b08681b1cceb999997b04c@diamond.ac.uk","name":"Jonathan Blakes"},"message":"Merge \"Fix ScriptDrivenScannableMotionUnitsTest.testAsynchronousMoveTo\" into gda-8.44","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/7366cf52f2bf96d5e9746568aadafb66bc1b5e8a"},{"sha":"a1f9aa640dc923e9549267747f3f2f7c3fa943e5","author":{"email":"761e2155c807c98ac95212b7909c99106084c765@diamond.ac.uk","name":"Richard Fearn"},"message":"DummyMotor: save new position to file at end of move\n\nIn what appears to be rather large oversight in DummyMotor, the motor's new\nposition is not saved to file when the move is complete.\n\nAdd a savePosition call near the end of DummyMotor.run.\n\nThere are few places this call could go, but I've chosen to make the position\nsave part of the move, by doing it *before* moving/busy flags are cleared.\n\nChange-Id: I89428c5de6bb780485d4c74c959ea123fe28e9bd","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/a1f9aa640dc923e9549267747f3f2f7c3fa943e5"},{"sha":"f1f7907b09e56b359f286946015bfcfc21c1e9ea","author":{"email":"331937f0018274e41c7ee13c9e149ebb2dbb803c@diamond.ac.uk","name":"Iain Hall"},"message":"BLXXJ-353 Confirmation box to help prevent accidentally removing all plots.\n\nA confirmation dialogue box is now displayed when \"Remove all\" is selected from the scan tree context menu. This makes it harder to accidentally remove all the plots\n\n\nChange-Id: I975080d84264212eba017335aa53eb9fff7008fd","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/f1f7907b09e56b359f286946015bfcfc21c1e9ea"},{"sha":"1c34efa085815db8b41f2c4ec2be990dc16d603b","author":{"email":"4babd053f46ab36388d486670090101cfec2494f@diamond.ac.uk","name":"Paul Hathaway"},"message":"MXGDA-2647 make GDAMessage interfaces consistent\n\n- facilitate pattern for message specification\n\nChange-Id: I6fac9b43e4755339151b498d856bbfea2143e568","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/1c34efa085815db8b41f2c4ec2be990dc16d603b"},{"sha":"79bfbe7143a1eee114b0b47cf7f10f4f06437ad3","author":{"email":"ac1a0871f2b73b938324b6d5ec89ae1e44a5142c@diamond.ac.uk","name":"Mark Booth"},"message":"BLXV (8.51) Improve AbstractCollectionStrategyDecorator javadoc.\n\nChange-Id: I18aaedb6521ef6dab9aaa9079d2ef7306aaf52e2","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/79bfbe7143a1eee114b0b47cf7f10f4f06437ad3"},{"sha":"d4f48bc09281c1eadff8f5f3ba6332222e03194f","author":{"email":"ac1a0871f2b73b938324b6d5ec89ae1e44a5142c@diamond.ac.uk","name":"Mark Booth"},"message":"BLXV (8.51) Replace gda.util.Sleep with Thread.sleep.\n\nChange-Id: Ie6f1ede4af0632725e0e4df8a89f4bf9ea32bb42","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/d4f48bc09281c1eadff8f5f3ba6332222e03194f"},{"sha":"e3f5f22dcc733ef3f98ed7211ec81b19feb6dcf2","author":{"email":"ac1a0871f2b73b938324b6d5ec89ae1e44a5142c@diamond.ac.uk","name":"Mark Booth"},"message":"BLXV (8.51) Add script to send a notification to all client Jython consoles\n\nFor example:\n$ gdanotify host port \"text to send\"\n\nOn I1501 we use it in the gda_servers_pre_instance script:\n\n  $GDA_WORKSPACE_PARENT/$GDA_CORE_CONFIG_rel/bin/gdanotify ${CONTROL_MACHINE_NAME} 9999 \"WARNING: GDA Server restart requested.\\n\\nThis client will need to be restarted once the server restart has completed.\"\n\nChange-Id: Iea6e546e22665f9b878d2ee8e06ab47ce0b2bf15","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/e3f5f22dcc733ef3f98ed7211ec81b19feb6dcf2"},{"sha":"8e2ee3fc6db592b2afb0194a69a504eb5a63a8ee","author":{"email":"ac1a0871f2b73b938324b6d5ec89ae1e44a5142c@diamond.ac.uk","name":"Mark Booth"},"message":"Merge changes Ie6f1ede4,I18aaedb6 into gda-8.master\n\n* changes:\n  BLXV (8.51) Replace gda.util.Sleep with Thread.sleep.\n  BLXV (8.51) Improve AbstractCollectionStrategyDecorator javadoc.","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/8e2ee3fc6db592b2afb0194a69a504eb5a63a8ee"},{"sha":"a267f58605f16cdf754e28d77ca9239632378c16","author":{"email":"1dadf990c084c98723b08681b1cceb999997b04c@diamond.ac.uk","name":"Jonathan Blakes"},"message":"MsgBus: static methods allowing strong-typed inter-process publish-subscribe\n\ne.g. of Serializable Java objects between GDA server and clients,\nwith an elegant API that accommodates IDE-based introspection:\n\n  import static uk.ac.diamond.daq.msgbus.MsgBus.*;\n\n  class MotorPositionChanged implements Msg { // Serializable\n    public final String motorName; // immutable\n    public final double motorPosition; // no getter\n    public MotorPositionChanged(String name, double position) {\n        motorName = name;\n        motorPosition = position;\n    }\n  }\n\n  class Motor {\n    public void moveTo(double position) {\n      // move ...\n      publish(new MotorPositionChanged(motor.getName(), motor.getPosition());\n    }\n  }\n\n  import com.google.common.eventbus.Subscribe;\n\n  class X {\n    @Subscribe public void updateUi(MotorPositionChanged msg) {\n      updateUi(msg.motorName, msg.motorPosition);\n    }\n  }\n\n  class Y {\n    @Subscribe public void updateNexus(MotorPositionChanged msg) {\n      appendNexus(msg.motorName, msg.motorPosition);\n    }\n  }\n\nIf broadly adopted, searching the (Java & Jython) GDA codebase for,\ne.g. MotorPositionChanged references should actually reveal most/all\ntriggers/reactions to MotorPositionChanged events. Developers are\nencouraged to define and use their own more-specific msg types, such\nas GonioXPosition, BeamSizeX, PilatusGainTimeout, etc.\n\nOutside JUnit tests, MsgBus requires an ActiveMQ broker to be running;\nby default on localhost:61616, e.g.: 'module load activemq; activemq start'\n\nActiveMQ web interface would then be available at (e.g.):\n\n\thttp://admin:admin@localhost:8161/admin/\n\nMsgBus implementation is a eagerly-instantiated enum singleton which uses a\nGuava EventBus to deliver Serializable/Msg objects received from ActiveMQ, i.e.\npublished by any other MsgBus running in a process connected to the same broker.\n\nFeatures:\n\n- broker property is msgbus.broker.url\n- broker required by default (absence will halt Spring initialisation)\n- distinguish instances in different processes by logger named after JVM\n- tests plugin: uk.ac.diamond.daq.msgbus.test whose Javadoc links to\n  more thorough EventBus test suites (especially for AsyncEventBus).\n  - MsgBusTest also works without an embedded broker, when \"vm:...\" URL property\n    setting line removed (provided real thing running on default/custom URL)\n\n- uses standard .gitignore\n- uses standard .settings/ with format on save disabled\n  (patched build.properties to satisfy .settings warnings)\n- has buckminster.cspex in host plugin to materialize test fragment\n- has releng.ant in test fragment for Jenkins test runner\n\nChange-Id: I6f1ba785c8ca2d91f1df74263adedb3118ef8554","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/a267f58605f16cdf754e28d77ca9239632378c16"},{"sha":"d1dbe6e056e26f15bf0dcb16b4cf036f8fd304e6","author":{"email":"1dadf990c084c98723b08681b1cceb999997b04c@diamond.ac.uk","name":"Jonathan Blakes"},"message":"gda script: add gdalogpanel task\n\nChange-Id: If29dd4dec1df0c1fe690b72342b2a5f56dea9910","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/d1dbe6e056e26f15bf0dcb16b4cf036f8fd304e6"},{"sha":"4a486aa3bcb12bd1081d67db812c1c5ed9c6ebb9","author":{"email":"1dadf990c084c98723b08681b1cceb999997b04c@diamond.ac.uk","name":"Jonathan Blakes"},"message":"MsgBus: add publishAsJson(Msg) using Gson with className metadata\n\nChange-Id: I1193c0a4e8de7e59816424eb5757c52ecab535da","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/4a486aa3bcb12bd1081d67db812c1c5ed9c6ebb9"},{"sha":"fa032ad9c7ac39788209c34379af04275896767a","author":{"email":"1dadf990c084c98723b08681b1cceb999997b04c@diamond.ac.uk","name":"Jonathan Blakes"},"message":"Merge \"MsgBus: add publishAsJson(Msg) using Gson with className metadata\" into gda-8.44","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/fa032ad9c7ac39788209c34379af04275896767a"},{"sha":"1ff7f5ed5d40a9a5965a33cc231f8878a482045c","author":{"email":"4babd053f46ab36388d486670090101cfec2494f@diamond.ac.uk","name":"Paul Hathaway"},"message":"MXGDA-2647 EventbusFactory for access to multiple event buses\n\n- Use cases require publishing messages or events to more than one topic\n  or queue (eg analysis pipeline, scheduling agent).\n- Using a factory allows access to a bus by name, each of which could be\n  configured for alternate topic/queue or other broker connection\n- default bus is still acessible by not specifying a name.\n\nChange-Id: Ic2bc25bd180643f03697d37f583e0854acbe24d1","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/1ff7f5ed5d40a9a5965a33cc231f8878a482045c"},{"sha":"b3e3ada2fdde60c82d4250e0321362aa7a0aff72","author":{"email":"ac1a0871f2b73b938324b6d5ec89ae1e44a5142c@diamond.ac.uk","name":"Mark Booth"},"message":"Merge \"BLXV (8.51) Add script to send a notification to all client Jython consoles\" into gda-8.master","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/b3e3ada2fdde60c82d4250e0321362aa7a0aff72"},{"sha":"8dff563eeab66fd119966c6a0831e805c71c7e9f","author":{"email":"1dadf990c084c98723b08681b1cceb999997b04c@diamond.ac.uk","name":"Jonathan Blakes"},"message":"MsgBus: make projects consistent with new MUSE projects\n\nChange-Id: Ib29776c5e3f3e3501f3eeec80a187429dcf661c6","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/8dff563eeab66fd119966c6a0831e805c71c7e9f"},{"sha":"56147b992bf7577a6c99f5b2a8e0ca7b2e9e760d","author":{"email":"380658849ab6a17359f8a6a98bd9690e10cd57df@diamond.ac.uk","name":"Charles Mita"},"message":"Remove workaround to HDF5 chunking bug.\n\nReverts commit 0a1d8dd11793af24ad0ef8bebd885beb28e80fa1. The HDF5\nbug has since been fixed.\n\nChange-Id: I074277f5dba44162367806c43b6e2b70302dc05d","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/56147b992bf7577a6c99f5b2a8e0ca7b2e9e760d"},{"sha":"e7b7d2e829c44607829acc3809ff082875d0dd3b","author":{"email":"1dadf990c084c98723b08681b1cceb999997b04c@diamond.ac.uk","name":"Jonathan Blakes"},"message":"MXGDA-2695 Fix materialization dependency on msgbus.test\n\nChange-Id: I0868658263ee7aa71bccbf34b836ada5a8477683","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/e7b7d2e829c44607829acc3809ff082875d0dd3b"},{"sha":"cada8a4097a7b4e06f6935dce3fc4b52af7dc51e","author":{"email":"380658849ab6a17359f8a6a98bd9690e10cd57df@diamond.ac.uk","name":"Charles Mita"},"message":"GDA-6253 - clear TwoDScanPlotter in atScanEnd if able.\n\nIf the property gda.scan.endscan.neworder is true then the plotter is\nable to clear itself in atScanEnd since the pipeline has been shutdown.\nThis allows the case when scans are ended early to be handled more\ngracefully.\n\nChange-Id: I086bbad6778bacb76539e9a6bcc94708168f5d5f","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/cada8a4097a7b4e06f6935dce3fc4b52af7dc51e"},{"sha":"700797f94eda275d20e7f7d8fc9aaafae81f68fb","author":{"email":"82dca48737570b4f49d59ca286b5034c15e72ebc@diamond.ac.uk","name":"Matthew Dickie"},"message":"import javax.jms package\n\nChange-Id: I56e7d99417744caf6d319f269967dda9641e2cca","distinct":false,"url":"https://api.github.com/repos/openGDA/gda-core/commits/700797f94eda275d20e7f7d8fc9aaafae81f68fb"}]}