+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="false" sync-formatter="false">
- <local-check-config name="maven-checkstyle-plugin check-license" location="jar:file:/C:/Users/rn509j/.m2/repository/org/onap/oparent/checkstyle/0.1.1/checkstyle-0.1.1.jar!/onap-checkstyle/check-license.xml" type="remote" description="maven-checkstyle-plugin configuration check-license">
- <property name="checkstyle.cache.file" value="${project_loc}/target/checkstyle-cachefile"/>
- <property name="checkstyle.header.file" value="C:\ONAP\.metadata\.plugins\org.eclipse.core.resources\.projects\dmaapClient\com.basistech.m2e.code.quality.checkstyleConfigurator\checkstyle-header-check-license.txt"/>
- </local-check-config>
- <local-check-config name="maven-checkstyle-plugin check-style" location="jar:file:/C:/Users/rn509j/.m2/repository/org/onap/oparent/checkstyle/0.1.1/checkstyle-0.1.1.jar!/onap-checkstyle/onap-java-style.xml" type="remote" description="maven-checkstyle-plugin configuration check-style">
- <property name="checkstyle.cache.file" value="${project_loc}/target/checkstyle-cachefile"/>
- <property name="checkstyle.header.file" value="C:\ONAP\.metadata\.plugins\org.eclipse.core.resources\.projects\dmaapClient\com.basistech.m2e.code.quality.checkstyleConfigurator\checkstyle-header-check-style.txt"/>
- </local-check-config>
- <fileset name="java-sources-check-license" enabled="true" check-config-name="maven-checkstyle-plugin check-license" local="true">
- <file-match-pattern match-pattern="^src/main/java/.*\.java" include-pattern="true"/>
- <file-match-pattern match-pattern="^src/test/java/.*\.java" include-pattern="true"/>
- </fileset>
- <fileset name="java-sources-check-style" enabled="true" check-config-name="maven-checkstyle-plugin check-style" local="true">
- <file-match-pattern match-pattern="^src/main/java/src/main/java.*\.java" include-pattern="true"/>
- <file-match-pattern match-pattern="^src/main/java/.*\.java" include-pattern="true"/>
- <file-match-pattern match-pattern="^src/test/java/.*\.java" include-pattern="true"/>
- <file-match-pattern match-pattern="^src/main/resources/.*\.properties" include-pattern="true"/>
- <file-match-pattern match-pattern="^src/main/resources/.*\.properties" include-pattern="true"/>
- <file-match-pattern match-pattern="^src/test/resources/.*\.properties" include-pattern="true"/>
- </fileset>
-</fileset-config>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<classpath>\r
- <classpathentry kind="src" output="target/classes" path="src/main/java">\r
- <attributes>\r
- <attribute name="optional" value="true"/>\r
- <attribute name="maven.pomderived" value="true"/>\r
- </attributes>\r
- </classpathentry>\r
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">\r
- <attributes>\r
- <attribute name="maven.pomderived" value="true"/>\r
- </attributes>\r
- </classpathentry>\r
- <classpathentry kind="src" output="target/test-classes" path="src/test/java">\r
- <attributes>\r
- <attribute name="optional" value="true"/>\r
- <attribute name="maven.pomderived" value="true"/>\r
- </attributes>\r
- </classpathentry>\r
- <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">\r
- <attributes>\r
- <attribute name="maven.pomderived" value="true"/>\r
- </attributes>\r
- </classpathentry>\r
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">\r
- <attributes>\r
- <attribute name="maven.pomderived" value="true"/>\r
- </attributes>\r
- </classpathentry>\r
- <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">\r
- <attributes>\r
- <attribute name="maven.pomderived" value="true"/>\r
- </attributes>\r
- </classpathentry>\r
- <classpathentry kind="output" path="target/classes"/>\r
-</classpath>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<projectDescription>\r
- <name>dmaapClient</name>\r
- <comment></comment>\r
- <projects>\r
- </projects>\r
- <buildSpec>\r
- <buildCommand>\r
- <name>org.eclipse.jdt.core.javabuilder</name>\r
- <arguments>\r
- </arguments>\r
- </buildCommand>\r
- <buildCommand>\r
- <name>net.sf.eclipsecs.core.CheckstyleBuilder</name>\r
- <arguments>\r
- </arguments>\r
- </buildCommand>\r
- <buildCommand>\r
- <name>org.eclipse.m2e.core.maven2Builder</name>\r
- <arguments>\r
- </arguments>\r
- </buildCommand>\r
- </buildSpec>\r
- <natures>\r
- <nature>org.eclipse.jdt.core.javanature</nature>\r
- <nature>net.sf.eclipsecs.core.CheckstyleNature</nature>\r
- <nature>org.eclipse.m2e.core.maven2Nature</nature>\r
- </natures>\r
-</projectDescription>\r
+++ /dev/null
-eclipse.preferences.version=1\r
-encoding//src/main/java=UTF-8\r
-encoding//src/main/resources=UTF-8\r
-encoding//src/test/java=UTF-8\r
-encoding//src/test/resources=UTF-8\r
-encoding/<project>=UTF-8\r
+++ /dev/null
-eclipse.preferences.version=1\r
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\r
-org.eclipse.jdt.core.compiler.compliance=1.7\r
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning\r
-org.eclipse.jdt.core.compiler.source=1.7\r
+++ /dev/null
-activeProfiles=\r
-eclipse.preferences.version=1\r
-resolveWorkspaceProjects=true\r
-version=1\r
<version>4.11</version>
<scope>test</scope>
</dependency>
+
+ <dependency>
+ <groupId>com.github.tomakehurst</groupId>
+ <artifactId>wiremock</artifactId>
+ <version>2.5.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <version>1.9.5</version>
+ <scope>test</scope>
+ </dependency>
+
</dependencies>
<build>
--- /dev/null
+/*******************************************************************************\r
+ * ============LICENSE_START=======================================================\r
+ * org.onap.dmaap\r
+ * ================================================================================\r
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
+ * ================================================================================\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ * ============LICENSE_END=========================================================\r
+ *\r
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
+ * \r
+ *******************************************************************************/\r
+package com.att.nsa.mr.client.impl;\r
+\r
+import java.io.IOException;\r
+import java.net.MalformedURLException;\r
+import java.util.Collection;\r
+import java.util.LinkedList;\r
+import java.util.Set;\r
+\r
+import org.junit.Before;\r
+import org.junit.Rule;\r
+import org.junit.Test;\r
+\r
+import static com.github.tomakehurst.wiremock.client.WireMock.*;\r
+\r
+import com.att.nsa.apiClient.http.HttpException;\r
+import com.att.nsa.apiClient.http.HttpObjectNotFoundException;\r
+import com.att.nsa.mr.client.MRTopicManager.TopicInfo;\r
+import com.github.tomakehurst.wiremock.junit.WireMockRule;\r
+\r
+\r
+public class MRMetaClientTest {\r
+ \r
+ @Rule public WireMockRule wireMock = new WireMockRule();\r
+ \r
+ @Before\r
+ public void setUp(){\r
+ wireMock.stubFor(get(urlEqualTo("/topics"))\r
+ .willReturn(aResponse().withBody("{\"topics\":[\"topic1\",\"topic2\"]}").withHeader("Content-Type", "application/json")));\r
+ wireMock.stubFor(get(urlEqualTo("/topics/topic1"))\r
+ .willReturn(aResponse().withBody("{\"topics\":[\"topic1\",\"topic2\"]}").withHeader("Content-Type", "application/json")));\r
+ wireMock.stubFor(post(urlEqualTo("/topics/create"))\r
+ .willReturn(aResponse().withStatus(200)));\r
+ }\r
+ \r
+ @Test\r
+ public void getTopicsTest() \r
+ {\r
+ final Collection<String> hosts = new LinkedList<String> ();\r
+ hosts.add ( "localhost:" + wireMock.port() );\r
+ \r
+ MRMetaClient c;\r
+ try {\r
+ c = new MRMetaClient(hosts);\r
+ Set<String> setString=c.getTopics();\r
+ } catch (IOException e) {\r
+ e.printStackTrace();\r
+ }\r
+ \r
+ \r
+ // assertEquals ("http://localhost:8080/events/" + "topic/cg/cid", url );\r
+ \r
+ }\r
+ \r
+ @Test\r
+ public void getTopicMetadataTest() {\r
+ final Collection<String> hosts = new LinkedList<String> ();\r
+ hosts.add ( "localhost:" + wireMock.port() );\r
+ \r
+ final String topic ="topic1";\r
+ \r
+ MRMetaClient c;\r
+ try {\r
+ c = new MRMetaClient(hosts);\r
+ TopicInfo topicInfo=c.getTopicMetadata(topic);\r
+ } catch (IOException | HttpObjectNotFoundException e) {\r
+ e.printStackTrace();\r
+ } \r
+ \r
+ }\r
+ \r
+ @Test\r
+ public void testcreateTopic(){\r
+ final Collection<String> hosts = new LinkedList<String> ();\r
+ hosts.add ( "localhost:" + wireMock.port() );\r
+ \r
+ MRMetaClient c;\r
+ try {\r
+ c = new MRMetaClient(hosts);\r
+ c.createTopic("topic1", "testTopic", 1, 1);\r
+ } catch (IOException | HttpException e) {\r
+ e.printStackTrace();\r
+ }\r
+ }\r
+\r
+ \r
+}\r
--- /dev/null
+/*******************************************************************************\r
+ * ============LICENSE_START=======================================================\r
+ * org.onap.dmaap\r
+ * ================================================================================\r
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
+ * ================================================================================\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ * ============LICENSE_END=========================================================\r
+ *\r
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
+ * \r
+ *******************************************************************************/\r
+\r
+package com.att.nsa.mr.client.impl;\r
+\r
+import java.io.File;\r
+import java.io.FileOutputStream;\r
+import java.io.IOException;\r
+import java.util.List;\r
+import java.util.Properties;\r
+import java.util.concurrent.TimeUnit;\r
+\r
+import org.json.JSONObject;\r
+import org.junit.After;\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+\r
+import com.att.nsa.mr.client.MRClientFactory;\r
+import com.att.nsa.mr.client.MRConsumer;\r
+import com.att.nsa.mr.client.MRPublisher.message;\r
+import com.att.nsa.mr.client.response.MRPublisherResponse;\r
+\r
+public class MRSimplerBatchConsumerTest {\r
+ \r
+ File outFile;\r
+ @Before\r
+ public void setUp() throws Exception {\r
+ Properties properties = new Properties();\r
+ properties.load(MRSimplerBatchConsumerTest.class.getClassLoader().getResourceAsStream("dme2/consumer.properties"));\r
+ \r
+ String routeFilePath="dme2/preferredRoute.txt";\r
+ \r
+ File file = new File(MRSimplerBatchConsumerTest.class.getClassLoader().getResource(routeFilePath).getFile());\r
+ properties.put("DME2preferredRouterFilePath", MRSimplerBatchConsumerTest.class.getClassLoader().getResource(routeFilePath).getFile());\r
+ \r
+ outFile = new File(file.getParent() + "/consumer_tmp.properties");\r
+ properties.store(new FileOutputStream(outFile), "");\r
+ }\r
+\r
+ @Test\r
+ public void testSend() throws IOException, InterruptedException {\r
+ \r
+ final MRConsumer cc = MRClientFactory.createConsumer(outFile.getPath()); \r
+ \r
+ try {\r
+ for(String msg : cc.fetch()){\r
+ System.out.println(msg);\r
+ }\r
+ } catch (Exception e) {\r
+ System.err.println ( e.getClass().getName () + ": " + e.getMessage () );\r
+ } \r
+ \r
+ }\r
+\r
+}\r
--- /dev/null
+/*******************************************************************************\r
+ * ============LICENSE_START=======================================================\r
+ * org.onap.dmaap\r
+ * ================================================================================\r
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
+ * ================================================================================\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ * ============LICENSE_END=========================================================\r
+ *\r
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
+ * \r
+ *******************************************************************************/\r
+\r
+package com.att.nsa.mr.client.impl;\r
+\r
+import java.io.File;\r
+import java.io.FileOutputStream;\r
+import java.io.IOException;\r
+import java.util.List;\r
+import java.util.Properties;\r
+import java.util.concurrent.TimeUnit;\r
+\r
+import org.json.JSONObject;\r
+import org.junit.After;\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+\r
+import com.att.nsa.mr.client.MRClientFactory;\r
+import com.att.nsa.mr.client.MRPublisher.message;\r
+import com.att.nsa.mr.client.response.MRPublisherResponse;\r
+\r
+public class MRSimplerBatchPublisherTest {\r
+ \r
+ File outFile;\r
+ @Before\r
+ public void setUp() throws Exception {\r
+ Properties properties = new Properties();\r
+ properties.load(MRSimplerBatchPublisherTest.class.getClassLoader().getResourceAsStream("dme2/producer.properties"));\r
+ \r
+ String routeFilePath="dme2/preferredRoute.txt";\r
+ \r
+ File file = new File(MRSimplerBatchPublisherTest.class.getClassLoader().getResource(routeFilePath).getFile());\r
+ properties.put("DME2preferredRouterFilePath", MRSimplerBatchPublisherTest.class.getClassLoader().getResource(routeFilePath).getFile());\r
+ \r
+ outFile = new File(file.getParent() + "/producer_tmp.properties");\r
+ properties.store(new FileOutputStream(outFile), "");\r
+ }\r
+\r
+ @Test\r
+ public void testSend() throws IOException, InterruptedException {\r
+ \r
+ final MRSimplerBatchPublisher pub = (MRSimplerBatchPublisher)MRClientFactory.createBatchingPublisher(outFile.getPath()); \r
+ \r
+ //publish some messages\r
+ final JSONObject msg1 = new JSONObject ();\r
+ pub.send ( "MyPartitionKey", msg1.toString () );\r
+\r
+ final List<message> stuck = pub.close ( 1, TimeUnit.SECONDS );\r
+ if ( stuck.size () > 0 ) {\r
+ System.out.println( stuck.size() + " messages unsent" );\r
+ }\r
+ else\r
+ {\r
+ System.out.println ( "Clean exit; all messages sent." );\r
+ }\r
+ \r
+ \r
+ }\r
+\r
+ @Test\r
+ public void testSendBatchWithResponse() throws IOException, InterruptedException {\r
+ \r
+ final MRSimplerBatchPublisher pub = (MRSimplerBatchPublisher)MRClientFactory.createBatchingPublisher(outFile.getPath(), true); \r
+ \r
+ //publish some messages\r
+ final JSONObject msg1 = new JSONObject ();\r
+ pub.send ( "MyPartitionKey", msg1.toString () );\r
+ MRPublisherResponse pubResponse = new MRPublisherResponse();\r
+ pub.setPubResponse(pubResponse);\r
+ \r
+ MRPublisherResponse mrPublisherResponse = pub.sendBatchWithResponse();\r
+ Assert.assertEquals(1, mrPublisherResponse.getPendingMsgs());\r
+ \r
+ }\r
+\r
+}\r
--- /dev/null
+###############################################################################
+# ============LICENSE_START=======================================================
+# org.onap.dmaap
+# ================================================================================
+# Copyright © 2017 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=========================================================
+#
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+#
+###############################################################################
+TransportType=DME2
+Latitude =47.778998
+Longitude =-122.182883
+Version =1.0
+ServiceName =dmaap-v1.dev.dmaap.dt.saat.acsi.att.com/events
+Environment =TEST
+Partner=BOT_R
+routeOffer=MR1
+SubContextPath =/
+Protocol =http
+MethodType =GET
+username =<att uid>
+password =<password>
+contenttype =application/json
+authKey=<auth key>
+authDate=2016-02-18T13:57:37-0800
+#host=uebsb91bodc.it.att.com:3904
+host=olsd004.wnsnet.attws.com:3904
+topic=com.att.ecomp_test.crm.preDemo1
+group=con
+id=5
+timeout=15000
+limit=1000
+filter=
+AFT_DME2_EXCHANGE_REQUEST_HANDLERS=com.att.nsa.test.PreferredRouteRequestHandler
+AFT_DME2_EXCHANGE_REPLY_HANDLERS=com.att.nsa.test.PreferredRouteReplyHandler
+AFT_DME2_REQ_TRACE_ON=true
+AFT_ENVIRONMENT=AFTUAT
+AFT_DME2_EP_CONN_TIMEOUT=15000
+AFT_DME2_ROUNDTRIP_TIMEOUT_MS=240000
+AFT_DME2_EP_READ_TIMEOUT_MS=50000
+sessionstickinessrequired=NO
+#DME2preferredRouterFilePath=/src/main/resources/dme2/preferredRoute.txt
+
+
--- /dev/null
+this is a test file for producer
+this ia a sample file
\ No newline at end of file
--- /dev/null
+preferredRouteKey=MR1
\ No newline at end of file
--- /dev/null
+###############################################################################
+# ============LICENSE_START=======================================================
+# org.onap.dmaap
+# ================================================================================
+# Copyright © 2017 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=========================================================
+#
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+#
+###############################################################################
+TransportType=DME2
+Latitude =47.778998
+Longitude =-122.182883
+Version =1.0
+ServiceName =dmaap-v1.dev.dmaap.dt.saat.acsi.att.com/events
+#com.att.acsi.saat.dt.dmaap.dev.mrclientnew1
+Environment =TEST
+Partner=BOT_R
+routeOffer=MR1
+SubContextPath =/
+Protocol =http
+MethodType =POST
+username =user
+password =password
+contenttype = application/json
+authKey=<auth key>
+authDate=2016-07-20T11:30:56-0700
+host=localhost:9000
+topic=com.att.ecomp_test.crm.preDemo1
+#host=uebsb91bodc.it.att.com:3904
+partition=1
+maxBatchSize=100
+maxAgeMs=250
+AFT_DME2_EXCHANGE_REQUEST_HANDLERS=com.att.nsa.test.PreferredRouteRequestHandler
+AFT_DME2_EXCHANGE_REPLY_HANDLERS=com.att.nsa.test.PreferredRouteReplyHandler
+AFT_DME2_REQ_TRACE_ON=true
+AFT_ENVIRONMENT=AFTUAT
+AFT_DME2_EP_CONN_TIMEOUT=15000
+AFT_DME2_ROUNDTRIP_TIMEOUT_MS=240000
+AFT_DME2_EP_READ_TIMEOUT_MS=50000
+sessionstickinessrequired=NO
+#DME2preferredRouterFilePath=C:/Users/rn509j/ONAP/dmaapclient/target/classes/dme2/preferredRoute.txt
+MessageSentThreadOccurance=50