1fd50c94e1e27db80f4f57a8967387dda848e0ad
[dcaegen2/collectors/datafile.git] /
1 /*
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
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
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=========================================================
19  */
20
21 package org.onap.dcaegen2.collectors.datafile.configuration;
22
23 import java.util.Optional;
24
25 import java.util.function.Predicate;
26
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;
36
37
38 /**
39  * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/9/18
40  */
41
42 @Component
43 @Configuration
44 public class AppConfig extends DatafileAppConfig {
45
46     private static Predicate<String> isEmpty = String::isEmpty;
47     @Value("${dmaap.dmaapConsumerConfiguration.dmaapHostName:}")
48     public String consumerDmaapHostName;
49
50     @Value("${dmaap.dmaapConsumerConfiguration.dmaapPortNumber:}")
51     public Integer consumerDmaapPortNumber;
52
53     @Value("${dmaap.dmaapConsumerConfiguration.dmaapTopicName:}")
54     public String consumerDmaapTopicName;
55
56     @Value("${dmaap.dmaapConsumerConfiguration.dmaapProtocol:}")
57     public String consumerDmaapProtocol;
58
59     @Value("${dmaap.dmaapConsumerConfiguration.dmaapUserName:}")
60     public String consumerDmaapUserName;
61
62     @Value("${dmaap.dmaapConsumerConfiguration.dmaapUserPassword:}")
63     public String consumerDmaapUserPassword;
64
65     @Value("${dmaap.dmaapConsumerConfiguration.dmaapContentType:}")
66     public String consumerDmaapContentType;
67
68     @Value("${dmaap.dmaapConsumerConfiguration.consumerId:}")
69     public String consumerId;
70
71     @Value("${dmaap.dmaapConsumerConfiguration.consumerGroup:}")
72     public String consumerGroup;
73
74     @Value("${dmaap.dmaapConsumerConfiguration.timeoutMs:}")
75     public Integer consumerTimeoutMs;
76
77     @Value("${dmaap.dmaapConsumerConfiguration.message-limit:}")
78     public Integer consumerMessageLimit;
79
80     @Value("${dmaap.dmaapProducerConfiguration.dmaapHostName:}")
81     public String producerDmaapHostName;
82
83     @Value("${dmaap.dmaapProducerConfiguration.dmaapPortNumber:}")
84     public Integer producerDmaapPortNumber;
85
86     @Value("${dmaap.dmaapProducerConfiguration.dmaapTopicName:}")
87     public String producerDmaapTopicName;
88
89     @Value("${dmaap.dmaapProducerConfiguration.dmaapProtocol:}")
90     public String producerDmaapProtocol;
91
92     @Value("${dmaap.dmaapProducerConfiguration.dmaapUserName:}")
93     public String producerDmaapUserName;
94
95     @Value("${dmaap.dmaapProducerConfiguration.dmaapUserPassword:}")
96     public String producerDmaapUserPassword;
97
98     @Value("${dmaap.dmaapProducerConfiguration.dmaapContentType:}")
99     public String producerDmaapContentType;
100
101     @Value("${aai.aaiClientConfiguration.aaiHost:}")
102     public String aaiHost;
103
104     @Value("${aai.aaiClientConfiguration.aaiHostPortNumber:}")
105     public Integer aaiPort;
106
107     @Value("${aai.aaiClientConfiguration.aaiProtocol:}")
108     public String aaiProtocol;
109
110     @Value("${aai.aaiClientConfiguration.aaiUserName:}")
111     public String aaiUserName;
112
113     @Value("${aai.aaiClientConfiguration.aaiUserPassword:}")
114     public String aaiUserPassword;
115
116     @Value("${aai.aaiClientConfiguration.aaiIgnoreSslCertificateErrors:}")
117     public Boolean aaiIgnoreSslCertificateErrors;
118
119     @Value("${aai.aaiClientConfiguration.aaiBasePath:}")
120     public String aaiBasePath;
121
122     @Value("${aai.aaiClientConfiguration.aaiPnfPath:}")
123     public String aaiPnfPath;
124
125     @Override
126     public DmaapConsumerConfiguration getDmaapConsumerConfiguration() {
127         return new ImmutableDmaapConsumerConfiguration.Builder()
128             .dmaapUserPassword(
129                 Optional.ofNullable(consumerDmaapUserPassword).filter(isEmpty.negate())
130                     .orElse(dmaapConsumerConfiguration.dmaapUserPassword()))
131             .dmaapUserName(
132                 Optional.ofNullable(consumerDmaapUserName).filter(isEmpty.negate())
133                     .orElse(dmaapConsumerConfiguration.dmaapUserName()))
134             .dmaapHostName(
135                 Optional.ofNullable(consumerDmaapHostName).filter(isEmpty.negate())
136                     .orElse(dmaapConsumerConfiguration.dmaapHostName()))
137             .dmaapPortNumber(
138                 Optional.ofNullable(consumerDmaapPortNumber).filter(p -> !p.toString().isEmpty())
139                     .orElse(dmaapConsumerConfiguration.dmaapPortNumber()))
140             .dmaapProtocol(
141                 Optional.ofNullable(consumerDmaapProtocol).filter(isEmpty.negate())
142                     .orElse(dmaapConsumerConfiguration.dmaapProtocol()))
143             .dmaapContentType(
144                 Optional.ofNullable(consumerDmaapContentType).filter(isEmpty.negate())
145                     .orElse(dmaapConsumerConfiguration.dmaapContentType()))
146             .dmaapTopicName(
147                 Optional.ofNullable(consumerDmaapTopicName).filter(isEmpty.negate())
148                     .orElse(dmaapConsumerConfiguration.dmaapTopicName()))
149             .messageLimit(
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()))
158             .build();
159     }
160
161     @Override
162     public AaiClientConfiguration getAaiClientConfiguration() {
163         return new ImmutableAaiClientConfiguration.Builder()
164             .aaiHost(Optional.ofNullable(aaiHost).filter(isEmpty.negate()).orElse(aaiClientConfiguration.aaiHost()))
165             .aaiPort(
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()))
171             .aaiProtocol(
172                 Optional.ofNullable(aaiProtocol).filter(isEmpty.negate()).orElse(aaiClientConfiguration.aaiProtocol()))
173             .aaiUserName(
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()))
179             .aaiPnfPath(
180                 Optional.ofNullable(aaiPnfPath).filter(isEmpty.negate()).orElse(aaiClientConfiguration.aaiPnfPath()))
181             .aaiHeaders(aaiClientConfiguration.aaiHeaders())
182             .build();
183     }
184
185     @Override
186     public DmaapPublisherConfiguration getDmaapPublisherConfiguration() {
187         return new ImmutableDmaapPublisherConfiguration.Builder()
188             .dmaapContentType(
189                 Optional.ofNullable(producerDmaapContentType).filter(isEmpty.negate())
190                     .orElse(dmaapPublisherConfiguration.dmaapContentType()))
191             .dmaapHostName(
192                 Optional.ofNullable(producerDmaapHostName).filter(isEmpty.negate())
193                     .orElse(dmaapPublisherConfiguration.dmaapHostName()))
194             .dmaapPortNumber(
195                 Optional.ofNullable(producerDmaapPortNumber).filter(p -> !p.toString().isEmpty())
196                     .orElse(dmaapPublisherConfiguration.dmaapPortNumber()))
197             .dmaapProtocol(
198                 Optional.ofNullable(producerDmaapProtocol).filter(isEmpty.negate())
199                     .orElse(dmaapPublisherConfiguration.dmaapProtocol()))
200             .dmaapTopicName(
201                 Optional.ofNullable(producerDmaapTopicName).filter(isEmpty.negate())
202                     .orElse(dmaapPublisherConfiguration.dmaapTopicName()))
203             .dmaapUserName(
204                 Optional.ofNullable(producerDmaapUserName).filter(isEmpty.negate())
205                     .orElse(dmaapPublisherConfiguration.dmaapUserName()))
206             .dmaapUserPassword(
207                 Optional.ofNullable(producerDmaapUserPassword).filter(isEmpty.negate())
208                     .orElse(dmaapPublisherConfiguration.dmaapUserPassword()))
209             .build();
210     }
211
212 }