diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 79ade6a101..b6e2d2eec8 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -7,7 +7,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
- python-version: '3.11'
+ python-version: '3.12'
- name: OPI checker dependencies
run: python -m pip install -r base/uk.ac.stfc.isis.ibex.opis/requirements.txt
- name: Run OPI checker
@@ -21,7 +21,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
- python-version: '3.11'
+ python-version: '3.12'
- name: Run check_build
working-directory: ./build
run: python check_build.py ../base
@@ -32,7 +32,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
- python-version: '3.11'
+ python-version: '3.12'
- name: Install dependencies
run: python -m pip install -r ./base/uk.ac.stfc.isis.ibex.scriptgenerator/python_support/requirements.txt
- name: Run scriptgenerator tests
diff --git a/base/uk.ac.stfc.isis.ibex.activemq/META-INF/MANIFEST.MF b/base/uk.ac.stfc.isis.ibex.activemq/META-INF/MANIFEST.MF
index d366ba686d..8edba051e4 100644
--- a/base/uk.ac.stfc.isis.ibex.activemq/META-INF/MANIFEST.MF
+++ b/base/uk.ac.stfc.isis.ibex.activemq/META-INF/MANIFEST.MF
@@ -15,6 +15,6 @@ Require-Bundle: uk.ac.stfc.isis.ibex.logger,
org.eclipse.ui;bundle-version="3.8.2",
uk.ac.stfc.isis.ibex.instrument;bundle-version="1.0.0",
org.eclipse.ui.workbench,
- wrapped.org.apache.activemq.activemq-all;bundle-version="5.18.6"
+ wrapped.org.apache.activemq.activemq-all;bundle-version="5.19.0"
Bundle-ClassPath: .
Automatic-Module-Name: uk.ac.stfc.isis.ibex.activemq
diff --git a/base/uk.ac.stfc.isis.ibex.client.tycho.parent/pom.xml b/base/uk.ac.stfc.isis.ibex.client.tycho.parent/pom.xml
index c10c3a07f3..0ad834963b 100644
--- a/base/uk.ac.stfc.isis.ibex.client.tycho.parent/pom.xml
+++ b/base/uk.ac.stfc.isis.ibex.client.tycho.parent/pom.xml
@@ -9,8 +9,8 @@
4.0.9
https://oss.sonatype.org/content/groups/public/
- http://download.eclipse.org/releases/2024-09
- http://download.eclipse.org/eclipse/updates/4.33
+ http://download.eclipse.org/releases/2024-12
+ http://download.eclipse.org/eclipse/updates/4.34
UTF-8
diff --git a/base/uk.ac.stfc.isis.ibex.feature.css/feature.xml b/base/uk.ac.stfc.isis.ibex.feature.css/feature.xml
index 412e3250c1..6d6a99b2d1 100644
--- a/base/uk.ac.stfc.isis.ibex.feature.css/feature.xml
+++ b/base/uk.ac.stfc.isis.ibex.feature.css/feature.xml
@@ -104,10 +104,6 @@
id="org.csstudio.autocomplete"
version="0.0.0"/>
-
-
@@ -132,10 +128,6 @@
id="org.tukaani.xz"
version="0.0.0"/>
-
-
@@ -720,4 +712,8 @@
id="jakarta.annotation-api"
version="0.0.0"/>
+
+
diff --git a/base/uk.ac.stfc.isis.ibex.opis/check_opi_format.py b/base/uk.ac.stfc.isis.ibex.opis/check_opi_format.py
index e88218a6ee..c3c2332a58 100644
--- a/base/uk.ac.stfc.isis.ibex.opis/check_opi_format.py
+++ b/base/uk.ac.stfc.isis.ibex.opis/check_opi_format.py
@@ -13,7 +13,6 @@
from check_OPI_format_utils.container import get_items_not_in_grouping_container
from check_OPI_format_utils.font import get_incorrect_fonts
from check_OPI_format_utils.position import get_widgets_outside_of_boundary
-from xmlrunner import XMLTestRunner
from check_OPI_format_utils.xy_graph import get_traces_with_different_buffer_sizes, get_trigger_pv
from check_opi_format_tests import TestCheckOpiFormatMethods
@@ -214,7 +213,7 @@ def test_GIVEN_a_label_THEN_it_has_correct_font(self):
def self_valid():
self_test_suite = unittest.TestSuite()
self_test_suite.addTests(loader.loadTestsFromTestCase(TestCheckOpiFormatMethods))
- runner = XMLTestRunner(output=os.path.join(logs_dir, "check_opi_format"), stream=sys.stdout)
+ runner = unittest.TextTestRunner()
return runner.run(self_test_suite).wasSuccessful()
if not self_valid():
@@ -245,14 +244,14 @@ def self_valid():
suite.addTests([CheckStrictOpiFormat(test, root) for test in loader.getTestCaseNames(CheckStrictOpiFormat)])
else:
suite.addTests([CheckOpiFormat(test, root) for test in loader.getTestCaseNames(CheckOpiFormat)])
- runner = XMLTestRunner(output=os.path.join(logs_dir, filename), stream=sys.stdout)
+ runner = unittest.TextTestRunner()
return_values.append(runner.run(suite).wasSuccessful())
# for the opi_info.xml check
print("Testing '{}'".format(os.path.join(root_dir, "opi_info.xml")))
suite = unittest.TestSuite()
suite.addTests(loader.loadTestsFromTestCase(TestOpiInfo))
- runner = XMLTestRunner(output=os.path.join(logs_dir, "TestOpiInfo"), stream=sys.stdout)
+ runner = unittest.TextTestRunner()
return_values.append(runner.run(suite).wasSuccessful())
sys.exit(False in return_values)
diff --git a/base/uk.ac.stfc.isis.ibex.opis/check_opi_format_tests.py b/base/uk.ac.stfc.isis.ibex.opis/check_opi_format_tests.py
index 812ed3c153..8c1cbd85c8 100644
--- a/base/uk.ac.stfc.isis.ibex.opis/check_opi_format_tests.py
+++ b/base/uk.ac.stfc.isis.ibex.opis/check_opi_format_tests.py
@@ -1,7 +1,6 @@
import unittest
from hamcrest import *
from lxml import etree
-import xmlrunner
import sys
from check_OPI_format_utils.colour_checker import check_specific_isis_colours, check_any_isis_colour, \
@@ -579,4 +578,4 @@ def test_GIVEN_a_colourless_grouping_container_inside_a_tabbed_container_THEN_no
if __name__ == '__main__':
- unittest.main(testRunner=xmlrunner.XMLTestRunner(output='test-reports', stream=sys.stdout))
+ unittest.main()
diff --git a/base/uk.ac.stfc.isis.ibex.opis/requirements.txt b/base/uk.ac.stfc.isis.ibex.opis/requirements.txt
index 310d95617a..a3cd9ddfea 100644
--- a/base/uk.ac.stfc.isis.ibex.opis/requirements.txt
+++ b/base/uk.ac.stfc.isis.ibex.opis/requirements.txt
@@ -1,4 +1,3 @@
lxml
pyhamcrest
pywin32
-xmlrunner
diff --git a/base/uk.ac.stfc.isis.ibex.targetplatform/targetplatform.target b/base/uk.ac.stfc.isis.ibex.targetplatform/targetplatform.target
index 7ecfd74ea0..c5cdca2de8 100644
--- a/base/uk.ac.stfc.isis.ibex.targetplatform/targetplatform.target
+++ b/base/uk.ac.stfc.isis.ibex.targetplatform/targetplatform.target
@@ -31,14 +31,14 @@
-
-
-
-
+
+
+
+
-
+
@@ -53,7 +53,7 @@
-
+
@@ -99,7 +99,7 @@
org.apache.logging.log4j
log4j-core
- 2.24.1
+ 2.24.3
jar
@@ -109,7 +109,7 @@
org.apache.logging.log4j
log4j-api
- 2.24.1
+ 2.24.3
jar
@@ -119,7 +119,7 @@
org.apache.activemq
activemq-all
- 5.18.6
+ 5.19.0
jar
@@ -139,7 +139,7 @@
commons-codec
commons-codec
- 1.17.1
+ 1.18.0
jar
@@ -149,7 +149,7 @@
joda-time
joda-time
- 2.13.0
+ 2.13.1
jar
@@ -169,7 +169,7 @@
org.mockito
mockito-core
- 5.14.0
+ 5.16.1
jar
@@ -179,7 +179,7 @@
net.sf.py4j
py4j
- 0.10.9.7
+ 0.10.9.9
jar
@@ -209,7 +209,7 @@
com.google.code.gson
gson
- 2.11.0
+ 2.12.1
jar
@@ -259,7 +259,7 @@
com.google.guava
guava
- 33.3.1-jre
+ 33.4.0-jre
jar
diff --git a/base/uk.ac.stfc.isis.ibex.ui.configserver.tests/src/uk/ac/stfc/isis/ibex/ui/configserver/tests/CheckboxLabelProviderTest.java b/base/uk.ac.stfc.isis.ibex.ui.configserver.tests/src/uk/ac/stfc/isis/ibex/ui/configserver/tests/CheckboxLabelProviderTest.java
index 3f94ae82bc..2bee9b8a0b 100644
--- a/base/uk.ac.stfc.isis.ibex.ui.configserver.tests/src/uk/ac/stfc/isis/ibex/ui/configserver/tests/CheckboxLabelProviderTest.java
+++ b/base/uk.ac.stfc.isis.ibex.ui.configserver.tests/src/uk/ac/stfc/isis/ibex/ui/configserver/tests/CheckboxLabelProviderTest.java
@@ -26,6 +26,7 @@
import static org.mockito.Mockito.*;
import java.util.List;
+import java.util.stream.Stream;
import org.eclipse.core.databinding.observable.Realm;
import org.eclipse.core.databinding.observable.map.WritableMap;
@@ -211,16 +212,16 @@ public void GIVEN_table_WHEN_checkboxes_updated_then_table_sorted_THEN_checkbox_
public void GIVEN_checkbox_with_selection_adapters_WHEN_clear_checkbox_selection_listeners_THEN_selection_adapters_removed() {
Button mockCheckBox = mock(Button.class);
- TypedListener[] checkBoxListeners = new TypedListener[2];
- checkBoxListeners[0] = new TypedListener(modifiedCheckboxLabelProvider.new CheckboxSelectionAdapter(mockCheckBox, testModels[0]));
- checkBoxListeners[1] = new TypedListener(modifiedCheckboxLabelProvider.new CheckboxSelectionAdapter(mockCheckBox, testModels[1]));
+ var checkBoxListeners = new CheckboxSelectionAdapter[2];
+ checkBoxListeners[0] = modifiedCheckboxLabelProvider.new CheckboxSelectionAdapter(mockCheckBox, testModels[0]);
+ checkBoxListeners[1] = modifiedCheckboxLabelProvider.new CheckboxSelectionAdapter(mockCheckBox, testModels[1]);
- when(mockCheckBox.getListeners(SWT.Selection)).thenReturn(checkBoxListeners);
+ when(mockCheckBox.getTypedListeners(SWT.Selection, CheckboxSelectionAdapter.class)).thenReturn(Stream.of(checkBoxListeners));
CheckboxLabelProvider.clearCheckBoxSelectListeners(mockCheckBox);
- verify(mockCheckBox, times(1)).removeSelectionListener((SelectionListener) checkBoxListeners[0].getEventListener());
- verify(mockCheckBox, times(1)).removeSelectionListener((SelectionListener) checkBoxListeners[1].getEventListener());
+ verify(mockCheckBox, times(1)).removeSelectionListener((SelectionListener) checkBoxListeners[0]);
+ verify(mockCheckBox, times(1)).removeSelectionListener((SelectionListener) checkBoxListeners[1]);
}
@Test
diff --git a/base/uk.ac.stfc.isis.ibex.ui.graphing/src/uk/ac/stfc/isis/ibex/ui/graphing/websocketview/MatplotlibWebsocketEndpoint.java b/base/uk.ac.stfc.isis.ibex.ui.graphing/src/uk/ac/stfc/isis/ibex/ui/graphing/websocketview/MatplotlibWebsocketEndpoint.java
index 78aff9ef7b..6efe4a5755 100644
--- a/base/uk.ac.stfc.isis.ibex.ui.graphing/src/uk/ac/stfc/isis/ibex/ui/graphing/websocketview/MatplotlibWebsocketEndpoint.java
+++ b/base/uk.ac.stfc.isis.ibex.ui.graphing/src/uk/ac/stfc/isis/ibex/ui/graphing/websocketview/MatplotlibWebsocketEndpoint.java
@@ -254,7 +254,8 @@ public void cursorPositionChanged(final MatplotlibCursorPosition position) {
final Map event = Map.of(
"x", position.x(),
"y", position.y(),
- "button", 0,
+ "button", 0,
+ "buttons", 0,
"guiEvent", new HashMap<>(),
"modifiers", new ArrayList<>()
);
@@ -285,7 +286,8 @@ public void notifyButtonPress(final MatplotlibCursorPosition position, Matplotli
final Map event = Map.of(
"x", position.x(),
"y", position.y(),
- "button", 0,
+ "button", 0,
+ "buttons", 0,
"guiEvent", new HashMap<>(),
"modifiers", new ArrayList<>()
);
diff --git a/base/uk.ac.stfc.isis.ibex.ui.widgets/.settings/org.eclipse.jdt.core.prefs b/base/uk.ac.stfc.isis.ibex.ui.widgets/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f4d933e4eb..0000000000
--- a/base/uk.ac.stfc.isis.ibex.ui.widgets/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
-org.eclipse.jdt.core.compiler.compliance=11
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=11
diff --git a/base/uk.ac.stfc.isis.ibex.ui.widgets/src/uk/ac/stfc/isis/ibex/ui/widgets/CheckboxLabelProvider.java b/base/uk.ac.stfc.isis.ibex.ui.widgets/src/uk/ac/stfc/isis/ibex/ui/widgets/CheckboxLabelProvider.java
index 40a2b1c863..6f435a2c07 100644
--- a/base/uk.ac.stfc.isis.ibex.ui.widgets/src/uk/ac/stfc/isis/ibex/ui/widgets/CheckboxLabelProvider.java
+++ b/base/uk.ac.stfc.isis.ibex.ui.widgets/src/uk/ac/stfc/isis/ibex/ui/widgets/CheckboxLabelProvider.java
@@ -29,10 +29,7 @@
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.TypedListener;
/**
* A LabelProvider that adds a check box to a cell in a table.
@@ -185,16 +182,8 @@ private void resetCheckBoxListeners(boolean doUpdate, Button checkBox, T model)
* will remove.
*/
public static void clearCheckBoxSelectListeners(Button checkBox) {
- for (Listener listener: checkBox.getListeners(SWT.Selection)) {
- if (listener instanceof TypedListener) {
- TypedListener typedListener = (TypedListener) listener;
-
- if (typedListener.getEventListener() instanceof CheckboxLabelProvider.CheckboxSelectionAdapter) {
-
- checkBox.removeSelectionListener((SelectionListener)
- typedListener.getEventListener());
- }
- }
+ for (var listener: checkBox.getTypedListeners(SWT.Selection, CheckboxLabelProvider.CheckboxSelectionAdapter.class).toList()) {
+ checkBox.removeSelectionListener(listener);
}
}
diff --git a/build/build.bat b/build/build.bat
index 210f017da7..c2ae06b7c6 100644
--- a/build/build.bat
+++ b/build/build.bat
@@ -2,7 +2,7 @@ setlocal
cd /d %~dp0
REM We bundle our own JRE with the client, this is where it is
-set "JRELOCATION=\\isis.cclrc.ac.uk\inst$\Kits$\CompGroup\ICP\ibex_client_jdk-21.0.5+11"
+set "JRELOCATION=\\isis.cclrc.ac.uk\inst$\Kits$\CompGroup\ICP\ibex_client_jdk-21.0.6+7"
set "LOCAL_JRE_LOCATION=%~dp0jdk"
set "TARGET_DIR=%3"
diff --git a/build/build_script_generator.bat b/build/build_script_generator.bat
index 4ce3c2aab1..7effcba64b 100644
--- a/build/build_script_generator.bat
+++ b/build/build_script_generator.bat
@@ -2,7 +2,7 @@ setlocal
cd /d %~dp0
REM We bundle our own JRE with the client, this is where it is
-set "JRELOCATION=\\isis.cclrc.ac.uk\inst$\Kits$\CompGroup\ICP\ibex_client_jdk-21.0.5+11"
+set "JRELOCATION=\\isis.cclrc.ac.uk\inst$\Kits$\CompGroup\ICP\ibex_client_jdk-21.0.6+7"
set "LOCAL_JRE_LOCATION=%~dp0\jdk"
set "TARGET_DIR=%2"
if "%TARGET_DIR%" == "" (
diff --git a/build/copy_in_maven.bat b/build/copy_in_maven.bat
index 41fadca7e5..418372db6d 100644
--- a/build/copy_in_maven.bat
+++ b/build/copy_in_maven.bat
@@ -1,5 +1,5 @@
@echo COPY_IN_MAVEN: Mirroring from local ISIS share
-robocopy "\\isis.cclrc.ac.uk\inst$\kits$\CompGroup\ICP\Binaries\maven-3.9.5" "%~dp0maven" /MT /NP /NFL /NDL /MIR /R:2 /LOG:"%~dp0ICP_Binaries_maven.log"
+robocopy "\\isis.cclrc.ac.uk\inst$\kits$\CompGroup\ICP\Binaries\maven-3.9.9" "%~dp0maven" /MT /NP /NFL /NDL /MIR /R:2 /LOG:"%~dp0ICP_Binaries_maven.log"
set errcode=%ERRORLEVEL%
if %errcode% GEQ 4 (
type "%~dp0ICP_Binaries_maven.log"