public void setBeanFactory(BeanFactory beanFactory) { this.targetProcessor.setBeanFactory(beanFactory); }
public void setBeanFactory(BeanFactory beanFactory) throws BeansException { if (beanFactory != null) { this.processor.setBeanFactory(beanFactory); } }
@Override public void afterPropertiesSet() { if (this.beanFactory != null) { if (this.directoryExpressionProcessor != null) { this.directoryExpressionProcessor.setBeanFactory(this.beanFactory); } if (this.temporaryDirectoryExpressionProcessor != null) { this.temporaryDirectoryExpressionProcessor.setBeanFactory(this.beanFactory); } if (!this.fileNameGeneratorSet && this.fileNameGenerator instanceof BeanFactoryAware) { ((BeanFactoryAware) this.fileNameGenerator).setBeanFactory(this.beanFactory); } if (this.fileNameProcessor != null) { this.fileNameProcessor.setBeanFactory(this.beanFactory); } } if (this.autoCreateDirectory) { Assert.hasText(this.remoteFileSeparator, "'remoteFileSeparator' must not be empty when 'autoCreateDirectory' is set to 'true'"); } if (this.hasExplicitlySetSuffix && !this.useTemporaryFileName) { this.logger.warn("Since 'use-temporary-file-name' is set to 'false' " + "the value of 'temporary-file-suffix' has no effect"); } }
@Override protected void onInit() { this.processor.setBeanFactory(getBeanFactory()); }
String.class); if (beanFactory != null) { this.exchangeNameGenerator.setBeanFactory(beanFactory); String.class); if (beanFactory != null) { this.routingKeyGenerator.setBeanFactory(beanFactory); new ExpressionEvaluatingMessageProcessor<Object>(this.confirmCorrelationExpression, Object.class); if (beanFactory != null) { this.correlationDataGenerator.setBeanFactory(beanFactory); Integer.class); if (beanFactory != null) { this.delayGenerator.setBeanFactory(beanFactory);
@Override protected MessageHandler createExpressionEvaluatingHandler(Expression expression) { ExpressionEvaluatingMessageProcessor<Object> processor = new ExpressionEvaluatingMessageProcessor<Object>(expression); processor.setBeanFactory(this.getBeanFactory()); ServiceActivatingHandler handler = new ServiceActivatingHandler(processor); handler.setPrimaryExpression(expression); return this.configureHandler(handler); }
@Override protected void onInit() { if (this.destinationExpressionProcessor != null) { this.destinationExpressionProcessor.setBeanFactory(getBeanFactory()); ConversionService conversionService = getConversionService(); if (conversionService != null) { this.destinationExpressionProcessor.setConversionService(conversionService); } } this.evaluationContext = ExpressionUtils.createStandardEvaluationContext(getBeanFactory()); }
@Test public void testProcessMessage() { Expression expression = expressionParser.parseExpression("payload"); ExpressionEvaluatingMessageProcessor<String> processor = new ExpressionEvaluatingMessageProcessor<>(expression); processor.setBeanFactory(mock(BeanFactory.class)); assertEquals("foo", processor.processMessage(new GenericMessage<>("foo"))); }
@Test public void testProcessMessageWithDollarPropertyAccess() { Expression expression = expressionParser.parseExpression("headers.$foo_id"); ExpressionEvaluatingMessageProcessor<String> 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)); }
@Test public void testProcessMessageWithStaticKey() { Expression expression = expressionParser.parseExpression("headers[headers.ID]"); ExpressionEvaluatingMessageProcessor<UUID> processor = new ExpressionEvaluatingMessageProcessor<>(expression); processor.setBeanFactory(mock(BeanFactory.class)); GenericMessage<String> message = new GenericMessage<>("foo"); assertEquals(message.getHeaders().getId(), processor.processMessage(message)); }
@Test public void testProcessMessageWithDollarInBrackets() { Expression expression = expressionParser.parseExpression("headers['$foo_id']"); ExpressionEvaluatingMessageProcessor<String> 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)); }
@Test 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; } @Override public void describeTo(Description description) { description.appendText("cause to be EvaluationException but was ").appendValue(cause); } }); Expression expression = expressionParser.parseExpression("payload.fixMe()"); ExpressionEvaluatingMessageProcessor<String> processor = new ExpressionEvaluatingMessageProcessor<>(expression); processor.setBeanFactory(mock(BeanFactory.class)); assertEquals("foo", processor.processMessage(new GenericMessage<>("foo"))); }
@Test public void testProcessMessageWithVoidResult() throws Exception { @SuppressWarnings("unused") class TestTarget { public void ping(String input) { } } Expression expression = expressionParser.parseExpression("#target.ping(payload)"); ExpressionEvaluatingMessageProcessor<String> 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<>("2"))); }
@Test public void testProcessMessageWithParameterCoercion() throws Exception { @SuppressWarnings("unused") class TestTarget { public String stringify(int number) { return number + ""; } } Expression expression = expressionParser.parseExpression("#target.stringify(payload)"); ExpressionEvaluatingMessageProcessor<String> 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<>("2"))); }
@Test public void testProcessMessageExpressionThrowsCheckedException() { 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 CheckedException; } @Override public void describeTo(Description description) { description.appendText("cause to be CheckedException but was ").appendValue(cause); } }); Expression expression = expressionParser.parseExpression("payload.throwCheckedException()"); ExpressionEvaluatingMessageProcessor<String> processor = new ExpressionEvaluatingMessageProcessor<>(expression); processor.setBeanFactory(mock(BeanFactory.class)); assertEquals("foo", processor.processMessage(new GenericMessage<>(new TestPayload()))); }
@Test public void testProcessMessageExpressionThrowsRuntimeException() { 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 UnsupportedOperationException; } @Override public void describeTo(Description description) { description.appendText("cause to be UnsupportedOperationException but was ").appendValue(cause); } }); Expression expression = expressionParser.parseExpression("payload.throwRuntimeException()"); ExpressionEvaluatingMessageProcessor<String> processor = new ExpressionEvaluatingMessageProcessor<>(expression); processor.setBeanFactory(mock(BeanFactory.class)); assertEquals("foo", processor.processMessage(new GenericMessage<>(new TestPayload()))); }
@Test 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)); context.refresh(); Expression expression = expressionParser.parseExpression("payload.concat(@testString)"); ExpressionEvaluatingMessageProcessor<String> processor = new ExpressionEvaluatingMessageProcessor<>(expression); processor.setBeanFactory(context); processor.afterPropertiesSet(); GenericMessage<String> message = new GenericMessage<>("foo"); assertEquals("foobar", processor.processMessage(message)); }
@Test 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); context.refresh(); Expression expression = expressionParser.parseExpression("@testString.concat(payload)"); ExpressionEvaluatingMessageProcessor<String> processor = new ExpressionEvaluatingMessageProcessor<>(expression); processor.setBeanFactory(context); processor.afterPropertiesSet(); GenericMessage<String> message = new GenericMessage<>("foo"); assertEquals("barfoo", processor.processMessage(message)); }
@Test public void testProcessMessageWithParameterCoercionToNonPrimitive() throws Exception { class TestTarget { @SuppressWarnings("unused") public String find(Resource[] resources) { return Arrays.toString(resources); } } Expression expression = expressionParser.parseExpression("#target.find(payload)"); ExpressionEvaluatingMessageProcessor<String> processor = new ExpressionEvaluatingMessageProcessor<>(expression); AbstractApplicationContext applicationContext = new GenericApplicationContext(); processor.setBeanFactory(applicationContext); IntegrationEvaluationContextFactoryBean factoryBean = new IntegrationEvaluationContextFactoryBean(); factoryBean.setApplicationContext(applicationContext); applicationContext.getBeanFactory() .registerSingleton(IntegrationContextUtils.INTEGRATION_EVALUATION_CONTEXT_BEAN_NAME, factoryBean.getObject()); applicationContext.refresh(); processor.afterPropertiesSet(); EvaluationContext evaluationContext = TestUtils.getPropertyValue(processor, "evaluationContext", EvaluationContext.class); evaluationContext.setVariable("target", new TestTarget()); String result = processor.processMessage(new GenericMessage<>("classpath*:*-test.xml")); assertTrue("Wrong result: " + result, result.contains("log4j2-test.xml")); }
new ExpressionEvaluatingMessageProcessor<>(new SpelExpressionParser().parseExpression("payload")); BeanFactory beanFactory = Mockito.mock(BeanFactory.class); idempotentKeyStrategy.setBeanFactory(beanFactory); IdempotentReceiverInterceptor idempotentReceiverInterceptor = new IdempotentReceiverInterceptor(new MetadataStoreSelector(idempotentKeyStrategy, store));