TCA: Support for VES/A&AI enrichment
[dcaegen2/analytics/tca.git] / dcae-analytics-dmaap / src / main / java / org / openecomp / dcae / apod / analytics / dmaap / domain / config / DMaaPMRSubscriberConfig.java
index e2feeac..7252ce0 100644 (file)
-/*
- * ===============================LICENSE_START======================================
- *  dcae-analytics
- * ================================================================================
- *    Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- *  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.
- *  ============================LICENSE_END===========================================
- */
-
-package org.openecomp.dcae.apod.analytics.dmaap.domain.config;
-
-import com.google.common.base.Objects;
-import org.openecomp.dcae.apod.analytics.common.AnalyticsConstants;
-
-import java.util.UUID;
-
-import javax.annotation.Nonnull;
-
-/**
- * <p>
- *      Immutable DMaaP MR Configuration for Subscriber.
- * <p>
- *      Use {@link DMaaPMRSubscriberConfig.Builder} to construct Subscriber Configuration
- * <p>
- *
- * @author Rajiv Singla . Creation Date: 10/12/2016.
- */
-public final class DMaaPMRSubscriberConfig extends DMaaPMRBaseConfig {
-
-    private final String consumerId;
-    private final String consumerGroup;
-    private final Integer timeoutMS;
-    private final Integer messageLimit;
-
-    private DMaaPMRSubscriberConfig(@Nonnull String hostName,
-                                    @Nonnull Integer portNumber,
-                                    @Nonnull String topicName,
-                                    @Nonnull String protocol,
-                                    String userName,
-                                    String userPassword,
-                                    @Nonnull String contentType,
-                                    @Nonnull String consumerId,
-                                    @Nonnull String consumerGroup,
-                                    @Nonnull Integer timeoutMS,
-                                    @Nonnull Integer messageLimit) {
-        this.hostName = hostName;
-        this.portNumber = portNumber;
-        this.topicName = topicName;
-        this.protocol = protocol;
-        this.userName = userName;
-        this.userPassword = userPassword;
-        this.contentType = contentType;
-        this.consumerId = consumerId;
-        this.consumerGroup = consumerGroup;
-        this.timeoutMS = timeoutMS;
-        this.messageLimit = messageLimit;
-    }
-
-    /**
-     * Builder to initialize immutable {@link DMaaPMRSubscriberConfig} object
-     */
-    public static class Builder {
-
-        private String hostName;
-        private Integer portNumber;
-        private String topicName;
-        private String userName;
-        private String userPassword;
-        private String protocol;
-        private String contentType;
-        private String consumerId;
-        private String consumerGroup;
-        private Integer timeoutMS;
-        private Integer messageLimit;
-
-        public Builder(@Nonnull String hostName,
-                       @Nonnull String topicName) {
-            // Required Values
-            this.hostName = hostName;
-            this.topicName = topicName;
-
-            // Default values
-            this.portNumber = AnalyticsConstants.DEFAULT_PORT_NUMBER;
-            this.userName = AnalyticsConstants.DEFAULT_USER_NAME;
-            this.userPassword = AnalyticsConstants.DEFAULT_USER_PASSWORD;
-            this.protocol = AnalyticsConstants.DEFAULT_PROTOCOL;
-            this.contentType = AnalyticsConstants.DEFAULT_CONTENT_TYPE;
-            this.consumerId = UUID.randomUUID().toString(); // consumer is assigned a random id by default
-            this.consumerGroup = AnalyticsConstants.DEFAULT_SUBSCRIBER_GROUP_PREFIX + consumerId; // random group
-            this.timeoutMS = AnalyticsConstants.DEFAULT_SUBSCRIBER_TIMEOUT_MS; // defaults to 10ms timeout
-            this.messageLimit = AnalyticsConstants.DEFAULT_SUBSCRIBER_MESSAGE_LIMIT; // defaults to 1000 message limit
-        }
-
-
-        /**
-         * Setup for custom host port number - Defaults to 80.
-         *
-         * @param portNumber custom port number
-         * @return Builder object itself for chaining
-         */
-        public Builder setPortNumber(@Nonnull Integer portNumber) {
-            this.portNumber = portNumber;
-            return this;
-        }
-
-
-        /**
-         * Setup user name for authentication. If no username is provided authentication will be disabled
-         *
-         * @param userName user name for DMaaP Topic Authentication
-         * @return Builder object itself for chaining
-         */
-        public Builder setUserName(@Nonnull String userName) {
-            this.userName = userName;
-            return this;
-        }
-
-
-        /**
-         * Setup user password for authentication. If no password is provided authentication will be disabled
-         *
-         * @param userPassword user password for DMaaP Topic Authentication
-         * @return Builder object itself for chaining
-         */
-        public Builder setUserPassword(@Nonnull String userPassword) {
-            this.userPassword = userPassword;
-            return this;
-        }
-
-
-        /**
-         * Setup custom Subscriber protocol - Defaults to https.
-         * Note: Only http and https are currently supported.
-         *
-         * @param protocol protocol e.g. https or http
-         * @return Builder object itself for chaining
-         */
-        public Builder setProtocol(@Nonnull String protocol) {
-
-            this.protocol = normalizeValidateProtocol(protocol);
-            return this;
-        }
-
-        /**
-         * Setup custom Subscriber content-type - Defaults to application/json
-         *
-         * @param contentType content type e.g. application/json
-         * @return Builder object itself for chaining
-         */
-        public Builder setContentType(@Nonnull String contentType) {
-            final String normalizedContentType = normalizeValidateContentType(contentType);
-            this.contentType = normalizedContentType;
-            return this;
-        }
-
-
-        /**
-         * Setup custom Consumer Id - Defaults to random Id
-         *
-         * @param consumerId - custom consumer ID
-         * @return Builder object itself for chaining
-         */
-        public Builder setConsumerId(@Nonnull String consumerId) {
-            this.consumerId = consumerId;
-            return this;
-        }
-
-        /**
-         * Setup custom Consumer Group - Default to OpenDCAE-DMaaPSub-ConsumerID
-         *
-         * @param consumerGroup - custom Consumer Group
-         * @return Builder object itself for chaining
-         */
-        public Builder setConsumerGroup(@Nonnull String consumerGroup) {
-            this.consumerGroup = consumerGroup;
-            return this;
-        }
-
-        /**
-         * Setup Custom Subscriber timeout in ms - Default to no timeout limit
-         *
-         * @param timeoutMS timeout in milliseconds
-         * @return Builder object itself for chaining
-         */
-        public Builder setTimeoutMS(@Nonnull Integer timeoutMS) {
-            this.timeoutMS = timeoutMS;
-            return this;
-        }
-
-        /**
-         * Setup custom Subscriber Message Limit - Default to no limit
-         *
-         * @param messageLimit message Limit
-         * @return Builder object itself for chaining
-         */
-        public Builder setMessageLimit(@Nonnull Integer messageLimit) {
-            this.messageLimit = messageLimit;
-            return this;
-        }
-
-        /**
-         * Builds Immutable instance of {@link DMaaPMRSubscriberConfig}
-         *
-         * @return immutable DMaaP Subscriber Config Object
-         */
-        public DMaaPMRSubscriberConfig build() {
-            return new DMaaPMRSubscriberConfig(hostName, portNumber, topicName, protocol, userName, userPassword,
-                    contentType, consumerId, consumerGroup, timeoutMS, messageLimit);
-        }
-
-    }
-
-
-    /**
-     * DMaaP MR Subscriber Consumer Id
-     *
-     * @return consumer Id
-     */
-    public String getConsumerId() {
-        return consumerId;
-    }
-
-    /**
-     * DMaaP MR Subscriber Consumer Group
-     *
-     * @return consumer group
-     */
-    public String getConsumerGroup() {
-        return consumerGroup;
-    }
-
-    /**
-     * DMaaP MR Subscriber Timeout in ms
-     *
-     * @return subscriber timeout ms
-     */
-    public Integer getTimeoutMS() {
-        return timeoutMS;
-    }
-
-    /**
-     * DMaaP MR Subscriber message limit
-     *
-     * @return subscriber message limit
-     */
-    public Integer getMessageLimit() {
-        return messageLimit;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) {
-            return true;
-        }
-        if (o == null || getClass() != o.getClass()) {
-            return false;
-        }
-        if (!super.equals(o)) {
-            return false;
-        }
-        DMaaPMRSubscriberConfig that = (DMaaPMRSubscriberConfig) o;
-        return Objects.equal(consumerId, that.consumerId) &&
-                Objects.equal(consumerGroup, that.consumerGroup) &&
-                Objects.equal(timeoutMS, that.timeoutMS) &&
-                Objects.equal(messageLimit, that.messageLimit);
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hashCode(super.hashCode(), consumerId, consumerGroup, timeoutMS, messageLimit);
-    }
-
-
-    @Override
-    public String toString() {
-        return Objects.toStringHelper(this)
-                .add("baseConfig", super.toString())
-                .add("consumerId", consumerId)
-                .add("consumerGroup", consumerGroup)
-                .add("timeoutMS", timeoutMS)
-                .add("messageLimit", messageLimit)
-                .toString();
-    }
-}
+/*\r
+ * ===============================LICENSE_START======================================\r
+ *  dcae-analytics\r
+ * ================================================================================\r
+ *    Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
+ * ================================================================================\r
+ *  Licensed under the Apache License, Version 2.0 (the "License");\r
+ *  you may not use this file except in compliance with the License.\r
+ *   You may obtain a copy of the License at\r
+ *\r
+ *          http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ *  Unless required by applicable law or agreed to in writing, software\r
+ *  distributed under the License is distributed on an "AS IS" BASIS,\r
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ *  See the License for the specific language governing permissions and\r
+ *  limitations under the License.\r
+ *  ============================LICENSE_END===========================================\r
+ */\r
+\r
+package org.openecomp.dcae.apod.analytics.dmaap.domain.config;\r
+\r
+import com.google.common.base.Objects;\r
+import org.openecomp.dcae.apod.analytics.common.AnalyticsConstants;\r
+\r
+import java.util.UUID;\r
+\r
+import javax.annotation.Nonnull;\r
+\r
+/**\r
+ * <p>\r
+ *      Immutable DMaaP MR Configuration for Subscriber.\r
+ * <p>\r
+ *      Use {@link DMaaPMRSubscriberConfig.Builder} to construct Subscriber Configuration\r
+ * <p>\r
+ *\r
+ * @author Rajiv Singla . Creation Date: 10/12/2016.\r
+ */\r
+public final class DMaaPMRSubscriberConfig extends DMaaPMRBaseConfig {\r
+\r
+    private final String consumerId;\r
+    private final String consumerGroup;\r
+    private final Integer timeoutMS;\r
+    private final Integer messageLimit;\r
+\r
+    private DMaaPMRSubscriberConfig(@Nonnull String hostName,\r
+                                    @Nonnull Integer portNumber,\r
+                                    @Nonnull String topicName,\r
+                                    @Nonnull String protocol,\r
+                                    String userName,\r
+                                    String userPassword,\r
+                                    @Nonnull String contentType,\r
+                                    @Nonnull String consumerId,\r
+                                    @Nonnull String consumerGroup,\r
+                                    @Nonnull Integer timeoutMS,\r
+                                    @Nonnull Integer messageLimit) {\r
+        this.hostName = hostName;\r
+        this.portNumber = portNumber;\r
+        this.topicName = topicName;\r
+        this.protocol = protocol;\r
+        this.userName = userName;\r
+        this.userPassword = userPassword;\r
+        this.contentType = contentType;\r
+        this.consumerId = consumerId;\r
+        this.consumerGroup = consumerGroup;\r
+        this.timeoutMS = timeoutMS;\r
+        this.messageLimit = messageLimit;\r
+    }\r
+\r
+    /**\r
+     * Builder to initialize immutable {@link DMaaPMRSubscriberConfig} object\r
+     */\r
+    public static class Builder {\r
+\r
+        private String hostName;\r
+        private Integer portNumber;\r
+        private String topicName;\r
+        private String userName;\r
+        private String userPassword;\r
+        private String protocol;\r
+        private String contentType;\r
+        private String consumerId;\r
+        private String consumerGroup;\r
+        private Integer timeoutMS;\r
+        private Integer messageLimit;\r
+\r
+        public Builder(@Nonnull String hostName,\r
+                       @Nonnull String topicName) {\r
+            // Required Values\r
+            this.hostName = hostName;\r
+            this.topicName = topicName;\r
+\r
+            // Default values\r
+            this.portNumber = AnalyticsConstants.DEFAULT_PORT_NUMBER;\r
+            this.userName = AnalyticsConstants.DEFAULT_USER_NAME;\r
+            this.userPassword = AnalyticsConstants.DEFAULT_USER_PASSWORD;\r
+            this.protocol = AnalyticsConstants.DEFAULT_PROTOCOL;\r
+            this.contentType = AnalyticsConstants.DEFAULT_CONTENT_TYPE;\r
+            this.consumerId = UUID.randomUUID().toString(); // consumer is assigned a random id by default\r
+            this.consumerGroup = AnalyticsConstants.DEFAULT_SUBSCRIBER_GROUP_PREFIX + consumerId; // random group\r
+            this.timeoutMS = AnalyticsConstants.DEFAULT_SUBSCRIBER_TIMEOUT_MS; // defaults to 10ms timeout\r
+            this.messageLimit = AnalyticsConstants.DEFAULT_SUBSCRIBER_MESSAGE_LIMIT; // defaults to 1000 message limit\r
+        }\r
+\r
+\r
+        /**\r
+         * Setup for custom host port number - Defaults to 80.\r
+         *\r
+         * @param portNumber custom port number\r
+         * @return Builder object itself for chaining\r
+         */\r
+        public Builder setPortNumber(@Nonnull Integer portNumber) {\r
+            this.portNumber = portNumber;\r
+            return this;\r
+        }\r
+\r
+\r
+        /**\r
+         * Setup user name for authentication. If no username is provided authentication will be disabled\r
+         *\r
+         * @param userName user name for DMaaP Topic Authentication\r
+         * @return Builder object itself for chaining\r
+         */\r
+        public Builder setUserName(@Nonnull String userName) {\r
+            this.userName = userName;\r
+            return this;\r
+        }\r
+\r
+\r
+        /**\r
+         * Setup user password for authentication. If no password is provided authentication will be disabled\r
+         *\r
+         * @param userPassword user password for DMaaP Topic Authentication\r
+         * @return Builder object itself for chaining\r
+         */\r
+        public Builder setUserPassword(@Nonnull String userPassword) {\r
+            this.userPassword = userPassword;\r
+            return this;\r
+        }\r
+\r
+\r
+        /**\r
+         * Setup custom Subscriber protocol - Defaults to https.\r
+         * Note: Only http and https are currently supported.\r
+         *\r
+         * @param protocol protocol e.g. https or http\r
+         * @return Builder object itself for chaining\r
+         */\r
+        public Builder setProtocol(@Nonnull String protocol) {\r
+\r
+            this.protocol = normalizeValidateProtocol(protocol);\r
+            return this;\r
+        }\r
+\r
+        /**\r
+         * Setup custom Subscriber content-type - Defaults to application/json\r
+         *\r
+         * @param contentType content type e.g. application/json\r
+         * @return Builder object itself for chaining\r
+         */\r
+        public Builder setContentType(@Nonnull String contentType) {\r
+            final String normalizedContentType = normalizeValidateContentType(contentType);\r
+            this.contentType = normalizedContentType;\r
+            return this;\r
+        }\r
+\r
+\r
+        /**\r
+         * Setup custom Consumer Id - Defaults to random Id\r
+         *\r
+         * @param consumerId - custom consumer ID\r
+         * @return Builder object itself for chaining\r
+         */\r
+        public Builder setConsumerId(@Nonnull String consumerId) {\r
+            this.consumerId = consumerId;\r
+            return this;\r
+        }\r
+\r
+        /**\r
+         * Setup custom Consumer Group - Default to OpenDCAE-DMaaPSub-ConsumerID\r
+         *\r
+         * @param consumerGroup - custom Consumer Group\r
+         * @return Builder object itself for chaining\r
+         */\r
+        public Builder setConsumerGroup(@Nonnull String consumerGroup) {\r
+            this.consumerGroup = consumerGroup;\r
+            return this;\r
+        }\r
+\r
+        /**\r
+         * Setup Custom Subscriber timeout in ms - Default to no timeout limit\r
+         *\r
+         * @param timeoutMS timeout in milliseconds\r
+         * @return Builder object itself for chaining\r
+         */\r
+        public Builder setTimeoutMS(@Nonnull Integer timeoutMS) {\r
+            this.timeoutMS = timeoutMS;\r
+            return this;\r
+        }\r
+\r
+        /**\r
+         * Setup custom Subscriber Message Limit - Default to no limit\r
+         *\r
+         * @param messageLimit message Limit\r
+         * @return Builder object itself for chaining\r
+         */\r
+        public Builder setMessageLimit(@Nonnull Integer messageLimit) {\r
+            this.messageLimit = messageLimit;\r
+            return this;\r
+        }\r
+\r
+        /**\r
+         * Builds Immutable instance of {@link DMaaPMRSubscriberConfig}\r
+         *\r
+         * @return immutable DMaaP Subscriber Config Object\r
+         */\r
+        public DMaaPMRSubscriberConfig build() {\r
+            return new DMaaPMRSubscriberConfig(hostName, portNumber, topicName, protocol, userName, userPassword,\r
+                    contentType, consumerId, consumerGroup, timeoutMS, messageLimit);\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * DMaaP MR Subscriber Consumer Id\r
+     *\r
+     * @return consumer Id\r
+     */\r
+    public String getConsumerId() {\r
+        return consumerId;\r
+    }\r
+\r
+    /**\r
+     * DMaaP MR Subscriber Consumer Group\r
+     *\r
+     * @return consumer group\r
+     */\r
+    public String getConsumerGroup() {\r
+        return consumerGroup;\r
+    }\r
+\r
+    /**\r
+     * DMaaP MR Subscriber Timeout in ms\r
+     *\r
+     * @return subscriber timeout ms\r
+     */\r
+    public Integer getTimeoutMS() {\r
+        return timeoutMS;\r
+    }\r
+\r
+    /**\r
+     * DMaaP MR Subscriber message limit\r
+     *\r
+     * @return subscriber message limit\r
+     */\r
+    public Integer getMessageLimit() {\r
+        return messageLimit;\r
+    }\r
+\r
+    @Override\r
+    public boolean equals(Object o) {\r
+        if (this == o) {\r
+            return true;\r
+        }\r
+        if (o == null || getClass() != o.getClass()) {\r
+            return false;\r
+        }\r
+        if (!super.equals(o)) {\r
+            return false;\r
+        }\r
+        DMaaPMRSubscriberConfig that = (DMaaPMRSubscriberConfig) o;\r
+        return Objects.equal(consumerId, that.consumerId) &&\r
+                Objects.equal(consumerGroup, that.consumerGroup) &&\r
+                Objects.equal(timeoutMS, that.timeoutMS) &&\r
+                Objects.equal(messageLimit, that.messageLimit);\r
+    }\r
+\r
+    @Override\r
+    public int hashCode() {\r
+        return Objects.hashCode(super.hashCode(), consumerId, consumerGroup, timeoutMS, messageLimit);\r
+    }\r
+\r
+\r
+    @Override\r
+    public String toString() {\r
+        return Objects.toStringHelper(this)\r
+                .add("baseConfig", super.toString())\r
+                .add("consumerId", consumerId)\r
+                .add("consumerGroup", consumerGroup)\r
+                .add("timeoutMS", timeoutMS)\r
+                .add("messageLimit", messageLimit)\r
+                .toString();\r
+    }\r
+}\r