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

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new 7a6655d  Make camel-netty-http tests run in parallel
7a6655d is described below

commit 7a6655dcac9df593cb3509df5496b17eeb884670
Author: Guillaume Nodet <gno...@gmail.com>
AuthorDate: Tue Mar 23 17:38:05 2021 +0100

    Make camel-netty-http tests run in parallel
---
 components/camel-netty-http/pom.xml                | 22 +++++++++++++++++-----
 .../camel/component/netty/http/BaseNettyTest.java  | 19 +++++--------------
 .../netty/http/NettyHttpBridgeEncodedPathTest.java | 18 +++++++++---------
 .../NettyHttpBridgeRouteUsingHttpClientTest.java   | 10 +++++-----
 .../netty/http/NettyHttpProducerBridgeTest.java    | 14 +++++++-------
 .../http/NettyHttpRedirectNoLocationTest.java      |  7 ++++---
 .../netty/http/NettyHttpTraceDisabledTest.java     |  8 ++++++--
 .../netty/http/NettyRouteSimpleDynamicURITest.java |  7 +++++--
 .../component/netty/http/NettyRouteSimpleTest.java |  7 +++++--
 .../org/apache/camel/test/AvailablePortFinder.java | 10 ++++++++++
 10 files changed, 73 insertions(+), 49 deletions(-)

diff --git a/components/camel-netty-http/pom.xml 
b/components/camel-netty-http/pom.xml
index 92232b2..5b70470 100644
--- a/components/camel-netty-http/pom.xml
+++ b/components/camel-netty-http/pom.xml
@@ -31,6 +31,11 @@
     <name>Camel :: Netty HTTP</name>
     <description>Camel Netty HTTP support</description>
 
+    <properties>
+        <camel.surefire.parallel>true</camel.surefire.parallel>
+        <io.netty.leakDetection.level>DISABLED</io.netty.leakDetection.level>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel</groupId>
@@ -152,15 +157,22 @@
             <plugin>
                 <artifactId>maven-surefire-plugin</artifactId>
                 <configuration>
-                    <forkCount>1</forkCount>
-                    <reuseForks>false</reuseForks>
-                    
<forkedProcessTimeoutInSeconds>5000</forkedProcessTimeoutInSeconds>
                     <systemPropertyVariables>
-                        <!-- can use PARANOID for checking every access -->
-                        
<io.netty.leakDetection.level>ADVANCED</io.netty.leakDetection.level>
+                        
<io.netty.leakDetection.level>${io.netty.leakDetection.level}</io.netty.leakDetection.level>
                     </systemPropertyVariables>
                 </configuration>
             </plugin>
         </plugins>
     </build>
+
+    <profiles>
+        <profile>
+            <id>leaks</id>
+            <properties>
+                <camel.surefire.parallel>false</camel.surefire.parallel>
+                
<io.netty.leakDetection.level>PARANOID</io.netty.leakDetection.level>
+            </properties>
+        </profile>
+    </profiles>
+
 </project>
diff --git 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/BaseNettyTest.java
 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/BaseNettyTest.java
index d2b41c4..5cfa8d6 100644
--- 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/BaseNettyTest.java
+++ 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/BaseNettyTest.java
@@ -20,7 +20,6 @@ import java.util.Collection;
 import java.util.Properties;
 
 import io.netty.buffer.ByteBufAllocator;
-import io.netty.util.ResourceLeakDetector;
 import org.apache.camel.BindToRegistry;
 import org.apache.camel.CamelContext;
 import org.apache.camel.test.AvailablePortFinder;
@@ -28,6 +27,7 @@ import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.logging.log4j.core.LogEvent;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.extension.RegisterExtension;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -37,19 +37,15 @@ import org.slf4j.LoggerFactory;
 public class BaseNettyTest extends CamelTestSupport {
     protected static final Logger LOG = 
LoggerFactory.getLogger(BaseNettyTest.class);
 
-    private static volatile int port;
-
-    @BeforeAll
-    public static void initPort() throws Exception {
-        port = AvailablePortFinder.getNextAvailable();
-    }
+    @RegisterExtension
+    AvailablePortFinder.Port port = AvailablePortFinder.find();
 
     @BeforeAll
     public static void startLeakDetection() {
         System.setProperty("io.netty.leakDetection.maxRecords", "100");
         System.setProperty("io.netty.leakDetection.acquireAndReleaseOnly", 
"true");
         System.setProperty("io.netty.leakDetection.targetRecords", "100");
-        ResourceLeakDetector.setLevel(ResourceLeakDetector.Level.PARANOID);
+        LogCaptureAppender.reset();
     }
 
     @AfterAll
@@ -86,13 +82,8 @@ public class BaseNettyTest extends CamelTestSupport {
         return prop;
     }
 
-    protected int getNextPort() {
-        port = AvailablePortFinder.getNextAvailable();
-        return port;
-    }
-
     protected int getPort() {
-        return port;
+        return port.getPort();
     }
 
 }
diff --git 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpBridgeEncodedPathTest.java
 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpBridgeEncodedPathTest.java
index 7d612e0..e26bb7f 100644
--- 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpBridgeEncodedPathTest.java
+++ 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpBridgeEncodedPathTest.java
@@ -22,21 +22,26 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.AvailablePortFinder;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class NettyHttpBridgeEncodedPathTest extends BaseNettyTest {
 
-    private int port1;
-    private int port2;
-    private int port3;
-    private int port4;
+    AvailablePortFinder.Port port1 = port;
+    @RegisterExtension
+    AvailablePortFinder.Port port2 = AvailablePortFinder.find();
+    @RegisterExtension
+    AvailablePortFinder.Port port3 = AvailablePortFinder.find();
+    @RegisterExtension
+    AvailablePortFinder.Port port4 = AvailablePortFinder.find();
 
     @Test
     public void testEncodedQuery() throws Exception {
@@ -69,11 +74,6 @@ public class NettyHttpBridgeEncodedPathTest extends 
BaseNettyTest {
         return new RouteBuilder() {
             public void configure() {
 
-                port1 = getPort();
-                port2 = getNextPort();
-                port3 = getNextPort();
-                port4 = getNextPort();
-
                 errorHandler(noErrorHandler());
 
                 Processor serviceProc = exchange -> {
diff --git 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpBridgeRouteUsingHttpClientTest.java
 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpBridgeRouteUsingHttpClientTest.java
index 15283a1..3020ecc 100644
--- 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpBridgeRouteUsingHttpClientTest.java
+++ 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpBridgeRouteUsingHttpClientTest.java
@@ -23,15 +23,18 @@ import org.apache.camel.Message;
 import org.apache.camel.Processor;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.AvailablePortFinder;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
 public class NettyHttpBridgeRouteUsingHttpClientTest extends BaseNettyTest {
 
-    private int port1;
-    private int port2;
+    AvailablePortFinder.Port port1 = port;
+    @RegisterExtension
+    AvailablePortFinder.Port port2 = AvailablePortFinder.find();
 
     @Test
     public void testBridge() throws Exception {
@@ -57,9 +60,6 @@ public class NettyHttpBridgeRouteUsingHttpClientTest extends 
BaseNettyTest {
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() {
-                port1 = getPort();
-                port2 = getNextPort();
-
                 errorHandler(noErrorHandler());
 
                 Processor serviceProc = exchange -> {
diff --git 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpProducerBridgeTest.java
 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpProducerBridgeTest.java
index 23695cbb..b7e00e1 100644
--- 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpProducerBridgeTest.java
+++ 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpProducerBridgeTest.java
@@ -20,15 +20,19 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.AvailablePortFinder;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class NettyHttpProducerBridgeTest extends BaseNettyTest {
 
-    private int port1;
-    private int port2;
-    private int port3;
+    AvailablePortFinder.Port port1 = port;
+    @RegisterExtension
+    AvailablePortFinder.Port port2 = AvailablePortFinder.find();
+    @RegisterExtension
+    AvailablePortFinder.Port port3 = AvailablePortFinder.find();
 
     @Test
     public void testProxy() throws Exception {
@@ -74,10 +78,6 @@ public class NettyHttpProducerBridgeTest extends 
BaseNettyTest {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                port1 = getPort();
-                port2 = getNextPort();
-                port3 = getNextPort();
-
                 from("netty-http:http://0.0.0.0:"; + port1 + "/foo")
                         .to("netty-http:http://localhost:"; + port2 + 
"/bar?bridgeEndpoint=true&throwExceptionOnFailure=false");
 
diff --git 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpRedirectNoLocationTest.java
 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpRedirectNoLocationTest.java
index 6ba616c..f632f42 100644
--- 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpRedirectNoLocationTest.java
+++ 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpRedirectNoLocationTest.java
@@ -19,7 +19,9 @@ package org.apache.camel.component.netty.http;
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.AvailablePortFinder;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -30,7 +32,8 @@ import static org.junit.jupiter.api.Assertions.fail;
 
 public class NettyHttpRedirectNoLocationTest extends BaseNettyTest {
 
-    private int nextPort;
+    @RegisterExtension
+    AvailablePortFinder.Port nextPort = AvailablePortFinder.find();
 
     @Test
     public void testHttpRedirectNoLocation() throws Exception {
@@ -51,8 +54,6 @@ public class NettyHttpRedirectNoLocationTest extends 
BaseNettyTest {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                nextPort = getNextPort();
-
                 from("netty-http:http://localhost:"; + nextPort + "/test")
                         .process(exchange -> 
exchange.getMessage().setHeader(Exchange.HTTP_RESPONSE_CODE, 302));
             }
diff --git 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpTraceDisabledTest.java
 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpTraceDisabledTest.java
index f038a58..8f233a6 100644
--- 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpTraceDisabledTest.java
+++ 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpTraceDisabledTest.java
@@ -17,18 +17,22 @@
 package org.apache.camel.component.netty.http;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.AvailablePortFinder;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpTrace;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class NettyHttpTraceDisabledTest extends BaseNettyTest {
 
-    private int portTraceOn = getNextPort();
-    private int portTraceOff = getNextPort();
+    @RegisterExtension
+    AvailablePortFinder.Port portTraceOn = AvailablePortFinder.find();
+    @RegisterExtension
+    AvailablePortFinder.Port portTraceOff = AvailablePortFinder.find();
 
     @Test
     public void testTraceDisabled() throws Exception {
diff --git 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyRouteSimpleDynamicURITest.java
 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyRouteSimpleDynamicURITest.java
index d356464..12b4d93 100644
--- 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyRouteSimpleDynamicURITest.java
+++ 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyRouteSimpleDynamicURITest.java
@@ -17,12 +17,17 @@
 package org.apache.camel.component.netty.http;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.AvailablePortFinder;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class NettyRouteSimpleDynamicURITest extends BaseNettyTest {
 
+    @RegisterExtension
+    AvailablePortFinder.Port port2 = AvailablePortFinder.find();
+
     @Test
     public void testHttpSimple() throws Exception {
         getMockEndpoint("mock:input1").expectedBodiesReceived("Hello World");
@@ -37,8 +42,6 @@ public class NettyRouteSimpleDynamicURITest extends 
BaseNettyTest {
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
-            int port2 = getNextPort();
-
             @Override
             public void configure() throws Exception {
                 from("netty-http:http://0.0.0.0:{{port}}/foo";)
diff --git 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyRouteSimpleTest.java
 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyRouteSimpleTest.java
index ed8635a..3d7fff6 100644
--- 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyRouteSimpleTest.java
+++ 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyRouteSimpleTest.java
@@ -17,12 +17,17 @@
 package org.apache.camel.component.netty.http;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.AvailablePortFinder;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class NettyRouteSimpleTest extends BaseNettyTest {
 
+    @RegisterExtension
+    AvailablePortFinder.Port port2 = AvailablePortFinder.find();
+
     @Test
     public void testHttpSimple() throws Exception {
         getMockEndpoint("mock:input1").expectedBodiesReceived("Hello World");
@@ -37,8 +42,6 @@ public class NettyRouteSimpleTest extends BaseNettyTest {
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
-            int port2 = getNextPort();
-
             @Override
             public void configure() throws Exception {
                 from("netty-http:http://0.0.0.0:{{port}}/foo";)
diff --git 
a/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/AvailablePortFinder.java
 
b/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/AvailablePortFinder.java
index 0073685..ec0d235 100644
--- 
a/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/AvailablePortFinder.java
+++ 
b/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/AvailablePortFinder.java
@@ -42,6 +42,8 @@ public final class AvailablePortFinder {
 
         void release();
 
+        String toString();
+
         default void afterAll(ExtensionContext context) throws Exception {
             release();
         }
@@ -78,6 +80,10 @@ public final class AvailablePortFinder {
                 public void release() {
                     AvailablePortFinder.this.release(this);
                 }
+
+                public String toString() {
+                    return Integer.toString(getPort());
+                }
             };
             Port prv = INSTANCE.portMapping.putIfAbsent(port, p);
             if (prv == null) {
@@ -100,6 +106,10 @@ public final class AvailablePortFinder {
                     public void release() {
                         AvailablePortFinder.this.release(this);
                     }
+
+                    public String toString() {
+                        return Integer.toString(getPort());
+                    }
                 };
                 Port prv = INSTANCE.portMapping.putIfAbsent(port, p);
                 if (prv == null) {

Reply via email to