/* * ============LICENSE_START======================================================= * ONAP * ================================================================================ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved. * Modifications Copyright (C) 2018-2019 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2019 Nordix Foundation. * ================================================================================ * 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.policy.common.endpoints.event.comm.bus.internal; import java.util.List; import java.util.Map; import lombok.Getter; import lombok.Setter; import org.apache.commons.lang3.StringUtils; /** * Member variables of this Params class are as follows. * *

servers DMaaP servers * topic DMaaP Topic to be monitored * apiKey DMaaP API Key (optional) * apiSecret DMaaP API Secret (optional) * consumerGroup DMaaP Reader Consumer Group * consumerInstance DMaaP Reader Instance * fetchTimeout DMaaP fetch timeout * fetchLimit DMaaP fetch limit * environment DME2 Environment * aftEnvironment DME2 AFT Environment * partner DME2 Partner * latitude DME2 Latitude * longitude DME2 Longitude * additionalProps Additional properties to pass to DME2 * useHttps does connection use HTTPS? * allowSelfSignedCerts are self-signed certificates allow */ @Getter @Setter public class BusTopicParams { private int port; private List servers; private Map additionalProps; private String topic; private String effectiveTopic; private String apiKey; private String apiSecret; private String consumerGroup; private String consumerInstance; private int fetchTimeout; private int fetchLimit; private boolean useHttps; private boolean allowSelfSignedCerts; private boolean managed; private String userName; private String password; private String environment; private String aftEnvironment; private String partner; private String latitude; private String longitude; private String partitionId; private String clientName; private String hostname; private String basePath; private String serializationProvider; public static TopicParamsBuilder builder() { return new TopicParamsBuilder(); } /** * Methods to Check if the property is INVALID. */ boolean isEnvironmentInvalid() { return StringUtils.isBlank(environment); } boolean isAftEnvironmentInvalid() { return StringUtils.isBlank(aftEnvironment); } boolean isLatitudeInvalid() { return StringUtils.isBlank(latitude); } boolean isLongitudeInvalid() { return StringUtils.isBlank(longitude); } boolean isConsumerInstanceInvalid() { return StringUtils.isBlank(consumerInstance); } boolean isConsumerGroupInvalid() { return StringUtils.isBlank(consumerGroup); } public boolean isClientNameInvalid() { return StringUtils.isBlank(clientName); } boolean isPartnerInvalid() { return StringUtils.isBlank(partner); } boolean isServersInvalid() { return (servers == null || servers.isEmpty() || (servers.size() == 1 && ("".equals(servers.get(0))))); } boolean isTopicInvalid() { return StringUtils.isBlank(topic); } boolean isPartitionIdInvalid() { return StringUtils.isBlank(partitionId); } public boolean isHostnameInvalid() { return StringUtils.isBlank(hostname); } public boolean isPortInvalid() { return (getPort() <= 0 || getPort() >= 65535); } /** * Methods to Check if the property is Valid. */ boolean isApiKeyValid() { return StringUtils.isNotBlank(apiKey); } boolean isApiSecretValid() { return StringUtils.isNotBlank(apiSecret); } boolean isUserNameValid() { return StringUtils.isNotBlank(userName); } boolean isPasswordValid() { return StringUtils.isNotBlank(password); } boolean isAdditionalPropsValid() { return additionalProps != null; } public String getSerializationProvider() { return serializationProvider; } public static class TopicParamsBuilder { final BusTopicParams params = new BusTopicParams(); private TopicParamsBuilder() { } public TopicParamsBuilder servers(List servers) { this.params.servers = servers; return this; } public TopicParamsBuilder topic(String topic) { this.params.topic = topic; return this; } public TopicParamsBuilder effectiveTopic(String effectiveTopic) { this.params.effectiveTopic = effectiveTopic; return this; } public TopicParamsBuilder apiKey(String apiKey) { this.params.apiKey = apiKey; return this; } public TopicParamsBuilder apiSecret(String apiSecret) { this.params.apiSecret = apiSecret; return this; } public TopicParamsBuilder consumerGroup(String consumerGroup) { this.params.consumerGroup = consumerGroup; return this; } public TopicParamsBuilder consumerInstance(String consumerInstance) { this.params.consumerInstance = consumerInstance; return this; } public TopicParamsBuilder fetchTimeout(int fetchTimeout) { this.params.fetchTimeout = fetchTimeout; return this; } public TopicParamsBuilder fetchLimit(int fetchLimit) { this.params.fetchLimit = fetchLimit; return this; } public TopicParamsBuilder useHttps(boolean useHttps) { this.params.useHttps = useHttps; return this; } public TopicParamsBuilder allowSelfSignedCerts(boolean allowSelfSignedCerts) { this.params.allowSelfSignedCerts = allowSelfSignedCerts; return this; } public TopicParamsBuilder userName(String userName) { this.params.userName = userName; return this; } public TopicParamsBuilder password(String password) { this.params.password = password; return this; } public TopicParamsBuilder environment(String environment) { this.params.environment = environment; return this; } public TopicParamsBuilder aftEnvironment(String aftEnvironment) { this.params.aftEnvironment = aftEnvironment; return this; } public TopicParamsBuilder partner(String partner) { this.params.partner = partner; return this; } public TopicParamsBuilder latitude(String latitude) { this.params.latitude = latitude; return this; } public TopicParamsBuilder longitude(String longitude) { this.params.longitude = longitude; return this; } public TopicParamsBuilder additionalProps(Map additionalProps) { this.params.additionalProps = additionalProps; return this; } public TopicParamsBuilder partitionId(String partitionId) { this.params.partitionId = partitionId; return this; } public BusTopicParams build() { return params; } public TopicParamsBuilder managed(boolean managed) { this.params.managed = managed; return this; } public TopicParamsBuilder hostname(String hostname) { this.params.hostname = hostname; return this; } public TopicParamsBuilder clientName(String clientName) { this.params.clientName = clientName; return this; } public TopicParamsBuilder port(int port) { this.params.port = port; return this; } public TopicParamsBuilder basePath(String basePath) { this.params.basePath = basePath; return this; } public TopicParamsBuilder serializationProvider(String serializationProvider) { this.params.serializationProvider = serializationProvider; return this; } } }