@Override public String getTransformerClassName() { clearIO(); try { return configuration.getTransformerConfiguration() == null ? null : configuration.getTransformerConfiguration().getClassName(); } finally { blockOnIO(); } }
@Override public Map<String, String> getTransformerProperties() { clearIO(); try { return configuration.getTransformerConfiguration() == null ? null : configuration.getTransformerConfiguration().getProperties(); } finally { blockOnIO(); } }
static void createDivert(String name, DivertConfiguration divertConfiguration, ActiveMQServerControl serverControl) { try { String transformerClassName = divertConfiguration.getTransformerConfiguration() != null ? divertConfiguration.getTransformerConfiguration().getClassName() : null; serverControl.createDivert(name, divertConfiguration.getRoutingName(), divertConfiguration.getAddress(), divertConfiguration.getForwardingAddress(), divertConfiguration.isExclusive(), divertConfiguration.getFilterString(), transformerClassName); } catch (RuntimeException e) { throw e; } catch (Exception e) { // TODO should this be an OFE instead? throw new RuntimeException(e); } } }
static void createDivert(String name, DivertConfiguration divertConfiguration, ActiveMQServerControl serverControl) { try { String transformerClassName = divertConfiguration.getTransformerConfiguration() != null ? divertConfiguration.getTransformerConfiguration().getClassName() : null; serverControl.createDivert(name, divertConfiguration.getRoutingName(), divertConfiguration.getAddress(), divertConfiguration.getForwardingAddress(), divertConfiguration.isExclusive(), divertConfiguration.getFilterString(), transformerClassName); } catch (RuntimeException e) { throw e; } catch (Exception e) { // TODO should this be an OFE instead? throw new RuntimeException(e); } } }
@Test public void testAttributes() throws Exception { checkResource(ObjectNameBuilder.DEFAULT.getDivertObjectName(divertConfig.getName(), divertConfig.getAddress())); DivertControl divertControl = createDivertManagementControl(divertConfig.getName(), divertConfig.getAddress()); Assert.assertEquals(divertConfig.getFilterString(), divertControl.getFilter()); Assert.assertEquals(divertConfig.isExclusive(), divertControl.isExclusive()); Assert.assertEquals(divertConfig.getName(), divertControl.getUniqueName()); Assert.assertEquals(divertConfig.getRoutingName(), divertControl.getRoutingName()); Assert.assertEquals(divertConfig.getAddress(), divertControl.getAddress()); Assert.assertEquals(divertConfig.getForwardingAddress(), divertControl.getForwardingAddress()); Assert.assertEquals(divertConfig.getTransformerConfiguration().getClassName(), divertControl.getTransformerClassName()); Assert.assertEquals(divertConfig.getTransformerConfiguration().getProperties(), divertControl.getTransformerProperties()); }
@Override public void deployDivert(DivertConfiguration config) throws Exception { if (config.getName() == null) { throw ActiveMQMessageBundle.BUNDLE.divertWithNoName(); } if (config.getAddress() == null) { ActiveMQServerLogger.LOGGER.divertWithNoAddress(); return; } if (config.getForwardingAddress() == null) { ActiveMQServerLogger.LOGGER.divertWithNoForwardingAddress(); return; } SimpleString sName = new SimpleString(config.getName()); if (postOffice.getBinding(sName) != null) { ActiveMQServerLogger.LOGGER.divertBindingAlreadyExists(sName); return; } SimpleString sAddress = new SimpleString(config.getAddress()); Transformer transformer = getServiceRegistry().getDivertTransformer(config.getName(), config.getTransformerConfiguration()); Filter filter = FilterImpl.createFilter(config.getFilterString()); Divert divert = new DivertImpl(new SimpleString(config.getForwardingAddress()), sName, new SimpleString(config.getRoutingName()), config.isExclusive(), filter, transformer, postOffice, storageManager, config.getRoutingType()); Binding binding = new DivertBinding(storageManager.generateID(), sAddress, divert); postOffice.addBinding(binding); managementService.registerDivert(divert, config); }
Assert.assertEquals("forwarding-address1", dic.getForwardingAddress()); Assert.assertEquals("speed > 88", dic.getFilterString()); Assert.assertEquals("org.foo.Transformer", dic.getTransformerConfiguration().getClassName()); Assert.assertEquals(true, dic.isExclusive()); } else if (dic.getName().equals("divert2")) { Assert.assertEquals("forwarding-address2", dic.getForwardingAddress()); Assert.assertEquals("speed < 88", dic.getFilterString()); Assert.assertEquals("org.foo.Transformer2", dic.getTransformerConfiguration().getClassName()); Assert.assertEquals(false, dic.isExclusive()); } else { Assert.assertEquals("divert3", dic.getName()); Assert.assertEquals("org.foo.DivertTransformer3", dic.getTransformerConfiguration().getClassName()); Assert.assertEquals("divertTransformerValue1", dic.getTransformerConfiguration().getProperties().get("divertTransformerKey1")); Assert.assertEquals("divertTransformerValue2", dic.getTransformerConfiguration().getProperties().get("divertTransformerKey2"));