Author: olamy
Date: Fri Sep 30 13:36:56 2011
New Revision: 1177654

URL: http://svn.apache.org/viewvc?rev=1177654&view=rev
Log:
[MRM-1526] configure http connection pool values for wagon http.
add basic services.

Added:
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/NetworkConfiguration.java
   (with props)
Modified:
    
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
    
archiva/trunk/archiva-modules/archiva-base/archiva-converter/src/test/java/org/apache/archiva/converter/mock/MockArchivaAdministration.java
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/admin/ArchivaAdministration.java
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/pom.xml
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/admin/DefaultArchivaAdministration.java
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/admin/ArchivaAdministrationTest.java
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/ArchivaAdministrationStub.java
    
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/mock/MockArchivaAdministration.java
    archiva/trunk/pom.xml

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo?rev=1177654&r1=1177653&r2=1177654&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
 Fri Sep 30 13:36:56 2011
@@ -157,7 +157,18 @@
           <description>
             The organisation info.
           </description>
-        </field>  
+        </field>
+        <field>
+          <name>networkConfiguration</name>
+          <version>1.4.0+</version>
+          <association>
+            <type>NetworkConfiguration</type>
+            <multiplicity>1</multiplicity>
+          </association>
+          <description>
+            The NetworkConfiguration .
+          </description>
+        </field>
       </fields>
       <codeSegments>
         <codeSegment>
@@ -1277,6 +1288,37 @@
       </fields>
     </class>
 
+    <class>
+      <name>NetworkConfiguration</name>
+      <version>1.4.0+</version>
+      <description>
+        The network configuration for external http request to repositories.
+      </description>
+      <fields>
+        <field>
+          <name>maxTotal</name>
+          <description>maximum total external http connections.</description>
+          <version>1.4.0+</version>
+          <type>int</type>
+          <defaultValue>30</defaultValue>
+        </field>
+        <field>
+          <name>maxTotalPerHost</name>
+          <description>maximum total external http connections per 
host</description>
+          <version>1.4.0+</version>
+          <type>int</type>
+          <defaultValue>30</defaultValue>
+        </field>
+        <field>
+          <name>usePooling</name>
+          <description>use or not http connection pooling default 
true</description>
+          <version>1.4.0+</version>
+          <type>boolean</type>
+          <defaultValue>true</defaultValue>
+        </field>
+      </fields>
+    </class>
+
   </classes>
 </model>
 

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-converter/src/test/java/org/apache/archiva/converter/mock/MockArchivaAdministration.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-converter/src/test/java/org/apache/archiva/converter/mock/MockArchivaAdministration.java?rev=1177654&r1=1177653&r2=1177654&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-converter/src/test/java/org/apache/archiva/converter/mock/MockArchivaAdministration.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-converter/src/test/java/org/apache/archiva/converter/mock/MockArchivaAdministration.java
 Fri Sep 30 13:36:56 2011
@@ -23,6 +23,7 @@ import org.apache.archiva.admin.model.Re
 import org.apache.archiva.admin.model.admin.ArchivaAdministration;
 import org.apache.archiva.admin.model.beans.FileType;
 import org.apache.archiva.admin.model.beans.LegacyArtifactPath;
+import org.apache.archiva.admin.model.beans.NetworkConfiguration;
 import org.apache.archiva.admin.model.beans.OrganisationInformation;
 import org.apache.archiva.admin.model.beans.UiConfiguration;
 
@@ -160,4 +161,16 @@ public class MockArchivaAdministration
     {
 
     }
+
+    public NetworkConfiguration getNetworkConfiguration()
+        throws RepositoryAdminException
+    {
+        return null;
+    }
+
+    public void setNetworkConfiguration( NetworkConfiguration 
networkConfiguration )
+        throws RepositoryAdminException
+    {
+
+    }
 }

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/admin/ArchivaAdministration.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/admin/ArchivaAdministration.java?rev=1177654&r1=1177653&r2=1177654&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/admin/ArchivaAdministration.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/admin/ArchivaAdministration.java
 Fri Sep 30 13:36:56 2011
@@ -22,6 +22,7 @@ import org.apache.archiva.admin.model.Au
 import org.apache.archiva.admin.model.RepositoryAdminException;
 import org.apache.archiva.admin.model.beans.FileType;
 import org.apache.archiva.admin.model.beans.LegacyArtifactPath;
+import org.apache.archiva.admin.model.beans.NetworkConfiguration;
 import org.apache.archiva.admin.model.beans.OrganisationInformation;
 import org.apache.archiva.admin.model.beans.UiConfiguration;
 
@@ -97,4 +98,10 @@ public interface ArchivaAdministration
     void updateUiConfiguration( UiConfiguration uiConfiguration )
         throws RepositoryAdminException;
 
+    NetworkConfiguration getNetworkConfiguration()
+        throws RepositoryAdminException;
+
+    void setNetworkConfiguration( NetworkConfiguration networkConfiguration )
+        throws RepositoryAdminException;
+
 }

Added: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/NetworkConfiguration.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/NetworkConfiguration.java?rev=1177654&view=auto
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/NetworkConfiguration.java
 (added)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/NetworkConfiguration.java
 Fri Sep 30 13:36:56 2011
@@ -0,0 +1,97 @@
+package org.apache.archiva.admin.model.beans;
+/*
+ * 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 javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
+
+/**
+ * @author Olivier Lamy
+ * @since 1.4
+ */
+@XmlRootElement( name = "networkConfiguration" )
+public class NetworkConfiguration
+    implements Serializable
+{
+    /**
+     * maximum total external http connections.
+     */
+    private int maxTotal = 30;
+
+    /**
+     * maximum total external http connections per host.
+     */
+    private int maxTotalPerHost = 30;
+
+    private boolean usePooling = true;
+
+    public NetworkConfiguration()
+    {
+        // no op
+    }
+
+    public NetworkConfiguration( int maxTotal, int maxTotalPerHost, boolean 
usePooling )
+    {
+        this.maxTotal = maxTotal;
+        this.maxTotalPerHost = maxTotalPerHost;
+        this.usePooling = usePooling;
+    }
+
+    public int getMaxTotal()
+    {
+        return maxTotal;
+    }
+
+    public void setMaxTotal( int maxTotal )
+    {
+        this.maxTotal = maxTotal;
+    }
+
+    public int getMaxTotalPerHost()
+    {
+        return maxTotalPerHost;
+    }
+
+    public void setMaxTotalPerHost( int maxTotalPerHost )
+    {
+        this.maxTotalPerHost = maxTotalPerHost;
+    }
+
+    public boolean isUsePooling()
+    {
+        return usePooling;
+    }
+
+    public void setUsePooling( boolean usePooling )
+    {
+        this.usePooling = usePooling;
+    }
+
+    @Override
+    public String toString()
+    {
+        final StringBuilder sb = new StringBuilder();
+        sb.append( "NetworkConfiguration" );
+        sb.append( "{maxTotal=" ).append( maxTotal );
+        sb.append( ", maxTotalPerHost=" ).append( maxTotalPerHost );
+        sb.append( ", usePooling=" ).append( usePooling );
+        sb.append( '}' );
+        return sb.toString();
+    }
+}

Propchange: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/NetworkConfiguration.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/NetworkConfiguration.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/pom.xml
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/pom.xml?rev=1177654&r1=1177653&r2=1177654&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/pom.xml
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/pom.xml
 Fri Sep 30 13:36:56 2011
@@ -67,6 +67,26 @@
         </exclusions>
     </dependency>
     <dependency>
+      <groupId>org.apache.maven.wagon</groupId>
+      <artifactId>wagon-http</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>commons-logging</groupId>
+          <artifactId>commons-logging</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpclient</artifactId>
+        <exclusions>
+          <exclusion>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+          </exclusion>
+        </exclusions>
+    </dependency>
+    <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-context-support</artifactId>
       <version>${spring.version}</version>

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/admin/DefaultArchivaAdministration.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/admin/DefaultArchivaAdministration.java?rev=1177654&r1=1177653&r2=1177654&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/admin/DefaultArchivaAdministration.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/admin/DefaultArchivaAdministration.java
 Fri Sep 30 13:36:56 2011
@@ -24,6 +24,7 @@ import org.apache.archiva.admin.model.Re
 import org.apache.archiva.admin.model.admin.ArchivaAdministration;
 import org.apache.archiva.admin.model.beans.FileType;
 import org.apache.archiva.admin.model.beans.LegacyArtifactPath;
+import org.apache.archiva.admin.model.beans.NetworkConfiguration;
 import org.apache.archiva.admin.model.beans.OrganisationInformation;
 import org.apache.archiva.admin.model.beans.UiConfiguration;
 import org.apache.archiva.admin.repository.AbstractRepositoryAdmin;
@@ -32,6 +33,8 @@ import org.apache.archiva.configuration.
 import org.apache.archiva.configuration.UserInterfaceOptions;
 import org.apache.archiva.configuration.WebappConfiguration;
 import org.apache.commons.lang.StringUtils;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
+import org.apache.maven.wagon.providers.http.HttpWagon;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -56,7 +59,6 @@ public class DefaultArchivaAdministratio
                 new BeanReplicator().replicateBean( legacyArtifactPath, 
LegacyArtifactPath.class ) );
         }
         return legacyArtifactPaths;
-
     }
 
     public void addLegacyArtifactPath( LegacyArtifactPath legacyArtifactPath, 
AuditInformation auditInformation )
@@ -323,7 +325,48 @@ public class DefaultArchivaAdministratio
 
     }
 
-//-------------------------
+    public NetworkConfiguration getNetworkConfiguration()
+        throws RepositoryAdminException
+    {
+        org.apache.archiva.configuration.NetworkConfiguration 
networkConfiguration =
+            
getArchivaConfiguration().getConfiguration().getNetworkConfiguration();
+
+        if ( networkConfiguration == null )
+        {
+            return null;
+        }
+        return new BeanReplicator().replicateBean( networkConfiguration, 
NetworkConfiguration.class );
+    }
+
+    public void setNetworkConfiguration( NetworkConfiguration 
networkConfiguration )
+        throws RepositoryAdminException
+    {
+        Configuration configuration = 
getArchivaConfiguration().getConfiguration();
+        if ( networkConfiguration == null )
+        {
+            configuration.setNetworkConfiguration( null );
+            // back to default values
+            HttpWagon.setUseClientManagerPooled( true );
+            ThreadSafeClientConnManager threadSafeClientConnManager = new 
ThreadSafeClientConnManager();
+            threadSafeClientConnManager.setDefaultMaxPerRoute( 30 );
+            threadSafeClientConnManager.setMaxTotal( 30 );
+            HttpWagon.setConnectionManagerPooled( threadSafeClientConnManager 
);
+
+        }
+        else
+        {
+            HttpWagon.setUseClientManagerPooled( 
networkConfiguration.isUsePooling() );
+            ThreadSafeClientConnManager threadSafeClientConnManager = new 
ThreadSafeClientConnManager();
+            threadSafeClientConnManager.setDefaultMaxPerRoute( 
networkConfiguration.getMaxTotalPerHost() );
+            threadSafeClientConnManager.setMaxTotal( 
networkConfiguration.getMaxTotal() );
+            HttpWagon.setConnectionManagerPooled( threadSafeClientConnManager 
);
+            configuration.setNetworkConfiguration( new 
BeanReplicator().replicateBean( networkConfiguration,
+                                                                               
        org.apache.archiva.configuration.NetworkConfiguration.class ) );
+        }
+        saveConfiguration( configuration );
+    }
+
+    //-------------------------
     //
     //-------------------------
 

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/admin/ArchivaAdministrationTest.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/admin/ArchivaAdministrationTest.java?rev=1177654&r1=1177653&r2=1177654&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/admin/ArchivaAdministrationTest.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/admin/ArchivaAdministrationTest.java
 Fri Sep 30 13:36:56 2011
@@ -22,6 +22,7 @@ import org.apache.archiva.admin.model.Re
 import org.apache.archiva.admin.model.admin.ArchivaAdministration;
 import org.apache.archiva.admin.model.beans.FileType;
 import org.apache.archiva.admin.model.beans.LegacyArtifactPath;
+import org.apache.archiva.admin.model.beans.NetworkConfiguration;
 import org.apache.archiva.admin.model.beans.OrganisationInformation;
 import org.apache.archiva.admin.model.beans.UiConfiguration;
 import org.apache.archiva.admin.repository.AbstractRepositoryAdminTest;
@@ -219,4 +220,16 @@ public class ArchivaAdministrationTest
         assertFalse( ui.isAppletFindEnabled() );
         assertFalse( ui.isShowFindArtifacts() );
     }
+
+    @Test
+    public void networkConfiguration()
+        throws Exception
+    {
+        NetworkConfiguration networkConfiguration = 
archivaAdministration.getNetworkConfiguration();
+        assertNotNull( networkConfiguration );
+
+        assertTrue( networkConfiguration.isUsePooling() );
+        assertEquals( 30, networkConfiguration.getMaxTotal() );
+        assertEquals( 30, networkConfiguration.getMaxTotalPerHost() );
+    }
 }

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/ArchivaAdministrationStub.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/ArchivaAdministrationStub.java?rev=1177654&r1=1177653&r2=1177654&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/ArchivaAdministrationStub.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/ArchivaAdministrationStub.java
 Fri Sep 30 13:36:56 2011
@@ -23,6 +23,7 @@ import org.apache.archiva.admin.model.Re
 import org.apache.archiva.admin.model.admin.ArchivaAdministration;
 import org.apache.archiva.admin.model.beans.FileType;
 import org.apache.archiva.admin.model.beans.LegacyArtifactPath;
+import org.apache.archiva.admin.model.beans.NetworkConfiguration;
 import org.apache.archiva.admin.model.beans.OrganisationInformation;
 import org.apache.archiva.admin.model.beans.UiConfiguration;
 import org.apache.archiva.configuration.ArchivaConfiguration;
@@ -174,6 +175,19 @@ public class ArchivaAdministrationStub
     public void updateUiConfiguration( UiConfiguration uiConfiguration )
         throws RepositoryAdminException
     {
-        //To change body of implemented methods use File | Settings | File 
Templates.
+
+    }
+
+
+    public NetworkConfiguration getNetworkConfiguration()
+        throws RepositoryAdminException
+    {
+        return null;
+    }
+
+    public void setNetworkConfiguration( NetworkConfiguration 
networkConfiguration )
+        throws RepositoryAdminException
+    {
+
     }
 }

Modified: 
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/mock/MockArchivaAdministration.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/mock/MockArchivaAdministration.java?rev=1177654&r1=1177653&r2=1177654&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/mock/MockArchivaAdministration.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/mock/MockArchivaAdministration.java
 Fri Sep 30 13:36:56 2011
@@ -23,6 +23,7 @@ import org.apache.archiva.admin.model.Re
 import org.apache.archiva.admin.model.admin.ArchivaAdministration;
 import org.apache.archiva.admin.model.beans.FileType;
 import org.apache.archiva.admin.model.beans.LegacyArtifactPath;
+import org.apache.archiva.admin.model.beans.NetworkConfiguration;
 import org.apache.archiva.admin.model.beans.OrganisationInformation;
 import org.apache.archiva.admin.model.beans.UiConfiguration;
 import org.apache.archiva.configuration.ArchivaConfiguration;
@@ -175,4 +176,16 @@ public class MockArchivaAdministration
     {
 
     }
+
+    public NetworkConfiguration getNetworkConfiguration()
+        throws RepositoryAdminException
+    {
+        return null;
+    }
+
+    public void setNetworkConfiguration( NetworkConfiguration 
networkConfiguration )
+        throws RepositoryAdminException
+    {
+
+    }
 }

Modified: archiva/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/archiva/trunk/pom.xml?rev=1177654&r1=1177653&r2=1177654&view=diff
==============================================================================
--- archiva/trunk/pom.xml (original)
+++ archiva/trunk/pom.xml Fri Sep 30 13:36:56 2011
@@ -1057,6 +1057,17 @@
         </exclusions>
       </dependency>
       <dependency>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>httpclient</artifactId>
+        <version>4.1.2</version>
+        <exclusions>
+          <exclusion>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
         <groupId>org.apache.maven.wagon</groupId>
         <artifactId>wagon-provider-api</artifactId>
         <version>${wagon.version}</version>


Reply via email to