From de2cf07728285adaabcdedcb10d791ada2a20042 Mon Sep 17 00:00:00 2001 From: "Textor Andreas (BCI/ESW17)" Date: Thu, 10 Apr 2025 12:45:29 +0200 Subject: [PATCH] Make ProxySelector and Authenticator optional in ProxyConfig --- .../esmf/aspectmodel/resolver/Download.java | 5 ++--- .../esmf/aspectmodel/resolver/ProxyConfig.java | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/resolver/Download.java b/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/resolver/Download.java index ed5276523..4c7809026 100644 --- a/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/resolver/Download.java +++ b/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/resolver/Download.java @@ -23,7 +23,6 @@ import java.net.http.HttpResponse; import java.time.Duration; import java.util.Map; -import java.util.Optional; import java.util.stream.Stream; import org.eclipse.esmf.aspectmodel.resolver.exceptions.ModelResolutionException; @@ -70,8 +69,8 @@ public HttpResponse downloadFileAsResponse( final URL fileUrl, final Map .version( HttpClient.Version.HTTP_1_1 ) .followRedirects( HttpClient.Redirect.ALWAYS ) .connectTimeout( Duration.ofSeconds( 10 ) ); - Optional.ofNullable( proxyConfig.proxy() ).ifPresent( clientBuilder::proxy ); - Optional.ofNullable( proxyConfig.authenticator() ).ifPresent( clientBuilder::authenticator ); + proxyConfig.proxy().ifPresent( clientBuilder::proxy ); + proxyConfig.authenticator().ifPresent( clientBuilder::authenticator ); final HttpClient client = clientBuilder.build(); final String[] headersArray = headers.entrySet().stream() .flatMap( entry -> Stream.of( entry.getKey(), entry.getValue() ) ) diff --git a/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/resolver/ProxyConfig.java b/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/resolver/ProxyConfig.java index cadda8fb4..c2cfd702a 100644 --- a/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/resolver/ProxyConfig.java +++ b/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/resolver/ProxyConfig.java @@ -16,6 +16,7 @@ import java.net.Authenticator; import java.net.InetSocketAddress; import java.net.ProxySelector; +import java.util.Optional; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -23,17 +24,23 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +/** + * Configuration of proxy settings with optional {@link ProxySelector} and {@link Authenticator} + * + * @param proxy the proxy selector + * @param authenticator the authenticator + */ @RecordBuilder public record ProxyConfig( - ProxySelector proxy, - Authenticator authenticator + Optional proxy, + Optional authenticator ) { private static final Logger LOG = LoggerFactory.getLogger( ProxyConfig.class ); - public static final ProxyConfig NO_PROXY = new ProxyConfig( null, null ); + public static final ProxyConfig NO_PROXY = new ProxyConfig( Optional.empty(), Optional.empty() ); public static ProxyConfig from( final String host, final int port ) { - return new ProxyConfig( ProxySelector.of( new InetSocketAddress( host, port ) ), null ); + return new ProxyConfig( Optional.of( ProxySelector.of( new InetSocketAddress( host, port ) ) ), Optional.empty() ); } public static ProxyConfig detectProxySettings() { @@ -54,7 +61,8 @@ public static ProxyConfig detectProxySettings() { final String host = System.getProperty( "http.proxyHost" ); final String port = System.getProperty( "http.proxyPort" ); if ( host != null && port != null ) { - return new ProxyConfig( ProxySelector.of( new InetSocketAddress( host, Integer.parseInt( port ) ) ), null ); + return new ProxyConfig( Optional.of( ProxySelector.of( new InetSocketAddress( host, Integer.parseInt( port ) ) ) ), + Optional.empty() ); } return NO_PROXY; }