From e5e95f4a182d442bd5c1b4c64906c39fc2ae662f Mon Sep 17 00:00:00 2001 From: Domenico Francesco Bruscino Date: Tue, 18 Jun 2024 13:24:31 +0200 Subject: [PATCH] ARTEMIS-4818 Support classes with .class in the package --- .../core/config/impl/ConfigurationImpl.java | 7 +++---- .../core/config/impl/ConfigurationImplTest.java | 14 ++++++++++++++ 2 files changed, 17 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 2cddc81389..9fb628b32e 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 @@ -958,13 +958,12 @@ public class ConfigurationImpl implements Configuration, Serializable { updateApplyStatus(propsId, errors); } - private static boolean isClassProperty(String property) { + protected static boolean isClassProperty(String property) { return property.endsWith(PROPERTY_CLASS_SUFFIX); } - private static String extractPropertyClassName(String property) { - int propertyClassSuffixIndex = property.indexOf(PROPERTY_CLASS_SUFFIX); - return property.substring(0, propertyClassSuffixIndex); + protected static String extractPropertyClassName(String property) { + return property.substring(0, property.length() - PROPERTY_CLASS_SUFFIX.length()); } private void trackError(HashMap errors, Map.Entry entry, Throwable oops) { 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 2de1825a83..e8e8281283 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 @@ -2331,6 +2331,20 @@ public class ConfigurationImplTest extends AbstractConfigurationTestBase { assertEquals(1, dummyConfig.getChildConfig().getChildConfig().getChildConfig().getIntProperty()); } + @Test + public void testIsClass() throws Exception { + assertTrue(ConfigurationImpl.isClassProperty("test.class")); + assertTrue(ConfigurationImpl.isClassProperty("foo.class.bar.class")); + assertFalse(ConfigurationImpl.isClassProperty("test")); + assertFalse(ConfigurationImpl.isClassProperty("foo.class.bar")); + } + + @Test + public void testExtractPropertyClassName() throws Exception { + assertEquals("test", ConfigurationImpl.extractPropertyClassName("test.class")); + assertEquals("foo.class.bar", ConfigurationImpl.extractPropertyClassName("foo.class.bar.class")); + } + public static class DummyConfig { private int intProperty;