diff --git a/artipie-core/pom.xml b/artipie-core/pom.xml
index e9ed83498..826bd9445 100644
--- a/artipie-core/pom.xml
+++ b/artipie-core/pom.xml
@@ -62,9 +62,9 @@
v2.3.2+java8
- org.apache.httpcomponents
- httpclient
- 4.5.14
+ org.apache.httpcomponents.client5
+ httpclient5
+ ${httpclient.version}
org.quartz-scheduler
diff --git a/artipie-core/src/main/java/com/artipie/http/servlet/ServletSliceWrap.java b/artipie-core/src/main/java/com/artipie/http/servlet/ServletSliceWrap.java
index 544303be5..920ba8b20 100644
--- a/artipie-core/src/main/java/com/artipie/http/servlet/ServletSliceWrap.java
+++ b/artipie-core/src/main/java/com/artipie/http/servlet/ServletSliceWrap.java
@@ -22,8 +22,8 @@
import java.util.concurrent.CompletionException;
import java.util.concurrent.CompletionStage;
import java.util.stream.Collectors;
-import org.apache.http.HttpStatus;
-import org.apache.http.client.utils.URIBuilder;
+import org.apache.hc.core5.http.HttpStatus;
+import org.apache.hc.core5.net.URIBuilder;
import org.cqfn.rio.Buffers;
import org.cqfn.rio.stream.ReactiveInputStream;
diff --git a/artipie-core/src/main/java/com/artipie/http/slice/TrimPathSlice.java b/artipie-core/src/main/java/com/artipie/http/slice/TrimPathSlice.java
index 2365bac7b..8048b5638 100644
--- a/artipie-core/src/main/java/com/artipie/http/slice/TrimPathSlice.java
+++ b/artipie-core/src/main/java/com/artipie/http/slice/TrimPathSlice.java
@@ -14,6 +14,8 @@
import com.artipie.http.rs.RsWithBody;
import com.artipie.http.rs.RsWithStatus;
import com.google.common.collect.Iterables;
+import org.apache.hc.core5.net.URIBuilder;
+
import java.net.URI;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
@@ -22,7 +24,6 @@
import java.util.Objects;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.http.client.utils.URIBuilder;
import org.reactivestreams.Publisher;
/**
diff --git a/artipie-main/pom.xml b/artipie-main/pom.xml
index 72630a84a..d5459dc7d 100644
--- a/artipie-main/pom.xml
+++ b/artipie-main/pom.xml
@@ -294,13 +294,13 @@ SOFTWARE.
org.apache.httpcomponents.client5
httpclient5
- 5.1.2
+ ${httpclient.version}
test
org.apache.httpcomponents.client5
httpclient5-fluent
- 5.1.3
+ ${httpclient.version}
test
diff --git a/conan-adapter/src/main/java/com/artipie/conan/http/ConansEntity.java b/conan-adapter/src/main/java/com/artipie/conan/http/ConansEntity.java
index cd0a454b9..6cde9392a 100644
--- a/conan-adapter/src/main/java/com/artipie/conan/http/ConansEntity.java
+++ b/conan-adapter/src/main/java/com/artipie/conan/http/ConansEntity.java
@@ -12,9 +12,17 @@
import com.artipie.http.rq.RqParams;
import com.google.common.base.Strings;
import io.vavr.Tuple2;
+import org.apache.hc.core5.http.HttpHost;
+import org.apache.hc.core5.net.URIBuilder;
+import org.ini4j.Wini;
+
+import javax.json.Json;
+import javax.json.JsonArrayBuilder;
+import javax.json.JsonObjectBuilder;
import java.io.IOException;
import java.io.StringReader;
import java.nio.charset.StandardCharsets;
+import java.net.URISyntaxException;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
@@ -24,11 +32,6 @@
import java.util.concurrent.CompletableFuture;
import java.util.regex.Matcher;
import java.util.stream.Collectors;
-import javax.json.Json;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObjectBuilder;
-import org.apache.http.client.utils.URIBuilder;
-import org.ini4j.Wini;
/**
* Conan /v1/conans/* REST APIs.
@@ -134,9 +137,13 @@ public CompletableFuture getResult(final RequestLineFrom request,
if (tuple._2()) {
final URIBuilder builder = new URIBuilder();
builder.setScheme(ConansEntity.PROTOCOL);
- builder.setHost(hostname);
- builder.setPath(tuple._1());
- result = Optional.of(builder.toString());
+ try {
+ builder.setHttpHost(HttpHost.create(hostname));
+ builder.setPath(tuple._1());
+ result = Optional.of(builder.toString());
+ } catch (URISyntaxException ex) {
+ throw new ArtipieIOException(ex);
+ }
}
return result;
}, builder -> builder.build().toString()
@@ -174,9 +181,13 @@ public CompletableFuture getResult(final RequestLineFrom request,
if (tuple._2()) {
final URIBuilder builder = new URIBuilder();
builder.setScheme(ConansEntity.PROTOCOL);
- builder.setHost(hostname);
- builder.setPath(tuple._1());
- result = Optional.of(builder.toString());
+ try {
+ builder.setHttpHost(HttpHost.create(hostname));
+ builder.setPath(tuple._1());
+ result = Optional.of(builder.toString());
+ } catch (URISyntaxException ex) {
+ throw new ArtipieIOException(ex);
+ }
}
return result;
}, builder -> builder.build().toString()
@@ -414,12 +425,16 @@ private CompletableFuture checkPkg(final Matcher matcher, final String h
if (exist) {
final URIBuilder builder = new URIBuilder();
builder.setScheme(ConansEntity.PROTOCOL);
- builder.setHost(hostname);
- builder.setPath(key.string());
- result = String.format(
- "{ \"%1$s\": \"%2$s\"}", ConansEntity.CONAN_MANIFEST,
- builder.toString()
- );
+ try {
+ builder.setHttpHost(HttpHost.create(hostname));
+ builder.setPath(key.string());
+ result = String.format(
+ "{ \"%1$s\": \"%2$s\"}", ConansEntity.CONAN_MANIFEST,
+ builder.build()
+ );
+ } catch (URISyntaxException ex) {
+ throw new ArtipieIOException(ex);
+ }
} else {
result = "";
}
@@ -468,12 +483,16 @@ private CompletableFuture checkPkg(final Matcher matcher, final String h
if (exist) {
final URIBuilder builder = new URIBuilder();
builder.setScheme(ConansEntity.PROTOCOL);
- builder.setHost(hostname);
- builder.setPath(key.string());
- result = String.format(
- "{\"%1$s\": \"%2$s\"}", ConansEntity.CONAN_MANIFEST,
- builder.toString()
- );
+ try {
+ builder.setHttpHost(HttpHost.create(hostname));
+ builder.setPath(key.string());
+ result = String.format(
+ "{\"%1$s\": \"%2$s\"}", ConansEntity.CONAN_MANIFEST,
+ builder.build()
+ );
+ } catch (URISyntaxException ex) {
+ throw new ArtipieIOException(ex);
+ }
} else {
result = "";
}
diff --git a/http-client/src/main/java/com/artipie/http/client/ProxySettings.java b/http-client/src/main/java/com/artipie/http/client/ProxySettings.java
index 3eb84bb91..d81164279 100644
--- a/http-client/src/main/java/com/artipie/http/client/ProxySettings.java
+++ b/http-client/src/main/java/com/artipie/http/client/ProxySettings.java
@@ -6,10 +6,11 @@
import com.amihaiemil.eoyaml.YamlMapping;
import com.google.common.base.Strings;
+import org.apache.hc.core5.net.URIBuilder;
+
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Objects;
-import org.apache.http.client.utils.URIBuilder;
/**
* Proxy settings.
diff --git a/http-client/src/main/java/com/artipie/http/client/jetty/JettyClientSlice.java b/http-client/src/main/java/com/artipie/http/client/jetty/JettyClientSlice.java
index 58a308163..39fbbfd56 100644
--- a/http-client/src/main/java/com/artipie/http/client/jetty/JettyClientSlice.java
+++ b/http-client/src/main/java/com/artipie/http/client/jetty/JettyClientSlice.java
@@ -22,7 +22,7 @@
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
-import org.apache.http.client.utils.URIBuilder;
+import org.apache.hc.core5.net.URIBuilder;
import org.eclipse.jetty.client.AsyncRequestContent;
import org.eclipse.jetty.client.HttpClient;
import org.eclipse.jetty.client.Request;
diff --git a/nuget-adapter/pom.xml b/nuget-adapter/pom.xml
index d54ff4f62..150e7bb7f 100644
--- a/nuget-adapter/pom.xml
+++ b/nuget-adapter/pom.xml
@@ -83,12 +83,6 @@ SOFTWARE.
3.9.1
-
- org.apache.httpcomponents
- httpmime
- 4.5.13
- test
-
com.artipie
vertx-server
diff --git a/nuget-adapter/src/test/java/com/artipie/nuget/http/publish/NuGetPackagePublishTest.java b/nuget-adapter/src/test/java/com/artipie/nuget/http/publish/NuGetPackagePublishTest.java
index e30e0fd35..f394166ca 100644
--- a/nuget-adapter/src/test/java/com/artipie/nuget/http/publish/NuGetPackagePublishTest.java
+++ b/nuget-adapter/src/test/java/com/artipie/nuget/http/publish/NuGetPackagePublishTest.java
@@ -19,6 +19,12 @@
import com.artipie.scheduling.ArtifactEvent;
import com.artipie.security.policy.PolicyByUsername;
import com.google.common.io.Resources;
+import org.apache.hc.client5.http.entity.mime.MultipartEntityBuilder;
+import org.apache.hc.core5.http.HttpEntity;
+import org.hamcrest.MatcherAssert;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
import io.reactivex.Flowable;
import java.io.ByteArrayOutputStream;
import java.net.URI;
@@ -28,11 +34,6 @@
import java.util.Queue;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentLinkedQueue;
-import org.apache.http.HttpEntity;
-import org.apache.http.entity.mime.MultipartEntityBuilder;
-import org.hamcrest.MatcherAssert;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
/**
* Tests for {@link NuGet}.
@@ -135,7 +136,7 @@ private Response putPackage(final byte[] pack) throws Exception {
new RequestLine(RqMethod.PUT, "/package").toString(),
new Headers.From(
new TestAuthentication.Header(),
- new Header("Content-Type", entity.getContentType().getValue())
+ new Header("Content-Type", entity.getContentType())
),
Flowable.fromArray(ByteBuffer.wrap(sink.toByteArray()))
);
diff --git a/pom.xml b/pom.xml
index 7d05348ab..93f5b3c54 100644
--- a/pom.xml
+++ b/pom.xml
@@ -84,6 +84,7 @@ SOFTWARE.
1.1.4
17
LICENSE.header
+ 5.3.1
diff --git a/pypi-adapter/pom.xml b/pypi-adapter/pom.xml
index 02f1b6191..47b6dadc7 100644
--- a/pypi-adapter/pom.xml
+++ b/pypi-adapter/pom.xml
@@ -34,7 +34,6 @@ SOFTWARE.
pypi-adapter
https://github.com/artipie/pypi-adapter
- 4.5.14
${project.basedir}/../LICENSE.header
@@ -69,15 +68,9 @@ SOFTWARE.
- org.apache.httpcomponents
- httpmime
- ${apache.httpcomponents.version}
- test
-
-
- org.apache.httpcomponents
- httpclient
- ${apache.httpcomponents.version}
+ org.apache.httpcomponents.client5
+ httpclient5
+ ${httpclient.version}
test