@Test public void testParentChildAnnotationConfigurationFromAnotherPackage() { AnnotationConfigApplicationContext child = new AnnotationConfigApplicationContext(); child.register(org.springframework.integration.configuration2.ChildConfiguration.class); child.setParent(this.context); child.refresh(); AbstractMessageChannel foo = child.getBean("foo", AbstractMessageChannel.class); ChannelInterceptor baz = child.getBean("baz", ChannelInterceptor.class); assertTrue(foo.getChannelInterceptors().contains(baz)); assertFalse(this.output.getChannelInterceptors().contains(baz)); child.close(); }
@Override public void onInit() throws Exception { if (this.initialized) { return; } super.onInit(); if (this.maxSubscribers == null) { Integer maxSubscribers = getIntegrationProperty( IntegrationProperties.CHANNELS_MAX_BROADCAST_SUBSCRIBERS, Integer.class); this.setMaxSubscribers(maxSubscribers); } if (this.messageConverter == null) { this.messageConverter = new SimpleMessageConverter(); } if (this.messageConverter instanceof BeanFactoryAware) { ((BeanFactoryAware) this.messageConverter).setBeanFactory(this.getBeanFactory()); } this.container.setConnectionFactory(this.connectionFactory); if (!(this.taskExecutor instanceof ErrorHandlingTaskExecutor)) { ErrorHandler errorHandler = new MessagePublishingErrorHandler(new BeanFactoryChannelResolver(this.getBeanFactory())); this.taskExecutor = new ErrorHandlingTaskExecutor(this.taskExecutor, errorHandler); } this.container.setTaskExecutor(this.taskExecutor); MessageListenerAdapter adapter = new MessageListenerAdapter(new MessageListenerDelegate()); adapter.setSerializer(this.serializer); adapter.afterPropertiesSet(); this.container.addMessageListener(adapter, new ChannelTopic(this.topicName)); this.container.afterPropertiesSet(); this.dispatcher.setBeanFactory(this.getBeanFactory()); this.initialized = true; }