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
9 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
19 package org.onap.policy.common.endpoints.event.comm.bus;
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;
29 import java.util.Arrays;
31 import org.onap.policy.common.endpoints.parameters.TopicParameters;
33 public class KafkaTopicPropertyBuilder extends TopicPropertyBuilder {
35 public static final String SERVER = "localhost:9092";
36 public static final String TOPIC2 = "my-topic-2";
39 private TopicParameters params = new TopicParameters();
42 * Constructs the object.
44 * @param prefix the prefix for the properties to be built
46 public KafkaTopicPropertyBuilder(String prefix) {
51 * Adds a topic and configures it's properties with default values.
53 * @param topic the topic to be added
54 * @return this builder
56 public KafkaTopicPropertyBuilder makeTopic(String topic) {
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);
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));