Advertisement
Guest User

Untitled

a guest
Feb 17th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:rabbit="http://www.springframework.org/schema/rabbit"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/rabbit
  8. http://www.springframework.org/schema/rabbit/spring-rabbit-1.3.xsd">
  9.  
  10. <!-- RabbitMQ -->
  11. <rabbit:connection-factory id="rabbitConnectionFactory" addresses="${rabbitMq.hostName}" username="${rabbitMq.userName}" password="${rabbitMq.password}" virtual-host="${rabbitMq.vHost}" />
  12. <rabbit:admin connection-factory="rabbitConnectionFactory"/>
  13.  
  14. <!-- RabbitMQ Template -->
  15. <rabbit:template id="rabbitTemplate" connection-factory="rabbitConnectionFactory" message-converter="messageConverter" exchange="${rabbitMq.myExchange}" />
  16.  
  17. <!-- RabbitMQ Exchange and Binding Definition -->
  18. <rabbit:direct-exchange name="${rabbitMq.yEmxchange}">
  19. <rabbit:bindings>
  20. <rabbit:binding key="${rabbitMq.routing.key.events}" queue="${rabbitMq.queue.events.name}"/>
  21. </rabbit:bindings>
  22. </rabbit:direct-exchange>
  23.  
  24. <!-- RabbitMQ Queue Definitions -->
  25. <rabbit:queue name="${rabbitMq.queue.events.name}" >
  26. <rabbit:queue-arguments>
  27. <entry key="x-ha-policy" value="all"/>
  28. </rabbit:queue-arguments>
  29. </rabbit:queue>
  30.  
  31. <!-- Listeners -->
  32. <rabbit:listener-container id="listener" connection-factory="rabbitConnectionFactory" concurrency="3" max-concurrency="5" requeue-rejected="false">
  33. <rabbit:listener ref="eventNotificationAdapter" queues="${rabbitMq.queue.events.name}" priority="${rabbitMq.queue.events.priority}" />
  34. </rabbit:listener-container>
  35.  
  36. <!-- Message Listener Adapters -->
  37. <bean id="eventNotificationAdapter" class="org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter">
  38. <constructor-arg name="delegate" ref="eventConsumer"/>
  39. <constructor-arg name="messageConverter" ref="messageConverter"/>
  40. <property name="defaultListenerMethod" value="process"/>
  41. </bean>
  42.  
  43. <bean id="messageConverter" class="org.springframework.amqp.support.converter.JsonMessageConverter"/>
  44.  
  45. </beans>
  46.  
  47. @Component("eventConsumer")
  48. public class EventQueueConsumer {
  49.  
  50. @Autowired
  51. EventsClient eventsClient;
  52.  
  53. private static Logger logger = LoggerFactory.getLogger(EventQueueConsumer.class);
  54.  
  55. public void process(MyEvent myEvent) {
  56. logger.info("processing myEvent: {}", myEvent);
  57. try{
  58. eventsClient.sendEvent(myEvent);
  59. } catch(Exception e) {
  60. logger.error("Exception occurred trying to send event.", e);
  61. }
  62. }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement