ARTEMIS-3891 - allow TransformerConfig creation via properties
This commit is contained in:
parent
4a4765c39c
commit
1f2543029c
|
@ -55,6 +55,7 @@ import org.apache.activemq.artemis.api.core.Pair;
|
||||||
import org.apache.activemq.artemis.api.core.QueueConfiguration;
|
import org.apache.activemq.artemis.api.core.QueueConfiguration;
|
||||||
import org.apache.activemq.artemis.api.core.SimpleString;
|
import org.apache.activemq.artemis.api.core.SimpleString;
|
||||||
import org.apache.activemq.artemis.api.core.TransportConfiguration;
|
import org.apache.activemq.artemis.api.core.TransportConfiguration;
|
||||||
|
import org.apache.activemq.artemis.core.config.TransformerConfiguration;
|
||||||
import org.apache.activemq.artemis.core.config.routing.ConnectionRouterConfiguration;
|
import org.apache.activemq.artemis.core.config.routing.ConnectionRouterConfiguration;
|
||||||
import org.apache.activemq.artemis.core.config.amqpBrokerConnectivity.AMQPBrokerConnectConfiguration;
|
import org.apache.activemq.artemis.core.config.amqpBrokerConnectivity.AMQPBrokerConnectConfiguration;
|
||||||
import org.apache.activemq.artemis.core.config.BridgeConfiguration;
|
import org.apache.activemq.artemis.core.config.BridgeConfiguration;
|
||||||
|
@ -541,6 +542,14 @@ public class ConfigurationImpl implements Configuration, Serializable {
|
||||||
}
|
}
|
||||||
}, NamedPropertyConfiguration.class);
|
}, NamedPropertyConfiguration.class);
|
||||||
|
|
||||||
|
beanUtils.getConvertUtils().register(new Converter() {
|
||||||
|
@Override
|
||||||
|
public <T> T convert(Class<T> type, Object value) {
|
||||||
|
TransformerConfiguration instance = new TransformerConfiguration(value.toString());
|
||||||
|
return (T) instance;
|
||||||
|
}
|
||||||
|
}, TransformerConfiguration.class);
|
||||||
|
|
||||||
// support 25K or 25m etc like xml config
|
// support 25K or 25m etc like xml config
|
||||||
beanUtils.getConvertUtils().register(new Converter() {
|
beanUtils.getConvertUtils().register(new Converter() {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -617,19 +617,7 @@ public class ConfigurationImplTest extends ActiveMQTestBase {
|
||||||
public void testSetConnectionRoutersPolicyConfiguration() throws Throwable {
|
public void testSetConnectionRoutersPolicyConfiguration() throws Throwable {
|
||||||
ConfigurationImpl configuration = new ConfigurationImpl();
|
ConfigurationImpl configuration = new ConfigurationImpl();
|
||||||
|
|
||||||
Properties insertionOrderedProperties = new Properties() {
|
Properties insertionOrderedProperties = new InsertionOrderedProperties();
|
||||||
final LinkedHashMap<Object, Object> orderedMap = new LinkedHashMap<>();
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object put(Object key, Object value) {
|
|
||||||
return orderedMap.put(key.toString(), value.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Set<Map.Entry<Object, Object>> entrySet() {
|
|
||||||
return orderedMap.entrySet();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
insertionOrderedProperties.put("connectionRouters.autoShard.localTargetFilter", "NULL|$STATEFUL_SET_ORDINAL");
|
insertionOrderedProperties.put("connectionRouters.autoShard.localTargetFilter", "NULL|$STATEFUL_SET_ORDINAL");
|
||||||
insertionOrderedProperties.put("connectionRouters.autoShard.keyType", KeyType.CLIENT_ID);
|
insertionOrderedProperties.put("connectionRouters.autoShard.keyType", KeyType.CLIENT_ID);
|
||||||
insertionOrderedProperties.put("connectionRouters.autoShard.policyConfiguration", ConsistentHashModuloPolicy.NAME);
|
insertionOrderedProperties.put("connectionRouters.autoShard.policyConfiguration", ConsistentHashModuloPolicy.NAME);
|
||||||
|
@ -764,6 +752,37 @@ public class ConfigurationImplTest extends ActiveMQTestBase {
|
||||||
Assert.assertEquals(SimpleString.toSimpleString("moreImportant"), configuration.getAddressSettings().get("Name.With.Dots").getExpiryAddress());
|
Assert.assertEquals(SimpleString.toSimpleString("moreImportant"), configuration.getAddressSettings().get("Name.With.Dots").getExpiryAddress());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDivertViaProperties() throws Exception {
|
||||||
|
ConfigurationImpl configuration = new ConfigurationImpl();
|
||||||
|
|
||||||
|
|
||||||
|
final String routingName = "divert1";
|
||||||
|
final String address = "testAddress";
|
||||||
|
final String forwardAddress = "forwardAddress";
|
||||||
|
final String className = "s.o.m.e.class";
|
||||||
|
|
||||||
|
Properties properties = new InsertionOrderedProperties();
|
||||||
|
|
||||||
|
properties.put("divertConfigurations.divert1.routingName", routingName);
|
||||||
|
properties.put("divertConfigurations.divert1.address", address);
|
||||||
|
properties.put("divertConfigurations.divert1.forwardingAddress", forwardAddress);
|
||||||
|
properties.put("divertConfigurations.divert1.transformerConfiguration", className);
|
||||||
|
properties.put("divertConfigurations.divert1.transformerConfiguration.properties.a", "va");
|
||||||
|
properties.put("divertConfigurations.divert1.transformerConfiguration.properties.b", "vb");
|
||||||
|
|
||||||
|
configuration.parsePrefixedProperties(properties, null);
|
||||||
|
|
||||||
|
Assert.assertEquals(1, configuration.getDivertConfigurations().size());
|
||||||
|
Assert.assertEquals(routingName, configuration.getDivertConfigurations().get(0).getRoutingName());
|
||||||
|
Assert.assertEquals(address, configuration.getDivertConfigurations().get(0).getAddress());
|
||||||
|
Assert.assertEquals(forwardAddress, configuration.getDivertConfigurations().get(0).getForwardingAddress());
|
||||||
|
|
||||||
|
Assert.assertEquals(className, configuration.getDivertConfigurations().get(0).getTransformerConfiguration().getClassName());
|
||||||
|
Assert.assertEquals("va", configuration.getDivertConfigurations().get(0).getTransformerConfiguration().getProperties().get("a"));
|
||||||
|
Assert.assertEquals("vb", configuration.getDivertConfigurations().get(0).getTransformerConfiguration().getProperties().get("b"));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRoleSettingsViaProperties() throws Exception {
|
public void testRoleSettingsViaProperties() throws Exception {
|
||||||
ConfigurationImpl configuration = new ConfigurationImpl();
|
ConfigurationImpl configuration = new ConfigurationImpl();
|
||||||
|
@ -1078,4 +1097,19 @@ public class ConfigurationImplTest extends ActiveMQTestBase {
|
||||||
protected Configuration createConfiguration() throws Exception {
|
protected Configuration createConfiguration() throws Exception {
|
||||||
return new ConfigurationImpl();
|
return new ConfigurationImpl();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static class InsertionOrderedProperties extends Properties {
|
||||||
|
|
||||||
|
final LinkedHashMap<Object, Object> orderedMap = new LinkedHashMap<>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object put(Object key, Object value) {
|
||||||
|
return orderedMap.put(key.toString(), value.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<Map.Entry<Object, Object>> entrySet() {
|
||||||
|
return orderedMap.entrySet();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue