Example usage for org.springframework.integration.handler ExpressionEvaluatingMessageProcessor processMessage

List of usage examples for org.springframework.integration.handler ExpressionEvaluatingMessageProcessor processMessage

Introduction

In this page you can find the example usage for org.springframework.integration.handler ExpressionEvaluatingMessageProcessor processMessage.

Prototype

@Override
public T processMessage(Message<?> message) 

Source Link

Document

Processes the Message by evaluating the expression with that Message as the root object.

Usage

From source file:org.springframework.integration.handler.ExpressionEvaluatingMessageProcessorTests.java

@SuppressWarnings({ "rawtypes", "unchecked" })
@Test//from   ww w.j av  a2s.c  o  m
public void testProcessMessage() {
    Expression expression = expressionParser.parseExpression("payload");
    ExpressionEvaluatingMessageProcessor processor = new ExpressionEvaluatingMessageProcessor(expression);
    processor.setBeanFactory(mock(BeanFactory.class));
    assertEquals("foo", processor.processMessage(new GenericMessage<String>("foo")));
}

From source file:org.springframework.integration.handler.ExpressionEvaluatingMessageProcessorTests.java

@SuppressWarnings({ "rawtypes", "unchecked" })
@Test//from www  .j a v  a  2s.  co m
public void testProcessMessageWithParameterCoercion() throws Exception {
    @SuppressWarnings("unused")
    class TestTarget {
        public String stringify(int number) {
            return number + "";
        }
    }
    Expression expression = expressionParser.parseExpression("#target.stringify(payload)");
    ExpressionEvaluatingMessageProcessor processor = new ExpressionEvaluatingMessageProcessor(expression);
    processor.setBeanFactory(mock(BeanFactory.class));
    processor.afterPropertiesSet();
    EvaluationContext evaluationContext = TestUtils.getPropertyValue(processor, "evaluationContext",
            EvaluationContext.class);
    evaluationContext.setVariable("target", new TestTarget());
    assertEquals("2", processor.processMessage(new GenericMessage<String>("2")));
}

From source file:org.springframework.integration.handler.ExpressionEvaluatingMessageProcessorTests.java

@SuppressWarnings({ "rawtypes", "unchecked" })
@Test//  www.  j  av a  2s .  c  o  m
public void testProcessMessageWithVoidResult() throws Exception {
    @SuppressWarnings("unused")
    class TestTarget {
        public void ping(String input) {
        }
    }
    Expression expression = expressionParser.parseExpression("#target.ping(payload)");
    ExpressionEvaluatingMessageProcessor processor = new ExpressionEvaluatingMessageProcessor(expression);
    processor.setBeanFactory(mock(BeanFactory.class));
    processor.afterPropertiesSet();
    EvaluationContext evaluationContext = TestUtils.getPropertyValue(processor, "evaluationContext",
            EvaluationContext.class);
    evaluationContext.setVariable("target", new TestTarget());
    assertEquals(null, processor.processMessage(new GenericMessage<String>("2")));
}

From source file:org.springframework.integration.handler.ExpressionEvaluatingMessageProcessorTests.java

@SuppressWarnings({ "rawtypes", "unchecked" })
@Test//from  w  w  w.  j  a  v  a 2  s  . c o m
public void testProcessMessageWithParameterCoercionToNonPrimitive() throws Exception {
    class TestTarget {
        @SuppressWarnings("unused")
        public String find(Resource[] resources) {
            return Arrays.asList(resources).toString();
        }

    }
    Expression expression = expressionParser.parseExpression("#target.find(payload)");
    ExpressionEvaluatingMessageProcessor processor = new ExpressionEvaluatingMessageProcessor(expression);
    ConfigurableListableBeanFactory beanFactory = new GenericApplicationContext().getBeanFactory();
    processor.setBeanFactory(beanFactory);
    IntegrationEvaluationContextFactoryBean factoryBean = new IntegrationEvaluationContextFactoryBean();
    factoryBean.setBeanFactory(beanFactory);
    beanFactory.registerSingleton(IntegrationContextUtils.INTEGRATION_EVALUATION_CONTEXT_BEAN_NAME,
            factoryBean.getObject());
    processor.afterPropertiesSet();
    EvaluationContext evaluationContext = TestUtils.getPropertyValue(processor, "evaluationContext",
            EvaluationContext.class);
    evaluationContext.setVariable("target", new TestTarget());
    String result = (String) processor.processMessage(new GenericMessage<String>("classpath*:*.properties"));
    assertTrue("Wrong result: " + result, result.contains("log4j.properties"));
}

From source file:org.springframework.integration.handler.ExpressionEvaluatingMessageProcessorTests.java

@SuppressWarnings({ "rawtypes", "unchecked" })
@Test/*www .j  ava2  s  .c  o m*/
public void testProcessMessageWithDollarInBrackets() {
    Expression expression = expressionParser.parseExpression("headers['$foo_id']");
    ExpressionEvaluatingMessageProcessor processor = new ExpressionEvaluatingMessageProcessor(expression);
    processor.setBeanFactory(mock(BeanFactory.class));
    Message<String> message = MessageBuilder.withPayload("foo").setHeader("$foo_id", "abc").build();
    assertEquals("abc", processor.processMessage(message));
}

From source file:org.springframework.integration.handler.ExpressionEvaluatingMessageProcessorTests.java

@SuppressWarnings({ "rawtypes", "unchecked" })
@Test/*from w ww  . j a  v  a  2s .  c  o  m*/
public void testProcessMessageWithDollarPropertyAccess() {
    Expression expression = expressionParser.parseExpression("headers.$foo_id");
    ExpressionEvaluatingMessageProcessor processor = new ExpressionEvaluatingMessageProcessor(expression);
    processor.setBeanFactory(mock(BeanFactory.class));
    Message<String> message = MessageBuilder.withPayload("foo").setHeader("$foo_id", "xyz").build();
    assertEquals("xyz", processor.processMessage(message));
}

From source file:org.springframework.integration.handler.ExpressionEvaluatingMessageProcessorTests.java

@SuppressWarnings({ "rawtypes", "unchecked" })
@Test/*from w  w  w .j ava 2  s  .  c o m*/
public void testProcessMessageWithStaticKey() {
    Expression expression = expressionParser.parseExpression("headers[headers.ID]");
    ExpressionEvaluatingMessageProcessor processor = new ExpressionEvaluatingMessageProcessor(expression);
    processor.setBeanFactory(mock(BeanFactory.class));
    GenericMessage<String> message = new GenericMessage<String>("foo");
    assertEquals(message.getHeaders().getId(), processor.processMessage(message));
}

From source file:org.springframework.integration.handler.ExpressionEvaluatingMessageProcessorTests.java

@SuppressWarnings({ "rawtypes", "unchecked" })
@Test/*from ww  w . j a va 2  s .  c o m*/
public void testProcessMessageWithBeanAsMethodArgument() throws Exception {
    StaticApplicationContext context = new StaticApplicationContext();
    BeanDefinition beanDefinition = new RootBeanDefinition(String.class);
    beanDefinition.getConstructorArgumentValues().addGenericArgumentValue("bar");
    context.registerBeanDefinition("testString", beanDefinition);
    context.registerBeanDefinition(IntegrationContextUtils.INTEGRATION_EVALUATION_CONTEXT_BEAN_NAME,
            new RootBeanDefinition(IntegrationEvaluationContextFactoryBean.class));
    Expression expression = expressionParser.parseExpression("payload.concat(@testString)");
    ExpressionEvaluatingMessageProcessor processor = new ExpressionEvaluatingMessageProcessor(expression);
    processor.setBeanFactory(context);
    processor.afterPropertiesSet();
    GenericMessage<String> message = new GenericMessage<String>("foo");
    assertEquals("foobar", processor.processMessage(message));
}

From source file:org.springframework.integration.handler.ExpressionEvaluatingMessageProcessorTests.java

@SuppressWarnings({ "rawtypes", "unchecked" })
@Test/*w w  w.j a  v  a  2  s  .c o m*/
public void testProcessMessageWithMethodCallOnBean() throws Exception {
    StaticApplicationContext context = new StaticApplicationContext();
    BeanDefinition beanDefinition = new RootBeanDefinition(String.class);
    beanDefinition.getConstructorArgumentValues().addGenericArgumentValue("bar");
    context.registerBeanDefinition(IntegrationContextUtils.INTEGRATION_EVALUATION_CONTEXT_BEAN_NAME,
            new RootBeanDefinition(IntegrationEvaluationContextFactoryBean.class));
    context.registerBeanDefinition("testString", beanDefinition);
    Expression expression = expressionParser.parseExpression("@testString.concat(payload)");
    ExpressionEvaluatingMessageProcessor processor = new ExpressionEvaluatingMessageProcessor(expression);
    processor.setBeanFactory(context);
    processor.afterPropertiesSet();
    GenericMessage<String> message = new GenericMessage<String>("foo");
    assertEquals("barfoo", processor.processMessage(message));
}

From source file:org.springframework.integration.handler.ExpressionEvaluatingMessageProcessorTests.java

@SuppressWarnings({ "rawtypes", "unchecked" })
@Test/*from   w w  w  .  ja  v  a 2s  . c  o m*/
public void testProcessMessageBadExpression() {
    expected.expect(new TypeSafeMatcher<Exception>(Exception.class) {
        private Throwable cause;

        @Override
        public boolean matchesSafely(Exception item) {
            logger.debug(item);
            cause = item.getCause();
            return cause instanceof EvaluationException;
        }

        public void describeTo(Description description) {
            description.appendText("cause to be EvaluationException but was ").appendValue(cause);
        }
    });
    Expression expression = expressionParser.parseExpression("payload.fixMe()");
    ExpressionEvaluatingMessageProcessor processor = new ExpressionEvaluatingMessageProcessor(expression);
    processor.setBeanFactory(mock(BeanFactory.class));
    assertEquals("foo", processor.processMessage(new GenericMessage<String>("foo")));
}