本文整理了Java中org.springframework.amqp.core.Address
类的一些代码示例,展示了Address
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Address
类的具体详情如下:
包路径:org.springframework.amqp.core.Address
类名称:Address
[英]Represents an address for publication of an AMQP message. The AMQP 0-8 and 0-9 specifications have an unstructured string that is used as a "reply to" address. There are however conventions in use and this class makes it easier to follow these conventions, which can be easily summarised as:
(exchange)/(routingKey)
Here we also the exchange name to default to empty (so just a routing key will work if you know the queue name).
[中]表示用于发布AMQP消息的地址。AMQP 0-8和0-9规范有一个用作“回复”地址的非结构化字符串。然而,使用中有一些约定,此类使遵循这些约定变得更容易,这些约定可以简单地概括为:
(exchange)/(routingKey)
这里我们还将exchange名称默认为空(因此,如果您知道队列名称,只需使用路由键即可)。
代码示例来源:origin: spring-projects/spring-integration
String replyToProperty = message.getMessageProperties().getReplyTo();
if (replyToProperty != null) {
replyTo = new Address(replyToProperty);
AmqpInboundGateway.this.amqpTemplate.convertAndSend(replyTo.getExchangeName(),
replyTo.getRoutingKey(), reply.getPayload(), messagePostProcessor);
代码示例来源:origin: spring-projects/spring-amqp
public void setReplyToAddress(Address replyTo) {
this.replyTo = (replyTo != null) ? replyTo.toString() : null;
}
代码示例来源:origin: spring-projects/spring-amqp
protected void doPublish(Channel channel, Address replyTo, Message message) throws IOException {
channel.basicPublish(replyTo.getExchangeName(), replyTo.getRoutingKey(), this.mandatoryPublish,
this.messagePropertiesConverter.fromMessageProperties(message.getMessageProperties(), this.encoding),
message.getBody());
}
代码示例来源:origin: spring-projects/spring-amqp
@Test
public void parseUnstructuredWithRoutingKeyOnly() {
Address address = new Address("my-routing-key");
assertEquals("my-routing-key", address.getRoutingKey());
assertEquals("/my-routing-key", address.toString());
address = new Address("/foo");
assertEquals("foo", address.getRoutingKey());
assertEquals("/foo", address.toString());
address = new Address("bar/baz");
assertEquals("bar", address.getExchangeName());
assertEquals("baz", address.getRoutingKey());
assertEquals("bar/baz", address.toString());
}
代码示例来源:origin: spring-projects/spring-integration
/**
* The {@code defaultReplyTo} address with the form
* <pre class="code">
* (exchange)/(routingKey)
* </pre>
* or
* <pre class="code">
* (queueName)
* </pre>
* if the request message doesn't have a {@code replyTo} property.
* The second form uses the default exchange ("") and the queue name as
* the routing key.
* @param defaultReplyTo the default {@code replyTo} address to use.
* @since 4.2
* @see Address
*/
public void setDefaultReplyTo(String defaultReplyTo) {
this.defaultReplyTo = new Address(defaultReplyTo);
}
代码示例来源:origin: spring-projects/spring-amqp
@Test
public void toStringCheck() {
Address address = new Address("my-exchange", "routing-key");
String replyToUri = "my-exchange/routing-key";
Assert.assertEquals(replyToUri, address.toString());
}
代码示例来源:origin: spring-projects/spring-amqp
@Test
public void testReplyTo() throws Exception {
MessageProperties properties = new MessageProperties();
properties.setReplyTo("foo/bar");
assertEquals("bar", properties.getReplyToAddress().getRoutingKey());
}
代码示例来源:origin: org.springframework.amqp/spring-rabbit
protected void doPublish(Channel channel, Address replyTo, Message message) throws IOException {
channel.basicPublish(replyTo.getExchangeName(), replyTo.getRoutingKey(), this.mandatoryPublish,
this.messagePropertiesConverter.fromMessageProperties(message.getMessageProperties(), this.encoding),
message.getBody());
}
代码示例来源:origin: spring-projects/spring-amqp
@Test
public void testEmpty() {
Address address = new Address("/");
assertEquals("", address.getExchangeName());
assertEquals("", address.getRoutingKey());
assertEquals("/", address.toString());
}
代码示例来源:origin: spring-projects/spring-amqp
public Address getReplyToAddress() {
return (this.replyTo != null) ? new Address(this.replyTo) : null;
}
代码示例来源:origin: spring-projects/spring-amqp
byte[] bytes = "foo".getBytes();
MessageProperties properties = new MessageProperties();
Address replyTo = new Address("address");
Message message1 = MessageBuilder.withClonedBody(bytes)
.andProperties(this.setAll(MessagePropertiesBuilder.fromClonedProperties(properties))
.setReplyToAddress(replyTo)
.setReplyToAddressIfAbsent(new Address("addressxxxx"))
.build())
.build();
assertNotSame(bytes, message1.getBody());
assertTrue(Arrays.equals(bytes, message1.getBody()));
assertEquals(replyTo.toString(), message1.getMessageProperties().getReplyToAddress().toString());
Address foo = new Address("foo");
Message message2 = MessageBuilder.fromClonedMessage(message1)
.setReplyToAddress(foo)
assertEquals(message1.getMessageProperties(), MessageBuilder.fromMessage(message2)
.setReplyToAddress(replyTo).build().getMessageProperties());
assertEquals(foo.toString(), message2.getMessageProperties().getReplyToAddress().toString());
assertEquals(replyTo.toString(), message3.getMessageProperties().getReplyToAddress().toString());
.setReplyToAddressIfAbsent(foo)
.build();
assertEquals(foo.toString(), message4.getMessageProperties().getReplyToAddress().toString());
代码示例来源:origin: spring-projects/spring-integration
@Test
public void verifyLifeCycle() {
Object gateway = context.getBean("autoStartFalseGateway");
assertEquals(Boolean.FALSE, TestUtils.getPropertyValue(gateway, "autoStartup"));
assertEquals(123, TestUtils.getPropertyValue(gateway, "phase"));
assertFalse(TestUtils.getPropertyValue(gateway, "messageListenerContainer.missingQueuesFatal", Boolean.class));
Object amqpTemplate = context.getBean("amqpTemplate");
assertSame(amqpTemplate, TestUtils.getPropertyValue(gateway, "amqpTemplate"));
Address defaultReplyTo = TestUtils.getPropertyValue(gateway, "defaultReplyTo", Address.class);
Address expected = new Address("fooExchange/barRoutingKey");
assertEquals(expected.getExchangeName(), defaultReplyTo.getExchangeName());
assertEquals(expected.getRoutingKey(), defaultReplyTo.getRoutingKey());
assertEquals(expected, defaultReplyTo);
}
代码示例来源:origin: spring-projects/spring-amqp
private void send(Object object, Address replyToAddress, Message requestMessage) {
Message message = this.messageConverter.toMessage(object, new MessageProperties());
message.getMessageProperties().setCorrelationId(requestMessage.getMessageProperties().getCorrelationId());
getAmqpTemplate().send(replyToAddress.getExchangeName(), replyToAddress.getRoutingKey(), message);
}
代码示例来源:origin: spring-projects/spring-amqp
@Test
public void parseWithoutRoutingKey() {
Address address = new Address("fanout://my-exchange");
assertEquals("my-exchange", address.getExchangeName());
assertEquals("", address.getRoutingKey());
assertEquals("my-exchange/", address.toString());
}
代码示例来源:origin: org.springframework.integration/spring-integration-amqp
/**
* The {@code defaultReplyTo} address with the form
* <pre class="code">
* (exchange)/(routingKey)
* </pre>
* or
* <pre class="code">
* (queueName)
* </pre>
* if the request message doesn't have a {@code replyTo} property.
* The second form uses the default exchange ("") and the queue name as
* the routing key.
* @param defaultReplyTo the default {@code replyTo} address to use.
* @since 4.2
* @see Address
*/
public void setDefaultReplyTo(String defaultReplyTo) {
this.defaultReplyTo = new Address(defaultReplyTo);
}
代码示例来源:origin: spring-projects/spring-amqp
/**
* Invoked by the container during startup so it can verify the queue is correctly
* configured (if a simple reply queue name is used instead of exchange/routingKey).
* @return the queue name, if configured.
* @since 1.5
*/
@Override
@Nullable
public Collection<String> expectedQueueNames() {
this.isListener = true;
Collection<String> replyQueue = null;
if (this.replyAddress == null || this.replyAddress.equals(Address.AMQ_RABBITMQ_REPLY_TO)) {
throw new IllegalStateException("A listener container must not be provided when using direct reply-to");
}
else {
Address address = new Address(this.replyAddress);
if ("".equals(address.getExchangeName())) {
replyQueue = Collections.singletonList(address.getRoutingKey());
}
else {
if (logger.isInfoEnabled()) {
logger.info("Cannot verify reply queue because 'replyAddress' is not a simple queue name: "
+ this.replyAddress);
}
}
}
return replyQueue;
}
代码示例来源:origin: spring-projects/spring-amqp
@Test
public void testDirectReplyTo() {
String replyTo = Address.AMQ_RABBITMQ_REPLY_TO + ".ab/cd/ef";
MessageProperties props = new MessageProperties();
props.setReplyTo(replyTo);
Message message = new Message("foo".getBytes(), props);
Address address = message.getMessageProperties().getReplyToAddress();
assertEquals("", address.getExchangeName());
assertEquals(replyTo, address.getRoutingKey());
address = props.getReplyToAddress();
assertEquals("", address.getExchangeName());
assertEquals(replyTo, address.getRoutingKey());
}
代码示例来源:origin: spring-projects/spring-amqp
@Test
public void parseWithDefaultExchangeAndRoutingKey() {
Address address = new Address("direct:///routing-key");
assertEquals("", address.getExchangeName());
assertEquals("routing-key", address.getRoutingKey());
assertEquals("/routing-key", address.toString());
}
代码示例来源:origin: spring-projects/spring-amqp
@Override
public <R, S> boolean receiveAndReply(final String queueName, ReceiveAndReplyCallback<R, S> callback, final String replyExchange,
final String replyRoutingKey) throws AmqpException {
return receiveAndReply(queueName, callback,
(request, reply) -> new Address(replyExchange, replyRoutingKey));
}
代码示例来源:origin: org.springframework.amqp/spring-rabbit
/**
* Invoked by the container during startup so it can verify the queue is correctly
* configured (if a simple reply queue name is used instead of exchange/routingKey).
* @return the queue name, if configured.
* @since 1.5
*/
@Override
@Nullable
public Collection<String> expectedQueueNames() {
this.isListener = true;
Collection<String> replyQueue = null;
if (this.replyAddress == null || this.replyAddress.equals(Address.AMQ_RABBITMQ_REPLY_TO)) {
throw new IllegalStateException("A listener container must not be provided when using direct reply-to");
}
else {
Address address = new Address(this.replyAddress);
if ("".equals(address.getExchangeName())) {
replyQueue = Collections.singletonList(address.getRoutingKey());
}
else {
if (logger.isInfoEnabled()) {
logger.info("Cannot verify reply queue because 'replyAddress' is not a simple queue name: "
+ this.replyAddress);
}
}
}
return replyQueue;
}
内容来源于网络,如有侵权,请联系作者删除!