1a815e1a61ecdc78d0847d85dc5f2ee44e68a229
[policy/common.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  * Copyright (C) 2022 Nordix Foundation.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  * ============LICENSE_END=========================================================
17  */
18
19 package org.onap.policy.common.endpoints.event.comm.bus;
20
21 import static org.onap.policy.common.endpoints.event.comm.bus.TopicTestBase.MY_EFFECTIVE_TOPIC;
22 import static org.onap.policy.common.endpoints.event.comm.bus.TopicTestBase.MY_PARTITION;
23 import static org.onap.policy.common.endpoints.properties.PolicyEndPointProperties.PROPERTY_HTTP_HTTPS_SUFFIX;
24 import static org.onap.policy.common.endpoints.properties.PolicyEndPointProperties.PROPERTY_MANAGED_SUFFIX;
25 import static org.onap.policy.common.endpoints.properties.PolicyEndPointProperties.PROPERTY_TOPIC_EFFECTIVE_TOPIC_SUFFIX;
26 import static org.onap.policy.common.endpoints.properties.PolicyEndPointProperties.PROPERTY_TOPIC_SERVERS_SUFFIX;
27 import static org.onap.policy.common.endpoints.properties.PolicyEndPointProperties.PROPERTY_TOPIC_SINK_PARTITION_KEY_SUFFIX;
28
29 import java.util.Arrays;
30 import lombok.Getter;
31 import org.onap.policy.common.endpoints.parameters.TopicParameters;
32
33 public class KafkaTopicPropertyBuilder extends TopicPropertyBuilder {
34
35     public static final String SERVER = "my-server";
36     public static final String TOPIC2 = "my-topic-2";
37
38     @Getter
39     private TopicParameters params = new TopicParameters();
40
41     /**
42      * Constructs the object.
43      *
44      * @param prefix the prefix for the properties to be built
45      */
46     public KafkaTopicPropertyBuilder(String prefix) {
47         super(prefix);
48     }
49
50     /**
51      * Adds a topic and configures it's properties with default values.
52      *
53      * @param topic the topic to be added
54      * @return this builder
55      */
56     public KafkaTopicPropertyBuilder makeTopic(String topic) {
57         addTopic(topic);
58
59         setTopicProperty(PROPERTY_TOPIC_EFFECTIVE_TOPIC_SUFFIX, MY_EFFECTIVE_TOPIC);
60         setTopicProperty(PROPERTY_MANAGED_SUFFIX, "true");
61         setTopicProperty(PROPERTY_HTTP_HTTPS_SUFFIX, "true");
62         setTopicProperty(PROPERTY_TOPIC_SINK_PARTITION_KEY_SUFFIX, MY_PARTITION);
63         setTopicProperty(PROPERTY_TOPIC_SERVERS_SUFFIX, SERVER);
64
65         params.setTopicCommInfrastructure("kafka");
66         params.setTopic(topic);
67         params.setEffectiveTopic(MY_EFFECTIVE_TOPIC);
68         params.setManaged(true);
69         params.setUseHttps(true);
70         params.setPartitionId(MY_PARTITION);
71         params.setServers(Arrays.asList(SERVER));
72
73         return this;
74     }
75 }