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

vavrtom pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git


The following commit(s) were added to refs/heads/main by this push:
     new 972e56c49a QPID-8615: [Broker-J] JUnit 5 migration (#222)
972e56c49a is described below

commit 972e56c49a6db8fa3f8c969ac818f31bfdec366e
Author: Daniil Kirilyuk <daniel.kiril...@gmail.com>
AuthorDate: Thu Aug 24 08:00:10 2023 +0200

    QPID-8615: [Broker-J] JUnit 5 migration (#222)
    
    Adds workaround for hanging SimpleConversionTest running behind the proxy
---
 systests/end-to-end-conversion-tests/pom.xml       |  4 +--
 .../dependency_resolution/Booter.java              | 41 ++++++++++++++++++----
 .../SimpleConversionTest.java                      |  6 ++++
 3 files changed, 42 insertions(+), 9 deletions(-)

diff --git a/systests/end-to-end-conversion-tests/pom.xml 
b/systests/end-to-end-conversion-tests/pom.xml
index e825756331..7d1a8a841b 100644
--- a/systests/end-to-end-conversion-tests/pom.xml
+++ b/systests/end-to-end-conversion-tests/pom.xml
@@ -197,9 +197,7 @@
                             <goal>test</goal>
                         </goals>
                         <configuration>
-                            <excludes>
-                                <exclude>**</exclude>
-                            </excludes>
+                            <skipTests>true</skipTests>
                         </configuration>
                     </execution>
                 </executions>
diff --git 
a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/Booter.java
 
b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/Booter.java
index a15b00b26a..9a527735c7 100644
--- 
a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/Booter.java
+++ 
b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/Booter.java
@@ -25,25 +25,24 @@ import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Arrays;
 import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.repository.Proxy;
 import org.eclipse.aether.repository.LocalRepository;
 import org.eclipse.aether.repository.RemoteRepository;
 
 public class Booter
 {
-    private static final String FALLBACK_LOCAL_REPO_URL = 
Stream.of(System.getProperty("user.home"),
-                                                                    ".m2", 
"repository")
-                                                                
.collect(Collectors.joining(File.pathSeparator));
+    private static final String FALLBACK_LOCAL_REPO_URL =
+            String.join(File.pathSeparator, System.getProperty("user.home"), 
".m2", "repository");
     private static final String REMOTE_REPO_URL = System.getProperty(
             "qpid.systests.end_to_end_conversion.remoteRepository",
             "https://repo.maven.apache.org/maven2/";);
     private static final String LOCAL_REPO =
             
System.getProperty("qpid.systests.end_to_end_conversion.localRepository", 
FALLBACK_LOCAL_REPO_URL);
+    private static final String HTTPS_PROXY = "https_proxy";
 
     public static RepositorySystem newRepositorySystem()
     {
@@ -73,7 +72,37 @@ public class Booter
 
     private static RemoteRepository newCentralRepository()
     {
-        return new RemoteRepository.Builder("central", "default", 
REMOTE_REPO_URL).build();
+        final RemoteRepository.Builder builder = new 
RemoteRepository.Builder("central", "default", REMOTE_REPO_URL);
+        // resolve HTTPS proxy either from environment variable or from system 
property
+        final String environmentVariable = System.getenv(HTTPS_PROXY);
+        final String systemProperty = System.getProperty(HTTPS_PROXY);
+        Proxy proxy = null;
+        if (systemProperty != null)
+        {
+            proxy = getProxy(systemProperty);
+        }
+        else if (environmentVariable != null)
+        {
+            proxy = getProxy(environmentVariable);
+        }
+        if (proxy != null)
+        {
+            builder.setProxy(proxy);
+        }
+        return builder.build();
+    }
+
+    private static Proxy getProxy(final String proxy)
+    {
+        if (proxy == null)
+        {
+            return null;
+        }
+        final String httpsProxy = proxy.replace("http://";, 
"").replace("https://";, "");
+        final String[] tokens = httpsProxy.split(":");
+        final String host = tokens[0];
+        final int port = Integer.parseInt(tokens[1]);
+        return new Proxy(Proxy.TYPE_HTTPS, host, port);
     }
 
     private static RemoteRepository newLocalRepository()
diff --git 
a/systests/end-to-end-conversion-tests/src/test/java/org/apache/qpid/systests/end_to_end_conversion/SimpleConversionTest.java
 
b/systests/end-to-end-conversion-tests/src/test/java/org/apache/qpid/systests/end_to_end_conversion/SimpleConversionTest.java
index 605367b348..5bedc86737 100644
--- 
a/systests/end-to-end-conversion-tests/src/test/java/org/apache/qpid/systests/end_to_end_conversion/SimpleConversionTest.java
+++ 
b/systests/end-to-end-conversion-tests/src/test/java/org/apache/qpid/systests/end_to_end_conversion/SimpleConversionTest.java
@@ -51,6 +51,12 @@ import 
org.apache.qpid.systests.end_to_end_conversion.client.MessageDescription;
 import 
org.apache.qpid.systests.end_to_end_conversion.client.SerializableTestClass;
 import 
org.apache.qpid.systests.end_to_end_conversion.client.VerificationException;
 
+/**
+ * When running behind the proxy, test may hang due to maven resolver plugin 
failing to establish connection with the
+ * central repository. To run the test behind the proxy either declare an 
environment variable named "https_proxy" in
+ * form "export https_proxy=hostname:port" or supply a system property with 
the same name in form
+ * -Dhttps_proxy=hostname:port
+ */
 public class SimpleConversionTest extends EndToEndConversionTestBase
 {
     private static final long TEST_TIMEOUT = 30000L;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to