@Override public Transformer getBridgeTransformer(String name, TransformerConfiguration transformerConfiguration) { Transformer transformer = bridgeTransformers.get(name); if (transformer == null && transformerConfiguration != null && transformerConfiguration.getClassName() != null) { transformer = instantiateTransformer(transformerConfiguration); addBridgeTransformer(name, transformer); } return transformer; }
@Override public Transformer getDivertTransformer(String name, TransformerConfiguration transformerConfiguration) { Transformer transformer = divertTransformers.get(name); if (transformer == null && transformerConfiguration != null && transformerConfiguration.getClassName() != null) { transformer = instantiateTransformer(transformerConfiguration); addDivertTransformer(name, transformer); } return transformer; }
@Override public AcceptorFactory getAcceptorFactory(String name, final String className) { AcceptorFactory factory = acceptorFactories.get(name); if (factory == null && className != null) { factory = loadClass(className); addAcceptorFactory(name, factory); } return factory; }
@Override @Before public void setUp() throws Exception { // Setup Configuration configuration = new ConfigurationImpl(); serviceRegistry = new ServiceRegistryImpl(); }
@Test public void testInjectedTransformer() throws Exception { final SimpleString ADDRESS = new SimpleString("myAddress"); final SimpleString QUEUE = new SimpleString("myQueue"); final String BRIDGE = "myBridge"; ServiceRegistryImpl serviceRegistry = new ServiceRegistryImpl(); Transformer transformer = new Transformer() { @Override public Message transform(Message message) { return null; } }; serviceRegistry.addBridgeTransformer(BRIDGE, transformer); Configuration config = createDefaultInVMConfig().addConnectorConfiguration("in-vm", new TransportConfiguration(INVM_CONNECTOR_FACTORY)); ActiveMQServer server = addServer(new ActiveMQServerImpl(config, null, null, null, serviceRegistry)); server.start(); server.waitForActivation(100, TimeUnit.MILLISECONDS); server.createQueue(ADDRESS, RoutingType.ANYCAST, QUEUE, null, false, false); List<String> connectors = new ArrayList<>(); connectors.add("in-vm"); server.deployBridge(new BridgeConfiguration().setName(BRIDGE).setQueueName(QUEUE.toString()).setForwardingAddress(ADDRESS.toString()).setStaticConnectors(connectors)); Bridge bridge = server.getClusterManager().getBridges().get(BRIDGE); assertNotNull(bridge); assertEquals(transformer, ((BridgeImpl) bridge).getTransformer()); }
@Test public void testInjectedTransformer() throws Exception { final SimpleString ADDRESS = new SimpleString("myAddress"); final String DIVERT = "myDivert"; ServiceRegistryImpl serviceRegistry = new ServiceRegistryImpl(); Transformer transformer = new Transformer() { @Override public Message transform(Message message) { return null; } }; serviceRegistry.addDivertTransformer(DIVERT, transformer); ActiveMQServer server = addServer(new ActiveMQServerImpl(null, null, null, null, serviceRegistry)); server.start(); server.waitForActivation(100, TimeUnit.MILLISECONDS); server.createQueue(ADDRESS, RoutingType.MULTICAST, SimpleString.toSimpleString("myQueue"), null, false, false); server.deployDivert(new DivertConfiguration().setName(DIVERT).setAddress(ADDRESS.toString()).setForwardingAddress(ADDRESS.toString())); Collection<Binding> bindings = server.getPostOffice().getBindingsForAddress(ADDRESS).getBindings(); Divert divert = null; for (Binding binding : bindings) { if (binding instanceof DivertBinding) { divert = ((DivertBinding) binding).getDivert(); } } assertNotNull(divert); assertEquals(transformer, divert.getTransformer()); } }
@Override public Collection<Pair<ConnectorServiceFactory, ConnectorServiceConfiguration>> getConnectorServices(List<ConnectorServiceConfiguration> configs) { if (configs != null) { for (final ConnectorServiceConfiguration config : configs) { if (connectorServices.get(config.getConnectorName()) == null) { ConnectorServiceFactory factory = loadClass(config.getFactoryClassName()); addConnectorService(factory, config); } } } return connectorServices.values(); }
private void instantiateInterceptors(List<String> classNames, List<BaseInterceptor> interceptors) { if (classNames != null) { for (final String className : classNames) { BaseInterceptor interceptor = loadClass(className); interceptors.add(interceptor); } } } }
@Override public List<BaseInterceptor> getIncomingInterceptors(List<String> classNames) { List<BaseInterceptor> interceptors = new ArrayList<>(incomingInterceptors); instantiateInterceptors(classNames, interceptors); return interceptors; }
@Before public void setUp() throws Exception { serviceRegistry = new ServiceRegistryImpl(); configuration = new ConfigurationImpl(); configuration.setAcceptorConfigurations(new HashSet<TransportConfiguration>()); remotingService = new RemotingServiceImpl(null, configuration, null, null, null, null, null, serviceRegistry); }
@Override public ConnectorServiceFactory getConnectorService(ConnectorServiceConfiguration configuration) { return loadClass(configuration.getFactoryClassName()); }
@Override public List<BaseInterceptor> getOutgoingInterceptors(List<String> classNames) { List<BaseInterceptor> interceptors = new ArrayList<>(outgoingInterceptors); instantiateInterceptors(classNames, interceptors); return interceptors; }
this.serviceRegistry = serviceRegistry == null ? new ServiceRegistryImpl() : serviceRegistry;
private Transformer instantiateTransformer(final TransformerConfiguration transformerConfiguration) { Transformer transformer = null; if (transformerConfiguration != null && transformerConfiguration.getClassName() != null) { try { transformer = loadClass(transformerConfiguration.getClassName()); transformer.init(Collections.unmodifiableMap(transformerConfiguration.getProperties())); } catch (Exception e) { throw ActiveMQMessageBundle.BUNDLE.errorCreatingTransformerClass(e, transformerConfiguration.getClassName()); } } return transformer; }
@Before public void setup() throws Exception { serviceRegistry = new ServiceRegistryImpl(); serviceRegistry.setExecutorService(Executors.newFixedThreadPool(1, ActiveMQThreadFactory.defaultThreadFactory())); serviceRegistry.setIOExecutorService(Executors.newFixedThreadPool(5, ActiveMQThreadFactory.defaultThreadFactory())); serviceRegistry.setScheduledExecutorService(Executors.newScheduledThreadPool(1, ActiveMQThreadFactory.defaultThreadFactory())); server = new ActiveMQServerImpl(null, null, null, null, serviceRegistry); server.start(); server.waitForActivation(100, TimeUnit.MILLISECONDS); }