Guest User

Untitled

a guest
May 23rd, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.12 KB | None | 0 0
  1. @Configuration
  2. @EnableJms
  3. public class MessagingEncryptionPocConfig {
  4. /**
  5. * Listener ActiveMQ Connection Factory
  6. */
  7. @Bean(name="listenerActiveMqConnectionFactory")
  8. public ActiveMQConnectionFactory listenerActiveMqConnectionFactory() {
  9. return new ActiveMQConnectionFactory("admin","admin","tcp://localhost:61616");
  10. }
  11.  
  12. /**
  13. * Producer ActiveMQ Connection Factory
  14. */
  15. @Bean(name="producerActiveMqConnectionFactory")
  16. public ActiveMQConnectionFactory producerActiveMqConnectionFactory() {
  17. return new ActiveMQConnectionFactory("admin","admin","tcp://localhost:61616");
  18. }
  19.  
  20. /**
  21. * Caching Connection Factory
  22. */
  23. @Bean
  24. public CachingConnectionFactory cachingConnectionFactory(@Qualifier("producerActiveMqConnectionFactory") ActiveMQConnectionFactory activeMqConnectionFactory) {
  25. return new CachingConnectionFactory(activeMqConnectionFactory);
  26. }
  27.  
  28. /**
  29. * JMS Listener Container Factory
  30. */
  31. @Bean
  32. public DefaultJmsListenerContainerFactory jmsListenerContainerFactory(@Qualifier("listenerActiveMqConnectionFactory") ActiveMQConnectionFactory connectionFactory, MessagingMessageConverter messageConverter) {
  33. DefaultJmsListenerContainerFactory defaultJmsListenerContainerFactory = new DefaultJmsListenerContainerFactory();
  34. defaultJmsListenerContainerFactory.setConnectionFactory(connectionFactory);
  35. defaultJmsListenerContainerFactory.setMessageConverter(messageConverter);
  36. return defaultJmsListenerContainerFactory;
  37. }
  38.  
  39. /**
  40. * Jms Queue Template
  41. */
  42. @Bean(name="queueTemplate")
  43. public JmsMessagingTemplate queueTemplate(CachingConnectionFactory cachingConnectionFactory, MessageConverter messagingMessageConverter) {
  44. JmsMessagingTemplate queueTemplate = new JmsMessagingTemplate(cachingConnectionFactory);
  45. queueTemplate.setJmsMessageConverter(messagingMessageConverter);
  46. return queueTemplate;
  47. }
  48.  
  49. @Bean
  50. public MessageConverter encryptionDecryptionMessagingConverter(Jaxb2Marshaller jaxb2Marshaller) {
  51. MessageConverter encryptionDecryptionMessagingConverter = new EncryptionDecryptionMessagingConverter(jaxb2Marshaller);
  52. MessagingMessageConverter messageConverter = new MessagingMessageConverter();
  53. messageConverter.setPayloadConverter(encryptionDecryptionMessagingConverter);
  54. return messageConverter;
  55. }
  56.  
  57. /**
  58. * Jaxb marshaller
  59. */
  60. @Bean(name="producerJaxb2Marshaller")
  61. public Jaxb2Marshaller jaxb2Marshaller() {
  62. Jaxb2Marshaller jaxb2Marshaller = new Jaxb2Marshaller();
  63. jaxb2Marshaller.setPackagesToScan("com.schema");
  64. return jaxb2Marshaller;
  65. }
  66. }
  67.  
  68. @Component
  69. public class MessageProducer {
  70.  
  71. private static final Logger LOG = LoggerFactory.getLogger(MessageProducer.class);
  72.  
  73. @Autowired
  74. @Qualifier("queueTemplate")
  75. private JmsMessagingTemplate queueTemplate;
  76.  
  77. public void publishMsg(Transaction trx, Map<String,Object> jmsHeaders, MessagePostProcessor postProcessor) {
  78. LOG.info("Sending Message. Payload={} Headers={}",trx,jmsHeaders);
  79. queueTemplate.convertAndSend("queue.source", trx, jmsHeaders, postProcessor);
  80. }
  81. }
  82.  
  83. @RunWith(SpringRunner.class)
  84. @SpringBootTest
  85. @ActiveProfiles("test")
  86. public class WebsMessagingEncryptionPocApplicationTests {
  87. @Autowired
  88. private MessageProducer producer;
  89.  
  90. @Autowired
  91. private MessageListener messageListener;
  92.  
  93. /**
  94. * Ensure that a message is sent, and received.
  95. */
  96. @Test
  97. public void testProducer() throws Exception{
  98. //ARRANGE
  99. CountDownLatch latch = new CountDownLatch(1);
  100. messageListener.setCountDownLatch(latch);
  101. Transaction trx = new Transaction();
  102. trx.setCustomerAccountID(new BigInteger("111111"));
  103. Map<String,Object> jmsHeaders = new HashMap<String,Object>();
  104. jmsHeaders.put("tid", "1234563423");
  105. MessagePostProcessor encryptPostProcessor = new EncryptMessagePostProcessor();
  106. //ACT
  107. producer.publishMsg(trx, jmsHeaders, encryptPostProcessor);
  108. latch.await();
  109. //ASSERT - assertion done in the consumer
  110. }
  111. }
Add Comment
Please, Sign In to add comment