2 * ============LICENSE_START=======================================================
3 * Datafile Collector Service
4 * ================================================================================
5 * Copyright (C) 2018 NOKIA 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.dcaegen2.collectors.datafile.configuration;
23 import java.util.Optional;
25 import java.util.function.Predicate;
27 import org.onap.dcaegen2.collectors.datafile.config.AaiClientConfiguration;
28 import org.onap.dcaegen2.collectors.datafile.config.DmaapConsumerConfiguration;
29 import org.onap.dcaegen2.collectors.datafile.config.DmaapPublisherConfiguration;
30 import org.onap.dcaegen2.collectors.datafile.config.ImmutableAaiClientConfiguration;
31 import org.onap.dcaegen2.collectors.datafile.config.ImmutableDmaapConsumerConfiguration;
32 import org.onap.dcaegen2.collectors.datafile.config.ImmutableDmaapPublisherConfiguration;
33 import org.springframework.beans.factory.annotation.Value;
34 import org.springframework.context.annotation.Configuration;
35 import org.springframework.stereotype.Component;
39 * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/9/18
44 public class AppConfig extends DatafileAppConfig {
46 private static Predicate<String> isEmpty = String::isEmpty;
47 @Value("${dmaap.dmaapConsumerConfiguration.dmaapHostName:}")
48 public String consumerDmaapHostName;
50 @Value("${dmaap.dmaapConsumerConfiguration.dmaapPortNumber:}")
51 public Integer consumerDmaapPortNumber;
53 @Value("${dmaap.dmaapConsumerConfiguration.dmaapTopicName:}")
54 public String consumerDmaapTopicName;
56 @Value("${dmaap.dmaapConsumerConfiguration.dmaapProtocol:}")
57 public String consumerDmaapProtocol;
59 @Value("${dmaap.dmaapConsumerConfiguration.dmaapUserName:}")
60 public String consumerDmaapUserName;
62 @Value("${dmaap.dmaapConsumerConfiguration.dmaapUserPassword:}")
63 public String consumerDmaapUserPassword;
65 @Value("${dmaap.dmaapConsumerConfiguration.dmaapContentType:}")
66 public String consumerDmaapContentType;
68 @Value("${dmaap.dmaapConsumerConfiguration.consumerId:}")
69 public String consumerId;
71 @Value("${dmaap.dmaapConsumerConfiguration.consumerGroup:}")
72 public String consumerGroup;
74 @Value("${dmaap.dmaapConsumerConfiguration.timeoutMs:}")
75 public Integer consumerTimeoutMs;
77 @Value("${dmaap.dmaapConsumerConfiguration.message-limit:}")
78 public Integer consumerMessageLimit;
80 @Value("${dmaap.dmaapProducerConfiguration.dmaapHostName:}")
81 public String producerDmaapHostName;
83 @Value("${dmaap.dmaapProducerConfiguration.dmaapPortNumber:}")
84 public Integer producerDmaapPortNumber;
86 @Value("${dmaap.dmaapProducerConfiguration.dmaapTopicName:}")
87 public String producerDmaapTopicName;
89 @Value("${dmaap.dmaapProducerConfiguration.dmaapProtocol:}")
90 public String producerDmaapProtocol;
92 @Value("${dmaap.dmaapProducerConfiguration.dmaapUserName:}")
93 public String producerDmaapUserName;
95 @Value("${dmaap.dmaapProducerConfiguration.dmaapUserPassword:}")
96 public String producerDmaapUserPassword;
98 @Value("${dmaap.dmaapProducerConfiguration.dmaapContentType:}")
99 public String producerDmaapContentType;
101 @Value("${aai.aaiClientConfiguration.aaiHost:}")
102 public String aaiHost;
104 @Value("${aai.aaiClientConfiguration.aaiHostPortNumber:}")
105 public Integer aaiPort;
107 @Value("${aai.aaiClientConfiguration.aaiProtocol:}")
108 public String aaiProtocol;
110 @Value("${aai.aaiClientConfiguration.aaiUserName:}")
111 public String aaiUserName;
113 @Value("${aai.aaiClientConfiguration.aaiUserPassword:}")
114 public String aaiUserPassword;
116 @Value("${aai.aaiClientConfiguration.aaiIgnoreSslCertificateErrors:}")
117 public Boolean aaiIgnoreSslCertificateErrors;
119 @Value("${aai.aaiClientConfiguration.aaiBasePath:}")
120 public String aaiBasePath;
122 @Value("${aai.aaiClientConfiguration.aaiPnfPath:}")
123 public String aaiPnfPath;
126 public DmaapConsumerConfiguration getDmaapConsumerConfiguration() {
127 return new ImmutableDmaapConsumerConfiguration.Builder()
129 Optional.ofNullable(consumerDmaapUserPassword).filter(isEmpty.negate())
130 .orElse(dmaapConsumerConfiguration.dmaapUserPassword()))
132 Optional.ofNullable(consumerDmaapUserName).filter(isEmpty.negate())
133 .orElse(dmaapConsumerConfiguration.dmaapUserName()))
135 Optional.ofNullable(consumerDmaapHostName).filter(isEmpty.negate())
136 .orElse(dmaapConsumerConfiguration.dmaapHostName()))
138 Optional.ofNullable(consumerDmaapPortNumber).filter(p -> !p.toString().isEmpty())
139 .orElse(dmaapConsumerConfiguration.dmaapPortNumber()))
141 Optional.ofNullable(consumerDmaapProtocol).filter(isEmpty.negate())
142 .orElse(dmaapConsumerConfiguration.dmaapProtocol()))
144 Optional.ofNullable(consumerDmaapContentType).filter(isEmpty.negate())
145 .orElse(dmaapConsumerConfiguration.dmaapContentType()))
147 Optional.ofNullable(consumerDmaapTopicName).filter(isEmpty.negate())
148 .orElse(dmaapConsumerConfiguration.dmaapTopicName()))
150 Optional.ofNullable(consumerMessageLimit).filter(p -> !p.toString().isEmpty())
151 .orElse(dmaapConsumerConfiguration.messageLimit()))
152 .timeoutMs(Optional.ofNullable(consumerTimeoutMs).filter(p -> !p.toString().isEmpty())
153 .orElse(dmaapConsumerConfiguration.timeoutMs()))
154 .consumerGroup(Optional.ofNullable(consumerGroup).filter(isEmpty.negate())
155 .orElse(dmaapConsumerConfiguration.consumerGroup()))
156 .consumerId(Optional.ofNullable(consumerId).filter(isEmpty.negate())
157 .orElse(dmaapConsumerConfiguration.consumerId()))
162 public AaiClientConfiguration getAaiClientConfiguration() {
163 return new ImmutableAaiClientConfiguration.Builder()
164 .aaiHost(Optional.ofNullable(aaiHost).filter(isEmpty.negate()).orElse(aaiClientConfiguration.aaiHost()))
166 Optional.ofNullable(aaiPort).filter(p -> !p.toString().isEmpty())
167 .orElse(aaiClientConfiguration.aaiPort()))
168 .aaiIgnoreSslCertificateErrors(
169 Optional.ofNullable(aaiIgnoreSslCertificateErrors).filter(p -> !p.toString().isEmpty())
170 .orElse(aaiClientConfiguration.aaiIgnoreSslCertificateErrors()))
172 Optional.ofNullable(aaiProtocol).filter(isEmpty.negate()).orElse(aaiClientConfiguration.aaiProtocol()))
174 Optional.ofNullable(aaiUserName).filter(isEmpty.negate()).orElse(aaiClientConfiguration.aaiUserName()))
175 .aaiUserPassword(Optional.ofNullable(aaiUserPassword).filter(isEmpty.negate())
176 .orElse(aaiClientConfiguration.aaiUserPassword()))
177 .aaiBasePath(Optional.ofNullable(aaiBasePath).filter(isEmpty.negate())
178 .orElse(aaiClientConfiguration.aaiBasePath()))
180 Optional.ofNullable(aaiPnfPath).filter(isEmpty.negate()).orElse(aaiClientConfiguration.aaiPnfPath()))
181 .aaiHeaders(aaiClientConfiguration.aaiHeaders())
186 public DmaapPublisherConfiguration getDmaapPublisherConfiguration() {
187 return new ImmutableDmaapPublisherConfiguration.Builder()
189 Optional.ofNullable(producerDmaapContentType).filter(isEmpty.negate())
190 .orElse(dmaapPublisherConfiguration.dmaapContentType()))
192 Optional.ofNullable(producerDmaapHostName).filter(isEmpty.negate())
193 .orElse(dmaapPublisherConfiguration.dmaapHostName()))
195 Optional.ofNullable(producerDmaapPortNumber).filter(p -> !p.toString().isEmpty())
196 .orElse(dmaapPublisherConfiguration.dmaapPortNumber()))
198 Optional.ofNullable(producerDmaapProtocol).filter(isEmpty.negate())
199 .orElse(dmaapPublisherConfiguration.dmaapProtocol()))
201 Optional.ofNullable(producerDmaapTopicName).filter(isEmpty.negate())
202 .orElse(dmaapPublisherConfiguration.dmaapTopicName()))
204 Optional.ofNullable(producerDmaapUserName).filter(isEmpty.negate())
205 .orElse(dmaapPublisherConfiguration.dmaapUserName()))
207 Optional.ofNullable(producerDmaapUserPassword).filter(isEmpty.negate())
208 .orElse(dmaapPublisherConfiguration.dmaapUserPassword()))