00e45422adceeb4ee8f74ed256b15d89bb1179ab
[policy/common.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  * policy-endpoints
4  * ================================================================================
5  * Copyright (C) 2017-2018 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
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.policy.common.endpoints.event.comm.bus.internal;
22
23 import java.util.List;
24
25 import org.onap.policy.common.endpoints.event.comm.Topic;
26 import org.onap.policy.common.endpoints.event.comm.bus.UebTopicSource;
27 import org.onap.policy.common.endpoints.event.comm.bus.internal.impl.CambriaConsumerWrapper;
28
29 /**
30  * This topic source implementation specializes in reading messages over an UEB Bus topic source and
31  * notifying its listeners
32  */
33 public class SingleThreadedUebTopicSource extends SingleThreadedBusTopicSource implements UebTopicSource {
34
35     /**
36      * 
37      * @param servers UEB servers
38      * @param topic UEB Topic to be monitored
39      * @param apiKey UEB API Key (optional)
40      * @param apiSecret UEB API Secret (optional)
41      * @param consumerGroup UEB Reader Consumer Group
42      * @param consumerInstance UEB Reader Instance
43      * @param fetchTimeout UEB fetch timeout
44      * @param fetchLimit UEB fetch limit
45      * @param useHttps does topicSource use HTTPS?
46      * @param allowSelfSignedCerts does topicSource allow self-signed certs?
47      * 
48      * @throws IllegalArgumentException An invalid parameter passed in
49      */
50
51
52     public SingleThreadedUebTopicSource(List<String> servers, String topic, String apiKey, String apiSecret,
53             String consumerGroup, String consumerInstance, int fetchTimeout, int fetchLimit, boolean useHttps,
54             boolean allowSelfSignedCerts) {
55
56         super(servers, topic, apiKey, apiSecret, consumerGroup, consumerInstance, fetchTimeout, fetchLimit, useHttps,
57                 allowSelfSignedCerts);
58
59         this.allowSelfSignedCerts = allowSelfSignedCerts;
60
61         this.init();
62     }
63
64     /**
65      * Initialize the Cambria client
66      */
67     @Override
68     public void init() {
69         this.consumer = new CambriaConsumerWrapper(this.servers, this.topic, this.apiKey, this.apiSecret,
70                 this.consumerGroup, this.consumerInstance, this.fetchTimeout, this.fetchLimit, this.useHttps,
71                 this.allowSelfSignedCerts);
72     }
73
74     /**
75      * {@inheritDoc}
76      */
77     @Override
78     public CommInfrastructure getTopicCommInfrastructure() {
79         return Topic.CommInfrastructure.UEB;
80     }
81
82
83     @Override
84     public String toString() {
85         StringBuilder builder = new StringBuilder();
86         builder.append("SingleThreadedUebTopicSource [getTopicCommInfrastructure()=")
87                 .append(getTopicCommInfrastructure()).append(", toString()=").append(super.toString()).append("]");
88         return builder.toString();
89     }
90
91 }