@Incoming("channel")
- * Subscriber<Message<I>> method()
- * MANUAL
: the acknowledgement (positive or negative) is up to the user. This is the default strategy
- * for methods ingesting or producing {@link Message}.
- * POST_PROCESSING
: acknowledges the incoming message once the produced message is acknowledged.
- * This is the default strategy for methods ingesting or producing single payloads.PRE_PROCESSING
: acknowledges the incoming messages before calling the method.NONE
: do not apply any acknowledgement.MANUAL
: the acknowledgement (positive or negative) is up to the user. This is the default strategy
+ * for methods ingesting or producing {@link Message}.POST_PROCESSING
: acknowledges the incoming message once the produced message is acknowledged. This
+ * is the default strategy for methods ingesting or producing single payloads.PRE_PROCESSING
: acknowledges the incoming messages before calling the method.NONE
: do not apply any acknowledgement. @Incoming("channel") void method(I payload)
: Post-processing (default), Pre-processing, None @Incoming("channel") CompletionStage<?> method(I payload)
: Post-processing (default), Pre-processing, None @Incoming("in") @Outgoing("out") Message<O> method(Message<I> msg)
: , Manual (default), Pre-processing, None @Incoming("in") @Outgoing("out") O method(I payload)
: Post-Processing (default), Pre-processing, None @Incoming("channel") void method(I payload)
: Post-processing (default), Pre-processing, None @Incoming("channel") CompletionStage<?> method(I payload)
: Post-processing (default),
+ * Pre-processing, None @Incoming("in") @Outgoing("out") Message<O> method(Message<I> msg)
: , Manual (default),
+ * Pre-processing, None @Incoming("in") @Outgoing("out") O method(I payload)
: Post-Processing (default), Pre-processing,
+ * None@Incoming("channel")
- * Subscriber<Message<I>> method()
- * Manual
None, Pre-Processing, Post-Processing (when
- * the onNext
method returns), Manual
+ * @Incoming("channel")
+ * Subscriber<Message<I>> method()
+ *
+ *
+ * + * Manual + *
+ *
+ * None, Pre-Processing, Post-Processing (when the onNext
method returns), Manual
+ *
@Incoming("channel")
- * Subscriber<I> method()
- * Post-Processing
None, Pre-Processing, Post-Processing (when
- * the onNext
method returns)
+ * @Incoming("channel")
+ * Subscriber<I> method()
+ *
+ *
+ * + * Post-Processing + *
+ *
+ * None, Pre-Processing, Post-Processing (when the onNext
method returns)
+ *
@Incoming("channel")
- * SubscriberBuilder<Message<I>, Void> method()
- * Manual
None, Pre-Processing, Post-Processing (when
- * the onNext
method returns), Manual
+ * @Incoming("channel")
+ * SubscriberBuilder<Message<I>, Void> method()
+ *
+ *
+ * + * Manual + *
+ *
+ * None, Pre-Processing, Post-Processing (when the onNext
method returns), Manual
+ *
@Incoming("channel")
- * SubscriberBuilder<I, Void> method()
- * Post-Processing
None, Pre-Processing, Post-Processing (when
- * the onNext
method returns)
+ * @Incoming("channel")
+ * SubscriberBuilder<I, Void> method()
+ *
+ *
+ * + * Post-Processing + *
+ *
+ * None, Pre-Processing, Post-Processing (when the onNext
method returns)
+ *
@Incoming("channel")
- * void method(I payload)
- * Post-Processing
None, Pre-Processing, Post-Processing (when - * the method returns)
+ * @Incoming("channel")
+ * void method(I payload)
+ *
+ *
+ * + * Post-Processing + *
+ *+ * None, Pre-Processing, Post-Processing (when the method returns) + *
+ *@Incoming("channel")
- * CompletionStage<?> method(Message<I> msg)
- * Manual
None, Pre-Processing, Post-Processing (when
- * the returned CompletionStage
is completed), Manual
+ * @Incoming("channel")
+ * CompletionStage<?> method(Message<I> msg)
+ *
+ *
+ * + * Manual + *
+ *
+ * None, Pre-Processing, Post-Processing (when the returned CompletionStage
is completed), Manual
+ *
@Incoming("channel")
- * CompletionStage<?> method(I payload)
- * Post-Processing
None, Pre-Processing, Post-Processing (when
- * the returned CompletionStage
is completed)
+ * @Incoming("channel")
+ * CompletionStage<?> method(I payload)
+ *
+ *
+ * + * Post-Processing + *
+ *
+ * None, Pre-Processing, Post-Processing (when the returned CompletionStage
is completed)
+ *
@Incoming("in")
+ *
+ *
+ *
+ * @Incoming("in")
* @Outgoing("out")
- * Processor<Message<I>, Message<O>> method()
- *
- *
- * Manual
- * None, Pre-Processing, Manual
+ * Processor<Message<I>, Message<O>> method()
+ *
+ *
+ * + * Manual + *
+ *+ * None, Pre-Processing, Manual + *
+ *@Incoming("in")
+ *
+ *
+ *
+ * @Incoming("in")
* @Outgoing("out")
- * Processor<I, O> method();
- *
- *
- * Pre-Processing
- * None, Pre-Processing
- * Post-Processing can be optionally supported by implementations, however it requires a 1:1 mapping between the incoming
- * element and the outgoing element.
+ * Processor<I, O> method();
+ *
+ *
+ * + * Pre-Processing + *
+ *+ * None, Pre-Processing Post-Processing can be optionally supported by implementations, however it requires a 1:1 + * mapping between the incoming element and the outgoing element. + *
+ *@Incoming("in")
+ *
+ *
+ *
+ * @Incoming("in")
* @Outgoing("out")
- * ProcessorBuilder<Message<I>, Message<O>> method();
- *
- *
- * Manual
- * None, Pre-Processing, Manual
+ * ProcessorBuilder<Message<I>, Message<O>> method();
+ *
+ *
+ * + * Manual + *
+ *+ * None, Pre-Processing, Manual + *
+ *@Incoming("in")
+ *
+ *
+ *
+ * @Incoming("in")
* @Outgoing("out")
- * ProcessorBuilder<I, O> method();
- *
- *
- * Pre-Processing
- * None, Pre-Processing
- * Post-Processing can be optionally supported by implementations, however it requires a 1:1 mapping the incoming element
- * and the outgoing element.
+ * ProcessorBuilder<I, O> method();
+ *
+ *
+ * + * Pre-Processing + *
+ *+ * None, Pre-Processing Post-Processing can be optionally supported by implementations, however it requires a 1:1 + * mapping the incoming element and the outgoing element. + *
+ *@Incoming("in")
+ *
+ *
+ *
+ * @Incoming("in")
* @Outgoing("out")
- * Publisher<Message<O>> method(Message<I> msg)
- *
- *
- * Manual
- * None, Manual, Pre-Processing
+ * Publisher<Message<O>> method(Message<I> msg)
+ *
+ *
+ * + * Manual + *
+ *+ * None, Manual, Pre-Processing + *
+ *@Incoming("in")
+ *
+ *
+ *
+ * @Incoming("in")
* @Outgoing("out")
- * Publisher<O> method(I payload)
- *
- *
- * Pre-Processing
- * None, Pre-Processing
+ * Publisher<O> method(I payload)
+ *
+ *
+ * + * Pre-Processing + *
+ *+ * None, Pre-Processing + *
+ *@Incoming("in")
+ *
+ *
+ *
+ * @Incoming("in")
* @Outgoing("out")
- * PublisherBuilder<Message<O>> method(Message<I> msg)
- *
- *
- * Manual
- * None, Manual, Pre-Processing
+ * PublisherBuilder<Message<O>> method(Message<I> msg)
+ *
+ *
+ * + * Manual + *
+ *+ * None, Manual, Pre-Processing + *
+ *@Incoming("in")
+ *
+ *
+ *
+ * @Incoming("in")
* @Outgoing("out")
- * PublisherBuilder<O> method(I payload)
- *
- *
- * Pre-Processing
- * None, Pre-Processing
+ * PublisherBuilder<O> method(I payload)
+ *
+ *
+ * + * Pre-Processing + *
+ *+ * None, Pre-Processing + *
+ *@Incoming("in")
+ *
+ *
+ *
+ * @Incoming("in")
* @Outgoing("out")
- * Message<O> method(Message<I> msg)
- *
- *
- * Manual
- * None, Manual, Pre-Processing
+ * Message<O> method(Message<I> msg)
+ *
+ *
+ * + * Manual + *
+ *+ * None, Manual, Pre-Processing + *
+ *@Incoming("in")
+ *
+ *
+ *
+ * @Incoming("in")
* @Outgoing("out")
- * O method(I payload)
- *
- *
- * Post-Processing
- * None, Pre-Processing, Post-Processing (when
- * the message wrapping the produced payload is acknowledged)
+ * O method(I payload)
+ *
+ *
+ * + * Post-Processing + *
+ *+ * None, Pre-Processing, Post-Processing (when the message wrapping the produced payload is acknowledged) + *
+ *@Incoming("in")
+ *
+ *
+ *
+ * @Incoming("in")
* @Outgoing("out")
- * CompletionStage<Message<O>> method(Message<I> msg)
- *
- *
- * Manual
- * None, Manual, Pre-Processing
+ * CompletionStage<Message<O>> method(Message<I> msg)
+ *
+ *
+ * + * Manual + *
+ *+ * None, Manual, Pre-Processing + *
+ *@Incoming("in")
+ *
+ *
+ *
+ * @Incoming("in")
* @Outgoing("out")
- * CompletionStage<O> method(I payload)
- *
- *
- * Post-Processing
- * None, Pre-Processing, Post-Processing (when
- * the message wrapping the produced payload is acknowledged)
+ * CompletionStage<O> method(I payload)
+ *
+ *
+ * + * Post-Processing + *
+ *+ * None, Pre-Processing, Post-Processing (when the message wrapping the produced payload is acknowledged) + *
+ *@Incoming("in")
+ *
+ *
+ *
+ * @Incoming("in")
* @Outgoing("out")
- * Publisher<Message<O>> method(Publisher<Message<I>> pub)
- *
- *
- * Manual
- * None, Manual, Pre-Processing
+ * Publisher<Message<O>> method(Publisher<Message<I>> pub)
+ *
+ *
+ * + * Manual + *
+ *+ * None, Manual, Pre-Processing + *
+ *@Incoming("in")
+ *
+ *
+ *
+ * @Incoming("in")
* @Outgoing("out")
- * PublisherBuilder<Message<O>> method(PublisherBuilder<Message<I>> pub)
- *
- *
- * Manual
- * None, Manual, Pre-Processing
+ * PublisherBuilder<Message<O>> method(PublisherBuilder<Message<I>> pub)
+ *
+ *
+ * + * Manual + *
+ *+ * None, Manual, Pre-Processing + *
+ *@Incoming("in")
+ *
+ *
+ *
+ * @Incoming("in")
* @Outgoing("out")
- * Publisher<O> method(Publisher<I> pub)
- *
- *
- * Pre-Processing
- * None, Pre-Processing
+ * Publisher<O> method(Publisher<I> pub)
+ *
+ *
+ * + * Pre-Processing + *
+ *+ * None, Pre-Processing + *
+ *@Incoming("in")
+ *
+ *
+ *
+ * @Incoming("in")
* @Outgoing("out")
- * PublisherBuilder<O> method(PublisherBuilder<I> pub)
- *
- *
- * Pre-Processing
- * None, Pre-Processing
+ * PublisherBuilder<O> method(PublisherBuilder<I> pub)
+ *
+ *
+ * + * Pre-Processing + *
+ *+ * None, Pre-Processing + *
+ *- * When this qualifier is used on an {@link Emitter}, it indicates which channel will receive the emitted values / signals: + * When this qualifier is used on an {@link Emitter}, it indicates which channel will receive the emitted values / + * signals: * *
*
@@ -56,18 +56,20 @@
* emitter.send("a");
*
*
- * A subscriber for the above channel must be found when the application starts.
- * Otherwise, {@link javax.enterprise.inject.spi.DeploymentException} must be thrown.
+ *
+ * A subscriber for the above channel must be found when the application starts. Otherwise,
+ * {@link jakarta.enterprise.inject.spi.DeploymentException} must be thrown.
*/
@Qualifier
@Retention(RetentionPolicy.RUNTIME)
-@Target({ METHOD, CONSTRUCTOR, FIELD, PARAMETER })
+@Target({METHOD, CONSTRUCTOR, FIELD, PARAMETER})
public @interface Channel {
/**
* The name of the channel (indicated in the {@code @Outgoing} annotation.
*
- * @return the channel name, mandatory, non-{@code null} and non-blank. It must matches one of the available channels.
+ * @return the channel name, mandatory, non-{@code null} and non-blank. It must matches one of the available
+ * channels.
*/
@Nonbinding
String value();
diff --git a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/Emitter.java b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/Emitter.java
index b41129b6..7998d7ba 100644
--- a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/Emitter.java
+++ b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/Emitter.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2021 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
@@ -31,45 +31,50 @@
* Emitter<String> emitter;
*
* - * You can use an injected emitter to send either payloads or - * {@link org.eclipse.microprofile.reactive.messaging.Message Messages}. + * You can use an injected emitter to send either payloads or {@link org.eclipse.microprofile.reactive.messaging.Message + * Messages}. *
- * The name of the channel (given in the {@link Channel Channel annotation}) - * indicates which channel is fed. It must match the name used in a method using - * {@link org.eclipse.microprofile.reactive.messaging.Incoming @Incoming} or an + * The name of the channel (given in the {@link Channel Channel annotation}) indicates which channel is fed. It must + * match the name used in a method using {@link org.eclipse.microprofile.reactive.messaging.Incoming @Incoming} or an * outgoing channel configured in the application configuration. *
- * The {@link OnOverflow OnOverflow annotation} can be used to configure what to do if
- * messages are sent using the `Emitter` when a downstream subscriber hasn't requested
- * more messages.
+ * The {@link OnOverflow OnOverflow annotation} can be used to configure what to do if messages are sent using the
+ * `Emitter` when a downstream subscriber hasn't requested more messages.
*
- * @param
- * A {@link Message} object will be created to hold the payload and the returned {@code CompletionStage} will be completed once this
- * {@code Message} is acknowledged. If the {@code Message} is never acknowledged, then the {@code CompletionStage} will never be completed.
+ * A {@link Message} object will be created to hold the payload and the returned {@code CompletionStage} will be
+ * completed once this {@code Message} is acknowledged. If the {@code Message} is never acknowledged, then the
+ * {@code CompletionStage} will never be completed.
*
- * @param msg the thing to send, must not be {@code null}
+ * @param msg
+ * the thing to send, must not be {@code null}
* @return the {@code CompletionStage}, which will be completed when the message for this payload is acknowledged.
* If the emitted message is nacked, the produced completion stage is completed exceptionally.
- * @throws IllegalStateException if the channel has been cancelled or terminated or if an overflow strategy of
- * {@link OnOverflow.Strategy#THROW_EXCEPTION THROW_EXCEPTION} or {@link OnOverflow.Strategy#BUFFER BUFFER} is
- * configured and the emitter overflows.
+ * @throws IllegalStateException
+ * if the channel has been cancelled or terminated or if an overflow strategy of
+ * {@link OnOverflow.Strategy#THROW_EXCEPTION THROW_EXCEPTION} or {@link OnOverflow.Strategy#BUFFER
+ * BUFFER} is configured and the emitter overflows.
*/
CompletionStage
@@ -47,27 +46,26 @@
*
* The type of the message accepted by the subscriber may be wrapped in {@link Message}, or a subclass of it. All
* messaging providers must support {@code Message}, but messaging providers may also provide subclasses of
- * {@code Message} in order to expose message transport specific features. Use of these sub classes will result in
- * a non portable application. If the chosen messaging provider does not support the selected message wrapper, a
- * deployment exception will be raised before the container is initialized.
+ * {@code Message} in order to expose message transport specific features. Use of these sub classes will result in a non
+ * portable application. If the chosen messaging provider does not support the selected message wrapper, a deployment
+ * exception will be raised before the container is initialized.
*
* If the incoming message is wrapped in a {@code Message} wrapper, then it is the responsibility of the subscriber to
- * acknowledge messages. This can either by done by invoking {@link Message#ack()} directly, or if using a method
- * shape that has an output value (such as the processor shapes, or methods that return a value), and if the output
- * value also is also wrapped in a {@code Message}, by passing the {@code ack} callback to the emitted {@code Message}
- * so that the container can ack it.
+ * acknowledge messages. This can either by done by invoking {@link Message#ack()} directly, or if using a method shape
+ * that has an output value (such as the processor shapes, or methods that return a value), and if the output value also
+ * is also wrapped in a {@code Message}, by passing the {@code ack} callback to the emitted {@code Message} so that the
+ * container can ack it.
*
* If the incoming message is not wrapped, then the container is responsible for automatically acknowledging messages.
- * When the ack is done depends on the shape of the method - for subscriber shapes, it may either be done before or after
- * passing a message to the subscriber (note that it doesn't matter which, since compliant Reactive Streams
+ * When the ack is done depends on the shape of the method - for subscriber shapes, it may either be done before or
+ * after passing a message to the subscriber (note that it doesn't matter which, since compliant Reactive Streams
* implementations don't allow throwing exceptions directly from the subscriber). For processor shapes, it should be
- * when the processor emits an element. In this case, it is assumed, and the application must ensure, that there is
- * a 1:1 correlation of elements consumed and emitted by the processor, and that ordering is maintained. For shapes
- * that return a {@code CompletionStage}, it should be when that completion stage is redeemed. For methods that
- * accept a single parameter and then return void or a value, it should be done after the method is invoked
- * successfully.
+ * when the processor emits an element. In this case, it is assumed, and the application must ensure, that there is a
+ * 1:1 correlation of elements consumed and emitted by the processor, and that ordering is maintained. For shapes that
+ * return a {@code CompletionStage}, it should be when that completion stage is redeemed. For methods that accept a
+ * single parameter and then return void or a value, it should be done after the method is invoked successfully.
*
* If there is an output value, and it is wrapped, then it is the containers responsibility to invoke
diff --git a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/Message.java b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/Message.java
index c4f84cda..b1dd213e 100644
--- a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/Message.java
+++ b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/Message.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2018, 2019 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
@@ -30,15 +30,18 @@
* information to be passed to and from applications.
* the type of the new payload
+ * @param payload
+ * the new payload.
+ * @param
+ * the type of the new payload
* @return the new instance of {@link Message}
*/
default Message withPayload(P payload) {
@@ -110,10 +122,11 @@ default Message withPayload(P payload) {
}
/**
- * Creates a new instance of {@link Message} with the given acknowledgement supplier.
- * The payload, and nack function are taken from the current {@link Message}.
+ * Creates a new instance of {@link Message} with the given acknowledgement supplier. The payload, and nack function
+ * are taken from the current {@link Message}.
*
- * @param ack the positive-acknowledgement function
+ * @param ack
+ * the positive-acknowledgement function
* @return the new instance of {@link Message}
*/
default Message
* If the buffer is full, an {@link IllegalStateException} will be thrown by the {@code Emitter.send} method.
*/
BUFFER,
-
+
/**
- * Buffers all values until the downstream consumes it.
- * This creates an unbounded buffer so the application may run out of memory if values are continually added faster than they are consumed.
+ * Buffers all values until the downstream consumes it. This creates an unbounded buffer so the
+ * application may run out of memory if values are continually added faster than they are consumed.
*/
UNBOUNDED_BUFFER,
-
+
/**
- * Causes an {@link IllegalStateException} to be thrown by the {@code Emitter.send} method if the downstream can't keep up.
+ * Causes an {@link IllegalStateException} to be thrown by the {@code Emitter.send} method if the downstream
+ * can't keep up.
*/
THROW_EXCEPTION,
-
+
/**
* Drops the most recent value if the downstream can't keep up. It means that new value emitted by the upstream
* are ignored.
@@ -79,8 +78,8 @@ enum Strategy {
DROP,
/**
- * Sends an error signal to the downstream subscriber in the case where it can't keep up.
- * This terminates the reactive stream so no more values will be published.
+ * Sends an error signal to the downstream subscriber in the case where it can't keep up. This terminates the
+ * reactive stream so no more values will be published.
*/
FAIL,
@@ -102,9 +101,9 @@ enum Strategy {
Strategy value();
/**
- * @return the size of the buffer when {@link Strategy#BUFFER} is used. If not set and if the {@link Strategy#BUFFER}
- * strategy is used, the buffer size will be defaulted to the value of the config property
- * mp.messaging.emitter.defult-buffer-size.
+ * @return the size of the buffer when {@link Strategy#BUFFER} is used. If not set and if the
+ * {@link Strategy#BUFFER} strategy is used, the buffer size will be defaulted to the value of the config
+ * property mp.messaging.emitter.defult-buffer-size.
*/
long bufferSize() default 0;
diff --git a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/Outgoing.java b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/Outgoing.java
index 681c4903..2cedbec3 100644
--- a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/Outgoing.java
+++ b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/Outgoing.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2018, 2019 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
@@ -18,15 +18,14 @@
*/
package org.eclipse.microprofile.reactive.messaging;
-
-import org.eclipse.microprofile.reactive.streams.operators.ProcessorBuilder;
-import org.eclipse.microprofile.reactive.streams.operators.PublisherBuilder;
-
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import org.eclipse.microprofile.reactive.streams.operators.ProcessorBuilder;
+import org.eclipse.microprofile.reactive.streams.operators.PublisherBuilder;
+
/**
* Used to signify a publisher of outgoing messages.
*
@@ -51,16 +50,15 @@
*
* The type of the message emitted by the publisher may be wrapped in {@link Message}, or a subclass of it. All
* messaging providers must support {@code Message}, but messaging providers may also provide subclasses of
- * {@code Message} in order to expose message transport specific features. Use of these sub classes will result in
- * a non portable application. If the chosen messaging provider does not support the selected message wrapper, a
- * deployment exception will be raised before the container is initialized.
+ * {@code Message} in order to expose message transport specific features. Use of these sub classes will result in a non
+ * portable application. If the chosen messaging provider does not support the selected message wrapper, a deployment
+ * exception will be raised before the container is initialized.
*
* If the outing message is wrapped in a {@code Message} wrapper, then it is the responsibility of the container to
* acknowledge messages, by invoking the {@link Message#ack()} method on each message it receives. Containers must be
* careful to invoke these messages in order, one at a time, unless configured not to through a container specific
- * mechanism. Containers may provide the ability to configure batching of acks, or only acking one in every n
- * messages.
+ * mechanism. Containers may provide the ability to configure batching of acks, or only acking one in every n messages.
*
@@ -28,10 +29,11 @@
* repeat failures.
*
* The application should use Reactive Streams to provide the message stream handlers. Generally, use of
- * {@link org.eclipse.microprofile.reactive.streams} builders should be used in preference to either Reactive Streams
+ * {@code org.eclipse.microprofile.reactive.streams} builders should be used in preference to either Reactive Streams
* interfaces directly, or container specific implementations of streams.
*
* Here is an example use of this API:
+ *
*
- * The value indicates the name associated with the bean implementing either
- * {@link IncomingConnectorFactory} or {@link OutgoingConnectorFactory} or both.
+ * The value indicates the name associated with the bean implementing either {@link IncomingConnectorFactory} or
+ * {@link OutgoingConnectorFactory} or both.
*
* Note that the given name is a user-facing interface used in the configuration.
*/
@@ -43,9 +43,9 @@
public @interface Connector {
/**
- * @return The name of the connector associated with the bean implementing {@link IncomingConnectorFactory}
- * or {@link OutgoingConnectorFactory}. Must not be {@code null}. Returning {@code null} will cause a deployment
- * failure.
+ * @return The name of the connector associated with the bean implementing {@link IncomingConnectorFactory} or
+ * {@link OutgoingConnectorFactory}. Must not be {@code null}. Returning {@code null} will cause a
+ * deployment failure.
*/
String value();
diff --git a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/ConnectorAttribute.java b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/ConnectorAttribute.java
index 35fadec4..f5f60434 100644
--- a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/ConnectorAttribute.java
+++ b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/ConnectorAttribute.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2021 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
@@ -18,33 +18,30 @@
*/
package org.eclipse.microprofile.reactive.messaging.spi;
+import static java.lang.annotation.ElementType.TYPE;
+
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
-import static java.lang.annotation.ElementType.TYPE;
-
/**
- * Connector implementor can use this annotation to document attributes supported by their connector.
- * This allows tools (IDE, annotation processors...) to extract that data to provide code completion or documentation
- * generation.
+ * Connector implementor can use this annotation to document attributes supported by their connector. This allows tools
+ * (IDE, annotation processors...) to extract that data to provide code completion or documentation generation.
*
- * Each attribute is represented by an instance of {@code ConnectorAttribute}.
- * For example:
+ * Each attribute is represented by an instance of {@link ConnectorAttribute}. For example:
*
*
- * The factory is called to create a {@code channel} for each configured transport. The configuration is done using
- * MicroProfile Config. The following snippet gives an example for a hypothetical Kafka connector:
+ * The factory is called to create a {@code channel} for each configured transport. The configuration is done
+ * using MicroProfile Config. The following snippet gives an example for a hypothetical Kafka connector:
*
*
- * The configuration keys are structured as follows: {@code mp.messaging.[incoming|outgoing].channel-name.attribute} or
- * {@code mp.messaging.[connector].connector-name.attribute}.
- * Channel names are not expected to contain {@code .} so the first occurrence of a {@code .} in the {@code channel-name}
- * portion of a property terminates the channel name and precedes the attribute name.
- * For connector attributes, the longest string, inclusive of {@code .}s, that matches a loadable
- * connector is used as a {@code connector-name}. The remainder, after a {@code .} separator, is the attribute name.
- * Configuration keys that begin {@code mp.messaging.outgoing}} are not used for {@link IncomingConnectorFactory}
+ * The configuration keys are structured as follows: {@code mp.messaging.[incoming|outgoing].channel-name.attribute} or
+ * {@code mp.messaging.[connector].connector-name.attribute}. Channel names are not expected to contain {@code .} so the
+ * first occurrence of a {@code .} in the {@code channel-name} portion of a property terminates the channel name and
+ * precedes the attribute name. For connector attributes, the longest string, inclusive of {@code .}s, that matches a
+ * loadable connector is used as a {@code connector-name}. The remainder, after a {@code .} separator, is the attribute
+ * name. Configuration keys that begin {@code mp.messaging.outgoing}} are not used for {@link IncomingConnectorFactory}
* configuration.
*
* The portion of the key that precedes the {@code attribute} acts as a property prefix that has a common structure
@@ -59,26 +58,27 @@
*
* The set of attributes depend on the connector and transport layer (for example, bootstrap.servers is Kafka specific).
- * The connector attribute indicates the name of the connector. It will be matched to
- * the value returned by the {@link Connector} qualifier used on the relevant {@link IncomingConnectorFactory} bean implementation.
- * This is how a reactive messaging implementation looks for the specific {@link IncomingConnectorFactory} required for
- * a channel. Any {@code mp.messaging.connector} attributes for the channel's connector are also included in the set
- * of relevant attributes. Where an attribute is present for both a channel and its connector the value of the channel
- * specific attribute will take precedence.
+ * The connector attribute indicates the name of the connector. It will be matched to the value returned by the
+ * {@link Connector} qualifier used on the relevant {@link IncomingConnectorFactory} bean implementation. This is how a
+ * reactive messaging implementation looks for the specific {@link IncomingConnectorFactory} required for a channel. Any
+ * {@code mp.messaging.connector} attributes for the channel's connector are also included in the set of relevant
+ * attributes. Where an attribute is present for both a channel and its connector the value of the channel specific
+ * attribute will take precedence.
*
* In the previous configuration, the reactive messaging implementation would need to find the
- * {@link IncomingConnectorFactory} qualified using the {@link Connector} qualifier with the value
- * {@code acme.kafka} class to create the {@code my-channel} channel. Note that if the
- * connector cannot be found, the deployment must be failed with a {@link javax.enterprise.inject.spi.DeploymentException}.
+ * {@link IncomingConnectorFactory} qualified using the {@link Connector} qualifier with the value {@code acme.kafka}
+ * class to create the {@code my-channel} channel. Note that if the connector cannot be found, the deployment must be
+ * failed with a {@link jakarta.enterprise.inject.spi.DeploymentException}.
*
- * The {@link #getPublisherBuilder(Config)} is called for every channel that needs to be created. The {@link Config} object
- * passed to the method contains a subset of the global configuration, and with the prefixes removed. So for the previous
- * configuration, it would be:
+ * The {@link #getPublisherBuilder(Config)} is called for every channel that needs to be created. The {@link Config}
+ * object passed to the method contains a subset of the global configuration, and with the prefixes removed. So for the
+ * previous configuration, it would be:
+ *
*
* If the configuration is invalid, the {@link #getPublisherBuilder(Config)} method must throw an
* {@link IllegalArgumentException}, caught by the reactive messaging implementation and failing the deployment by
- * throwing a {@link javax.enterprise.inject.spi.DeploymentException} wrapping the exception.
+ * throwing a {@link jakarta.enterprise.inject.spi.DeploymentException} wrapping the exception.
*
* Note that a Reactive Messaging implementation must support the configuration format described here. Implementations
* are free to provide additional support for other approaches.
@@ -101,19 +101,22 @@
public interface IncomingConnectorFactory extends ConnectorFactory {
/**
- * Creates a channel for the given configuration. The channel's configuration is associated with a
- * specific {@code connector}, using the {@link Connector} qualifier's parameter indicating a key to
- * which {@link IncomingConnectorFactory} to use.
+ * Creates a channel for the given configuration. The channel's configuration is associated with a specific
+ * {@code connector}, using the {@link Connector} qualifier's parameter indicating a key to which
+ * {@link IncomingConnectorFactory} to use.
*
*
* Note that the connection to the transport or broker is generally postponed until the
* subscription occurs.
*
- * @param config the configuration, must not be {@code null}, must contain the {@link #CHANNEL_NAME_ATTRIBUTE}
- * attribute.
+ * @param config
+ * the configuration, must not be {@code null}, must contain the {@link #CHANNEL_NAME_ATTRIBUTE}
+ * attribute.
* @return the created {@link PublisherBuilder}, will not be {@code null}.
- * @throws IllegalArgumentException if the configuration is invalid.
- * @throws NoSuchElementException if the configuration does not contain an expected attribute.
+ * @throws IllegalArgumentException
+ * if the configuration is invalid.
+ * @throws NoSuchElementException
+ * if the configuration does not contain an expected attribute.
*/
PublisherBuilder extends Message>> getPublisherBuilder(Config config);
diff --git a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/OutgoingConnectorFactory.java b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/OutgoingConnectorFactory.java
index c258ad2e..161fcca8 100644
--- a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/OutgoingConnectorFactory.java
+++ b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/OutgoingConnectorFactory.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2018, 2019 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
@@ -18,13 +18,12 @@
*/
package org.eclipse.microprofile.reactive.messaging.spi;
+import java.util.NoSuchElementException;
+
import org.eclipse.microprofile.config.Config;
import org.eclipse.microprofile.reactive.messaging.Message;
import org.eclipse.microprofile.reactive.streams.operators.SubscriberBuilder;
-
-import java.util.NoSuchElementException;
-
/**
* SPI used to implement a connector managing a sink of messages for a specific transport. For example, to
* handle dispatch messages to Kafka, the reactive messaging extension would implement a {@code bean} implementing this
@@ -32,8 +31,8 @@
* (so Kafka in this example). These streams are connected to methods annotated with
* {@link org.eclipse.microprofile.reactive.messaging.Outgoing}.
*
- * The factory is called to create a {@code subscriber} for each configured transport. The configuration is done
- * using MicroProfile Config. The following snippet gives an example for a hypothetical Kafka connector:
+ * The factory is called to create a {@code subscriber} for each configured transport. The configuration is
+ * done using MicroProfile Config. The following snippet gives an example for a hypothetical Kafka connector:
*
*
* The configuration keys are structured as follows: {@code mp.messaging.[incoming|outgoing].channel-name.attribute} or
- * {@code mp.messaging.[connector].connector-name.attribute}.
- * Channel names are not expected to contain {@code .} so the first occurrence of a {@code .} in the channel-name portion
- * of a property terminates the channel name and precedes the attribute name.
- * For connector attributes, the longest string, inclusive of {@code .}s, that matches a loadable
- * connector is used as a {@code connector-name}. The remainder, after a {@code .} separator, is the attribute name.
- * Configuration keys that begin
- * {@code mp.messaging.incoming} are not used for {@link OutgoingConnectorFactory} configuration.
+ * {@code mp.messaging.[connector].connector-name.attribute}. Channel names are not expected to contain {@code .} so the
+ * first occurrence of a {@code .} in the channel-name portion of a property terminates the channel name and precedes
+ * the attribute name. For connector attributes, the longest string, inclusive of {@code .}s, that matches a loadable
+ * connector is used as a {@code connector-name}. The remainder, after a {@code .} separator, is the attribute name.
+ * Configuration keys that begin {@code mp.messaging.incoming} are not used for {@link OutgoingConnectorFactory}
+ * configuration.
*
* The {@code channel-name} segment in the configuration key corresponds to the name of the channel used in the
* {@code Outgoing} annotation:
@@ -57,27 +55,25 @@
*
* The set of attributes depend on the connector and transport layer (For example, bootstrap.servers is Kafka specific).
- * The {@code connector} attribute indicates the name of the connector.
- * It will be matched to the value returned by the {@link Connector} qualifier
- * used on the relevant {@link OutgoingConnectorFactory} bean implementation.
- * This is how a reactive messaging implementation looks for the specific {@link OutgoingConnectorFactory} required for
- * a channel.
- * Any {@code mp.messaging.connector} attributes for the channel's connector are also included in the set
- * of relevant attributes. Where an attribute is present for both a channel and its connector the value of the channel
- * specific attribute will take precedence.
- * In the previous configuration, the reactive messaging implementation would need to find the
- * {@link OutgoingConnectorFactory} implementation qualified with the {@link Connector} qualifier with the value
- * {@code acme.kafka} to create the {@code my-channel} subscriber. Note that if
- * the connector cannot be found, the deployment must be failed with a {@link javax.enterprise.inject.spi.DeploymentException}.
+ * The {@code connector} attribute indicates the name of the connector. It will be matched to the value returned by the
+ * {@link Connector} qualifier used on the relevant {@link OutgoingConnectorFactory} bean implementation. This is how a
+ * reactive messaging implementation looks for the specific {@link OutgoingConnectorFactory} required for a channel. Any
+ * {@code mp.messaging.connector} attributes for the channel's connector are also included in the set of relevant
+ * attributes. Where an attribute is present for both a channel and its connector the value of the channel specific
+ * attribute will take precedence. In the previous configuration, the reactive messaging implementation would need to
+ * find the {@link OutgoingConnectorFactory} implementation qualified with the {@link Connector} qualifier with the
+ * value {@code acme.kafka} to create the {@code my-channel} subscriber. Note that if the connector cannot be
+ * found, the deployment must be failed with a {@link jakarta.enterprise.inject.spi.DeploymentException}.
*
* The {@link #getSubscriberBuilder(Config)} is called for every channel that needs to be created. The
- * {@link Config} object passed to the method contains a subset of the global configuration, and with the prefixes removed.
- * So for the previous configuration, it would be:
+ * {@link Config} object passed to the method contains a subset of the global configuration, and with the prefixes
+ * removed. So for the previous configuration, it would be:
+ *
*
* Note that the connection to the transport or broker is generally postponed until the
* subscription.
*
- * @param config the configuration, never {@code null}, must contain the {@link #CHANNEL_NAME_ATTRIBUTE}
- * attribute.
+ * @param config
+ * the configuration, never {@code null}, must contain the {@link #CHANNEL_NAME_ATTRIBUTE} attribute.
* @return the created {@link SubscriberBuilder}, must not be {@code null}.
- * @throws IllegalArgumentException if the configuration is invalid.
- * @throws NoSuchElementException if the configuration does not contain an expected attribute.
+ * @throws IllegalArgumentException
+ * if the configuration is invalid.
+ * @throws NoSuchElementException
+ * if the configuration does not contain an expected attribute.
*/
SubscriberBuilder extends Message>, Void> getSubscriberBuilder(Config config);
diff --git a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/package-info.java b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/package-info.java
index bcf035e9..690ef60d 100644
--- a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/package-info.java
+++ b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/package-info.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2018, 2019 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
@@ -20,24 +20,24 @@
/**
* The MicroProfile Reactive Messaging API Connector SPI
*
- * This package provides the SPI to implement {@code connectors}. A {@code connector} can be seen as a Reactive Messaging
- * plug-in to support a specific messaging technology. For example, you can have a Kafka connector to deal with Kafka,
- * an AMQP connector to interact with AMQP brokers and routers and so on. Connector implementation should be
+ * This package provides the SPI to implement {@code connectors}. A {@code connector} can be seen as a Reactive
+ * Messaging plug-in to support a specific messaging technology. For example, you can have a Kafka connector to deal
+ * with Kafka, an AMQP connector to interact with AMQP brokers and routers and so on. Connector implementation should be
* agnostic to the Reactive Messaging implementation.
*
* A connector can be seen as:
*
-Copyright (c) ${inceptionYear}-${currentYear} Contributors to the Eclipse Foundation
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
- By using and/or copying this document, or the Eclipse Foundation
- document from which this statement is linked, you (the licensee) agree
- that you have read, understood, and will comply with the following
- terms and conditions: Permission to copy, and distribute the contents of this document, or
- the Eclipse Foundation document from which this statement is linked, in
- any medium for any purpose and without fee or royalty is hereby
- granted, provided that you include the following on ALL copies of the
- document, or portions thereof, that you use: Inclusion of the full text of this NOTICE must be provided. We
- request that authorship attribution be provided in any software,
- documents, or other items or products that you create pursuant to the
- implementation of the contents of this document, or any portion
- thereof. No right to create modifications or derivatives of Eclipse Foundation
- documents is granted pursuant to this license, except anyone may
- prepare and distribute derivative works and portions of this document
- in software that implements the specification, in supporting materials
- accompanying such software, and in documentation of such software,
- PROVIDED that all such works include the notice below. HOWEVER, the
- publication of derivative works of this document for use as a technical
- specification is expressly prohibited. The notice is: "Copyright © [$date-of-document] Eclipse Foundation. This software or
- document includes material copied from or derived from [title and URI
- of the Eclipse Foundation specification document]." THIS DOCUMENT IS PROVIDED "AS IS," AND THE COPYRIGHT
- HOLDERS AND THE ECLIPSE FOUNDATION MAKE NO REPRESENTATIONS OR
- WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
- WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
- NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE
- SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS
- WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR
- OTHER RIGHTS. THE COPYRIGHT HOLDERS AND THE ECLIPSE FOUNDATION WILL NOT BE LIABLE
- FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT
- OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE
- CONTENTS THEREOF. The name and trademarks of the copyright holders or the Eclipse
- Foundation may NOT be used in advertising or publicity pertaining to
- this document or its contents without specific, written prior
- permission. Title to copyright in this document will at all times
- remain with copyright holders.nack
is used to indicate that the processing of a message failed with the reason passed as the
- * parameter.
+ * Acknowledge negatively this message. nack
is used to indicate that the processing of a message
+ * failed with the reason passed as the parameter.
*
- * @param reason the reason of the nack, must not be {@code null}
- * @return a completion stage completed when the message is negative-acknowledgement has completed. If the
- * negative acknowledgement fails, the completion stage propagates the failure.
+ * @param reason
+ * the reason of the nack, must not be {@code null}
+ * @return a completion stage completed when the message is negative-acknowledgement has completed. If the negative
+ * acknowledgement fails, the completion stage propagates the failure.
*/
default CompletionStage
* @ApplicationScoped
* public class EmailPublisher {
@@ -53,5 +55,5 @@
*
*/
-@org.osgi.annotation.versioning.Version("1.1")
+@org.osgi.annotation.versioning.Version("2.0")
package org.eclipse.microprofile.reactive.messaging;
diff --git a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/Connector.java b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/Connector.java
index 20c48c98..01836436 100644
--- a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/Connector.java
+++ b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/Connector.java
@@ -1,5 +1,5 @@
-/**
- * Copyright (c) 2018, 2019 Contributors to the Eclipse Foundation
+/*
+ * Copyright (c) 2018, 2021 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
@@ -18,22 +18,22 @@
*/
package org.eclipse.microprofile.reactive.messaging.spi;
-
-import javax.inject.Qualifier;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import jakarta.inject.Qualifier;
+
/**
* Qualifier used on connector implementations to indicate the associated underlying transport.
*
- * {@code
- * @ConnectorAttribute(name = "bootstrap.servers", alias = "kafka.bootstrap.servers", type = "string",
+ * @ConnectorAttribute(name = "bootstrap.servers", alias = "kafka.bootstrap.servers", type = "string",
* defaultValue = "localhost:9092", direction = Direction.INCOMING_AND_OUTGOING,
* description = "...")
- * @ConnectorAttribute(name = "topic", type = "string", direction = Direction.INCOMING_AND_OUTGOING,
+ * @ConnectorAttribute(name = "topic", type = "string", direction = Direction.INCOMING_AND_OUTGOING,
* description = "...")
- * @ConnectorAttribute(name = "value-deserialization-failure-handler", type = "string", direction = Direction.INCOMING,
+ * @ConnectorAttribute(name = "value-deserialization-failure-handler", type = "string", direction = Direction.INCOMING,
* description = "...")
- * @ConnectorAttribute(name = "merge", direction = OUTGOING, type = "boolean", defaultValue = "false",
+ * @ConnectorAttribute(name = "merge", direction = OUTGOING, type = "boolean", defaultValue = "false",
* description = "...")
- * @Connector("my-connector")
+ * @Connector("my-connector")
* public class MyConnector implements IncomingConnectorFactory, OutgoingConnectorFactory {
* ...
* }
diff --git a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/ConnectorAttributes.java b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/ConnectorAttributes.java
index 6e0de38c..fdeb21a9 100644
--- a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/ConnectorAttributes.java
+++ b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/ConnectorAttributes.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2021 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
@@ -26,8 +26,8 @@
/**
* This class is used to allow multiple {@link ConnectorAttribute} declarations.
*
- * This class should not be used directly. Instead, multiple {@link ConnectorAttribute} should be used on the
- * class annotated with {@link Connector}.
+ * This class should not be used directly. Instead, multiple {@link ConnectorAttribute} should be used on the class
+ * annotated with {@link Connector}.
*/
@Retention(RetentionPolicy.CLASS)
@Target(ElementType.TYPE)
diff --git a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/ConnectorFactory.java b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/ConnectorFactory.java
index 6c4a37a5..62e31209 100644
--- a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/ConnectorFactory.java
+++ b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/ConnectorFactory.java
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2018, 2019 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
@@ -37,8 +37,8 @@ public interface ConnectorFactory {
* The {@code connector} attribute name.
*
* This attribute is part of the {@link org.eclipse.microprofile.config.Config} passed to the
- * {@link IncomingConnectorFactory} and {@link OutgoingConnectorFactory} when a new channel is created. It
- * indicates the name of the connector.
+ * {@link IncomingConnectorFactory} and {@link OutgoingConnectorFactory} when a new channel is created. It indicates
+ * the name of the connector.
*
* Note that each channel configured from the MicroProfile Config support must provide this attribute to indicate
* which connector is used. It must match the name given to the {@link Connector} qualifier.
diff --git a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/ConnectorLiteral.java b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/ConnectorLiteral.java
index 954e3d45..2e7e15b5 100644
--- a/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/ConnectorLiteral.java
+++ b/api/src/main/java/org/eclipse/microprofile/reactive/messaging/spi/ConnectorLiteral.java
@@ -1,5 +1,5 @@
-/**
- * Copyright (c) 2018, 2019 Contributors to the Eclipse Foundation
+/*
+ * Copyright (c) 2018, 2021 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
@@ -18,7 +18,7 @@
*/
package org.eclipse.microprofile.reactive.messaging.spi;
-import javax.enterprise.util.AnnotationLiteral;
+import jakarta.enterprise.util.AnnotationLiteral;
/**
* Supports inline instantiation of the {@link Connector} qualifier.
@@ -32,7 +32,8 @@ public final class ConnectorLiteral extends AnnotationLiteral
* mp.messaging.incoming.my-channel.topic=my-topic
@@ -40,13 +40,12 @@
* ...
*
*
* @Incoming("my-channel")
* public void consume(String s) {
- * // ...
+ * // ...
* }
*
*
* bootstrap.servers = localhost:9092
* topic = my-topic
@@ -93,7 +93,7 @@
*
* mp.messaging.outgoing.my-channel.connector=acme.kafka
@@ -43,13 +42,12 @@
*
*
* @Outgoing("my-channel")
* public CompletionStage<String> produce(String s) {
- * // ...
+ * // ...
* }
*
*
* bootstrap.servers = localhost:9092
* topic = my-topic
@@ -96,18 +92,20 @@
public interface OutgoingConnectorFactory extends ConnectorFactory {
/**
- * Creates a channel for the given configuration. The channel's configuration is associated with a
- * specific {@code connector}, using the {@link Connector} qualifier's parameter indicating a key to
- * which {@link org.eclipse.microprofile.reactive.messaging.Outgoing} to use.
+ * Creates a channel for the given configuration. The channel's configuration is associated with a specific
+ * {@code connector}, using the {@link Connector} qualifier's parameter indicating a key to which
+ * {@link org.eclipse.microprofile.reactive.messaging.Outgoing} to use.
*
- *
*
- * Connectors are implemented as CDI beans and identified using the
+ * Connectors are implemented as CDI beans and identified using the
* {@link org.eclipse.microprofile.reactive.messaging.spi.Connector} qualifier. Connectors receive the channel
- * configuration matching their {@link Connector} name.
+ * configuration matching their {@link org.eclipse.microprofile.reactive.messaging.spi.Connector} name.
*/
-@org.osgi.annotation.versioning.Version("1.1")
+@org.osgi.annotation.versioning.Version("2.0")
package org.eclipse.microprofile.reactive.messaging.spi;
diff --git a/api/src/main/javadoc/licenses/Draft/license.html b/api/src/main/javadoc/licenses/Draft/license.html
deleted file mode 100644
index 67e36b97..00000000
--- a/api/src/main/javadoc/licenses/Draft/license.html
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-Apache License - Version 2
-Eclipse Foundation Specification License - v1.0
-
-
-
-Disclaimers
-
-