You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2020/04/07 00:21:57 UTC

[servicecomb-java-chassis] branch master updated (cbc614f -> a9547d5)

This is an automated email from the ASF dual-hosted git repository.

liubao pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git.


    from cbc614f  [SCB-1847] create a new edge dispatcher to forward http requests to provider
     new 8aa86f3  [SCB-1850]add demo-edge to integrations tests and run when build
     new 8582511  [SCB-1850]add logs to find out unknown error of unit test
     new a9547d5  [SCB-1850]fix docker port expose problems

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 demo/demo-edge/authentication/pom.xml              |  42 +++
 .../src/main/resources/microservice.yaml           |   5 +-
 demo/demo-edge/business-1-1-0/pom.xml              |  41 ++-
 .../src/main/resources/microservice.yaml           |   2 +-
 demo/demo-edge/business-1.0.0/pom.xml              |  39 +++
 .../src/main/resources/microservice.yaml           |   2 +-
 demo/demo-edge/business-2.0.0/pom.xml              |  41 ++-
 .../src/main/resources/microservice.yaml           |   2 +-
 demo/demo-edge/consumer/pom.xml                    |  45 ++-
 .../demo/edge/consumer/EdgeDemoIT.java}            |   9 +-
 demo/demo-edge/edge-service/pom.xml                |  39 +++
 .../src/main/resources/microservice.yaml           |   7 +-
 demo/demo-edge/pom.xml                             |  14 +-
 demo/docker-build-config/pom.xml                   |   2 +-
 .../pom.xml                                        | 152 +++++++++-
 demo/pom.xml                                       |   1 +
 .../core/publish/TestDefaultLogPublisher.java      | 309 +++++++++++----------
 .../publish/TestThreadPoolPublishModelFactory.java |  22 +-
 18 files changed, 580 insertions(+), 194 deletions(-)
 copy demo/{demo-crossapp/crossapp-client/src/test/java/org/apache/servicecomb/demo/crossapp/CrossAppIT.java => demo-edge/consumer/src/test/java/org/apache/servicecomb/demo/edge/consumer/EdgeDemoIT.java} (88%)
 copy demo/{docker-run-config => docker-run-config-edge}/pom.xml (51%)


[servicecomb-java-chassis] 02/03: [SCB-1850]add logs to find out unknown error of unit test

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git

commit 858251104f6838c62ccb51a2a8db75510ea53626
Author: liubao <bi...@qq.com>
AuthorDate: Fri Apr 3 17:37:43 2020 +0800

    [SCB-1850]add logs to find out unknown error of unit test
---
 demo/docker-build-config/pom.xml                   |   2 +-
 .../core/publish/TestDefaultLogPublisher.java      | 309 +++++++++++----------
 .../publish/TestThreadPoolPublishModelFactory.java |  22 +-
 3 files changed, 174 insertions(+), 159 deletions(-)

diff --git a/demo/docker-build-config/pom.xml b/demo/docker-build-config/pom.xml
index 6e1c028..0b4acee 100644
--- a/demo/docker-build-config/pom.xml
+++ b/demo/docker-build-config/pom.xml
@@ -52,7 +52,7 @@
                     <descriptor>${root.basedir}/demo/assembly/assembly.xml</descriptor>
                   </assembly>
                   <entryPoint>
-                    <shell>java -Xmx64m $JAVA_OPTS -jar $JAR_PATH</shell>
+                    <shell>java -Xmx128m $JAVA_OPTS -jar $JAR_PATH</shell>
                   </entryPoint>
                 </build>
               </image>
diff --git a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/publish/TestDefaultLogPublisher.java b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/publish/TestDefaultLogPublisher.java
index 9c1d4df..f0948fc 100644
--- a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/publish/TestDefaultLogPublisher.java
+++ b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/publish/TestDefaultLogPublisher.java
@@ -45,7 +45,9 @@ import org.apache.servicecomb.metrics.core.publish.model.invocation.PerfInfo;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.FixMethodOrder;
 import org.junit.Test;
+import org.junit.runners.MethodSorters;
 
 import com.google.common.eventbus.EventBus;
 import com.netflix.spectator.api.Measurement;
@@ -56,6 +58,7 @@ import mockit.Mock;
 import mockit.MockUp;
 import mockit.Mocked;
 
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
 public class TestDefaultLogPublisher {
   GlobalRegistry globalRegistry = new GlobalRegistry();
 
@@ -132,158 +135,162 @@ public class TestDefaultLogPublisher {
   }
 
   @Test
-
   public void onPolledEvent(@Mocked VertxImpl vertxImpl, @Mocked MeasurementTree tree,
       @Mocked GlobalRegistry globalRegistry, @Mocked EventBus eventBus, @Mocked MetricsBootstrapConfig config) {
-    ArchaiusUtils.setProperty("servicecomb.metrics.publisher.defaultLog.enabled", true);
-    ArchaiusUtils.setProperty("servicecomb.metrics.invocation.latencyDistribution", "0,1,100");
-    publisher.init(globalRegistry, eventBus, config);
-    new Expectations(VertxUtils.class) {
-      {
-        VertxUtils.getVertxMap();
-        result = Collections.singletonMap("v", vertxImpl);
-        // TODO will be fixed by next vertx update.
-//        vertxImpl.getEventLoopContextCreatedCount();;
-//        result = 1;
-      }
-    };
-    DefaultPublishModel model = new DefaultPublishModel();
-    PerfInfo perfTotal = new PerfInfo();
-    perfTotal.setTps(10_0000);
-    perfTotal.setMsTotalTime(30000L * 1_0000);
-    perfTotal.setMsMaxLatency(30000);
-    OperationPerf operationPerf = new OperationPerf();
-    operationPerf.setOperation("op");
-    operationPerf.setLatencyDistribution(new Integer[] {12, 120, 1200});
-    operationPerf.getStages().put(MeterInvocationConst.STAGE_TOTAL, perfTotal);
-    operationPerf.getStages().put(MeterInvocationConst.STAGE_EXECUTOR_QUEUE, perfTotal);
-    operationPerf.getStages().put(MeterInvocationConst.STAGE_EXECUTION, perfTotal);
-    operationPerf.getStages().put(MeterInvocationConst.STAGE_PREPARE, perfTotal);
-    operationPerf.getStages().put(MeterInvocationConst.STAGE_HANDLERS_REQUEST, perfTotal);
-    operationPerf.getStages().put(MeterInvocationConst.STAGE_HANDLERS_RESPONSE, perfTotal);
-    operationPerf.getStages().put(MeterInvocationConst.STAGE_CLIENT_FILTERS_REQUEST, perfTotal);
-    operationPerf.getStages().put(MeterInvocationConst.STAGE_CLIENT_FILTERS_RESPONSE, perfTotal);
-    operationPerf.getStages().put(MeterInvocationConst.STAGE_CONSUMER_SEND_REQUEST, perfTotal);
-    operationPerf.getStages().put(MeterInvocationConst.STAGE_PRODUCER_SEND_RESPONSE, perfTotal);
-    operationPerf.getStages().put(MeterInvocationConst.STAGE_CONSUMER_GET_CONNECTION, perfTotal);
-    operationPerf.getStages().put(MeterInvocationConst.STAGE_CONSUMER_WRITE_TO_BUF, perfTotal);
-    operationPerf.getStages().put(MeterInvocationConst.STAGE_CONSUMER_WAIT_RESPONSE, perfTotal);
-    operationPerf.getStages().put(MeterInvocationConst.STAGE_CONSUMER_WAKE_CONSUMER, perfTotal);
-    operationPerf.getStages().put(MeterInvocationConst.STAGE_SERVER_FILTERS_REQUEST, perfTotal);
-    operationPerf.getStages().put(MeterInvocationConst.STAGE_SERVER_FILTERS_RESPONSE, perfTotal);
-
-    OperationPerfGroup operationPerfGroup = new OperationPerfGroup(Const.RESTFUL, Status.OK.name());
-    operationPerfGroup.addOperationPerf(operationPerf);
-
-    OperationPerfGroups operationPerfGroups = new OperationPerfGroups();
-    operationPerfGroups.getGroups().put(operationPerfGroup.getTransport(),
-        Collections.singletonMap(operationPerfGroup.getStatus(), operationPerfGroup));
-    model.getConsumer().setOperationPerfGroups(operationPerfGroups);
-    model.getProducer().setOperationPerfGroups(operationPerfGroups);
-    model.getEdge().setOperationPerfGroups(operationPerfGroups);
-
-    model.getThreadPools().put("test", new ThreadPoolPublishModel());
-    Measurement measurement = new Measurement(null, 0L, 1.0);
-
-    MeasurementNode measurementNodeCpuAll = new MeasurementNode("allProcess", new HashMap<>());
-    MeasurementNode measurementNodeCpuProcess = new MeasurementNode("currentProcess", new HashMap<>());
-    MeasurementNode measurementNodeSend = new MeasurementNode("send", new HashMap<>());
-    MeasurementNode measurementNodeSendPacket = new MeasurementNode("sendPackets", new HashMap<>());
-    MeasurementNode measurementNodeRecv = new MeasurementNode("receive", new HashMap<>());
-    MeasurementNode measurementNodeRecvPacket = new MeasurementNode("receivePackets", new HashMap<>());
-    MeasurementNode measurementNodeEth0 = new MeasurementNode("eth0", new HashMap<>());
-    MeasurementNode measurementNodeNet = new MeasurementNode("net", new HashMap<>());
-    MeasurementNode measurementNodeOs = new MeasurementNode("os", new HashMap<>());
-
-    measurementNodeSend.getMeasurements().add(measurement);
-    measurementNodeRecv.getMeasurements().add(measurement);
-    measurementNodeCpuAll.getMeasurements().add(measurement);
-    measurementNodeCpuProcess.getMeasurements().add(measurement);
-    measurementNodeRecvPacket.getMeasurements().add(measurement);
-    measurementNodeSendPacket.getMeasurements().add(measurement);
-
-    measurementNodeEth0.getChildren().put("send", measurementNodeSend);
-    measurementNodeEth0.getChildren().put("receive", measurementNodeRecv);
-    measurementNodeEth0.getChildren().put("receivePackets", measurementNodeRecvPacket);
-    measurementNodeEth0.getChildren().put("sendPackets", measurementNodeSendPacket);
-
-    measurementNodeNet.getChildren().put("eth0", measurementNodeEth0);
-    measurementNodeOs.getChildren().put("cpu", measurementNodeCpuAll);
-    measurementNodeOs.getChildren().put("processCpu", measurementNodeCpuProcess);
-    measurementNodeOs.getChildren().put("net", measurementNodeNet);
-
-    measurementNodeOs.getMeasurements().add(measurement);
-    measurementNodeNet.getMeasurements().add(measurement);
-    measurementNodeEth0.getMeasurements().add(measurement);
-
-    new MockUp<PublishModelFactory>() {
-      @Mock
-      DefaultPublishModel createDefaultPublishModel() {
-        return model;
-      }
-
-      @Mock
-      MeasurementTree getTree() {
-        return tree;
-      }
-    };
-    new Expectations() {
-      {
-        tree.findChild(OsMeter.OS_NAME);
-        result = measurementNodeOs;
-      }
-    };
-    publisher.onPolledEvent(new PolledEvent(Collections.emptyList(), Collections.emptyList()));
-    List<LoggingEvent> events = collector.getEvents().stream()
-        .filter(e -> DefaultLogPublisher.class.getName().equals(e.getLoggerName())).collect(Collectors.toList());
-    LoggingEvent event = events.get(0);
-    Assert.assertEquals("\n"
-            + "os:\n"
-            + "  cpu:\n"
-            + "    all usage: 100.00%    all idle: 0.00%    process: 100.00%\n"
-            + "  net:\n"
-            + "    send(Bps)    recv(Bps)    send(pps)    recv(pps)    interface\n"
-            + "    1            1            1            1            eth0\n"
-            + "vertx:\n"
-            + "  instances:\n"
-            + "    name       eventLoopContext-created\n"
-            + "    v          0\n"
-            + "threadPool:\n"
-            + "  coreSize maxThreads poolSize currentBusy rejected queueSize taskCount taskFinished name\n"
-            + "  0        0          0        0           NaN      0         0.0       0.0          test\n"
-            + "consumer:\n"
-            + " simple:\n"
-            + "  status      tps      latency            [0,1)  [1,100) [100,) operation\n"
-            + "  rest.OK     100000.0 3000.000/30000.000 12     120     1200   op\n"
-            + "              100000.0 3000.000/30000.000 12     120     1200   (summary)\n"
-            + " details:\n"
-            + "    rest.OK:\n"
-            + "      op:\n"
-            + "        prepare     : 3000.000/30000.000 handlersReq : 3000.000/30000.000 cFiltersReq: 3000.000/30000.000 sendReq     : 3000.000/30000.000\n"
-            + "        getConnect  : 3000.000/30000.000 writeBuf    : 3000.000/30000.000 waitResp   : 3000.000/30000.000 wakeConsumer: 3000.000/30000.000\n"
-            + "        cFiltersResp: 3000.000/30000.000 handlersResp: 3000.000/30000.000\n"
-            + "producer:\n"
-            + " simple:\n"
-            + "  status      tps      latency            [0,1)  [1,100) [100,) operation\n"
-            + "  rest.OK     100000.0 3000.000/30000.000 12     120     1200   op\n"
-            + "              100000.0 3000.000/30000.000 12     120     1200   (summary)\n"
-            + " details:\n"
-            + "    rest.OK:\n"
-            + "      op:\n"
-            + "        prepare: 3000.000/30000.000 queue       : 3000.000/30000.000 filtersReq : 3000.000/30000.000 handlersReq: 3000.000/30000.000\n"
-            + "        execute: 3000.000/30000.000 handlersResp: 3000.000/30000.000 filtersResp: 3000.000/30000.000 sendResp   : 3000.000/30000.000\n"
-            + "edge:\n"
-            + " simple:\n"
-            + "  status      tps      latency            [0,1)  [1,100) [100,) operation\n"
-            + "  rest.OK     100000.0 3000.000/30000.000 12     120     1200   op\n"
-            + "              100000.0 3000.000/30000.000 12     120     1200   (summary)\n"
-            + " details:\n"
-            + "    rest.OK:\n"
-            + "      op:\n"
-            + "        prepare     : 3000.000/30000.000 queue       : 3000.000/30000.000 sFiltersReq : 3000.000/30000.000 handlersReq : 3000.000/30000.000\n"
-            + "        cFiltersReq : 3000.000/30000.000 sendReq     : 3000.000/30000.000 getConnect  : 3000.000/30000.000 writeBuf    : 3000.000/30000.000\n"
-            + "        waitResp    : 3000.000/30000.000 wakeConsumer: 3000.000/30000.000 cFiltersResp: 3000.000/30000.000 handlersResp: 3000.000/30000.000\n"
-            + "        sFiltersResp: 3000.000/30000.000 sendResp    : 3000.000/30000.000\n",
-        event.getMessage());
+    try {
+      ArchaiusUtils.setProperty("servicecomb.metrics.publisher.defaultLog.enabled", true);
+      ArchaiusUtils.setProperty("servicecomb.metrics.invocation.latencyDistribution", "0,1,100");
+      publisher.init(globalRegistry, eventBus, config);
+      new Expectations(VertxUtils.class) {
+        {
+          VertxUtils.getVertxMap();
+          result = Collections.singletonMap("v", vertxImpl);
+          // TODO will be fixed by next vertx update.
+          //        vertxImpl.getEventLoopContextCreatedCount();;
+          //        result = 1;
+        }
+      };
+      DefaultPublishModel model = new DefaultPublishModel();
+      PerfInfo perfTotal = new PerfInfo();
+      perfTotal.setTps(10_0000);
+      perfTotal.setMsTotalTime(30000L * 1_0000);
+      perfTotal.setMsMaxLatency(30000);
+      OperationPerf operationPerf = new OperationPerf();
+      operationPerf.setOperation("op");
+      operationPerf.setLatencyDistribution(new Integer[] {12, 120, 1200});
+      operationPerf.getStages().put(MeterInvocationConst.STAGE_TOTAL, perfTotal);
+      operationPerf.getStages().put(MeterInvocationConst.STAGE_EXECUTOR_QUEUE, perfTotal);
+      operationPerf.getStages().put(MeterInvocationConst.STAGE_EXECUTION, perfTotal);
+      operationPerf.getStages().put(MeterInvocationConst.STAGE_PREPARE, perfTotal);
+      operationPerf.getStages().put(MeterInvocationConst.STAGE_HANDLERS_REQUEST, perfTotal);
+      operationPerf.getStages().put(MeterInvocationConst.STAGE_HANDLERS_RESPONSE, perfTotal);
+      operationPerf.getStages().put(MeterInvocationConst.STAGE_CLIENT_FILTERS_REQUEST, perfTotal);
+      operationPerf.getStages().put(MeterInvocationConst.STAGE_CLIENT_FILTERS_RESPONSE, perfTotal);
+      operationPerf.getStages().put(MeterInvocationConst.STAGE_CONSUMER_SEND_REQUEST, perfTotal);
+      operationPerf.getStages().put(MeterInvocationConst.STAGE_PRODUCER_SEND_RESPONSE, perfTotal);
+      operationPerf.getStages().put(MeterInvocationConst.STAGE_CONSUMER_GET_CONNECTION, perfTotal);
+      operationPerf.getStages().put(MeterInvocationConst.STAGE_CONSUMER_WRITE_TO_BUF, perfTotal);
+      operationPerf.getStages().put(MeterInvocationConst.STAGE_CONSUMER_WAIT_RESPONSE, perfTotal);
+      operationPerf.getStages().put(MeterInvocationConst.STAGE_CONSUMER_WAKE_CONSUMER, perfTotal);
+      operationPerf.getStages().put(MeterInvocationConst.STAGE_SERVER_FILTERS_REQUEST, perfTotal);
+      operationPerf.getStages().put(MeterInvocationConst.STAGE_SERVER_FILTERS_RESPONSE, perfTotal);
+
+      OperationPerfGroup operationPerfGroup = new OperationPerfGroup(Const.RESTFUL, Status.OK.name());
+      operationPerfGroup.addOperationPerf(operationPerf);
+
+      OperationPerfGroups operationPerfGroups = new OperationPerfGroups();
+      operationPerfGroups.getGroups().put(operationPerfGroup.getTransport(),
+          Collections.singletonMap(operationPerfGroup.getStatus(), operationPerfGroup));
+      model.getConsumer().setOperationPerfGroups(operationPerfGroups);
+      model.getProducer().setOperationPerfGroups(operationPerfGroups);
+      model.getEdge().setOperationPerfGroups(operationPerfGroups);
+
+      model.getThreadPools().put("test", new ThreadPoolPublishModel());
+      Measurement measurement = new Measurement(null, 0L, 1.0);
+
+      MeasurementNode measurementNodeCpuAll = new MeasurementNode("allProcess", new HashMap<>());
+      MeasurementNode measurementNodeCpuProcess = new MeasurementNode("currentProcess", new HashMap<>());
+      MeasurementNode measurementNodeSend = new MeasurementNode("send", new HashMap<>());
+      MeasurementNode measurementNodeSendPacket = new MeasurementNode("sendPackets", new HashMap<>());
+      MeasurementNode measurementNodeRecv = new MeasurementNode("receive", new HashMap<>());
+      MeasurementNode measurementNodeRecvPacket = new MeasurementNode("receivePackets", new HashMap<>());
+      MeasurementNode measurementNodeEth0 = new MeasurementNode("eth0", new HashMap<>());
+      MeasurementNode measurementNodeNet = new MeasurementNode("net", new HashMap<>());
+      MeasurementNode measurementNodeOs = new MeasurementNode("os", new HashMap<>());
+
+      measurementNodeSend.getMeasurements().add(measurement);
+      measurementNodeRecv.getMeasurements().add(measurement);
+      measurementNodeCpuAll.getMeasurements().add(measurement);
+      measurementNodeCpuProcess.getMeasurements().add(measurement);
+      measurementNodeRecvPacket.getMeasurements().add(measurement);
+      measurementNodeSendPacket.getMeasurements().add(measurement);
+
+      measurementNodeEth0.getChildren().put("send", measurementNodeSend);
+      measurementNodeEth0.getChildren().put("receive", measurementNodeRecv);
+      measurementNodeEth0.getChildren().put("receivePackets", measurementNodeRecvPacket);
+      measurementNodeEth0.getChildren().put("sendPackets", measurementNodeSendPacket);
+
+      measurementNodeNet.getChildren().put("eth0", measurementNodeEth0);
+      measurementNodeOs.getChildren().put("cpu", measurementNodeCpuAll);
+      measurementNodeOs.getChildren().put("processCpu", measurementNodeCpuProcess);
+      measurementNodeOs.getChildren().put("net", measurementNodeNet);
+
+      measurementNodeOs.getMeasurements().add(measurement);
+      measurementNodeNet.getMeasurements().add(measurement);
+      measurementNodeEth0.getMeasurements().add(measurement);
+
+      new MockUp<PublishModelFactory>() {
+        @Mock
+        DefaultPublishModel createDefaultPublishModel() {
+          return model;
+        }
+
+        @Mock
+        MeasurementTree getTree() {
+          return tree;
+        }
+      };
+      new Expectations() {
+        {
+          tree.findChild(OsMeter.OS_NAME);
+          result = measurementNodeOs;
+        }
+      };
+      publisher.onPolledEvent(new PolledEvent(Collections.emptyList(), Collections.emptyList()));
+      List<LoggingEvent> events = collector.getEvents().stream()
+          .filter(e -> DefaultLogPublisher.class.getName().equals(e.getLoggerName())).collect(Collectors.toList());
+      LoggingEvent event = events.get(0);
+      Assert.assertEquals("\n"
+              + "os:\n"
+              + "  cpu:\n"
+              + "    all usage: 100.00%    all idle: 0.00%    process: 100.00%\n"
+              + "  net:\n"
+              + "    send(Bps)    recv(Bps)    send(pps)    recv(pps)    interface\n"
+              + "    1            1            1            1            eth0\n"
+              + "vertx:\n"
+              + "  instances:\n"
+              + "    name       eventLoopContext-created\n"
+              + "    v          0\n"
+              + "threadPool:\n"
+              + "  coreSize maxThreads poolSize currentBusy rejected queueSize taskCount taskFinished name\n"
+              + "  0        0          0        0           NaN      0         0.0       0.0          test\n"
+              + "consumer:\n"
+              + " simple:\n"
+              + "  status      tps      latency            [0,1)  [1,100) [100,) operation\n"
+              + "  rest.OK     100000.0 3000.000/30000.000 12     120     1200   op\n"
+              + "              100000.0 3000.000/30000.000 12     120     1200   (summary)\n"
+              + " details:\n"
+              + "    rest.OK:\n"
+              + "      op:\n"
+              + "        prepare     : 3000.000/30000.000 handlersReq : 3000.000/30000.000 cFiltersReq: 3000.000/30000.000 sendReq     : 3000.000/30000.000\n"
+              + "        getConnect  : 3000.000/30000.000 writeBuf    : 3000.000/30000.000 waitResp   : 3000.000/30000.000 wakeConsumer: 3000.000/30000.000\n"
+              + "        cFiltersResp: 3000.000/30000.000 handlersResp: 3000.000/30000.000\n"
+              + "producer:\n"
+              + " simple:\n"
+              + "  status      tps      latency            [0,1)  [1,100) [100,) operation\n"
+              + "  rest.OK     100000.0 3000.000/30000.000 12     120     1200   op\n"
+              + "              100000.0 3000.000/30000.000 12     120     1200   (summary)\n"
+              + " details:\n"
+              + "    rest.OK:\n"
+              + "      op:\n"
+              + "        prepare: 3000.000/30000.000 queue       : 3000.000/30000.000 filtersReq : 3000.000/30000.000 handlersReq: 3000.000/30000.000\n"
+              + "        execute: 3000.000/30000.000 handlersResp: 3000.000/30000.000 filtersResp: 3000.000/30000.000 sendResp   : 3000.000/30000.000\n"
+              + "edge:\n"
+              + " simple:\n"
+              + "  status      tps      latency            [0,1)  [1,100) [100,) operation\n"
+              + "  rest.OK     100000.0 3000.000/30000.000 12     120     1200   op\n"
+              + "              100000.0 3000.000/30000.000 12     120     1200   (summary)\n"
+              + " details:\n"
+              + "    rest.OK:\n"
+              + "      op:\n"
+              + "        prepare     : 3000.000/30000.000 queue       : 3000.000/30000.000 sFiltersReq : 3000.000/30000.000 handlersReq : 3000.000/30000.000\n"
+              + "        cFiltersReq : 3000.000/30000.000 sendReq     : 3000.000/30000.000 getConnect  : 3000.000/30000.000 writeBuf    : 3000.000/30000.000\n"
+              + "        waitResp    : 3000.000/30000.000 wakeConsumer: 3000.000/30000.000 cFiltersResp: 3000.000/30000.000 handlersResp: 3000.000/30000.000\n"
+              + "        sFiltersResp: 3000.000/30000.000 sendResp    : 3000.000/30000.000\n",
+          event.getMessage());
+    } catch (Exception e) {
+      e.printStackTrace();
+      Assert.fail("unexpected error happen. " + e.getMessage());
+    }
   }
 }
diff --git a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/publish/TestThreadPoolPublishModelFactory.java b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/publish/TestThreadPoolPublishModelFactory.java
index 6468fd1..c48acae 100644
--- a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/publish/TestThreadPoolPublishModelFactory.java
+++ b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/publish/TestThreadPoolPublishModelFactory.java
@@ -24,7 +24,9 @@ import java.util.concurrent.ThreadPoolExecutor;
 import org.apache.servicecomb.foundation.common.utils.JsonUtils;
 import org.apache.servicecomb.metrics.core.publish.model.DefaultPublishModel;
 import org.junit.Assert;
+import org.junit.FixMethodOrder;
 import org.junit.Test;
+import org.junit.runners.MethodSorters;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.google.common.collect.Lists;
@@ -40,6 +42,7 @@ import mockit.Mock;
 import mockit.MockUp;
 import mockit.Mocked;
 
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
 public class TestThreadPoolPublishModelFactory {
   protected EventBus eventBus = new EventBus();
 
@@ -67,14 +70,19 @@ public class TestThreadPoolPublishModelFactory {
 
       }
     };
-    ThreadPoolMonitor.attach(registry, threadPoolExecutor, "test");
+    try {
+      ThreadPoolMonitor.attach(registry, threadPoolExecutor, "test");
 
-    PolledMeter.update(registry);
-    PublishModelFactory factory = new PublishModelFactory(Lists.newArrayList(registry.iterator()));
-    DefaultPublishModel model = factory.createDefaultPublishModel();
+      PolledMeter.update(registry);
+      PublishModelFactory factory = new PublishModelFactory(Lists.newArrayList(registry.iterator()));
+      DefaultPublishModel model = factory.createDefaultPublishModel();
 
-    Assert.assertEquals(
-        "{\"test\":{\"avgTaskCount\":0.0,\"avgCompletedTaskCount\":0.0,\"currentThreadsBusy\":0,\"maxThreads\":0,\"poolSize\":0,\"corePoolSize\":0,\"queueSize\":10,\"rejected\":\"NaN\"}}",
-        JsonUtils.writeValueAsString(model.getThreadPools()));
+      Assert.assertEquals(
+          "{\"test\":{\"avgTaskCount\":0.0,\"avgCompletedTaskCount\":0.0,\"currentThreadsBusy\":0,\"maxThreads\":0,\"poolSize\":0,\"corePoolSize\":0,\"queueSize\":10,\"rejected\":\"NaN\"}}",
+          JsonUtils.writeValueAsString(model.getThreadPools()));
+    } catch (Throwable e) {
+      e.printStackTrace();
+      Assert.fail("unexpected error happen. " + e.getMessage());
+    }
   }
 }


[servicecomb-java-chassis] 01/03: [SCB-1850]add demo-edge to integrations tests and run when build

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git

commit 8aa86f3f81cb4a816c090f9cd319bc7e4ed50cd0
Author: liubao <bi...@qq.com>
AuthorDate: Fri Apr 3 09:44:18 2020 +0800

    [SCB-1850]add demo-edge to integrations tests and run when build
---
 demo/demo-edge/authentication/pom.xml              |  42 +++
 .../src/main/resources/microservice.yaml           |   3 +-
 demo/demo-edge/business-1-1-0/pom.xml              |  41 ++-
 demo/demo-edge/business-1.0.0/pom.xml              |  39 +++
 demo/demo-edge/business-2.0.0/pom.xml              |  41 ++-
 demo/demo-edge/consumer/pom.xml                    |  45 ++-
 .../servicecomb/demo/edge/consumer/EdgeDemoIT.java |  39 +++
 demo/demo-edge/edge-service/pom.xml                |  39 +++
 .../src/main/resources/microservice.yaml           |   5 +-
 demo/demo-edge/pom.xml                             |  14 +-
 demo/docker-build-config/pom.xml                   |   2 +-
 demo/docker-run-config-edge/pom.xml                | 333 +++++++++++++++++++++
 demo/pom.xml                                       |   1 +
 13 files changed, 625 insertions(+), 19 deletions(-)

diff --git a/demo/demo-edge/authentication/pom.xml b/demo/demo-edge/authentication/pom.xml
index b27a5ee..0844d8e 100644
--- a/demo/demo-edge/authentication/pom.xml
+++ b/demo/demo-edge/authentication/pom.xml
@@ -35,4 +35,46 @@
       <artifactId>transport-rest-vertx</artifactId>
     </dependency>
   </dependencies>
+  <properties>
+    <demo.main>org.apache.servicecomb.demo.edge.authentication.AuthMain</demo.main>
+  </properties>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>com.github.odavid.maven.plugins</groupId>
+        <artifactId>mixin-maven-plugin</artifactId>
+        <configuration>
+          <mixins>
+            <mixin>
+              <groupId>org.apache.servicecomb.demo</groupId>
+              <artifactId>docker-build-config</artifactId>
+              <version>${project.version}</version>
+            </mixin>
+          </mixins>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>docker</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>io.fabric8</groupId>
+            <artifactId>docker-maven-plugin</artifactId>
+          </plugin>
+          <plugin>
+            <groupId>org.commonjava.maven.plugins</groupId>
+            <artifactId>directory-maven-plugin</artifactId>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
 </project>
diff --git a/demo/demo-edge/authentication/src/main/resources/microservice.yaml b/demo/demo-edge/authentication/src/main/resources/microservice.yaml
index 87e42bc..3c68147 100644
--- a/demo/demo-edge/authentication/src/main/resources/microservice.yaml
+++ b/demo/demo-edge/authentication/src/main/resources/microservice.yaml
@@ -26,4 +26,5 @@ servicecomb:
   rest:
     address: 127.0.0.1:7070
     server:
-      verticle-count: 10
+      # for test case run in one core machine
+      verticle-count: 1
diff --git a/demo/demo-edge/business-1-1-0/pom.xml b/demo/demo-edge/business-1-1-0/pom.xml
index 3700a68..312fa3c 100644
--- a/demo/demo-edge/business-1-1-0/pom.xml
+++ b/demo/demo-edge/business-1-1-0/pom.xml
@@ -45,7 +45,46 @@
     <dependency>
       <groupId>org.apache.servicecomb.demo</groupId>
       <artifactId>model</artifactId>
-      <version>2.0.2-SNAPSHOT</version>
+      <version>${project.version}</version>
     </dependency>
   </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>com.github.odavid.maven.plugins</groupId>
+        <artifactId>mixin-maven-plugin</artifactId>
+        <configuration>
+          <mixins>
+            <mixin>
+              <groupId>org.apache.servicecomb.demo</groupId>
+              <artifactId>docker-build-config</artifactId>
+              <version>${project.version}</version>
+            </mixin>
+          </mixins>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>docker</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>io.fabric8</groupId>
+            <artifactId>docker-maven-plugin</artifactId>
+          </plugin>
+          <plugin>
+            <groupId>org.commonjava.maven.plugins</groupId>
+            <artifactId>directory-maven-plugin</artifactId>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
 </project>
diff --git a/demo/demo-edge/business-1.0.0/pom.xml b/demo/demo-edge/business-1.0.0/pom.xml
index 1a25bae..f8b385f 100644
--- a/demo/demo-edge/business-1.0.0/pom.xml
+++ b/demo/demo-edge/business-1.0.0/pom.xml
@@ -50,4 +50,43 @@
       <version>${project.version}</version>
     </dependency>
   </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>com.github.odavid.maven.plugins</groupId>
+        <artifactId>mixin-maven-plugin</artifactId>
+        <configuration>
+          <mixins>
+            <mixin>
+              <groupId>org.apache.servicecomb.demo</groupId>
+              <artifactId>docker-build-config</artifactId>
+              <version>${project.version}</version>
+            </mixin>
+          </mixins>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>docker</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>io.fabric8</groupId>
+            <artifactId>docker-maven-plugin</artifactId>
+          </plugin>
+          <plugin>
+            <groupId>org.commonjava.maven.plugins</groupId>
+            <artifactId>directory-maven-plugin</artifactId>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
 </project>
diff --git a/demo/demo-edge/business-2.0.0/pom.xml b/demo/demo-edge/business-2.0.0/pom.xml
index dc49872..8281e10 100644
--- a/demo/demo-edge/business-2.0.0/pom.xml
+++ b/demo/demo-edge/business-2.0.0/pom.xml
@@ -47,7 +47,46 @@
     <dependency>
       <groupId>org.apache.servicecomb.demo</groupId>
       <artifactId>model</artifactId>
-      <version>2.0.2-SNAPSHOT</version>
+      <version>${project.version}</version>
     </dependency>
   </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>com.github.odavid.maven.plugins</groupId>
+        <artifactId>mixin-maven-plugin</artifactId>
+        <configuration>
+          <mixins>
+            <mixin>
+              <groupId>org.apache.servicecomb.demo</groupId>
+              <artifactId>docker-build-config</artifactId>
+              <version>${project.version}</version>
+            </mixin>
+          </mixins>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>docker</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>io.fabric8</groupId>
+            <artifactId>docker-maven-plugin</artifactId>
+          </plugin>
+          <plugin>
+            <groupId>org.commonjava.maven.plugins</groupId>
+            <artifactId>directory-maven-plugin</artifactId>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
 </project>
diff --git a/demo/demo-edge/consumer/pom.xml b/demo/demo-edge/consumer/pom.xml
index df2d2b6..b40fb89 100644
--- a/demo/demo-edge/consumer/pom.xml
+++ b/demo/demo-edge/consumer/pom.xml
@@ -50,8 +50,51 @@
     </dependency>
     <dependency>
       <groupId>org.apache.servicecomb.demo</groupId>
+      <artifactId>demo-schema</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.servicecomb.demo</groupId>
       <artifactId>model</artifactId>
-      <version>2.0.2-SNAPSHOT</version>
+      <version>${project.version}</version>
     </dependency>
   </dependencies>
+  <build>
+    <plugins>
+      <!-- Because other demos depend on this module, if add classpath, the depended module will fail dual to spring configuration files duplication.
+         So, we remove maven-dependency-plugin to make all integration tests run. In your applications, still need to add this to make packaged jar files run.
+       -->
+      <!--
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+      </plugin>
+      -->
+      <plugin>
+        <groupId>com.github.odavid.maven.plugins</groupId>
+        <artifactId>mixin-maven-plugin</artifactId>
+        <configuration>
+          <mixins>
+            <mixin>
+              <groupId>org.apache.servicecomb.demo</groupId>
+              <artifactId>docker-run-config-edge</artifactId>
+              <version>${project.version}</version>
+            </mixin>
+          </mixins>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <profiles>
+    <profile>
+      <id>docker</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>io.fabric8</groupId>
+            <artifactId>docker-maven-plugin</artifactId>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
 </project>
diff --git a/demo/demo-edge/consumer/src/test/java/org/apache/servicecomb/demo/edge/consumer/EdgeDemoIT.java b/demo/demo-edge/consumer/src/test/java/org/apache/servicecomb/demo/edge/consumer/EdgeDemoIT.java
new file mode 100644
index 0000000..f5f161f
--- /dev/null
+++ b/demo/demo-edge/consumer/src/test/java/org/apache/servicecomb/demo/edge/consumer/EdgeDemoIT.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+
+package org.apache.servicecomb.demo.edge.consumer;
+
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertThat;
+
+import org.apache.servicecomb.demo.TestMgr;
+import org.junit.Before;
+import org.junit.Test;
+
+public class EdgeDemoIT {
+  @Before
+  public void setUp() {
+    TestMgr.errors().clear();
+  }
+
+  @Test
+  public void clientGetsNoError() throws Exception {
+    ConsumerMain.main(new String[0]);
+
+    assertThat(TestMgr.errors().isEmpty(), is(true));
+  }
+}
diff --git a/demo/demo-edge/edge-service/pom.xml b/demo/demo-edge/edge-service/pom.xml
index 9f6b99a..836a3b0 100644
--- a/demo/demo-edge/edge-service/pom.xml
+++ b/demo/demo-edge/edge-service/pom.xml
@@ -44,4 +44,43 @@
       <artifactId>provider-pojo</artifactId>
     </dependency>
   </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>com.github.odavid.maven.plugins</groupId>
+        <artifactId>mixin-maven-plugin</artifactId>
+        <configuration>
+          <mixins>
+            <mixin>
+              <groupId>org.apache.servicecomb.demo</groupId>
+              <artifactId>docker-build-config</artifactId>
+              <version>${project.version}</version>
+            </mixin>
+          </mixins>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>docker</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>io.fabric8</groupId>
+            <artifactId>docker-maven-plugin</artifactId>
+          </plugin>
+          <plugin>
+            <groupId>org.commonjava.maven.plugins</groupId>
+            <artifactId>directory-maven-plugin</artifactId>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
 </project>
diff --git a/demo/demo-edge/edge-service/src/main/resources/microservice.yaml b/demo/demo-edge/edge-service/src/main/resources/microservice.yaml
index f4f2489..cd575cb 100644
--- a/demo/demo-edge/edge-service/src/main/resources/microservice.yaml
+++ b/demo/demo-edge/edge-service/src/main/resources/microservice.yaml
@@ -26,9 +26,10 @@ servicecomb:
   rest:
     address: 127.0.0.1:18080
     server:
-      verticle-count: 8
+      # for test case run in one core machine
+      verticle-count: 1
     client:
-      verticle-count: 8
+      verticle-count: 1
   handler:
     chain:
       Consumer:
diff --git a/demo/demo-edge/pom.xml b/demo/demo-edge/pom.xml
index 3dd60ef..99ba17c 100644
--- a/demo/demo-edge/pom.xml
+++ b/demo/demo-edge/pom.xml
@@ -40,23 +40,13 @@
   </dependencies>
 
   <modules>
-    <module>edge-service</module>
-
-
     <module>model</module>
-    <module>consumer</module>
+    <module>edge-service</module>
     <module>business-1.0.0</module>
     <module>business-1-1-0</module>
     <module>business-2.0.0</module>
     <module>authentication</module>
+    <module>consumer</module>
   </modules>
 
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
-      </plugin>
-    </plugins>
-  </build>
 </project>
diff --git a/demo/docker-build-config/pom.xml b/demo/docker-build-config/pom.xml
index 99bc943..6e1c028 100644
--- a/demo/docker-build-config/pom.xml
+++ b/demo/docker-build-config/pom.xml
@@ -52,7 +52,7 @@
                     <descriptor>${root.basedir}/demo/assembly/assembly.xml</descriptor>
                   </assembly>
                   <entryPoint>
-                    <shell>java $JAVA_OPTS -jar $JAR_PATH</shell>
+                    <shell>java -Xmx64m $JAVA_OPTS -jar $JAR_PATH</shell>
                   </entryPoint>
                 </build>
               </image>
diff --git a/demo/docker-run-config-edge/pom.xml b/demo/docker-run-config-edge/pom.xml
new file mode 100644
index 0000000..d6ae1a5
--- /dev/null
+++ b/demo/docker-run-config-edge/pom.xml
@@ -0,0 +1,333 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You 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.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <parent>
+    <artifactId>demo-parent</artifactId>
+    <groupId>org.apache.servicecomb.demo</groupId>
+    <version>2.0.2-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>docker-run-config-edge</artifactId>
+  <name>Java Chassis::Demo::Docker Run Config</name>
+
+  <packaging>pom</packaging>
+
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>io.fabric8</groupId>
+          <artifactId>docker-maven-plugin</artifactId>
+          <configuration>
+            <images>
+              <image>
+                <name>servicecomb/service-center</name>
+                <alias>service-center</alias>
+                <run>
+                  <wait>
+                    <log>server is ready</log>
+                    <tcp>
+                      <ports>
+                        <port>30100</port>
+                      </ports>
+                    </tcp>
+                    <time>60000</time>
+                  </wait>
+                  <ports>
+                    <port>service.center.port:30100</port>
+                  </ports>
+                </run>
+              </image>
+              <image>
+                <name>authentication:${project.version}</name>
+                <alias>authentication</alias>
+                <run>
+                  <env>
+                    <JAVA_OPTS>
+                      -Dservicecomb.service.registry.address=http://sc.servicecomb.io:30100 -Dservicecomb.service.publishAddress=${docker.hostname}
+                    </JAVA_OPTS>
+                    <JAR_PATH>/maven/maven/authentication-${project.version}.jar</JAR_PATH>
+                  </env>
+                  <links>
+                    <link>service-center:sc.servicecomb.io</link>
+                  </links>
+                  <wait>
+                    <log>Register microservice instance success</log>
+                    <!--
+                        the log waiting of the plugin has a bug and fails frequently
+                        refer to https://github.com/fabric8io/docker-maven-plugin/issues/767
+                        this http checking is used as a temporary solution
+                    -->
+                    <tcp>
+                      <ports>
+                        <port>7070</port>
+                      </ports>
+                    </tcp>
+                    <time>120000</time>
+                  </wait>
+                  <ports>
+                    <port>7070:7070</port>
+                  </ports>
+                  <dependsOn>
+                    <container>service-center</container>
+                  </dependsOn>
+                </run>
+              </image>
+              <image>
+                <name>business-1-0-0:${project.version}</name>
+                <alias>business-1-0-0</alias>
+                <run>
+                  <env>
+                    <JAVA_OPTS>
+                      -Dservicecomb.service.registry.address=http://sc.servicecomb.io:30100 -Dservicecomb.service.publishAddress=${docker.hostname}
+                    </JAVA_OPTS>
+                    <JAR_PATH>/maven/maven/business-1-0-0-${project.version}.jar</JAR_PATH>
+                  </env>
+                  <links>
+                    <link>service-center:sc.servicecomb.io</link>
+                  </links>
+                  <wait>
+                    <log>Register microservice instance success</log>
+                    <!--
+                        the log waiting of the plugin has a bug and fails frequently
+                        refer to https://github.com/fabric8io/docker-maven-plugin/issues/767
+                        this http checking is used as a temporary solution
+                    -->
+                    <tcp>
+                      <ports>
+                        <port>8080</port>
+                      </ports>
+                    </tcp>
+                    <time>120000</time>
+                  </wait>
+                  <ports>
+                    <port>8080:8080</port>
+                  </ports>
+                  <dependsOn>
+                    <container>service-center</container>
+                  </dependsOn>
+                </run>
+              </image>
+              <image>
+                <name>business-1-1-0:${project.version}</name>
+                <alias>business-1-1-0</alias>
+                <run>
+                  <env>
+                    <JAVA_OPTS>
+                      -Dservicecomb.service.registry.address=http://sc.servicecomb.io:30100 -Dservicecomb.service.publishAddress=${docker.hostname}
+                    </JAVA_OPTS>
+                    <JAR_PATH>/maven/maven/business-1-1-0-${project.version}.jar</JAR_PATH>
+                  </env>
+                  <links>
+                    <link>service-center:sc.servicecomb.io</link>
+                  </links>
+                  <wait>
+                    <log>Register microservice instance success</log>
+                    <!--
+                        the log waiting of the plugin has a bug and fails frequently
+                        refer to https://github.com/fabric8io/docker-maven-plugin/issues/767
+                        this http checking is used as a temporary solution
+                    -->
+                    <tcp>
+                      <ports>
+                        <port>8090</port>
+                      </ports>
+                    </tcp>
+                    <time>120000</time>
+                  </wait>
+                  <ports>
+                    <port>8090:8090</port>
+                  </ports>
+                  <dependsOn>
+                    <container>service-center</container>
+                  </dependsOn>
+                </run>
+              </image>
+              <image>
+                <name>business-2-0-0:${project.version}</name>
+                <alias>business-2-0-0</alias>
+                <run>
+                  <env>
+                    <JAVA_OPTS>
+                      -Dservicecomb.service.registry.address=http://sc.servicecomb.io:30100 -Dservicecomb.service.publishAddress=${docker.hostname}
+                    </JAVA_OPTS>
+                    <JAR_PATH>/maven/maven/business-2-0-0-${project.version}.jar</JAR_PATH>
+                  </env>
+                  <links>
+                    <link>service-center:sc.servicecomb.io</link>
+                  </links>
+                  <wait>
+                    <log>Register microservice instance success</log>
+                    <!--
+                        the log waiting of the plugin has a bug and fails frequently
+                        refer to https://github.com/fabric8io/docker-maven-plugin/issues/767
+                        this http checking is used as a temporary solution
+                    -->
+                    <tcp>
+                      <ports>
+                        <port>8091</port>
+                      </ports>
+                    </tcp>
+                    <time>120000</time>
+                  </wait>
+                  <ports>
+                    <port>8091:8091</port>
+                  </ports>
+                  <dependsOn>
+                    <container>service-center</container>
+                  </dependsOn>
+                </run>
+              </image>
+              <image>
+                <name>edge-service:${project.version}</name>
+                <alias>edge-service</alias>
+                <run>
+                  <env>
+                    <JAVA_OPTS>
+                      -Dservicecomb.service.registry.address=http://sc.servicecomb.io:30100 -Dservicecomb.service.publishAddress=${docker.hostname}
+                    </JAVA_OPTS>
+                    <JAR_PATH>/maven/maven/edge-service-${project.version}.jar</JAR_PATH>
+                  </env>
+                  <links>
+                    <link>service-center:sc.servicecomb.io</link>
+                  </links>
+                  <wait>
+                    <log>Register microservice instance success</log>
+                    <!--
+                        the log waiting of the plugin has a bug and fails frequently
+                        refer to https://github.com/fabric8io/docker-maven-plugin/issues/767
+                        this http checking is used as a temporary solution
+                    -->
+                    <tcp>
+                      <ports>
+                        <port>18080</port>
+                      </ports>
+                    </tcp>
+                    <time>120000</time>
+                  </wait>
+                  <ports>
+                    <port>18080:18080</port>
+                  </ports>
+                  <dependsOn>
+                    <container>service-center</container>
+                  </dependsOn>
+                </run>
+              </image>
+            </images>
+          </configuration>
+          <executions>
+            <execution>
+              <id>start</id>
+              <phase>pre-integration-test</phase>
+              <goals>
+                <goal>start</goal>
+              </goals>
+            </execution>
+            <execution>
+              <id>stop</id>
+              <phase>post-integration-test</phase>
+              <goals>
+                <goal>stop</goal>
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>docker</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.codehaus.gmaven</groupId>
+            <artifactId>gmaven-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>add-default-properties</id>
+                <phase>initialize</phase>
+                <goals>
+                  <goal>execute</goal>
+                </goals>
+                <configuration>
+                  <source>
+                    project.properties.setProperty('docker.hostname', 'localhost')
+                    log.info("Docker hostname is " + project.properties['docker.hostname'])
+                  </source>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-failsafe-plugin</artifactId>
+            <version>2.19.1</version>
+            <configuration>
+              <systemPropertyVariables>
+                <servicecomb.service.registry.address>http://${docker.hostname}:${service.center.port}</servicecomb.service.registry.address>
+              </systemPropertyVariables>
+              <argLine>${jacoco.failsafe.argLine}</argLine>
+            </configuration>
+            <executions>
+              <execution>
+                <goals>
+                  <goal>integration-test</goal>
+                  <goal>verify</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>docker-machine</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.codehaus.gmaven</groupId>
+            <artifactId>gmaven-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>add-dynamic-properties</id>
+                <phase>prepare-package</phase>
+                <goals>
+                  <goal>execute</goal>
+                </goals>
+                <configuration>
+                  <source>
+                    def process = "docker-machine ip default".execute()
+                    process.waitFor()
+                    project.properties.setProperty('docker.hostname', process.in.text.trim())
+
+                    log.info("Docker hostname is " + project.properties['docker.hostname'])
+                  </source>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+</project>
diff --git a/demo/pom.xml b/demo/pom.xml
index 2125eb4..431ea88 100644
--- a/demo/pom.xml
+++ b/demo/pom.xml
@@ -33,6 +33,7 @@
   <modules>
     <module>docker-build-config</module>
     <module>docker-run-config</module>
+    <module>docker-run-config-edge</module>
     <module>demo-schema</module>
     <module>demo-pojo</module>
     <module>demo-jaxrs</module>


[servicecomb-java-chassis] 03/03: [SCB-1850]fix docker port expose problems

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git

commit a9547d5b2aa32eb1a992bed857160adb113b9fa5
Author: liubao <bi...@qq.com>
AuthorDate: Fri Apr 3 19:51:01 2020 +0800

    [SCB-1850]fix docker port expose problems
---
 .../demo-edge/authentication/src/main/resources/microservice.yaml | 2 +-
 .../demo-edge/business-1-1-0/src/main/resources/microservice.yaml | 2 +-
 .../demo-edge/business-1.0.0/src/main/resources/microservice.yaml | 2 +-
 .../demo-edge/business-2.0.0/src/main/resources/microservice.yaml | 2 +-
 demo/demo-edge/edge-service/src/main/resources/microservice.yaml  | 2 +-
 demo/docker-run-config-edge/pom.xml                               | 8 ++++----
 6 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/demo/demo-edge/authentication/src/main/resources/microservice.yaml b/demo/demo-edge/authentication/src/main/resources/microservice.yaml
index 3c68147..d6a13c8 100644
--- a/demo/demo-edge/authentication/src/main/resources/microservice.yaml
+++ b/demo/demo-edge/authentication/src/main/resources/microservice.yaml
@@ -24,7 +24,7 @@ servicecomb:
     registry:
       address: http://127.0.0.1:30100
   rest:
-    address: 127.0.0.1:7070
+    address: 0.0.0.0:7070
     server:
       # for test case run in one core machine
       verticle-count: 1
diff --git a/demo/demo-edge/business-1-1-0/src/main/resources/microservice.yaml b/demo/demo-edge/business-1-1-0/src/main/resources/microservice.yaml
index 4b54ba8..3ea33d7 100644
--- a/demo/demo-edge/business-1-1-0/src/main/resources/microservice.yaml
+++ b/demo/demo-edge/business-1-1-0/src/main/resources/microservice.yaml
@@ -24,6 +24,6 @@ servicecomb:
     registry:
       address: http://127.0.0.1:30100
   rest:
-    address: 127.0.0.1:8090
+    address: 0.0.0.0:8090
     server:
       verticle-count: 1
diff --git a/demo/demo-edge/business-1.0.0/src/main/resources/microservice.yaml b/demo/demo-edge/business-1.0.0/src/main/resources/microservice.yaml
index eacf28c..d85b4b5 100644
--- a/demo/demo-edge/business-1.0.0/src/main/resources/microservice.yaml
+++ b/demo/demo-edge/business-1.0.0/src/main/resources/microservice.yaml
@@ -24,6 +24,6 @@ servicecomb:
     registry:
       address: http://127.0.0.1:30100
   rest:
-    address: 127.0.0.1:8080
+    address: 0.0.0.0:8080
     server:
       verticle-count: 1
diff --git a/demo/demo-edge/business-2.0.0/src/main/resources/microservice.yaml b/demo/demo-edge/business-2.0.0/src/main/resources/microservice.yaml
index bfb029f..2866854 100644
--- a/demo/demo-edge/business-2.0.0/src/main/resources/microservice.yaml
+++ b/demo/demo-edge/business-2.0.0/src/main/resources/microservice.yaml
@@ -24,6 +24,6 @@ servicecomb:
     registry:
       address: http://127.0.0.1:30100
   rest:
-    address: 127.0.0.1:8091
+    address: 0.0.0.0:8091
     server:
       verticle-count: 1
diff --git a/demo/demo-edge/edge-service/src/main/resources/microservice.yaml b/demo/demo-edge/edge-service/src/main/resources/microservice.yaml
index cd575cb..c8823da 100644
--- a/demo/demo-edge/edge-service/src/main/resources/microservice.yaml
+++ b/demo/demo-edge/edge-service/src/main/resources/microservice.yaml
@@ -24,7 +24,7 @@ servicecomb:
     registry:
       address: http://127.0.0.1:30100
   rest:
-    address: 127.0.0.1:18080
+    address: 0.0.0.0:18080
     server:
       # for test case run in one core machine
       verticle-count: 1
diff --git a/demo/docker-run-config-edge/pom.xml b/demo/docker-run-config-edge/pom.xml
index d6ae1a5..680ce7d 100644
--- a/demo/docker-run-config-edge/pom.xml
+++ b/demo/docker-run-config-edge/pom.xml
@@ -62,7 +62,7 @@
                 <run>
                   <env>
                     <JAVA_OPTS>
-                      -Dservicecomb.service.registry.address=http://sc.servicecomb.io:30100 -Dservicecomb.service.publishAddress=${docker.hostname}
+                      -Dservicecomb.service.registry.address=http://sc.servicecomb.io:30100
                     </JAVA_OPTS>
                     <JAR_PATH>/maven/maven/authentication-${project.version}.jar</JAR_PATH>
                   </env>
@@ -97,7 +97,7 @@
                 <run>
                   <env>
                     <JAVA_OPTS>
-                      -Dservicecomb.service.registry.address=http://sc.servicecomb.io:30100 -Dservicecomb.service.publishAddress=${docker.hostname}
+                      -Dservicecomb.service.registry.address=http://sc.servicecomb.io:30100
                     </JAVA_OPTS>
                     <JAR_PATH>/maven/maven/business-1-0-0-${project.version}.jar</JAR_PATH>
                   </env>
@@ -132,7 +132,7 @@
                 <run>
                   <env>
                     <JAVA_OPTS>
-                      -Dservicecomb.service.registry.address=http://sc.servicecomb.io:30100 -Dservicecomb.service.publishAddress=${docker.hostname}
+                      -Dservicecomb.service.registry.address=http://sc.servicecomb.io:30100
                     </JAVA_OPTS>
                     <JAR_PATH>/maven/maven/business-1-1-0-${project.version}.jar</JAR_PATH>
                   </env>
@@ -167,7 +167,7 @@
                 <run>
                   <env>
                     <JAVA_OPTS>
-                      -Dservicecomb.service.registry.address=http://sc.servicecomb.io:30100 -Dservicecomb.service.publishAddress=${docker.hostname}
+                      -Dservicecomb.service.registry.address=http://sc.servicecomb.io:30100
                     </JAVA_OPTS>
                     <JAR_PATH>/maven/maven/business-2-0-0-${project.version}.jar</JAR_PATH>
                   </env>