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 17:27:28 UTC

svn commit: r746285 [2/2] - in /maven/components/trunk: ./ apache-maven/ maven-compat/src/main/java/org/apache/maven/artifact/ maven-compat/src/main/java/org/apache/maven/artifact/deployer/ maven-compat/src/main/java/org/apache/maven/artifact/manager/ ...

Modified: maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java?rev=746285&r1=746284&r2=746285&view=diff
==============================================================================
--- maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java (original)
+++ maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java Fri Feb 20 16:27:27 2009
@@ -91,130 +91,11 @@
         	}
         };
         TransferListener listener = new TransferListener();
-
-        wagonManager.setDownloadMonitor(listener);
+        wagonManager.setDownloadMonitor(listener);                                                                                     
         wagonManager.getArtifact( artifact, repos, false );
-
         assertEquals(1, listener.events.size());
     }
-
-    public void testGetMissingPomUncached() throws TransferFailedException, UnsupportedProtocolException, IOException
-    {
-        Artifact artifact = createTestPomArtifact( "target/test-data/get-missing-pom" );
-        
-        ArtifactRepository repo = createStringRepo();
-        
-        MockControl control = MockControl.createControl( UpdateCheckManager.class );
-        UpdateCheckManager updateCheckManager = (UpdateCheckManager) control.getMock();
-        wagonManager.setUpdateCheckManager( updateCheckManager );
-        
-        updateCheckManager.isPomUpdateRequired( artifact, repo );
-        control.setReturnValue( true );
-        updateCheckManager.touch( artifact, repo );        
-        control.replay();        
-        
-        try
-        {
-            wagonManager.getArtifact( artifact, repo, false );
-            
-            fail();
-        }
-        catch ( ResourceDoesNotExistException e )
-        {
-            assertTrue( true );
-        }
-        
-        assertFalse( artifact.getFile().exists() );
-        
-        control.verify();
-    }
-
-    public void testGetMissingPomCached() throws TransferFailedException, UnsupportedProtocolException, IOException
-    {
-        Artifact artifact = createTestPomArtifact( "target/test-data/get-missing-pom" );
-        
-        ArtifactRepository repo = createStringRepo();
-        
-        MockControl control = MockControl.createControl( UpdateCheckManager.class );
-        UpdateCheckManager updateCheckManager = (UpdateCheckManager) control.getMock();
-        wagonManager.setUpdateCheckManager( updateCheckManager );
-        
-        updateCheckManager.isPomUpdateRequired( artifact, repo );
-        control.setReturnValue( false );
-        control.replay();        
-        
-        try
-        {
-            wagonManager.getArtifact( artifact, repo, false );
-            
-            fail();
-        }
-        catch ( ResourceDoesNotExistException e )
-        {
-            assertTrue( true );
-        }
-        
-        assertFalse( artifact.getFile().exists() );
-        
-        control.verify();
-    }
     
-    public void testGetMissingPomCachedForced() throws TransferFailedException, UnsupportedProtocolException, IOException
-    {
-        Artifact artifact = createTestPomArtifact( "target/test-data/get-missing-pom" );
-        
-        ArtifactRepository repo = createStringRepo();
-        
-        MockControl control = MockControl.createControl( UpdateCheckManager.class );
-        UpdateCheckManager updateCheckManager = (UpdateCheckManager) control.getMock();
-        wagonManager.setUpdateCheckManager( updateCheckManager );
-        
-        updateCheckManager.touch( artifact, repo );        
-        control.replay();        
-        
-        try
-        {
-            wagonManager.getArtifact( artifact, repo, true );
-            
-            fail();
-        }
-        catch ( ResourceDoesNotExistException e )
-        {
-            assertTrue( true );
-        }
-        
-        assertFalse( artifact.getFile().exists() );
-        
-        control.verify();
-    }
-    
-    public void testGetRemotePom()
-        throws TransferFailedException, ResourceDoesNotExistException, UnsupportedProtocolException, IOException,
-        AuthorizationException
-    {
-        Artifact artifact = createTestPomArtifact( "target/test-data/get-remote-pom" );
-
-        ArtifactRepository repo = createStringRepo();
-
-        StringWagon wagon = (StringWagon) wagonManager.getWagon( "string" );
-        wagon.addExpectedContent( repo.getLayout().pathOf( artifact ), "expected" );
-
-        MockControl control = MockControl.createControl( UpdateCheckManager.class );
-        UpdateCheckManager updateCheckManager = (UpdateCheckManager) control.getMock();
-        wagonManager.setUpdateCheckManager( updateCheckManager );
-
-        updateCheckManager.isPomUpdateRequired( artifact, repo );
-        control.setReturnValue( true );
-        control.replay();
-
-        wagonManager.getArtifact( artifact, repo, false );
-
-        assertTrue( artifact.getFile().exists() );
-        assertEquals( "expected", FileUtils.fileRead( artifact.getFile(), "UTF-8" ) );
-
-        control.verify();
-    }
-
     public void testGetPomExistsLocallyForced()
         throws IOException, TransferFailedException, ResourceDoesNotExistException, UnsupportedProtocolException
     {
@@ -229,7 +110,6 @@
 
         MockControl control = MockControl.createControl( UpdateCheckManager.class );
         UpdateCheckManager updateCheckManager = (UpdateCheckManager) control.getMock();
-        wagonManager.setUpdateCheckManager( updateCheckManager );
 
         control.replay();
 
@@ -294,7 +174,6 @@
 
         MockControl control = MockControl.createControl( UpdateCheckManager.class );
         UpdateCheckManager updateCheckManager = (UpdateCheckManager) control.getMock();
-        wagonManager.setUpdateCheckManager( updateCheckManager );
 
         control.replay();
 
@@ -320,7 +199,6 @@
 
         MockControl control = MockControl.createControl( UpdateCheckManager.class );
         UpdateCheckManager updateCheckManager = (UpdateCheckManager) control.getMock();
-        wagonManager.setUpdateCheckManager( updateCheckManager );
 
         control.replay();
 
@@ -332,124 +210,6 @@
         control.verify();
     }
 
-    public void testGetRemoteSnapshotJar()
-        throws TransferFailedException, ResourceDoesNotExistException, UnsupportedProtocolException, IOException,
-        AuthorizationException
-    {
-        Artifact artifact = createTestArtifact( "target/test-data/get-remote-jar", "1.0-SNAPSHOT", "jar" );
-
-        ArtifactRepository repo = createStringRepo();
-
-        StringWagon wagon = (StringWagon) wagonManager.getWagon( "string" );
-        wagon.addExpectedContent( repo.getLayout().pathOf( artifact ), "expected" );
-
-        MockControl control = MockControl.createControl( UpdateCheckManager.class );
-        UpdateCheckManager updateCheckManager = (UpdateCheckManager) control.getMock();
-        wagonManager.setUpdateCheckManager( updateCheckManager );
-
-        updateCheckManager.isUpdateRequired( artifact, repo );
-        control.setReturnValue( true );
-        
-        updateCheckManager.touch( artifact, repo );
-
-        control.replay();
-
-        wagonManager.getArtifact( artifact, repo, false );
-
-        assertTrue( artifact.getFile().exists() );
-        assertEquals( "expected", FileUtils.fileRead( artifact.getFile(), "UTF-8" ) );
-
-        control.verify();
-    }
-
-    public void testGetSnapshotJarExistsLocally()
-        throws IOException, TransferFailedException, ResourceDoesNotExistException, UnsupportedProtocolException
-    {
-        Artifact artifact = createTestArtifact( "target/test-data/get-remote-jar", "1.0-SNAPSHOT", "jar" );
-        artifact.getFile().createNewFile();
-        artifact.getFile().setLastModified( System.currentTimeMillis() - 60 * 1000 );
-
-        ArtifactRepository repo = createStringRepo();
-
-        StringWagon wagon = (StringWagon) wagonManager.getWagon( "string" );
-        wagon.addExpectedContent( repo.getLayout().pathOf( artifact ), "expected" );
-
-        MockControl control = MockControl.createControl( UpdateCheckManager.class );
-        UpdateCheckManager updateCheckManager = (UpdateCheckManager) control.getMock();
-        wagonManager.setUpdateCheckManager( updateCheckManager );
-
-        updateCheckManager.isUpdateRequired( artifact, repo );
-        control.setReturnValue( false );
-
-        control.replay();
-
-        wagonManager.getArtifact( artifact, repo, false );
-
-        assertTrue( artifact.getFile().exists() );
-        assertEquals( "", FileUtils.fileRead( artifact.getFile(), "UTF-8" ) );
-
-        control.verify();
-    }
-
-    public void testGetSnapshotJarExistsLocallyExpired()
-        throws IOException, TransferFailedException, ResourceDoesNotExistException, UnsupportedProtocolException
-    {
-        Artifact artifact = createTestArtifact( "target/test-data/get-remote-jar", "1.0-SNAPSHOT", "jar" );
-        artifact.getFile().createNewFile();
-        artifact.getFile().setLastModified( System.currentTimeMillis() - 60 * 1000 );
-
-        ArtifactRepository repo = createStringRepo();
-
-        StringWagon wagon = (StringWagon) wagonManager.getWagon( "string" );
-        wagon.addExpectedContent( repo.getLayout().pathOf( artifact ), "expected" );
-
-        MockControl control = MockControl.createControl( UpdateCheckManager.class );
-        UpdateCheckManager updateCheckManager = (UpdateCheckManager) control.getMock();
-        wagonManager.setUpdateCheckManager( updateCheckManager );
-
-        updateCheckManager.isUpdateRequired( artifact, repo );
-        control.setReturnValue( true );
-
-        updateCheckManager.touch( artifact, repo );
-
-        control.replay();
-
-        wagonManager.getArtifact( artifact, repo, false );
-
-        assertTrue( artifact.getFile().exists() );
-        assertEquals( "expected", FileUtils.fileRead( artifact.getFile(), "UTF-8" ) );
-
-        control.verify();
-    }
-
-    public void testGetSnapshotJarExistsLocallyForced()
-        throws IOException, TransferFailedException, ResourceDoesNotExistException, UnsupportedProtocolException
-    {
-        Artifact artifact = createTestArtifact( "target/test-data/get-remote-jar", "1.0-SNAPSHOT", "jar" );
-        artifact.getFile().createNewFile();
-        artifact.getFile().setLastModified( System.currentTimeMillis() - 60 * 1000 );
-
-        ArtifactRepository repo = createStringRepo();
-
-        StringWagon wagon = (StringWagon) wagonManager.getWagon( "string" );
-        wagon.addExpectedContent( repo.getLayout().pathOf( artifact ), "expected" );
-
-        MockControl control = MockControl.createControl( UpdateCheckManager.class );
-        UpdateCheckManager updateCheckManager = (UpdateCheckManager) control.getMock();
-        wagonManager.setUpdateCheckManager( updateCheckManager );
-
-        updateCheckManager.touch( artifact, repo );
-        
-        control.replay();
-
-        wagonManager.getArtifact( artifact, repo, true );
-
-        assertTrue( artifact.getFile().exists() );
-        assertEquals( "expected", FileUtils.fileRead( artifact.getFile(), "UTF-8" ) );
-
-        control.verify();
-    }
-
     private Artifact createTestPomArtifact( String directory )
         throws IOException
     {
@@ -482,27 +242,6 @@
         return artifact;
     }
 
-    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() );
-    }
-
     private ArtifactRepository createStringRepo()
     {
         ArtifactRepository repo =
@@ -510,174 +249,6 @@
         return repo;
     }
     
-    /**
-     * checks the handling of urls
-     */
-    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", "" ) ) );
-    }
-
-    /**
-     * Check that lookups with exact matches work and that no matches don't corrupt the repo.
-     */
-    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() );
-
-    }
-
-    /**
-     * Check that wildcards don't override exact id matches.
-     */
-    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() );
-
-    }
-
-    /**
-     * Check that first match wins
-     */
-    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() );
-
-    }
-
-    
-    /**
-     * Check that patterns are processed correctly Valid patterns: * = everything external:* = everything not on the
-     * localhost and not file based. repo,repo1 = repo or repo1 *,!repo1 = everything except repo1
-     */
-    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*" ) );
-    }
-
-    /**
-     * make sure the external if is fully exercised. We can assume file and ips are also handled because they have a
-     * separate test above.
-     */
-    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:*" ) );
-    }
 
     /**
      * Build an ArtifactRepository object.
@@ -728,30 +299,6 @@
         }
     }
 
-    public void testGetWagonRepository()
-        throws Exception
-    {
-        assertWagonRepository( "a" );
-
-        assertWagonRepository( "b1" );
-
-        assertWagonRepository( "b2" );
-
-        assertWagonRepository( "c" );
-
-        try
-        {
-            assertWagonRepository( "d" );
-
-            fail( "Expected :" + UnsupportedProtocolException.class.getName() );
-        }
-        catch ( UnsupportedProtocolException e )
-        {
-            // ok
-            assertTrue( true );
-        }
-    }
-
     public void testGetWagonRepositoryNullProtocol()
         throws Exception
     {
@@ -773,21 +320,6 @@
     }
 
     /**
-     * Checks that lookup by protocol/scheme is case-insensitive as suggested by RFC 2396, "3.1. Scheme Component".
-     */
-    public void testGetWagonCaseInsensitive()
-        throws Exception
-    {
-        assertWagon( "a" );
-
-        assertWagon( "A" );
-
-        assertWagonRepository( "a" );
-
-        assertWagonRepository( "A" );
-    }
-
-    /**
      * Check that transfer listeners are properly removed after getArtifact and putArtifact
      */
     public void testWagonTransferListenerRemovedAfterGetArtifactAndPutArtifact()
@@ -801,7 +333,7 @@
         /* getArtifact */
         assertFalse( "Transfer listener is registered before test",
                      wagon.getTransferEventSupport().hasTransferListener( transferListener ) );
-        wagonManager.setDownloadMonitor( transferListener );
+        wagonManager.setDownloadMonitor( transferListener );                                                                                   
         wagonManager.getArtifact( artifact, repo );
         assertFalse( "Transfer listener still registered after getArtifact",
                      wagon.getTransferEventSupport().hasTransferListener( transferListener ) );
@@ -812,7 +344,7 @@
 
         assertFalse( "Transfer listener is registered before test",
                      wagon.getTransferEventSupport().hasTransferListener( transferListener ) );
-        wagonManager.setDownloadMonitor( transferListener );
+        wagonManager.setDownloadMonitor( transferListener );                                                                                   
         wagonManager.putArtifact( sampleFile, artifact, repo );
         assertFalse( "Transfer listener still registered after putArtifact",
                      wagon.getTransferEventSupport().hasTransferListener( transferListener ) );
@@ -945,8 +477,6 @@
 
         conf.addChild( configurableField );
 
-        wagonManager.addConfiguration( repository.getId(), conf );
-
         WagonMock wagon = (WagonMock) wagonManager.getWagon( repository );
 
         assertNotNull( "Check wagon, protocol=" + protocol, wagon );

Modified: maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactUpdatePolicyTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactUpdatePolicyTest.java?rev=746285&r1=746284&r2=746285&view=diff
==============================================================================
--- maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactUpdatePolicyTest.java (original)
+++ maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactUpdatePolicyTest.java Fri Feb 20 16:27:27 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
     {

Propchange: maven/components/trunk/maven-compat/src/test/java/org/apache/maven/project/path/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 20 16:27:27 2009
@@ -1,3 +1,4 @@
+/maven/components/branches/MNG-3932-1/maven-compat/src/test/java/org/apache/maven/project/path:746145-746157
 /maven/components/branches/maven-2.0.10-RC/maven-project/src/test/java/org/apache/maven/project/path:680477
 /maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/path:679206,720042
 /maven/components/branches/sisbell-plugin-manager/maven-compat/src/test/java/org/apache/maven/project/path:738973-739966

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 20 16:27:27 2009
@@ -1,3 +1,4 @@
+/maven/components/branches/MNG-3932-1/maven-core/src/main/java/org/apache/maven/listeners:746145-746157
 /maven/components/branches/maven-2.0.10-RC/maven-project/src/main/java/org/apache/maven/project/builder/listeners:680477
 /maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/builder/listeners:679206
 /maven/components/branches/sisbell-plugin-manager/maven-core/src/main/java/org/apache/maven/listeners:738973-739966

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/BuildExtensionListener.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 20 16:27:27 2009
@@ -1,3 +1,4 @@
+/maven/components/branches/MNG-3932-1/maven-core/src/main/java/org/apache/maven/listeners/BuildExtensionListener.java:746145-746157
 /maven/components/branches/maven-2.0.10-RC/maven-project/src/main/java/org/apache/maven/project/builder/listeners/PluginExtensionListener.java:680477
 /maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/builder/listeners/PluginExtensionListener.java:679206
 /maven/components/branches/sisbell-plugin-manager/maven-core/src/main/java/org/apache/maven/listeners/BuildExtensionListener.java:738973-739966

Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?rev=746285&r1=746284&r2=746285&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java (original)
+++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Fri Feb 20 16:27:27 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/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java?rev=746285&r1=746284&r2=746285&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java (original)
+++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java Fri Feb 20 16:27:27 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();
         

Propchange: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/SettingsAdapter.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 20 16:27:27 2009
@@ -1,3 +1,4 @@
+/maven/components/branches/MNG-3932-1/maven-embedder/src/main/java/org/apache/maven/embedder/execution/SettingsAdapter.java:746145-746157
 /maven/components/branches/maven-2.0.10-RC/maven-embedder/src/main/java/org/apache/maven/embedder/user/SettingsAdapter.java:680477
 /maven/components/branches/maven-2.0.x/maven-embedder/src/main/java/org/apache/maven/embedder/user/SettingsAdapter.java:679206
 /maven/components/branches/sisbell-plugin-manager/maven-embedder/src/main/java/org/apache/maven/embedder/execution/SettingsAdapter.java:738973-739966

Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulatorTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulatorTest.java?rev=746285&r1=746284&r2=746285&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulatorTest.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulatorTest.java Fri Feb 20 16:27:27 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() );
     }
-
 }

Propchange: maven/components/trunk/maven-project-builder/src/main/resources/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 20 16:27:27 2009
@@ -1,3 +1,4 @@
+/maven/components/branches/MNG-3932-1/maven-project-builder/src/main/resources:746145-746157
 /maven/components/branches/maven-2.0.10-RC/maven-project/src/main/resources:680477
 /maven/components/branches/maven-2.0.x/maven-project/src/main/resources:679206,720042
 /maven/components/branches/sisbell-plugin-manager/maven-project-builder/src/main/resources:738973-739966

Propchange: maven/components/trunk/maven-project-builder/src/test/java/org/apache/maven/project/builder/EnforcerPomTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 20 16:27:27 2009
@@ -1,3 +1,4 @@
+/maven/components/branches/MNG-3932-1/maven-project-builder/src/test/java/org/apache/maven/project/builder/EnforcerPomTest.java:746145-746157
 /maven/components/branches/maven-2.0.10-RC/maven-project-builder/src/test/java/EnforcerPomTest.java:680477
 /maven/components/branches/maven-2.0.x/maven-project-builder/src/test/java/EnforcerPomTest.java:679206,720042
 /maven/components/branches/sisbell-plugin-manager/maven-project-builder/src/test/java/org/apache/maven/project/builder/EnforcerPomTest.java:738973-739966

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java?rev=746285&r1=746284&r2=746285&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java Fri Feb 20 16:27:27 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/trunk/maven-project/src/main/java/org/apache/maven/MavenTools.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/MavenTools.java?rev=746285&r1=746284&r2=746285&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/MavenTools.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/MavenTools.java Fri Feb 20 16:27:27 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
@@ -48,7 +48,7 @@
     
     ArtifactRepository createLocalRepository( String url, String repositoryId )
         throws IOException;   
-
+ 
     ArtifactRepository createRepository( String url, String repositoryId );
     
     ArtifactRepository createRepository( String url, String repositoryId, ArtifactRepositoryPolicy snapshotsPolicy, ArtifactRepositoryPolicy releasesPolicy );
@@ -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 );  
 }

Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/AlwaysOnActivation.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 20 16:27:27 2009
@@ -1,3 +1,4 @@
+/maven/components/branches/MNG-3932-1/maven-project/src/main/java/org/apache/maven/profiles/AlwaysOnActivation.java:746145-746157
 /maven/components/branches/maven-2.0.10-RC/maven-profile/src/main/java/org/apache/maven/profiles/AlwaysOnActivation.java:680477
 /maven/components/branches/maven-2.0.x/maven-profile/src/main/java/org/apache/maven/profiles/AlwaysOnActivation.java:679206
 /maven/components/branches/sisbell-plugin-manager/maven-project/src/main/java/org/apache/maven/profiles/AlwaysOnActivation.java:738973-739966

Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 20 16:27:27 2009
@@ -1,3 +1,4 @@
+/maven/components/branches/MNG-3932-1/maven-project/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java:746145-746157
 /maven/components/branches/maven-2.0.10-RC/maven-profile/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java:680477
 /maven/components/branches/maven-2.0.x/maven-profile/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java:679206
 /maven/components/branches/sisbell-plugin-manager/maven-project/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java:738973-739966

Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/MavenProfilesBuilder.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 20 16:27:27 2009
@@ -1,3 +1,4 @@
+/maven/components/branches/MNG-3932-1/maven-project/src/main/java/org/apache/maven/profiles/MavenProfilesBuilder.java:746145-746157
 /maven/components/branches/maven-2.0.10-RC/maven-profile/src/main/java/org/apache/maven/profiles/MavenProfilesBuilder.java:680477
 /maven/components/branches/maven-2.0.x/maven-profile/src/main/java/org/apache/maven/profiles/MavenProfilesBuilder.java:679206
 /maven/components/branches/sisbell-plugin-manager/maven-project/src/main/java/org/apache/maven/profiles/MavenProfilesBuilder.java:738973-739966

Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfilesConversionUtils.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 20 16:27:27 2009
@@ -1,3 +1,4 @@
+/maven/components/branches/MNG-3932-1/maven-project/src/main/java/org/apache/maven/profiles/ProfilesConversionUtils.java:746145-746157
 /maven/components/branches/maven-2.0.10-RC/maven-profile/src/main/java/org/apache/maven/profiles/ProfilesConversionUtils.java:680477
 /maven/components/branches/maven-2.0.x/maven-profile/src/main/java/org/apache/maven/profiles/ProfilesConversionUtils.java:679206
 /maven/components/branches/sisbell-plugin-manager/maven-project/src/main/java/org/apache/maven/profiles/ProfilesConversionUtils.java:738973-739966

Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultPomArtifactResolver.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 20 16:27:27 2009
@@ -1,3 +1,4 @@
+/maven/components/branches/MNG-3932-1/maven-project/src/main/java/org/apache/maven/project/DefaultPomArtifactResolver.java:746145-746157
 /maven/components/branches/maven-2.0.10-RC/maven-project/src/main/java/org/apache/maven/project/builder/PomArtifactResolver.java:680477
 /maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/builder/PomArtifactResolver.java:679206,720042
 /maven/components/branches/sisbell-plugin-manager/maven-project/src/main/java/org/apache/maven/project/builder/DefaultPomArtifactResolver.java:738973-739966

Propchange: maven/components/trunk/maven-project/src/main/mdo/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 20 16:27:27 2009
@@ -1,3 +1,4 @@
+/maven/components/branches/MNG-3932-1/maven-project/src/main/mdo:746145-746157
 /maven/components/branches/maven-2.0.10-RC/maven-profile/src/main/mdo:680477
 /maven/components/branches/maven-2.0.x/maven-profile/src/main/mdo:679206
 /maven/components/branches/sisbell-plugin-manager/maven-project/src/main/mdo:738973-739966

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java?rev=746285&r1=746284&r2=746285&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java Fri Feb 20 16:27:27 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
     {