2 * ===============================LICENSE_START======================================
4 * ================================================================================
5 * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============================LICENSE_END===========================================
21 package org.onap.dcae.apod.analytics.cdap.plugins.utils;
23 import com.google.common.base.Function;
24 import org.onap.dcae.apod.analytics.cdap.plugins.domain.config.dmaap.DMaaPMRSourcePluginConfig;
25 import org.onap.dcae.apod.analytics.dmaap.domain.config.DMaaPMRSubscriberConfig;
27 import javax.annotation.Nonnull;
29 import static org.onap.dcae.apod.analytics.cdap.common.utils.ValidationUtils.isEmpty;
30 import static org.onap.dcae.apod.analytics.cdap.common.utils.ValidationUtils.isPresent;
33 * Function that converts {@link DMaaPMRSourcePluginConfig} to {@link DMaaPMRSubscriberConfig}
35 * @author Rajiv Singla . Creation Date: 1/18/2017.
37 public class DMaaPSourceConfigMapper implements Function<DMaaPMRSourcePluginConfig, DMaaPMRSubscriberConfig> {
40 * Static factory method to map {@link DMaaPMRSourcePluginConfig} to {@link DMaaPMRSubscriberConfig}
42 * @param pluginConfig DMaaP MR Souce Plugin Config
44 * @return DMaaP MR Subscriber Config
46 public static DMaaPMRSubscriberConfig map(final DMaaPMRSourcePluginConfig pluginConfig) {
47 return new DMaaPSourceConfigMapper().apply(pluginConfig);
51 * Converts {@link DMaaPMRSourcePluginConfig} to {@link DMaaPMRSubscriberConfig} object
53 * @param sourcePluginConfig DMaaP MR Source Plugin Config
55 * @return DMaaP MR Subscriber Config
59 public DMaaPMRSubscriberConfig apply(@Nonnull DMaaPMRSourcePluginConfig sourcePluginConfig) {
61 // Create a new subscriber settings builder
62 final String hostName = sourcePluginConfig.getHostName();
63 final String topicName = sourcePluginConfig.getTopicName();
64 if (isEmpty(hostName) || isEmpty(topicName)) {
65 throw new IllegalStateException("DMaaP MR Source Host Name and Topic Name must be present");
67 final DMaaPMRSubscriberConfig.Builder subscriberConfigBuilder = new DMaaPMRSubscriberConfig.Builder(
70 // Setup up any optional subscriber parameters if they are present
71 final Integer subscriberHostPortNumber = sourcePluginConfig.getPortNumber();
72 if (subscriberHostPortNumber != null) {
73 subscriberConfigBuilder.setPortNumber(subscriberHostPortNumber);
76 final String subscriberProtocol = sourcePluginConfig.getProtocol();
77 if (isPresent(subscriberProtocol)) {
78 subscriberConfigBuilder.setProtocol(subscriberProtocol);
81 final String subscriberUserName = sourcePluginConfig.getUserName();
82 if (isPresent(subscriberUserName)) {
83 subscriberConfigBuilder.setUserName(subscriberUserName);
86 final String subscriberUserPassword = sourcePluginConfig.getUserPassword();
87 if (isPresent(subscriberUserPassword)) {
88 subscriberConfigBuilder.setUserPassword(subscriberUserPassword);
91 final String subscriberContentType = sourcePluginConfig.getContentType();
92 if (isPresent(subscriberContentType)) {
93 subscriberConfigBuilder.setContentType(subscriberContentType);
96 final String subscriberConsumerId = sourcePluginConfig.getConsumerId();
97 if (isPresent(subscriberConsumerId)) {
98 subscriberConfigBuilder.setConsumerId(subscriberConsumerId);
101 final String subscriberConsumerGroup = sourcePluginConfig.getConsumerGroup();
102 if (isPresent(subscriberConsumerGroup)) {
103 subscriberConfigBuilder.setConsumerGroup(subscriberConsumerGroup);
106 final Integer subscriberTimeoutMS = sourcePluginConfig.getTimeoutMS();
107 if (subscriberTimeoutMS != null) {
108 subscriberConfigBuilder.setTimeoutMS(subscriberTimeoutMS);
110 final Integer subscriberMessageLimit = sourcePluginConfig.getMessageLimit();
111 if (subscriberMessageLimit != null) {
112 subscriberConfigBuilder.setMessageLimit(subscriberMessageLimit);
115 // return Subscriber config
116 return subscriberConfigBuilder.build();