Fix timeout bug in dmaap simulator 04/99504/2
authorJim Hahn <jrh3@att.com>
Wed, 11 Dec 2019 16:32:01 +0000 (11:32 -0500)
committerJim Hahn <jrh3@att.com>
Wed, 11 Dec 2019 16:42:59 +0000 (11:42 -0500)
Also added a start script that can be used to execute the simulator
in stand-alone mode (i.e., outside of a docker container).

Change-Id: I26550ad36cfd2448c96cf0c09fec24e60ffd815b
Issue-ID: POLICY-2298
Signed-off-by: Jim Hahn <jrh3@att.com>
models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/provider/DmaapSimProvider.java
models-sim/models-sim-dmaap/src/main/package/tarball/assembly.xml
models-sim/models-sim-dmaap/src/main/resources/startDmaap.sh [new file with mode: 0644]
models-sim/models-sim-dmaap/src/test/java/org/onap/policy/models/sim/dmaap/provider/DmaapSimProviderTest.java

index d11d1b3..c954ab8 100644 (file)
@@ -129,15 +129,9 @@ public class DmaapSimProvider extends ServiceManagerContainer {
             List<String> lst = topic2data.computeIfAbsent(topicName, this::makeTopicData).read(consumerGroup, limit,
                             timeoutMs);
 
-            if (lst.isEmpty() && timeoutMs > 0) {
-                LOGGER.debug("Topic: {}, Timed out waiting for messages: {}: {}", topicName, consumerGroup, consumerId);
-                return Response.status(Status.REQUEST_TIMEOUT).entity(lst).build();
-
-            } else {
-                LOGGER.debug("Topic: {}, Retrieved {} messages for: {}: {}", topicName, consumerGroup, lst.size(),
-                                consumerId);
-                return Response.status(Status.OK).entity(lst).build();
-            }
+            LOGGER.debug("Topic: {}, Retrieved {} messages for: {}: {}", topicName, lst.size(), consumerGroup,
+                            consumerId);
+            return Response.status(Status.OK).entity(lst).build();
 
         } catch (InterruptedException e) {
             LOGGER.warn("Topic: {}, Request for DMaaP message interrupted: {}: {}", topicName, consumerGroup,
index e4671f8..8717701 100644 (file)
         </dependencySet>
     </dependencySets>
     <fileSets>
+        <fileSet>
+            <directory>${project.basedir}/src/main/resources
+            </directory>
+            <includes>
+                <include>startDmaap.sh</include>
+            </includes>
+            <outputDirectory>bin</outputDirectory>
+            <lineEnding>unix</lineEnding>
+            <fileMode>755</fileMode>
+        </fileSet>
         <fileSet>
             <directory>${project.basedir}/src/main/resources
             </directory>
diff --git a/models-sim/models-sim-dmaap/src/main/resources/startDmaap.sh b/models-sim/models-sim-dmaap/src/main/resources/startDmaap.sh
new file mode 100644 (file)
index 0000000..1d04e7c
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+#
+# ============LICENSE_START=======================================================
+# ONAP Policy Models
+# ================================================================================
+# 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=========================================================
+#
+
+#
+# Starts the DMaaP simulator using the default configuration.
+#
+
+trap 'exit 1' ERR
+
+cd ${0%/*}/..
+
+java -cp "lib/*" \
+    org.onap.policy.models.sim.dmaap.startstop.Main -c etc/DefaultConfig.json
index f8c1416..1473e02 100644 (file)
@@ -192,7 +192,7 @@ public class DmaapSimProviderTest {
         when(data1.read(any(), anyInt(), anyLong())).thenReturn(Collections.emptyList());
 
         Response resp = prov.processDmaapMessageGet(TOPIC1, CONSUMER1, CONSUMER_ID1, 3, 300L);
-        assertEquals(Status.REQUEST_TIMEOUT.getStatusCode(), resp.getStatus());
+        assertEquals(Status.OK.getStatusCode(), resp.getStatus());
         assertEquals("[]", resp.getEntity().toString());
     }