2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017-2020 AT&T Intellectual Property. All rights reserved.
6 * Modified Copyright (C) 2018 Samsung Electronics Co., Ltd.
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.policy.common.endpoints.event.comm.bus.internal;
25 import org.onap.policy.common.endpoints.event.comm.Topic;
26 import org.onap.policy.common.endpoints.event.comm.bus.DmaapTopicSink;
27 import org.slf4j.Logger;
28 import org.slf4j.LoggerFactory;
31 * This implementation publishes events for the associated DMAAP topic, inline with the calling
34 public class InlineDmaapTopicSink extends InlineBusTopicSink implements DmaapTopicSink {
36 protected static Logger logger = LoggerFactory.getLogger(InlineDmaapTopicSink.class);
38 protected final String userName;
39 protected final String password;
41 protected String environment = null;
42 protected String aftEnvironment = null;
43 protected String partner = null;
44 protected String latitude = null;
45 protected String longitude = null;
47 protected Map<String, String> additionalProps = null;
50 * BusTopicParams contains the below mentioned attributes.
51 * servers DMaaP servers
52 * topic DMaaP Topic to be monitored
53 * apiKey DMaaP API Key (optional)
54 * apiSecret DMaaP API Secret (optional)
55 * environment DME2 Environment
56 * aftEnvironment DME2 AFT Environment
57 * partner DME2 Partner
58 * latitude DME2 Latitude
59 * longitude DME2 Longitude
60 * additionalProps Additional properties to pass to DME2
61 * useHttps does connection use HTTPS?
62 * allowTracing is tracing allowed?
63 * allowSelfSignedCerts are self-signed certificates allow
64 * @param busTopicParams Contains the above mentioned parameters
65 * @throws IllegalArgumentException An invalid parameter passed in
67 public InlineDmaapTopicSink(BusTopicParams busTopicParams) {
69 super(busTopicParams);
71 this.userName = busTopicParams.getUserName();
72 this.password = busTopicParams.getPassword();
74 this.environment = busTopicParams.getEnvironment();
75 this.aftEnvironment = busTopicParams.getAftEnvironment();
76 this.partner = busTopicParams.getPartner();
78 this.latitude = busTopicParams.getLatitude();
79 this.longitude = busTopicParams.getLongitude();
81 this.additionalProps = busTopicParams.getAdditionalProps();
87 if (allNullOrEmpty(this.environment, this.aftEnvironment, this.latitude, this.longitude, this.partner)) {
88 this.publisher = new BusPublisher.CambriaPublisherWrapper(BusTopicParams.builder()
89 .servers(this.servers)
90 .topic(this.effectiveTopic)
92 .apiSecret(this.apiSecret)
93 .userName(this.userName)
94 .password(this.password)
95 .useHttps(this.useHttps)
96 .allowTracing(this.allowTracing)
97 .allowSelfSignedCerts(this.allowSelfSignedCerts)
100 this.publisher = new BusPublisher.DmaapDmePublisherWrapper(BusTopicParams.builder()
101 .servers(this.servers)
102 .topic(this.effectiveTopic)
103 .userName(this.userName)
104 .password(this.password)
105 .environment(this.environment)
106 .aftEnvironment(this.aftEnvironment)
107 .partner(this.partner)
108 .latitude(this.latitude)
109 .longitude(this.longitude)
110 .additionalProps(this.additionalProps)
111 .useHttps(this.useHttps)
112 .allowTracing(this.allowTracing)
116 logger.info("{}: DMAAP SINK created", this);
120 public CommInfrastructure getTopicCommInfrastructure() {
121 return Topic.CommInfrastructure.DMAAP;
126 public String toString() {
127 return "InlineDmaapTopicSink [userName=" + userName + ", password=" + password
128 + ", getTopicCommInfrastructure()=" + getTopicCommInfrastructure() + ", toString()=" + super.toString()