当前位置: 首页>>代码示例>>Java>>正文


Java MessageChannel类代码示例

本文整理汇总了Java中org.springframework.messaging.MessageChannel的典型用法代码示例。如果您正苦于以下问题:Java MessageChannel类的具体用法?Java MessageChannel怎么用?Java MessageChannel使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


MessageChannel类属于org.springframework.messaging包,在下文中一共展示了MessageChannel类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createProducerMessageHandler

import org.springframework.messaging.MessageChannel; //导入依赖的package包/类
@Override
protected MessageHandler createProducerMessageHandler(ProducerDestination destination,
		ExtendedProducerProperties<KinesisProducerProperties> producerProperties, MessageChannel errorChannel) {

	KinesisMessageHandler kinesisMessageHandler = new KinesisMessageHandler(this.amazonKinesis);
	kinesisMessageHandler.setSync(producerProperties.getExtension().isSync());
	kinesisMessageHandler.setSendTimeout(producerProperties.getExtension().getSendTimeout());
	kinesisMessageHandler.setStream(destination.getName());
	if (producerProperties.isPartitioned()) {
		kinesisMessageHandler
				.setPartitionKeyExpressionString("'partitionKey-' + headers." + BinderHeaders.PARTITION_HEADER);
	}
	kinesisMessageHandler.setFailureChannel(errorChannel);
	kinesisMessageHandler.setBeanFactory(getBeanFactory());

	return kinesisMessageHandler;
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-stream-binder-aws-kinesis,代码行数:18,代码来源:KinesisMessageChannelBinder.java

示例2: test

import org.springframework.messaging.MessageChannel; //导入依赖的package包/类
@Test
public void test() throws Exception {
	TestSupportBinder binder = (TestSupportBinder) this.binderFactory.getBinder(null);
	Message<?> message = MessageBuilder.withPayload("hello").setHeader("route", "foo").build();
	this.channels.input().send(message);
	message = MessageBuilder.withPayload("hello").setHeader("route", "bar").build();
	this.channels.input().send(message);
	message = MessageBuilder.withPayload("hello").setHeader("route", "baz").build();
	this.channels.input().send(message);
	MessageChannel foo = binder.getChannelForName("foo");
	assertNotNull(foo);
	MessageChannel bar = binder.getChannelForName("bar");
	assertNotNull(bar);
	MessageChannel baz = binder.getChannelForName("baz");
	assertNull(baz);
	MessageChannel discards = binder.getChannelForName("discards");
	assertNotNull(discards);
	assertThat(collector.forChannel(foo), receivesPayloadThat(is("hello")));
	assertThat(collector.forChannel(bar), receivesPayloadThat(is("hello")));
	assertThat(collector.forChannel(discards), receivesPayloadThat(is("hello")));
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-stream-app-starters,代码行数:22,代码来源:RouterSinkTests.java

示例3: preSend

import org.springframework.messaging.MessageChannel; //导入依赖的package包/类
@Override
public Message<?> preSend(final Message<?> message, final MessageChannel channel) throws AuthenticationException {
    final StompHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(message, StompHeaderAccessor.class);

    if (StompCommand.CONNECT == accessor.getCommand()) {
        final String username = accessor.getFirstNativeHeader(USERNAME_HEADER);
        final String authToken = accessor.getFirstNativeHeader(TOKEN_HEADER);

        final Authentication user = webSocketAuthenticatorService.getAuthenticatedOrFail(username, authToken);

        accessor.setUser(user);
    }

    return message;
}
 
开发者ID:anthonyraymond,项目名称:joal,代码行数:16,代码来源:AuthChannelInterceptorAdapter.java

示例4: testGoodConnection

import org.springframework.messaging.MessageChannel; //导入依赖的package包/类
@Test
public void testGoodConnection() throws MqttException
{
    StaticApplicationContext applicationContext = getStaticApplicationContext();
    MessageChannel inboundMessageChannel = new ExecutorSubscribableChannel();
    PahoAsyncMqttClientService service = new PahoAsyncMqttClientService(
        BrokerHelper.getProxyUri(), BrokerHelper.getClientId(), MqttClientConnectionType.PUBSUB,
        null);
    service.setApplicationEventPublisher(applicationContext);
    service.setInboundMessageChannel(inboundMessageChannel);
    service.subscribe(String.format("client/%s", BrokerHelper.getClientId()),
        MqttQualityOfService.QOS_0);
    service.getMqttConnectOptions().setCleanSession(true);
    Assert.assertTrue(service.start());
    Assert.assertTrue(service.isConnected());
    Assert.assertTrue(service.isStarted());
    Assert.assertEquals(1, clientConnectedCount.get());
    Assert.assertEquals(0, clientDisconnectedCount.get());
    Assert.assertEquals(0, clientLostConnectionCount.get());
    Assert.assertEquals(0, clientFailedConnectionCount.get());
    service.stop();
    service.close();
    applicationContext.close();
}
 
开发者ID:christophersmith,项目名称:summer-mqtt,代码行数:25,代码来源:AutomaticReconnectTest.java

示例5: applyPreSend

import org.springframework.messaging.MessageChannel; //导入依赖的package包/类
public Message<?> applyPreSend(Message<?> message, MessageChannel channel) {
	Message<?> messageToUse = message;
	for (ChannelInterceptor interceptor : interceptors) {
		Message<?> resolvedMessage = interceptor.preSend(messageToUse, channel);
		if (resolvedMessage == null) {
			String name = interceptor.getClass().getSimpleName();
			if (logger.isDebugEnabled()) {
				logger.debug(name + " returned null from preSend, i.e. precluding the send.");
			}
			triggerAfterSendCompletion(messageToUse, channel, false, null);
			return null;
		}
		messageToUse = resolvedMessage;
		this.sendInterceptorIndex++;
	}
	return messageToUse;
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:18,代码来源:AbstractMessageChannel.java

示例6: testAutoConfigureTopicsDisabledSucceedsIfTopicExisting

import org.springframework.messaging.MessageChannel; //导入依赖的package包/类
@Test
@SuppressWarnings("unchecked")
public void testAutoConfigureTopicsDisabledSucceedsIfTopicExisting() throws Throwable {
	KafkaBinderConfigurationProperties configurationProperties = createConfigurationProperties();

	String testTopicName = "existing" + System.currentTimeMillis();
	invokeCreateTopic(testTopicName, 5, 1);
	configurationProperties.setAutoCreateTopics(false);
	Binder binder = getBinder(configurationProperties);

	ExtendedConsumerProperties<KafkaConsumerProperties> consumerProperties = createConsumerProperties();

	DirectChannel input = createBindableChannel("input", createConsumerBindingProperties(consumerProperties));
	Binding<MessageChannel> binding = binder.bindConsumer(testTopicName, "test", input, consumerProperties);
	binding.unbind();
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-stream-binder-kafka,代码行数:17,代码来源:KafkaBinderTests.java

示例7: afterSessionEnded

import org.springframework.messaging.MessageChannel; //导入依赖的package包/类
@Override
@SuppressWarnings("deprecation")
public void afterSessionEnded(WebSocketSession session, CloseStatus closeStatus, MessageChannel outputChannel) {
	this.decoders.remove(session.getId());

	Principal principal = session.getPrincipal();
	if (principal != null && this.userSessionRegistry != null) {
		String userName = getSessionRegistryUserName(principal);
		this.userSessionRegistry.unregisterSessionId(userName, session.getId());
	}

	Message<byte[]> message = createDisconnectMessage(session);
	SimpAttributes simpAttributes = SimpAttributes.fromMessage(message);
	try {
		SimpAttributesContextHolder.setAttributes(simpAttributes);
		if (this.eventPublisher != null) {
			Principal user = session.getPrincipal();
			publishEvent(new SessionDisconnectEvent(this, message, session.getId(), closeStatus, user));
		}
		outputChannel.send(message);
	}
	finally {
		SimpAttributesContextHolder.resetAttributes();
		simpAttributes.sessionCompleted();
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:27,代码来源:StompSubProtocolHandler.java

示例8: doRegisterProducer

import org.springframework.messaging.MessageChannel; //导入依赖的package包/类
private Binding<MessageChannel> doRegisterProducer(final String name, MessageChannel moduleOutputChannel,
		ProducerProperties properties) {
	Assert.isInstanceOf(SubscribableChannel.class, moduleOutputChannel);
	MessageHandler handler = new SendingHandler(name, properties);
	EventDrivenConsumer consumer = new EventDrivenConsumer((SubscribableChannel) moduleOutputChannel, handler);
	consumer.setBeanFactory(this.getBeanFactory());
	consumer.setBeanName("outbound." + name);
	consumer.afterPropertiesSet();
	DefaultBinding<MessageChannel> producerBinding =
			new DefaultBinding<>(name, null, moduleOutputChannel, consumer);
	String[] requiredGroups = properties.getRequiredGroups();
	if (!ObjectUtils.isEmpty(requiredGroups)) {
		for (String group : requiredGroups) {
			this.redisOperations.boundZSetOps(CONSUMER_GROUPS_KEY_PREFIX + name).incrementScore(group, 1);
		}
	}
	consumer.start();
	return producerBinding;
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-stream-binder-redis,代码行数:20,代码来源:RedisMessageChannelBinder.java

示例9: bindProducer

import org.springframework.messaging.MessageChannel; //导入依赖的package包/类
@Override
public Binding<MessageChannel> bindProducer(String name, MessageChannel moduleOutputChannel,
		ExtendedProducerProperties<RabbitProducerProperties> properties) {
	this.queues.add(properties.getExtension().getPrefix() + name + ".default");
	this.exchanges.add(properties.getExtension().getPrefix() + name);
	if (properties.getRequiredGroups() != null) {
		for (String group : properties.getRequiredGroups()) {
			if (properties.getExtension().isQueueNameGroupOnly()) {
				this.queues.add(properties.getExtension().getPrefix() + group);
			}
			else {
				this.queues.add(properties.getExtension().getPrefix() + name + "." + group);
			}
		}
	}
	this.prefixes.add(properties.getExtension().getPrefix());
	deadLetters(properties.getExtension());
	return super.bindProducer(name, moduleOutputChannel, properties);
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-stream-binder-rabbit,代码行数:20,代码来源:RabbitTestBinder.java

示例10: RpcMessageHandler

import org.springframework.messaging.MessageChannel; //导入依赖的package包/类
public RpcMessageHandler(SubscribableChannel clientInboundChannel,
		MessageChannel clientOutboundChannel, ProcedureRegistry procedureRegistry,
		HandlerMethodService handlerMethodService, Features features) {
	this.clientInboundChannel = clientInboundChannel;
	this.clientOutboundChannel = clientOutboundChannel;
	this.procedureRegistry = procedureRegistry;
	this.handlerMethodService = handlerMethodService;
	this.features = features;
}
 
开发者ID:ralscha,项目名称:wamp2spring,代码行数:10,代码来源:RpcMessageHandler.java

示例11: PubSubMessageHandler

import org.springframework.messaging.MessageChannel; //导入依赖的package包/类
public PubSubMessageHandler(SubscribableChannel clientInboundChannel,
		SubscribableChannel brokerChannel, MessageChannel clientOutboundChannel,
		SubscriptionRegistry subscriptionRegistry,
		HandlerMethodService handlerMethodService, Features features,
		EventStore eventStore) {
	this.clientInboundChannel = clientInboundChannel;
	this.brokerChannel = brokerChannel;
	this.clientOutboundChannel = clientOutboundChannel;
	this.subscriptionRegistry = subscriptionRegistry;
	this.handlerMethodService = handlerMethodService;
	this.features = features;
	this.eventStore = eventStore;
}
 
开发者ID:ralscha,项目名称:wamp2spring,代码行数:14,代码来源:PubSubMessageHandler.java

示例12: afterSessionEnded

import org.springframework.messaging.MessageChannel; //导入依赖的package包/类
@Override
public void afterSessionEnded(WebSocketSession session, CloseStatus closeStatus,
		MessageChannel outputChannel) {

	Long wampSessionId = (Long) session.getAttributes()
			.get(WampMessageHeader.WAMP_SESSION_ID.name());
	if (wampSessionId != null) {
		this.applicationEventPublisher.publishEvent(new WampDisconnectEvent(
				wampSessionId, session.getId(), session.getPrincipal()));
		this.wampSessionIds.remove(wampSessionId);
		session.getAttributes().remove(WampMessageHeader.WAMP_SESSION_ID.name());
	}
}
 
开发者ID:ralscha,项目名称:wamp2spring,代码行数:14,代码来源:WampSubProtocolHandler.java

示例13: preSend

import org.springframework.messaging.MessageChannel; //导入依赖的package包/类
@Override
public Message<?> preSend(Message<?> message, MessageChannel channel) {
  if (SimpMessageType.MESSAGE.equals(message.getHeaders().get(SIMP_MESSAGE_TYPE))) {
    if (Tags.SPAN_KIND_SERVER.equals(spanKind)) {
      return preSendServerSpan(message);
    } else if (Tags.SPAN_KIND_CLIENT.equals(spanKind)) {
      return preSendClientSpan(message);
    }
  }
  return message;
}
 
开发者ID:opentracing-contrib,项目名称:java-spring-cloud,代码行数:12,代码来源:TracingChannelInterceptor.java

示例14: afterMessageHandled

import org.springframework.messaging.MessageChannel; //导入依赖的package包/类
@Override
public void afterMessageHandled(Message<?> message, MessageChannel channel,
    MessageHandler handler, Exception arg3) {
  if ((handler instanceof WebSocketAnnotationMethodMessageHandler ||
      handler instanceof SubProtocolWebSocketHandler) &&
      SimpMessageType.MESSAGE.equals(message.getHeaders().get(SIMP_MESSAGE_TYPE))) {
    tracer.activeSpan().close();
  }
}
 
开发者ID:opentracing-contrib,项目名称:java-spring-cloud,代码行数:10,代码来源:TracingChannelInterceptor.java

示例15: beforeHandle

import org.springframework.messaging.MessageChannel; //导入依赖的package包/类
@Override
public Message<?> beforeHandle(Message<?> message, MessageChannel channel,
    MessageHandler handler) {
  if ((handler instanceof WebSocketAnnotationMethodMessageHandler ||
      handler instanceof SubProtocolWebSocketHandler) &&
      SimpMessageType.MESSAGE.equals(message.getHeaders().get(SIMP_MESSAGE_TYPE))) {
    tracer.makeActive(message.getHeaders().get(OPENTRACING_SPAN, Span.class));
  }
  return message;
}
 
开发者ID:opentracing-contrib,项目名称:java-spring-cloud,代码行数:11,代码来源:TracingChannelInterceptor.java


注:本文中的org.springframework.messaging.MessageChannel类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。