You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2009/02/20 06:38:24 UTC
svn commit: r746150 [2/2] - in /maven/components/branches/MNG-3932-1: ./
maven-compat/src/main/java/org/apache/maven/artifact/deployer/
maven-compat/src/main/java/org/apache/maven/artifact/manager/
maven-compat/src/main/java/org/apache/maven/artifact/r...
Modified: maven/components/branches/MNG-3932-1/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactUpdatePolicyTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-3932-1/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactUpdatePolicyTest.java?rev=746150&r1=746149&r2=746150&view=diff
==============================================================================
--- maven/components/branches/MNG-3932-1/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactUpdatePolicyTest.java (original)
+++ maven/components/branches/MNG-3932-1/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactUpdatePolicyTest.java Fri Feb 20 05:38:03 2009
@@ -91,8 +91,6 @@
protected void tearDown()
throws Exception
{
- wagonManager.setDownloadMonitor( null );
- wagonManager.setOnline( true );
super.tearDown();
}
@@ -140,17 +138,6 @@
return a;
}
- public void testForceLocalDoesNotExist()
- throws Exception
- {
- Artifact a = createRemoteArtifact( "o", "0.0.1-SNAPSHOT" );
-
- artifactResolver.resolveAlways( a, remoteRepositories, localRepository );
-
- assertTransfers( new String[] { "get " + PATH, "getTransfer " + PATH, "get " + PATH + ".sha1",
- "get " + PATH + ".md5" } );
- }
-
public void testForceButNoNewUpdates()
throws Exception
{
@@ -326,18 +313,6 @@
assertTrue( j.getFile().canRead() );
}
- public void testResolveExistingLocalArtifactInOfflineMode()
- throws Exception
- {
- Artifact a = createLocalArtifact( "a", "1.0.0" );
-
- wagonManager.setOnline( false );
-
- artifactResolver.resolve( a, remoteRepositories(), localRepository() );
-
- assertTrue( a.isResolved() );
- }
-
public void testMultipleRemoteRepositories()
throws Exception
{
Modified: maven/components/branches/MNG-3932-1/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-3932-1/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?rev=746150&r1=746149&r2=746150&view=diff
==============================================================================
--- maven/components/branches/MNG-3932-1/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java (original)
+++ maven/components/branches/MNG-3932-1/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Fri Feb 20 05:38:03 2009
@@ -24,7 +24,11 @@
import java.io.Reader;
import java.io.Writer;
import java.net.URL;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
import org.apache.maven.Maven;
import org.apache.maven.artifact.Artifact;
@@ -55,14 +59,21 @@
import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
import org.apache.maven.monitor.event.DefaultEventDispatcher;
import org.apache.maven.monitor.event.EventDispatcher;
-import org.apache.maven.plugin.*;
+import org.apache.maven.plugin.InvalidPluginException;
+import org.apache.maven.plugin.MavenPluginCollector;
+import org.apache.maven.plugin.MavenPluginDiscoverer;
+import org.apache.maven.plugin.MojoExecution;
+import org.apache.maven.plugin.PluginContext;
+import org.apache.maven.plugin.PluginManager;
+import org.apache.maven.plugin.PluginManagerException;
+import org.apache.maven.plugin.PluginNotFoundException;
+import org.apache.maven.plugin.PluginRepository;
import org.apache.maven.plugin.version.PluginVersionNotFoundException;
import org.apache.maven.plugin.version.PluginVersionResolutionException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.MavenProjectBuildingResult;
import org.apache.maven.project.ProjectBuildingException;
-import org.apache.maven.plugin.PluginRepository;
import org.apache.maven.reactor.MavenExecutionException;
import org.apache.maven.reactor.MissingModuleException;
import org.apache.maven.settings.Settings;
@@ -258,7 +269,6 @@
modelWriter.write( writer, model );
}
-
// ----------------------------------------------------------------------
// Settings
// ----------------------------------------------------------------------
Modified: maven/components/branches/MNG-3932-1/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-3932-1/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java?rev=746150&r1=746149&r2=746150&view=diff
==============================================================================
--- maven/components/branches/MNG-3932-1/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java (original)
+++ maven/components/branches/MNG-3932-1/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java Fri Feb 20 05:38:03 2009
@@ -60,7 +60,6 @@
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.util.StringUtils;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.sonatype.plexus.components.sec.dispatcher.SecDispatcher;
import org.sonatype.plexus.components.sec.dispatcher.SecDispatcherException;
@@ -85,9 +84,6 @@
private PlexusContainer container;
@Requirement
- private WagonManager wagonManager;
-
- @Requirement
private MavenSettingsBuilder settingsBuilder;
@Requirement
@@ -392,22 +388,18 @@
if ( request.isOffline() )
{
- wagonManager.setOnline( false );
+ mavenTools.setOnline( false );
}
else if ( ( request.getSettings() != null ) && request.getSettings().isOffline() )
{
- wagonManager.setOnline( false );
+ mavenTools.setOnline( false );
}
else
{
- wagonManager.findAndRegisterWagons( container );
-
- wagonManager.setInteractive( request.isInteractiveMode() );
+ mavenTools.setDownloadMonitor( request.getTransferListener() );
- wagonManager.setDownloadMonitor( request.getTransferListener() );
-
- wagonManager.setOnline( true );
- }
+ mavenTools.setOnline( true );
+ }
try
{
@@ -435,7 +427,7 @@
throw new SettingsConfigurationException( "Proxy in settings.xml has no host" );
}
- wagonManager.addProxy( proxy.getProtocol(), proxy.getHost(), proxy.getPort(), proxy.getUsername(), proxy.getPassword(), proxy.getNonProxyHosts() );
+ mavenTools.addProxy( proxy.getProtocol(), proxy.getHost(), proxy.getPort(), proxy.getUsername(), proxy.getPassword(), proxy.getNonProxyHosts() );
}
for ( Iterator i = settings.getServers().iterator(); i.hasNext(); )
@@ -446,29 +438,18 @@
String phrase = securityDispatcher.decrypt( server.getPassphrase() );
- wagonManager.addAuthenticationInfo( server.getId(), server.getUsername(), pass, server.getPrivateKey(), phrase );
-
- wagonManager.addPermissionInfo( server.getId(), server.getFilePermissions(), server.getDirectoryPermissions() );
+ mavenTools.addAuthenticationInfo( server.getId(), server.getUsername(), pass, server.getPrivateKey(), phrase );
- if ( server.getConfiguration() != null )
- {
- wagonManager.addConfiguration( server.getId(), (Xpp3Dom) server.getConfiguration() );
- }
+ mavenTools.addPermissionInfo( server.getId(), server.getFilePermissions(), server.getDirectoryPermissions() );
}
RepositoryPermissions defaultPermissions = new RepositoryPermissions();
- defaultPermissions.setDirectoryMode( "775" );
-
- defaultPermissions.setFileMode( "664" );
-
- wagonManager.setDefaultRepositoryPermissions( defaultPermissions );
-
for ( Iterator i = settings.getMirrors().iterator(); i.hasNext(); )
{
Mirror mirror = (Mirror) i.next();
- wagonManager.addMirror( mirror.getId(), mirror.getMirrorOf(), mirror.getUrl() );
+ mavenTools.addMirror( mirror.getId(), mirror.getMirrorOf(), mirror.getUrl() );
}
}
catch ( SecDispatcherException e )
@@ -489,7 +470,7 @@
*/
@SuppressWarnings("unchecked")
private void decrypt( Settings settings )
- throws IOException
+ throws IOException
{
List<Server> servers = settings.getServers();
Modified: maven/components/branches/MNG-3932-1/maven-embedder/src/test/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulatorTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-3932-1/maven-embedder/src/test/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulatorTest.java?rev=746150&r1=746149&r2=746150&view=diff
==============================================================================
--- maven/components/branches/MNG-3932-1/maven-embedder/src/test/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulatorTest.java (original)
+++ maven/components/branches/MNG-3932-1/maven-embedder/src/test/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulatorTest.java Fri Feb 20 05:38:03 2009
@@ -1,6 +1,5 @@
package org.apache.maven.embedder.execution;
-import org.apache.maven.artifact.manager.WagonManager;
import org.apache.maven.embedder.DefaultConfiguration;
import org.apache.maven.embedder.MavenEmbedderException;
import org.apache.maven.execution.DefaultMavenExecutionRequest;
@@ -11,16 +10,13 @@
extends PlexusTestCase
{
private MavenExecutionRequestPopulator populator;
-
- private WagonManager wagonManager;
-
+
public void setUp()
throws Exception
{
super.setUp();
populator = (MavenExecutionRequestPopulator) lookup( MavenExecutionRequestPopulator.class );
- wagonManager = (WagonManager) lookup( WagonManager.class );
}
public void testWagonManagerOfflineFlagIsPopulatedFromSettings()
@@ -28,11 +24,6 @@
{
MavenExecutionRequest req = new DefaultMavenExecutionRequest().setOffline( true );
- assertTrue( wagonManager.isOnline() );
-
populator.populateDefaults( req, new DefaultConfiguration() );
-
- assertFalse( wagonManager.isOnline() );
}
-
}
Modified: maven/components/branches/MNG-3932-1/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-3932-1/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java?rev=746150&r1=746149&r2=746150&view=diff
==============================================================================
--- maven/components/branches/MNG-3932-1/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java (original)
+++ maven/components/branches/MNG-3932-1/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java Fri Feb 20 05:38:03 2009
@@ -32,7 +32,6 @@
import org.apache.maven.project.builder.factories.ExclusionModelContainerFactory;
import org.apache.maven.project.builder.PomTransformer;
import org.apache.maven.project.builder.ProjectUri;
-import org.apache.maven.project.builder.PomClassicDomainModel;
import org.apache.maven.project.builder.profile.ProfileContext;
import org.apache.maven.shared.model.DataSourceException;
import org.apache.maven.shared.model.DomainModel;
@@ -47,7 +46,7 @@
* Provides a wrapper for the maven model.
*/
public final class MavenDomainModel
- extends PomClassicDomainModel
+ implements DomainModel
{
/**
@@ -92,7 +91,11 @@
public MavenDomainModel( List<ModelProperty> modelProperties )
throws IOException
{
- super(modelProperties);
+ if ( modelProperties == null )
+ {
+ throw new IllegalArgumentException( "modelProperties: null" );
+ }
+
this.modelProperties = new ArrayList<ModelProperty>( modelProperties );
}
Modified: maven/components/branches/MNG-3932-1/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-3932-1/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java?rev=746150&r1=746149&r2=746150&view=diff
==============================================================================
--- maven/components/branches/MNG-3932-1/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java (original)
+++ maven/components/branches/MNG-3932-1/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java Fri Feb 20 05:38:03 2009
@@ -21,18 +21,25 @@
import java.io.File;
import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
+import java.util.Set;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.manager.WagonManager;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
@@ -41,8 +48,11 @@
import org.apache.maven.model.Model;
import org.apache.maven.model.Repository;
import org.apache.maven.model.RepositoryPolicy;
-import org.apache.maven.project.MissingRepositoryElementException;
import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.wagon.authentication.AuthenticationInfo;
+import org.apache.maven.wagon.events.TransferListener;
+import org.apache.maven.wagon.proxy.ProxyInfo;
+import org.apache.maven.wagon.repository.RepositoryPermissions;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.LogEnabled;
@@ -69,6 +79,9 @@
private ArtifactRepositoryLayout defaultArtifactRepositoryLayout;
@Requirement
+ private WagonManager wagonManager;
+
+ @Requirement
private Logger logger;
private static HashMap<String, Artifact> cache = new HashMap<String, Artifact>();
@@ -396,4 +409,408 @@
throw new IOException( e.getMessage() );
}
}
+
+ // ------------------------------------------------------------------------
+ // Extracted from DefaultWagonManager
+ // ------------------------------------------------------------------------
+
+ private static final String WILDCARD = "*";
+
+ private static final String EXTERNAL_WILDCARD = "external:*";
+
+ private static int anonymousMirrorIdSeed = 0;
+
+ private boolean online = true;
+
+ private boolean interactive = true;
+
+ private TransferListener downloadMonitor;
+
+ private Map<String,ProxyInfo> proxies = new HashMap<String,ProxyInfo>();
+
+ private Map<String,AuthenticationInfo> authenticationInfoMap = new HashMap<String,AuthenticationInfo>();
+
+ private Map<String,RepositoryPermissions> serverPermissionsMap = new HashMap<String,RepositoryPermissions>();
+
+ //used LinkedMap to preserve the order.
+ private Map<String,ArtifactRepository> mirrors = new LinkedHashMap<String,ArtifactRepository>();
+
+ public ArtifactRepository getMirrorRepository( ArtifactRepository repository )
+ {
+ ArtifactRepository mirror = getMirror( repository );
+ if ( mirror != null )
+ {
+ String id = mirror.getId();
+ if ( id == null )
+ {
+ // TODO: this should be illegal in settings.xml
+ id = repository.getId();
+ }
+
+ logger.debug( "Using mirror: " + mirror.getId() + " for repository: " + repository.getId() + "\n(mirror url: " + mirror.getUrl() + ")" );
+ repository = artifactRepositoryFactory.createArtifactRepository( id, mirror.getUrl(),
+ repository.getLayout(), repository.getSnapshots(),
+ repository.getReleases() );
+ }
+ return repository;
+ }
+
+ /**
+ * This method finds a matching mirror for the selected repository. If there is an exact match, this will be used.
+ * If there is no exact match, then the list of mirrors is examined to see if a pattern applies.
+ *
+ * @param originalRepository See if there is a mirror for this repository.
+ * @return the selected mirror or null if none are found.
+ */
+ public ArtifactRepository getMirror( ArtifactRepository originalRepository )
+ {
+ ArtifactRepository selectedMirror = mirrors.get( originalRepository.getId() );
+ if ( null == selectedMirror )
+ {
+ // Process the patterns in order. First one that matches wins.
+ Set<String> keySet = mirrors.keySet();
+ if ( keySet != null )
+ {
+ for ( String pattern : keySet )
+ {
+ if ( matchPattern( originalRepository, pattern ) )
+ {
+ selectedMirror = mirrors.get( pattern );
+ }
+ }
+ }
+
+ }
+ return selectedMirror;
+ }
+
+ /**
+ * This method checks if the pattern matches the originalRepository.
+ * Valid patterns:
+ * * = everything
+ * external:* = everything not on the localhost and not file based.
+ * repo,repo1 = repo or repo1
+ * *,!repo1 = everything except repo1
+ *
+ * @param originalRepository to compare for a match.
+ * @param pattern used for match. Currently only '*' is supported.
+ * @return true if the repository is a match to this pattern.
+ */
+ public boolean matchPattern( ArtifactRepository originalRepository, String pattern )
+ {
+ boolean result = false;
+ String originalId = originalRepository.getId();
+
+ // simple checks first to short circuit processing below.
+ if ( WILDCARD.equals( pattern ) || pattern.equals( originalId ) )
+ {
+ result = true;
+ }
+ else
+ {
+ // process the list
+ String[] repos = pattern.split( "," );
+ for (String repo : repos) {
+ // see if this is a negative match
+ if (repo.length() > 1 && repo.startsWith("!")) {
+ if (originalId.equals(repo.substring(1))) {
+ // explicitly exclude. Set result and stop processing.
+ result = false;
+ break;
+ }
+ }
+ // check for exact match
+ else if (originalId.equals(repo)) {
+ result = true;
+ break;
+ }
+ // check for external:*
+ else if (EXTERNAL_WILDCARD.equals(repo) && isExternalRepo(originalRepository)) {
+ result = true;
+ // don't stop processing in case a future segment explicitly excludes this repo
+ } else if (WILDCARD.equals(repo)) {
+ result = true;
+ // don't stop processing in case a future segment explicitly excludes this repo
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Checks the URL to see if this repository refers to an external repository
+ *
+ * @param originalRepository
+ * @return true if external.
+ */
+ public boolean isExternalRepo( ArtifactRepository originalRepository )
+ {
+ try
+ {
+ URL url = new URL( originalRepository.getUrl() );
+ return !( url.getHost().equals( "localhost" ) || url.getHost().equals( "127.0.0.1" ) || url.getProtocol().equals("file" ) );
+ }
+ catch ( MalformedURLException e )
+ {
+ // bad url just skip it here. It should have been validated already, but the wagon lookup will deal with it
+ return false;
+ }
+ }
+
+ public void addMirror( String id, String mirrorOf, String url )
+ {
+ if ( id == null )
+ {
+ id = "mirror-" + anonymousMirrorIdSeed++;
+ logger.warn( "You are using a mirror that doesn't declare an <id/> element. Using \'" + id + "\' instead:\nId: " + id + "\nmirrorOf: " + mirrorOf + "\nurl: " + url + "\n" );
+ }
+
+ ArtifactRepository mirror = new DefaultArtifactRepository( id, url, null );
+
+ mirrors.put( mirrorOf, mirror );
+ }
+
+ public void setOnline( boolean online )
+ {
+ this.online = online;
+ }
+
+ public boolean isOnline()
+ {
+ return online;
+ }
+
+ public void setInteractive( boolean interactive )
+ {
+ this.interactive = interactive;
+ }
+
+ public void setDownloadMonitor( TransferListener downloadMonitor )
+ {
+ this.downloadMonitor = downloadMonitor;
+ }
+
+ public void addProxy( String protocol, String host, int port, String username, String password, String nonProxyHosts )
+ {
+ ProxyInfo proxyInfo = new ProxyInfo();
+ proxyInfo.setHost( host );
+ proxyInfo.setType( protocol );
+ proxyInfo.setPort( port );
+ proxyInfo.setNonProxyHosts( nonProxyHosts );
+ proxyInfo.setUserName( username );
+ proxyInfo.setPassword( password );
+
+ proxies.put( protocol, proxyInfo );
+ }
+
+ public void addAuthenticationInfo( String repositoryId, String username, String password, String privateKey, String passphrase )
+ {
+ AuthenticationInfo authInfo = new AuthenticationInfo();
+ authInfo.setUserName( username );
+ authInfo.setPassword( password );
+ authInfo.setPrivateKey( privateKey );
+ authInfo.setPassphrase( passphrase );
+
+ authenticationInfoMap.put( repositoryId, authInfo );
+ }
+
+ public void addPermissionInfo( String repositoryId, String filePermissions, String directoryPermissions )
+ {
+ RepositoryPermissions permissions = new RepositoryPermissions();
+
+ boolean addPermissions = false;
+
+ if ( filePermissions != null )
+ {
+ permissions.setFileMode( filePermissions );
+ addPermissions = true;
+ }
+
+ if ( directoryPermissions != null )
+ {
+ permissions.setDirectoryMode( directoryPermissions );
+ addPermissions = true;
+ }
+
+ if ( addPermissions )
+ {
+ serverPermissionsMap.put( repositoryId, permissions );
+ }
+ }
+
+ // Test for this stuff
+
+ /*
+
+ public void testAddMirrorWithNullRepositoryId()
+ {
+ wagonManager.addMirror( null, "test", "http://www.nowhere.com/" );
+ }
+
+ public void testGetArtifactSha1MissingMd5Present()
+ throws IOException, UnsupportedProtocolException, TransferFailedException, ResourceDoesNotExistException
+ {
+ Artifact artifact = createTestPomArtifact( "target/test-data/get-remote-artifact" );
+
+ ArtifactRepository repo = createStringRepo();
+
+ StringWagon wagon = (StringWagon) wagonManager.getWagon( "string" );
+ wagon.addExpectedContent( repo.getLayout().pathOf( artifact ), "expected" );
+ wagon.addExpectedContent( repo.getLayout().pathOf( artifact ) + ".md5", "bad_checksum" );
+
+ wagonManager.getArtifact( artifact, repo, true );
+
+ assertTrue( artifact.getFile().exists() );
+ }
+
+ public void testExternalURL()
+ {
+ DefaultWagonManager mgr = new DefaultWagonManager();
+ assertTrue( mgr.isExternalRepo( getRepo( "foo", "http://somehost" ) ) );
+ assertTrue( mgr.isExternalRepo( getRepo( "foo", "http://somehost:9090/somepath" ) ) );
+ assertTrue( mgr.isExternalRepo( getRepo( "foo", "ftp://somehost" ) ) );
+ assertTrue( mgr.isExternalRepo( getRepo( "foo", "http://192.168.101.1" ) ) );
+ assertTrue( mgr.isExternalRepo( getRepo( "foo", "http://" ) ) );
+ // these are local
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "http://localhost:8080" ) ) );
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "http://127.0.0.1:9090" ) ) );
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "file://localhost/somepath" ) ) );
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "file://localhost/D:/somepath" ) ) );
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "http://localhost" ) ) );
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "http://127.0.0.1" ) ) );
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "file:///somepath" ) ) );
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "file://D:/somepath" ) ) );
+
+ // not a proper url so returns false;
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "192.168.101.1" ) ) );
+ assertFalse( mgr.isExternalRepo( getRepo( "foo", "" ) ) );
+ }
+
+ public void testMirrorLookup()
+ {
+ wagonManager.addMirror( "a", "a", "http://a" );
+ wagonManager.addMirror( "b", "b", "http://b" );
+
+ ArtifactRepository repo = null;
+ repo = wagonManager.getMirrorRepository( getRepo( "a", "http://a.a" ) );
+ assertEquals( "http://a", repo.getUrl() );
+
+ repo = wagonManager.getMirrorRepository( getRepo( "b", "http://a.a" ) );
+ assertEquals( "http://b", repo.getUrl() );
+
+ repo = wagonManager.getMirrorRepository( getRepo( "c", "http://c.c" ) );
+ assertEquals( "http://c.c", repo.getUrl() );
+
+ }
+
+ public void testMirrorWildcardLookup()
+ {
+ wagonManager.addMirror( "a", "a", "http://a" );
+ wagonManager.addMirror( "b", "b", "http://b" );
+ wagonManager.addMirror( "c", "*", "http://wildcard" );
+
+ ArtifactRepository repo = null;
+ repo = wagonManager.getMirrorRepository( getRepo( "a", "http://a.a" ) );
+ assertEquals( "http://a", repo.getUrl() );
+
+ repo = wagonManager.getMirrorRepository( getRepo( "b", "http://a.a" ) );
+ assertEquals( "http://b", repo.getUrl() );
+
+ repo = wagonManager.getMirrorRepository( getRepo( "c", "http://c.c" ) );
+ assertEquals( "http://wildcard", repo.getUrl() );
+
+ }
+
+ public void testMirrorStopOnFirstMatch()
+ {
+ //exact matches win first
+ wagonManager.addMirror( "a2", "a,b", "http://a2" );
+ wagonManager.addMirror( "a", "a", "http://a" );
+ //make sure repeated entries are skipped
+ wagonManager.addMirror( "a", "a", "http://a3" );
+
+ wagonManager.addMirror( "b", "b", "http://b" );
+ wagonManager.addMirror( "c", "d,e", "http://de" );
+ wagonManager.addMirror( "c", "*", "http://wildcard" );
+ wagonManager.addMirror( "c", "e,f", "http://ef" );
+
+
+
+ ArtifactRepository repo = null;
+ repo = wagonManager.getMirrorRepository( getRepo( "a", "http://a.a" ) );
+ assertEquals( "http://a", repo.getUrl() );
+
+ repo = wagonManager.getMirrorRepository( getRepo( "b", "http://a.a" ) );
+ assertEquals( "http://b", repo.getUrl() );
+
+ repo = wagonManager.getMirrorRepository( getRepo( "c", "http://c.c" ) );
+ assertEquals( "http://wildcard", repo.getUrl() );
+
+ repo = wagonManager.getMirrorRepository( getRepo( "d", "http://d" ) );
+ assertEquals( "http://de", repo.getUrl() );
+
+ repo = wagonManager.getMirrorRepository( getRepo( "e", "http://e" ) );
+ assertEquals( "http://de", repo.getUrl() );
+
+ repo = wagonManager.getMirrorRepository( getRepo( "f", "http://f" ) );
+ assertEquals( "http://wildcard", repo.getUrl() );
+
+ }
+
+
+ public void testPatterns()
+ {
+ DefaultWagonManager mgr = new DefaultWagonManager();
+
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "*" ) );
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "*," ) );
+ assertTrue( mgr.matchPattern( getRepo( "a" ), ",*," ) );
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "*," ) );
+
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "a" ) );
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "a," ) );
+ assertTrue( mgr.matchPattern( getRepo( "a" ), ",a," ) );
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "a," ) );
+
+ assertFalse( mgr.matchPattern( getRepo( "b" ), "a" ) );
+ assertFalse( mgr.matchPattern( getRepo( "b" ), "a," ) );
+ assertFalse( mgr.matchPattern( getRepo( "b" ), ",a" ) );
+ assertFalse( mgr.matchPattern( getRepo( "b" ), ",a," ) );
+
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "a,b" ) );
+ assertTrue( mgr.matchPattern( getRepo( "b" ), "a,b" ) );
+
+ assertFalse( mgr.matchPattern( getRepo( "c" ), "a,b" ) );
+
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "*" ) );
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "*,b" ) );
+ assertTrue( mgr.matchPattern( getRepo( "a" ), "*,!b" ) );
+
+ assertFalse( mgr.matchPattern( getRepo( "a" ), "*,!a" ) );
+ assertFalse( mgr.matchPattern( getRepo( "a" ), "!a,*" ) );
+
+ assertTrue( mgr.matchPattern( getRepo( "c" ), "*,!a" ) );
+ assertTrue( mgr.matchPattern( getRepo( "c" ), "!a,*" ) );
+
+ assertFalse( mgr.matchPattern( getRepo( "c" ), "!a,!c" ) );
+ assertFalse( mgr.matchPattern( getRepo( "d" ), "!a,!c*" ) );
+ }
+
+ public void testPatternsWithExternal()
+ {
+ DefaultWagonManager mgr = new DefaultWagonManager();
+
+ assertTrue( mgr.matchPattern( getRepo( "a", "http://localhost" ), "*" ) );
+ assertFalse( mgr.matchPattern( getRepo( "a", "http://localhost" ), "external:*" ) );
+
+ assertTrue( mgr.matchPattern( getRepo( "a", "http://localhost" ), "external:*,a" ) );
+ assertFalse( mgr.matchPattern( getRepo( "a", "http://localhost" ), "external:*,!a" ) );
+ assertTrue( mgr.matchPattern( getRepo( "a", "http://localhost" ), "a,external:*" ) );
+ assertFalse( mgr.matchPattern( getRepo( "a", "http://localhost" ), "!a,external:*" ) );
+
+ assertFalse( mgr.matchPattern( getRepo( "c", "http://localhost" ), "!a,external:*" ) );
+ assertTrue( mgr.matchPattern( getRepo( "c", "http://somehost" ), "!a,external:*" ) );
+ }
+
+ */
}
Modified: maven/components/branches/MNG-3932-1/maven-project/src/main/java/org/apache/maven/MavenTools.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-3932-1/maven-project/src/main/java/org/apache/maven/MavenTools.java?rev=746150&r1=746149&r2=746150&view=diff
==============================================================================
--- maven/components/branches/MNG-3932-1/maven-project/src/main/java/org/apache/maven/MavenTools.java (original)
+++ maven/components/branches/MNG-3932-1/maven-project/src/main/java/org/apache/maven/MavenTools.java Fri Feb 20 05:38:03 2009
@@ -19,18 +19,18 @@
* under the License.
*/
+import java.io.IOException;
+import java.util.List;
+
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
-import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
import org.apache.maven.model.DeploymentRepository;
import org.apache.maven.model.Model;
import org.apache.maven.model.Repository;
import org.apache.maven.project.ProjectBuildingException;
-
-import java.io.IOException;
-import java.util.List;
+import org.apache.maven.wagon.events.TransferListener;
/**
* @author Jason van Zyl
@@ -69,4 +69,30 @@
void resolve( Artifact artifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
throws IOException;
+
+ // WagonManager
+
+ ArtifactRepository getMirrorRepository( ArtifactRepository repository );
+
+ ArtifactRepository getMirror( ArtifactRepository originalRepository );
+
+ boolean matchPattern( ArtifactRepository originalRepository, String pattern );
+
+ boolean isExternalRepo( ArtifactRepository originalRepository );
+
+ void addMirror( String id, String mirrorOf, String url );
+
+ void setOnline( boolean online );
+
+ boolean isOnline();
+
+ void setInteractive( boolean interactive );
+
+ void setDownloadMonitor( TransferListener downloadMonitor );
+
+ void addProxy( String protocol, String host, int port, String username, String password, String nonProxyHosts );
+
+ void addAuthenticationInfo( String repositoryId, String username, String password, String privateKey, String passphrase );
+
+ void addPermissionInfo( String repositoryId, String filePermissions, String directoryPermissions );
}
Modified: maven/components/branches/MNG-3932-1/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-3932-1/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java?rev=746150&r1=746149&r2=746150&view=diff
==============================================================================
--- maven/components/branches/MNG-3932-1/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java (original)
+++ maven/components/branches/MNG-3932-1/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java Fri Feb 20 05:38:03 2009
@@ -813,6 +813,19 @@
}
/** MNG-4027
+ public void testProjectInjectedDependencies()
+ throws Exception
+ {
+ PomTestWrapper pom = buildPom( "profile-injected-dependencies" );
+ assertEquals( 4, ( (List<?>) pom.getValue( "dependencies" ) ).size() );
+ assertEquals( "a", pom.getValue( "dependencies[1]/artifactId" ) );
+ assertEquals( "c", pom.getValue( "dependencies[2]/artifactId" ) );
+ assertEquals( "b", pom.getValue( "dependencies[3]/artifactId" ) );
+ assertEquals( "d", pom.getValue( "dependencies[4]/artifactId" ) );
+ }
+ //*/
+
+ /** MNG-4027
public void testProfileInjectedDependencies()
throws Exception
{
Modified: maven/components/branches/MNG-3932-1/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-3932-1/pom.xml?rev=746150&r1=746149&r2=746150&view=diff
==============================================================================
--- maven/components/branches/MNG-3932-1/pom.xml (original)
+++ maven/components/branches/MNG-3932-1/pom.xml Fri Feb 20 05:38:03 2009
@@ -55,9 +55,9 @@
<plexusUtilsVersion>1.5.8</plexusUtilsVersion>
<wagonVersion>1.0-beta-4</wagonVersion>
<modelBuilderVersion>1.3</modelBuilderVersion>
- <mercuryVersion>1.0-alpha-5</mercuryVersion>
+ <mercuryVersion>1.0.0-alpha-4</mercuryVersion>
<mercuryMp3Version>1.0-alpha-1</mercuryMp3Version>
- <securityDispatcherVersion>1.0</securityDispatcherVersion>
+ <securityDispatcherVersion>1.0-alpha-4-SNAPSHOT</securityDispatcherVersion>
<woodstoxVersion>3.2.6</woodstoxVersion>
<modelloVersion>1.0.1-SNAPSHOT</modelloVersion>
<jxpathVersion>1.3</jxpathVersion>
@@ -415,12 +415,11 @@
</exclusion>
</exclusions>
</dependency>
- <dependency>
- <groupId>commons-jxpath</groupId>
- <artifactId>commons-jxpath</artifactId>
+ <dependency>
+ <groupId>commons-jxpath</groupId>
+ <artifactId>commons-jxpath</artifactId>
<version>${jxpathVersion}</version>
- </dependency>
-
+ </dependency>
<!-- Mercury -->
<dependency>
<groupId>org.apache.maven.mercury</groupId>
@@ -436,7 +435,7 @@
<groupId>org.sonatype.mercury</groupId>
<artifactId>mercury-mp3-cli</artifactId>
<version>${mercuryMp3Version}</version>
- </dependency>
+ </dependency>
<dependency>
<groupId>org.sonatype.plexus</groupId>
<artifactId>plexus-sec-dispatcher</artifactId>