2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights
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.ccsdk.sli.northbound.uebclient;
25 import java.io.FileInputStream;
26 import java.io.FileNotFoundException;
27 import java.io.IOException;
28 import java.util.LinkedList;
29 import java.util.List;
30 import java.util.Properties;
32 import org.openecomp.sdc.api.consumer.IConfiguration;
33 import org.openecomp.sdc.utils.ArtifactTypeEnum;
34 import org.slf4j.Logger;
35 import org.slf4j.LoggerFactory;
37 public class SdncUebConfiguration implements IConfiguration{
39 private static final String SDNC_CONFIG_DIR = "SDNC_CONFIG_DIR";
40 private static final Logger LOG = LoggerFactory
41 .getLogger(SdncUebConfiguration.class);
43 private String asdcAddress = null;
44 private String consumerGroup = null;
45 private String consumerID = null;
46 private String environmentName = null;
47 private String password = null;
48 private int pollingInterval = 30;
49 private int pollingTimeout = 15;
50 private List<String> relevantArtifactTypes = null;
51 private String user = null;
53 private String sdncUser = null;
54 private String sdncPasswd = null;
55 private String asdcApiBaseUrl = null;
56 private String asdcApiNamespace = null;
58 private SdncArtifactMap artifactMap = SdncArtifactMap.getInstance();
60 public String getAsdcApiNamespace() {
61 return asdcApiNamespace;
64 private String incomingDir = null;
66 private String archiveDir = null;
68 private String overrideFile = null;
70 private boolean activateServerTLSAuth;
71 private String keyStorePassword;
72 private String keyStorePath;
74 private String xsltPathList;
76 public String getXsltPathList() {
80 public String getOverrideFile() {
84 public SdncUebConfiguration() {
85 String propDir = System.getenv(SDNC_CONFIG_DIR);
86 if (propDir == null) {
88 propDir = "/opt/sdnc/data/properties";
92 } catch (Exception e) {
93 LOG.error("Cannot initialize SdncUebConfiguration", e);
97 public SdncUebConfiguration(String propDir) {
100 } catch (Exception e) {
101 LOG.error("Cannot initialize SdncUebConfiguration", e);
106 public void init(String propDir) throws IOException {
110 propPath = propDir + "/ueb-listener.properties";
111 File propFile = new File(propPath);
114 if (!propFile.exists()) {
116 throw new FileNotFoundException(
117 "Missing configuration properties file : "
121 Properties props = new Properties();
122 props.load(new FileInputStream(propFile));
124 asdcAddress = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.asdc-address");
125 consumerGroup = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.consumer-group");
126 consumerID = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.consumer-id");
127 environmentName = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.environment-name");
128 password = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.password");
129 user = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.user");
131 sdncUser = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.sdnc-user");
132 sdncPasswd = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.sdnc-passwd");
133 asdcApiBaseUrl = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.asdc-api-base-url");
134 asdcApiNamespace = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.asdc-api-namespace");
136 incomingDir = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.spool.incoming");
137 archiveDir = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.spool.archive");
138 overrideFile = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.override-file");
140 String curval = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.polling-interval");
141 if ((curval != null) && (curval.length() > 0)) {
143 pollingInterval = Integer.parseInt(curval);
144 } catch (Exception e) {
145 LOG.warn("Illegal value for org.onap.ccsdk.sli.northbound.uebclient.polling-interval ({}) ", curval, e);
149 curval = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.polling-timeout");
150 if ((curval != null) && (curval.length() > 0)) {
152 pollingTimeout = Integer.parseInt(curval);
153 } catch (Exception e) {
154 LOG.warn("Illegal value for org.onap.ccsdk.sli.northbound.uebclient.polling-timeout ({}) ", curval, e);
158 curval = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.relevant-artifact-types");
159 if ((curval != null) && (curval.length() > 0)) {
160 String[] artifactTypes = curval.split(",");
162 relevantArtifactTypes = new LinkedList<>();
164 for (String artifactType : artifactTypes) {
166 if (ArtifactTypeEnum.valueOf(artifactType) != null) {
167 relevantArtifactTypes.add(artifactType);
169 LOG.warn("Skipping unrecognized artifact type {}", artifactType);
171 } catch (Exception e) {
173 LOG.warn("Caught exception validating artifact type {}", artifactType, e);
180 curval = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.activate-server-tls-auth", "false");
181 activateServerTLSAuth = "true".equalsIgnoreCase(curval);
182 keyStorePath = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.keystore-path");
183 keyStorePassword = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.keystore-password");
184 xsltPathList = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.xslt-path-list");
187 String artifactMapFile = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.artifact-map");
188 if (artifactMapFile != null) {
189 artifactMap.load(artifactMapFile);
195 public String getAsdcAddress() {
200 public String getConsumerGroup() {
201 return consumerGroup;
205 public String getConsumerID() {
210 public String getEnvironmentName() {
211 return environmentName;
215 public String getPassword() {
220 public int getPollingInterval() {
221 return pollingInterval;
225 public int getPollingTimeout() {
226 return pollingTimeout;
230 public List<String> getRelevantArtifactTypes() {
231 return relevantArtifactTypes;
235 public String getUser() {
240 public String getSdncUser() {
244 public String getSdncPasswd() {
248 public String getAsdcApiBaseUrl() {
249 return asdcApiBaseUrl;
253 public boolean activateServerTLSAuth() {
254 return activateServerTLSAuth;
258 public String getKeyStorePassword() {
259 return keyStorePassword;
263 public String getKeyStorePath() {
267 public String getIncomingDir() {
271 public String getArchiveDir() {
275 public int getMaxPasses() {
276 return artifactMap.getNumPasses();
279 public SdncArtifactMap.SdncArtifactType getMapping(String tag) {
280 return artifactMap.getMapping(tag);
284 public boolean isFilterInEmptyResources() {
285 // TODO Auto-generated method stub