You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2012/03/21 00:42:32 UTC

svn commit: r1303214 - in /maven/wagon/trunk/wagon-providers: wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/ wagon-http/src/test/java/org/apache/maven/wagon/providers/http/

Author: olamy
Date: Tue Mar 20 23:42:31 2012
New Revision: 1303214

URL: http://svn.apache.org/viewvc?rev=1303214&view=rev
Log:
make preemptive on get configurable

Added:
    maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonPreemptiveTest.java   (with props)
    maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java   (with props)
Modified:
    maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java

Modified: maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java?rev=1303214&r1=1303213&r2=1303214&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java Tue Mar 20 23:42:31 2012
@@ -740,6 +740,27 @@ public abstract class AbstractHttpClient
         if ( config != null )
         {
             HttpParams params = config.asMethodParams( method.getParams() );
+
+            if ( config.isUsePreemptive() && authenticationInfo != null )
+            {
+                String username = authenticationInfo.getUserName();
+                String password = authenticationInfo.getPassword();
+
+                if ( StringUtils.isNotEmpty( username ) && StringUtils.isNotEmpty( password ) )
+                {
+
+                    AuthCache authCache = new BasicAuthCache();
+                    BasicScheme basicAuth = new BasicScheme();
+                    HttpHost targetHost =
+                        new HttpHost( repository.getHost(), repository.getPort(), repository.getProtocol() );
+                    authCache.put( targetHost, basicAuth );
+
+                    localContext = new BasicHttpContext();
+                    localContext.setAttribute( ClientContext.AUTH_CACHE, authCache );
+                }
+
+            }
+
             if ( params != null )
             {
                 method.setParams( params );

Added: maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonPreemptiveTest.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonPreemptiveTest.java?rev=1303214&view=auto
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonPreemptiveTest.java (added)
+++ maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonPreemptiveTest.java Tue Mar 20 23:42:31 2012
@@ -0,0 +1,60 @@
+package org.apache.maven.wagon.providers.http;
+
+/*
+ * 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.
+ */
+
+import org.apache.maven.wagon.Wagon;
+import org.apache.maven.wagon.shared.http4.HttpConfiguration;
+import org.apache.maven.wagon.shared.http4.HttpMethodConfiguration;
+
+/**
+ * @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
+ * @version $Id$
+ */
+public class HttpWagonPreemptiveTest
+    extends HttpWagonTest
+{
+    @Override
+    protected Wagon getWagon()
+        throws Exception
+    {
+        HttpWagon wagon = (HttpWagon) super.getWagon();
+        wagon.setHttpConfiguration(
+            new HttpConfiguration().setAll( new HttpMethodConfiguration().setUsePreemptive( true ) ) );
+        return wagon;
+    }
+
+    @Override
+    protected boolean supportPreemptiveAuthenticationPut()
+    {
+        return true;
+    }
+
+    @Override
+    protected boolean supportPreemptiveAuthenticationGet()
+    {
+        return true;
+    }
+
+    @Override
+    protected boolean supportProxyPreemptiveAuthentication()
+    {
+        return true;
+    }
+}

Propchange: maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonPreemptiveTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonPreemptiveTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java?rev=1303214&view=auto
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java (added)
+++ maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java Tue Mar 20 23:42:31 2012
@@ -0,0 +1,79 @@
+package org.apache.maven.wagon.providers.http;
+
+/*
+ * 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.
+ */
+
+import org.apache.maven.wagon.Wagon;
+import org.apache.maven.wagon.shared.http4.HttpConfiguration;
+import org.apache.maven.wagon.shared.http4.HttpMethodConfiguration;
+import org.mortbay.jetty.Connector;
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.security.SslSocketConnector;
+
+public class HttpsWagonPreemptiveTest
+    extends HttpWagonTest
+{
+    protected String getProtocol()
+    {
+        return "https";
+    }
+
+    protected void addConnectors( Server server )
+    {
+        System.setProperty( "javax.net.ssl.trustStore",
+                            getTestFile( "src/test/resources/ssl/keystore" ).getAbsolutePath() );
+
+        SslSocketConnector connector = new SslSocketConnector();
+        connector.setPort( server.getConnectors()[0].getPort() );
+        connector.setKeystore( getTestPath( "src/test/resources/ssl/keystore" ) );
+        connector.setPassword( "wagonhttp" );
+        connector.setKeyPassword( "wagonhttp" );
+        connector.setTruststore( getTestPath( "src/test/resources/ssl/keystore" ) );
+        connector.setTrustPassword( "wagonhttp" );
+        server.setConnectors( new Connector[]{ connector } );
+    }
+
+    @Override
+    protected Wagon getWagon()
+        throws Exception
+    {
+        HttpWagon wagon = (HttpWagon) super.getWagon();
+        wagon.setHttpConfiguration(
+            new HttpConfiguration().setAll( new HttpMethodConfiguration().setUsePreemptive( true ) ) );
+        return wagon;
+    }
+
+    @Override
+    protected boolean supportPreemptiveAuthenticationPut()
+    {
+        return true;
+    }
+
+    @Override
+    protected boolean supportPreemptiveAuthenticationGet()
+    {
+        return true;
+    }
+
+    @Override
+    protected boolean supportProxyPreemptiveAuthentication()
+    {
+        return true;
+    }
+}

Propchange: maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision