[ https://issues.apache.org/jira/browse/SCB-799?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16571603#comment-16571603 ]
ASF GitHub Bot commented on SCB-799: ------------------------------------ liubao68 closed pull request #854: [SCB-799] Fix ut in different environment URL: https://github.com/apache/incubator-servicecomb-java-chassis/pull/854 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/foundations/foundation-ssl/pom.xml b/foundations/foundation-ssl/pom.xml index d307eb688..d08382913 100644 --- a/foundations/foundation-ssl/pom.xml +++ b/foundations/foundation-ssl/pom.xml @@ -48,16 +48,6 @@ <artifactId>slf4j-log4j12</artifactId> <scope>test</scope> </dependency> - <dependency> - <groupId>org.jmockit</groupId> - <artifactId>jmockit</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.mockito</groupId> - <artifactId>mockito-core</artifactId> - <scope>test</scope> - </dependency> <dependency> <groupId>org.apache.servicecomb</groupId> <artifactId>foundation-config</artifactId> diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/TestClientPoolManager.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/TestClientPoolManager.java index 4548e5be3..6709ca531 100644 --- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/TestClientPoolManager.java +++ b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/TestClientPoolManager.java @@ -51,6 +51,7 @@ Map<String, Object> contextMap = new HashMap<>(); + @Mocked Context context; @Before @@ -58,7 +59,7 @@ public void setup() { poolMgr = new ClientPoolManager<>(vertx, factory); id = Deencapsulation.getField(poolMgr, "id"); pools = Deencapsulation.getField(poolMgr, "pools"); - context = new MockUp<Context>() { + new MockUp<Context>(context) { @Mock void put(String key, Object value) { contextMap.put(key, value); @@ -79,7 +80,7 @@ Vertx owner() { boolean isEventLoopContext() { return true; } - }.getMockInstance(); + }; } @Test @@ -198,7 +199,7 @@ public void findByContext_normalThread() { } @Test - public void findByContext_otherVertx(@Mocked Vertx otherVertx, @Mocked Context otherContext) { + public void findByContext_otherVertx(@Mocked VertxImpl otherVertx, @Mocked Context otherContext) { HttpClientWithContext pool = new HttpClientWithContext(null, null); pools.add(pool); @@ -215,7 +216,7 @@ public void findByContext_otherVertx(@Mocked Vertx otherVertx, @Mocked Context o } @Test - public void findByContext_woker(@Mocked Context workerContext) { + public void findByContext_worker(@Mocked Context workerContext) { HttpClientWithContext pool = new HttpClientWithContext(null, null); pools.add(pool); diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/http/TestHttpClientPoolFactory.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/http/TestHttpClientPoolFactory.java index 08b9a32b1..669d1da66 100644 --- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/http/TestHttpClientPoolFactory.java +++ b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/http/TestHttpClientPoolFactory.java @@ -19,11 +19,11 @@ import org.junit.Assert; import org.junit.Test; -import io.vertx.core.Context; -import io.vertx.core.Vertx; import io.vertx.core.http.HttpClient; import io.vertx.core.http.HttpClientOptions; +import io.vertx.core.impl.ContextImpl; import io.vertx.core.impl.VertxImpl; +import io.vertx.core.impl.VertxInternal; import mockit.Expectations; import mockit.Mocked; @@ -33,7 +33,8 @@ HttpClientPoolFactory factory = new HttpClientPoolFactory(httpClientOptions); @Test - public void createClientPool(@Mocked Vertx vertx, @Mocked Context context, @Mocked HttpClient httpClient) { + public void createClientPool(@Mocked VertxInternal vertx, @Mocked ContextImpl context, + @Mocked HttpClient httpClient) { new Expectations(VertxImpl.class) { { context.owner(); diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/tcp/TestTcpClientConnectionPool.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/tcp/TestTcpClientConnectionPool.java index b81e2c46c..2ca9736d8 100644 --- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/tcp/TestTcpClientConnectionPool.java +++ b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/tcp/TestTcpClientConnectionPool.java @@ -21,12 +21,12 @@ import org.junit.Before; import org.junit.Test; -import io.vertx.core.Context; +import io.vertx.core.impl.ContextImpl; import mockit.Mocked; public class TestTcpClientConnectionPool { @Mocked - Context context; + ContextImpl context; @Mocked NetClientWrapper netClientWrapper; diff --git a/handlers/handler-fault-injection/src/test/java/org/apache/servicecomb/faultinjection/AbortFaultTest.java b/handlers/handler-fault-injection/src/test/java/org/apache/servicecomb/faultinjection/AbortFaultTest.java index ec4f3c1f4..851fb916e 100644 --- a/handlers/handler-fault-injection/src/test/java/org/apache/servicecomb/faultinjection/AbortFaultTest.java +++ b/handlers/handler-fault-injection/src/test/java/org/apache/servicecomb/faultinjection/AbortFaultTest.java @@ -18,7 +18,10 @@ package org.apache.servicecomb.faultinjection; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import javax.xml.ws.Holder; @@ -36,12 +39,19 @@ import com.netflix.config.DynamicProperty; import io.vertx.core.Vertx; +import mockit.Deencapsulation; public class AbortFaultTest { private Invocation invocation; + @SuppressWarnings("unchecked") @Before public void before() { + ArchaiusUtils.resetConfig(); + ((Map<String, String>) Deencapsulation.getField(FaultInjectionConfig.class, "cfgCallback")).clear(); + ((Map<String, AtomicLong>) Deencapsulation.getField(FaultInjectionUtil.class, "requestCount")).clear(); + ((Map<String, AtomicInteger>) Deencapsulation.getField(FaultInjectionUtil.class, "configCenterValue")).clear(); + invocation = Mockito.mock(Invocation.class); Transport transport = Mockito.mock(Transport.class); Mockito.when(invocation.getMicroserviceQualifiedName()).thenReturn("MicroserviceQualifiedName12"); @@ -54,17 +64,22 @@ public void before() { @After public void after() { - System.getProperties() - .remove("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent"); - System.getProperties() - .remove("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus"); ArchaiusUtils.resetConfig(); } @Test public void injectFaultError() { - System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus", "421"); - System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent", "100"); + ArchaiusUtils + .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus", "421"); + ArchaiusUtils + .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent", "100"); + + assertEquals("421", DynamicProperty + .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus") + .getString()); + assertEquals("100", DynamicProperty + .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent") + .getString()); AbortFault abortFault = new AbortFault(); FaultParam faultParam = new FaultParam(1); @@ -75,12 +90,6 @@ public void injectFaultError() { abortFault.injectFault(invocation, faultParam, response -> resultHolder.value = response.getResult()); AtomicLong count = FaultInjectionUtil.getOperMetTotalReq("restMicroserviceQualifiedName12"); - assertEquals("421", DynamicProperty - .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus") - .getString()); - assertEquals("100", DynamicProperty - .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent") - .getString()); assertEquals(1, count.get()); assertEquals(421, resultHolder.value.getStatusCode()); assertEquals("aborted by fault inject", resultHolder.value.getReasonPhrase()); @@ -89,8 +98,16 @@ public void injectFaultError() { @Test public void injectFaultNoError() { - System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus", "421"); - System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent", "0"); + ArchaiusUtils + .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus", "421"); + ArchaiusUtils.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent", "0"); + + assertEquals("421", DynamicProperty + .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus") + .getString()); + assertEquals("0", DynamicProperty + .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent") + .getString()); AbortFault abortFault = new AbortFault(); FaultParam faultParam = new FaultParam(1); @@ -101,18 +118,19 @@ public void injectFaultNoError() { abortFault.injectFault(invocation, faultParam, response -> resultHolder.value = response.getResult()); AtomicLong count = FaultInjectionUtil.getOperMetTotalReq("restMicroserviceQualifiedName12"); - assertEquals("421", DynamicProperty - .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.httpStatus") - .getString()); - assertEquals("0", DynamicProperty - .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent") - .getString()); assertEquals(1, count.get()); assertEquals("success", resultHolder.value); } @Test public void injectFaultNoPercentageConfig() { + ArchaiusUtils + .updateProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent", null); + + assertNull(DynamicProperty + .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent") + .getString()); + AbortFault abortFault = new AbortFault(); FaultParam faultParam = new FaultParam(1); Vertx vertx = VertxUtils.getOrCreateVertxByName("faultinjectionTest", null); @@ -128,7 +146,13 @@ public void injectFaultNoPercentageConfig() { @Test public void injectFaultNoErrorCodeConfig() { - System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent", "10"); + ArchaiusUtils + .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent", "10"); + + assertEquals("10", DynamicProperty + .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.abort.percent") + .getString()); + AbortFault abortFault = new AbortFault(); FaultParam faultParam = new FaultParam(10); Vertx vertx = VertxUtils.getOrCreateVertxByName("faultinjectionTest", null); diff --git a/handlers/handler-fault-injection/src/test/java/org/apache/servicecomb/faultinjection/DelayFaultTest.java b/handlers/handler-fault-injection/src/test/java/org/apache/servicecomb/faultinjection/DelayFaultTest.java index 23521dfd3..71c17825b 100644 --- a/handlers/handler-fault-injection/src/test/java/org/apache/servicecomb/faultinjection/DelayFaultTest.java +++ b/handlers/handler-fault-injection/src/test/java/org/apache/servicecomb/faultinjection/DelayFaultTest.java @@ -18,9 +18,12 @@ package org.apache.servicecomb.faultinjection; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import javax.xml.ws.Holder; @@ -37,12 +40,19 @@ import com.netflix.config.DynamicProperty; import io.vertx.core.Vertx; +import mockit.Deencapsulation; public class DelayFaultTest { private Invocation invocation; + @SuppressWarnings("unchecked") @Before public void before() { + ArchaiusUtils.resetConfig(); + ((Map<String, String>) Deencapsulation.getField(FaultInjectionConfig.class, "cfgCallback")).clear(); + ((Map<String, AtomicLong>) Deencapsulation.getField(FaultInjectionUtil.class, "requestCount")).clear(); + ((Map<String, AtomicInteger>) Deencapsulation.getField(FaultInjectionUtil.class, "configCenterValue")).clear(); + invocation = Mockito.mock(Invocation.class); Transport transport = Mockito.mock(Transport.class); Mockito.when(invocation.getMicroserviceQualifiedName()).thenReturn("MicroserviceQualifiedName12"); @@ -55,17 +65,22 @@ public void before() { @After public void after() { - System.getProperties() - .remove("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay"); - System.getProperties() - .remove("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent"); ArchaiusUtils.resetConfig(); } @Test public void injectFaultVertxDelay() throws InterruptedException { - System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay", "10"); - System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", "100"); + ArchaiusUtils + .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay", "10"); + ArchaiusUtils + .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", "100"); + + assertEquals("10", DynamicProperty + .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay") + .getString()); + assertEquals("100", DynamicProperty + .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent") + .getString()); DelayFault delayFault = new DelayFault(); FaultParam faultParam = new FaultParam(1); @@ -81,20 +96,23 @@ public void injectFaultVertxDelay() throws InterruptedException { latch.await(10, TimeUnit.SECONDS); AtomicLong count = FaultInjectionUtil.getOperMetTotalReq("restMicroserviceQualifiedName12"); - assertEquals("10", DynamicProperty - .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay") - .getString()); - assertEquals("100", DynamicProperty - .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent") - .getString()); assertEquals(1, count.get()); assertEquals("success", resultHolder.value); } @Test public void injectFaultSystemDelay() throws InterruptedException { - System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay", "10"); - System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", "100"); + ArchaiusUtils + .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay", "10"); + ArchaiusUtils + .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", "100"); + + assertEquals("10", DynamicProperty + .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay") + .getString()); + assertEquals("100", DynamicProperty + .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent") + .getString()); DelayFault delayFault = new DelayFault(); FaultParam faultParam = new FaultParam(1); @@ -108,20 +126,22 @@ public void injectFaultSystemDelay() throws InterruptedException { latch.await(10, TimeUnit.SECONDS); AtomicLong count = FaultInjectionUtil.getOperMetTotalReq("restMicroserviceQualifiedName12"); - assertEquals("10", DynamicProperty - .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay") - .getString()); - assertEquals("100", DynamicProperty - .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent") - .getString()); assertEquals(1, count.get()); assertEquals("success", resultHolder.value); } @Test public void injectFaultNotDelay() throws InterruptedException { - System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay", "10"); - System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", "0"); + ArchaiusUtils + .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay", "10"); + ArchaiusUtils.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", "0"); + + assertEquals("10", DynamicProperty + .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay") + .getString()); + assertEquals("0", DynamicProperty + .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent") + .getString()); DelayFault delayFault = new DelayFault(); FaultParam faultParam = new FaultParam(1); @@ -137,18 +157,19 @@ public void injectFaultNotDelay() throws InterruptedException { latch.await(3, TimeUnit.SECONDS); AtomicLong count = FaultInjectionUtil.getOperMetTotalReq("restMicroserviceQualifiedName12"); - assertEquals("10", DynamicProperty - .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.fixedDelay") - .getString()); - assertEquals("0", DynamicProperty - .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent") - .getString()); assertEquals(1, count.get()); assertEquals("success", resultHolder.value); } @Test public void injectFaultNoPercentageConfig() { + ArchaiusUtils + .updateProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", null); + + assertNull(DynamicProperty + .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent") + .getString()); + DelayFault delayFault = new DelayFault(); FaultParam faultParam = new FaultParam(1); Vertx vertx = VertxUtils.getOrCreateVertxByName("faultinjectionTest", null); @@ -164,7 +185,13 @@ public void injectFaultNoPercentageConfig() { @Test public void injectFaultNoDelayMsConfig() { - System.setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", "10"); + ArchaiusUtils + .setProperty("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent", "10"); + + assertEquals("10", DynamicProperty + .getInstance("servicecomb.governance.Consumer._global.policy.fault.protocols.rest.delay.percent") + .getString()); + DelayFault delayFault = new DelayFault(); FaultParam faultParam = new FaultParam(10); Vertx vertx = VertxUtils.getOrCreateVertxByName("faultinjectionTest", null); diff --git a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/Config.java b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/Config.java index 2bc37ac86..2c6d69ab5 100644 --- a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/Config.java +++ b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/Config.java @@ -37,7 +37,7 @@ public static final String PROVIDER_ENABLED = "servicecomb.flowcontrol.Provider.qps.enabled"; - public static final Config INSTANCE = new Config(); + public static Config INSTANCE = new Config(); private final DynamicBooleanProperty consumerEanbled = DynamicPropertyFactory.getInstance().getBooleanProperty(CONSUMER_ENABLED, true); @@ -45,7 +45,7 @@ private final DynamicBooleanProperty providerEanbled = DynamicPropertyFactory.getInstance().getBooleanProperty(PROVIDER_ENABLED, true); - private Config() { + public Config() { consumerEanbled.addCallback(() -> { boolean newValue = consumerEanbled.get(); LOGGER.info("{} changed from {} to {}", CONSUMER_ENABLED, consumerEanbled, newValue); diff --git a/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/TestConfig.java b/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/TestConfig.java index 15d1e29b1..3f1a7f6fa 100644 --- a/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/TestConfig.java +++ b/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/TestConfig.java @@ -40,6 +40,8 @@ public static void classTeardown() { @Test public void testEnabled() { + Config.INSTANCE = new Config(); + Assert.assertEquals(true, Config.INSTANCE.isProviderEnabled()); ArchaiusUtils.updateProperty(Config.PROVIDER_ENABLED, false); Assert.assertEquals(false, Config.INSTANCE.isProviderEnabled()); diff --git a/parent/pom.xml b/parent/pom.xml index 758db22a5..bc4a443de 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -60,12 +60,6 @@ <version>3.0.0</version> <scope>test</scope> </dependency> - <dependency> - <groupId>com.github.seanyinx</groupId> - <artifactId>unit-scaffolding</artifactId> - <version>1.0.0</version> - <scope>test</scope> - </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-all</artifactId> @@ -81,11 +75,6 @@ <artifactId>mockito-core</artifactId> <scope>test</scope> </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> @@ -101,6 +90,17 @@ <artifactId>powermock-module-junit4</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>com.github.seanyinx</groupId> + <artifactId>unit-scaffolding</artifactId> + <version>1.0.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> <dependency> <groupId>javax.inject</groupId> diff --git a/pom.xml b/pom.xml index 74f7da8a1..adc0bbf93 100644 --- a/pom.xml +++ b/pom.xml @@ -186,6 +186,7 @@ </excludes> <forkCount>1</forkCount> <reuseForks>true</reuseForks> + <runOrder>alphabetical</runOrder> </configuration> </plugin> <plugin> ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > fix problem about "mvn install" in ubuntu > ----------------------------------------- > > Key: SCB-799 > URL: https://issues.apache.org/jira/browse/SCB-799 > Project: Apache ServiceComb > Issue Type: Bug > Components: Java-Chassis > Reporter: wujimin > Assignee: wujimin > Priority: Major > Fix For: java-chassis-1.1.0 > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)