[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.

2017-07-04 Thread davsclaus
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 Ibsen 
Authored: 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.

2017-07-04 Thread davsclaus
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 Ibsen 
Authored: 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