List of usage examples for org.springframework.amqp.core DirectExchange DirectExchange
public DirectExchange(String name, boolean durable, boolean autoDelete)
From source file:com.xoom.rabbit.test.Main.java
public static void main(String[] args) throws InterruptedException { if (args.length != 9) { System.out.println(//www . j a v a2 s.c om "usage: java -jar target/rabbit-tester-0.1-SNAPSHOT-standalone.jar [consumer_threads] [number_of_messages] [amqp_host] [amqp_port] [produce] [consume] [message size in bytes] [username] [password]"); return; } final long startTime = System.currentTimeMillis(); int consumerThreads = Integer.parseInt(args[0]); final int messages = Integer.parseInt(args[1]); String host = args[2]; int port = Integer.parseInt(args[3]); boolean produce = Boolean.parseBoolean(args[4]); boolean consume = Boolean.parseBoolean(args[5]); final int messageSize = Integer.parseInt(args[6]); String username = args[7]; String password = args[8]; if (produce) { System.out.println("Sending " + messages + " messages to " + host + ":" + port); } if (consume) { System.out.println("Consuming " + messages + " messages from " + host + ":" + port); } if (!produce && !consume) { System.out.println("Not producing or consuming any messages."); } CachingConnectionFactory connectionFactory = new CachingConnectionFactory(host, port); connectionFactory.setUsername(username); connectionFactory.setPassword(password); connectionFactory.setChannelCacheSize(consumerThreads + 1); RabbitAdmin amqpAdmin = new RabbitAdmin(connectionFactory); DirectExchange exchange = new DirectExchange(EXCHANGE_NAME, true, false); Queue queue = new Queue(QUEUE_NAME); amqpAdmin.declareExchange(exchange); amqpAdmin.declareQueue(queue); amqpAdmin.declareBinding(BindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY)); final AmqpTemplate amqpTemplate = new RabbitTemplate(connectionFactory); final CountDownLatch producerLatch = new CountDownLatch(messages); final CountDownLatch consumerLatch = new CountDownLatch(messages); SimpleMessageListenerContainer listenerContainer = null; if (consume) { listenerContainer = new SimpleMessageListenerContainer(); listenerContainer.setConnectionFactory(connectionFactory); listenerContainer.setQueueNames(QUEUE_NAME); listenerContainer.setConcurrentConsumers(consumerThreads); listenerContainer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { if (consumerLatch.getCount() == 1) { System.out.println("Finished consuming " + messages + " messages in " + (System.currentTimeMillis() - startTime) + "ms"); } consumerLatch.countDown(); } }); listenerContainer.start(); } if (produce) { while (producerLatch.getCount() > 0) { try { byte[] message = new byte[messageSize]; RND.nextBytes(message); amqpTemplate.send(EXCHANGE_NAME, ROUTING_KEY, new Message(message, new MessageProperties())); producerLatch.countDown(); } catch (Exception e) { System.out.println("Failed to send message " + (messages - producerLatch.getCount()) + " will retry forever."); } } } if (consume) { consumerLatch.await(); listenerContainer.shutdown(); } connectionFactory.destroy(); }
From source file:com.nkapps.billing.configs.RabbitMQConfig.java
@Bean public DirectExchange pgExchange() { return new DirectExchange(BILLING_PG_EXCHANGE, true, false); }
From source file:com.nkapps.billing.configs.RabbitMQConfig.java
@Bean public DirectExchange pgErrorExchange() { return new DirectExchange(pgErrorExchangeName(), true, false); }
From source file:amqp.spring.camel.component.SpringAMQPEndpoint.java
org.springframework.amqp.core.Exchange createAMQPExchange() { if ("direct".equals(this.exchangeType)) { return new DirectExchange(this.exchangeName, this.durable, this.autodelete); } else if ("fanout".equals(this.exchangeType)) { return new FanoutExchange(this.exchangeName, this.durable, this.autodelete); } else if ("headers".equals(this.exchangeType)) { return new HeadersExchange(this.exchangeName, this.durable, this.autodelete); } else if ("topic".equals(this.exchangeType)) { return new TopicExchange(this.exchangeName, this.durable, this.autodelete); //We have a routing key but no explicit exchange type, assume topic exchange } else if (this.routingKey != null) { return new TopicExchange(this.exchangeName, this.durable, this.autodelete); } else {// ww w . ja va2s . c o m return new DirectExchange(this.exchangeName, this.durable, this.autodelete); } }
From source file:org.resthub.rpc.AMQPHessianProxyFactory.java
/** * Create a queue and an exchange for requests * //from www.j ava2s . c o m * @param connectionFactory * @param queueName the name of the queue * @param exchangeName the name of the exchange */ private void createRequestQueue(AmqpAdmin admin, String queueName, String exchangeName) { Queue requestQueue = new Queue(queueName, false, false, false); admin.declareQueue(requestQueue); DirectExchange requestExchange = new DirectExchange(exchangeName, false, false); admin.declareExchange(requestExchange); Binding requestBinding = BindingBuilder.bind(requestQueue).to(requestExchange).with(queueName); admin.declareBinding(requestBinding); }
From source file:vn.topmedia.monitor.MonitorAppender.java
/** * Maybe declare the exchange./*from w w w . j av a2 s. c om*/ */ protected void maybeDeclareExchange() { RabbitAdmin admin = new RabbitAdmin(connectionFactory); if (declareExchange) { Exchange x; if ("topic".equals(exchangeType)) { x = new TopicExchange(exchangeName, durable, autoDelete); } else if ("direct".equals(exchangeType)) { x = new DirectExchange(exchangeName, durable, autoDelete); } else if ("fanout".equals(exchangeType)) { x = new FanoutExchange(exchangeName, durable, autoDelete); } else if ("headers".equals(exchangeType)) { x = new HeadersExchange(exchangeType, durable, autoDelete); } else { x = new TopicExchange(exchangeName, durable, autoDelete); } admin.declareExchange(x); } }
From source file:org.springframework.amqp.rabbit.core.RabbitAdminTests.java
@Test public void testTemporaryLogs() throws Exception { SingleConnectionFactory connectionFactory = new SingleConnectionFactory(); connectionFactory.setHost("localhost"); RabbitAdmin rabbitAdmin = new RabbitAdmin(connectionFactory); try {//from w ww. j a v a 2s.c om ApplicationContext ctx = mock(ApplicationContext.class); Map<String, Queue> queues = new HashMap<String, Queue>(); queues.put("nonDurQ", new Queue("testq.nonDur", false, false, false)); queues.put("adQ", new Queue("testq.ad", true, false, true)); queues.put("exclQ", new Queue("testq.excl", true, true, false)); queues.put("allQ", new Queue("testq.all", false, true, true)); when(ctx.getBeansOfType(Queue.class)).thenReturn(queues); Map<String, Exchange> exchanges = new HashMap<String, Exchange>(); exchanges.put("nonDurEx", new DirectExchange("testex.nonDur", false, false)); exchanges.put("adEx", new DirectExchange("testex.ad", true, true)); exchanges.put("allEx", new DirectExchange("testex.all", false, true)); when(ctx.getBeansOfType(Exchange.class)).thenReturn(exchanges); rabbitAdmin.setApplicationContext(ctx); rabbitAdmin.afterPropertiesSet(); Log logger = spy(TestUtils.getPropertyValue(rabbitAdmin, "logger", Log.class)); doReturn(true).when(logger).isInfoEnabled(); doAnswer(new DoesNothing()).when(logger).info(anyString()); new DirectFieldAccessor(rabbitAdmin).setPropertyValue("logger", logger); connectionFactory.createConnection().close(); // force declarations ArgumentCaptor<String> log = ArgumentCaptor.forClass(String.class); verify(logger, times(7)).info(log.capture()); List<String> logs = log.getAllValues(); Collections.sort(logs); assertThat(logs.get(0), Matchers.containsString("(testex.ad) durable:true, auto-delete:true")); assertThat(logs.get(1), Matchers.containsString("(testex.all) durable:false, auto-delete:true")); assertThat(logs.get(2), Matchers.containsString("(testex.nonDur) durable:false, auto-delete:false")); assertThat(logs.get(3), Matchers.containsString("(testq.ad) durable:true, auto-delete:true, exclusive:false")); assertThat(logs.get(4), Matchers.containsString("(testq.all) durable:false, auto-delete:true, exclusive:true")); assertThat(logs.get(5), Matchers.containsString("(testq.excl) durable:true, auto-delete:false, exclusive:true")); assertThat(logs.get(6), Matchers.containsString("(testq.nonDur) durable:false, auto-delete:false, exclusive:false")); } finally { cleanQueuesAndExchanges(rabbitAdmin); connectionFactory.destroy(); } }