2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
6 * Modifications Copyright (C) 2018-2019 AT&T Intellectual Property. All rights reserved.
7 * Modifications Copyright (C) 2019 Nordix Foundation.
8 * ================================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=========================================================
23 package org.onap.policy.common.endpoints.event.comm.bus.internal;
25 import java.util.List;
29 import org.apache.commons.lang3.StringUtils;
32 * Member variables of this Params class are as follows.
34 * <p>servers DMaaP servers
35 * topic DMaaP Topic to be monitored
36 * apiKey DMaaP API Key (optional)
37 * apiSecret DMaaP API Secret (optional)
38 * consumerGroup DMaaP Reader Consumer Group
39 * consumerInstance DMaaP Reader Instance
40 * fetchTimeout DMaaP fetch timeout
41 * fetchLimit DMaaP fetch limit
42 * environment DME2 Environment
43 * aftEnvironment DME2 AFT Environment
44 * partner DME2 Partner
45 * latitude DME2 Latitude
46 * longitude DME2 Longitude
47 * additionalProps Additional properties to pass to DME2
48 * useHttps does connection use HTTPS?
49 * allowSelfSignedCerts are self-signed certificates allow
53 public class BusTopicParams {
56 private List<String> servers;
57 private Map<String, String> additionalProps;
59 private String effectiveTopic;
60 private String apiKey;
61 private String apiSecret;
62 private String consumerGroup;
63 private String consumerInstance;
64 private int fetchTimeout;
65 private int fetchLimit;
66 private boolean useHttps;
67 private boolean allowSelfSignedCerts;
68 private boolean managed;
70 private String userName;
71 private String password;
72 private String environment;
73 private String aftEnvironment;
74 private String partner;
75 private String latitude;
76 private String longitude;
77 private String partitionId;
78 private String clientName;
79 private String hostname;
80 private String basePath;
81 private String serializationProvider;
83 public static TopicParamsBuilder builder() {
84 return new TopicParamsBuilder();
88 * Methods to Check if the property is INVALID.
91 boolean isEnvironmentInvalid() {
92 return StringUtils.isBlank(environment);
95 boolean isAftEnvironmentInvalid() {
96 return StringUtils.isBlank(aftEnvironment);
99 boolean isLatitudeInvalid() {
100 return StringUtils.isBlank(latitude);
103 boolean isLongitudeInvalid() {
104 return StringUtils.isBlank(longitude);
107 boolean isConsumerInstanceInvalid() {
108 return StringUtils.isBlank(consumerInstance);
111 boolean isConsumerGroupInvalid() {
112 return StringUtils.isBlank(consumerGroup);
115 public boolean isClientNameInvalid() {
116 return StringUtils.isBlank(clientName);
119 boolean isPartnerInvalid() {
120 return StringUtils.isBlank(partner);
123 boolean isServersInvalid() {
124 return (servers == null || servers.isEmpty()
125 || (servers.size() == 1 && ("".equals(servers.get(0)))));
128 boolean isTopicInvalid() {
129 return StringUtils.isBlank(topic);
132 boolean isPartitionIdInvalid() {
133 return StringUtils.isBlank(partitionId);
136 public boolean isHostnameInvalid() {
137 return StringUtils.isBlank(hostname);
140 public boolean isPortInvalid() {
141 return (getPort() <= 0 || getPort() >= 65535);
145 * Methods to Check if the property is Valid.
148 boolean isApiKeyValid() {
149 return StringUtils.isNotBlank(apiKey);
152 boolean isApiSecretValid() {
153 return StringUtils.isNotBlank(apiSecret);
156 boolean isUserNameValid() {
157 return StringUtils.isNotBlank(userName);
160 boolean isPasswordValid() {
161 return StringUtils.isNotBlank(password);
164 boolean isAdditionalPropsValid() {
165 return additionalProps != null;
168 public String getSerializationProvider() {
169 return serializationProvider;
172 public static class TopicParamsBuilder {
174 final BusTopicParams params = new BusTopicParams();
176 private TopicParamsBuilder() {
179 public TopicParamsBuilder servers(List<String> servers) {
180 this.params.servers = servers;
184 public TopicParamsBuilder topic(String topic) {
185 this.params.topic = topic;
189 public TopicParamsBuilder effectiveTopic(String effectiveTopic) {
190 this.params.effectiveTopic = effectiveTopic;
194 public TopicParamsBuilder apiKey(String apiKey) {
195 this.params.apiKey = apiKey;
199 public TopicParamsBuilder apiSecret(String apiSecret) {
200 this.params.apiSecret = apiSecret;
204 public TopicParamsBuilder consumerGroup(String consumerGroup) {
205 this.params.consumerGroup = consumerGroup;
209 public TopicParamsBuilder consumerInstance(String consumerInstance) {
210 this.params.consumerInstance = consumerInstance;
214 public TopicParamsBuilder fetchTimeout(int fetchTimeout) {
215 this.params.fetchTimeout = fetchTimeout;
219 public TopicParamsBuilder fetchLimit(int fetchLimit) {
220 this.params.fetchLimit = fetchLimit;
224 public TopicParamsBuilder useHttps(boolean useHttps) {
225 this.params.useHttps = useHttps;
229 public TopicParamsBuilder allowSelfSignedCerts(boolean allowSelfSignedCerts) {
230 this.params.allowSelfSignedCerts = allowSelfSignedCerts;
234 public TopicParamsBuilder userName(String userName) {
235 this.params.userName = userName;
239 public TopicParamsBuilder password(String password) {
240 this.params.password = password;
244 public TopicParamsBuilder environment(String environment) {
245 this.params.environment = environment;
249 public TopicParamsBuilder aftEnvironment(String aftEnvironment) {
250 this.params.aftEnvironment = aftEnvironment;
254 public TopicParamsBuilder partner(String partner) {
255 this.params.partner = partner;
259 public TopicParamsBuilder latitude(String latitude) {
260 this.params.latitude = latitude;
264 public TopicParamsBuilder longitude(String longitude) {
265 this.params.longitude = longitude;
269 public TopicParamsBuilder additionalProps(Map<String, String> additionalProps) {
270 this.params.additionalProps = additionalProps;
274 public TopicParamsBuilder partitionId(String partitionId) {
275 this.params.partitionId = partitionId;
279 public BusTopicParams build() {
283 public TopicParamsBuilder managed(boolean managed) {
284 this.params.managed = managed;
288 public TopicParamsBuilder hostname(String hostname) {
289 this.params.hostname = hostname;
293 public TopicParamsBuilder clientName(String clientName) {
294 this.params.clientName = clientName;
298 public TopicParamsBuilder port(int port) {
299 this.params.port = port;
303 public TopicParamsBuilder basePath(String basePath) {
304 this.params.basePath = basePath;
308 public TopicParamsBuilder serializationProvider(String serializationProvider) {
309 this.params.serializationProvider = serializationProvider;