Author: brett
Date: Tue Jun  7 18:49:48 2005
New Revision: 189489

URL: http://svn.apache.org/viewcvs?rev=189489&view=rev
Log:
PR: MNG-440
support "servers" element from settings for obtaining authentication info


Modified:
    maven/components/trunk/maven-artifact-ant/sample.build.xml
    
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java
    
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Authentication.java
    
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
    
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DeployTask.java
    
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/RemoteRepository.java
    
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Repository.java

Modified: maven/components/trunk/maven-artifact-ant/sample.build.xml
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/sample.build.xml?rev=189489&r1=189488&r2=189489&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-ant/sample.build.xml (original)
+++ maven/components/trunk/maven-artifact-ant/sample.build.xml Tue Jun  7 
18:49:48 2005
@@ -32,18 +32,15 @@
     </copy>
 
     <artifact:install file="target/maven-artifact-ant-2.0-SNAPSHOT.jar">
-      <localRepository refid="local.repository"/>
       <pom refid="maven.project"/>
     </artifact:install>
 
     <artifact:deploy file="target/maven-artifact-ant-2.0-SNAPSHOT.jar">
-      <localRepository refid="local.repository"/>
       <remoteRepository refid="deploy.repository"/>
       <pom refid="maven.project"/>
     </artifact:deploy>
 
     <artifact:deploy file="target/maven-artifact-ant-2.0-SNAPSHOT.jar">
-      <localRepository refid="local.repository"/>
       <remoteRepository url="scp://localhost/tmp/deployment-repo">
         <authentication username="brett" 
privateKey="${user.home}/.ssh/id_dsa"/>
       </remoteRepository>

Modified: 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java?rev=189489&r1=189488&r2=189489&view=diff
==============================================================================
--- 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java
 (original)
+++ 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java
 Tue Jun  7 18:49:48 2005
@@ -19,6 +19,7 @@
 import org.apache.maven.artifact.manager.WagonManager;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.settings.Server;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader;
 import org.apache.tools.ant.BuildException;
@@ -72,7 +73,17 @@
                                            authentication.getPrivateKey(), 
authentication.getPassphrase() );
         }
 
-        return new ArtifactRepository( "remote", repository.getUrl(), 
repositoryLayout );
+        ArtifactRepository artifactRepository;
+        if ( repository.getSnapshotPolicy() != null )
+        {
+            artifactRepository = new ArtifactRepository( "remote", 
repository.getUrl(), repositoryLayout,
+                                                         
repository.getSnapshotPolicy() );
+        }
+        else
+        {
+            artifactRepository = new ArtifactRepository( "remote", 
repository.getUrl(), repositoryLayout );
+        }
+        return artifactRepository;
     }
 
     protected Object lookup( String role )
@@ -176,5 +187,20 @@
             }
         }
         return settings;
+    }
+
+    protected RemoteRepository createAntRemoteRepository( 
org.apache.maven.model.Repository pomRepository )
+    {
+        RemoteRepository r = new RemoteRepository();
+        r.setUrl( pomRepository.getUrl() );
+        r.setSnapshotPolicy( pomRepository.getSnapshotPolicy() );
+        r.setLayout( pomRepository.getLayout() );
+
+        Server server = getSettings().getServer( pomRepository.getId() );
+        if ( server != null )
+        {
+            r.addAuthentication( new Authentication( server ) );
+        }
+        return r;
     }
 }

Modified: 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Authentication.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Authentication.java?rev=189489&r1=189488&r2=189489&view=diff
==============================================================================
--- 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Authentication.java
 (original)
+++ 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Authentication.java
 Tue Jun  7 18:49:48 2005
@@ -1,7 +1,5 @@
 package org.apache.maven.artifact.ant;
 
-import org.apache.maven.wagon.authentication.AuthenticationInfo;
-
 /*
  * Copyright 2001-2005 The Apache Software Foundation.
  *
@@ -18,6 +16,9 @@
  * limitations under the License.
  */
 
+import org.apache.maven.wagon.authentication.AuthenticationInfo;
+import org.apache.maven.settings.Server;
+
 /**
  * Ant Wrapper for wagon authentication.
  *
@@ -27,4 +28,16 @@
 public class Authentication
     extends AuthenticationInfo
 {
+    public Authentication()
+    {
+        super();
+    }
+
+    public Authentication( Server server )
+    {
+        setUserName( server.getUsername() );
+        setPassword( server.getPassword() );
+        setPassphrase( server.getPassphrase() );
+        setPrivateKey( server.getPrivateKey() );
+    }
 }

Modified: 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java?rev=189489&r1=189488&r2=189489&view=diff
==============================================================================
--- 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
 (original)
+++ 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
 Tue Jun  7 18:49:48 2005
@@ -82,6 +82,13 @@
             pom.initialise( projectBuilder, localRepo );
 
             dependencies = pom.getDependencies();
+
+            for ( Iterator i = pom.getRepositories().iterator(); i.hasNext(); )
+            {
+                org.apache.maven.model.Repository pomRepository = 
(org.apache.maven.model.Repository) i.next();
+
+                remoteRepositories.add( createAntRemoteRepository( 
pomRepository ) );
+            }
         }
 
         Set artifacts = metadataSource.createArtifacts( dependencies, null, 
null );
@@ -94,7 +101,7 @@
         ArtifactResolutionResult result;
         try
         {
-            List remoteArtifactRepositories = 
createRemoteArtifactRepositories();
+            List remoteArtifactRepositories = 
createRemoteArtifactRepositories( getRemoteRepositories() );
             result = resolver.resolveTransitively( artifacts, 
remoteArtifactRepositories, localRepo, metadataSource );
         }
         catch ( ArtifactResolutionException e )
@@ -152,10 +159,10 @@
         }
     }
 
-    private List createRemoteArtifactRepositories()
+    private List createRemoteArtifactRepositories( List remoteRepositories )
     {
         List list = new ArrayList();
-        for ( Iterator i = getRemoteRepositories().iterator(); i.hasNext(); )
+        for ( Iterator i = remoteRepositories.iterator(); i.hasNext(); )
         {
             list.add( createRemoteArtifactRepository( (RemoteRepository) 
i.next() ) );
         }
@@ -166,6 +173,7 @@
     {
         if ( remoteRepositories.isEmpty() )
         {
+            // TODO: could we utilise the super POM for this?
             RemoteRepository remoteRepository = new RemoteRepository();
             remoteRepository.setUrl( "http://repo1.maven.org/maven2"; );
             remoteRepositories.add( remoteRepository );

Modified: 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DeployTask.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DeployTask.java?rev=189489&r1=189488&r2=189489&view=diff
==============================================================================
--- 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DeployTask.java
 (original)
+++ 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DeployTask.java
 Tue Jun  7 18:49:48 2005
@@ -52,8 +52,23 @@
             localRepository = getDefaultLocalRepository();
         }
 
+        if ( pom == null )
+        {
+            throw new BuildException( "A POM element is required to deploy to 
the repository" );
+        }
+
         ArtifactRepository localRepo = createLocalArtifactRepository( 
localRepository );
         pom.initialise( (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE 
), localRepo );
+
+        if ( remoteRepository == null )
+        {
+            if ( pom.getDistributionManagement() == null || 
pom.getDistributionManagement().getRepository() == null )
+            {
+                throw new BuildException( "A distributionManagement element is 
required in your POM to deploy" );
+            }
+
+            remoteRepository = createAntRemoteRepository( 
pom.getDistributionManagement().getRepository() );
+        }
 
         ArtifactRepository deploymentRepository = 
createRemoteArtifactRepository( remoteRepository );
 

Modified: 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/RemoteRepository.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/RemoteRepository.java?rev=189489&r1=189488&r2=189489&view=diff
==============================================================================
--- 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/RemoteRepository.java
 (original)
+++ 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/RemoteRepository.java
 Tue Jun  7 18:49:48 2005
@@ -29,6 +29,8 @@
 
     private Authentication authentication;
 
+    private String snapshotPolicy;
+
     public String getUrl()
     {
         return ( (RemoteRepository) getInstance() ).url;
@@ -47,5 +49,15 @@
     public void addAuthentication( Authentication authentication )
     {
         this.authentication = authentication;
+    }
+
+    public void setSnapshotPolicy( String snapshotPolicy )
+    {
+        this.snapshotPolicy = snapshotPolicy;
+    }
+
+    public String getSnapshotPolicy()
+    {
+        return snapshotPolicy;
     }
 }

Modified: 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Repository.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Repository.java?rev=189489&r1=189488&r2=189489&view=diff
==============================================================================
--- 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Repository.java
 (original)
+++ 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Repository.java
 Tue Jun  7 18:49:48 2005
@@ -24,7 +24,8 @@
  * @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
  * @version $Id$
  */
-public abstract class Repository extends ProjectComponent
+public abstract class Repository
+    extends ProjectComponent
 {
     private String refid;
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to