Class HttpTransporterUtils


  • public final class HttpTransporterUtils
    extends java.lang.Object
    A utility class to read HTTP transport related configuration. It implements all HTTP transport related configurations from ConfigurationProperties and transport implementations are free to use those that are supported by themselves.
    Since:
    2.0.15
    See Also:
    ConfigurationProperties, RepositorySystemSession.getConfigProperties()
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.net.URI getBaseUri​(org.eclipse.aether.repository.RemoteRepository repository)
      Shared code to create "base URI" for most common HTTP remote repositories and all HTTP transports.
      static int getHttpConnectionMaxTtlSeconds​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.HTTP_CONNECTION_MAX_TTL.
      static int getHttpConnectTimeout​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.CONNECT_TIMEOUT.
      static java.nio.charset.Charset getHttpCredentialsEncoding​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.HTTP_CREDENTIAL_ENCODING.
      static java.util.Optional<java.lang.Boolean> getHttpExpectContinue​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.HTTP_EXPECT_CONTINUE.
      static java.util.Map<java.lang.String,​java.lang.String> getHttpHeaders​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.HTTP_HEADERS.
      static java.util.Optional<java.net.InetAddress> getHttpLocalAddress​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.HTTP_LOCAL_ADDRESS.
      static int getHttpMaxConnectionsPerRoute​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.HTTP_MAX_CONNECTIONS_PER_ROUTE.
      static int getHttpRequestTimeout​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.REQUEST_TIMEOUT.
      static int getHttpRetryHandlerCount​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.HTTP_RETRY_HANDLER_COUNT.
      static long getHttpRetryHandlerInterval​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.HTTP_RETRY_HANDLER_INTERVAL.
      static long getHttpRetryHandlerIntervalMax​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.HTTP_RETRY_HANDLER_INTERVAL_MAX.
      static java.util.Set<java.lang.Integer> getHttpServiceUnavailableCodes​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.HTTP_RETRY_HANDLER_SERVICE_UNAVAILABLE.
      static java.lang.String getHttpsSecurityMode​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.HTTPS_SECURITY_MODE.
      static java.lang.String getUserAgent​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.USER_AGENT.
      static boolean isHttpPreemptiveAuth​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.HTTP_PREEMPTIVE_AUTH.
      static boolean isHttpPreemptivePutAuth​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.HTTP_PREEMPTIVE_PUT_AUTH.
      static boolean isHttpReuseConnections​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.HTTP_REUSE_CONNECTIONS.
      static boolean isHttpSendRfc9457Accept​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.HTTP_SEND_RFC9457_ACCEPT.
      static boolean isHttpSupportWebDav​(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.RemoteRepository repository)
      Getter for ConfigurationProperties.HTTP_SUPPORT_WEBDAV.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getUserAgent

        public static java.lang.String getUserAgent​(org.eclipse.aether.RepositorySystemSession session,
                                                    org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.USER_AGENT.
      • getHttpsSecurityMode

        public static java.lang.String getHttpsSecurityMode​(org.eclipse.aether.RepositorySystemSession session,
                                                            org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.HTTPS_SECURITY_MODE.
      • getHttpConnectionMaxTtlSeconds

        public static int getHttpConnectionMaxTtlSeconds​(org.eclipse.aether.RepositorySystemSession session,
                                                         org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.HTTP_CONNECTION_MAX_TTL.
      • getHttpMaxConnectionsPerRoute

        public static int getHttpMaxConnectionsPerRoute​(org.eclipse.aether.RepositorySystemSession session,
                                                        org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.HTTP_MAX_CONNECTIONS_PER_ROUTE.
      • getHttpHeaders

        public static java.util.Map<java.lang.String,​java.lang.String> getHttpHeaders​(org.eclipse.aether.RepositorySystemSession session,
                                                                                            org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.HTTP_HEADERS.
      • isHttpPreemptiveAuth

        public static boolean isHttpPreemptiveAuth​(org.eclipse.aether.RepositorySystemSession session,
                                                   org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.HTTP_PREEMPTIVE_AUTH.
      • isHttpPreemptivePutAuth

        public static boolean isHttpPreemptivePutAuth​(org.eclipse.aether.RepositorySystemSession session,
                                                      org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.HTTP_PREEMPTIVE_PUT_AUTH.
      • isHttpSupportWebDav

        public static boolean isHttpSupportWebDav​(org.eclipse.aether.RepositorySystemSession session,
                                                  org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.HTTP_SUPPORT_WEBDAV.
      • isHttpSendRfc9457Accept

        public static boolean isHttpSendRfc9457Accept​(org.eclipse.aether.RepositorySystemSession session,
                                                      org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.HTTP_SEND_RFC9457_ACCEPT.
        Since:
        2.0.19
      • getHttpCredentialsEncoding

        public static java.nio.charset.Charset getHttpCredentialsEncoding​(org.eclipse.aether.RepositorySystemSession session,
                                                                          org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.HTTP_CREDENTIAL_ENCODING.
      • getHttpConnectTimeout

        public static int getHttpConnectTimeout​(org.eclipse.aether.RepositorySystemSession session,
                                                org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.CONNECT_TIMEOUT.
      • getHttpRequestTimeout

        public static int getHttpRequestTimeout​(org.eclipse.aether.RepositorySystemSession session,
                                                org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.REQUEST_TIMEOUT.
      • getHttpRetryHandlerCount

        public static int getHttpRetryHandlerCount​(org.eclipse.aether.RepositorySystemSession session,
                                                   org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.HTTP_RETRY_HANDLER_COUNT.
      • getHttpRetryHandlerInterval

        public static long getHttpRetryHandlerInterval​(org.eclipse.aether.RepositorySystemSession session,
                                                       org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.HTTP_RETRY_HANDLER_INTERVAL.
      • getHttpRetryHandlerIntervalMax

        public static long getHttpRetryHandlerIntervalMax​(org.eclipse.aether.RepositorySystemSession session,
                                                          org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.HTTP_RETRY_HANDLER_INTERVAL_MAX.
      • getHttpExpectContinue

        public static java.util.Optional<java.lang.Boolean> getHttpExpectContinue​(org.eclipse.aether.RepositorySystemSession session,
                                                                                  org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.HTTP_EXPECT_CONTINUE.
      • isHttpReuseConnections

        public static boolean isHttpReuseConnections​(org.eclipse.aether.RepositorySystemSession session,
                                                     org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.HTTP_REUSE_CONNECTIONS.
      • getHttpServiceUnavailableCodes

        public static java.util.Set<java.lang.Integer> getHttpServiceUnavailableCodes​(org.eclipse.aether.RepositorySystemSession session,
                                                                                      org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.HTTP_RETRY_HANDLER_SERVICE_UNAVAILABLE.
      • getHttpLocalAddress

        public static java.util.Optional<java.net.InetAddress> getHttpLocalAddress​(org.eclipse.aether.RepositorySystemSession session,
                                                                                   org.eclipse.aether.repository.RemoteRepository repository)
        Getter for ConfigurationProperties.HTTP_LOCAL_ADDRESS.
      • getBaseUri

        public static java.net.URI getBaseUri​(org.eclipse.aether.repository.RemoteRepository repository)
                                       throws java.net.URISyntaxException
        Shared code to create "base URI" for most common HTTP remote repositories and all HTTP transports. Note: this method just applies common validation and adjustments to URI, but it does not enforce protocol to be HTTP/HTTPS!

        Validations and adjustments applied:

        • URI string is parsed from RemoteRepository.getUrl() returned string
        • URI must have parsable URI.parseServerAuthority()
        • URI must not be opaque
        • URI must not have fragment or query
        • URI path is adjusted to end with / (slash).
        Throws:
        java.net.URISyntaxException
        Since:
        2.0.18