Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Configuration
- @EnableJms
- public class MessagingEncryptionPocConfig {
- /**
- * Listener ActiveMQ Connection Factory
- */
- @Bean(name="listenerActiveMqConnectionFactory")
- public ActiveMQConnectionFactory listenerActiveMqConnectionFactory() {
- return new ActiveMQConnectionFactory("admin","admin","tcp://localhost:61616");
- }
- /**
- * Producer ActiveMQ Connection Factory
- */
- @Bean(name="producerActiveMqConnectionFactory")
- public ActiveMQConnectionFactory producerActiveMqConnectionFactory() {
- return new ActiveMQConnectionFactory("admin","admin","tcp://localhost:61616");
- }
- /**
- * Caching Connection Factory
- */
- @Bean
- public CachingConnectionFactory cachingConnectionFactory(@Qualifier("producerActiveMqConnectionFactory") ActiveMQConnectionFactory activeMqConnectionFactory) {
- return new CachingConnectionFactory(activeMqConnectionFactory);
- }
- /**
- * JMS Listener Container Factory
- */
- @Bean
- public DefaultJmsListenerContainerFactory jmsListenerContainerFactory(@Qualifier("listenerActiveMqConnectionFactory") ActiveMQConnectionFactory connectionFactory, MessagingMessageConverter messageConverter) {
- DefaultJmsListenerContainerFactory defaultJmsListenerContainerFactory = new DefaultJmsListenerContainerFactory();
- defaultJmsListenerContainerFactory.setConnectionFactory(connectionFactory);
- defaultJmsListenerContainerFactory.setMessageConverter(messageConverter);
- return defaultJmsListenerContainerFactory;
- }
- /**
- * Jms Queue Template
- */
- @Bean(name="queueTemplate")
- public JmsMessagingTemplate queueTemplate(CachingConnectionFactory cachingConnectionFactory, MessageConverter messagingMessageConverter) {
- JmsMessagingTemplate queueTemplate = new JmsMessagingTemplate(cachingConnectionFactory);
- queueTemplate.setJmsMessageConverter(messagingMessageConverter);
- return queueTemplate;
- }
- @Bean
- public MessageConverter encryptionDecryptionMessagingConverter(Jaxb2Marshaller jaxb2Marshaller) {
- MessageConverter encryptionDecryptionMessagingConverter = new EncryptionDecryptionMessagingConverter(jaxb2Marshaller);
- MessagingMessageConverter messageConverter = new MessagingMessageConverter();
- messageConverter.setPayloadConverter(encryptionDecryptionMessagingConverter);
- return messageConverter;
- }
- /**
- * Jaxb marshaller
- */
- @Bean(name="producerJaxb2Marshaller")
- public Jaxb2Marshaller jaxb2Marshaller() {
- Jaxb2Marshaller jaxb2Marshaller = new Jaxb2Marshaller();
- jaxb2Marshaller.setPackagesToScan("com.schema");
- return jaxb2Marshaller;
- }
- }
- @Component
- public class MessageProducer {
- private static final Logger LOG = LoggerFactory.getLogger(MessageProducer.class);
- @Autowired
- @Qualifier("queueTemplate")
- private JmsMessagingTemplate queueTemplate;
- public void publishMsg(Transaction trx, Map<String,Object> jmsHeaders, MessagePostProcessor postProcessor) {
- LOG.info("Sending Message. Payload={} Headers={}",trx,jmsHeaders);
- queueTemplate.convertAndSend("queue.source", trx, jmsHeaders, postProcessor);
- }
- }
- @RunWith(SpringRunner.class)
- @SpringBootTest
- @ActiveProfiles("test")
- public class WebsMessagingEncryptionPocApplicationTests {
- @Autowired
- private MessageProducer producer;
- @Autowired
- private MessageListener messageListener;
- /**
- * Ensure that a message is sent, and received.
- */
- @Test
- public void testProducer() throws Exception{
- //ARRANGE
- CountDownLatch latch = new CountDownLatch(1);
- messageListener.setCountDownLatch(latch);
- Transaction trx = new Transaction();
- trx.setCustomerAccountID(new BigInteger("111111"));
- Map<String,Object> jmsHeaders = new HashMap<String,Object>();
- jmsHeaders.put("tid", "1234563423");
- MessagePostProcessor encryptPostProcessor = new EncryptMessagePostProcessor();
- //ACT
- producer.publishMsg(trx, jmsHeaders, encryptPostProcessor);
- latch.await();
- //ASSERT - assertion done in the consumer
- }
- }
Add Comment
Please, Sign In to add comment