[2/3] camel git commit: CAMEL-11506: camel-catalog-maven should use Apache Commons http-client 3.1 to download http/https as it has support for timeout which the basic handler from the JDK does not.
CAMEL-11506: camel-catalog-maven should use Apache Commons http-client 3.1 to download http/https as it has support for timeout which the basic handler from the JDK does not. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/b28c4da0 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/b28c4da0 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/b28c4da0 Branch: refs/heads/master Commit: b28c4da094c665ce7f19a6cd6a7695b45a4e1dc0 Parents: 4bef6b2 Author: Claus IbsenAuthored: Tue Jul 4 12:46:51 2017 +0200 Committer: Claus Ibsen Committed: Tue Jul 4 12:46:51 2017 +0200 -- .../catalog/maven/MavenVersionManager.java | 2 +- .../catalog/maven/PatchedHttpClientHandler.java | 72 .../catalog/maven/TimeoutHttpClientHandler.java | 72 3 files changed, 73 insertions(+), 73 deletions(-) -- http://git-wip-us.apache.org/repos/asf/camel/blob/b28c4da0/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java -- diff --git a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java index d9cfa1a..39fe059 100644 --- a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java +++ b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java @@ -37,7 +37,7 @@ import org.apache.ivy.util.url.URLHandlerRegistry; public class MavenVersionManager implements VersionManager { private final ClassLoader classLoader = new GroovyClassLoader(); -private final PatchedHttpClientHandler httpClient = new PatchedHttpClientHandler(); +private final TimeoutHttpClientHandler httpClient = new TimeoutHttpClientHandler(); private String version; private String runtimeProviderVersion; private String cacheDirectory; http://git-wip-us.apache.org/repos/asf/camel/blob/b28c4da0/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/PatchedHttpClientHandler.java -- diff --git a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/PatchedHttpClientHandler.java b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/PatchedHttpClientHandler.java deleted file mode 100644 index 499ed58..000 --- a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/PatchedHttpClientHandler.java +++ /dev/null @@ -1,72 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.catalog.maven; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; - -import org.apache.ivy.util.url.BasicURLHandler; -import org.apache.ivy.util.url.HttpClientHandler; - -/** - * A patched {@link HttpClientHandler} which allows to use HttpClient for downloading via http/https - * and have support for timeouts which is not supported out of the box by default. - */ -public class PatchedHttpClientHandler extends HttpClientHandler { - -// use basic handler for non http/https as it can load from jar/file etc -private BasicURLHandler basic = new BasicURLHandler(); - -private int timeout = 1; - -public int getTimeout() { -return timeout; -} - -/** - * Sets the timeout in millis (http.socket.timeout) when downloading via http/https protocols. - * - * The default value is 1 - */ -public void setTimeout(int timeout) { -this.timeout = timeout; -} - -@Override -public URLInfo getURLInfo(URL url) { -// ensure we always use a timeout -String protocol = url.getProtocol(); -if ("http".equals(protocol) || "https".equals(protocol)) { -return
[2/3] camel git commit: CAMEL-11506: camel-catalog-maven should use Apache Commons http-client 3.1 to download http/https as it has support for timeout which the basic handler from the JDK does not.
CAMEL-11506: camel-catalog-maven should use Apache Commons http-client 3.1 to download http/https as it has support for timeout which the basic handler from the JDK does not. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/1e3afa58 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/1e3afa58 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/1e3afa58 Branch: refs/heads/camel-2.19.x Commit: 1e3afa580ef01c4bb840691ac8882b32dec6a6b6 Parents: 45bce30 Author: Claus IbsenAuthored: Tue Jul 4 10:39:16 2017 +0200 Committer: Claus Ibsen Committed: Tue Jul 4 10:50:59 2017 +0200 -- platforms/camel-catalog-maven/pom.xml | 7 ++ .../catalog/maven/MavenVersionManager.java | 15 .../catalog/maven/PatchedHttpClientHandler.java | 72 3 files changed, 94 insertions(+) -- http://git-wip-us.apache.org/repos/asf/camel/blob/1e3afa58/platforms/camel-catalog-maven/pom.xml -- diff --git a/platforms/camel-catalog-maven/pom.xml b/platforms/camel-catalog-maven/pom.xml index 53c29be..7c7ffa2 100644 --- a/platforms/camel-catalog-maven/pom.xml +++ b/platforms/camel-catalog-maven/pom.xml @@ -58,6 +58,13 @@ ${ivy-version} + + + commons-httpclient + commons-httpclient + ${httpclient-version} + + junit http://git-wip-us.apache.org/repos/asf/camel/blob/1e3afa58/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java -- diff --git a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java index 066b7ca..d9cfa1a 100644 --- a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java +++ b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java @@ -26,6 +26,7 @@ import java.util.Map; import groovy.grape.Grape; import groovy.lang.GroovyClassLoader; import org.apache.camel.catalog.VersionManager; +import org.apache.ivy.util.url.URLHandlerRegistry; /** * A {@link VersionManager} that can load the resources using Maven to download needed artifacts from @@ -36,6 +37,7 @@ import org.apache.camel.catalog.VersionManager; public class MavenVersionManager implements VersionManager { private final ClassLoader classLoader = new GroovyClassLoader(); +private final PatchedHttpClientHandler httpClient = new PatchedHttpClientHandler(); private String version; private String runtimeProviderVersion; private String cacheDirectory; @@ -61,6 +63,15 @@ public class MavenVersionManager implements VersionManager { } /** + * Sets the timeout in millis (http.socket.timeout) when downloading via http/https protocols. + * + * The default value is 1 + */ +public void setHttpClientTimeout(int timeout) { +httpClient.setTimeout(timeout); +} + +/** * To add a 3rd party Maven repository. * * @param name the repository name @@ -81,6 +92,8 @@ public class MavenVersionManager implements VersionManager { @Override public boolean loadVersion(String version) { try { +URLHandlerRegistry.setDefault(httpClient); + if (cacheDirectory != null) { System.setProperty("grape.root", cacheDirectory); } @@ -113,6 +126,8 @@ public class MavenVersionManager implements VersionManager { @Override public boolean loadRuntimeProviderVersion(String groupId, String artifactId, String version) { try { +URLHandlerRegistry.setDefault(httpClient); + Grape.setEnableAutoDownload(true); Map param = new HashMap<>(); http://git-wip-us.apache.org/repos/asf/camel/blob/1e3afa58/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/PatchedHttpClientHandler.java -- diff --git a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/PatchedHttpClientHandler.java b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/PatchedHttpClientHandler.java new file mode 100644 index 000..66a26f4 --- /dev/null +++ b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/PatchedHttpClientHandler.java @@ -0,0 +1,72 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE