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