List of usage examples for org.springframework.context.support StaticApplicationContext refresh
@Override public void refresh() throws BeansException, IllegalStateException
From source file:org.springframework.cloud.aws.messaging.listener.QueueMessageHandlerTest.java
@Test public void receiveAndReplyMessage_methodAnnotatedWithMessageMappingAnnotation_methodInvokedForIncomingMessageAndReplySentBackToSendToDestination() throws Exception { StaticApplicationContext applicationContext = new StaticApplicationContext(); applicationContext.registerSingleton("incomingMessageHandler", IncomingMessageHandler.class); applicationContext.registerBeanDefinition("queueMessageHandler", getQueueMessageHandlerBeanDefinition()); applicationContext.refresh(); MessageHandler messageHandler = applicationContext.getBean(MessageHandler.class); messageHandler.handleMessage(MessageBuilder.withPayload("testContent") .setHeader(QueueMessageHandler.Headers.LOGICAL_RESOURCE_ID_MESSAGE_HEADER_KEY, "receiveAndReply") .build());//from w w w. j a v a 2s . co m IncomingMessageHandler messageListener = applicationContext.getBean(IncomingMessageHandler.class); assertEquals("testContent", messageListener.getLastReceivedMessage()); verify(this.messageTemplate).convertAndSend(eq("sendTo"), eq("TESTCONTENT")); }
From source file:org.springframework.cloud.aws.messaging.listener.QueueMessageHandlerTest.java
@Test public void receiveMessage_withNotificationMessageAndSubject_shouldResolveThem() throws Exception { // Arrange//from w w w . ja v a2 s . c o m StaticApplicationContext applicationContext = new StaticApplicationContext(); applicationContext.registerSingleton("notificationMessageReceiver", NotificationMessageReceiver.class); applicationContext.registerSingleton("queueMessageHandler", QueueMessageHandler.class); applicationContext.refresh(); QueueMessageHandler queueMessageHandler = applicationContext.getBean(QueueMessageHandler.class); NotificationMessageReceiver notificationMessageReceiver = applicationContext .getBean(NotificationMessageReceiver.class); ObjectNode jsonObject = JsonNodeFactory.instance.objectNode(); jsonObject.put("Type", "Notification"); jsonObject.put("Subject", "Hi!"); jsonObject.put("Message", "Hello World!"); String payload = jsonObject.toString(); // Act queueMessageHandler.handleMessage(MessageBuilder.withPayload(payload) .setHeader(QueueMessageHandler.Headers.LOGICAL_RESOURCE_ID_MESSAGE_HEADER_KEY, "testQueue") .build()); // Assert assertEquals("Hi!", notificationMessageReceiver.getSubject()); assertEquals("Hello World!", notificationMessageReceiver.getMessage()); }
From source file:org.springframework.cloud.aws.messaging.listener.QueueMessageHandlerTest.java
@Test public void receiveMessage_methodWithCustomObjectAsParameter_parameterIsConverted() throws Exception { StaticApplicationContext applicationContext = new StaticApplicationContext(); applicationContext.registerSingleton("incomingMessageHandler", IncomingMessageHandlerWithCustomParameter.class); applicationContext.registerSingleton("queueMessageHandler", QueueMessageHandler.class); applicationContext.refresh(); MessageHandler messageHandler = applicationContext.getBean(MessageHandler.class); DummyKeyValueHolder messagePayload = new DummyKeyValueHolder("myKey", "A value"); MappingJackson2MessageConverter jsonMapper = new MappingJackson2MessageConverter(); Message<?> message = jsonMapper.toMessage(messagePayload, new MessageHeaders(Collections.<String, Object>singletonMap( QueueMessageHandler.Headers.LOGICAL_RESOURCE_ID_MESSAGE_HEADER_KEY, "testQueue"))); messageHandler.handleMessage(message); IncomingMessageHandlerWithCustomParameter messageListener = applicationContext .getBean(IncomingMessageHandlerWithCustomParameter.class); assertNotNull(messageListener.getLastReceivedMessage()); assertEquals("myKey", messageListener.getLastReceivedMessage().getKey()); assertEquals("A value", messageListener.getLastReceivedMessage().getValue()); }
From source file:org.springframework.cloud.aws.messaging.listener.QueueMessageHandlerTest.java
@Test public void receiveMessage_withHeaderAnnotationAsArgument_shouldReceiveRequestedHeader() throws Exception { // Arrange/*from w w w . j a v a 2 s .co m*/ StaticApplicationContext applicationContext = new StaticApplicationContext(); applicationContext.registerSingleton("messageHandlerWithHeaderAnnotation", MessageReceiverWithHeaderAnnotation.class); applicationContext.registerSingleton("queueMessageHandler", QueueMessageHandler.class); applicationContext.refresh(); QueueMessageHandler queueMessageHandler = applicationContext.getBean(QueueMessageHandler.class); MessageReceiverWithHeaderAnnotation messageReceiver = applicationContext .getBean(MessageReceiverWithHeaderAnnotation.class); // Act queueMessageHandler.handleMessage( MessageBuilder.withPayload("Hello from a sender").setHeader("SenderId", "elsUnitTest") .setHeader(QueueMessageHandler.Headers.LOGICAL_RESOURCE_ID_MESSAGE_HEADER_KEY, "testQueue") .build()); // Assert assertEquals("Hello from a sender", messageReceiver.getPayload()); assertEquals("elsUnitTest", messageReceiver.getSenderId()); }
From source file:org.springframework.cloud.aws.messaging.listener.QueueMessageHandlerTest.java
@Test public void receiveMessage_withWrongHeaderAnnotationValueAsArgument_shouldReceiveNullAsHeaderValue() throws Exception { // Arrange//from w w w. ja v a 2 s.c o m StaticApplicationContext applicationContext = new StaticApplicationContext(); applicationContext.registerSingleton("messageHandlerWithHeaderAnnotation", MessageReceiverWithHeaderAnnotation.class); applicationContext.registerSingleton("queueMessageHandler", QueueMessageHandler.class); applicationContext.refresh(); QueueMessageHandler queueMessageHandler = applicationContext.getBean(QueueMessageHandler.class); MessageReceiverWithHeaderAnnotation messageReceiver = applicationContext .getBean(MessageReceiverWithHeaderAnnotation.class); // Act queueMessageHandler.handleMessage(MessageBuilder.withPayload("Hello from a sender") .setHeader(QueueMessageHandler.Headers.LOGICAL_RESOURCE_ID_MESSAGE_HEADER_KEY, "testQueue") .build()); // Assert assertEquals("Hello from a sender", messageReceiver.getPayload()); assertNull(messageReceiver.getSenderId()); }
From source file:org.springframework.cloud.aws.messaging.listener.QueueMessageHandlerTest.java
@Test public void receiveMessage_withHeadersAsArgumentAnnotation_shouldReceiveAllHeaders() throws Exception { // Arrange/*w w w .j av a2 s . co m*/ StaticApplicationContext applicationContext = new StaticApplicationContext(); applicationContext.registerSingleton("messageHandlerWithHeadersAnnotation", MessageReceiverWithHeadersAnnotation.class); applicationContext.registerSingleton("queueMessageHandler", QueueMessageHandler.class); applicationContext.refresh(); QueueMessageHandler queueMessageHandler = applicationContext.getBean(QueueMessageHandler.class); MessageReceiverWithHeadersAnnotation messageReceiver = applicationContext .getBean(MessageReceiverWithHeadersAnnotation.class); // Act queueMessageHandler.handleMessage(MessageBuilder.withPayload("Hello from a sender") .setHeader(QueueMessageHandler.Headers.LOGICAL_RESOURCE_ID_MESSAGE_HEADER_KEY, "testQueue") .setHeader("SenderId", "ID").build()); // Assert assertNotNull(messageReceiver.getHeaders()); assertEquals("ID", messageReceiver.getHeaders().get("SenderId")); assertEquals("testQueue", messageReceiver.getHeaders() .get(QueueMessageHandler.Headers.LOGICAL_RESOURCE_ID_MESSAGE_HEADER_KEY)); }
From source file:org.springframework.cloud.aws.messaging.listener.QueueMessageHandlerTest.java
@Test public void receiveMessage_methodAnnotatedWithMessageMappingContainingMultipleQueueNames_methodInvokedForEachQueueName() throws Exception { StaticApplicationContext applicationContext = new StaticApplicationContext(); applicationContext.registerSingleton("incomingMessageHandlerWithMultipleQueueNames", IncomingMessageHandlerWithMultipleQueueNames.class); applicationContext.registerSingleton("queueMessageHandler", QueueMessageHandler.class); applicationContext.refresh(); QueueMessageHandler queueMessageHandler = applicationContext.getBean(QueueMessageHandler.class); IncomingMessageHandlerWithMultipleQueueNames incomingMessageHandler = applicationContext .getBean(IncomingMessageHandlerWithMultipleQueueNames.class); queueMessageHandler.handleMessage(MessageBuilder.withPayload("Hello from queue one!") .setHeader(QueueMessageHandler.Headers.LOGICAL_RESOURCE_ID_MESSAGE_HEADER_KEY, "queueOne").build()); assertEquals("Hello from queue one!", incomingMessageHandler.getLastReceivedMessage()); queueMessageHandler.handleMessage(MessageBuilder.withPayload("Hello from queue two!") .setHeader(QueueMessageHandler.Headers.LOGICAL_RESOURCE_ID_MESSAGE_HEADER_KEY, "queueTwo").build()); assertEquals("Hello from queue two!", incomingMessageHandler.getLastReceivedMessage()); }
From source file:io.milton.servlet.SpringMiltonFilter.java
@SuppressWarnings("resource") protected void initSpringApplicationContext(FilterConfig fc) { final WebApplicationContext rootContext = WebApplicationContextUtils .getWebApplicationContext(fc.getServletContext()); StaticApplicationContext parent; if (rootContext != null) { log.info("Found a root spring context, and using it"); parent = new StaticApplicationContext(rootContext); } else {/* w w w . j ava2 s . co m*/ log.info("No root spring context"); parent = new StaticApplicationContext(); } final FilterConfigWrapper configWrapper = new FilterConfigWrapper(fc); parent.getBeanFactory().registerSingleton("config", configWrapper); parent.getBeanFactory().registerSingleton("servletContext", fc.getServletContext()); File webRoot = new File(fc.getServletContext().getRealPath("/")); parent.getBeanFactory().registerSingleton("webRoot", webRoot); log.info("Registered root webapp path in: webroot=" + webRoot.getAbsolutePath()); parent.refresh(); final String configClass = fc.getInitParameter("contextConfigClass"); final String sFiles = fc.getInitParameter("contextConfigLocation"); ConfigurableApplicationContext ctx = null; if (StringUtils.isNotBlank(configClass)) { try { Class<?> clazz = Class.forName(configClass); final AnnotationConfigApplicationContext annotationCtx = new AnnotationConfigApplicationContext(); annotationCtx.setParent(parent); annotationCtx.register(clazz); annotationCtx.refresh(); ctx = annotationCtx; } catch (ClassNotFoundException e) { ctx = null; log.error("Unable to create a child context for Milton", e); } } else { String[] contextFiles; if (sFiles != null && sFiles.trim().length() > 0) { contextFiles = sFiles.split(" "); } else { contextFiles = new String[] { "applicationContext.xml" }; } try { ctx = new ClassPathXmlApplicationContext(contextFiles, parent); } catch (BeansException e) { log.error("Unable to create a child context for Milton", e); } } if (ctx == null) { log.warn("No child context available, only using parent context"); context = parent; } else { context = ctx; } }
From source file:org.springframework.cloud.aws.messaging.listener.QueueMessageHandlerTest.java
@Test public void receiveMessage_withCustomReturnValueHandlers_shouldCallThemBeforeTheDefaultOnes() throws Exception { // Arrange//from w w w . j a v a 2 s . c om StaticApplicationContext applicationContext = new StaticApplicationContext(); applicationContext.registerSingleton("incomingMessageHandler", IncomingMessageHandler.class); HandlerMethodReturnValueHandler handlerMethodReturnValueHandler = mock( HandlerMethodReturnValueHandler.class); when(handlerMethodReturnValueHandler.supportsReturnType(any(MethodParameter.class))).thenReturn(true); MutablePropertyValues properties = new MutablePropertyValues(Collections .singletonList(new PropertyValue("customReturnValueHandlers", handlerMethodReturnValueHandler))); applicationContext.registerSingleton("queueMessageHandler", QueueMessageHandler.class, properties); applicationContext.refresh(); QueueMessageHandler queueMessageHandler = applicationContext.getBean(QueueMessageHandler.class); // Act queueMessageHandler.handleMessage(MessageBuilder.withPayload("Hello from a sender") .setHeader(QueueMessageHandler.Headers.LOGICAL_RESOURCE_ID_MESSAGE_HEADER_KEY, "receiveAndReply") .build()); // Assert verify(handlerMethodReturnValueHandler, times(1)).handleReturnValue(any(Object.class), any(MethodParameter.class), any(Message.class)); }
From source file:org.springframework.cloud.aws.messaging.listener.QueueMessageHandlerTest.java
@Test public void receiveMessage_withCustomArgumentResolvers_shouldCallThemBeforeTheDefaultOnes() throws Exception { // Arrange//from w w w. j a v a 2 s . com StaticApplicationContext applicationContext = new StaticApplicationContext(); applicationContext.registerSingleton("incomingMessageHandler", IncomingMessageHandler.class); HandlerMethodArgumentResolver handlerMethodArgumentResolver = mock(HandlerMethodArgumentResolver.class); when(handlerMethodArgumentResolver.supportsParameter(any(MethodParameter.class))).thenReturn(true); when(handlerMethodArgumentResolver.resolveArgument(any(MethodParameter.class), any(Message.class))) .thenReturn("Hello from a sender"); MutablePropertyValues properties = new MutablePropertyValues(Collections .singletonList(new PropertyValue("customArgumentResolvers", handlerMethodArgumentResolver))); applicationContext.registerSingleton("queueMessageHandler", QueueMessageHandler.class, properties); applicationContext.refresh(); QueueMessageHandler queueMessageHandler = applicationContext.getBean(QueueMessageHandler.class); // Act queueMessageHandler.handleMessage(MessageBuilder.withPayload("Hello from a sender") .setHeader(QueueMessageHandler.Headers.LOGICAL_RESOURCE_ID_MESSAGE_HEADER_KEY, "receive").build()); // Assert verify(handlerMethodArgumentResolver, times(1)).resolveArgument(any(MethodParameter.class), any(Message.class)); }