Java Examples for org.springframework.integration.channel.DirectChannel

The following java examples will help you to understand the usage of org.springframework.integration.channel.DirectChannel. These source code samples are taken from different open source projects.

Example 1
Project: spring-integration-flow-master  File: FlowUtilsTests.java View source code
@Test
public void buildBridge() {
    SubscribableChannel inputChannel = new DirectChannel();
    SubscribableChannel outputChannel = new PublishSubscribeChannel();
    PollableChannel receiveChannel = new QueueChannel();
    FlowUtils.bridgeChannels(inputChannel, outputChannel);
    FlowUtils.bridgeChannels(outputChannel, receiveChannel);
    Message<?> message = new GenericMessage<String>("hello");
    inputChannel.send(message);
    Message<?> result = receiveChannel.receive(100);
    assertNotNull(result);
    assertSame(message, result);
}
Example 2
Project: opencredo-esper-master  File: UnmatchedListenerInboundChannelAdapterParserTest.java View source code
@Test
public void sendAnEsperContextMessageAndAssertThatListenerIsInvoked() {
    template = new EsperTemplate();
    template.initialize();
    template.sendEvent(new MessageContext(new DirectChannel(), "testSourceId"));
    template.sendEvent("A simple string event object!");
    assertEquals(1, listener.getNumberOfTimesInvoked());
    assertEquals(1, unmatchedListener.getNumberOfTimesInvoked());
}
Example 3
Project: spring-boot-master  File: SpringIntegrationCompilerAutoConfiguration.java View source code
@Override
public void applyImports(ImportCustomizer imports) {
    imports.addImports("org.springframework.messaging.Message", "org.springframework.messaging.MessageChannel", "org.springframework.messaging.PollableChannel", "org.springframework.messaging.SubscribableChannel", "org.springframework.messaging.MessageHeaders", "org.springframework.integration.support.MessageBuilder", "org.springframework.integration.channel.DirectChannel", "org.springframework.integration.channel.QueueChannel", "org.springframework.integration.channel.ExecutorChannel", "org.springframework.integration.core.MessagingTemplate", "org.springframework.integration.config.EnableIntegration");
    imports.addStarImports("org.springframework.integration.annotation");
}
Example 4
Project: spring-integration-samples-master  File: ApplicationTests.java View source code
@Test
public void testWebSockets() throws InterruptedException {
    System.setProperty("local.server.port", this.port);
    ConfigurableApplicationContext ctx = new ClassPathXmlApplicationContext("client-context.xml", org.springframework.integration.samples.websocket.standard.client.Application.class);
    DirectChannel webSocketInputChannel = ctx.getBean("webSocketInputChannel", DirectChannel.class);
    final CountDownLatch stopLatch = new CountDownLatch(2);
    webSocketInputChannel.addInterceptor(new ChannelInterceptorAdapter() {

        @Override
        public void postSend(Message<?> message, MessageChannel channel, boolean sent) {
            Object payload = message.getPayload();
            assertThat(payload, instanceOf(String.class));
            Date date = null;
            try {
                date = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.DEFAULT).parse((String) payload);
            } catch (ParseException e) {
                fail("fail to parse date");
            }
            assertThat(new Date().compareTo(date), greaterThanOrEqualTo(0));
            stopLatch.countDown();
        }
    });
    assertTrue(stopLatch.await(10, TimeUnit.SECONDS));
    ctx.close();
}
Example 5
Project: camel-master  File: SpringIntegrationProducer.java View source code
@Override
protected void doStart() throws Exception {
    super.doStart();
    if (getEndpoint().getMessageChannel() == null) {
        String outputChannelName = getEndpoint().getDefaultChannel();
        if (ObjectHelper.isEmpty(outputChannelName)) {
            outputChannelName = getEndpoint().getInputChannel();
        }
        ObjectHelper.notEmpty(outputChannelName, "OutputChannelName", getEndpoint());
        outputChannel = destinationResolver.resolveDestination(outputChannelName);
    } else {
        outputChannel = getEndpoint().getMessageChannel();
    }
    if (outputChannel == null) {
        throw new IllegalArgumentException("Cannot resolve OutputChannel on " + getEndpoint());
    }
    // if we do in-out we need to setup the input channel as well
    if (getEndpoint().isInOut()) {
        // we need to setup right inputChannel for further processing
        ObjectHelper.notEmpty(getEndpoint().getInputChannel(), "InputChannel", getEndpoint());
        inputChannel = (DirectChannel) destinationResolver.resolveDestination(getEndpoint().getInputChannel());
        if (inputChannel == null) {
            throw new IllegalArgumentException("Cannot resolve InputChannel on " + getEndpoint());
        }
    }
}
Example 6
Project: spring-cloud-stream-master  File: StreamListenerHandlerMethodTests.java View source code
@Test
public void testStreamListenerMethodWithTargetBeanFromOutside() throws Exception {
    ConfigurableApplicationContext context = SpringApplication.run(TestStreamListenerMethodWithTargetBeanFromOutside.class, "--server.port=0");
    Sink sink = context.getBean(Sink.class);
    final String testMessageToSend = "testing";
    sink.input().send(MessageBuilder.withPayload(testMessageToSend).build());
    DirectChannel directChannel = (DirectChannel) context.getBean(testMessageToSend.toUpperCase(), MessageChannel.class);
    MessageCollector messageCollector = context.getBean(MessageCollector.class);
    Message<?> result = messageCollector.forChannel(directChannel).poll(1000, TimeUnit.MILLISECONDS);
    sink.input().send(MessageBuilder.withPayload(testMessageToSend).build());
    assertThat(result).isNotNull();
    assertThat(result.getPayload()).isEqualTo(testMessageToSend.toUpperCase());
    context.close();
}
Example 7
Project: spring-integration-master  File: IntegrationFlowDefinition.java View source code
/**
	 * Populate the {@code Wire Tap} EI Pattern specific
	 * {@link org.springframework.messaging.support.ChannelInterceptor} implementation
	 * to the current {@link #currentMessageChannel}.
	 * <p> It is useful when an implicit {@link MessageChannel} is used between endpoints:
	 * <pre class="code">
	 * {@code
	 *  .transform("payload")
	 *  .wireTap(new WireTap(tapChannel().selector(m -> m.getPayload().equals("foo")))
	 *  .channel("foo")
	 * }
	 * </pre>
	 * This method can be used after any {@link #channel} for explicit {@link MessageChannel},
	 * but with the caution do not impact existing {@link org.springframework.messaging.support.ChannelInterceptor}s.
	 * @param wireTapSpec the {@link WireTapSpec} to use.
	 * <p> When this EIP-method is used in the end of flow, it appends {@code nullChannel} to terminate flow properly,
	 * Otherwise {@code Dispatcher has no subscribers} exception is thrown for implicit {@link DirectChannel}.
	 * @return the current {@link IntegrationFlowDefinition}.
	 */
public B wireTap(WireTapSpec wireTapSpec) {
    WireTap interceptor = wireTapSpec.get();
    if (this.currentMessageChannel == null || !(this.currentMessageChannel instanceof ChannelInterceptorAware)) {
        this.implicitChannel = true;
        channel(new DirectChannel());
    }
    addComponent(wireTapSpec);
    ((ChannelInterceptorAware) this.currentMessageChannel).addInterceptor(interceptor);
    return _this();
}
Example 8
Project: spring-hadoop-master  File: IntegrationAmServiceParser.java View source code
@Override
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
    boolean hasChannelAttribute = element.hasAttribute("channel");
    if (!hasChannelAttribute) {
        // service dispatch channel
        BeanDefinitionBuilder defBuilder = BeanDefinitionBuilder.genericBeanDefinition(DirectChannel.class);
        AbstractBeanDefinition beanDef = defBuilder.getBeanDefinition();
        String channelBeanName = BeanDefinitionReaderUtils.generateBeanName(beanDef, parserContext.getRegistry());
        parserContext.registerBeanComponent(new BeanComponentDefinition(beanDef, channelBeanName));
        builder.addPropertyReference("channel", channelBeanName);
        // serializer
        defBuilder = BeanDefinitionBuilder.genericBeanDefinition(MindRpcSerializer.class);
        beanDef = defBuilder.getBeanDefinition();
        String serializerBeanName = BeanDefinitionReaderUtils.generateBeanName(beanDef, parserContext.getRegistry());
        parserContext.registerBeanComponent(new BeanComponentDefinition(beanDef, serializerBeanName));
        // socket support
        defBuilder = BeanDefinitionBuilder.genericBeanDefinition(DefaultPortExposingTcpSocketSupport.class);
        beanDef = defBuilder.getBeanDefinition();
        String socketSupportBeanName = BeanDefinitionReaderUtils.generateBeanName(beanDef, parserContext.getRegistry());
        parserContext.registerBeanComponent(new BeanComponentDefinition(beanDef, socketSupportBeanName));
        builder.addPropertyReference("socketSupport", socketSupportBeanName);
        // connection factory
        defBuilder = BeanDefinitionBuilder.genericBeanDefinition(TcpNetServerConnectionFactory.class);
        String port = element.hasAttribute("default-port") ? element.getAttribute("default-port") : "0";
        defBuilder.addConstructorArgValue(port);
        defBuilder.addPropertyReference("tcpSocketSupport", socketSupportBeanName);
        defBuilder.addPropertyReference("serializer", serializerBeanName);
        defBuilder.addPropertyReference("deserializer", serializerBeanName);
        beanDef = defBuilder.getBeanDefinition();
        String connectionFactoryBeanName = BeanDefinitionReaderUtils.generateBeanName(beanDef, parserContext.getRegistry());
        parserContext.registerBeanComponent(new BeanComponentDefinition(beanDef, connectionFactoryBeanName));
        // gateway
        defBuilder = BeanDefinitionBuilder.genericBeanDefinition(TcpInboundGateway.class);
        defBuilder.addPropertyReference("connectionFactory", connectionFactoryBeanName);
        defBuilder.addPropertyReference("requestChannel", channelBeanName);
        beanDef = defBuilder.getBeanDefinition();
        String gatewayBeanName = BeanDefinitionReaderUtils.generateBeanName(beanDef, parserContext.getRegistry());
        parserContext.registerBeanComponent(new BeanComponentDefinition(beanDef, gatewayBeanName));
        builder.addPropertyReference("channel", channelBeanName);
    } else {
        YarnNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "channel");
    }
    YarnNamespaceUtils.setValueIfAttributeDefined(builder, element, "service-impl");
    YarnNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "service-ref");
    YarnNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "object-mapper");
    YarnNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "socket-support");
}
Example 9
Project: spring-integration-java-dsl-master  File: IntegrationFlowDefinition.java View source code
/**
	 * Populate the {@code Wire Tap} EI Pattern specific
	 * {@link org.springframework.messaging.support.ChannelInterceptor} implementation
	 * to the current {@link #currentMessageChannel}.
	 * It is useful when an implicit {@link MessageChannel} is used between endpoints:
	 * <pre class="code">
	 * {@code
	 *  .transform("payload")
	 *  .wireTap(new WireTap(tapChannel().selector(m -> m.getPayload().equals("foo")))
	 *  .channel("foo")
	 * }
	 * </pre>
	 * This method can be used after any {@link #channel} for explicit {@link MessageChannel},
	 * but with the caution do not impact existing {@link org.springframework.messaging.support.ChannelInterceptor}s.
	 * @param wireTapSpec the {@link WireTapSpec} to use.
	 * @return the current {@link IntegrationFlowDefinition}.
	 * @since 1.2
	 */
public B wireTap(WireTapSpec wireTapSpec) {
    WireTap interceptor = wireTapSpec.get();
    if (this.currentMessageChannel == null || !(this.currentMessageChannel instanceof ChannelInterceptorAware)) {
        channel(new DirectChannel());
    }
    addComponents(wireTapSpec.getComponentsToRegister());
    ((ChannelInterceptorAware) this.currentMessageChannel).addInterceptor(interceptor);
    return _this();
}
Example 10
Project: spring-xd-master  File: RabbitMessageBus.java View source code
private void doRegisterConsumer(String name, MessageChannel moduleInputChannel, Queue queue, RabbitPropertiesAccessor properties, boolean isPubSub) {
    // Fix for XD-2503
    // Temporarily overrides the thread context classloader with the one where the SimpleMessageListenerContainer
    // is defined
    // This allows for the proxying that happens while initializing the SimpleMessageListenerContainer to work
    // correctly
    ClassLoader originalClassloader = Thread.currentThread().getContextClassLoader();
    try {
        ClassUtils.overrideThreadContextClassLoader(SimpleMessageListenerContainer.class.getClassLoader());
        SimpleMessageListenerContainer listenerContainer = new SimpleMessageListenerContainer(this.connectionFactory);
        listenerContainer.setAcknowledgeMode(properties.getAcknowledgeMode(this.defaultAcknowledgeMode));
        listenerContainer.setChannelTransacted(properties.getTransacted(this.defaultChannelTransacted));
        listenerContainer.setDefaultRequeueRejected(properties.getRequeueRejected(this.defaultDefaultRequeueRejected));
        int concurrency = properties.getConcurrency(this.defaultConcurrency);
        concurrency = concurrency > 0 ? concurrency : 1;
        listenerContainer.setConcurrentConsumers(concurrency);
        int maxConcurrency = properties.getMaxConcurrency(this.defaultMaxConcurrency);
        if (maxConcurrency > concurrency) {
            listenerContainer.setMaxConcurrentConsumers(maxConcurrency);
        }
        listenerContainer.setPrefetchCount(properties.getPrefetchCount(this.defaultPrefetchCount));
        listenerContainer.setTxSize(properties.getTxSize(this.defaultTxSize));
        listenerContainer.setTaskExecutor(new SimpleAsyncTaskExecutor(queue.getName() + "-"));
        listenerContainer.setQueues(queue);
        int maxAttempts = properties.getMaxAttempts(this.defaultMaxAttempts);
        if (maxAttempts > 1 || properties.getRepublishToDLQ(this.defaultRepublishToDLQ)) {
            RetryOperationsInterceptor retryInterceptor = RetryInterceptorBuilder.stateless().maxAttempts(maxAttempts).backOffOptions(properties.getBackOffInitialInterval(this.defaultBackOffInitialInterval), properties.getBackOffMultiplier(this.defaultBackOffMultiplier), properties.getBackOffMaxInterval(this.defaultBackOffMaxInterval)).recoverer(determineRecoverer(name, properties)).build();
            listenerContainer.setAdviceChain(new Advice[] { retryInterceptor });
        }
        listenerContainer.setAfterReceivePostProcessors(this.decompressingPostProcessor);
        listenerContainer.setMessagePropertiesConverter(this.inboundMessagePropertiesConverter);
        listenerContainer.afterPropertiesSet();
        AmqpInboundChannelAdapter adapter = new AmqpInboundChannelAdapter(listenerContainer);
        adapter.setBeanFactory(this.getBeanFactory());
        DirectChannel bridgeToModuleChannel = new DirectChannel();
        bridgeToModuleChannel.setBeanFactory(this.getBeanFactory());
        bridgeToModuleChannel.setBeanName(name + ".bridge");
        adapter.setOutputChannel(bridgeToModuleChannel);
        adapter.setBeanName("inbound." + name);
        DefaultAmqpHeaderMapper mapper = new DefaultAmqpHeaderMapper();
        mapper.setRequestHeaderNames(properties.getRequestHeaderPattens(this.defaultRequestHeaderPatterns));
        mapper.setReplyHeaderNames(properties.getReplyHeaderPattens(this.defaultReplyHeaderPatterns));
        adapter.setHeaderMapper(mapper);
        adapter.afterPropertiesSet();
        Binding consumerBinding = Binding.forConsumer(name, adapter, moduleInputChannel, properties);
        addBinding(consumerBinding);
        ReceivingHandler convertingBridge = new ReceivingHandler();
        convertingBridge.setOutputChannel(moduleInputChannel);
        convertingBridge.setBeanName(name + ".convert.bridge");
        convertingBridge.afterPropertiesSet();
        bridgeToModuleChannel.subscribe(convertingBridge);
        consumerBinding.start();
    } finally {
        Thread.currentThread().setContextClassLoader(originalClassloader);
    }
}
Example 11
Project: miso-lims-master  File: DefaultNotifier.java View source code
public static void main(String[] args) {
    log.info("Starting notification system...");
    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("/notification.xml");
    ChannelResolver channelResolver = new BeanFactoryChannelResolver(context);
    NotificationUtils notificationUtils = new NotificationUtils();
    File propsPath = new File(".", "notification.properties");
    Properties props = new Properties();
    try {
        props.load(new FileReader(propsPath));
        CompositeFileListFilter statusFilter = (CompositeFileListFilter) context.getBean("statusFilter");
        Map<String, Set<File>> allDataPaths = new HashMap<String, Set<File>>();
        for (String platformType : PlatformType.getKeys()) {
            platformType = platformType.toLowerCase();
            if (props.containsKey(platformType + ".splitterBatchSize")) {
                notificationUtils.setSplitterBatchSize(Integer.parseInt(props.getProperty(platformType + ".splitterBatchSize")));
            }
            if (props.containsKey(platformType + ".dataPaths")) {
                log.debug("Resolving " + platformType + ".dataPaths ...");
                String dataPaths = props.getProperty(platformType + ".dataPaths");
                Set<File> paths = new HashSet<File>();
                for (String path : dataPaths.split(",")) {
                    File f = new File(path);
                    if (f.exists() && f.canRead() && f.isDirectory()) {
                        paths.add(f);
                        log.debug("Added " + path);
                    }
                }
                allDataPaths.put(platformType, paths);
                if (platformType.equals("solid")) {
                    for (String key : props.stringPropertyNames()) {
                        if (key.startsWith("solid.wsdl.url.")) {
                            String serviceName = key.substring(key.lastIndexOf(".") + 1);
                            log.debug("Creating service: " + serviceName);
                            SolidServiceWrapper ssw = new SolidServiceWrapper(serviceName, URI.create(props.getProperty(key)).toURL());
                            context.getBeanFactory().registerSingleton(serviceName, ssw);
                        }
                    }
                }
                if (platformType.equals("pacbio")) {
                    for (String key : props.stringPropertyNames()) {
                        if (key.startsWith("pacbio.ws.url.")) {
                            String serviceName = key.substring(key.lastIndexOf(".") + 1);
                            log.debug("Creating service: " + serviceName);
                            PacBioServiceWrapper psw = new PacBioServiceWrapper(serviceName, URI.create(props.getProperty(key)));
                            context.getBeanFactory().registerSingleton(serviceName, psw);
                        }
                    }
                }
                RunFolderScanner rfs = (RunFolderScanner) context.getBean(platformType + "StatusRecursiveScanner");
                MultiFileQueueMessageSource mfqms = new MultiFileQueueMessageSource();
                mfqms.setBeanName(platformType + "MultiFileQueueMessageSource");
                mfqms.setBeanFactory(context.getBeanFactory());
                mfqms.setScanner(rfs);
                mfqms.setFilter(statusFilter);
                mfqms.setDirectories(paths);
                //make sure all the directories are rescanned each poll
                mfqms.setScanEachPoll(false);
                mfqms.afterPropertiesSet();
                SourcePollingChannelAdapter spca = new SourcePollingChannelAdapter();
                spca.setBeanName(platformType + "StatusFileSource");
                spca.setBeanFactory(context.getBeanFactory());
                spca.setMaxMessagesPerPoll(1);
                DynamicTrigger trigger;
                if (props.containsKey(platformType + ".scanRate")) {
                    trigger = new DynamicTrigger(Integer.parseInt(props.getProperty(platformType + ".scanRate")), TimeUnit.MILLISECONDS);
                } else {
                    trigger = new DynamicTrigger(600000, TimeUnit.MILLISECONDS);
                }
                trigger.setFixedRate(false);
                spca.setTrigger(trigger);
                spca.setSource(mfqms);
                spca.setOutputChannel(channelResolver.resolveChannelName(platformType + "StatusFileInputChannel"));
                spca.setAutoStartup(false);
                spca.afterPropertiesSet();
                DirectChannel outputChannel = (DirectChannel) channelResolver.resolveChannelName(platformType + "StatusChannel");
                outputChannel.setBeanName(platformType + "StatusChannel");
                outputChannel.setBeanFactory(context.getBeanFactory());
                if (props.containsKey("wiretap.enabled") && "true".equals(props.get("wiretap.enabled"))) {
                    //set up wire tap
                    DirectChannel wireTapChannel = (DirectChannel) channelResolver.resolveChannelName("wireTapChannel");
                    wireTapChannel.setBeanName("wireTapChannel");
                    wireTapChannel.setBeanFactory(context.getBeanFactory());
                    LoggingHandler wireTapLogger = new LoggingHandler("TRACE");
                    wireTapLogger.setBeanName("OutputWireTapper");
                    wireTapLogger.setBeanFactory(context.getBeanFactory());
                    wireTapLogger.setLoggerName("wiretap");
                    wireTapLogger.setShouldLogFullMessage(true);
                    wireTapLogger.afterPropertiesSet();
                    wireTapChannel.subscribe(wireTapLogger);
                    List<ChannelInterceptor> ints = new ArrayList<ChannelInterceptor>();
                    WireTap wt = new WireTap(wireTapChannel);
                    ints.add(wt);
                    outputChannel.setInterceptors(ints);
                }
                DirectChannel signChannel = (DirectChannel) channelResolver.resolveChannelName(platformType + "MessageSignerChannel");
                signChannel.setBeanFactory(context.getBeanFactory());
                DirectChannel splitterChannel = (DirectChannel) channelResolver.resolveChannelName(platformType + "SplitterChannel");
                splitterChannel.setBeanFactory(context.getBeanFactory());
                if (props.containsKey(platformType + ".http.statusEndpointURIs")) {
                    log.debug("Resolving " + platformType + ".http.statusEndpointURIs ...");
                    String statusEndpointURIs = props.getProperty(platformType + ".http.statusEndpointURIs");
                    for (String uri : statusEndpointURIs.split(",")) {
                        //split into multiple messages
                        MethodInvokingSplitter mis = new MethodInvokingSplitter(notificationUtils, "splitMessage");
                        mis.setBeanName(platformType + "Splitter");
                        mis.setBeanFactory(context.getBeanFactory());
                        mis.setChannelResolver(channelResolver);
                        mis.setOutputChannel(signChannel);
                        splitterChannel.subscribe(mis);
                        //sign messages and inject url into message headers via HeaderEnricher
                        Map<String, SignedHeaderValueMessageProcessor<String>> urlHeaderToSign = new HashMap<String, SignedHeaderValueMessageProcessor<String>>();
                        URI su = URI.create(uri);
                        urlHeaderToSign.put("x-url", new SignedHeaderValueMessageProcessor<String>(su.getPath()));
                        urlHeaderToSign.put("x-user", new SignedHeaderValueMessageProcessor<String>("notification"));
                        NotificationMessageEnricher signer = new NotificationMessageEnricher(urlHeaderToSign);
                        signer.setMessageProcessor(new MethodInvokingMessageProcessor(notificationUtils, "signMessageHeaders"));
                        MessageTransformingHandler mth = new MessageTransformingHandler(signer);
                        mth.setBeanName(platformType + "Signer");
                        mth.setBeanFactory(context.getBeanFactory());
                        mth.setChannelResolver(channelResolver);
                        mth.setOutputChannel(outputChannel);
                        mth.setRequiresReply(false);
                        signChannel.subscribe(mth);
                        DefaultHttpHeaderMapper hm = new DefaultHttpHeaderMapper();
                        hm.setUserDefinedHeaderPrefix("");
                        String[] names = { "Accept", "x-url", "x-signature", "x-user" };
                        hm.setBeanFactory(context.getBeanFactory());
                        hm.setOutboundHeaderNames(names);
                        hm.setInboundHeaderNames(names);
                        HttpRequestExecutingMessageHandler statusNotifier = new HttpRequestExecutingMessageHandler(uri);
                        statusNotifier.setBeanName(platformType + "StatusNotifier");
                        statusNotifier.setBeanFactory(context.getBeanFactory());
                        statusNotifier.setChannelResolver(channelResolver);
                        statusNotifier.setHttpMethod(HttpMethod.POST);
                        statusNotifier.setCharset("UTF-8");
                        statusNotifier.setHeaderMapper(hm);
                        statusNotifier.setExtractPayload(true);
                        statusNotifier.setOrder(3);
                        statusNotifier.setRequiresReply(false);
                        statusNotifier.setExpectReply(false);
                        outputChannel.subscribe(statusNotifier);
                    }
                }
                if (props.containsKey(platformType + ".tcp.host") && props.containsKey(platformType + ".tcp.port")) {
                    String host = props.getProperty(platformType + ".tcp.host");
                    int port = Integer.parseInt(props.getProperty(platformType + ".tcp.port"));
                    TcpNetClientConnectionFactory tnccf = new TcpNetClientConnectionFactory(host, port);
                    tnccf.setSoTimeout(10000);
                    tnccf.setSingleUse(true);
                    TcpOutboundGateway tog = new TcpOutboundGateway();
                    tog.setBeanName(platformType + "StatusNotifier");
                    tog.setBeanFactory(context.getBeanFactory());
                    tog.setChannelResolver(channelResolver);
                    tog.setConnectionFactory(tnccf);
                    tog.setRequestTimeout(10000);
                    tog.setRequiresReply(false);
                    tog.setOutputChannel(outputChannel);
                    outputChannel.subscribe(tog);
                }
                if ((!props.containsKey(platformType + ".tcp.host") || !props.containsKey(platformType + ".tcp.port")) && !props.containsKey(platformType + ".http.statusEndpointURIs")) {
                    log.error("You have specified a list of paths to scan, but no valid endpoint to notify. Please add a <platform>.http.statusEndpointURIs property and/or <platform>.tcp.host/port properties in notification.properties");
                } else {
                    spca.start();
                }
            } else {
                log.warn("You have not specified a list of " + platformType + " paths to scan. Please add a " + platformType.toLowerCase() + ".dataPaths property in notification.properties if you wish to track this platform");
            }
            NotificationRequestManager nrm = (NotificationRequestManager) context.getBean("notificationRequestManager");
            nrm.setApplicationContext(context);
            nrm.setDataPaths(allDataPaths);
        }
    } catch (FileNotFoundException e) {
        log.error("Cannot find a notification.properties file in the same directory as the notification jar. Please add one");
    } catch (IOException e) {
        log.error("Cannot read notification.properties. Please check permissions/availability");
    } catch (Exception e) {
        log.error("Something else went wrong:" + e.getMessage());
    }
}
Example 12
Project: spring-bus-master  File: MessageBusAdapter.java View source code
/**
	 * Creates a wiretap on the output channel and binds the tap channel to
	 * {@link MessageBus}'s message target.
	 *
	 * @param tapChannelName the name of the tap channel
	 * @param localName the channel to tap
	 */
private void createAndBindTapChannel(String tapChannelName, String localName) {
    logger.info("creating and binding tap channel for {}", tapChannelName);
    MessageChannel channel = this.channelResolver.resolveDestination(localName);
    if (channel instanceof ChannelInterceptorAware) {
        DirectChannel tapChannel = new DirectChannel();
        tapChannel.setBeanName(tapChannelName + ".tap.bridge");
        // TODO
        this.messageBus.bindPubSubProducer(// TODO
        tapChannelName, // TODO
        tapChannel, // TODO
        null);
        // tap
        // producer
        // props
        tapOutputChannel(tapChannel, (ChannelInterceptorAware) channel);
    } else {
        if (logger.isDebugEnabled()) {
            logger.debug("output channel is not interceptor aware. Tap will not be created.");
        }
    }
}
Example 13
Project: mbit-cloud-platform-master  File: RedisMessageBus.java View source code
private void doRegisterConsumer(String bindingName, String channelName, MessageChannel moduleInputChannel, MessageProducerSupport adapter, RedisPropertiesAccessor properties) {
    DirectChannel bridgeToModuleChannel = new DirectChannel();
    bridgeToModuleChannel.setBeanFactory(this.getBeanFactory());
    bridgeToModuleChannel.setBeanName(channelName + ".bridge");
    MessageChannel bridgeInputChannel = addRetryIfNeeded(channelName, bridgeToModuleChannel, properties);
    adapter.setOutputChannel(bridgeInputChannel);
    adapter.setBeanName("inbound." + bindingName);
    adapter.afterPropertiesSet();
    Binding consumerBinding = Binding.forConsumer(bindingName, adapter, moduleInputChannel, properties);
    addBinding(consumerBinding);
    ReceivingHandler convertingBridge = new ReceivingHandler();
    convertingBridge.setOutputChannel(moduleInputChannel);
    convertingBridge.setBeanName(channelName + ".bridge.handler");
    convertingBridge.afterPropertiesSet();
    bridgeToModuleChannel.subscribe(convertingBridge);
    consumerBinding.start();
}
Example 14
Project: spring-integration-eventbus-master  File: EventBusConfig.java View source code
@Bean
public MessageChannel eventBusInputChannel() {
    return new DirectChannel();
}
Example 15
Project: spring-xd-samples-master  File: ModuleConfiguration.java View source code
@Bean
MessageChannel input() {
    return new DirectChannel();
}
Example 16
Project: scratches-master  File: JmsRequestReply.java View source code
@Bean
public MessageChannel requests() {
    return new DirectChannel();
}
Example 17
Project: SIA-master  File: MessagingConfig.java View source code
@Bean
public MessageChannel amqpOutboundChannel() {
    return new DirectChannel();
}
Example 18
Project: spring-xd-modules-master  File: XsltTransformerModuleConfig.java View source code
@Bean
public MessageChannel input() {
    return new DirectChannel();
}
Example 19
Project: techtips-master  File: Application.java View source code
@Bean(name = "webSocketFlow.input")
MessageChannel requestChannel() {
    return new DirectChannel();
}
Example 20
Project: building-microservices-master  File: WebSocketIntegration.java View source code
@Bean(name = "webSocketFlow.input")
public MessageChannel requestChannel() {
    return new DirectChannel();
}
Example 21
Project: cloudfoundry-ftp-service-broker-master  File: FtpServerProvisionerClientAutoConfiguration.java View source code
@Bean(name = PROVISION_REQUESTS_CHANNEL_NAME)
@ConditionalOnMissingBean(value = MessageChannel.class, name = PROVISION_REQUESTS_CHANNEL_NAME)
MessageChannel provisionFtpRequestsChannel() {
    return new DirectChannel();
}
Example 22
Project: SpringBatchWebinar-master  File: IntegrationConfiguration.java View source code
@Bean
protected DirectChannel twitterChannel() {
    return new DirectChannel();
}
Example 23
Project: sample-membership-master  File: Membership.java View source code
@Bean
public DirectChannel inputChannel() {
    return new DirectChannel();
}
Example 24
Project: spring-cloud-bus-master  File: BusAutoConfigurationTests.java View source code
@PostConstruct
public void init() {
    ((DirectChannel) this.cloudBusOutboundChannel).addInterceptor(interceptor());
}
Example 25
Project: spring-cloud-stream-modules-master  File: CassandraSinkConfiguration.java View source code
@Bean
public MessageChannel toSink() {
    return new DirectChannel();
}