@@ -0,0 +1,2114 @@
+/*%0A * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.%0A *%0A * WSO2 Inc. licenses this file to you under the Apache License,%0A * Version 2.0 (the %22License%22); you may not use this file except%0A * in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *     http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing,%0A * software distributed under the License is distributed on an%0A * %22AS IS%22 BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY%0A * KIND, either express or implied. See the License for the%0A * specific language governing permissions and limitations%0A * under the License.%0A */%0A%0Apackage org.wso2.carbon.sp.jobmanager.core.appCreator;%0A%0Aimport kafka.admin.AdminUtils;%0Aimport kafka.admin.RackAwareMode;%0Aimport kafka.utils.ZkUtils;%0Aimport java.util.Properties;%0A%0A/**%0A * Helper class to use Kafka.%0A * %3Cp%3E%0A * Workaround to delay loading of %7B@link RackAwareMode.Enforced$%7D enums at server startup.%0A */%0Aclass SafeKafkaInvoker %7B%0A%0A    /**%0A     * Invokes %7B@link AdminUtils#createTopic(ZkUtils, String, int, int, Properties, RackAwareMode)%7D.%0A     *%0A     * @param bootstrapServerURLs bootstrap server URLs%0A     * @param topicConfig         topic configuration%0A     * @param topic               topic%0A     * @param partitions          partitions%0A     */%0A    public void createKafkaTopic(String%5B%5D bootstrapServerURLs, ZkUtils zkUtils, Properties topicConfig,%0A                                        String topic, Integer partitions) %7B%0A        AdminUtils.createTopic(zkUtils, topic, partitions, bootstrapServerURLs.length,%0A                topicConfig, RackAwareMode.Enforced$.MODULE$);%0A    %7D%0A%0A    /**%0A     * Invokes %7B@link AdminUtils#addPartitions(ZkUtils, String, int, String, boolean, RackAwareMode)%7D.%0A     *%0A     * @param zkUtils    zkUtils%0A     * @param topic      topic%0A     * @param partitions partitions%0A     */%0A    public void addKafkaPartition(ZkUtils zkUtils, String topic, Integer partitions) %7B%0A        AdminUtils.addPartitions(zkUtils, topic, partitions, %22%22, true,%0A                RackAwareMode.Enforced$.MODULE$);%0A    %7D%0A%7D%0A

create SafeKafkaInvoker class