Can you file an issue and attach to it your patch? We'll look at it later.

Thanks
Emmanuel

Dariusz Nowak a écrit :
Dear Developers,

For a long time I have tried to be able to add a new Maven2 project from our SVN repository.
Unfortunately it was not possible neither in 1.0.2 nor 1.1-b2.

Finally I have found the cause of problems. It is the MungedHttpsURL class. I do not know why but it does not work with my company's SVN server. Every time I tried to create a new project 401 HTTP error was returned to the continuum.

After hacking continuum to use HttpClient everything started to work. Attached my changes.

Please let me know what information you need to fix the issue in future releases.

BR,
Dariusz


--- src/main/java/org/apache/maven/continuum/project/builder/AbstractContinuumProjectBuilder.java (revision 572578) +++ src/main/java/org/apache/maven/continuum/project/builder/AbstractContinuumProjectBuilder.java (working copy)
@@ -34,6 +34,10 @@
 import java.net.URL;
 import java.net.UnknownHostException;

+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.UsernamePasswordCredentials;
+import org.apache.commons.httpclient.methods.GetMethod;
+
 /**
  * @author <a href="mailto:[EMAIL PROTECTED]">Trygve Laugst&oslash;l</a>
  * @version $Id$
@@ -51,11 +55,32 @@
         getLogger().info( "Downloading " + metadata.toExternalForm() );

         InputStream is = null;
+
+        GetMethod get = null;

         if ( metadata.getProtocol().startsWith( "http" ) )
         {
-            is =
- new MungedHttpsURL( metadata.toExternalForm(), username, password ).getURLConnection().getInputStream();
+
+//            is =
+// new MungedHttpsURL( metadata.toExternalForm(), username, password ).getURLConnection().getInputStream();
+            HttpClient client = new HttpClient();
+
+ getLogger().info("Using HttpClient to get the resource, credentials - user: " + username + ", password: " + password);
+
+            if (username != null) {
+ client.getState().setCredentials(null, null, new UsernamePasswordCredentials(username, password));
+            }
+
+            get = new GetMethod(metadata.toExternalForm());
+
+            if (username != null) {
+                get.setDoAuthentication(true);
+            }
+            int status = client.executeMethod(get);
+
+            getLogger().info("Request status: " + status);
+
+            is = get.getResponseBodyAsStream();
         }
         else
         {
@@ -115,6 +140,9 @@
         is.close();

         writer.close();
+        if (get != null) {
+                get.releaseConnection();
+        }

         return file;
     }





Reply via email to