[POLICY-52] pdp-d: PolicyEngine junits
[policy/drools-pdp.git] / policy-endpoints / src / main / java / org / onap / policy / drools / event / comm / bus / internal / SingleThreadedUebTopicSource.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * policy-endpoints
4  * ================================================================================
5  * Copyright (C) 2017 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.drools.event.comm.bus.internal;
22
23 import java.util.List;
24
25 import org.onap.policy.drools.event.comm.Topic;
26 import org.onap.policy.drools.event.comm.bus.UebTopicSource;
27
28 /**
29  * This topic source implementation specializes in reading messages
30  * over an UEB Bus topic source and notifying its listeners
31  */
32 public class SingleThreadedUebTopicSource extends SingleThreadedBusTopicSource 
33                                           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, 
53                                                     String apiKey, String apiSecret,
54                                                     String consumerGroup, String consumerInstance, 
55                                                     int fetchTimeout, int fetchLimit, boolean useHttps, boolean allowSelfSignedCerts)
56                         throws IllegalArgumentException {
57                 
58                 super(servers, topic, apiKey, apiSecret, 
59                           consumerGroup, consumerInstance, 
60                           fetchTimeout, fetchLimit, useHttps, allowSelfSignedCerts);
61                 
62                 this.allowSelfSignedCerts = allowSelfSignedCerts;
63                 
64                 this.init();
65         }
66         
67         /**
68          * Initialize the Cambria client
69          */
70         @Override
71         public void init() {
72                 this.consumer =
73                         new BusConsumer.CambriaConsumerWrapper(this.servers, this.topic, 
74                                                                    this.apiKey, this.apiSecret,
75                                                                    this.consumerGroup, this.consumerInstance,
76                                                                    this.fetchTimeout, this.fetchLimit, this.useHttps, this.allowSelfSignedCerts);
77         }
78         
79         /**
80          * {@inheritDoc}
81          */
82         @Override
83         public CommInfrastructure getTopicCommInfrastructure() {
84                 return Topic.CommInfrastructure.UEB;
85         }
86         
87
88         @Override
89         public String toString() {
90                 StringBuilder builder = new StringBuilder();
91                 builder.append("SingleThreadedUebTopicSource [getTopicCommInfrastructure()=")
92                                 .append(getTopicCommInfrastructure()).append(", toString()=").append(super.toString()).append("]");
93                 return builder.toString();
94         }
95
96 }