-/*
- * ===============================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