diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImpl.java index da849420b55..dc840c310e4 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImpl.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImpl.java @@ -1302,8 +1302,14 @@ private synchronized void updateApplyStatus(String propsId, Map private synchronized void updateReadPropertiesStatus(String propsId, long adler32Hash, long fileAdler32) { JsonObjectBuilder propertiesReadStatusBuilder = JsonLoader.createObjectBuilder(); + + // keep "alder32" & "fileAlder32" for backwards compatibility + propertiesReadStatusBuilder.add("alder32", String.valueOf(adler32Hash)); + propertiesReadStatusBuilder.add("fileAlder32", String.valueOf(fileAdler32)); + propertiesReadStatusBuilder.add("adler32", String.valueOf(adler32Hash)); propertiesReadStatusBuilder.add("fileAdler32", String.valueOf(fileAdler32)); + JsonObjectBuilder jsonObjectBuilder = JsonUtil.objectBuilderWithValueAtPath("properties/" + propsId, propertiesReadStatusBuilder.build()); JsonObject jsonStatus = getJsonStatus(); this.jsonStatus = JsonUtil.mergeAndUpdate(jsonStatus, jsonObjectBuilder.build()); diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/ReloadableProperties.java b/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/ReloadableProperties.java index 25ee246a73a..72c98b5ee7b 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/ReloadableProperties.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/ReloadableProperties.java @@ -112,6 +112,7 @@ protected String normaliseStringValue(String key) { private void updateStatus() { Map statusAttributes = new HashMap<>(); + statusAttributes.put("Alder32", String.valueOf(checksum)); statusAttributes.put("Adler32", String.valueOf(checksum)); statusAttributes.put("reloadTime", String.valueOf(reloadTime)); ServerStatus.getInstance().update(JAAS_COMPONENT + "/properties/" + key.file.getName(), statusAttributes); diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImplTest.java b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImplTest.java index ad129038f2f..88f909cd381 100644 --- a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImplTest.java +++ b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImplTest.java @@ -2455,6 +2455,7 @@ public void testTextPropertiesReaderFromFile() throws Exception { configuration.parseProperties(tmpFile.getAbsolutePath()); testSimpleConfig(configuration); + assertTrue(configuration.getStatus().contains("\"fileAlder32\":\"2235122473\"")); assertTrue(configuration.getStatus().contains("\"fileAdler32\":\"2235122473\"")); } @@ -2472,6 +2473,7 @@ public void testJsonPropertiesReaderFromFile() throws Exception { configuration.parseProperties(tmpFile.getAbsolutePath()); testSimpleConfig(configuration); + assertTrue(configuration.getStatus().contains("\"fileAlder32\":\"1145294432\"")); assertTrue(configuration.getStatus().contains("\"fileAdler32\":\"1145294432\"")); } @@ -2853,6 +2855,8 @@ private void testSimpleConfig(Configuration configuration) { assertEquals("va", configuration.getDivertConfigurations().get(0).getTransformerConfiguration().getProperties().get("a")); assertEquals("vbc", configuration.getDivertConfigurations().get(0).getTransformerConfiguration().getProperties().get("b.c")); + assertTrue(configuration.getStatus().contains("\"alder32")); + assertTrue(configuration.getStatus().contains("\"fileAlder32")); assertTrue(configuration.getStatus().contains("\"adler32")); assertTrue(configuration.getStatus().contains("\"fileAdler32")); } @@ -3055,6 +3059,7 @@ public void testStatusOnErrorApplyingProperties() throws Exception { assertTrue(jsonStatus.contains(UPDATED_SHA)); assertFalse(jsonStatus.contains(SHA)); + assertTrue(jsonStatus.contains("alder32")); assertTrue(jsonStatus.contains("adler32")); } diff --git a/docs/user-manual/versions.adoc b/docs/user-manual/versions.adoc index 852634f718c..87e3207309a 100644 --- a/docs/user-manual/versions.adoc +++ b/docs/user-manual/versions.adoc @@ -15,6 +15,18 @@ NOTE: Follow the general upgrade procedure outlined in the xref:upgrading.adoc#u :sectnums!: +== Version 2.56.0 + +https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315920&version=xxx[Full release notes] + +=== Highlights + +* + +=== Upgrading from 2.55.0 + +* Due to https://issues.apache.org/jira/browse/ARTEMIS-6128[ARTEMIS-6128] the `Alder32` and `fileAlder32` properties have been deprecated in favor of `Adler32` and `fileAdler32` respectively. + == Version 2.55.0 https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315920&version=12357054[Full release notes] diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/server/ConfigurationTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/server/ConfigurationTest.java index a1462385a36..bb558e42e11 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/server/ConfigurationTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/server/ConfigurationTest.java @@ -236,6 +236,11 @@ public void testPropertiesOnlyConfigReload() throws Exception { assertTrue(updatedStatus.contains(propsFile.getName())); JsonObject jsonStarted = JsonLoader.readObject(new StringReader(startedStatus)); JsonObject jsonUpdated = JsonLoader.readObject(new StringReader(updatedStatus)); + + String alder32Used = jsonStarted.getJsonObject("configuration").getJsonObject("properties").getJsonObject(propsFile.getName()).getString("fileAlder32"); + String alder32Updated = jsonUpdated.getJsonObject("configuration").getJsonObject("properties").getJsonObject(propsFile.getName()).getString("fileAlder32"); + assertNotEquals(alder32Used, alder32Updated); + String adler32Used = jsonStarted.getJsonObject("configuration").getJsonObject("properties").getJsonObject(propsFile.getName()).getString("fileAdler32"); String adler32Updated = jsonUpdated.getJsonObject("configuration").getJsonObject("properties").getJsonObject(propsFile.getName()).getString("fileAdler32"); assertNotEquals(adler32Used, adler32Updated);