This is an automated email from the ASF dual-hosted git repository.
tabish pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
The following commit(s) were added to refs/heads/main by this push:
new 54d2232a75 ARTEMIS-5520 Fix mapped broker properties with dots
54d2232a75 is described below
commit 54d2232a75330a17380267dd81fe3f9f843b13d5
Author: Domenico Francesco Bruscino <[email protected]>
AuthorDate: Thu Jun 5 08:16:13 2025 +0200
ARTEMIS-5520 Fix mapped broker properties with dots
---
.../core/config/impl/ConfigurationImpl.java | 11 ++++--
.../core/config/impl/ConfigurationImplTest.java | 40 ++++++++++++++++++++--
2 files changed, 47 insertions(+), 4 deletions(-)
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 4063c29bda..537a599fff 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
@@ -132,6 +132,7 @@ import
org.apache.activemq.artemis.core.settings.impl.ResourceLimitSettings;
import org.apache.activemq.artemis.json.JsonArrayBuilder;
import org.apache.activemq.artemis.json.JsonObject;
import org.apache.activemq.artemis.json.JsonObjectBuilder;
+import org.apache.activemq.artemis.json.JsonString;
import org.apache.activemq.artemis.json.JsonValue;
import org.apache.activemq.artemis.utils.ByteUtil;
import org.apache.activemq.artemis.utils.ClassloadingUtil;
@@ -3671,7 +3672,13 @@ public class ConfigurationImpl implements Configuration,
Serializable {
if (!collections.isEmpty()) {
Pair<String, Object> collectionInfo = collections.pop();
}
- super.setProperty(bean, name, value);
+
+ if (bean instanceof Map) {
+ String property = getResolver().getProperty(name);
+ this.setPropertyOfMapBean((Map)bean, property, value);
+ } else {
+ super.setProperty(bean, name, value);
+ }
}
// need to track collections such that we can locate or create entries
on demand
@@ -3964,7 +3971,7 @@ public class ConfigurationImpl implements Configuration,
Serializable {
loadJsonObject(keySurroundString, propertyKey + ".",
jsonValue.asJsonObject());
break;
case STRING:
- put(propertyKey, jsonObject.getString(jsonKey));
+ put(propertyKey, ((JsonString)jsonValue).getString());
break;
case NUMBER:
case TRUE:
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 263e6155f7..93b5dfd1d0 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
@@ -2335,7 +2335,7 @@ public class ConfigurationImplTest extends
AbstractConfigurationTestBase {
configuration.parseProperties(tmpFile.getAbsolutePath());
testSimpleConfig(configuration);
-
assertTrue(configuration.getStatus().contains("\"fileAlder32\":\"2885074053\""));
+
assertTrue(configuration.getStatus().contains("\"fileAlder32\":\"2235122473\""));
}
@Test
@@ -2352,7 +2352,7 @@ public class ConfigurationImplTest extends
AbstractConfigurationTestBase {
configuration.parseProperties(tmpFile.getAbsolutePath());
testSimpleConfig(configuration);
-
assertTrue(configuration.getStatus().contains("\"fileAlder32\":\"3147794929\""));
+
assertTrue(configuration.getStatus().contains("\"fileAlder32\":\"1145294432\""));
}
@Test
@@ -2517,6 +2517,30 @@ public class ConfigurationImplTest extends
AbstractConfigurationTestBase {
configObjectBuilder.add("clusterConfigurations",
clusterConfigObjectBuilder.build());
configObjectBuilder.add("criticalAnalyzerPolicy", "SHUTDOWN");
+
+ JsonObjectBuilder divertConfigObjectBuilder =
JsonLoader.createObjectBuilder();
+ {
+ JsonObjectBuilder divertObjectBuilder =
JsonLoader.createObjectBuilder();
+ {
+ divertObjectBuilder.add("address", "testAddress");
+ divertObjectBuilder.add("forwardingAddress", "forwardAddress");
+
+ JsonObjectBuilder transformerConfigObjectBuilder =
JsonLoader.createObjectBuilder();
+ {
+ transformerConfigObjectBuilder.add("className",
"s.o.m.e.class");
+
+ JsonObjectBuilder transformerPropertiesObjectBuilder =
JsonLoader.createObjectBuilder();
+ {
+ transformerPropertiesObjectBuilder.add("a", "va");
+ transformerPropertiesObjectBuilder.add("b.c", "vbc");
+ }
+ transformerConfigObjectBuilder.add("properties",
transformerPropertiesObjectBuilder.build());
+ }
+ divertObjectBuilder.add("transformerConfiguration",
transformerConfigObjectBuilder.build());
+ }
+ divertConfigObjectBuilder.add("my-divert",
divertObjectBuilder.build());
+ }
+ configObjectBuilder.add("divertConfigurations",
divertConfigObjectBuilder.build());
}
return configObjectBuilder.build();
@@ -2535,6 +2559,11 @@ public class ConfigurationImplTest extends
AbstractConfigurationTestBase {
textProperties.add("clusterConfigurations.cc.name=cc");
textProperties.add("clusterConfigurations.cc.messageLoadBalancingType=OFF_WITH_REDISTRIBUTION");
textProperties.add("criticalAnalyzerPolicy=SHUTDOWN");
+ textProperties.add("divertConfigurations.my-divert.address=testAddress");
+
textProperties.add("divertConfigurations.my-divert.forwardingAddress=forwardAddress");
+
textProperties.add("divertConfigurations.my-divert.transformerConfiguration.className=s.o.m.e.class");
+
textProperties.add("divertConfigurations.my-divert.transformerConfiguration.properties.a=va");
+
textProperties.add("divertConfigurations.my-divert.transformerConfiguration.properties.\"b.c\"=vbc");
return textProperties;
}
@@ -2556,6 +2585,13 @@ public class ConfigurationImplTest extends
AbstractConfigurationTestBase {
assertEquals(MessageLoadBalancingType.OFF_WITH_REDISTRIBUTION,
configuration.getClusterConfigurations().get(0).getMessageLoadBalancingType());
assertEquals(CriticalAnalyzerPolicy.SHUTDOWN,
configuration.getCriticalAnalyzerPolicy());
+ assertEquals("my-divert",
configuration.getDivertConfigurations().get(0).getName());
+ assertEquals("testAddress",
configuration.getDivertConfigurations().get(0).getAddress());
+ assertEquals("forwardAddress",
configuration.getDivertConfigurations().get(0).getForwardingAddress());
+ assertEquals("s.o.m.e.class",
configuration.getDivertConfigurations().get(0).getTransformerConfiguration().getClassName());
+ 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"));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact