TCA: Replace any openecomp reference by onap
[dcaegen2/analytics/tca.git] / dcae-analytics-dmaap / src / main / java / org / onap / dcae / apod / analytics / dmaap / domain / config / DMaaPMRPublisherConfig.java
-/*\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 javax.annotation.Nonnull;\r
-\r
-/**\r
- * <p>\r
- *      Immutable DMaaP MR Configuration for DMaaP MR Publisher.\r
- * <p>\r
- *      Use {@link DMaaPMRPublisherConfig.Builder} to construct Subscriber Configuration\r
- * </p>\r
- * <p>\r
- * @author Rajiv Singla . Creation Date: 10/12/2016.\r
- */\r
-public class DMaaPMRPublisherConfig extends DMaaPMRBaseConfig {\r
-\r
-    /**\r
-     * Publisher batching queue size\r
-     */\r
-    private int maxBatchSize;\r
-\r
-    /**\r
-     * Publisher Recovery Queue Size\r
-     */\r
-    private int maxRecoveryQueueSize;\r
-\r
-\r
-    private DMaaPMRPublisherConfig(@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
-                                   int maxBatchSize,\r
-                                   int maxRecoveryQueueSize) {\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.maxBatchSize = maxBatchSize;\r
-        this.maxRecoveryQueueSize = maxRecoveryQueueSize;\r
-    }\r
-\r
-\r
-    /**\r
-     * Builder to initialize immutable {@link DMaaPMRPublisherConfig} 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 int maxBatchSize;\r
-        private int maxRecoveryQueueSize;\r
-\r
-        public Builder(@Nonnull String hostName, @Nonnull String topicName) {\r
-            // required values\r
-            this.hostName = hostName;\r
-            this.topicName = topicName;\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.maxBatchSize = AnalyticsConstants.DEFAULT_PUBLISHER_MAX_BATCH_SIZE;\r
-            this.maxRecoveryQueueSize = AnalyticsConstants.DEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE;\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 Publisher protocol - Defaults to https.\r
-         * Note: Only http and https are currently supported.\r
-         *\r
-         * @param protocol protocol e.g. https\r
-         * @return Builder object itself for chaining\r
-         */\r
-        public Builder setProtocol(@Nonnull String protocol) {\r
-            this.protocol = normalizeValidateProtocol(protocol);\r
-            return this;\r
-        }\r
-\r
-\r
-        /**\r
-         * Setup custom Publisher 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 Publisher Max Batch Size - Defaults to 100\r
-         *\r
-         * @param maxBatchSize max Batch Size\r
-         * @return Builder object itself for chaining\r
-         */\r
-        public Builder setMaxBatchSize(int maxBatchSize) {\r
-            this.maxBatchSize = maxBatchSize;\r
-            return this;\r
-        }\r
-\r
-\r
-        /**\r
-         * Setup custom Maximum Recovery Queue Size. Recovery Queue is used to hold messages temporarily in case\r
-         * DMaaP MR Publisher topic is not responding for any reason. Defaults to 100,000\r
-         *\r
-         * @param maxRecoveryQueueSize max recovery queue size\r
-         * @return Builder object itself for chaining\r
-         */\r
-        public Builder setMaxRecoveryQueueSize(int maxRecoveryQueueSize) {\r
-            this.maxRecoveryQueueSize = maxRecoveryQueueSize;\r
-            return this;\r
-        }\r
-\r
-        /**\r
-         * Creates immutable instance of {@link DMaaPMRPublisherConfig}\r
-         *\r
-         * @return Builds and returns thread safe, immutable {@link DMaaPMRPublisherConfig} object\r
-         */\r
-        public DMaaPMRPublisherConfig build() {\r
-            return new DMaaPMRPublisherConfig(hostName, portNumber, topicName, protocol, userName, userPassword,\r
-                    contentType, maxBatchSize, maxRecoveryQueueSize);\r
-        }\r
-\r
-    }\r
-\r
-\r
-    /**\r
-     * Returns max Publisher Batch Queue Size\r
-     *\r
-     * @return max Publisher Batch Queue size\r
-     */\r
-    public int getMaxBatchSize() {\r
-        return maxBatchSize;\r
-    }\r
-\r
-    /**\r
-     * Returns max Publisher Recovery Queue Size\r
-     *\r
-     * @return max Recovery Queue size\r
-     */\r
-    public int getMaxRecoveryQueueSize() {\r
-        return maxRecoveryQueueSize;\r
-    }\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
-        DMaaPMRPublisherConfig that = (DMaaPMRPublisherConfig) o;\r
-        return maxBatchSize == that.maxBatchSize &&\r
-                maxRecoveryQueueSize == that.maxRecoveryQueueSize;\r
-    }\r
-\r
-    @Override\r
-    public int hashCode() {\r
-        return Objects.hashCode(super.hashCode(), maxBatchSize, maxRecoveryQueueSize);\r
-    }\r
-\r
-\r
-    @Override\r
-    public String toString() {\r
-        return Objects.toStringHelper(this)\r
-                .add("baseConfig", super.toString())\r
-                .add("maxBatchSize", maxBatchSize)\r
-                .add("maxRecoveryQueueSize", maxRecoveryQueueSize)\r
-                .toString();\r
-    }\r
-}\r
+/*
+ * ===============================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.onap.dcae.apod.analytics.dmaap.domain.config;
+
+import com.google.common.base.Objects;
+import org.onap.dcae.apod.analytics.common.AnalyticsConstants;
+
+import javax.annotation.Nonnull;
+
+/**
+ * <p>
+ *      Immutable DMaaP MR Configuration for DMaaP MR Publisher.
+ * <p>
+ *      Use {@link DMaaPMRPublisherConfig.Builder} to construct Subscriber Configuration
+ * </p>
+ * <p>
+ * @author Rajiv Singla . Creation Date: 10/12/2016.
+ */
+public class DMaaPMRPublisherConfig extends DMaaPMRBaseConfig {
+
+    /**
+     * Publisher batching queue size
+     */
+    private int maxBatchSize;
+
+    /**
+     * Publisher Recovery Queue Size
+     */
+    private int maxRecoveryQueueSize;
+
+
+    private DMaaPMRPublisherConfig(@Nonnull String hostName,
+                                   @Nonnull Integer portNumber,
+                                   @Nonnull String topicName,
+                                   @Nonnull String protocol,
+                                   String userName,
+                                   String userPassword,
+                                   @Nonnull String contentType,
+                                   int maxBatchSize,
+                                   int maxRecoveryQueueSize) {
+        this.hostName = hostName;
+        this.portNumber = portNumber;
+        this.topicName = topicName;
+        this.protocol = protocol;
+        this.userName = userName;
+        this.userPassword = userPassword;
+        this.contentType = contentType;
+        this.maxBatchSize = maxBatchSize;
+        this.maxRecoveryQueueSize = maxRecoveryQueueSize;
+    }
+
+
+    /**
+     * Builder to initialize immutable {@link DMaaPMRPublisherConfig} 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 int maxBatchSize;
+        private int maxRecoveryQueueSize;
+
+        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.maxBatchSize = AnalyticsConstants.DEFAULT_PUBLISHER_MAX_BATCH_SIZE;
+            this.maxRecoveryQueueSize = AnalyticsConstants.DEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE;
+        }
+
+        /**
+         * 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 Publisher protocol - Defaults to https.
+         * Note: Only http and https are currently supported.
+         *
+         * @param protocol protocol e.g. https
+         * @return Builder object itself for chaining
+         */
+        public Builder setProtocol(@Nonnull String protocol) {
+            this.protocol = normalizeValidateProtocol(protocol);
+            return this;
+        }
+
+
+        /**
+         * Setup custom Publisher 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 Publisher Max Batch Size - Defaults to 100
+         *
+         * @param maxBatchSize max Batch Size
+         * @return Builder object itself for chaining
+         */
+        public Builder setMaxBatchSize(int maxBatchSize) {
+            this.maxBatchSize = maxBatchSize;
+            return this;
+        }
+
+
+        /**
+         * Setup custom Maximum Recovery Queue Size. Recovery Queue is used to hold messages temporarily in case
+         * DMaaP MR Publisher topic is not responding for any reason. Defaults to 100,000
+         *
+         * @param maxRecoveryQueueSize max recovery queue size
+         * @return Builder object itself for chaining
+         */
+        public Builder setMaxRecoveryQueueSize(int maxRecoveryQueueSize) {
+            this.maxRecoveryQueueSize = maxRecoveryQueueSize;
+            return this;
+        }
+
+        /**
+         * Creates immutable instance of {@link DMaaPMRPublisherConfig}
+         *
+         * @return Builds and returns thread safe, immutable {@link DMaaPMRPublisherConfig} object
+         */
+        public DMaaPMRPublisherConfig build() {
+            return new DMaaPMRPublisherConfig(hostName, portNumber, topicName, protocol, userName, userPassword,
+                    contentType, maxBatchSize, maxRecoveryQueueSize);
+        }
+
+    }
+
+
+    /**
+     * Returns max Publisher Batch Queue Size
+     *
+     * @return max Publisher Batch Queue size
+     */
+    public int getMaxBatchSize() {
+        return maxBatchSize;
+    }
+
+    /**
+     * Returns max Publisher Recovery Queue Size
+     *
+     * @return max Recovery Queue size
+     */
+    public int getMaxRecoveryQueueSize() {
+        return maxRecoveryQueueSize;
+    }
+
+
+    @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;
+        }
+        DMaaPMRPublisherConfig that = (DMaaPMRPublisherConfig) o;
+        return maxBatchSize == that.maxBatchSize &&
+                maxRecoveryQueueSize == that.maxRecoveryQueueSize;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hashCode(super.hashCode(), maxBatchSize, maxRecoveryQueueSize);
+    }
+
+
+    @Override
+    public String toString() {
+        return Objects.toStringHelper(this)
+                .add("baseConfig", super.toString())
+                .add("maxBatchSize", maxBatchSize)
+                .add("maxRecoveryQueueSize", maxRecoveryQueueSize)
+                .toString();
+    }
+}