public enum QueueTextFormatter { Long { @Override StringBuilder format(Queue queue, StringBuilder output) { output.append("Queue [name=").append(queue.getName()); output.append(", address=").append(queue.getAddress()); output.append(", routingType=").append(queue.getRoutingType()); final Filter filter = queue.getFilter(); if (filter != null) { output.append(", filter=").append(filter.getFilterString()); } output.append(", durable=").append(queue.isDurable()); final int maxConsumers = queue.getMaxConsumers(); if (maxConsumers != Queue.MAX_CONSUMERS_UNLIMITED) { output.append(", maxConsumers=").append(queue.getMaxConsumers()); } output.append(", purgeOnNoConsumers=").append(queue.isPurgeOnNoConsumers()); output.append(", autoCreateAddress=").append(queue.isAutoCreated()); output.append(", exclusive=").append(queue.isExclusive()); output.append(", lastValue=").append(queue.isLastValue()); output.append(", lastValueKey=").append(queue.getLastValueKey()); output.append(", nonDestructive=").append(queue.isNonDestructive()); output.append(", consumersBeforeDispatch=").append(queue.getConsumersBeforeDispatch()); output.append(", delayBeforeDispatch=").append(queue.getDelayBeforeDispatch()); output.append(", autoCreateAddress=").append(queue.isAutoCreated()); output.append(']'); return output; } };
@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()); }
server1.createQueue(destination, destinationRoutingType, destination, null, true, false); server0.deployBridge(new BridgeConfiguration() .setRoutingType(bridgeRoutingType) .setName("bridge")
@Test(timeout = 60000) public void testCoreBridge() throws Exception { server.getRemotingService().createAcceptor("acceptor", "vm://0").start(); server.getConfiguration().addConnectorConfiguration("connector", "vm://0"); server.deployBridge(new BridgeConfiguration() .setName(getTestName()) .setQueueName(getQueueName()) .setForwardingAddress(getQueueName(1)) .setConfirmationWindowSize(10) .setStaticConnectors(Arrays.asList("connector"))); sendMessages(getQueueName(), 1); AmqpClient client = createAmqpClient(); AmqpConnection connection = addConnection(client.connect()); AmqpSession session = connection.createSession(); AmqpReceiver receiver = session.createReceiver(getQueueName(1)); Queue queueView = getProxyToQueue(getQueueName()); Wait.assertEquals(1, queueView::getConsumerCount); Wait.assertEquals(0, queueView::getMessageCount); queueView = getProxyToQueue(getQueueName(1)); Wait.assertEquals(1, queueView::getConsumerCount); Wait.assertEquals(1, queueView::getMessageCount); receiver.flow(1); AmqpMessage message = receiver.receive(5, TimeUnit.SECONDS); assertNotNull(message); message.accept(); receiver.close(); Wait.assertEquals(0, queueView::getMessageCount); connection.close(); }