Skip to content

Commit c6dcc76

Browse files
Fix links in docs
* Fix links in section Previous Releases * Declare some attributes represent document links
1 parent 2ebc7ef commit c6dcc76

26 files changed

+58
-48
lines changed

src/reference/antora/antora.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,15 @@ ext:
1414
asciidoc:
1515
attributes:
1616
attribute-missing: 'warn'
17-
chomp: 'all'
17+
chomp: 'all'
18+
spring-docs: 'https://docs.spring.io'
19+
spring-framework-docs: '{spring-docs}/spring-framework/reference'
20+
spring-integration-docs: '{spring-docs}/spring-integration/reference'
21+
spring-amqp-java-docs: '{spring-docs}/spring-amqp/docs/current/api/org/springframework/amqp'
22+
spring-framework-java-docs: '{spring-docs}/spring/docs/current/javadoc-api/org/springframework'
23+
spring-retry-java-docs: '{spring-docs}/spring-retry/docs/api/current/'
24+
# External projects URLs and related attributes
25+
micrometer-docs: 'https://docs.micrometer.io'
26+
micrometer-tracing-docs: '{micrometer-docs}/tracing/reference/'
27+
micrometer-micrometer-docs: '{micrometer-docs}/micrometer/reference/'
28+
rabbitmq-stream-docs: 'https://rabbitmq.github.io/rabbitmq-stream-java-client/stable/htmlsingle'

src/reference/antora/modules/ROOT/pages/amqp/broker-configuration.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ public Exchange exchange() {
359359
}
360360
----
361361

362-
See the Javadoc for https://docs.spring.io/spring-amqp/docs/current/api/org/springframework/amqp/core/QueueBuilder.html[`org.springframework.amqp.core.QueueBuilder`] and https://docs.spring.io/spring-amqp/docs/current/api/org/springframework/amqp/core/ExchangeBuilder.html[`org.springframework.amqp.core.ExchangeBuilder`] for more information.
362+
See the Javadoc for {spring-amqp-java-docs}/core/QueueBuilder.html[`org.springframework.amqp.core.QueueBuilder`] and {spring-amqp-java-docs}/core/ExchangeBuilder.html[`org.springframework.amqp.core.ExchangeBuilder`] for more information.
363363

364364
Starting with version 2.0, the `ExchangeBuilder` now creates durable exchanges by default, to be consistent with the simple constructors on the individual `AbstractExchange` classes.
365365
To make a non-durable exchange with the builder, use `.durable(false)` before invoking `.build()`.

src/reference/antora/modules/ROOT/pages/amqp/connections.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,7 @@ public class MyService {
483483
----
484484

485485
It is important to unbind the resource after use.
486-
For more information, see the https://docs.spring.io/spring-amqp/docs/current/api/org/springframework/amqp/rabbit/connection/AbstractRoutingConnectionFactory.html[JavaDoc] for `AbstractRoutingConnectionFactory`.
486+
For more information, see the {spring-amqp-java-docs}/rabbit/connection/AbstractRoutingConnectionFactory.html[JavaDoc] for `AbstractRoutingConnectionFactory`.
487487

488488
Starting with version 1.4, `RabbitTemplate` supports the SpEL `sendConnectionFactorySelectorExpression` and `receiveConnectionFactorySelectorExpression` properties, which are evaluated on each AMQP protocol interaction operation (`send`, `sendAndReceive`, `receive`, or `receiveAndReply`), resolving to a `lookupKey` value for the provided `AbstractRoutingConnectionFactory`.
489489
You can use bean references, such as `@vHostResolver.getVHost(#root)` in the expression.

src/reference/antora/modules/ROOT/pages/amqp/listener-queues.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Container can be initially configured to listen on zero queues.
88
Queues can be added and removed at runtime.
99
The `SimpleMessageListenerContainer` recycles (cancels and re-creates) all consumers when any pre-fetched messages have been processed.
1010
The `DirectMessageListenerContainer` creates/cancels individual consumer(s) for each queue without affecting consumers on other queues.
11-
See the https://docs.spring.io/spring-amqp/docs/current/api/org/springframework/amqp/rabbit/listener/AbstractMessageListenerContainer.html[Javadoc] for the `addQueues`, `addQueueNames`, `removeQueues` and `removeQueueNames` methods.
11+
See the {spring-amqp-java-docs}/rabbit/listener/AbstractMessageListenerContainer.html[Javadoc] for the `addQueues`, `addQueueNames`, `removeQueues` and `removeQueueNames` methods.
1212

1313
If not all queues are available, the container tries to passively declare (and consume from) the missing queues every 60 seconds.
1414

src/reference/antora/modules/ROOT/pages/amqp/management-rest-api.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
When the management plugin is enabled, the RabbitMQ server exposes a REST API to monitor and configure the broker.
66
A https://github.com/rabbitmq/hop[Java Binding for the API] is now provided.
77
The `com.rabbitmq.http.client.Client` is a standard, immediate, and, therefore, blocking API.
8-
It is based on the https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#spring-web[Spring Web] module and its `RestTemplate` implementation.
8+
It is based on the {spring-framework-docs}/web.html[Spring Web] module and its `RestTemplate` implementation.
99
On the other hand, the `com.rabbitmq.http.client.ReactorNettyClient` is a reactive, non-blocking implementation based on the https://projectreactor.io/docs/netty/release/reference/docs/index.html[Reactor Netty] project.
1010

1111
The hop dependency (`com.rabbitmq:http-client`) is now also `optional`.

src/reference/antora/modules/ROOT/pages/amqp/message-converters.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ It has been replaced by `AbstractJackson2MessageConverter`.
356356

357357
Yet another option is the `MarshallingMessageConverter`.
358358
It delegates to the Spring OXM library's implementations of the `Marshaller` and `Unmarshaller` strategy interfaces.
359-
You can read more about that library https://docs.spring.io/spring/docs/current/spring-framework-reference/html/oxm.html[here].
359+
You can read more about that library {spring-framework-docs}/data-access/oxm.html[here].
360360
In terms of configuration, it is most common to provide only the constructor argument, since most implementations of `Marshaller` also implement `Unmarshaller`.
361361
The following example shows how to configure a `MarshallingMessageConverter`:
362362

src/reference/antora/modules/ROOT/pages/amqp/receiving-messages/async-annotation-driven/enable.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ In this case, and ignoring the RabbitMQ infrastructure setup, the `processOrder`
3737

3838
You can customize the listener container factory to use for each annotation, or you can configure an explicit default by implementing the `RabbitListenerConfigurer` interface.
3939
The default is required only if at least one endpoint is registered without a specific container factory.
40-
See the https://docs.spring.io/spring-amqp/docs/current/api/org/springframework/amqp/rabbit/annotation/RabbitListenerConfigurer.html[Javadoc] for full details and examples.
40+
See the {spring-amqp-java-docs}/rabbit/annotation/RabbitListenerConfigurer.html[Javadoc] for full details and examples.
4141

4242
The container factories provide methods for adding `MessagePostProcessor` instances that are applied after receiving messages (before invoking the listener) and before sending replies.
4343

src/reference/antora/modules/ROOT/pages/amqp/receiving-messages/micrometer-observation.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Using Micrometer for observation is now supported, since version 3.0, for the `R
77
Set `observationEnabled` on each component to enable observation; this will disable xref:amqp/receiving-messages/micrometer.adoc[Micrometer Timers] because the timers will now be managed with each observation.
88
When using annotated listeners, set `observationEnabled` on the container factory.
99

10-
Refer to https://docs.micrometer.io/tracing/reference/[Micrometer Tracing] for more information.
10+
Refer to {micrometer-tracing-docs}[Micrometer Tracing] for more information.
1111

1212
To add tags to timers/traces, configure a custom `RabbitTemplateObservationConvention` or `RabbitListenerObservationConvention` to the template or listener container, respectively.
1313

src/reference/antora/modules/ROOT/pages/amqp/receiving-messages/micrometer.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
= Micrometer Integration
33
:page-section-summary-toc: 1
44

5-
NOTE: This section documents the integration with https://docs.micrometer.io/micrometer/reference/[Micrometer].
5+
NOTE: This section documents the integration with {micrometer-micrometer-docs}[Micrometer].
66
For integration with Micrometer Observation, see xref:amqp/receiving-messages/micrometer-observation.adoc[Micrometer Observation].
77

88
Starting with version 2.2, the listener containers will automatically create and update Micrometer `Timer` s for the listener, if `Micrometer` is detected on the class path, and a single `MeterRegistry` is present in the application context (or exactly one is annotated `@Primary`, such as when using Spring Boot).

src/reference/antora/modules/ROOT/pages/amqp/request-reply.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ Those methods are quite useful for request-reply scenarios, since they handle th
66

77
Similar request-reply methods are also available where the `MessageConverter` is applied to both the request and reply.
88
Those methods are named `convertSendAndReceive`.
9-
See the https://docs.spring.io/spring-amqp/docs/current/api/org/springframework/amqp/core/AmqpTemplate.html[Javadoc of `AmqpTemplate`] for more detail.
9+
See the {spring-amqp-java-docs}/core/AmqpTemplate.html[Javadoc of `AmqpTemplate`] for more detail.
1010

1111
Starting with version 1.5.0, each of the `sendAndReceive` method variants has an overloaded version that takes `CorrelationData`.
1212
Together with a properly configured connection factory, this enables the receipt of publisher confirms for the send side of the operation.
13-
See xref:amqp/template.adoc#template-confirms[Correlated Publisher Confirms and Returns] and the https://docs.spring.io/spring-amqp/docs/current/api/org/springframework/amqp/rabbit/core/RabbitOperations.html[Javadoc for `RabbitOperations`] for more information.
13+
See xref:amqp/template.adoc#template-confirms[Correlated Publisher Confirms and Returns] and the {spring-amqp-java-docs}/rabbit/core/RabbitOperations.html[Javadoc for `RabbitOperations`] for more information.
1414

1515
Starting with version 2.0, there are variants of these methods (`convertSendAndReceiveAsType`) that take an additional `ParameterizedTypeReference` argument to convert complex returned types.
1616
The template must be configured with a `SmartMessageConverter`.

src/reference/antora/modules/ROOT/pages/amqp/resilience-recovering-from-errors-and-broker-failures.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public StatefulRetryOperationsInterceptor interceptor() {
9090

9191
Only a subset of retry capabilities can be configured this way.
9292
More advanced features would need the configuration of a `RetryTemplate` as a Spring bean.
93-
See the https://docs.spring.io/spring-retry/docs/api/current/[Spring Retry Javadoc] for complete information about available policies and their configuration.
93+
See the {spring-retry-java-docs}[Spring Retry Javadoc] for complete information about available policies and their configuration.
9494

9595
[[batch-retry]]
9696
== Retry with Batch Listeners

src/reference/antora/modules/ROOT/pages/amqp/sending-messages.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ Message message = MessageBuilder.withBody("foo".getBytes())
100100
.build();
101101
----
102102

103-
Each of the properties defined on the https://docs.spring.io/spring-amqp/docs/current/api/org/springframework/amqp/core/MessageProperties.html[`MessageProperties`] can be set.
103+
Each of the properties defined on the {spring-amqp-java-docs}/core/MessageProperties.html[`MessageProperties`] can be set.
104104
Other methods include `setHeader(String key, String value)`, `removeHeader(String key)`, `removeHeaders()`, and `copyProperties(MessageProperties properties)`.
105105
Each property setting method has a `set*IfAbsent()` variant.
106106
In the cases where a default initial value exists, the method is named `set*IfAbsentOrDefault()`.

src/reference/antora/modules/ROOT/pages/amqp/transactions.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ If the `channelTransacted` flag was set to `false` (the default) in the precedin
6969
Prior to version 1.6.6, adding a rollback rule to a container's `transactionAttribute` when using an external transaction manager (such as JDBC) had no effect.
7070
Exceptions always rolled back the transaction.
7171

72-
Also, when using a https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/transaction.html#transaction-declarative[transaction advice] in the container's advice chain, conditional rollback was not very useful, because all listener exceptions are wrapped in a `ListenerExecutionFailedException`.
72+
Also, when using a {spring-framework-docs}/data-access/transaction/declarative.html[transaction advice] in the container's advice chain, conditional rollback was not very useful, because all listener exceptions are wrapped in a `ListenerExecutionFailedException`.
7373

7474
The first problem has been corrected, and the rules are now applied properly.
7575
Further, the `ListenerFailedRuleBasedTransactionAttribute` is now provided.
@@ -116,13 +116,13 @@ See xref:amqp/containerAttributes.adoc[Message Listener Container Configuration]
116116
[[using-rabbittransactionmanager]]
117117
== Using `RabbitTransactionManager`
118118

119-
The https://docs.spring.io/spring-amqp/docs/current/api/org/springframework/amqp/rabbit/transaction/RabbitTransactionManager.html[RabbitTransactionManager] is an alternative to executing Rabbit operations within, and synchronized with, external transactions.
120-
This transaction manager is an implementation of the https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/transaction/PlatformTransactionManager.html[`PlatformTransactionManager`] interface and should be used with a single Rabbit `ConnectionFactory`.
119+
The {spring-amqp-java-docs}/rabbit/transaction/RabbitTransactionManager.html[RabbitTransactionManager] is an alternative to executing Rabbit operations within, and synchronized with, external transactions.
120+
This transaction manager is an implementation of the {spring-framework-java-docs}/transaction/PlatformTransactionManager.html[`PlatformTransactionManager`] interface and should be used with a single Rabbit `ConnectionFactory`.
121121

122122
IMPORTANT: This strategy is not able to provide XA transactions -- for example, in order to share transactions between messaging and database access.
123123

124124
Application code is required to retrieve the transactional Rabbit resources through `ConnectionFactoryUtils.getTransactionalResourceHolder(ConnectionFactory, boolean)` instead of a standard `Connection.createChannel()` call with subsequent channel creation.
125-
When using Spring AMQP's https://docs.spring.io/spring-amqp/docs/latest_ga/api/org/springframework/amqp/rabbit/core/RabbitTemplate.html[RabbitTemplate], it will autodetect a thread-bound Channel and automatically participate in its transaction.
125+
When using Spring AMQP's {spring-amqp-java-docs}/rabbit/core/RabbitTemplate.html[RabbitTemplate], it will autodetect a thread-bound Channel and automatically participate in its transaction.
126126

127127
With Java Configuration, you can setup a new RabbitTransactionManager by using the following bean:
128128

src/reference/antora/modules/ROOT/pages/appendix/native.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
= Native Images
33
:page-section-summary-toc: 1
44

5-
https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#aot[Spring AOT] native hints are provided to assist in developing native images for Spring applications that use Spring AMQP.
5+
{spring-framework-docs}/core/aot.html[Spring AOT] native hints are provided to assist in developing native images for Spring applications that use Spring AMQP.
66

77
Some examples can be seen in the https://github.com/spring-projects/spring-aot-smoke-tests/tree/main/integration[`spring-aot-smoke-tests` GitHub repository].

src/reference/antora/modules/ROOT/pages/appendix/previous-whats-new/changes-in-1-3-since-1-2.adoc

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
== Listener Concurrency
66

77
The listener container now supports dynamic scaling of the number of consumers based on workload, or you can programmatically change the concurrency without stopping the container.
8-
See <<listener-concurrency>>.
8+
See xref:amqp/listener-concurrency.adoc#listener-concurrency[Listener Concurrency].
99

1010
[[listener-queues]]
1111
== Listener Queues
1212

1313
The listener container now permits the queues on which it listens to be modified at runtime.
1414
Also, the container now starts if at least one of its configured queues is available for use.
15-
See <<listener-queues>>
15+
See xref:amqp/listener-queues.adoc#listener-queues[Listener Container Queues]
1616

1717
This listener container now redeclares any auto-delete queues during startup.
1818
See xref:amqp/receiving-messages/async-consumer.adoc#lc-auto-delete[`auto-delete` Queues].
@@ -21,13 +21,13 @@ See xref:amqp/receiving-messages/async-consumer.adoc#lc-auto-delete[`auto-delete
2121
== Consumer Priority
2222

2323
The listener container now supports consumer arguments, letting the `x-priority` argument be set.
24-
See <<consumer-priority>>.
24+
See xref:amqp/receiving-messages/async-consumer.adoc#consumer-priority[Consumer Priority].
2525

2626
[[exclusive-consumer]]
2727
== Exclusive Consumer
2828

2929
You can now configure `SimpleMessageListenerContainer` with a single `exclusive` consumer, preventing other consumers from listening to the queue.
30-
See <<exclusive-consumer>>.
30+
See xref:amqp/exclusive-consumer.adoc[Exclusive Consumer].
3131

3232
[[rabbit-admin]]
3333
== Rabbit Admin
@@ -47,7 +47,7 @@ If you wish to bind with an empty string routing key, you need to specify `key="
4747

4848
The `AmqpTemplate` now provides several synchronous `receiveAndReply` methods.
4949
These are implemented by the `RabbitTemplate`.
50-
For more information see <<receiving-messages>>.
50+
For more information see xref:amqp/receiving-messages.adoct[Receiving Messages].
5151

5252
The `RabbitTemplate` now supports configuring a `RetryTemplate` to attempt retries (with optional back-off policy) for when the broker is not available.
5353
For more information see xref:amqp/template.adoc#template-retry[Adding Retry Capabilities].
@@ -66,12 +66,11 @@ You can now configure the `<binding>` of the `<headers-exchange>` with a `key/va
6666
These options are mutually exclusive.
6767
See xref:amqp/broker-configuration.adoc#headers-exchange[Headers Exchange].
6868

69-
[[routing-connection-factory]]
7069
== Routing Connection Factory
7170

7271
A new `SimpleRoutingConnectionFactory` has been introduced.
7372
It allows configuration of `ConnectionFactories` mapping, to determine the target `ConnectionFactory` to use at runtime.
74-
See <<routing-connection-factory>>.
73+
See xref:amqp/connections.adoc#routing-connection-factory[routing-connection-factory].
7574

7675
[[messagebuilder-and-messagepropertiesbuilder]]
7776
== `MessageBuilder` and `MessagePropertiesBuilder`

src/reference/antora/modules/ROOT/pages/appendix/previous-whats-new/changes-in-1-4-since-1-3.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,14 @@ See xref:amqp/template.adoc#template-confirms[Correlated Publisher Confirms and
3535

3636
`RabbitConnectionFactoryBean` creates the underlying RabbitMQ `ConnectionFactory` used by the `CachingConnectionFactory`.
3737
This enables configuration of SSL options using Spring's dependency injection.
38-
See <<connection-factory>>.
38+
See xref:amqp/connections.adoc#connection-factory[Configuring the Underlying Client Connection Factory].
3939

4040
[[using-cachingconnectionfactory]]
4141
== Using `CachingConnectionFactory`
4242

4343
The `CachingConnectionFactory` now lets the `connectionTimeout` be set as a property or as an attribute in the namespace.
4444
It sets the property on the underlying RabbitMQ `ConnectionFactory`.
45-
See <<connection-factory>>.
45+
See xref:amqp/connections.adoc#connection-factory[Configuring the Underlying Client Connection Factory].
4646

4747
[[log-appender]]
4848
== Log Appender
@@ -71,13 +71,13 @@ The `mandatoryExpression`, `sendConnectionFactorySelectorExpression`, and `recei
7171
The `mandatoryExpression` is used to evaluate a `mandatory` boolean value against each request message when a `ReturnCallback` is in use.
7272
See xref:amqp/template.adoc#template-confirms[Correlated Publisher Confirms and Returns].
7373
The `sendConnectionFactorySelectorExpression` and `receiveConnectionFactorySelectorExpression` are used when an `AbstractRoutingConnectionFactory` is provided, to determine the `lookupKey` for the target `ConnectionFactory` at runtime on each AMQP protocol interaction operation.
74-
See <<routing-connection-factory>>.
74+
See xref:amqp/connections.adoc#routing-connection-factory[routing-connection-factory].
7575

7676
[[listeners-and-the-routing-connection-factory]]
7777
== Listeners and the Routing Connection Factory
7878

7979
You can configure a `SimpleMessageListenerContainer` with a routing connection factory to enable connection selection based on the queue names.
80-
See <<routing-connection-factory>>.
80+
See xref:amqp/connections.adoc#routing-connection-factory[routing-connection-factory].
8181

8282
[[rabbittemplate:-recoverycallback-option]]
8383
== `RabbitTemplate`: `RecoveryCallback` Option

0 commit comments

Comments
 (0)