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

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

Introduction

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

Prototype

public ExpressionEvaluatingMessageProcessor(String expression) 

Source Link

Document

Create an ExpressionEvaluatingMessageProcessor for the given expression.

Usage

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

@SuppressWarnings({ "rawtypes", "unchecked" })
@Test// ww  w . j  a  v a 2s  . 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/*ww w  .j ava 2 s .  c  o  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/*from   w ww .  ja v a  2s .  co 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//  w  ww .jav  a  2  s .  co  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//from ww  w .j av a2s .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  va  2  s. co  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  a v a  2s.  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   w  w  w.j ava 2 s . co  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/*from  w  ww  . j  a  v a  2 s . c om*/
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/*  w w  w  .  j a  v  a  2  s.c om*/
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")));
}