diff options
Diffstat (limited to 'src/test/java/org/onap/dmaap/mr/test/clients')
17 files changed, 860 insertions, 233 deletions
diff --git a/src/test/java/org/onap/dmaap/mr/test/clients/ConsolePublisher.java b/src/test/java/org/onap/dmaap/mr/test/clients/ConsolePublisher.java new file mode 100644 index 0000000..503af01 --- /dev/null +++ b/src/test/java/org/onap/dmaap/mr/test/clients/ConsolePublisher.java @@ -0,0 +1,90 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ + * 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========================================================= + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * + *******************************************************************************/ + +package org.onap.dmaap.mr.test.clients; + +import org.onap.dmaap.mr.client.MRBatchingPublisher; +import org.onap.dmaap.mr.client.MRClientFactory; +import org.onap.dmaap.mr.client.MRPublisher.Message; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +/** + * A simple publisher that reads from std in, sending each line as a message. + * + * @author author + */ +public class ConsolePublisher { + + private static final Logger logger = LoggerFactory.getLogger(ConsolePublisher.class); + + private ConsolePublisher() { + } + + public static void main(String[] args) throws IOException //throws IOException, InterruptedException + { + // read the hosts(s) from the command line + final String hosts = args.length > 0 ? args[0] : "mr1.onap.com,mr2.onap.com,mr3.onap.com"; + + // read the topic name from the command line + final String topic = args.length > 1 ? args[1] : "TEST-TOPIC"; + + // read the topic name from the command line + final String partition = args.length > 2 ? args[2] : UUID.randomUUID().toString(); + + // set up some batch limits and the compression flag + final int maxBatchSize = 100; + final long maxAgeMs = 250; + final boolean withGzip = false; + + // create our publisher + final MRBatchingPublisher pub = MRClientFactory.createBatchingPublisher(hosts, topic, maxBatchSize, maxAgeMs, withGzip); + + final BufferedReader cin = new BufferedReader(new InputStreamReader(System.in)); + try { + String line = null; + while ((line = cin.readLine()) != null) { + pub.send(partition, line); + } + } finally { + List<Message> leftovers = null; + try { + leftovers = pub.close(10, TimeUnit.SECONDS); + } catch (InterruptedException e) { + logger.error("Send on close interrupted."); + Thread.currentThread().interrupt(); + } + for (Message m : leftovers) { + logger.error("Unsent message: " + m.fMsg); + } + } + } +} diff --git a/src/test/java/org/onap/dmaap/mr/test/clients/ConsolePublisherTest.java b/src/test/java/org/onap/dmaap/mr/test/clients/ConsolePublisherTest.java index be0574a..41039d8 100644 --- a/src/test/java/org/onap/dmaap/mr/test/clients/ConsolePublisherTest.java +++ b/src/test/java/org/onap/dmaap/mr/test/clients/ConsolePublisherTest.java @@ -4,12 +4,14 @@ * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ * 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. @@ -20,35 +22,35 @@ package org.onap.dmaap.mr.test.clients; -import static org.junit.Assert.assertTrue; - import org.junit.After; import org.junit.Before; import org.junit.Test; +import static org.junit.Assert.assertTrue; + public class ConsolePublisherTest { - @Before - public void setUp() throws Exception { + @Before + public void setUp() throws Exception { - } + } - @After - public void tearDown() throws Exception { + @After + public void tearDown() throws Exception { - } + } - @Test - public void testMain() { + @Test + public void testMain() { - try { - ConsolePublisher.main(null); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - assertTrue(true); + try { + ConsolePublisher.main(null); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + assertTrue(true); - } + } } diff --git a/src/test/java/org/onap/dmaap/mr/test/clients/JUnitTestSuite.java b/src/test/java/org/onap/dmaap/mr/test/clients/JUnitTestSuite.java index a0c81a8..8152972 100644 --- a/src/test/java/org/onap/dmaap/mr/test/clients/JUnitTestSuite.java +++ b/src/test/java/org/onap/dmaap/mr/test/clients/JUnitTestSuite.java @@ -4,12 +4,14 @@ * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ * 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. @@ -21,7 +23,6 @@ package org.onap.dmaap.mr.test.clients; import junit.framework.TestSuite; - import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; @@ -29,19 +30,19 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @RunWith(Suite.class) -@SuiteClasses({ SimpleExamplePublisherTest.class, ProtocolTypeConstantsTest.class, - SampleConsumerTest.class, SamplePublisherTest.class, SimpleExampleConsumerTest.class, ConsolePublisherTest.class, - SimpleExamplePublisherWithResponseTest.class, SimpleExampleConsumerWithReturnResponseTest.class,}) +@SuiteClasses({SimpleExamplePublisherTest.class, ProtocolTypeConstantsTest.class, + SampleConsumerTest.class, SamplePublisherTest.class, SimpleExampleConsumerTest.class, ConsolePublisherTest.class, + SimpleExamplePublisherWithResponseTest.class, SimpleExampleConsumerWithReturnResponseTest.class,}) public class JUnitTestSuite { - private static final Logger LOGGER = LoggerFactory.getLogger(JUnitTestSuite.class); + private static final Logger logger = LoggerFactory.getLogger(JUnitTestSuite.class); + + public static void main(String[] args) { + logger.info("Running the test suite"); - public static void main(String[] args) { - LOGGER.info("Running the test suite"); - - TestSuite tstSuite = new TestSuite(); - LOGGER.info("Total Test Counts " + tstSuite.countTestCases()); - } + TestSuite tstSuite = new TestSuite(); + logger.info("Total Test Counts " + tstSuite.countTestCases()); + } } diff --git a/src/test/java/org/onap/dmaap/mr/test/clients/ProtocolTypeConstantsTest.java b/src/test/java/org/onap/dmaap/mr/test/clients/ProtocolTypeConstantsTest.java index 573be98..1dd8381 100644 --- a/src/test/java/org/onap/dmaap/mr/test/clients/ProtocolTypeConstantsTest.java +++ b/src/test/java/org/onap/dmaap/mr/test/clients/ProtocolTypeConstantsTest.java @@ -4,12 +4,14 @@ * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ * 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. @@ -20,38 +22,39 @@ package org.onap.dmaap.mr.test.clients; -import static org.junit.Assert.assertTrue; - import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.onap.dmaap.mr.client.ProtocolType; + +import static org.junit.Assert.assertTrue; public class ProtocolTypeConstantsTest { - private ProtocolTypeConstants constants = null; + private ProtocolType constants = null; + + @Before + public void setUp() throws Exception { + // constants = new ProtocolTypeConstants(); - @Before - public void setUp() throws Exception { - // constants = new ProtocolTypeConstants(); + } - } + @After + public void tearDown() throws Exception { - @After - public void tearDown() throws Exception { + } - } + @Test + public void testGetValue() { - @Test - public void testGetValue() { + try { + constants.getValue(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + assertTrue(true); - try { - constants.getValue(); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - assertTrue(true); + } - } - } diff --git a/src/test/java/org/onap/dmaap/mr/test/clients/SampleConsumer.java b/src/test/java/org/onap/dmaap/mr/test/clients/SampleConsumer.java new file mode 100644 index 0000000..215ddda --- /dev/null +++ b/src/test/java/org/onap/dmaap/mr/test/clients/SampleConsumer.java @@ -0,0 +1,81 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ + * 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========================================================= + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * + *******************************************************************************/ +package org.onap.dmaap.mr.test.clients; + +import org.onap.dmaap.mr.client.MRClientFactory; +import org.onap.dmaap.mr.client.MRConsumer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.LinkedList; + +public class SampleConsumer { + private SampleConsumer() { + } + + public static void main(String[] args) { + final Logger logger = LoggerFactory.getLogger(SampleConsumer.class); + + + logger.info("Sample Consumer Class executing"); + final String topic = "org.onap.dmaap.mr.testingTopic"; + final String url = (args.length > 1 ? args[1] : "localhost:8181"); + final String group = (args.length > 2 ? args[2] : "grp"); + + final String id = (args.length > 3 ? args[3] : "1"); + + long count = 0; + long nextReport = 5000; + + final long startMs = System.currentTimeMillis(); + + final LinkedList<String> urlList = new LinkedList<>(); + for (String u : url.split(",")) { + urlList.add(u); + } + + final MRConsumer cc = MRClientFactory.createConsumer(urlList, topic, group, id, 10 * 1000, 1000, null, "CG0TXc2Aa3v8LfBk", "pj2rhxJWKP23pgy8ahMnjH88"); + try { + while (true) { + for (String msg : cc.fetch()) { + logger.info("" + (++count) + ": " + msg); + } + + if (count > nextReport) { + nextReport += 5000; + + final long endMs = System.currentTimeMillis(); + final long elapsedMs = endMs - startMs; + final double elapsedSec = elapsedMs / 1000.0; + final double eps = count / elapsedSec; + logger.info("Consumed " + count + " in " + elapsedSec + "; " + eps + " eps"); + } + logger.info("" + (++count) + ": consumed message"); + } + } catch (Exception x) { + logger.error(x.getClass().getName() + ": " + x.getMessage()); + throw new IllegalArgumentException(x); + } + } +} diff --git a/src/test/java/org/onap/dmaap/mr/test/clients/SampleConsumerTest.java b/src/test/java/org/onap/dmaap/mr/test/clients/SampleConsumerTest.java index 8d359f4..1c95f1d 100644 --- a/src/test/java/org/onap/dmaap/mr/test/clients/SampleConsumerTest.java +++ b/src/test/java/org/onap/dmaap/mr/test/clients/SampleConsumerTest.java @@ -4,12 +4,14 @@ * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ * 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. @@ -20,34 +22,34 @@ package org.onap.dmaap.mr.test.clients; -import static org.junit.Assert.assertTrue; - import org.junit.After; import org.junit.Before; import org.junit.Test; +import static org.junit.Assert.assertTrue; + public class SampleConsumerTest { - @Before - public void setUp() throws Exception { + @Before + public void setUp() throws Exception { - } + } - @After - public void tearDown() throws Exception { + @After + public void tearDown() throws Exception { - } + } - @Test - public void testMain() { + @Test + public void testMain() { - try { - SampleConsumer.main( new String[0]); - } catch (Exception e) { - assertTrue(true); - } - assertTrue(true); + try { + SampleConsumer.main(new String[0]); + } catch (Exception e) { + assertTrue(true); + } + assertTrue(true); - } + } } diff --git a/src/test/java/org/onap/dmaap/mr/test/clients/SamplePublisher.java b/src/test/java/org/onap/dmaap/mr/test/clients/SamplePublisher.java new file mode 100644 index 0000000..0c80194 --- /dev/null +++ b/src/test/java/org/onap/dmaap/mr/test/clients/SamplePublisher.java @@ -0,0 +1,82 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ + * 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========================================================= + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * + *******************************************************************************/ + +package org.onap.dmaap.mr.test.clients; + +import org.json.JSONObject; +import org.onap.dmaap.mr.client.MRBatchingPublisher; +import org.onap.dmaap.mr.client.MRClientBuilders.PublisherBuilder; +import org.onap.dmaap.mr.client.MRPublisher.Message; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.util.List; +import java.util.concurrent.TimeUnit; + +public class SamplePublisher { + public static void main(String[] args) throws IOException, InterruptedException { + final Logger logger = LoggerFactory.getLogger(SampleConsumer.class); + // read the hosts(s) from the command line + final String hosts = (args.length > 0 ? args[0] : "localhost:8181"); + + // read the topic name from the command line + + final String topic = (args.length > 1 ? args[1] : "org.onap.dmaap.mr.testingTopic"); + + // set up some batch limits and the compression flag + final int maxBatchSize = 100; + final int maxAgeMs = 250; + final boolean withGzip = false; + + // create our publisher + + final MRBatchingPublisher pub = new PublisherBuilder(). + usingHosts(hosts). + onTopic(topic).limitBatch(maxBatchSize, maxAgeMs). + authenticatedBy("CG0TXc2Aa3v8LfBk", "pj2rhxJWKP23pgy8ahMnjH88"). + build(); + // publish some messages + final JSONObject msg1 = new JSONObject(); + msg1.put("name", "tttttttttttttttt"); + msg1.put("greeting", "ooooooooooooooooo"); + pub.send("MyPartitionKey", msg1.toString()); + + final JSONObject msg2 = new JSONObject(); + msg2.put("now", System.currentTimeMillis()); + pub.send("MyOtherPartitionKey", msg2.toString()); + + // ... + + // 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()) { + logger.warn(stuck.size() + " messages unsent"); + } else { + logger.info("Clean exit; all messages sent."); + } + } +} diff --git a/src/test/java/org/onap/dmaap/mr/test/clients/SamplePublisherTest.java b/src/test/java/org/onap/dmaap/mr/test/clients/SamplePublisherTest.java index 33f80e5..7c74a05 100644 --- a/src/test/java/org/onap/dmaap/mr/test/clients/SamplePublisherTest.java +++ b/src/test/java/org/onap/dmaap/mr/test/clients/SamplePublisherTest.java @@ -4,12 +4,14 @@ * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ * 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. @@ -20,35 +22,35 @@ package org.onap.dmaap.mr.test.clients; -import static org.junit.Assert.assertTrue; - import org.junit.After; import org.junit.Before; import org.junit.Test; +import static org.junit.Assert.assertTrue; + public class SamplePublisherTest { - @Before - public void setUp() throws Exception { + @Before + public void setUp() throws Exception { - } + } - @After - public void tearDown() throws Exception { + @After + public void tearDown() throws Exception { - } + } - @Test - public void testMain() { + @Test + public void testMain() { - try { - SamplePublisher.main( new String[0]); - } catch (Exception e) { - // TODO Auto-generated catch block - assertTrue(true); - } - assertTrue(true); + try { + SamplePublisher.main(new String[0]); + } catch (Exception e) { + // TODO Auto-generated catch block + assertTrue(true); + } + assertTrue(true); - } + } } diff --git a/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExampleConsumer.java b/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExampleConsumer.java new file mode 100644 index 0000000..feb825d --- /dev/null +++ b/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExampleConsumer.java @@ -0,0 +1,89 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ + * 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========================================================= + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * + *******************************************************************************/ + +package org.onap.dmaap.mr.test.clients; + +import org.onap.dmaap.mr.client.MRClientFactory; +import org.onap.dmaap.mr.client.MRConsumer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.util.Properties; + +public class SimpleExampleConsumer { + + static FileWriter routeWriter = null; + static Properties props = null; + static FileReader routeReader = null; + + public static void main(String[] args) { + final Logger logger = LoggerFactory.getLogger(SimpleExampleConsumer.class); + + long count = 0; + long nextReport = 5000; + + final long startMs = System.currentTimeMillis(); + + try { + String routeFilePath = "/src/main/resources/dme2/preferredRoute.txt"; + + File fo = new File(routeFilePath); + if (!fo.exists()) { + routeWriter = new FileWriter(new File(routeFilePath)); + } + routeReader = new FileReader(new File(routeFilePath)); + props = new Properties(); + final MRConsumer cc = MRClientFactory.createConsumer("/src/main/resources/dme2/consumer.properties"); + int i = 0; + while (i < 10) { + Thread.sleep(2); + i++; + for (String msg : cc.fetch()) { + + System.out.println(msg); + } + + if (count > nextReport) { + nextReport += 5000; + + final long endMs = System.currentTimeMillis(); + final long elapsedMs = endMs - startMs; + final double elapsedSec = elapsedMs / 1000.0; + final double eps = count / elapsedSec; + System.out.println("Consumed " + count + " in " + elapsedSec + "; " + eps + " eps"); + } + } + } catch (InterruptedException e) { + logger.error("Interrupted!", e); + // Restore interrupted state... + Thread.currentThread().interrupt(); + } catch (Exception x) { + System.err.println(x.getClass().getName() + ": " + x.getMessage()); + logger.error("exception: ", x); + } + } +} diff --git a/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExampleConsumerTest.java b/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExampleConsumerTest.java index 1ccc839..532e040 100644 --- a/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExampleConsumerTest.java +++ b/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExampleConsumerTest.java @@ -4,12 +4,14 @@ * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ * 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. @@ -20,35 +22,35 @@ package org.onap.dmaap.mr.test.clients; -import static org.junit.Assert.assertTrue; - import org.junit.After; import org.junit.Before; import org.junit.Test; +import static org.junit.Assert.assertTrue; + public class SimpleExampleConsumerTest { - @Before - public void setUp() throws Exception { + @Before + public void setUp() throws Exception { - } + } - @After - public void tearDown() throws Exception { + @After + public void tearDown() throws Exception { - } + } - @Test - public void testMain() { + @Test + public void testMain() { - try { - SimpleExampleConsumer.main(null); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - assertTrue(true); + try { + SimpleExampleConsumer.main(null); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + assertTrue(true); - } + } } diff --git a/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExampleConsumerWithReturnResponse.java b/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExampleConsumerWithReturnResponse.java new file mode 100644 index 0000000..6374ab5 --- /dev/null +++ b/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExampleConsumerWithReturnResponse.java @@ -0,0 +1,91 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ + * 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========================================================= + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * + *******************************************************************************/ + +package org.onap.dmaap.mr.test.clients; + +import org.onap.dmaap.mr.client.MRClientFactory; +import org.onap.dmaap.mr.client.MRConsumer; +import org.onap.dmaap.mr.client.response.MRConsumerResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.util.Properties; + +public class SimpleExampleConsumerWithReturnResponse { + + private static final Logger logger = LoggerFactory.getLogger(SimpleExampleConsumerWithReturnResponse.class); + + static FileWriter routeWriter = null; + static Properties props = null; + static FileReader routeReader = null; + + public static void main(String[] args) { + + long count = 0; + long nextReport = 5000; + // remove while true and limite execution time in seconds + int timeMax = 86400; // one day + long endDate = System.currentTimeMillis() + timeMax * 1000; + + final long startMs = System.currentTimeMillis(); + + try { + String routeFilePath = "src/main/resources/dme2/preferredRoute.txt"; + + + File fo = new File(routeFilePath); + if (!fo.exists()) { + routeWriter = new FileWriter(new File(routeFilePath)); + } + routeReader = new FileReader(new File(routeFilePath)); + props = new Properties(); + final MRConsumer cc = MRClientFactory.createConsumer("src/main/resources/dme2/consumer.properties"); + while (System.currentTimeMillis() < endDate) { + MRConsumerResponse mrConsumerResponse = cc.fetchWithReturnConsumerResponse(); + System.out.println("mrConsumerResponse code :" + mrConsumerResponse.getResponseCode()); + + System.out.println("mrConsumerResponse Message :" + mrConsumerResponse.getResponseMessage()); + + System.out.println("mrConsumerResponse ActualMessage :" + mrConsumerResponse.getActualMessages()); + + if (count > nextReport) { + nextReport += 5000; + + final long endMs = System.currentTimeMillis(); + final long elapsedMs = endMs - startMs; + final double elapsedSec = elapsedMs / 1000.0; + final double eps = count / elapsedSec; + System.out.println("Consumed " + count + " in " + elapsedSec + "; " + eps + " eps"); + } + } + } catch (Exception x) { + System.err.println(x.getClass().getName() + ": " + x.getMessage()); + logger.error("exception: ", x); + } + } + +} diff --git a/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExampleConsumerWithReturnResponseTest.java b/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExampleConsumerWithReturnResponseTest.java index d814125..0dc04ea 100644 --- a/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExampleConsumerWithReturnResponseTest.java +++ b/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExampleConsumerWithReturnResponseTest.java @@ -4,12 +4,14 @@ * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ * 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. @@ -20,34 +22,34 @@ package org.onap.dmaap.mr.test.clients; -import static org.junit.Assert.assertTrue; - import org.junit.After; import org.junit.Before; import org.junit.Test; +import static org.junit.Assert.assertTrue; + public class SimpleExampleConsumerWithReturnResponseTest { - @Before - public void setUp() throws Exception { + @Before + public void setUp() throws Exception { - } + } - @After - public void tearDown() throws Exception { + @After + public void tearDown() throws Exception { - } + } - @Test - public void testMain() { + @Test + public void testMain() { - try { - SimpleExampleConsumerWithReturnResponse.main(null); - } catch (Exception e) { - // TODO Auto-generated catch block e.printStackTrace(); - } - assertTrue(true); + try { + SimpleExampleConsumerWithReturnResponse.main(null); + } catch (Exception e) { + // TODO Auto-generated catch block e.printStackTrace(); + } + assertTrue(true); - } + } } diff --git a/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExamplePublisher.java b/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExamplePublisher.java new file mode 100644 index 0000000..a30d45d --- /dev/null +++ b/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExamplePublisher.java @@ -0,0 +1,94 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ + * 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========================================================= + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * + *******************************************************************************/ + +package org.onap.dmaap.mr.test.clients; + +import org.json.JSONObject; +import org.onap.dmaap.mr.client.MRBatchingPublisher; +import org.onap.dmaap.mr.client.MRClientFactory; +import org.onap.dmaap.mr.client.MRPublisher.Message; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.List; +import java.util.Properties; +import java.util.concurrent.TimeUnit; + +/** + * An example of how to use the Java publisher. + * + * @author author + */ +public class SimpleExamplePublisher { + static FileWriter routeWriter = null; + static Properties props = null; + static FileReader routeReader = null; + + public void publishMessage(String producerFilePath) throws IOException, InterruptedException, Exception { + + // create our publisher + final MRBatchingPublisher pub = MRClientFactory.createBatchingPublisher(producerFilePath); + // publish some messages + final JSONObject msg1 = new JSONObject(); + msg1.put("Name", "Sprint"); + + pub.send("First cambria messge"); + pub.send("MyPartitionKey", msg1.toString()); + + final JSONObject msg2 = new JSONObject(); + + + // ... + + // 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()) { + System.err.println(stuck.size() + " messages unsent"); + } else { + System.out.println("Clean exit; all messages sent."); + } + } + + public static void main(String[] args) throws InterruptedException, Exception { + + String routeFilePath = "/src/main/resources/dme2/preferredRoute.txt"; + + SimpleExamplePublisher publisher = new SimpleExamplePublisher(); + + + File fo = new File(routeFilePath); + if (!fo.exists()) { + routeWriter = new FileWriter(new File(routeFilePath)); + } + routeReader = new FileReader(new File(routeFilePath)); + props = new Properties(); + publisher.publishMessage("/src/main/resources/dme2/producer.properties"); + } + +} + diff --git a/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExamplePublisherTest.java b/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExamplePublisherTest.java index 43faf5e..5449400 100644 --- a/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExamplePublisherTest.java +++ b/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExamplePublisherTest.java @@ -4,12 +4,14 @@ * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ * 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. @@ -20,61 +22,61 @@ package org.onap.dmaap.mr.test.clients; -import static org.junit.Assert.assertTrue; - -import java.io.IOException; import org.junit.After; import org.junit.Before; import org.junit.Test; +import java.io.IOException; + +import static org.junit.Assert.assertTrue; + public class SimpleExamplePublisherTest { - private SimpleExamplePublisher pub = null; - - @Before - public void setUp() throws Exception { - pub = new SimpleExamplePublisher(); - - } - - @After - public void tearDown() throws Exception { - - } - - @Test - public void testPublishMessage() { - try { - pub.publishMessage("/producer"); - } catch (NullPointerException e) { - assertTrue(true); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - assertTrue(true); - - } - - @Test - public void testMain() { - - try { - SimpleExamplePublisher.main(null); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - assertTrue(true); - - } - - + private SimpleExamplePublisher pub = null; + + @Before + public void setUp() throws Exception { + pub = new SimpleExamplePublisher(); + + } + + @After + public void tearDown() throws Exception { + + } + + @Test + public void testPublishMessage() { + try { + pub.publishMessage("/producer"); + } catch (NullPointerException e) { + assertTrue(true); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + assertTrue(true); + + } + + @Test + public void testMain() { + + try { + SimpleExamplePublisher.main(null); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + assertTrue(true); + + } + } diff --git a/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExamplePublisherWithResponse.java b/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExamplePublisherWithResponse.java new file mode 100644 index 0000000..08bc778 --- /dev/null +++ b/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExamplePublisherWithResponse.java @@ -0,0 +1,85 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ + * 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========================================================= + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * + *******************************************************************************/ + +package org.onap.dmaap.mr.test.clients; + +import org.json.JSONObject; +import org.onap.dmaap.mr.client.MRBatchingPublisher; +import org.onap.dmaap.mr.client.MRClientFactory; +import org.onap.dmaap.mr.client.response.MRPublisherResponse; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Properties; + +/** + * An example of how to use the Java publisher. + * + * @author author + */ +public class SimpleExamplePublisherWithResponse { + static FileWriter routeWriter = null; + static Properties props = null; + static FileReader routeReader = null; + + public static void main(String[] args) throws InterruptedException, Exception { + + String routeFilePath = "src/main/resources/dme2/preferredRoute.txt"; + String msgCount = args[0]; + SimpleExamplePublisherWithResponse publisher = new SimpleExamplePublisherWithResponse(); + File fo = new File(routeFilePath); + if (!fo.exists()) { + routeWriter = new FileWriter(new File(routeFilePath)); + } + routeReader = new FileReader(new File(routeFilePath)); + props = new Properties(); + int i = 0; + while (i < Integer.valueOf(msgCount)) { + publisher.publishMessage("src/main/resources/dme2/producer.properties", Integer.valueOf(msgCount)); + i++; + } + } + + public void publishMessage(String producerFilePath, int count) throws IOException, InterruptedException { + // create our publisher + final MRBatchingPublisher pub = MRClientFactory.createBatchingPublisher(producerFilePath, true); + // publish some messages + final JSONObject msg1 = new JSONObject(); + + msg1.put("Partition:1", "Message:" + count); + msg1.put("greeting", "Hello .."); + + + pub.send("1", msg1.toString()); + pub.send("1", msg1.toString()); + + MRPublisherResponse res = pub.sendBatchWithResponse(); + + System.out.println("Pub response->" + res.toString()); + } + + +} diff --git a/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExamplePublisherWithResponseTest.java b/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExamplePublisherWithResponseTest.java index 08dec2b..0b6e182 100644 --- a/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExamplePublisherWithResponseTest.java +++ b/src/test/java/org/onap/dmaap/mr/test/clients/SimpleExamplePublisherWithResponseTest.java @@ -4,12 +4,14 @@ * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ * 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. @@ -20,48 +22,43 @@ package org.onap.dmaap.mr.test.clients; -import static org.junit.Assert.assertTrue; - import org.junit.After; import org.junit.Before; import org.junit.Test; +import java.io.FileNotFoundException; +import java.io.IOException; + +import static org.junit.Assert.assertTrue; + public class SimpleExamplePublisherWithResponseTest { - - private SimpleExamplePublisherWithResponse pub = null; - - @Before - public void setUp() throws Exception { - pub = new SimpleExamplePublisherWithResponse(); - } - @After - public void tearDown() throws Exception { + private SimpleExamplePublisherWithResponse pub = null; + + @Before + public void setUp() throws Exception { + pub = new SimpleExamplePublisherWithResponse(); + } - } + @After + public void tearDown() throws Exception { - @Test - public void testMain() { + } - try { - SimpleExamplePublisherWithResponse.main( new String[0]); - } catch (Exception e) { - assertTrue(true); - } - assertTrue(true); + @Test + public void testMain() { - } - - @Test - public void testPublishMessage() { + try { + SimpleExamplePublisherWithResponse.main(new String[0]); + } catch (Exception e) { + assertTrue(true); + } + assertTrue(true); - try { - pub.publishMessage("/producer", 100); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - assertTrue(true); + } - } + @Test(expected = FileNotFoundException.class) + public void testPublishMessage() throws IOException, InterruptedException { + pub.publishMessage("/producer", 100); + } } diff --git a/src/test/java/org/onap/dmaap/mr/test/clients/TestRunner.java b/src/test/java/org/onap/dmaap/mr/test/clients/TestRunner.java index 6db09f8..0b4a74b 100644 --- a/src/test/java/org/onap/dmaap/mr/test/clients/TestRunner.java +++ b/src/test/java/org/onap/dmaap/mr/test/clients/TestRunner.java @@ -4,12 +4,14 @@ * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ * 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. @@ -27,16 +29,16 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestRunner { - private static final Logger LOGGER = LoggerFactory.getLogger(TestRunner.class); + private static final Logger logger = LoggerFactory.getLogger(TestRunner.class); + + public static void main(String[] args) { + // TODO Auto-generated method stub + Result result = JUnitCore.runClasses(JUnitTestSuite.class); + for (Failure failure : result.getFailures()) { + logger.info(failure.toString()); - public static void main(String[] args) { - // TODO Auto-generated method stub - Result result = JUnitCore.runClasses(JUnitTestSuite.class); - for (Failure failure : result.getFailures()) { - LOGGER.info(failure.toString()); - - } - LOGGER.info(String.valueOf(result.wasSuccessful())); - } + } + logger.info(String.valueOf(result.wasSuccessful())); + } } |