1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19 package org.eclipse.aether.transport.apache;
20
21 import org.eclipse.aether.ConfigurationProperties;
22 import org.eclipse.aether.RepositorySystemSession;
23
24 /**
25 * Configuration for Apache Transport.
26 *
27 * @since 2.0.0
28 */
29 public final class ApacheTransporterConfigurationKeys {
30 private ApacheTransporterConfigurationKeys() {}
31
32 static final String CONFIG_PROPS_PREFIX =
33 ConfigurationProperties.PREFIX_TRANSPORT + ApacheTransporterFactory.NAME + ".";
34
35 /**
36 * If enabled, underlying Apache HttpClient will use system properties as well to configure itself (typically
37 * used to set up HTTP Proxy via Java system properties). See HttpClientBuilder for used properties. This mode
38 * is not recommended, better use documented ways of configuration instead.
39 *
40 * @configurationSource {@link RepositorySystemSession#getConfigProperties()}
41 * @configurationType {@link java.lang.Boolean}
42 * @configurationDefaultValue {@link #DEFAULT_USE_SYSTEM_PROPERTIES}
43 * @configurationRepoIdSuffix Yes
44 */
45 public static final String CONFIG_PROP_USE_SYSTEM_PROPERTIES = CONFIG_PROPS_PREFIX + "useSystemProperties";
46
47 public static final boolean DEFAULT_USE_SYSTEM_PROPERTIES = false;
48
49 /**
50 * The name of retryHandler, supported values are “standard”, that obeys RFC-2616, regarding idempotent methods,
51 * and “default” that considers requests w/o payload as idempotent.
52 *
53 * @configurationSource {@link RepositorySystemSession#getConfigProperties()}
54 * @configurationType {@link java.lang.String}
55 * @configurationDefaultValue {@link #HTTP_RETRY_HANDLER_NAME_STANDARD}
56 * @configurationRepoIdSuffix Yes
57 */
58 public static final String CONFIG_PROP_HTTP_RETRY_HANDLER_NAME = CONFIG_PROPS_PREFIX + "retryHandler.name";
59
60 public static final String HTTP_RETRY_HANDLER_NAME_STANDARD = "standard";
61
62 public static final String HTTP_RETRY_HANDLER_NAME_DEFAULT = "default";
63
64 /**
65 * Set to true if it is acceptable to retry non-idempotent requests, that have been sent.
66 *
67 * @configurationSource {@link RepositorySystemSession#getConfigProperties()}
68 * @configurationType {@link java.lang.Boolean}
69 * @configurationDefaultValue {@link #DEFAULT_HTTP_RETRY_HANDLER_REQUEST_SENT_ENABLED}
70 * @configurationRepoIdSuffix Yes
71 */
72 public static final String CONFIG_PROP_HTTP_RETRY_HANDLER_REQUEST_SENT_ENABLED =
73 CONFIG_PROPS_PREFIX + "retryHandler.requestSentEnabled";
74
75 public static final boolean DEFAULT_HTTP_RETRY_HANDLER_REQUEST_SENT_ENABLED = false;
76
77 /**
78 * Comma-separated list of
79 * <a href="https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#ciphersuites">Cipher
80 * Suites</a> which are enabled for HTTPS connections.
81 *
82 * @since 2.0.0
83 * @configurationSource {@link RepositorySystemSession#getConfigProperties()}
84 * @configurationType {@link java.lang.String}
85 */
86 public static final String CONFIG_PROP_CIPHER_SUITES = CONFIG_PROPS_PREFIX + "https.cipherSuites";
87
88 /**
89 * Comma-separated list of
90 * <a href="https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#jssenames">Protocols
91 * </a> which are enabled for HTTPS connections.
92 *
93 * @since 2.0.0
94 * @configurationSource {@link RepositorySystemSession#getConfigProperties()}
95 * @configurationType {@link java.lang.String}
96 */
97 public static final String CONFIG_PROP_PROTOCOLS = CONFIG_PROPS_PREFIX + "https.protocols";
98
99 /**
100 * If enabled, Apache HttpClient will follow HTTP redirects.
101 *
102 * @configurationSource {@link RepositorySystemSession#getConfigProperties()}
103 * @configurationType {@link Boolean}
104 * @configurationDefaultValue {@link #DEFAULT_FOLLOW_REDIRECTS}
105 * @configurationRepoIdSuffix Yes
106 * @since 2.0.2
107 */
108 public static final String CONFIG_PROP_FOLLOW_REDIRECTS = CONFIG_PROPS_PREFIX + "followRedirects";
109
110 public static final boolean DEFAULT_FOLLOW_REDIRECTS = true;
111
112 /**
113 * The max redirect count to follow.
114 *
115 * @configurationSource {@link RepositorySystemSession#getConfigProperties()}
116 * @configurationType {@link java.lang.Integer}
117 * @configurationDefaultValue {@link #DEFAULT_MAX_REDIRECTS}
118 * @configurationRepoIdSuffix Yes
119 * @since 2.0.2
120 */
121 public static final String CONFIG_PROP_MAX_REDIRECTS = CONFIG_PROPS_PREFIX + "maxRedirects";
122
123 public static final int DEFAULT_MAX_REDIRECTS = 5;
124 }