From e1e919792e77cd504e41bb21f93b3a50ef894541 Mon Sep 17 00:00:00 2001 From: Piotr Jaszczyk Date: Wed, 20 Mar 2019 11:40:27 +0100 Subject: Add JavaDoc to CBS streams API Change-Id: Ia702750e0ec6bf54418eafb00523681429d86b22 Issue-ID: DCAEGEN2-1341 Signed-off-by: Piotr Jaszczyk --- .../api/exceptions/StreamParsingException.java | 4 + .../cbs/client/api/streams/DataStreams.java | 100 +++++++++++++++++++++ .../client/api/streams/StreamFromGsonParser.java | 2 + .../client/api/streams/StreamFromGsonParsers.java | 32 +++++++ .../client/impl/streams/gson/DataStreamUtils.java | 5 +- .../cbs/client/impl/streams/gson/GsonUtils.java | 3 +- .../cbs/client/model/streams/AafCredentials.java | 4 +- .../cbs/client/model/streams/DataStream.java | 4 +- .../client/model/streams/DataStreamDirection.java | 9 +- .../cbs/client/model/streams/RawDataStream.java | 5 +- .../cbs/client/model/streams/SinkStream.java | 5 +- .../cbs/client/model/streams/SourceStream.java | 5 +- .../cbs/client/model/streams/dmaap/DataRouter.java | 20 ++++- .../client/model/streams/dmaap/DataRouterSink.java | 12 ++- .../model/streams/dmaap/DataRouterSource.java | 11 ++- .../cbs/client/model/streams/dmaap/Kafka.java | 24 ++++- .../cbs/client/model/streams/dmaap/KafkaSink.java | 1 - .../client/model/streams/dmaap/KafkaSource.java | 5 +- .../client/model/streams/dmaap/MessageRouter.java | 19 +++- .../model/streams/dmaap/MessageRouterSink.java | 3 +- .../model/streams/dmaap/MessageRouterSource.java | 3 +- .../services/cbs/client/impl/CbsClientImplIT.java | 3 +- 22 files changed, 250 insertions(+), 29 deletions(-) diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/exceptions/StreamParsingException.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/exceptions/StreamParsingException.java index aa8c2ed7..ca531e82 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/exceptions/StreamParsingException.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/exceptions/StreamParsingException.java @@ -36,6 +36,10 @@ public class StreamParsingException extends CbsClientException { this.cause = cause; } + public StreamParsingException(String message) { + this(new StreamParserError(message)); + } + public StreamParserError cause() { return cause; } diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/streams/DataStreams.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/streams/DataStreams.java index 4fdb31b1..648b7a61 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/streams/DataStreams.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/streams/DataStreams.java @@ -29,6 +29,38 @@ import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.Dat import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.RawDataStream; /** + * Extract streams from the application configuration represented as GSON JsonObject. + * + * Example input: + *
+ * {
+ *     "application_config_1": "value_1,
+ *     ...
+ *     "streams_publishes": {
+ *         "stream1": {
+ *             "type": "message_router",
+ *             "dmaap_info": {
+ *                 ...
+ *             }
+ *         },
+ *         "stream2": {
+ *             "type": "data_router",
+ *             "dmaap_info": {
+ *                 ...
+ *             }
+ *         }
+ *     },
+ *     "streams_subscribes": {
+ *         "stream3": {
+ *             "type": "message_router",
+ *             "dmaap_info": {
+ *                 ...
+ *             }
+ *         },
+ *     }
+ * }
+ * 
+ * * @author Piotr Jaszczyk * @since 1.1.4 */ @@ -38,10 +70,78 @@ public final class DataStreams { private DataStreams() { } + /** + *

+ * Extracts sources from application configuration. Parses streams_subscribes subtree. + *

+ * + *

+ * For sample input it will yield: + *

+ * + *
+     * [
+     *     RawDataStream{
+     *         name="stream3"
+     *         type="message_router"
+     *         direction=SOURCE
+     *         descriptor=JsonObject{
+     *             type: "message_router",
+     *             dmaap_info: {
+     *                 ...
+     *             }
+     *         }
+     *     }
+     * ]
+     * 
+ * + * @param rootJson - the full application configuration + * @return io.vavr.collection.Stream of data streams + */ public static Stream> namedSources(JsonObject rootJson) { return createCollectionOfStreams(rootJson, DataStreamDirection.SOURCE); } + + /** + *

+ * Extracts sinks from application configuration. Parses streams_publishes subtree. + *

+ * + *

+ * For sample input it will yield: + *

+ * + *
+     * [
+     *     RawDataStream{
+     *         name="stream1"
+     *         type="message_router"
+     *         direction=SINK
+     *         descriptor=JsonObject{
+     *             type: "message_router",
+     *             dmaap_info: {
+     *                 ...
+     *             }
+     *         }
+     *     },
+     *     RawDataStream{
+     *         name="stream2"
+     *         type="data_router"
+     *         direction=SINK
+     *         descriptor=JsonObject{
+     *             type: "data_router"
+     *             dmaap_info: {
+     *                 ...
+     *             }
+     *         }
+     *     }
+     * ]
+     * 
+ * + * @param rootJson - the full application configuration + * @return io.vavr.collection.Stream of data streams + */ public static Stream> namedSinks(JsonObject rootJson) { return createCollectionOfStreams(rootJson, DataStreamDirection.SINK); } diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/streams/StreamFromGsonParser.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/streams/StreamFromGsonParser.java index 460d7100..a8ce3644 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/streams/StreamFromGsonParser.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/streams/StreamFromGsonParser.java @@ -25,6 +25,8 @@ import org.onap.dcaegen2.services.sdk.rest.services.annotations.ExperimentalApi; import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.DataStream; /** + * Represents parser taking GSON JsonObject as an input + * * @author Piotr Jaszczyk * @since 1.1.4 */ diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/streams/StreamFromGsonParsers.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/streams/StreamFromGsonParsers.java index 7ae92baf..7476e976 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/streams/StreamFromGsonParsers.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/api/streams/StreamFromGsonParsers.java @@ -29,6 +29,8 @@ import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.impl.streams.gson import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.dmaap.*; /** + * Factory methods for GSON-based {@code StreamParser}s + * * @author Piotr Jaszczyk * @since 1.1.4 */ @@ -37,26 +39,56 @@ public final class StreamFromGsonParsers { private StreamFromGsonParsers() { } + /** + * Creates a stream parser capable of parsing Kafka sinks. + * + * @return a stream parser + */ public static StreamFromGsonParser kafkaSinkParser() { return KafkaSinkParser.create(); } + /** + * Creates a stream parser capable of parsing Kafka sources. + * + * @return a stream parser + */ public static StreamFromGsonParser kafkaSourceParser() { return KafkaSourceParser.create(); } + /** + * Creates a stream parser capable of parsing DMaaP Message Router sinks. + * + * @return a stream parser + */ public static StreamFromGsonParser messageRouterSinkParser() { return MessageRouterSinkParser.create(); } + /** + * Creates a stream parser capable of parsing DMaaP Message Router sources. + * + * @return a stream parser + */ public static StreamFromGsonParser messageRouterSourceParser() { return MessageRouterSourceParser.create(); } + /** + * Creates a stream parser capable of parsing DMaaP Data Router sinks. + * + * @return a stream parser + */ public static StreamFromGsonParser dataRouterSinkParser() { return DataRouterSinkParser.create(); } + /** + * Creates a stream parser capable of parsing DMaaP Data Router sources. + * + * @return a stream parser + */ public static StreamFromGsonParser dataRouterSourceParser() { return DataRouterSourceParser.create(); } diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/streams/gson/DataStreamUtils.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/streams/gson/DataStreamUtils.java index d34b1440..1148574e 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/streams/gson/DataStreamUtils.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/streams/gson/DataStreamUtils.java @@ -24,6 +24,7 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import io.vavr.collection.Stream; import java.io.IOException; +import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.exceptions.StreamParsingException; import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.DataStreamDirection; import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.ImmutableRawDataStream; import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.RawDataStream; @@ -48,11 +49,11 @@ public final class DataStreamUtils { String expectedType, DataStreamDirection expectedDirection) { if (!json.type().equals(expectedType)) { - throw new IllegalArgumentException( + throw new StreamParsingException( "Invalid stream type. Expected '" + expectedType + "', but was '" + json.type() + "'"); } if (json.direction() != expectedDirection) { - throw new IllegalArgumentException( + throw new StreamParsingException( "Invalid stream direction. Expected '" + expectedDirection + "', but was '" + json.direction() + "'"); } diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/streams/gson/GsonUtils.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/streams/gson/GsonUtils.java index 0b662286..0fdec5d8 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/streams/gson/GsonUtils.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/streams/gson/GsonUtils.java @@ -32,6 +32,7 @@ import java.io.InputStreamReader; import java.io.Reader; import java.util.Map.Entry; import java.util.stream.Collectors; +import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.exceptions.StreamParsingException; import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.impl.streams.gson.dmaap.mr.GsonAdaptersMessageRouterDmaapInfo; import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.impl.streams.gson.kafka.GsonAdaptersKafkaInfo; import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.GsonAdaptersAafCredentials; @@ -71,7 +72,7 @@ public final class GsonUtils { public static JsonElement requiredChild(JsonObject parent, String childName) { return optionalChild(parent, childName) - .getOrElseThrow(() -> new IllegalArgumentException( + .getOrElseThrow(() -> new StreamParsingException( "Could not find sub-node '" + childName + "'. Actual sub-nodes: " + stringifyChildrenNames(parent))); diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/AafCredentials.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/AafCredentials.java index c3c70b78..9fa83bcb 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/AafCredentials.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/AafCredentials.java @@ -28,8 +28,10 @@ import org.jetbrains.annotations.Nullable; import org.onap.dcaegen2.services.sdk.rest.services.annotations.ExperimentalApi; /** + * Represents the AAF Credentials. Currently it contains only user name and password. + * * @author Piotr Jaszczyk - * @version 1.2.1 + * @since 1.1.4 */ @ExperimentalApi @Value.Immutable diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/DataStream.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/DataStream.java index 37bf7e57..1950a304 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/DataStream.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/DataStream.java @@ -24,8 +24,10 @@ import org.immutables.value.Value; import org.onap.dcaegen2.services.sdk.rest.services.annotations.ExperimentalApi; /** + * Represents a named data stream. + * * @author Piotr Jaszczyk - * @version 1.2.1 + * @since 1.1.4 */ @ExperimentalApi public interface DataStream { diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/DataStreamDirection.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/DataStreamDirection.java index f3cac547..3d05c9a9 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/DataStreamDirection.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/DataStreamDirection.java @@ -21,8 +21,10 @@ package org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams; /** + * The direction of the stream, ie. whether it's input ({@code SOURCE}) or output ({@code SINK}) stream. + * * @author Piotr Jaszczyk - * @since March 2019 + * @since 1.1.4 */ public enum DataStreamDirection { @@ -35,6 +37,11 @@ public enum DataStreamDirection { this.configurationKey = configurationKey; } + /** + * The configuration key under which the single stream definitions should reside. + * + * @return the configuration key + */ public String configurationKey() { return configurationKey; } diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/RawDataStream.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/RawDataStream.java index 7a39ede5..d6bc8000 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/RawDataStream.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/RawDataStream.java @@ -23,8 +23,11 @@ package org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams; import org.immutables.value.Value; /** + * Represents a raw/uninterpreted data stream. + * * @author Piotr Jaszczyk - * @since March 2019 + * @since 1.1.4 + * @param type of raw data, eg. JsonObject */ @Value.Immutable public interface RawDataStream { diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/SinkStream.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/SinkStream.java index e3389207..7002fd68 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/SinkStream.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/SinkStream.java @@ -23,10 +23,11 @@ package org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams; import org.onap.dcaegen2.services.sdk.rest.services.annotations.ExperimentalApi; /** - * AKA PublishStream + * Represents an output stream, ie. one of objects in streams_publishes array from application configuration. + * Application can put data to this stream. * * @author Piotr Jaszczyk - * @version 1.2.1 + * @since 1.1.4 */ @ExperimentalApi public interface SinkStream extends DataStream { diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/SourceStream.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/SourceStream.java index 2bea143b..c5ab8a34 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/SourceStream.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/SourceStream.java @@ -23,10 +23,11 @@ package org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams; import org.onap.dcaegen2.services.sdk.rest.services.annotations.ExperimentalApi; /** - * AKA SubscribeStream + * Represents an input stream, ie. one of objects in streams_subscribes array from application configuration. + * Application can read data from this stream. * * @author Piotr Jaszczyk - * @version 1.2.1 + * @since 1.1.4 */ @ExperimentalApi public interface SourceStream extends DataStream { diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/DataRouter.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/DataRouter.java index b4b5549e..072d4b0b 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/DataRouter.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/DataRouter.java @@ -17,7 +17,6 @@ * limitations under the License. * ============LICENSE_END===================================== */ - package org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.dmaap; @@ -27,17 +26,34 @@ import org.onap.dcaegen2.services.sdk.rest.services.annotations.ExperimentalApi; /** * @author Piotr Jaszczyk - * @version 1.2.1 + * @since 1.1.4 */ @ExperimentalApi public interface DataRouter { + /** + * DCAE location for the publisher, used to set up routing. + */ @SerializedName("location") @Nullable String location(); + /** + * Username + *
    + *
  • Data Router uses to authenticate to the subscriber when delivering files OR
  • + *
  • the publisher uses to authenticate to Data Router.
  • + *
+ */ @SerializedName("username") @Nullable String username(); + /** + * Password + *
    + *
  • Data Router uses to authenticate to the subscriber when delivering files OR
  • + *
  • the publisher uses to authenticate to Data Router.
  • + *
+ */ @SerializedName("password") @Nullable String password(); } diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/DataRouterSink.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/DataRouterSink.java index 60d91009..baddb91e 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/DataRouterSink.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/DataRouterSink.java @@ -17,7 +17,6 @@ * limitations under the License. * ============LICENSE_END===================================== */ - package org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.dmaap; @@ -30,19 +29,28 @@ import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.Sin /** * @author Piotr Jaszczyk - * @version 1.2.1 + * @since 1.1.4 */ @Gson.TypeAdapters @ExperimentalApi @Value.Immutable public interface DataRouterSink extends DataRouter, SinkStream { + /** + * URL to which the publisher makes Data Router publish requests. + */ @SerializedName("publish_url") String publishUrl(); + /** + * Publisher id in Data Router + */ @SerializedName("publisher_id") @Nullable String publisherId(); + /** + * URL from which log data for the feed can be obtained. + */ @SerializedName("log_url") @Nullable String logUrl(); diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/DataRouterSource.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/DataRouterSource.java index b6dedb7a..d089a403 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/DataRouterSource.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/DataRouterSource.java @@ -17,7 +17,6 @@ * limitations under the License. * ============LICENSE_END===================================== */ - package org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.dmaap; @@ -30,17 +29,23 @@ import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.Sou /** * @author Piotr Jaszczyk - * @version 1.2.1 + * @since 1.1.4 */ @Gson.TypeAdapters @ExperimentalApi @Value.Immutable public interface DataRouterSource extends DataRouter, SourceStream { - // in future, since crucial need to be verified if could be nullable + /** + * URL to which the Data Router should deliver files. + */ + // TODO: since crucial, we need to verify if it should be non-null @SerializedName("delivery_url") @Nullable String deliveryUrl(); + /** + * Subscriber id in Data Router. + */ @SerializedName("subscriber_id") @Nullable String subscriberId(); } diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/Kafka.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/Kafka.java index 1810fc6c..42558cbf 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/Kafka.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/Kafka.java @@ -17,7 +17,6 @@ * limitations under the License. * ============LICENSE_END===================================== */ - package org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.dmaap; import static io.vavr.Predicates.not; @@ -35,21 +34,44 @@ import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.Aaf @ExperimentalApi public interface Kafka { + /** + * Kafka bootstrap servers as defined in Kafka client documentation under bootstrap.servers configuration + * key. + */ String bootstrapServers(); + /** + * The name of the topic where application should publish or subscribe for the messages. + */ String topicName(); + /** + * The credentials to use when authenticating to Kafka cluster or null when connection should be unauthenticated. + */ @Nullable AafCredentials aafCredentials(); + /** + * AAF client role that’s requesting publish or subscribe access to the topic. + */ @Nullable String clientRole(); + /** + * Client id for given AAF client. + */ @Nullable String clientId(); + /** + * The limit on the size of message published to/subscribed from the topic. Can be used to set Kafka client + * max.request.size configuration property. + */ @Value.Default default int maxPayloadSizeBytes() { return 1024 * 1024; } + /** + * The {@code bootstrapServers} converted to the list of servers' addresses. + */ @Value.Derived default List bootstrapServerList() { return List.of(bootstrapServers().split(",")).filter(not(String::isEmpty)); diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/KafkaSink.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/KafkaSink.java index 09322e4a..bd6ab1ca 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/KafkaSink.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/KafkaSink.java @@ -17,7 +17,6 @@ * limitations under the License. * ============LICENSE_END===================================== */ - package org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.dmaap; import org.immutables.value.Value; diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/KafkaSource.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/KafkaSource.java index 65280a98..78f5c3af 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/KafkaSource.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/KafkaSource.java @@ -17,7 +17,6 @@ * limitations under the License. * ============LICENSE_END===================================== */ - package org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.dmaap; import org.immutables.value.Value; @@ -33,5 +32,9 @@ import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.Sou @Value.Immutable public interface KafkaSource extends Kafka, SourceStream { + /** + * A unique string that identifies the consumer group this consumer belongs to as defined in Kafka consumer + * configuration key group.id. + */ @Nullable String consumerGroupId(); } diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/MessageRouter.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/MessageRouter.java index 7ed720d0..3cca5134 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/MessageRouter.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/MessageRouter.java @@ -17,10 +17,8 @@ * limitations under the License. * ============LICENSE_END===================================== */ - package org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.dmaap; - import com.google.gson.annotations.SerializedName; import org.jetbrains.annotations.Nullable; import org.onap.dcaegen2.services.sdk.rest.services.annotations.ExperimentalApi; @@ -28,23 +26,38 @@ import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.Aaf /** * @author Piotr Jaszczyk - * @version 1.2.1 + * @since 1.1.4 */ @ExperimentalApi public interface MessageRouter { + /** + * URL for accessing the topic to publish or receive events. + */ @SerializedName("topic_url") String topicUrl(); + /** + * AAF client role that’s requesting publish or subscribe access to the topic. + */ @SerializedName("client_role") @Nullable String clientRole(); + /** + * Client id for given AAF client. + */ @SerializedName("client_id") @Nullable String clientId(); + /** + * DCAE location for the publisher or subscriber, used to set up routing. + */ @SerializedName("location") @Nullable String location(); + /** + * The AAF credentials. + */ @SerializedName("aaf_credentials") @Nullable AafCredentials aafCredentials(); } diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/MessageRouterSink.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/MessageRouterSink.java index 8f4a5339..3af79638 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/MessageRouterSink.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/MessageRouterSink.java @@ -17,7 +17,6 @@ * limitations under the License. * ============LICENSE_END===================================== */ - package org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.dmaap; import org.immutables.value.Value; @@ -26,7 +25,7 @@ import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.Sin /** * @author Piotr Jaszczyk - * @version 1.2.1 + * @since 1.1.4 */ @ExperimentalApi @Value.Immutable diff --git a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/MessageRouterSource.java b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/MessageRouterSource.java index ab802034..c7159f26 100644 --- a/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/MessageRouterSource.java +++ b/rest-services/cbs-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/model/streams/dmaap/MessageRouterSource.java @@ -17,7 +17,6 @@ * limitations under the License. * ============LICENSE_END===================================== */ - package org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.dmaap; import org.immutables.value.Value; @@ -26,7 +25,7 @@ import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.streams.Sou /** * @author Piotr Jaszczyk - * @version 1.2.1 + * @since 1.1.4 */ @ExperimentalApi @Value.Immutable diff --git a/rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientImplIT.java b/rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientImplIT.java index 33b09208..a51b87aa 100644 --- a/rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientImplIT.java +++ b/rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientImplIT.java @@ -35,6 +35,7 @@ import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.test.DummyHttp import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.CbsClient; import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.CbsClientFactory; import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.CbsRequests; +import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.exceptions.StreamParsingException; import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.streams.DataStreams; import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.streams.StreamFromGsonParser; import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.streams.StreamFromGsonParsers; @@ -222,7 +223,7 @@ class CbsClientImplIT { // then StepVerifier.create(result) .expectErrorSatisfies(ex -> { - assertThat(ex).isInstanceOf(IllegalArgumentException.class); + assertThat(ex).isInstanceOf(StreamParsingException.class); assertThat(ex).hasMessageContaining("Invalid stream type"); assertThat(ex).hasMessageContaining("message_router"); assertThat(ex).hasMessageContaining("kafka"); -- cgit 1.2.3-korg