diff options
author | andre.schmid <andre.schmid@est.tech> | 2021-06-21 15:12:57 +0100 |
---|---|---|
committer | andre.schmid <andre.schmid@est.tech> | 2021-06-21 15:18:23 +0100 |
commit | 14a9a365c5aaaa4a34fe23541dc455134056cbdb (patch) | |
tree | 6d39363126b7d384d4da8415904e6cb23da957bb /utils/DmaapPublisher/src/main/java | |
parent | 8f2b611dcb3554717478017597c97746b8aba7f9 (diff) |
Remove the obsolete DmaapPublisher module
The module is not part of the SDC repo build and not being used in the
project. It also does not build in its current state.
Change-Id: Ide1bcde26c2781cba9d0baa3a3da1b9c96ba5144
Issue-ID: SDC-3620
Signed-off-by: André Schmid <andre.schmid@est.tech>
Diffstat (limited to 'utils/DmaapPublisher/src/main/java')
6 files changed, 0 insertions, 507 deletions
diff --git a/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/CliArgs.java b/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/CliArgs.java deleted file mode 100644 index 87fdcdd87a..0000000000 --- a/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/CliArgs.java +++ /dev/null @@ -1,79 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.dmaap; - -import com.google.common.base.MoreObjects; -import org.kohsuke.args4j.Option; - -public class CliArgs { - - @Option(name="yml",aliases = {"-YML","YML","-yml","-YAML","YAML","-yaml"}, usage="mandatory arg. YAML filename", required=true) - private String yamlFilename; - - @Option(name="path",aliases = {"-path","PATH","-PATH"}, usage="mandatory arg. path to the yaml file which contains topic config (publisher data + messages)", required=true) - private String yamlPath; - - @Option(name="cr",aliases = {"CR","-cr","-CR"}, usage="optional arg. concurrent requests", required=false) - private String concurrentRequests; - - @Option(name="notification",aliases = {"NOTIFICATION","-NOTIFICATION","-notification"}, usage="optional load dynamic messages", required=false) - private String notificationData; - - public String getYamlPath() { - return yamlPath; - } - - public String getYamlFilename() { - return yamlFilename; - } - - public void setYamlPath(String yamlPath) { - this.yamlPath = yamlPath; - } - - - public String getConcurrentRequests() { - return concurrentRequests; - } - - public void setConcurrentRequests(String concurrentRequests) { - this.concurrentRequests = concurrentRequests; - } - - public String getNotificationData() { - return notificationData; - } - - - public void setYamlFilename(String yamlFilename) { - this.yamlFilename = yamlFilename; - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("yamlPath", yamlPath) - .add("concurrentRequests", concurrentRequests) - .toString(); - } - - -} diff --git a/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/DmaapPublishTool.java b/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/DmaapPublishTool.java deleted file mode 100644 index 08411c6b69..0000000000 --- a/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/DmaapPublishTool.java +++ /dev/null @@ -1,109 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.dmaap; - -import com.att.nsa.mr.client.MRBatchingPublisher; -import com.att.nsa.mr.client.MRClientFactory; -import com.att.nsa.mr.client.MRPublisher.message; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.yaml.snakeyaml.Yaml; - -import java.util.concurrent.TimeUnit; - -public class DmaapPublishTool { - - private static final Logger logger = LoggerFactory.getLogger(DmaapPublishTool.class); - final private TopicConfig topicConfig; - - public DmaapPublishTool(String yamlPath) throws FileNotFoundException { - topicConfig = loadTopicConfig(yamlPath); - System.out.println("yaml file loaded."); - } - public DmaapPublishTool(String yamlPath , String notifications) throws FileNotFoundException { - topicConfig = loadTopicConfig(yamlPath); - if (StringUtils.isNotBlank(notifications) ) - topicConfig.add( notifications ); - System.out.println("yaml file loaded."); - } - - public void addNotifications(Collection<String> notification){ - topicConfig.addAll( notification ); - } - - //safe stream doesn't throw null pointer exception - public <T> Collection<T> safe(Collection<T> obj){ - return Optional.ofNullable(obj).orElse(Collections.emptySet()); - } - public <T> List<T> safe(List<T> obj){ - return Optional.ofNullable(obj).orElse(Collections.emptyList()); - } - - public void publish(String path) throws IOException, InterruptedException { - MRBatchingPublisher pub = createPublisher( topicConfig, path ); - System.out.println( "pending message count -> "+pub.getPendingMessageCount() ); - List<String> list = this.topicConfig.getIncomingTopicMessages(); - for(String msg : safe(list) ){ - publishOne( pub , msg ); - } - closePublisher(pub); - } - - private MRBatchingPublisher createPublisher(TopicConfig topicConfig,String path) throws IOException { - MRBatchingPublisher publisher = MRClientFactory.createBatchingPublisher(Objects.requireNonNull(Util.toPath(path,topicConfig.getPublisherPropertiesFilePath()))); - System.out.println("publisher created."); - return publisher; - } - - private TopicConfig loadTopicConfig(String yamlPath) throws FileNotFoundException { - File yamlFile = new File(Objects.requireNonNull(yamlPath)); - InputStream input = new FileInputStream(yamlFile); - Yaml yamlHelper = new Yaml(); - return yamlHelper.loadAs(input, TopicConfig.class); - } - - private void publishOne(MRBatchingPublisher pub, String msg) throws IOException, InterruptedException { - System.out.println("sending: " + msg); - pub.send(msg); - System.out.println("message sent."); - } - - private void closePublisher(MRBatchingPublisher pub) throws IOException, InterruptedException { - System.out.println("closing publisher..."); - // close the publisher to make sure everything's sent before exiting. The batching - // publisher interface allows the app to get the set of unsent messages. It could - // write them to disk, for example, to try to send them later. - final List<message> stuck = pub.close(20, TimeUnit.SECONDS); - if(!stuck.isEmpty()) - { - final String errMsg = stuck.size() + " messages unsent"; - logger.error(errMsg); - System.err.println(errMsg); - } - else - { - final String successMsg = "Clean exit; all messages sent."; - logger.info(successMsg); - System.out.println(successMsg); - } - } -} diff --git a/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/DmaapPublisher.java b/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/DmaapPublisher.java deleted file mode 100644 index 8bf39e56a1..0000000000 --- a/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/DmaapPublisher.java +++ /dev/null @@ -1,169 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.dmaap; - -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.math.NumberUtils; -import org.kohsuke.args4j.CmdLineException; -import org.kohsuke.args4j.CmdLineParser; -import org.kohsuke.args4j.OptionHandlerFilter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.concurrent.ConcurrentLinkedDeque; -import java.util.concurrent.CopyOnWriteArrayList; -import java.util.function.Consumer; -import java.util.stream.IntStream; - -import static org.openecomp.sdc.dmaap.Util.*; - -public class DmaapPublisher { - private static final Logger logger = LoggerFactory.getLogger(DmaapPublisher.class); - private static RequestManager requestManager ; - private static final ConcurrentLinkedDeque notificationBuffer = new ConcurrentLinkedDeque(); - - - private static final List<Long> registeredTasks = new CopyOnWriteArrayList<>(); - private DmaapPublisher() {} - - public static void add(String notification){ - notificationBuffer.add( notification ); - } - public static void addAll(List<String> notifications){ - notificationBuffer.addAll( notifications ); - } - public static void main(String[] args) { - doPublish(args); - } - - private static void doPublish( String[] args ) { - CliArgs cliArgs = new CliArgs(); - CmdLineParser parser = new CmdLineParser(cliArgs); - - try { - // parse the arguments. - parser.parseArgument( args ); - doPublish( cliArgs ); - } - catch(CmdLineException e) { - logger.error("#doPublish - failed to parse arguments.", e); - printUsage(parser, e); - return; - } - } - - public static void doPublish( CliArgs cliArgs ){ - try { - // parse the arguments. - DmaapPublishTool tool = new DmaapPublishTool( toPath(cliArgs.getYamlPath() , cliArgs.getYamlFilename()) , cliArgs.getNotificationData() ); - Collection<String> notifications = new ArrayList<String>( notificationBuffer ); - tool.addNotifications( notifications ); - notificationBuffer.removeAll(notifications); - Integer concurrentRequestCount = 1; - if ( StringUtils.isNotBlank( cliArgs.getConcurrentRequests() ) ) - concurrentRequestCount = Integer.parseInt( cliArgs.getConcurrentRequests() ); - requestManager = new RequestManager( concurrentRequestCount ); - - IntStream.range(0,concurrentRequestCount).forEach( it -> { - //region - report upon finish mechanishem - long ticket = System.nanoTime(); - registeredTasks.add( ticket ); - Consumer callback = ( uniqueTicket ) -> { - synchronized ( registeredTasks ){ - registeredTasks.remove( (long)uniqueTicket ); - registeredTasks.notifyAll(); - }}; - - RunnableReporter task = new RunnableReporter( ticket , tool , cliArgs , callback ); - requestManager.getExecutor().execute( task ) ; - }); - } - catch(NumberFormatException e) { - logger.error("#doPublish - failed to parse argument CR.", e); - return; - } - catch(Exception e) { - logger.error("#doPublish - failed to publish.", e); - } - } - - public static class RunnableReporter implements Runnable{ - - final private long ticket ; - final private DmaapPublishTool tool; - final private CliArgs cliArgs; - final Consumer reporter; - - public RunnableReporter(final long ticket , final DmaapPublishTool tool , final CliArgs args , Consumer reporter){ - this.ticket = ticket ; - this.tool = tool ; - this.cliArgs = args ; - this.reporter = reporter; - } - @Override - public void run() { - try { - tool.publish( cliArgs.getYamlPath() ); - reporter.accept(ticket); - }catch(IOException e){ - logger.error("#doPublish - failed to publish.", e); - }catch(InterruptedException e){ - logger.error("#doPublish - cannot complete publish, thread interuppted.", e); - Thread.currentThread().interrupt(); - } - } - } - - - public static List<Long> getRegisteredTasks() { - return registeredTasks; - } - - public static void preparePublish( String path, String filename , String concurrentRequests ){ - - CliArgs cliArgs = new CliArgs(); - if ( StringUtils.isNotBlank( filename ) ) - cliArgs.setYamlFilename( filename ); - if ( StringUtils.isNotBlank( path ) ) - cliArgs.setYamlPath( path ); - if ( NumberUtils.isCreatable( concurrentRequests ) ) - cliArgs.setConcurrentRequests( concurrentRequests ); - - doPublish( cliArgs ); - - } - - - private static void printUsage(CmdLineParser parser, CmdLineException e) { - System.err.println( e.getMessage() ); - System.err.println("java DmaapPublisher [options...] arguments..."); - // print the list of available options - parser.printUsage(System.err); - System.err.println(); - // print option sample. This is useful some time - System.err.println(" Example: java DmaapPublisher " + parser.printExample(OptionHandlerFilter.ALL)); - - } -} diff --git a/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/RequestManager.java b/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/RequestManager.java deleted file mode 100644 index c30a397372..0000000000 --- a/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/RequestManager.java +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.dmaap; - -import java.util.concurrent.Executor; -import java.util.concurrent.Executors; - -public class RequestManager { - - private Executor executor; - - public RequestManager(int poolSize ){ - int sz = Math.max( poolSize , 1); - int recommendedMaxSz = Runtime.getRuntime().availableProcessors() * 2; - executor = Executors.newFixedThreadPool( Math.min( sz , recommendedMaxSz ) ); - } - - public Executor getExecutor() { - return executor; - } -} diff --git a/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/TopicConfig.java b/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/TopicConfig.java deleted file mode 100644 index c76a0f57b0..0000000000 --- a/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/TopicConfig.java +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.dmaap; - -import com.google.common.base.MoreObjects; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -public class TopicConfig { - - private String publisherPropertiesFilePath; - private String[] topicMessages; //messages from file - private final List<String> incomingTopicMessages = Collections.synchronizedList( new ArrayList<String>() ); //incoming messages from network stream|Main - - public String getPublisherPropertiesFilePath() { - return publisherPropertiesFilePath; - } - public void setPublisherPropertiesFilePath(String publisherPropertiesFilePath) { - this.publisherPropertiesFilePath = publisherPropertiesFilePath; - } - - public List<String> getIncomingTopicMessages() { - return incomingTopicMessages; - } - public String[] getTopicMessages() { - return topicMessages; - } - //add incoming message - public TopicConfig add( String notifications ){ - incomingTopicMessages.add( notifications); - return this; - } - - public TopicConfig addAll( Collection<String> notifications ){ - incomingTopicMessages.addAll( notifications ); - return this; - } - - public void setTopicMessages(String[] topicMessages) { - this.topicMessages = topicMessages; - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("publisherPropertiesFilePath", publisherPropertiesFilePath) - .add("topicMessages", topicMessages) - .toString(); - } - -} diff --git a/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/Util.java b/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/Util.java deleted file mode 100644 index cbc6198172..0000000000 --- a/utils/DmaapPublisher/src/main/java/org/openecomp/sdc/dmaap/Util.java +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.dmaap; - -import org.apache.commons.lang3.StringUtils; - -import java.nio.file.InvalidPathException; - -public class Util { - - public static String toPath(String path , String filename) throws InvalidPathException{ - if (StringUtils.isNotBlank(path) ){ - if (path.trim().endsWith("/") || path.trim().endsWith("/")){ - return path+(filename!=null ? filename : ""); - } - return path+"/"+(filename!=null ? filename : ""); - - } - throw new InvalidPathException("wrong path configuration cannot find path -> ",path); - } -} |