PR: MNG-1466

Submitted By: Garrett Conaty
Reviewed By: John Casey

Applied patch, with small changes to the default repository id's to match those in Maven proper. "default-local" -> "local", and "default-remote" -> "central".

This patch adds ID handling to repositories in the maven ant tasks. It should enable definition of multiple remote repositories in an Ant script.

Thanks, Garrett and Konstantin, for the work!


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@345281 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
John Dennis Casey 2005-11-17 16:46:16 +00:00
parent e5320b624d
commit df43187e32
3 changed files with 26 additions and 5 deletions

View File

@ -91,7 +91,7 @@ public abstract class AbstractArtifactTask
Authentication authentication = repository.getAuthentication();
if ( authentication != null )
{
manager.addAuthenticationInfo( "remote", authentication.getUserName(), authentication.getPassword(),
manager.addAuthenticationInfo( repository.getId(), authentication.getUserName(), authentication.getPassword(),
authentication.getPrivateKey(), authentication.getPassphrase() );
}
@ -113,7 +113,7 @@ public abstract class AbstractArtifactTask
ArtifactRepositoryPolicy snapshots = buildArtifactRepositoryPolicy( repository.getSnapshots() );
ArtifactRepositoryPolicy releases = buildArtifactRepositoryPolicy( repository.getReleases() );
artifactRepository = repositoryFactory.createArtifactRepository( "remote", repository.getUrl(),
artifactRepository = repositoryFactory.createArtifactRepository( repository.getId(), repository.getUrl(),
repositoryLayout, snapshots, releases );
}
finally
@ -157,6 +157,7 @@ public abstract class AbstractArtifactTask
{
Settings settings = getSettings();
LocalRepository localRepository = new LocalRepository();
localRepository.setId( "local" );
localRepository.setLocation( new File( settings.getLocalRepository() ) );
return localRepository;
}
@ -232,6 +233,7 @@ public abstract class AbstractArtifactTask
// As is, this could potentially cause a problem with 2 remote repositories with different authentication info
RemoteRepository r = new RemoteRepository();
r.setId( pomRepository.getId() );
r.setUrl( pomRepository.getUrl() );
r.setLayout( pomRepository.getLayout() );
@ -283,6 +285,7 @@ public abstract class AbstractArtifactTask
{
// TODO: could we utilise the super POM for this?
RemoteRepository remoteRepository = new RemoteRepository();
remoteRepository.setId( "central" );
remoteRepository.setUrl( "http://repo1.maven.org/maven2" );
RepositoryPolicy snapshots = new RepositoryPolicy();
snapshots.setEnabled( false );

View File

@ -62,12 +62,12 @@ public class RemoteRepository
public Proxy getProxy()
{
return proxy;
return ( (RemoteRepository) getInstance() ).proxy;
}
public RepositoryPolicy getSnapshots()
{
return snapshots;
return ( (RemoteRepository) getInstance() ).snapshots;
}
public void addSnapshots( RepositoryPolicy snapshots )
@ -77,7 +77,7 @@ public class RemoteRepository
public RepositoryPolicy getReleases()
{
return releases;
return ( (RemoteRepository) getInstance() ).releases;
}
public void addReleases( RepositoryPolicy releases )

View File

@ -16,6 +16,7 @@ package org.apache.maven.artifact.ant;
* limitations under the License.
*/
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.ProjectComponent;
/**
@ -27,10 +28,27 @@ import org.apache.tools.ant.ProjectComponent;
public abstract class Repository
extends ProjectComponent
{
private String id;
private String refid;
private String layout = "default";
public String getId()
{
System.out.println("Repository.getId() == " + getInstance().id);
if (getInstance().id == null)
{
throw new BuildException("id must be specified for a repository definition");
}
return getInstance().id;
}
public void setId( String id )
{
this.id = id;
}
public String getRefid()
{
return refid;