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 apiKey;
55 private String apiSecret;
56 private String consumerGroup;
57 private String consumerInstance;
58 private int fetchTimeout;
59 private int fetchLimit;
60 private boolean useHttps;
61 private boolean allowSelfSignedCerts;
62 private boolean managed;
64 private String userName;
65 private String password;
66 private String environment;
67 private String aftEnvironment;
68 private String partner;
69 private String latitude;
70 private String longitude;
71 private String partitionId;
72 private String clientName;
73 private String hostname;
74 private String basePath;
75 private String serializationProvider;
77 public static TopicParamsBuilder builder() {
78 return new TopicParamsBuilder();
81 public String getPartitionId() {
85 public String getUserName() {
89 public String getPassword() {
93 public String getEnvironment() {
97 public String getAftEnvironment() {
98 return aftEnvironment;
101 public String getPartner() {
105 public String getLatitude() {
109 public String getLongitude() {
113 public Map<String, String> getAdditionalProps() {
114 return additionalProps;
117 public List<String> getServers() {
121 public String getTopic() {
125 public String getApiKey() {
129 public String getApiSecret() {
133 public String getConsumerGroup() {
134 return consumerGroup;
137 public String getConsumerInstance() {
138 return consumerInstance;
141 public int getFetchTimeout() {
145 public int getFetchLimit() {
149 public String getClientName() {
153 public String getHostname() {
157 public int getPort() {
161 public String getBasePath() {
165 public boolean isManaged() {
169 public boolean isUseHttps() {
173 public boolean isAllowSelfSignedCerts() {
174 return allowSelfSignedCerts;
178 * Methods to Check if the property is INVALID.
181 boolean isEnvironmentInvalid() {
182 return StringUtils.isBlank(environment);
185 boolean isAftEnvironmentInvalid() {
186 return StringUtils.isBlank(aftEnvironment);
189 boolean isLatitudeInvalid() {
190 return StringUtils.isBlank(latitude);
193 boolean isLongitudeInvalid() {
194 return StringUtils.isBlank(longitude);
197 boolean isConsumerInstanceInvalid() {
198 return StringUtils.isBlank(consumerInstance);
201 boolean isConsumerGroupInvalid() {
202 return StringUtils.isBlank(consumerGroup);
205 public boolean isClientNameInvalid() {
206 return StringUtils.isBlank(clientName);
209 boolean isPartnerInvalid() {
210 return StringUtils.isBlank(partner);
213 boolean isServersInvalid() {
214 return (servers == null || servers.isEmpty()
215 || (servers.size() == 1 && ("".equals(servers.get(0)))));
218 boolean isTopicInvalid() {
219 return StringUtils.isBlank(topic);
222 boolean isPartitionIdInvalid() {
223 return StringUtils.isBlank(partitionId);
226 public boolean isHostnameInvalid() {
227 return StringUtils.isBlank(hostname);
230 public boolean isPortInvalid() {
231 return (getPort() <= 0 || getPort() >= 65535);
235 * Methods to Check if the property is Valid.
238 boolean isApiKeyValid() {
239 return StringUtils.isNotBlank(apiKey);
242 boolean isApiSecretValid() {
243 return StringUtils.isNotBlank(apiSecret);
246 boolean isUserNameValid() {
247 return StringUtils.isNotBlank(userName);
250 boolean isPasswordValid() {
251 return StringUtils.isNotBlank(password);
254 boolean isAdditionalPropsValid() {
255 return additionalProps != null;
258 public String getSerializationProvider() {
259 return serializationProvider;
262 public static class TopicParamsBuilder {
264 final BusTopicParams params = new BusTopicParams();
266 private TopicParamsBuilder() {
269 public TopicParamsBuilder servers(List<String> servers) {
270 this.params.servers = servers;
274 public TopicParamsBuilder topic(String topic) {
275 this.params.topic = topic;
279 public TopicParamsBuilder apiKey(String apiKey) {
280 this.params.apiKey = apiKey;
284 public TopicParamsBuilder apiSecret(String apiSecret) {
285 this.params.apiSecret = apiSecret;
289 public TopicParamsBuilder consumerGroup(String consumerGroup) {
290 this.params.consumerGroup = consumerGroup;
294 public TopicParamsBuilder consumerInstance(String consumerInstance) {
295 this.params.consumerInstance = consumerInstance;
299 public TopicParamsBuilder fetchTimeout(int fetchTimeout) {
300 this.params.fetchTimeout = fetchTimeout;
304 public TopicParamsBuilder fetchLimit(int fetchLimit) {
305 this.params.fetchLimit = fetchLimit;
309 public TopicParamsBuilder useHttps(boolean useHttps) {
310 this.params.useHttps = useHttps;
314 public TopicParamsBuilder allowSelfSignedCerts(boolean allowSelfSignedCerts) {
315 this.params.allowSelfSignedCerts = allowSelfSignedCerts;
319 public TopicParamsBuilder userName(String userName) {
320 this.params.userName = userName;
324 public TopicParamsBuilder password(String password) {
325 this.params.password = password;
329 public TopicParamsBuilder environment(String environment) {
330 this.params.environment = environment;
334 public TopicParamsBuilder aftEnvironment(String aftEnvironment) {
335 this.params.aftEnvironment = aftEnvironment;
339 public TopicParamsBuilder partner(String partner) {
340 this.params.partner = partner;
344 public TopicParamsBuilder latitude(String latitude) {
345 this.params.latitude = latitude;
349 public TopicParamsBuilder longitude(String longitude) {
350 this.params.longitude = longitude;
354 public TopicParamsBuilder additionalProps(Map<String, String> additionalProps) {
355 this.params.additionalProps = additionalProps;
359 public TopicParamsBuilder partitionId(String partitionId) {
360 this.params.partitionId = partitionId;
364 public BusTopicParams build() {
368 public TopicParamsBuilder managed(boolean managed) {
369 this.params.managed = managed;
373 public TopicParamsBuilder hostname(String hostname) {
374 this.params.hostname = hostname;
378 public TopicParamsBuilder clientName(String clientName) {
379 this.params.clientName = clientName;
383 public TopicParamsBuilder port(int port) {
384 this.params.port = port;
388 public TopicParamsBuilder basePath(String basePath) {
389 this.params.basePath = basePath;
393 public TopicParamsBuilder serializationProvider(String serializationProvider) {
394 this.params.serializationProvider = serializationProvider;