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 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.policy.common.endpoints.event.comm.bus.internal;
24 import java.util.List;
26 import org.apache.commons.lang3.StringUtils;
29 * Member variables of this Params class are as follows.
31 * <p>servers DMaaP servers
32 * topic DMaaP Topic to be monitored
33 * apiKey DMaaP API Key (optional)
34 * apiSecret DMaaP API Secret (optional)
35 * consumerGroup DMaaP Reader Consumer Group
36 * consumerInstance DMaaP Reader Instance
37 * fetchTimeout DMaaP fetch timeout
38 * fetchLimit DMaaP fetch limit
39 * environment DME2 Environment
40 * aftEnvironment DME2 AFT Environment
41 * partner DME2 Partner
42 * latitude DME2 Latitude
43 * longitude DME2 Longitude
44 * additionalProps Additional properties to pass to DME2
45 * useHttps does connection use HTTPS?
46 * allowSelfSignedCerts are self-signed certificates allow
48 public class BusTopicParams {
51 private List<String> servers;
52 private Map<String, String> additionalProps;
54 private String effectiveTopic;
55 private String apiKey;
56 private String apiSecret;
57 private String consumerGroup;
58 private String consumerInstance;
59 private int fetchTimeout;
60 private int fetchLimit;
61 private boolean useHttps;
62 private boolean allowSelfSignedCerts;
63 private boolean managed;
65 private String userName;
66 private String password;
67 private String environment;
68 private String aftEnvironment;
69 private String partner;
70 private String latitude;
71 private String longitude;
72 private String partitionId;
73 private String clientName;
74 private String hostname;
75 private String basePath;
76 private String serializationProvider;
78 public static TopicParamsBuilder builder() {
79 return new TopicParamsBuilder();
82 public String getPartitionId() {
86 public String getUserName() {
90 public String getPassword() {
94 public String getEnvironment() {
98 public String getAftEnvironment() {
99 return aftEnvironment;
102 public String getPartner() {
106 public String getLatitude() {
110 public String getLongitude() {
114 public Map<String, String> getAdditionalProps() {
115 return additionalProps;
118 public List<String> getServers() {
122 public String getTopic() {
126 public String getEffectiveTopic() {
127 return effectiveTopic;
130 public String getApiKey() {
134 public String getApiSecret() {
138 public String getConsumerGroup() {
139 return consumerGroup;
142 public String getConsumerInstance() {
143 return consumerInstance;
146 public int getFetchTimeout() {
150 public int getFetchLimit() {
154 public String getClientName() {
158 public String getHostname() {
162 public int getPort() {
166 public String getBasePath() {
170 public boolean isManaged() {
174 public boolean isUseHttps() {
178 public boolean isAllowSelfSignedCerts() {
179 return allowSelfSignedCerts;
183 * Methods to Check if the property is INVALID.
186 boolean isEnvironmentInvalid() {
187 return StringUtils.isBlank(environment);
190 boolean isAftEnvironmentInvalid() {
191 return StringUtils.isBlank(aftEnvironment);
194 boolean isLatitudeInvalid() {
195 return StringUtils.isBlank(latitude);
198 boolean isLongitudeInvalid() {
199 return StringUtils.isBlank(longitude);
202 boolean isConsumerInstanceInvalid() {
203 return StringUtils.isBlank(consumerInstance);
206 boolean isConsumerGroupInvalid() {
207 return StringUtils.isBlank(consumerGroup);
210 public boolean isClientNameInvalid() {
211 return StringUtils.isBlank(clientName);
214 boolean isPartnerInvalid() {
215 return StringUtils.isBlank(partner);
218 boolean isServersInvalid() {
219 return (servers == null || servers.isEmpty()
220 || (servers.size() == 1 && ("".equals(servers.get(0)))));
223 boolean isTopicInvalid() {
224 return StringUtils.isBlank(topic);
227 boolean isPartitionIdInvalid() {
228 return StringUtils.isBlank(partitionId);
231 public boolean isHostnameInvalid() {
232 return StringUtils.isBlank(hostname);
235 public boolean isPortInvalid() {
236 return (getPort() <= 0 || getPort() >= 65535);
240 * Methods to Check if the property is Valid.
243 boolean isApiKeyValid() {
244 return StringUtils.isNotBlank(apiKey);
247 boolean isApiSecretValid() {
248 return StringUtils.isNotBlank(apiSecret);
251 boolean isUserNameValid() {
252 return StringUtils.isNotBlank(userName);
255 boolean isPasswordValid() {
256 return StringUtils.isNotBlank(password);
259 boolean isAdditionalPropsValid() {
260 return additionalProps != null;
263 public String getSerializationProvider() {
264 return serializationProvider;
267 public static class TopicParamsBuilder {
269 final BusTopicParams params = new BusTopicParams();
271 private TopicParamsBuilder() {
274 public TopicParamsBuilder servers(List<String> servers) {
275 this.params.servers = servers;
279 public TopicParamsBuilder topic(String topic) {
280 this.params.topic = topic;
284 public TopicParamsBuilder effectiveTopic(String effectiveTopic) {
285 this.params.effectiveTopic = effectiveTopic;
289 public TopicParamsBuilder apiKey(String apiKey) {
290 this.params.apiKey = apiKey;
294 public TopicParamsBuilder apiSecret(String apiSecret) {
295 this.params.apiSecret = apiSecret;
299 public TopicParamsBuilder consumerGroup(String consumerGroup) {
300 this.params.consumerGroup = consumerGroup;
304 public TopicParamsBuilder consumerInstance(String consumerInstance) {
305 this.params.consumerInstance = consumerInstance;
309 public TopicParamsBuilder fetchTimeout(int fetchTimeout) {
310 this.params.fetchTimeout = fetchTimeout;
314 public TopicParamsBuilder fetchLimit(int fetchLimit) {
315 this.params.fetchLimit = fetchLimit;
319 public TopicParamsBuilder useHttps(boolean useHttps) {
320 this.params.useHttps = useHttps;
324 public TopicParamsBuilder allowSelfSignedCerts(boolean allowSelfSignedCerts) {
325 this.params.allowSelfSignedCerts = allowSelfSignedCerts;
329 public TopicParamsBuilder userName(String userName) {
330 this.params.userName = userName;
334 public TopicParamsBuilder password(String password) {
335 this.params.password = password;
339 public TopicParamsBuilder environment(String environment) {
340 this.params.environment = environment;
344 public TopicParamsBuilder aftEnvironment(String aftEnvironment) {
345 this.params.aftEnvironment = aftEnvironment;
349 public TopicParamsBuilder partner(String partner) {
350 this.params.partner = partner;
354 public TopicParamsBuilder latitude(String latitude) {
355 this.params.latitude = latitude;
359 public TopicParamsBuilder longitude(String longitude) {
360 this.params.longitude = longitude;
364 public TopicParamsBuilder additionalProps(Map<String, String> additionalProps) {
365 this.params.additionalProps = additionalProps;
369 public TopicParamsBuilder partitionId(String partitionId) {
370 this.params.partitionId = partitionId;
374 public BusTopicParams build() {
378 public TopicParamsBuilder managed(boolean managed) {
379 this.params.managed = managed;
383 public TopicParamsBuilder hostname(String hostname) {
384 this.params.hostname = hostname;
388 public TopicParamsBuilder clientName(String clientName) {
389 this.params.clientName = clientName;
393 public TopicParamsBuilder port(int port) {
394 this.params.port = port;
398 public TopicParamsBuilder basePath(String basePath) {
399 this.params.basePath = basePath;
403 public TopicParamsBuilder serializationProvider(String serializationProvider) {
404 this.params.serializationProvider = serializationProvider;