This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 8de99e13b7ab Improve Javadoc across camel-api: URLs, Exchange, SPI
contracts, and exception constructors
8de99e13b7ab is described below
commit 8de99e13b7abd559f54e3971f9cfc9c776236cc1
Author: Guillaume Nodet <[email protected]>
AuthorDate: Wed May 13 16:50:26 2026 +0200
Improve Javadoc across camel-api: URLs, Exchange, SPI contracts, and
exception constructors
- Update all http://camel.apache.org URLs to https:// in Javadoc (67
occurrences, 39 files)
- Fix broken Spring 2.5.x API link in Synchronization.java
- Rewrite Exchange class-level Javadoc to lead with getMessage() instead of
deprecated getIn()/getOut()
- Add SPI contract documentation to Language, AggregationRepository,
DataFormatFactory
- Add @param tags to constructors of 20 most important exception classes
- Add class-level Javadoc to StreamCacheException
---
.../java/org/apache/camel/AggregationStrategy.java | 10 +++----
.../main/java/org/apache/camel/CamelContext.java | 18 ++++++------
.../org/apache/camel/CamelExchangeException.java | 9 ++++++
.../org/apache/camel/CamelExecutionException.java | 9 ++++++
.../src/main/java/org/apache/camel/Component.java | 2 +-
.../src/main/java/org/apache/camel/Consume.java | 4 +--
.../java/org/apache/camel/ConsumerTemplate.java | 8 ++---
.../src/main/java/org/apache/camel/Converter.java | 2 +-
.../main/java/org/apache/camel/DynamicRouter.java | 4 +--
.../src/main/java/org/apache/camel/Endpoint.java | 12 ++++----
.../main/java/org/apache/camel/EndpointInject.java | 2 +-
.../src/main/java/org/apache/camel/Exchange.java | 34 +++++++---------------
.../src/main/java/org/apache/camel/Expression.java | 2 +-
.../camel/FailedToCreateConsumerException.java | 17 +++++++++++
.../camel/FailedToCreateProducerException.java | 4 +++
.../apache/camel/FailedToCreateRouteException.java | 22 ++++++++++++++
.../camel/FailedToStartComponentException.java | 5 ++++
.../org/apache/camel/FluentProducerTemplate.java | 4 +--
.../src/main/java/org/apache/camel/InOnly.java | 2 +-
.../src/main/java/org/apache/camel/InOut.java | 2 +-
.../org/apache/camel/InvalidPayloadException.java | 15 ++++++++++
.../camel/InvalidPayloadRuntimeException.java | 20 +++++++++++++
.../src/main/java/org/apache/camel/Message.java | 10 +++----
.../java/org/apache/camel/NoSuchBeanException.java | 20 +++++++++++++
.../org/apache/camel/NoSuchEndpointException.java | 7 +++++
.../org/apache/camel/NoSuchHeaderException.java | 10 +++++++
.../org/apache/camel/NoSuchLanguageException.java | 3 ++
.../org/apache/camel/NoSuchPropertyException.java | 9 ++++++
.../org/apache/camel/NoSuchVariableException.java | 9 ++++++
.../camel/NoTypeConversionAvailableException.java | 9 ++++++
.../src/main/java/org/apache/camel/Pattern.java | 2 +-
.../java/org/apache/camel/PollingConsumer.java | 2 +-
.../src/main/java/org/apache/camel/Predicate.java | 2 +-
.../src/main/java/org/apache/camel/Processor.java | 6 ++--
.../src/main/java/org/apache/camel/Produce.java | 4 +--
.../java/org/apache/camel/ProducerTemplate.java | 4 +--
.../org/apache/camel/PropertyBindingException.java | 23 +++++++++++++++
.../main/java/org/apache/camel/PropertyInject.java | 2 +-
.../main/java/org/apache/camel/RecipientList.java | 6 ++--
.../src/main/java/org/apache/camel/Route.java | 2 +-
.../main/java/org/apache/camel/RoutingSlip.java | 4 +--
.../org/apache/camel/RuntimeCamelException.java | 10 +++++++
.../org/apache/camel/RuntimeExchangeException.java | 9 ++++++
.../org/apache/camel/StreamCacheException.java | 7 +++++
.../org/apache/camel/TypeConversionException.java | 5 ++++
.../main/java/org/apache/camel/TypeConverter.java | 5 ++--
.../apache/camel/spi/AggregationRepository.java | 9 +++++-
.../org/apache/camel/spi/ClaimCheckRepository.java | 2 +-
.../main/java/org/apache/camel/spi/DataFormat.java | 2 +-
.../org/apache/camel/spi/DataFormatFactory.java | 5 +++-
.../org/apache/camel/spi/IdempotentRepository.java | 2 +-
.../main/java/org/apache/camel/spi/Language.java | 5 +++-
.../apache/camel/spi/RestApiConsumerFactory.java | 2 +-
.../apache/camel/spi/RestApiProcessorFactory.java | 2 +-
.../org/apache/camel/spi/RestConsumerFactory.java | 4 +--
.../camel/spi/RestOpenApiConsumerFactory.java | 4 +--
.../java/org/apache/camel/spi/RestRegistry.java | 2 +-
.../org/apache/camel/spi/RouteStartupOrder.java | 2 +-
.../apache/camel/spi/StreamCachingStrategy.java | 2 +-
.../java/org/apache/camel/spi/Synchronization.java | 3 +-
.../org/apache/camel/spi/ThreadPoolProfile.java | 2 +-
.../java/org/apache/camel/spi/Transformer.java | 2 +-
.../main/java/org/apache/camel/spi/Validator.java | 2 +-
63 files changed, 325 insertions(+), 104 deletions(-)
diff --git
a/core/camel-api/src/main/java/org/apache/camel/AggregationStrategy.java
b/core/camel-api/src/main/java/org/apache/camel/AggregationStrategy.java
index fd040410bb00..513edcccc0e0 100644
--- a/core/camel-api/src/main/java/org/apache/camel/AggregationStrategy.java
+++ b/core/camel-api/src/main/java/org/apache/camel/AggregationStrategy.java
@@ -44,13 +44,13 @@ import org.slf4j.LoggerFactory;
* market data prices; where old values are of little use.
* <p/>
* If an implementation also implements {@link org.apache.camel.Service} then
any
- * <a href="http://camel.apache.org/eip">EIP</a> that allowing configuring a
{@link AggregationStrategy} will invoke the
- * {@link org.apache.camel.Service#start()} and {@link
org.apache.camel.Service#stop()} to control the lifecycle aligned
- * with the EIP itself.
+ * <a href="https://camel.apache.org/eip">EIP</a> that allowing configuring a
{@link AggregationStrategy} will invoke
+ * the {@link org.apache.camel.Service#start()} and {@link
org.apache.camel.Service#stop()} to control the lifecycle
+ * aligned with the EIP itself.
* <p/>
* If an implementation also implements {@link
org.apache.camel.CamelContextAware} then any
- * <a href="http://camel.apache.org/eip">EIP</a> that allowing configuring a
{@link AggregationStrategy} will inject the
- * {@link org.apache.camel.CamelContext} prior to using the aggregation
strategy.
+ * <a href="https://camel.apache.org/eip">EIP</a> that allowing configuring a
{@link AggregationStrategy} will inject
+ * the {@link org.apache.camel.CamelContext} prior to using the aggregation
strategy.
*/
public interface AggregationStrategy {
diff --git a/core/camel-api/src/main/java/org/apache/camel/CamelContext.java
b/core/camel-api/src/main/java/org/apache/camel/CamelContext.java
index 83742bd71373..14f102eb1264 100644
--- a/core/camel-api/src/main/java/org/apache/camel/CamelContext.java
+++ b/core/camel-api/src/main/java/org/apache/camel/CamelContext.java
@@ -1000,7 +1000,7 @@ public interface CamelContext extends
CamelContextLifecycle, RuntimeConfiguratio
* Creates a new {@link ProducerTemplate} which is <b>started</b> and
therefore ready to use right away.
* <p/>
* See this FAQ before use:
- * <a
href="http://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">
Why does Camel
+ * <a
href="https://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">
Why does Camel
* use too many threads with ProducerTemplate?</a>
* <p/>
* <b>Important:</b> Make sure to call {@link
org.apache.camel.ProducerTemplate#stop()} when you are done using the
@@ -1020,7 +1020,7 @@ public interface CamelContext extends
CamelContextLifecycle, RuntimeConfiguratio
* Creates a new {@link ProducerTemplate} which is <b>started</b> and
therefore ready to use right away.
* <p/>
* See this FAQ before use:
- * <a
href="http://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">
Why does Camel
+ * <a
href="https://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">
Why does Camel
* use too many threads with ProducerTemplate?</a>
* <p/>
* <b>Important:</b> Make sure to call {@link ProducerTemplate#stop()}
when you are done using the template, to
@@ -1036,7 +1036,7 @@ public interface CamelContext extends
CamelContextLifecycle, RuntimeConfiguratio
* Creates a new {@link FluentProducerTemplate} which is <b>started</b>
and therefore ready to use right away.
* <p/>
* See this FAQ before use:
- * <a
href="http://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">
Why does Camel
+ * <a
href="https://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">
Why does Camel
* use too many threads with ProducerTemplate?</a>
* <p/>
* <b>Important:</b> Make sure to call {@link
org.apache.camel.FluentProducerTemplate#stop()} when you are done
@@ -1056,7 +1056,7 @@ public interface CamelContext extends
CamelContextLifecycle, RuntimeConfiguratio
* Creates a new {@link FluentProducerTemplate} which is <b>started</b>
and therefore ready to use right away.
* <p/>
* See this FAQ before use:
- * <a
href="http://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">
Why does Camel
+ * <a
href="https://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">
Why does Camel
* use too many threads with ProducerTemplate?</a>
* <p/>
* <b>Important:</b> Make sure to call {@link
FluentProducerTemplate#stop()} when you are done using the template,
@@ -1072,7 +1072,7 @@ public interface CamelContext extends
CamelContextLifecycle, RuntimeConfiguratio
* Creates a new {@link ConsumerTemplate} which is <b>started</b> and
therefore ready to use right away.
* <p/>
* See this FAQ before use:
- * <a
href="http://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">
Why does Camel
+ * <a
href="https://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">
Why does Camel
* use too many threads with ProducerTemplate?</a> as it also applies for
ConsumerTemplate.
* <p/>
* <b>Important:</b> Make sure to call {@link ConsumerTemplate#stop()}
when you are done using the template, to
@@ -1092,7 +1092,7 @@ public interface CamelContext extends
CamelContextLifecycle, RuntimeConfiguratio
* Creates a new {@link ConsumerTemplate} which is <b>started</b> and
therefore ready to use right away.
* <p/>
* See this FAQ before use:
- * <a
href="http://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">
Why does Camel
+ * <a
href="https://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">
Why does Camel
* use too many threads with ProducerTemplate?</a> as it also applies for
ConsumerTemplate.
* <p/>
* <b>Important:</b> Make sure to call {@link ConsumerTemplate#stop()}
when you are done using the template, to
@@ -1177,7 +1177,7 @@ public interface CamelContext extends
CamelContextLifecycle, RuntimeConfiguratio
* <b>Important:</b> This has nothing to do with property placeholders,
and is just a plain set of key/value pairs
* which are used to configure global options on CamelContext, such as a
maximum debug logging length etc. For
* property placeholders use {@link #resolvePropertyPlaceholders(String)}
method and see more details at the
- * <a
href="http://camel.apache.org/using-propertyplaceholder.html">property
placeholder</a> documentation.
+ * <a
href="https://camel.apache.org/using-propertyplaceholder.html">property
placeholder</a> documentation.
*
* @param globalOptions global options that can be referenced in the camel
context
*/
@@ -1189,7 +1189,7 @@ public interface CamelContext extends
CamelContextLifecycle, RuntimeConfiguratio
* <b>Important:</b> This has nothing to do with property placeholders,
and is just a plain set of key/value pairs
* which are used to configure global options on CamelContext, such as a
maximum debug logging length etc. For
* property placeholders use {@link #resolvePropertyPlaceholders(String)}
method and see more details at the
- * <a
href="http://camel.apache.org/using-propertyplaceholder.html">property
placeholder</a> documentation.
+ * <a
href="https://camel.apache.org/using-propertyplaceholder.html">property
placeholder</a> documentation.
*
* @return global options for this context
*/
@@ -1201,7 +1201,7 @@ public interface CamelContext extends
CamelContextLifecycle, RuntimeConfiguratio
* <b>Important:</b> This has nothing to do with property placeholders,
and is just a plain set of key/value pairs
* which are used to configure global options on CamelContext, such as a
maximum debug logging length etc. For
* property placeholders use {@link #resolvePropertyPlaceholders(String)}
method and see more details at the
- * <a
href="http://camel.apache.org/using-propertyplaceholder.html">property
placeholder</a> documentation.
+ * <a
href="https://camel.apache.org/using-propertyplaceholder.html">property
placeholder</a> documentation.
*
* @return the string value of the global option
*/
diff --git
a/core/camel-api/src/main/java/org/apache/camel/CamelExchangeException.java
b/core/camel-api/src/main/java/org/apache/camel/CamelExchangeException.java
index cf0114b7a288..88a694bf65d1 100644
--- a/core/camel-api/src/main/java/org/apache/camel/CamelExchangeException.java
+++ b/core/camel-api/src/main/java/org/apache/camel/CamelExchangeException.java
@@ -29,12 +29,21 @@ public class CamelExchangeException extends CamelException {
// exchange is not guaranteed to be serializable so we set it as transient
private final transient @Nullable Exchange exchange;
+ /**
+ * @param message the detail message
+ * @param exchange the exchange that caused the error
+ */
public CamelExchangeException(String message, @Nullable Exchange exchange)
{
super(CamelExchangeException.createExceptionMessage(
Objects.requireNonNull(message, "message"), exchange, null));
this.exchange = exchange;
}
+ /**
+ * @param message the detail message
+ * @param exchange the exchange that caused the error
+ * @param cause the cause of the failure
+ */
public CamelExchangeException(String message, @Nullable Exchange exchange,
Throwable cause) {
super(CamelExchangeException.createExceptionMessage(
Objects.requireNonNull(message, "message"), exchange,
diff --git
a/core/camel-api/src/main/java/org/apache/camel/CamelExecutionException.java
b/core/camel-api/src/main/java/org/apache/camel/CamelExecutionException.java
index e18b0d833bd5..f73bfbf86821 100644
--- a/core/camel-api/src/main/java/org/apache/camel/CamelExecutionException.java
+++ b/core/camel-api/src/main/java/org/apache/camel/CamelExecutionException.java
@@ -27,10 +27,19 @@ import org.jspecify.annotations.Nullable;
*/
public class CamelExecutionException extends RuntimeExchangeException {
+ /**
+ * @param message the detail message
+ * @param exchange the exchange that caused the error
+ */
public CamelExecutionException(String message, @Nullable Exchange
exchange) {
super(Objects.requireNonNull(message, "message"), exchange);
}
+ /**
+ * @param message the detail message
+ * @param exchange the exchange that caused the error
+ * @param cause the cause of the failure
+ */
public CamelExecutionException(String message, @Nullable Exchange
exchange, Throwable cause) {
super(Objects.requireNonNull(message, "message"), exchange,
Objects.requireNonNull(cause, "cause"));
diff --git a/core/camel-api/src/main/java/org/apache/camel/Component.java
b/core/camel-api/src/main/java/org/apache/camel/Component.java
index 84313832e616..f99b936f33bb 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Component.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Component.java
@@ -26,7 +26,7 @@ import org.apache.camel.spi.PropertyConfigurer;
import org.jspecify.annotations.Nullable;
/**
- * A <a href="http://camel.apache.org/component.html">component</a> is a
factory of {@link Endpoint} objects.
+ * A <a href="https://camel.apache.org/component.html">component</a> is a
factory of {@link Endpoint} objects.
*/
public interface Component extends CamelContextAware, Service {
diff --git a/core/camel-api/src/main/java/org/apache/camel/Consume.java
b/core/camel-api/src/main/java/org/apache/camel/Consume.java
index ad84a6498dd1..d8f872dc0fce 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Consume.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Consume.java
@@ -23,11 +23,11 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
- * Subscribes a method to an {@link Endpoint} either via its <a
href="http://camel.apache.org/uris.html">URI</a> or via
+ * Subscribes a method to an {@link Endpoint} either via its <a
href="https://camel.apache.org/uris.html">URI</a> or via
* the name of the endpoint reference which is then resolved in a registry
such as the Spring Application Context.
* <p/>
* When a message {@link Exchange} is received from the {@link Endpoint} then
the
- * <a href="http://camel.apache.org/bean-integration.html">Bean
Integration</a> mechanism is used to map the incoming
+ * <a href="https://camel.apache.org/bean-integration.html">Bean
Integration</a> mechanism is used to map the incoming
* {@link Message} to the method parameters.
*/
@Retention(RetentionPolicy.RUNTIME)
diff --git
a/core/camel-api/src/main/java/org/apache/camel/ConsumerTemplate.java
b/core/camel-api/src/main/java/org/apache/camel/ConsumerTemplate.java
index 3d6d4a6ca90f..e09a51f69911 100644
--- a/core/camel-api/src/main/java/org/apache/camel/ConsumerTemplate.java
+++ b/core/camel-api/src/main/java/org/apache/camel/ConsumerTemplate.java
@@ -22,8 +22,8 @@ import org.jspecify.annotations.Nullable;
* Template for working with Camel and consuming {@link Message} instances in
an {@link Exchange} from an
* {@link Endpoint}. <br/>
* <p/>
- * This template is an implementation of the <a
href="http://camel.apache.org/polling-consumer.html">Polling Consumer
- * EIP</a>. This is <b>not</b> the <a
href="http://camel.apache.org/event-driven-consumer.html">Event Driven Consumer
+ * This template is an implementation of the <a
href="https://camel.apache.org/polling-consumer.html">Polling Consumer
+ * EIP</a>. This is <b>not</b> the <a
href="https://camel.apache.org/event-driven-consumer.html">Event Driven Consumer
* EIP</a>. <br/>
* <p/>
* The {@link ConsumerTemplate} is <b>thread safe</b>. <br/>
@@ -36,8 +36,8 @@ import org.jspecify.annotations.Nullable;
* the template.
* <p/>
* <b>Important note on usage:</b> See this
- * <a
href="http://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">FAQ
entry</a> before
- * using, it applies to this {@link ConsumerTemplate} as well.
+ * <a
href="https://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">FAQ
entry</a>
+ * before using, it applies to this {@link ConsumerTemplate} as well.
*
* @see ProducerTemplate
* @see FluentProducerTemplate
diff --git a/core/camel-api/src/main/java/org/apache/camel/Converter.java
b/core/camel-api/src/main/java/org/apache/camel/Converter.java
index 00c7b43c9732..a6f0f82cd210 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Converter.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Converter.java
@@ -24,7 +24,7 @@ import java.lang.annotation.Target;
/**
* An annotation used to mark classes and methods to indicate code capable of
converting from a type to another type
- * which are then auto-discovered using the <a
href="http://camel.apache.org/type-converter.html">Type Conversion
+ * which are then auto-discovered using the <a
href="https://camel.apache.org/type-converter.html">Type Conversion
* Support</a>
*/
@Retention(RetentionPolicy.RUNTIME)
diff --git a/core/camel-api/src/main/java/org/apache/camel/DynamicRouter.java
b/core/camel-api/src/main/java/org/apache/camel/DynamicRouter.java
index f8a3aa05061e..b474938b602d 100644
--- a/core/camel-api/src/main/java/org/apache/camel/DynamicRouter.java
+++ b/core/camel-api/src/main/java/org/apache/camel/DynamicRouter.java
@@ -23,11 +23,11 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
- * Indicates that this method is to be used as a <a
href="http://camel.apache.org/dynamic-router.html">Dynamic
+ * Indicates that this method is to be used as a <a
href="https://camel.apache.org/dynamic-router.html">Dynamic
* Router</a> routing the incoming message through a series of processing
steps.
*
* When a message {@link Exchange} is received from an {@link Endpoint} then
the
- * <a href="http://camel.apache.org/bean-integration.html">Bean
Integration</a> mechanism is used to map the incoming
+ * <a href="https://camel.apache.org/bean-integration.html">Bean
Integration</a> mechanism is used to map the incoming
* {@link Message} to the method parameters.
*
* The return value of the method is then converted to either a {@link
java.util.Collection} or array of objects where
diff --git a/core/camel-api/src/main/java/org/apache/camel/Endpoint.java
b/core/camel-api/src/main/java/org/apache/camel/Endpoint.java
index 8e9c5decd862..2ebbebb9bcbe 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Endpoint.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Endpoint.java
@@ -22,8 +22,8 @@ import org.apache.camel.support.service.ServiceSupport;
import org.apache.camel.util.StringHelper;
/**
- * An <a href="http://camel.apache.org/endpoint.html">endpoint</a> implements
the
- * <a href="http://camel.apache.org/message-endpoint.html">Message
Endpoint</a> pattern and represents an endpoint that
+ * An <a href="https://camel.apache.org/endpoint.html">endpoint</a> implements
the
+ * <a href="https://camel.apache.org/message-endpoint.html">Message
Endpoint</a> pattern and represents an endpoint that
* can send and receive message exchanges
*
* @see Exchange
@@ -130,7 +130,7 @@ public interface Endpoint extends IsSingleton, Service,
ComponentAware {
AsyncProducer createAsyncProducer() throws Exception;
/**
- * Creates a new <a
href="http://camel.apache.org/event-driven-consumer.html">Event Driven
Consumer</a> which
+ * Creates a new <a
href="https://camel.apache.org/event-driven-consumer.html">Event Driven
Consumer</a> which
* consumes messages from the endpoint using the given processor
*
* Important: Do not do any initialization in the constructor of the
{@link Consumer}. Instead use
@@ -143,10 +143,10 @@ public interface Endpoint extends IsSingleton, Service,
ComponentAware {
Consumer createConsumer(Processor processor) throws Exception;
/**
- * Creates a new <a
href="http://camel.apache.org/polling-consumer.html">Polling Consumer</a> so
that the caller can
- * poll message exchanges from the consumer using {@link
PollingConsumer#receive()},
+ * Creates a new <a
href="https://camel.apache.org/polling-consumer.html">Polling Consumer</a> so
that the caller
+ * can poll message exchanges from the consumer using {@link
PollingConsumer#receive()},
* {@link PollingConsumer#receiveNoWait()} or {@link
PollingConsumer#receive(long)} whenever it is ready to do so
- * rather than using the <a
href="http://camel.apache.org/event-driven-consumer.html">Event Based
Consumer</a>
+ * rather than using the <a
href="https://camel.apache.org/event-driven-consumer.html">Event Based
Consumer</a>
* returned by {@link #createConsumer(Processor)}
*
* Important: Do not do any initialization in the constructor of the
{@link PollingConsumer}. Instead use
diff --git a/core/camel-api/src/main/java/org/apache/camel/EndpointInject.java
b/core/camel-api/src/main/java/org/apache/camel/EndpointInject.java
index c60a15bb4762..e317fbcf06aa 100644
--- a/core/camel-api/src/main/java/org/apache/camel/EndpointInject.java
+++ b/core/camel-api/src/main/java/org/apache/camel/EndpointInject.java
@@ -25,7 +25,7 @@ import java.lang.annotation.Target;
/**
* Used to indicate an injection point of an {@link Endpoint}, {@link
Producer} or {@link ProducerTemplate} into a POJO.
*
- * A <a href="http://camel.apache.org/uris.html">URI</a> for an endpoint can
be specified on this annotation, or a name
+ * A <a href="https://camel.apache.org/uris.html">URI</a> for an endpoint can
be specified on this annotation, or a name
* can be specified which is resolved in the {@link
org.apache.camel.spi.Registry} such as in your Spring
* ApplicationContext.
*
diff --git a/core/camel-api/src/main/java/org/apache/camel/Exchange.java
b/core/camel-api/src/main/java/org/apache/camel/Exchange.java
index 88b81c0064ac..72ba36e0d1ea 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Exchange.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Exchange.java
@@ -28,9 +28,9 @@ import org.jspecify.annotations.Nullable;
* An Exchange is the message container holding the information during the
entire routing of a {@link Message} received
* by a {@link Consumer}.
* <p/>
- * During processing down the {@link Processor} chain, the {@link Exchange}
provides access to the current (not the
- * original) request and response {@link Message} messages. The {@link
Exchange} also holds meta-data during its entire
- * lifetime stored as properties accessible using the various {@link
#getProperty(String)} methods. The
+ * During processing down the {@link Processor} chain, the {@link Exchange}
provides access to the current
+ * {@link Message} via {@link #getMessage()}. The {@link Exchange} also holds
meta-data during its entire lifetime
+ * stored as properties accessible using the various {@link
#getProperty(String)} methods. The
* {@link #setProperty(String, Object)} is used to store a property. For
example, you can use this to store security,
* SLA related data or any other information deemed useful throughout
processing. If an {@link Exchange} failed during
* routing the {@link Exception} that caused the failure is stored and
accessible via the {@link #getException()}
@@ -39,28 +39,14 @@ import org.jspecify.annotations.Nullable;
* An Exchange is created when a {@link Consumer} receives a request. A new
{@link Message} is created, the request is
* set as the body of the {@link Message} and depending on the {@link
Consumer} other {@link Endpoint} and protocol
* related information is added as headers on the {@link Message}. Then an
Exchange is created and the newly created
- * {@link Message} is set as the in on the Exchange. Therefore, an Exchange
starts its life in a {@link Consumer}. The
- * Exchange is then sent down the {@link Route} for processing along a {@link
Processor} chain. The {@link Processor} as
- * the name suggests is what processes the {@link Message} in the Exchange and
Camel, in addition to providing
- * out-of-the-box a large number of useful processors, it also allows you to
create your own. The rule Camel uses is to
- * take the out {@link Message} produced by the previous {@link Processor} and
set it as the in for the next
- * {@link Processor}. If the previous {@link Processor} did not produce an
out, then the in of the previous
- * {@link Processor} is sent as the next in. At the end of the processing
chain, depending on the {@link ExchangePattern
- * Message Exchange Pattern} (or MEP) the last out (or in of no out available)
is sent by the {@link Consumer} back to
- * the original caller.
+ * {@link Message} is set on the Exchange. Therefore, an Exchange starts its
life in a {@link Consumer}. The Exchange is
+ * then sent down the {@link Route} for processing along a {@link Processor}
chain. The {@link Processor} as the name
+ * suggests is what processes the {@link Message} in the Exchange. Camel
provides a large number of useful processors
+ * out-of-the-box, and it also allows you to create your own.
* <p/>
- * Camel, in addition to providing out-of-the-box a large number of useful
processors, it also allows you to implement
- * and use your own. When the Exchange is passed to a {@link Processor}, it
always contains an in {@link Message} and no
- * out {@link Message}. The {@link Processor} <b>may</b> produce an out,
depending on the nature of the
- * {@link Processor}. The in {@link Message} can be accessed using the {@link
#getIn()} method. Since the out message is
- * null when entering the {@link Processor}, the {@link #getOut()} method is
actually a convenient factory method that
- * will lazily instantiate a {@link org.apache.camel.support.DefaultMessage}
which you could populate. As an alternative
- * you could also instantiate your specialized {@link Message} and set it on
the exchange using the
- * {@link #setOut(org.apache.camel.Message)} method. Please note that a {@link
Message} contains not only the body but
- * also headers and attachments. If you are creating a new {@link Message} the
headers and attachments of the in
- * {@link Message} are not automatically copied to the out by Camel, and
you'll have to set the headers and attachments
- * you need yourself. If your {@link Processor} is not producing a different
{@link Message} but only needs to slightly
- * modify the in, you can simply update the in {@link Message} returned by
{@link #getIn()}.
+ * To access or modify the current message, use the {@link #getMessage()}
method. Camel uses {@link #getMessage()} to
+ * obtain the current message during routing. If a {@link Processor} modifies
the message, those changes are visible to
+ * subsequent processors. The {@link ExchangePattern} determines whether a
reply is expected (InOut) or not (InOnly).
*/
@ConstantProvider("org.apache.camel.ExchangeConstantProvider")
public interface Exchange extends VariableAware {
diff --git a/core/camel-api/src/main/java/org/apache/camel/Expression.java
b/core/camel-api/src/main/java/org/apache/camel/Expression.java
index 072439160338..5aa55b3cdd5d 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Expression.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Expression.java
@@ -19,7 +19,7 @@ package org.apache.camel;
import org.jspecify.annotations.Nullable;
/**
- * An <a href="http://camel.apache.org/expression.html">expression</a>
provides a plugin strategy for evaluating
+ * An <a href="https://camel.apache.org/expression.html">expression</a>
provides a plugin strategy for evaluating
* expressions on a message exchange.
*
* An expression should be thread-safe and be able to evaluate concurrently by
different threads with different
diff --git
a/core/camel-api/src/main/java/org/apache/camel/FailedToCreateConsumerException.java
b/core/camel-api/src/main/java/org/apache/camel/FailedToCreateConsumerException.java
index 5729c29ff4db..6b854ccdd5b5 100644
---
a/core/camel-api/src/main/java/org/apache/camel/FailedToCreateConsumerException.java
+++
b/core/camel-api/src/main/java/org/apache/camel/FailedToCreateConsumerException.java
@@ -27,24 +27,41 @@ public class FailedToCreateConsumerException extends
RuntimeCamelException {
private final String uri;
+ /**
+ * @param endpointURI the URI of the endpoint for which consumer creation
failed
+ * @param cause the cause of the failure
+ */
public FailedToCreateConsumerException(String endpointURI, Throwable
cause) {
super("Failed to create Consumer for endpoint for: " +
sanitizeUri(Objects.requireNonNull(endpointURI, "endpointURI"))
+ ". Reason: " + Objects.requireNonNull(cause, "cause"), cause);
this.uri = sanitizeUri(endpointURI);
}
+ /**
+ * @param endpoint the endpoint for which consumer creation failed
+ * @param cause the cause of the failure
+ */
public FailedToCreateConsumerException(Endpoint endpoint, Throwable cause)
{
super("Failed to create Consumer for endpoint: " +
Objects.requireNonNull(endpoint, "endpoint") + ". Reason: "
+ Objects.requireNonNull(cause, "cause"), cause);
this.uri = sanitizeUri(endpoint.getEndpointUri());
}
+ /**
+ * @param endpoint the endpoint for which consumer creation failed
+ * @param message the detail message
+ * @param cause the cause of the failure
+ */
public FailedToCreateConsumerException(Endpoint endpoint, String message,
Throwable cause) {
super("Failed to create Consumer for endpoint: " +
Objects.requireNonNull(endpoint, "endpoint") + ". Reason: "
+ Objects.requireNonNull(message, "message"),
Objects.requireNonNull(cause, "cause"));
this.uri = sanitizeUri(endpoint.getEndpointUri());
}
+ /**
+ * @param endpoint the endpoint for which consumer creation failed
+ * @param message the detail message
+ */
public FailedToCreateConsumerException(Endpoint endpoint, String message) {
super("Failed to create Consumer for endpoint: " +
Objects.requireNonNull(endpoint, "endpoint") + ". Reason: "
+ Objects.requireNonNull(message, "message"));
diff --git
a/core/camel-api/src/main/java/org/apache/camel/FailedToCreateProducerException.java
b/core/camel-api/src/main/java/org/apache/camel/FailedToCreateProducerException.java
index 75fea0d24e4c..73a245a32e60 100644
---
a/core/camel-api/src/main/java/org/apache/camel/FailedToCreateProducerException.java
+++
b/core/camel-api/src/main/java/org/apache/camel/FailedToCreateProducerException.java
@@ -27,6 +27,10 @@ public class FailedToCreateProducerException extends
RuntimeCamelException {
private final String uri;
+ /**
+ * @param endpoint the endpoint for which producer creation failed
+ * @param cause the cause of the failure
+ */
public FailedToCreateProducerException(Endpoint endpoint, Throwable cause)
{
super("Failed to create Producer for endpoint: " +
Objects.requireNonNull(endpoint, "endpoint") + ". Reason: "
+ Objects.requireNonNull(cause, "cause"), cause);
diff --git
a/core/camel-api/src/main/java/org/apache/camel/FailedToCreateRouteException.java
b/core/camel-api/src/main/java/org/apache/camel/FailedToCreateRouteException.java
index 4466edb7b792..845fdae4a233 100644
---
a/core/camel-api/src/main/java/org/apache/camel/FailedToCreateRouteException.java
+++
b/core/camel-api/src/main/java/org/apache/camel/FailedToCreateRouteException.java
@@ -29,12 +29,21 @@ public class FailedToCreateRouteException extends
RuntimeCamelException {
private final @Nullable String routeId;
private final @Nullable String location;
+ /**
+ * @param cause a description of why route creation failed
+ */
public FailedToCreateRouteException(String cause) {
super("Failed to create route because: " +
Objects.requireNonNull(cause, "cause"));
this.routeId = null;
this.location = null;
}
+ /**
+ * @param routeId the ID of the route that failed to be created
+ * @param location the source location of the route definition, or {@code
null} if unknown
+ * @param route the route definition string
+ * @param cause the error message describing why route creation failed
+ */
public FailedToCreateRouteException(String routeId, @Nullable String
location, String route, String cause) {
super("Failed to create route: " + Objects.requireNonNull(routeId,
"routeId")
+ (location != null ? " (source: " + location + ")" : "") + ": "
@@ -44,6 +53,12 @@ public class FailedToCreateRouteException extends
RuntimeCamelException {
this.location = location;
}
+ /**
+ * @param routeId the ID of the route that failed to be created
+ * @param location the source location of the route definition, or {@code
null} if unknown
+ * @param route the route definition string
+ * @param cause the cause of the failure
+ */
public FailedToCreateRouteException(String routeId, @Nullable String
location, String route, Throwable cause) {
super("Failed to create route: " + Objects.requireNonNull(routeId,
"routeId")
+ (location != null ? " (source: " + location + ")" : "") + ": "
@@ -54,6 +69,13 @@ public class FailedToCreateRouteException extends
RuntimeCamelException {
this.location = location;
}
+ /**
+ * @param routeId the ID of the route that failed to be created
+ * @param location the source location of the route definition, or {@code
null} if unknown
+ * @param route the route definition string
+ * @param at the location in the route definition where the error
occurred
+ * @param cause the cause of the failure
+ */
public FailedToCreateRouteException(String routeId, @Nullable String
location, String route, String at, Throwable cause) {
super("Failed to create route: " + Objects.requireNonNull(routeId,
"routeId")
+ (location != null ? " (source: " + location + ")" : "") + "
at: >>> "
diff --git
a/core/camel-api/src/main/java/org/apache/camel/FailedToStartComponentException.java
b/core/camel-api/src/main/java/org/apache/camel/FailedToStartComponentException.java
index fc0f32d5f9ef..26c16563a6a1 100644
---
a/core/camel-api/src/main/java/org/apache/camel/FailedToStartComponentException.java
+++
b/core/camel-api/src/main/java/org/apache/camel/FailedToStartComponentException.java
@@ -25,6 +25,11 @@ public class FailedToStartComponentException extends
RuntimeCamelException {
private final String componentName;
+ /**
+ * @param componentName the name of the component that failed to start
+ * @param message the detail message describing the failure
+ * @param cause the cause of the failure
+ */
public FailedToStartComponentException(String componentName, String
message, Throwable cause) {
super("Failed to start component " +
Objects.requireNonNull(componentName, "componentName") + " because of "
+ Objects.requireNonNull(message, "message"),
Objects.requireNonNull(cause, "cause"));
diff --git
a/core/camel-api/src/main/java/org/apache/camel/FluentProducerTemplate.java
b/core/camel-api/src/main/java/org/apache/camel/FluentProducerTemplate.java
index c63e494271f1..60c2f2ae038c 100644
--- a/core/camel-api/src/main/java/org/apache/camel/FluentProducerTemplate.java
+++ b/core/camel-api/src/main/java/org/apache/camel/FluentProducerTemplate.java
@@ -84,8 +84,8 @@ import org.jspecify.annotations.Nullable;
* the template.<br/>
* <p/>
* <b>Important note on usage:</b> See this
- * <a
href="http://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">FAQ
entry</a> before
- * using.
+ * <a
href="https://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">FAQ
entry</a>
+ * before using.
*
* @see ProducerTemplate
* @see ConsumerTemplate
diff --git a/core/camel-api/src/main/java/org/apache/camel/InOnly.java
b/core/camel-api/src/main/java/org/apache/camel/InOnly.java
index 69088aee0a51..ccddf9e55d81 100644
--- a/core/camel-api/src/main/java/org/apache/camel/InOnly.java
+++ b/core/camel-api/src/main/java/org/apache/camel/InOnly.java
@@ -24,7 +24,7 @@ import java.lang.annotation.Target;
/**
* Marks methods as being {@link ExchangePattern#InOnly} for one way
asynchronous invocation when using
- * <a href="http://camel.apache.org/bean-integration.html">Bean
Integration</a> to overload the default value which is
+ * <a href="https://camel.apache.org/bean-integration.html">Bean
Integration</a> to overload the default value which is
* {@link ExchangePattern#InOut} for request/reply if no annotations are used.
*
* This annotation can be added to individual methods or added to a class or
interface to act as a default for all
diff --git a/core/camel-api/src/main/java/org/apache/camel/InOut.java
b/core/camel-api/src/main/java/org/apache/camel/InOut.java
index 8f7479af7d81..8026cc175de6 100644
--- a/core/camel-api/src/main/java/org/apache/camel/InOut.java
+++ b/core/camel-api/src/main/java/org/apache/camel/InOut.java
@@ -24,7 +24,7 @@ import java.lang.annotation.Target;
/**
* Marks a method as being {@link ExchangePattern#InOut} when a class or
interface has been annotated with
- * {@link InOnly} when using <a
href="http://camel.apache.org/bean-integration.html">Bean Integration</a>.
+ * {@link InOnly} when using <a
href="https://camel.apache.org/bean-integration.html">Bean Integration</a>.
*
* This annotation is only intended to be used on methods which the class or
interface has been annotated with a default
* exchange pattern annotation such as {@link InOnly} or {@link Pattern}
diff --git
a/core/camel-api/src/main/java/org/apache/camel/InvalidPayloadException.java
b/core/camel-api/src/main/java/org/apache/camel/InvalidPayloadException.java
index 88dd87c7c6a0..8751f09a2310 100644
--- a/core/camel-api/src/main/java/org/apache/camel/InvalidPayloadException.java
+++ b/core/camel-api/src/main/java/org/apache/camel/InvalidPayloadException.java
@@ -27,10 +27,19 @@ public class InvalidPayloadException extends
CamelExchangeException {
private final transient @Nullable Class<?> type;
+ /**
+ * @param exchange the exchange that caused the error
+ * @param type the expected body type
+ */
public InvalidPayloadException(Exchange exchange, Class<?> type) {
this(exchange, type, exchange.getIn());
}
+ /**
+ * @param exchange the exchange that caused the error
+ * @param type the expected body type
+ * @param message the message with the invalid or missing payload
+ */
public InvalidPayloadException(Exchange exchange, Class<?> type, Message
message) {
super("No body available of type: " + Objects.requireNonNull(type,
"type").getCanonicalName()
+
NoSuchPropertyException.valueDescription(Objects.requireNonNull(message,
"message").getBody())
@@ -38,6 +47,12 @@ public class InvalidPayloadException extends
CamelExchangeException {
this.type = type;
}
+ /**
+ * @param exchange the exchange that caused the error
+ * @param type the expected body type
+ * @param message the message with the invalid or missing payload
+ * @param cause the cause of the failure
+ */
public InvalidPayloadException(Exchange exchange, Class<?> type, Message
message, Throwable cause) {
super("No body available of type: " + Objects.requireNonNull(type,
"type").getCanonicalName()
+
NoSuchPropertyException.valueDescription(Objects.requireNonNull(message,
"message").getBody())
diff --git
a/core/camel-api/src/main/java/org/apache/camel/InvalidPayloadRuntimeException.java
b/core/camel-api/src/main/java/org/apache/camel/InvalidPayloadRuntimeException.java
index e8d98614bd30..ff23c1535654 100644
---
a/core/camel-api/src/main/java/org/apache/camel/InvalidPayloadRuntimeException.java
+++
b/core/camel-api/src/main/java/org/apache/camel/InvalidPayloadRuntimeException.java
@@ -27,14 +27,28 @@ public class InvalidPayloadRuntimeException extends
RuntimeExchangeException {
private final transient @Nullable Class<?> type;
+ /**
+ * @param exchange the exchange that caused the error
+ * @param type the expected body type
+ */
public InvalidPayloadRuntimeException(Exchange exchange, Class<?> type) {
this(exchange, type, exchange.getIn());
}
+ /**
+ * @param exchange the exchange that caused the error
+ * @param type the expected body type
+ * @param cause the cause of the failure
+ */
public InvalidPayloadRuntimeException(Exchange exchange, Class<?> type,
Throwable cause) {
this(exchange, type, exchange.getIn(), cause);
}
+ /**
+ * @param exchange the exchange that caused the error
+ * @param type the expected body type
+ * @param message the message with the invalid or missing payload
+ */
public InvalidPayloadRuntimeException(Exchange exchange, Class<?> type,
Message message) {
super("No body available of type: " + Objects.requireNonNull(type,
"type").getName()
+
NoSuchPropertyException.valueDescription(Objects.requireNonNull(message,
"message").getBody())
@@ -42,6 +56,12 @@ public class InvalidPayloadRuntimeException extends
RuntimeExchangeException {
this.type = type;
}
+ /**
+ * @param exchange the exchange that caused the error
+ * @param type the expected body type
+ * @param message the message with the invalid or missing payload
+ * @param cause the cause of the failure
+ */
public InvalidPayloadRuntimeException(Exchange exchange, Class<?> type,
Message message, Throwable cause) {
super("No body available of type: " + Objects.requireNonNull(type,
"type").getName()
+
NoSuchPropertyException.valueDescription(Objects.requireNonNull(message,
"message").getBody())
diff --git a/core/camel-api/src/main/java/org/apache/camel/Message.java
b/core/camel-api/src/main/java/org/apache/camel/Message.java
index 747915cd2077..c94070b4a182 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Message.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Message.java
@@ -24,7 +24,7 @@ import org.apache.camel.trait.message.MessageTrait;
import org.jspecify.annotations.Nullable;
/**
- * Implements the <a href="http://camel.apache.org/message.html">Message</a>
pattern and represents an inbound or
+ * Implements the <a href="https://camel.apache.org/message.html">Message</a>
pattern and represents an inbound or
* outbound message as part of an {@link Exchange}.
* <p/>
* Headers are represented in Camel using a {@link
org.apache.camel.util.CaseInsensitiveMap CaseInsensitiveMap}. The
@@ -232,7 +232,7 @@ public interface Message {
* Notice if the message body is stream based then calling this method
multiple times may lead to the stream not
* being able to be re-read again. You can enable stream caching and call
the {@link StreamCache#reset()} method to
* reset the stream to be able to re-read again (if possible). See more
details about
- * <a href="http://camel.apache.org/stream-caching.html">stream
caching</a>.
+ * <a href="https://camel.apache.org/stream-caching.html">stream
caching</a>.
*
* @return the body, can be <tt>null</tt>
*/
@@ -244,7 +244,7 @@ public interface Message {
* <p/>
* Notice if the message body is stream based then calling this method
multiple times may lead to the stream not
* being able to be re-read again. See more details about
- * <a href="http://camel.apache.org/stream-caching.html">stream
caching</a>.
+ * <a href="https://camel.apache.org/stream-caching.html">stream
caching</a>.
*
* @return the body, is never <tt>null</tt>
* @throws InvalidPayloadException Is thrown if the body being
<tt>null</tt> or wrong class type
@@ -257,7 +257,7 @@ public interface Message {
* Notice if the message body is stream based then calling this method
multiple times may lead to the stream not
* being able to be re-read again. You can enable stream caching and call
the {@link StreamCache#reset()} method to
* reset the stream to be able to re-read again (if possible). See more
details about
- * <a href="http://camel.apache.org/stream-caching.html">stream
caching</a>.
+ * <a href="https://camel.apache.org/stream-caching.html">stream
caching</a>.
* <p/>
* The helper method {@link
org.apache.camel.support.ExchangeHelper#getBodyAndResetStreamCache(Exchange,
Class)} can
* be used instead that gets the body, convert to the given type, and
ensures to reset the body if its stream based.
@@ -277,7 +277,7 @@ public interface Message {
* Notice if the message body is stream based then calling this method
multiple times may lead to the stream not
* being able to be re-read again. You can enable stream caching and call
the {@link StreamCache#reset()} method to
* reset the stream to be able to re-read again (if possible). See more
details about
- * <a href="http://camel.apache.org/stream-caching.html">stream
caching</a>.
+ * <a href="https://camel.apache.org/stream-caching.html">stream
caching</a>.
* <p/>
* The helper method {@link
org.apache.camel.support.ExchangeHelper#getBodyAndResetStreamCache(Exchange,
Class)} can
* be used instead that gets the body, convert to the given type, and
ensures to reset the body if its stream based.
diff --git
a/core/camel-api/src/main/java/org/apache/camel/NoSuchBeanException.java
b/core/camel-api/src/main/java/org/apache/camel/NoSuchBeanException.java
index df06a1e50476..6d15ef558c71 100644
--- a/core/camel-api/src/main/java/org/apache/camel/NoSuchBeanException.java
+++ b/core/camel-api/src/main/java/org/apache/camel/NoSuchBeanException.java
@@ -27,11 +27,18 @@ public class NoSuchBeanException extends
RuntimeCamelException {
private final @Nullable String name;
+ /**
+ * @param name the bean name that could not be found
+ */
public NoSuchBeanException(String name) {
super("No bean could be found in the registry for: " +
Objects.requireNonNull(name, "name"));
this.name = name;
}
+ /**
+ * @param name the bean name that was looked up
+ * @param size the number of matching beans found (0 means none, >1
means ambiguous)
+ */
public NoSuchBeanException(String name, int size) {
super(size > 0
? "Found " + size + " beans for: " +
Objects.requireNonNull(name, "name")
@@ -40,18 +47,31 @@ public class NoSuchBeanException extends
RuntimeCamelException {
this.name = name;
}
+ /**
+ * @param name the bean name that could not be found, or {@code null} if
only the type matters
+ * @param type the required bean type
+ */
public NoSuchBeanException(@Nullable String name, String type) {
super("No bean could be found in the registry" + (name != null ? "
for: " + name : "") + " of type: "
+ Objects.requireNonNull(type, "type"));
this.name = name;
}
+ /**
+ * @param name the bean name that could not be found
+ * @param cause the cause of the failure
+ */
public NoSuchBeanException(String name, Throwable cause) {
super("No bean could be found in the registry for: " +
Objects.requireNonNull(name, "name") + ". Cause: "
+ Objects.requireNonNull(cause, "cause").getMessage(), cause);
this.name = name;
}
+ /**
+ * @param name the bean name that could not be found
+ * @param message the detail message
+ * @param cause the cause of the failure
+ */
public NoSuchBeanException(String name, String message, Throwable cause) {
super(Objects.requireNonNull(message, "message"),
Objects.requireNonNull(cause, "cause"));
this.name = Objects.requireNonNull(name, "name");
diff --git
a/core/camel-api/src/main/java/org/apache/camel/NoSuchEndpointException.java
b/core/camel-api/src/main/java/org/apache/camel/NoSuchEndpointException.java
index 07672e9440c2..f52b675f8baf 100644
--- a/core/camel-api/src/main/java/org/apache/camel/NoSuchEndpointException.java
+++ b/core/camel-api/src/main/java/org/apache/camel/NoSuchEndpointException.java
@@ -28,12 +28,19 @@ public class NoSuchEndpointException extends
RuntimeCamelException {
private final String uri;
+ /**
+ * @param uri the endpoint URI that could not be found
+ */
public NoSuchEndpointException(String uri) {
super("No endpoint could be found for: " +
sanitizeUri(Objects.requireNonNull(uri, "uri"))
+ ", please check your classpath contains the needed Camel
component jar.");
this.uri = sanitizeUri(uri);
}
+ /**
+ * @param uri the endpoint URI that could not be found
+ * @param resolveMethod a resolution instruction appended after "please"
in the error message
+ */
public NoSuchEndpointException(String uri, String resolveMethod) {
super("No endpoint could be found for: " +
sanitizeUri(Objects.requireNonNull(uri, "uri"))
+ ", please " + Objects.requireNonNull(resolveMethod,
"resolveMethod"));
diff --git
a/core/camel-api/src/main/java/org/apache/camel/NoSuchHeaderException.java
b/core/camel-api/src/main/java/org/apache/camel/NoSuchHeaderException.java
index a10335113893..f652ae19a301 100644
--- a/core/camel-api/src/main/java/org/apache/camel/NoSuchHeaderException.java
+++ b/core/camel-api/src/main/java/org/apache/camel/NoSuchHeaderException.java
@@ -30,12 +30,22 @@ public class NoSuchHeaderException extends
CamelExchangeException {
private final String headerName;
private final transient @Nullable Class<?> type;
+ /**
+ * @param message the detail message
+ * @param exchange the exchange that caused the error
+ * @param headerName the name of the missing header
+ */
public NoSuchHeaderException(String message, Exchange exchange, String
headerName) {
super(Objects.requireNonNull(message, "message"),
Objects.requireNonNull(exchange, "exchange"));
this.headerName = Objects.requireNonNull(headerName, "headerName");
this.type = null;
}
+ /**
+ * @param exchange the exchange that caused the error
+ * @param headerName the name of the missing header
+ * @param type the expected header type, or {@code null} if no
specific type is required
+ */
public NoSuchHeaderException(Exchange exchange, String headerName,
@Nullable Class<?> type) {
super("No '" + Objects.requireNonNull(headerName, "headerName") + "'
header available"
+ (type != null ? " of type: " + type.getName() : "")
diff --git
a/core/camel-api/src/main/java/org/apache/camel/NoSuchLanguageException.java
b/core/camel-api/src/main/java/org/apache/camel/NoSuchLanguageException.java
index 791f8647856a..fcdfcfe6b2e8 100644
--- a/core/camel-api/src/main/java/org/apache/camel/NoSuchLanguageException.java
+++ b/core/camel-api/src/main/java/org/apache/camel/NoSuchLanguageException.java
@@ -27,6 +27,9 @@ public class NoSuchLanguageException extends
RuntimeCamelException {
private final String language;
+ /**
+ * @param language the language name that could not be resolved
+ */
public NoSuchLanguageException(String language) {
super("No language could be found for: " +
Objects.requireNonNull(language, "language"));
this.language = language;
diff --git
a/core/camel-api/src/main/java/org/apache/camel/NoSuchPropertyException.java
b/core/camel-api/src/main/java/org/apache/camel/NoSuchPropertyException.java
index 2c43a3383926..8efebda867dd 100644
--- a/core/camel-api/src/main/java/org/apache/camel/NoSuchPropertyException.java
+++ b/core/camel-api/src/main/java/org/apache/camel/NoSuchPropertyException.java
@@ -30,10 +30,19 @@ public class NoSuchPropertyException extends
CamelExchangeException {
private final String propertyName;
private final transient @Nullable Class<?> type;
+ /**
+ * @param exchange the exchange that caused the error
+ * @param propertyName the name of the missing exchange property
+ */
public NoSuchPropertyException(Exchange exchange, String propertyName) {
this(exchange, propertyName, null);
}
+ /**
+ * @param exchange the exchange that caused the error
+ * @param propertyName the name of the missing exchange property
+ * @param type the expected property type, or {@code null} if no
specific type is required
+ */
public NoSuchPropertyException(Exchange exchange, String propertyName,
@Nullable Class<?> type) {
super("No '" + Objects.requireNonNull(propertyName, "propertyName") +
"' exchange property available"
+ (type != null ? " of type: " + type.getName() : "")
diff --git
a/core/camel-api/src/main/java/org/apache/camel/NoSuchVariableException.java
b/core/camel-api/src/main/java/org/apache/camel/NoSuchVariableException.java
index 5ec38ff4cbb3..d862e8e0ed41 100644
--- a/core/camel-api/src/main/java/org/apache/camel/NoSuchVariableException.java
+++ b/core/camel-api/src/main/java/org/apache/camel/NoSuchVariableException.java
@@ -28,6 +28,10 @@ public class NoSuchVariableException extends
CamelExchangeException {
private final String variableName;
private final transient @Nullable Class<?> type;
+ /**
+ * @param exchange the exchange that caused the error
+ * @param variableName the name of the missing variable
+ */
public NoSuchVariableException(Exchange exchange, String variableName) {
super(String.format(
"No '%s' variable available",
Objects.requireNonNull(variableName, "variableName")),
@@ -36,6 +40,11 @@ public class NoSuchVariableException extends
CamelExchangeException {
this.type = null;
}
+ /**
+ * @param exchange the exchange that caused the error
+ * @param variableName the name of the missing variable
+ * @param type the expected variable type
+ */
public NoSuchVariableException(Exchange exchange, String variableName,
Class<?> type) {
super(String.format(
"No '%s' variable available of type: %s",
diff --git
a/core/camel-api/src/main/java/org/apache/camel/NoTypeConversionAvailableException.java
b/core/camel-api/src/main/java/org/apache/camel/NoTypeConversionAvailableException.java
index 46af2a9f72a1..262f1b72e880 100644
---
a/core/camel-api/src/main/java/org/apache/camel/NoTypeConversionAvailableException.java
+++
b/core/camel-api/src/main/java/org/apache/camel/NoTypeConversionAvailableException.java
@@ -28,12 +28,21 @@ public class NoTypeConversionAvailableException extends
CamelException {
private final transient @Nullable Object value;
private final transient Class<?> type;
+ /**
+ * @param value the value for which no type converter was found
+ * @param type the expected target type
+ */
public NoTypeConversionAvailableException(@Nullable Object value, Class<?>
type) {
super(createMessage(value, Objects.requireNonNull(type, "type")));
this.value = value;
this.type = type;
}
+ /**
+ * @param value the value for which no type converter was found
+ * @param type the expected target type
+ * @param cause the cause of the failure
+ */
public NoTypeConversionAvailableException(@Nullable Object value, Class<?>
type, Throwable cause) {
super(createMessage(value, Objects.requireNonNull(type, "type"),
Objects.requireNonNull(cause, "cause")), cause);
this.value = value;
diff --git a/core/camel-api/src/main/java/org/apache/camel/Pattern.java
b/core/camel-api/src/main/java/org/apache/camel/Pattern.java
index 70fdc559855b..49d314098b80 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Pattern.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Pattern.java
@@ -24,7 +24,7 @@ import java.lang.annotation.Target;
/**
* Marks a method as having a specific kind of {@link ExchangePattern} for use
with
- * <a href="http://camel.apache.org/bean-integration.html">Bean
Integration</a> to overload the default value which is
+ * <a href="https://camel.apache.org/bean-integration.html">Bean
Integration</a> to overload the default value which is
* {@link ExchangePattern#InOut} for request/reply if no annotations are used.
*
* There are abbreviation annotations like {@link InOnly} or {@link InOut}
which are typically used for the common
diff --git a/core/camel-api/src/main/java/org/apache/camel/PollingConsumer.java
b/core/camel-api/src/main/java/org/apache/camel/PollingConsumer.java
index 92589494f820..f2aa96178ad0 100644
--- a/core/camel-api/src/main/java/org/apache/camel/PollingConsumer.java
+++ b/core/camel-api/src/main/java/org/apache/camel/PollingConsumer.java
@@ -19,7 +19,7 @@ package org.apache.camel;
import org.jspecify.annotations.Nullable;
/**
- * Represents a <a
href="http://camel.apache.org/polling-consumer.html">Polling Consumer</a> where
the caller polls for
+ * Represents a <a
href="https://camel.apache.org/polling-consumer.html">Polling Consumer</a>
where the caller polls for
* messages when it is ready.
* <p/>
* When you are done with the returned {@link Exchange} you must ensure to
invoke
diff --git a/core/camel-api/src/main/java/org/apache/camel/Predicate.java
b/core/camel-api/src/main/java/org/apache/camel/Predicate.java
index 3c1f5f74838c..1f0573d8ca9a 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Predicate.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Predicate.java
@@ -17,7 +17,7 @@
package org.apache.camel;
/**
- * Evaluates a binary <a
href="http://camel.apache.org/predicate.html">predicate</a> on the message
exchange.
+ * Evaluates a binary <a
href="https://camel.apache.org/predicate.html">predicate</a> on the message
exchange.
*
* A predicate should be thread-safe and be able to evaluate concurrently by
different threads with different exchanges.
*
diff --git a/core/camel-api/src/main/java/org/apache/camel/Processor.java
b/core/camel-api/src/main/java/org/apache/camel/Processor.java
index dbd77b2d00dc..913d2c88cca5 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Processor.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Processor.java
@@ -17,9 +17,9 @@
package org.apache.camel;
/**
- * A <a href="http://camel.apache.org/processor.html">processor</a> is used to
implement the
- * <a href="http://camel.apache.org/event-driven-consumer.html"> Event Driven
Consumer</a> and
- * <a href="http://camel.apache.org/message-translator.html"> Message
Translator</a> patterns and to process message
+ * A <a href="https://camel.apache.org/processor.html">processor</a> is used
to implement the
+ * <a href="https://camel.apache.org/event-driven-consumer.html"> Event Driven
Consumer</a> and
+ * <a href="https://camel.apache.org/message-translator.html"> Message
Translator</a> patterns and to process message
* exchanges.
* <p/>
* Notice if you use a {@link Processor} in a Camel route, then make sure to
write the {@link Processor} in a
diff --git a/core/camel-api/src/main/java/org/apache/camel/Produce.java
b/core/camel-api/src/main/java/org/apache/camel/Produce.java
index b88a1f489939..f152bd364159 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Produce.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Produce.java
@@ -24,11 +24,11 @@ import java.lang.annotation.Target;
/**
* Marks a field or property as being a producer to an {@link
org.apache.camel.Endpoint} either via its
- * <a href="http://camel.apache.org/uris.html">URI</a> or via the name of the
endpoint reference which is then resolved
+ * <a href="https://camel.apache.org/uris.html">URI</a> or via the name of the
endpoint reference which is then resolved
* in a registry such as the Spring Application Context.
* <p/>
* Methods invoked on the producer object are then converted to a message
{@link org.apache.camel.Exchange} via the
- * <a href="http://camel.apache.org/bean-integration.html">Bean
Integration</a> mechanism.
+ * <a href="https://camel.apache.org/bean-integration.html">Bean
Integration</a> mechanism.
*
* @see InOnly
*/
diff --git
a/core/camel-api/src/main/java/org/apache/camel/ProducerTemplate.java
b/core/camel-api/src/main/java/org/apache/camel/ProducerTemplate.java
index 8e1fbb6a8021..6406786c81d3 100644
--- a/core/camel-api/src/main/java/org/apache/camel/ProducerTemplate.java
+++ b/core/camel-api/src/main/java/org/apache/camel/ProducerTemplate.java
@@ -53,8 +53,8 @@ import org.jspecify.annotations.Nullable;
* the template. <br/>
* <p/>
* <b>Important note on usage:</b> See this
- * <a
href="http://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">FAQ
entry</a> before
- * using.
+ * <a
href="https://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html">FAQ
entry</a>
+ * before using.
*
* @see FluentProducerTemplate
* @see ConsumerTemplate
diff --git
a/core/camel-api/src/main/java/org/apache/camel/PropertyBindingException.java
b/core/camel-api/src/main/java/org/apache/camel/PropertyBindingException.java
index 2a1875a3b5c2..7e342bfa3f54 100644
---
a/core/camel-api/src/main/java/org/apache/camel/PropertyBindingException.java
+++
b/core/camel-api/src/main/java/org/apache/camel/PropertyBindingException.java
@@ -31,6 +31,11 @@ public class PropertyBindingException extends
RuntimeCamelException {
private final @Nullable String optionPrefix;
private final @Nullable String optionKey;
+ /**
+ * @param target the target bean on which property binding failed
+ * @param propertyName the name of the property that could not be bound,
or {@code null}
+ * @param value the value that could not be bound, or {@code null}
+ */
public PropertyBindingException(Object target, @Nullable String
propertyName, @Nullable Object value) {
this.target = Objects.requireNonNull(target, "target");
this.propertyName = propertyName;
@@ -39,6 +44,12 @@ public class PropertyBindingException extends
RuntimeCamelException {
this.optionKey = null;
}
+ /**
+ * @param target the target bean on which property binding failed
+ * @param propertyName the name of the property that could not be bound,
or {@code null}
+ * @param value the value that could not be bound, or {@code null}
+ * @param e the cause of the failure
+ */
public PropertyBindingException(Object target, @Nullable String
propertyName, @Nullable Object value, Throwable e) {
initCause(Objects.requireNonNull(e, "e"));
this.target = Objects.requireNonNull(target, "target");
@@ -48,6 +59,10 @@ public class PropertyBindingException extends
RuntimeCamelException {
this.optionKey = null;
}
+ /**
+ * @param target the target bean on which property binding failed
+ * @param e the cause of the failure
+ */
public PropertyBindingException(Object target, Throwable e) {
initCause(Objects.requireNonNull(e, "e"));
this.target = Objects.requireNonNull(target, "target");
@@ -57,6 +72,14 @@ public class PropertyBindingException extends
RuntimeCamelException {
this.optionKey = null;
}
+ /**
+ * @param target the target bean on which property binding failed
+ * @param propertyName the name of the property that could not be bound,
or {@code null}
+ * @param value the value that could not be bound, or {@code null}
+ * @param optionPrefix the option prefix used when resolving the property,
or {@code null}
+ * @param optionKey the option key used when resolving the property, or
{@code null}
+ * @param e the cause of the failure
+ */
public PropertyBindingException(Object target, @Nullable String
propertyName, @Nullable Object value,
@Nullable String optionPrefix, @Nullable
String optionKey, Throwable e) {
initCause(Objects.requireNonNull(e, "e"));
diff --git a/core/camel-api/src/main/java/org/apache/camel/PropertyInject.java
b/core/camel-api/src/main/java/org/apache/camel/PropertyInject.java
index 8bda8d34c856..915880e39087 100644
--- a/core/camel-api/src/main/java/org/apache/camel/PropertyInject.java
+++ b/core/camel-api/src/main/java/org/apache/camel/PropertyInject.java
@@ -23,7 +23,7 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
- * Used to indicate an injection point of a <a
href="http://camel.apache.org/using-propertyplaceholder.html">property
+ * Used to indicate an injection point of a <a
href="https://camel.apache.org/using-propertyplaceholder.html">property
* placeholder</a> into a POJO.
*/
@Retention(RetentionPolicy.RUNTIME)
diff --git a/core/camel-api/src/main/java/org/apache/camel/RecipientList.java
b/core/camel-api/src/main/java/org/apache/camel/RecipientList.java
index 62f6b8bb2093..28a997be1387 100644
--- a/core/camel-api/src/main/java/org/apache/camel/RecipientList.java
+++ b/core/camel-api/src/main/java/org/apache/camel/RecipientList.java
@@ -23,11 +23,11 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
- * Indicates that this method is to be used as a <a
href="http://camel.apache.org/recipient-list.html">Dynamic Recipient
- * List</a> routing the incoming message to one or more endpoints.
+ * Indicates that this method is to be used as a <a
href="https://camel.apache.org/recipient-list.html">Dynamic
+ * Recipient List</a> routing the incoming message to one or more endpoints.
*
* When a message {@link org.apache.camel.Exchange} is received from an {@link
org.apache.camel.Endpoint} then the
- * <a href="http://camel.apache.org/bean-integration.html">Bean
Integration</a> mechanism is used to map the incoming
+ * <a href="https://camel.apache.org/bean-integration.html">Bean
Integration</a> mechanism is used to map the incoming
* {@link org.apache.camel.Message} to the method parameters.
*
* The return value of the method is then converted to either a {@link
java.util.Collection} or array of objects where
diff --git a/core/camel-api/src/main/java/org/apache/camel/Route.java
b/core/camel-api/src/main/java/org/apache/camel/Route.java
index e6e5b77ff3c7..a476ff93baa6 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Route.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Route.java
@@ -32,7 +32,7 @@ import org.apache.camel.spi.RoutePolicy;
import org.jspecify.annotations.Nullable;
/**
- * A <a href="http://camel.apache.org/routes.html">Route</a> defines the
processing used on an inbound message exchange
+ * A <a href="https://camel.apache.org/routes.html">Route</a> defines the
processing used on an inbound message exchange
* from a specific {@link org.apache.camel.Endpoint} within a {@link
org.apache.camel.CamelContext}.
* <p/>
* Use the API from {@link org.apache.camel.CamelContext} to control the
lifecycle of a route, such as starting and
diff --git a/core/camel-api/src/main/java/org/apache/camel/RoutingSlip.java
b/core/camel-api/src/main/java/org/apache/camel/RoutingSlip.java
index 53b01439c3e9..bfe71f6daba3 100644
--- a/core/camel-api/src/main/java/org/apache/camel/RoutingSlip.java
+++ b/core/camel-api/src/main/java/org/apache/camel/RoutingSlip.java
@@ -23,11 +23,11 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
- * Indicates that this method is to be used as a <a
href="http://camel.apache.org/routing-slip.html">Routing Slip</a>
+ * Indicates that this method is to be used as a <a
href="https://camel.apache.org/routing-slip.html">Routing Slip</a>
* routing the incoming message through a series of processing steps.
*
* When a message {@link org.apache.camel.Exchange} is received from an {@link
org.apache.camel.Endpoint} then the
- * <a href="http://camel.apache.org/bean-integration.html">Bean
Integration</a> mechanism is used to map the incoming
+ * <a href="https://camel.apache.org/bean-integration.html">Bean
Integration</a> mechanism is used to map the incoming
* {@link org.apache.camel.Message} to the method parameters.
*
* The return value of the method is then converted to either a {@link
java.util.Collection} or array of objects where
diff --git
a/core/camel-api/src/main/java/org/apache/camel/RuntimeCamelException.java
b/core/camel-api/src/main/java/org/apache/camel/RuntimeCamelException.java
index 643051d33753..e0386eaf1ee9 100644
--- a/core/camel-api/src/main/java/org/apache/camel/RuntimeCamelException.java
+++ b/core/camel-api/src/main/java/org/apache/camel/RuntimeCamelException.java
@@ -30,14 +30,24 @@ public class RuntimeCamelException extends RuntimeException
{
public RuntimeCamelException() {
}
+ /**
+ * @param message the detail message
+ */
public RuntimeCamelException(@Nullable String message) {
super(message);
}
+ /**
+ * @param message the detail message
+ * @param cause the cause of the failure
+ */
public RuntimeCamelException(@Nullable String message, @Nullable Throwable
cause) {
super(message, cause);
}
+ /**
+ * @param cause the cause of the failure
+ */
public RuntimeCamelException(@Nullable Throwable cause) {
super(cause);
}
diff --git
a/core/camel-api/src/main/java/org/apache/camel/RuntimeExchangeException.java
b/core/camel-api/src/main/java/org/apache/camel/RuntimeExchangeException.java
index d7ef40c951d3..a156c4fc5fcb 100644
---
a/core/camel-api/src/main/java/org/apache/camel/RuntimeExchangeException.java
+++
b/core/camel-api/src/main/java/org/apache/camel/RuntimeExchangeException.java
@@ -26,11 +26,20 @@ import org.jspecify.annotations.Nullable;
public class RuntimeExchangeException extends RuntimeCamelException {
private final transient @Nullable Exchange exchange;
+ /**
+ * @param message the detail message
+ * @param exchange the exchange that caused the error
+ */
public RuntimeExchangeException(String message, @Nullable Exchange
exchange) {
super(createMessage(Objects.requireNonNull(message, "message"),
exchange));
this.exchange = exchange;
}
+ /**
+ * @param message the detail message
+ * @param exchange the exchange that caused the error
+ * @param cause the cause of the failure
+ */
public RuntimeExchangeException(String message, @Nullable Exchange
exchange, Throwable cause) {
super(createMessage(Objects.requireNonNull(message, "message"),
exchange),
Objects.requireNonNull(cause, "cause"));
diff --git
a/core/camel-api/src/main/java/org/apache/camel/StreamCacheException.java
b/core/camel-api/src/main/java/org/apache/camel/StreamCacheException.java
index 24b183bde90e..c44a418a6b74 100644
--- a/core/camel-api/src/main/java/org/apache/camel/StreamCacheException.java
+++ b/core/camel-api/src/main/java/org/apache/camel/StreamCacheException.java
@@ -20,8 +20,15 @@ import java.util.Objects;
import org.jspecify.annotations.Nullable;
+/**
+ * Thrown when stream caching of a message body fails.
+ */
public class StreamCacheException extends TypeConversionException {
+ /**
+ * @param value the message body value that could not be cached
+ * @param cause the cause of the failure
+ */
public StreamCacheException(@Nullable Object value, Throwable cause) {
super(value, StreamCache.class, Objects.requireNonNull(cause,
"cause"));
}
diff --git
a/core/camel-api/src/main/java/org/apache/camel/TypeConversionException.java
b/core/camel-api/src/main/java/org/apache/camel/TypeConversionException.java
index a21781d9f3d7..b32fa444db96 100644
--- a/core/camel-api/src/main/java/org/apache/camel/TypeConversionException.java
+++ b/core/camel-api/src/main/java/org/apache/camel/TypeConversionException.java
@@ -28,6 +28,11 @@ public class TypeConversionException extends
RuntimeCamelException {
private final transient @Nullable Object value;
private final transient Class<?> type;
+ /**
+ * @param value the value that could not be converted
+ * @param type the expected target type
+ * @param cause the cause of the failure
+ */
public TypeConversionException(@Nullable Object value, Class<?> type,
Throwable cause) {
super(createMessage(value, Objects.requireNonNull(type, "type"),
Objects.requireNonNull(cause, "cause")), cause);
this.value = value;
diff --git a/core/camel-api/src/main/java/org/apache/camel/TypeConverter.java
b/core/camel-api/src/main/java/org/apache/camel/TypeConverter.java
index a41ce99bfa44..89605b927fa0 100644
--- a/core/camel-api/src/main/java/org/apache/camel/TypeConverter.java
+++ b/core/camel-api/src/main/java/org/apache/camel/TypeConverter.java
@@ -19,8 +19,9 @@ package org.apache.camel;
import org.jspecify.annotations.Nullable;
/**
- * A pluggable strategy to be able to convert objects <a
href="http://camel.apache.org/type-converter.html">to different
- * types</a> such as to and from String, InputStream/OutputStream,
Reader/Writer, Document, byte[], ByteBuffer etc
+ * A pluggable strategy to be able to convert objects <a
href="https://camel.apache.org/type-converter.html">to
+ * different types</a> such as to and from String, InputStream/OutputStream,
Reader/Writer, Document, byte[], ByteBuffer
+ * etc
*/
public interface TypeConverter {
diff --git
a/core/camel-api/src/main/java/org/apache/camel/spi/AggregationRepository.java
b/core/camel-api/src/main/java/org/apache/camel/spi/AggregationRepository.java
index 26eeb38833e8..fc337f2d8e29 100644
---
a/core/camel-api/src/main/java/org/apache/camel/spi/AggregationRepository.java
+++
b/core/camel-api/src/main/java/org/apache/camel/spi/AggregationRepository.java
@@ -23,7 +23,14 @@ import org.apache.camel.Exchange;
import org.jspecify.annotations.Nullable;
/**
- * Access to a repository to store aggregated exchanges to support pluggable
implementations.
+ * Repository for storing aggregated exchanges used by the Aggregator EIP.
+ * <p/>
+ * The aggregation lifecycle is: {@link #get(CamelContext, String)} to
retrieve the existing aggregate, then
+ * {@link #add(CamelContext, String, Exchange)} to store the updated
aggregate, and finally
+ * {@link #remove(CamelContext, String, Exchange)} when the aggregation is
complete.
+ * {@link #confirm(CamelContext, String)} is called after the aggregated
exchange has been processed successfully.
+ * <p/>
+ * Implementations must be thread-safe as multiple threads may aggregate
concurrently for different correlation keys.
*
*/
public interface AggregationRepository {
diff --git
a/core/camel-api/src/main/java/org/apache/camel/spi/ClaimCheckRepository.java
b/core/camel-api/src/main/java/org/apache/camel/spi/ClaimCheckRepository.java
index 2357824e2a5f..5e41acf9e08a 100644
---
a/core/camel-api/src/main/java/org/apache/camel/spi/ClaimCheckRepository.java
+++
b/core/camel-api/src/main/java/org/apache/camel/spi/ClaimCheckRepository.java
@@ -21,7 +21,7 @@ import org.apache.camel.Service;
import org.jspecify.annotations.Nullable;
/**
- * Access to a repository of keys to implement the <a
href="http://camel.apache.org/claim-check.html">Claim Check</a>
+ * Access to a repository of keys to implement the <a
href="https://camel.apache.org/claim-check.html">Claim Check</a>
* pattern.
* <p/>
* The <tt>add</tt> and <tt>contains</tt> methods is operating according to
the {@link java.util.Map} contract, and the
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/DataFormat.java
b/core/camel-api/src/main/java/org/apache/camel/spi/DataFormat.java
index f311e80f6b08..700a8eab2b43 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/DataFormat.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/DataFormat.java
@@ -26,7 +26,7 @@ import org.apache.camel.Service;
import org.apache.camel.util.IOHelper;
/**
- * Represents a <a href="http://camel.apache.org/data-format.html">data
format</a> used to marshal objects to and from
+ * Represents a <a href="https://camel.apache.org/data-format.html">data
format</a> used to marshal objects to and from
* streams such as Java Serialization or using JAXB2 to encode/decode objects
using XML or using SOAP encoding.
*/
public interface DataFormat extends Service {
diff --git
a/core/camel-api/src/main/java/org/apache/camel/spi/DataFormatFactory.java
b/core/camel-api/src/main/java/org/apache/camel/spi/DataFormatFactory.java
index 5d8fef2b4eeb..e4dbc0ced9a5 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/DataFormatFactory.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/DataFormatFactory.java
@@ -17,7 +17,10 @@
package org.apache.camel.spi;
/**
- * A factory to create {@link org.apache.camel.spi.DataFormat}.
+ * A factory for creating {@link DataFormat} instances. The factory is used
when a data format needs custom
+ * instantiation logic beyond the default resolution mechanism.
+ * <p/>
+ * Each call to {@link #newInstance()} should return a new data format
instance.
*/
@FunctionalInterface
public interface DataFormatFactory {
diff --git
a/core/camel-api/src/main/java/org/apache/camel/spi/IdempotentRepository.java
b/core/camel-api/src/main/java/org/apache/camel/spi/IdempotentRepository.java
index 1e4259823c19..006e7485223f 100644
---
a/core/camel-api/src/main/java/org/apache/camel/spi/IdempotentRepository.java
+++
b/core/camel-api/src/main/java/org/apache/camel/spi/IdempotentRepository.java
@@ -21,7 +21,7 @@ import org.apache.camel.Service;
/**
* Access to a repository of Message IDs to implement the
- * <a href="http://camel.apache.org/idempotent-consumer.html">Idempotent
Consumer</a> pattern.
+ * <a href="https://camel.apache.org/idempotent-consumer.html">Idempotent
Consumer</a> pattern.
* <p/>
* The <tt>add</tt> and <tt>contains</tt> methods is operating according to
the {@link java.util.Set} contract.
* <p/>
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/Language.java
b/core/camel-api/src/main/java/org/apache/camel/spi/Language.java
index 49244d81ec58..6e9464b75b13 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/Language.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/Language.java
@@ -20,7 +20,10 @@ import org.apache.camel.Expression;
import org.apache.camel.Predicate;
/**
- * Represents a language to be used for {@link Expression} or {@link
Predicate} instances
+ * Represents a language to be used for creating {@link Expression} or {@link
Predicate} instances.
+ * <p/>
+ * Languages are resolved by name via the {@link
org.apache.camel.CamelContext#resolveLanguage(String)} method.
+ * Implementations must be thread-safe as expressions and predicates may be
evaluated concurrently.
*/
public interface Language {
diff --git
a/core/camel-api/src/main/java/org/apache/camel/spi/RestApiConsumerFactory.java
b/core/camel-api/src/main/java/org/apache/camel/spi/RestApiConsumerFactory.java
index 3738b260d6b5..66beeccfeec6 100644
---
a/core/camel-api/src/main/java/org/apache/camel/spi/RestApiConsumerFactory.java
+++
b/core/camel-api/src/main/java/org/apache/camel/spi/RestApiConsumerFactory.java
@@ -32,7 +32,7 @@ import org.apache.camel.Processor;
public interface RestApiConsumerFactory {
/**
- * Creates a new REST API <a
href="http://camel.apache.org/event-driven-consumer.html">Event Driven
Consumer</a>,
+ * Creates a new REST API <a
href="https://camel.apache.org/event-driven-consumer.html">Event Driven
Consumer</a>,
* which provides API listing of the REST services
*
* @param camelContext the camel context
diff --git
a/core/camel-api/src/main/java/org/apache/camel/spi/RestApiProcessorFactory.java
b/core/camel-api/src/main/java/org/apache/camel/spi/RestApiProcessorFactory.java
index b3e85d54fd2e..971e2f1479b7 100644
---
a/core/camel-api/src/main/java/org/apache/camel/spi/RestApiProcessorFactory.java
+++
b/core/camel-api/src/main/java/org/apache/camel/spi/RestApiProcessorFactory.java
@@ -31,7 +31,7 @@ import org.apache.camel.Processor;
public interface RestApiProcessorFactory {
/**
- * Creates a new REST API <a
href="http://camel.apache.org/processor.html">Processor </a>, which provides API
+ * Creates a new REST API <a
href="https://camel.apache.org/processor.html">Processor </a>, which provides
API
* listing of the REST services
*
* @param camelContext the camel context
diff --git
a/core/camel-api/src/main/java/org/apache/camel/spi/RestConsumerFactory.java
b/core/camel-api/src/main/java/org/apache/camel/spi/RestConsumerFactory.java
index 8b4ca6deb2a4..5f7e4bf675d5 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/RestConsumerFactory.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/RestConsumerFactory.java
@@ -26,7 +26,7 @@ import org.jspecify.annotations.Nullable;
/**
* Allows SPI to plugin a {@link RestConsumerFactory} that creates the Camel
{@link Consumer} responsible for handling
* incoming HTTP requests from clients that request to access REST services
which has been created using the
- * <a href="http://camel.apache.org/rest-dsl">rest-dsl</a>.
+ * <a href="https://camel.apache.org/rest-dsl">rest-dsl</a>.
*
* @see RestApiConsumerFactory
* @see RestOpenApiConsumerFactory
@@ -35,7 +35,7 @@ import org.jspecify.annotations.Nullable;
public interface RestConsumerFactory {
/**
- * Creates a new REST <a
href="http://camel.apache.org/event-driven-consumer.html">Event Driven
Consumer</a>, which
+ * Creates a new REST <a
href="https://camel.apache.org/event-driven-consumer.html">Event Driven
Consumer</a>, which
* consumes messages from the endpoint using the given processor
*
* @param camelContext the camel context
diff --git
a/core/camel-api/src/main/java/org/apache/camel/spi/RestOpenApiConsumerFactory.java
b/core/camel-api/src/main/java/org/apache/camel/spi/RestOpenApiConsumerFactory.java
index 79167c9d0fc6..97e8be74cbae 100644
---
a/core/camel-api/src/main/java/org/apache/camel/spi/RestOpenApiConsumerFactory.java
+++
b/core/camel-api/src/main/java/org/apache/camel/spi/RestOpenApiConsumerFactory.java
@@ -25,7 +25,7 @@ import org.apache.camel.Processor;
/**
* Allows SPI to plugin a {@link RestOpenApiConsumerFactory} that creates the
Camel {@link Consumer} responsible for
* handling incoming HTTP requests from clients that request to access REST
services which has been created using the
- * <a href="http://camel.apache.org/rest-dsl">rest-dsl</a> for an entire
open-api specification.
+ * <a href="https://camel.apache.org/rest-dsl">rest-dsl</a> for an entire
open-api specification.
*
* @see RestApiConsumerFactory
* @see RestOpenApiConsumerFactory
@@ -34,7 +34,7 @@ import org.apache.camel.Processor;
public interface RestOpenApiConsumerFactory {
/**
- * Creates a new REST <a
href="http://camel.apache.org/event-driven-consumer.html">Event Driven
Consumer</a>, which
+ * Creates a new REST <a
href="https://camel.apache.org/event-driven-consumer.html">Event Driven
Consumer</a>, which
* consumes messages from the endpoint using the given processor
*
* @param camelContext the camel context
diff --git
a/core/camel-api/src/main/java/org/apache/camel/spi/RestRegistry.java
b/core/camel-api/src/main/java/org/apache/camel/spi/RestRegistry.java
index 401c9a257c68..1b3d774153f2 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/RestRegistry.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/RestRegistry.java
@@ -24,7 +24,7 @@ import org.jspecify.annotations.Nullable;
/**
* A registry of all REST services running within the {@link
org.apache.camel.CamelContext} which have been defined and
- * created using the <a href="http://camel.apache.org/rest-dsl">Rest DSL</a>.
+ * created using the <a href="https://camel.apache.org/rest-dsl">Rest DSL</a>.
*/
public interface RestRegistry extends StaticService {
diff --git
a/core/camel-api/src/main/java/org/apache/camel/spi/RouteStartupOrder.java
b/core/camel-api/src/main/java/org/apache/camel/spi/RouteStartupOrder.java
index c2b48b89c743..4c235321966b 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/RouteStartupOrder.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/RouteStartupOrder.java
@@ -31,7 +31,7 @@ public interface RouteStartupOrder {
/**
* Get the order this route should be started.
* <p/>
- * See more at <a
href="http://camel.apache.org/configuring-route-startup-ordering-and-autostartup.html">
+ * See more at <a
href="https://camel.apache.org/configuring-route-startup-ordering-and-autostartup.html">
* configuring route startup ordering</a>.
*
* @return the order
diff --git
a/core/camel-api/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java
b/core/camel-api/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java
index 798a70ac3238..b4e8f67b4b9d 100644
---
a/core/camel-api/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java
+++
b/core/camel-api/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java
@@ -26,7 +26,7 @@ import org.apache.camel.StreamCache;
import org.jspecify.annotations.Nullable;
/**
- * Strategy for using <a
href="http://camel.apache.org/stream-caching.html">stream caching</a>.
+ * Strategy for using <a
href="https://camel.apache.org/stream-caching.html">stream caching</a>.
*/
public interface StreamCachingStrategy extends StaticService {
diff --git
a/core/camel-api/src/main/java/org/apache/camel/spi/Synchronization.java
b/core/camel-api/src/main/java/org/apache/camel/spi/Synchronization.java
index 96fef9945ae7..22d5202a904d 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/Synchronization.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/Synchronization.java
@@ -22,8 +22,7 @@ import org.jspecify.annotations.Nullable;
/**
* Provides a hook for custom {@link org.apache.camel.Processor} or {@link
org.apache.camel.Component} instances to
* respond to completed or failed processing of an {@link Exchange} rather
like Spring's
- * <a
href="http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/transaction/
- * support/TransactionSynchronization.html">TransactionSynchronization</a>
+ * {@code org.springframework.transaction.support.TransactionSynchronization}
*/
public interface Synchronization {
diff --git
a/core/camel-api/src/main/java/org/apache/camel/spi/ThreadPoolProfile.java
b/core/camel-api/src/main/java/org/apache/camel/spi/ThreadPoolProfile.java
index edba1475e95f..c4fab2f09c15 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/ThreadPoolProfile.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/ThreadPoolProfile.java
@@ -28,7 +28,7 @@ import org.jspecify.annotations.Nullable;
/**
* A profile which defines thread pool settings.
* <p/>
- * See more details at <a
href="http://camel.apache.org/threading-model.html">threading model</a>
+ * See more details at <a
href="https://camel.apache.org/threading-model.html">threading model</a>
*/
public class ThreadPoolProfile implements Serializable, Cloneable {
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/Transformer.java
b/core/camel-api/src/main/java/org/apache/camel/spi/Transformer.java
index 3405747ddf21..e2406a3e0221 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/Transformer.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/Transformer.java
@@ -26,7 +26,7 @@ import org.apache.camel.util.ObjectHelper;
import org.jspecify.annotations.Nullable;
/**
- * <a href="http://camel.apache.org/transformer.html">Transformer</a> performs
message transformation according to the
+ * <a href="https://camel.apache.org/transformer.html">Transformer</a>
performs message transformation according to the
* declared data type. {@link org.apache.camel.processor.ContractAdvice} looks
for a required Transformer and apply if
* input/output type declared on a route is different from current message
type.
*
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/Validator.java
b/core/camel-api/src/main/java/org/apache/camel/spi/Validator.java
index 245220d1211b..1bd7da3f1d88 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/Validator.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/Validator.java
@@ -26,7 +26,7 @@ import org.apache.camel.support.service.ServiceSupport;
import org.jspecify.annotations.Nullable;
/**
- * <a href="http://camel.apache.org/validator.html">Validator</a> performs
message content validation according to the
+ * <a href="https://camel.apache.org/validator.html">Validator</a> performs
message content validation according to the
* declared data type. {@link org.apache.camel.processor.ContractAdvice}
applies Validator if input/output type is
* declared on a route with validation enabled.
*