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/07/15 21:24:29 UTC

svn commit: r794373 [3/9] - in /maven/components/branches/MNG-4221: maven-compat/ 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/...

Propchange: maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java
------------------------------------------------------------------------------
    cvs2svn:cvs-rev = 1.2

Propchange: maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Jul 15 19:24:20 2009
@@ -0,0 +1,7 @@
+/maven/components/branches/MNG-3932-1/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java:746145-746157
+/maven/components/branches/maven-2.0.10-RC/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java:680477
+/maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java:679206
+/maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java:679206
+/maven/components/branches/sisbell-plugin-manager/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java:738973-739966
+/maven/components/sisbell-plugin-manager/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java:738757-738972
+/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java:751453-767358,767708-768832

Modified: maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java?rev=794373&r1=794372&r2=794373&view=diff
==============================================================================
--- maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java (original)
+++ maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java Wed Jul 15 19:24:20 2009
@@ -10,31 +10,9 @@
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
 import org.apache.maven.wagon.events.TransferListener;
 
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-/**
- * @author Jason van Zyl
- */
-// Just hide the one method we want behind the RepositorySystem interface.
+@Deprecated
 public interface ArtifactResolver
 {
-    ArtifactResolutionResult resolve( ArtifactResolutionRequest request );
-
-    // The rest is deprecated
-
     // USED BY MAVEN ASSEMBLY PLUGIN 2.2-beta-2 
     @Deprecated
     String ROLE = ArtifactResolver.class.getName();

Modified: maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java?rev=794373&r1=794372&r2=794373&view=diff
==============================================================================
--- maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java (original)
+++ maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java Wed Jul 15 19:24:20 2009
@@ -1,11 +1,37 @@
 package org.apache.maven.artifact.resolver;
 
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.repository.RepositorySystem;
+import org.apache.maven.repository.legacy.metadata.ArtifactMetadataSource;
+import org.apache.maven.repository.legacy.repository.ArtifactRepository;
+import org.apache.maven.repository.legacy.resolver.ResolutionListener;
+import org.apache.maven.repository.legacy.resolver.conflict.ConflictResolver;
+import org.apache.maven.repository.legacy.resolver.filter.ArtifactFilter;
 import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
 
 @Deprecated
 @Component(role=ArtifactCollector.class)
 public class DefaultArtifactCollector
-    extends org.apache.maven.repository.legacy.resolver.DefaultLegacyArtifactCollector
     implements ArtifactCollector
-{
+{    
+    @Requirement
+    private RepositorySystem repositorySystem;
+
+    public ArtifactResolutionResult collect( Set<Artifact> artifacts, Artifact originatingArtifact, Map managedVersions, ArtifactRepository localRepository,
+                                             List<ArtifactRepository> remoteRepositories, ArtifactMetadataSource source, ArtifactFilter filter, List<ResolutionListener> listeners,
+                                             List<ConflictResolver> conflictResolvers )
+    {
+        return repositorySystem.collect( artifacts, originatingArtifact, managedVersions, localRepository, remoteRepositories, source, filter, listeners, conflictResolvers );
+    }
+
+    public ArtifactResolutionResult collect( Set<Artifact> artifacts, Artifact originatingArtifact, Map managedVersions, ArtifactRepository localRepository,
+                                             List<ArtifactRepository> remoteRepositories, ArtifactMetadataSource source, ArtifactFilter filter, List<ResolutionListener> listeners )
+    {
+        return repositorySystem.collect( artifacts, originatingArtifact, managedVersions, localRepository, remoteRepositories, source, filter, listeners );
+    }
 }

Modified: maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java?rev=794373&r1=794372&r2=794373&view=diff
==============================================================================
--- maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java (original)
+++ maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java Wed Jul 15 19:24:20 2009
@@ -1,269 +1,48 @@
 package org.apache.maven.artifact.resolver;
 
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
 import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.metadata.Metadata;
-import org.apache.maven.artifact.repository.metadata.Snapshot;
-import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
-import org.apache.maven.artifact.repository.metadata.Versioning;
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
-import org.apache.maven.repository.legacy.WagonManager;
-import org.apache.maven.repository.legacy.metadata.ArtifactMetadata;
+import org.apache.maven.repository.RepositorySystem;
+import org.apache.maven.repository.legacy.resolver.ResolutionErrorHandler;
+import org.apache.maven.repository.legacy.resolver.ResolutionListener;
 import org.apache.maven.repository.legacy.resolver.conflict.ConflictResolver;
-import org.apache.maven.repository.legacy.resolver.transform.ArtifactTransformationManager;
-import org.apache.maven.wagon.ResourceDoesNotExistException;
-import org.apache.maven.wagon.TransferFailedException;
 import org.apache.maven.wagon.events.TransferListener;
-import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
-import org.codehaus.plexus.logging.Logger;
-import org.codehaus.plexus.util.FileUtils;
-
-/**
- * @author Jason van Zyl
- */
+
+@Deprecated
 @Component(role = ArtifactResolver.class)
 public class DefaultArtifactResolver
     implements ArtifactResolver
 {
-    @Requirement 
-    private Logger logger;
-    
-    @Requirement
-    private WagonManager wagonManager;
-
     @Requirement
-    private ArtifactTransformationManager transformationManager;
-
-    @Requirement
-    protected ArtifactFactory artifactFactory;
-
-    @Requirement
-    private ArtifactCollector artifactCollector;
+    private RepositorySystem repositorySystem;
 
     @Requirement
     private ResolutionErrorHandler resolutionErrorHandler;
-
-    @Requirement
-    private ArtifactMetadataSource source;
-    
-    @Requirement
-    private PlexusContainer container;
     
     public void resolve( Artifact artifact, List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository, TransferListener resolutionListener )
         throws ArtifactResolutionException, ArtifactNotFoundException
     {
-        resolve( artifact, remoteRepositories, localRepository, resolutionListener, false );
+        repositorySystem.resolve( artifact, remoteRepositories, localRepository, resolutionListener, false );
     }
 
     public void resolveAlways( Artifact artifact, List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository )
         throws ArtifactResolutionException, ArtifactNotFoundException
     {
-        resolve( artifact, remoteRepositories, localRepository, null, true );
+        repositorySystem.resolve( artifact, remoteRepositories, localRepository, null, true );
     }
 
-    private void resolve( Artifact artifact, List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository, TransferListener downloadMonitor, boolean force )
-        throws ArtifactResolutionException, ArtifactNotFoundException
+    public ArtifactResolutionResult resolve( ArtifactResolutionRequest request )
     {
-        if ( artifact == null )
-        {
-            return;
-        }
-
-        File destination;
-        
-        if ( Artifact.SCOPE_SYSTEM.equals( artifact.getScope() ) )
-        {
-            File systemFile = artifact.getFile();
-
-            if ( systemFile == null )
-            {
-                throw new ArtifactNotFoundException( "System artifact: " + artifact + " has no file attached", artifact );
-            }
-
-            if ( !systemFile.exists() )
-            {
-                throw new ArtifactNotFoundException( "System artifact: " + artifact + " not found in path: " + systemFile, artifact );
-            }
-
-            if ( !systemFile.isFile() )
-            {
-                throw new ArtifactNotFoundException( "System artifact: " + artifact + " is not a file: " + systemFile, artifact );
-            }
-
-            artifact.setResolved( true );
-            
-            return;
-        }
-        
-        if ( !artifact.isResolved() )
-        {
-            // ----------------------------------------------------------------------
-            // Check for the existence of the artifact in the specified local
-            // ArtifactRepository. If it is present then simply return as the
-            // request for resolution has been satisfied.
-            // ----------------------------------------------------------------------
-
-            artifact = localRepository.find( artifact );
-            
-            if ( artifact.isFromAuthoritativeRepository() )
-            {
-                return;
-            }
-            
-            if ( artifact.isSnapshot() && artifact.isResolved() )
-            {
-                return;
-            }
-            
-            transformationManager.transformForResolve( artifact, remoteRepositories, localRepository );
-
-            boolean localCopy = isLocalCopy( artifact );
-
-            destination = artifact.getFile();
-
-            boolean resolved = false;
-
-            if ( force || !destination.exists() || ( artifact.isSnapshot() && !localCopy ) )
-            {
-                try
-                {
-                    if ( artifact.getRepository() != null )
-                    {
-                        // the transformations discovered the artifact - so use it exclusively
-                        wagonManager.getArtifact( artifact, artifact.getRepository(), downloadMonitor );
-                    }
-                    else
-                    {
-                        wagonManager.getArtifact( artifact, remoteRepositories, downloadMonitor );
-                    }
-
-                    if ( !artifact.isResolved() && !destination.exists() )
-                    {
-                        throw new ArtifactResolutionException( "Failed to resolve artifact, possibly due to a repository list that is not appropriately equipped for this artifact's metadata.",
-                                                               artifact, remoteRepositories );
-                    }
-                }
-                catch ( ResourceDoesNotExistException e )
-                {
-                    throw new ArtifactNotFoundException( e.getMessage(), artifact, remoteRepositories, e );
-                }
-                catch ( TransferFailedException e )
-                {
-                    throw new ArtifactResolutionException( e.getMessage(), artifact, remoteRepositories, e );
-                }
-
-                resolved = true;
-            }
-
-            if ( destination.exists() )
-            {
-                artifact.setResolved( true );
-            }
-                                        
-            // 1.0-SNAPSHOT
-            //
-            // 1)         pom = 1.0-SoNAPSHOT
-            // 2)         pom = 1.0-yyyymmdd.hhmmss
-            // 3) baseVersion = 1.0-SNAPSHOT
-            if ( artifact.isSnapshot() && !artifact.getBaseVersion().equals( artifact.getVersion() ) )
-            {
-                String version = artifact.getVersion();
-
-                // 1.0-SNAPSHOT
-                artifact.selectVersion( artifact.getBaseVersion() );
-
-                // Make a file with a 1.0-SNAPSHOT format
-                File copy = new File( localRepository.getBasedir(), localRepository.pathOf( artifact ) );
-                
-                // if the timestamped version was resolved or the copy doesn't exist then copy a version
-                // of the file like 1.0-SNAPSHOT. Even if there is a timestamped version the non-timestamped
-                // version will be created.
-                if ( resolved || !copy.exists() )
-                {
-                    // recopy file if it was reresolved, or doesn't exist.
-                    try
-                    {
-                        FileUtils.copyFile( destination, copy );
-
-                        copy.setLastModified( destination.lastModified() );
-                    }
-                    catch ( IOException e )
-                    {
-                        throw new ArtifactResolutionException( "Unable to copy resolved artifact for local use: " + e.getMessage(), artifact, remoteRepositories, e );
-                    }
-                }
-
-                // We are only going to use the 1.0-SNAPSHOT version
-                artifact.setFile( copy );
-
-                // Set the version to the 1.0-SNAPSHOT version
-                artifact.selectVersion( version );
-            }
-        }
-    }
-        
-    private boolean isLocalCopy( Artifact artifact )
-    {
-        boolean localCopy = false;
-
-        for ( ArtifactMetadata m : artifact.getMetadataList() )
-        {
-            if ( m instanceof SnapshotArtifactRepositoryMetadata )
-            {
-                SnapshotArtifactRepositoryMetadata snapshotMetadata = (SnapshotArtifactRepositoryMetadata) m;
-
-                Metadata metadata = snapshotMetadata.getMetadata();
-
-                if ( metadata != null )
-                {
-                    Versioning versioning = metadata.getVersioning();
-
-                    if ( versioning != null )
-                    {
-                        Snapshot snapshot = versioning.getSnapshot();
-
-                        if ( snapshot != null )
-                        {
-                            // TODO is it possible to have more than one SnapshotArtifactRepositoryMetadata
-                            localCopy = snapshot.isLocalCopy();
-                        }
-                    }
-                }
-            }
-        }
-
-        return localCopy;
+        return repositorySystem.resolve( request );
     }
 
     public ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories,
@@ -316,15 +95,9 @@
                                                          List<ConflictResolver> conflictResolvers )
         throws ArtifactResolutionException, ArtifactNotFoundException
     {
-        ArtifactResolutionRequest request = new ArtifactResolutionRequest()
-            .setArtifact( originatingArtifact )
-            .setResolveRoot( false )
+        ArtifactResolutionRequest request = new ArtifactResolutionRequest().setArtifact( originatingArtifact ).setResolveRoot( false )
             // This is required by the surefire plugin
-            .setArtifactDependencies( artifacts )            
-            .setManagedVersionMap( managedVersions )
-            .setLocalRepository( localRepository )
-            .setRemoteRepostories( remoteRepositories )
-            .setFilter( filter )
+            .setArtifactDependencies( artifacts ).setManagedVersionMap( managedVersions ).setLocalRepository( localRepository ).setRemoteRepostories( remoteRepositories ).setFilter( filter )
             .setListeners( listeners );
 
         return resolveWithExceptions( request );
@@ -344,170 +117,14 @@
         return result;
     }
 
-    // ------------------------------------------------------------------------
-    //
-    // ------------------------------------------------------------------------
-    
-    public ArtifactResolutionResult resolve( ArtifactResolutionRequest request )
-    {
-        Artifact rootArtifact = request.getArtifact();
-        Set<Artifact> artifacts = request.getArtifactDependencies();
-        Map managedVersions = request.getManagedVersionMap();
-        ArtifactRepository localRepository = request.getLocalRepository();
-        List<ArtifactRepository> remoteRepositories = request.getRemoteRepostories();
-        List<ResolutionListener> listeners = request.getListeners();
-        ArtifactFilter filter = request.getFilter();                       
-        
-        //TODO: hack because metadata isn't generated in m2e correctly and i want to run the maven i have in the workspace
-        if ( source == null )
-        {
-            try
-            {
-                source = container.lookup( ArtifactMetadataSource.class );
-            }
-            catch ( ComponentLookupException e )
-            {
-                e.printStackTrace();
-                // won't happen
-            }
-        }
-
-        if ( listeners == null )
-        {
-            listeners = new ArrayList<ResolutionListener>();
-
-            if ( logger.isDebugEnabled() )
-            {
-                listeners.add( new DebugResolutionListener( logger ) );
-            }
-
-            listeners.add( new WarningResolutionListener( logger ) );
-        }
-
-        ArtifactResolutionResult result = new ArtifactResolutionResult();
-
-        // The root artifact may, or may not be resolved so we need to check before we attempt to resolve.
-        // This is often an artifact like a POM that is taken from disk and we already have hold of the
-        // file reference. But this may be a Maven Plugin that we need to resolve from a remote repository
-        // as well as its dependencies.
-                        
-        if ( request.isResolveRoot() && rootArtifact.getFile() == null )
-        {            
-            try
-            {
-                resolve( rootArtifact, remoteRepositories, localRepository );
-            }
-            catch ( ArtifactResolutionException e )
-            {
-                result.addErrorArtifactException( e );
-                return result;
-            }
-            catch ( ArtifactNotFoundException e )
-            {
-                result.addMissingArtifact( request.getArtifact() );
-                return result;
-            }
-        }
-        
-        if ( request.isResolveTransitively() )
-        {
-            try
-            {
-                Set<Artifact> directArtifacts = source.retrieve( rootArtifact, localRepository, remoteRepositories ).getArtifacts();
-
-                if ( artifacts == null || artifacts.isEmpty() )
-                {
-                    artifacts = directArtifacts;
-                }
-                else
-                {
-                    List<Artifact> allArtifacts = new ArrayList<Artifact>();
-                    allArtifacts.addAll( artifacts );
-                    allArtifacts.addAll( directArtifacts );
-
-                    Map<String, Artifact> mergedArtifacts = new LinkedHashMap<String, Artifact>();
-                    for ( Artifact artifact : allArtifacts )
-                    {
-                        String conflictId = artifact.getDependencyConflictId();
-                        if ( !mergedArtifacts.containsKey( conflictId ) )
-                        {
-                            mergedArtifacts.put( conflictId, artifact );
-                        }
-                    }
-
-                    artifacts = new LinkedHashSet<Artifact>( mergedArtifacts.values() );
-                }
-            }
-            catch ( ArtifactMetadataRetrievalException e )
-            {
-                // need to add metadata resolution exception
-                return result;
-            }
-        }
-        
-        if ( artifacts == null || artifacts.isEmpty() )
-        {
-            if ( request.isResolveRoot() )
-            {
-                result.addArtifact( rootArtifact );
-            }
-            return result;
-        } 
-
-        // After the collection we will have the artifact object in the result but they will not be resolved yet.
-        result = artifactCollector.collect( artifacts, rootArtifact, managedVersions, localRepository, remoteRepositories, source, filter, listeners, null );
-                        
-        // We have metadata retrieval problems, or there are cycles that have been detected
-        // so we give this back to the calling code and let them deal with this information
-        // appropriately.
-
-        if ( result.hasMetadataResolutionExceptions() || result.hasVersionRangeViolations() || result.hasCircularDependencyExceptions() )
-        {
-            return result;
-        }
-                
-        if ( result.getArtifacts() != null )
-        {
-            for ( Artifact artifact : result.getArtifacts() )
-            {
-                try
-                {
-                    resolve( artifact, remoteRepositories, localRepository, request.getTransferListener() );
-                }
-                catch ( ArtifactNotFoundException anfe )
-                {
-                    // These are cases where the artifact just isn't present in any of the remote repositories
-                    // because it wasn't deployed, or it was deployed in the wrong place.
-
-                    result.addMissingArtifact( artifact );
-                }
-                catch ( ArtifactResolutionException e )
-                {
-                    // This is really a wagon TransferFailedException so something went wrong after we successfully
-                    // retrieved the metadata.
-
-                    result.addErrorArtifactException( e );
-                }
-            }
-        }
-                
-        // We want to send the root artifact back in the result but we need to do this after the other dependencies
-        // have been resolved.
-        if ( request.isResolveRoot() )
-        {            
-            // Add the root artifact (as the first artifact to retain logical order of class path!)
-            Set<Artifact> allArtifacts = new LinkedHashSet<Artifact>();
-            allArtifacts.add( rootArtifact );
-            allArtifacts.addAll( result.getArtifacts() );
-            result.setArtifacts( allArtifacts );
-        }                        
-                 
-        return result;
-    }
-
     public void resolve( Artifact artifact, List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository )
         throws ArtifactResolutionException, ArtifactNotFoundException
     {
         resolve( artifact, remoteRepositories, localRepository, null );
     }
+
+    public ArtifactResolutionResult resolve( ArtifactResolutionRequest request )
+    {
+        return repositorySystem.resolve( request );
+    }
 }

Modified: maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/ArtifactFilter.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/ArtifactFilter.java?rev=794373&r1=794372&r2=794373&view=diff
==============================================================================
--- maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/ArtifactFilter.java (original)
+++ maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/ArtifactFilter.java Wed Jul 15 19:24:20 2009
@@ -1,31 +1,7 @@
 package org.apache.maven.artifact.resolver.filter;
 
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.apache.maven.artifact.Artifact;
-
-/**
- * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
- * @version $Id$
- */
+@Deprecated
 public interface ArtifactFilter
+    extends org.apache.maven.repository.legacy.resolver.filter.ArtifactFilter
 {
-    boolean include( Artifact artifact );
 }

Modified: maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/execution/DefaultRuntimeInformation.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/execution/DefaultRuntimeInformation.java?rev=794373&r1=794372&r2=794373&view=diff
==============================================================================
--- maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/execution/DefaultRuntimeInformation.java (original)
+++ maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/execution/DefaultRuntimeInformation.java Wed Jul 15 19:24:20 2009
@@ -19,8 +19,8 @@
  * under the License.
  */
 
-import org.apache.maven.artifact.versioning.ArtifactVersion;
-import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
+import org.apache.maven.repository.legacy.versioning.ArtifactVersion;
+import org.apache.maven.repository.legacy.versioning.DefaultArtifactVersion;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;

Modified: maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/execution/RuntimeInformation.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/execution/RuntimeInformation.java?rev=794373&r1=794372&r2=794373&view=diff
==============================================================================
--- maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/execution/RuntimeInformation.java (original)
+++ maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/execution/RuntimeInformation.java Wed Jul 15 19:24:20 2009
@@ -19,7 +19,7 @@
  * under the License.
  */
 
-import org.apache.maven.artifact.versioning.ArtifactVersion;
+import org.apache.maven.repository.legacy.versioning.ArtifactVersion;
 
 /**
  * Describes runtime information about the application.

Modified: maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/project/MissingRepositoryElementException.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/project/MissingRepositoryElementException.java?rev=794373&r1=794372&r2=794373&view=diff
==============================================================================
--- maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/project/MissingRepositoryElementException.java (original)
+++ maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/project/MissingRepositoryElementException.java Wed Jul 15 19:24:20 2009
@@ -19,7 +19,7 @@
  * under the License.
  */
 
-import org.apache.maven.artifact.InvalidRepositoryException;
+import org.apache.maven.repository.legacy.InvalidRepositoryException;
 
 public class MissingRepositoryElementException
     extends InvalidRepositoryException

Modified: maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/project/ProjectUtils.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/project/ProjectUtils.java?rev=794373&r1=794372&r2=794373&view=diff
==============================================================================
--- maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/project/ProjectUtils.java (original)
+++ maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/project/ProjectUtils.java Wed Jul 15 19:24:20 2009
@@ -22,18 +22,21 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.maven.artifact.InvalidRepositoryException;
 import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryAdapter;
 import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.artifact.repository.LegacyArtifactRepositoryAdapter;
 import org.apache.maven.model.DeploymentRepository;
 import org.apache.maven.model.Repository;
 import org.apache.maven.repository.RepositorySystem;
+import org.apache.maven.repository.legacy.InvalidRepositoryException;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 
 // This class needs to stick around because it was exposed the the remote resources plugin started using it instead of
 // getting the repositories from the project.
 
+@Deprecated
 public final class ProjectUtils
 {
     static RepositorySystem rs;
@@ -45,29 +48,52 @@
     public static List<ArtifactRepository> buildArtifactRepositories( List<Repository> repositories, ArtifactRepositoryFactory artifactRepositoryFactory, PlexusContainer c )
         throws InvalidRepositoryException
     {
-
+        //
+        // Old repository format
+        //
         List<ArtifactRepository> remoteRepositories = new ArrayList<ArtifactRepository>();
         
         for ( Repository r : repositories )
         {
             remoteRepositories.add( buildArtifactRepository( r, artifactRepositoryFactory, c ) );
-        }
-
-        remoteRepositories = rs( c ).getMirrors( remoteRepositories );
-
-        return remoteRepositories;
+        }       
+                
+        //TODO: This is not very nice so we need to make sure the mirrors are processed internally
+        // and plugins that are accessing repositories outside the context of a MavenProject or the system
+        // is categorically bad.
+        return convertToLegacy( rs( c ).getMirrors( convertFromLegacy( remoteRepositories ) ) );        
     }
 
+    private static List<org.apache.maven.repository.legacy.repository.ArtifactRepository> convertFromLegacy( List<ArtifactRepository> repositories )
+    {
+        List<org.apache.maven.repository.legacy.repository.ArtifactRepository> repos = new ArrayList<org.apache.maven.repository.legacy.repository.ArtifactRepository>();
+        for( ArtifactRepository r : repositories )
+        {
+            repos.add( new ArtifactRepositoryAdapter( r ) );            
+        }
+        return repos;
+    }
+        
+    private static List<ArtifactRepository> convertToLegacy( List<org.apache.maven.repository.legacy.repository.ArtifactRepository> repositories )
+    {
+        List<ArtifactRepository> repos = new ArrayList<ArtifactRepository>();        
+        for( org.apache.maven.repository.legacy.repository.ArtifactRepository r : repositories )
+        {
+            repos.add( new LegacyArtifactRepositoryAdapter( r ) );
+        }
+        return repos;
+    }
+    
     public static ArtifactRepository buildDeploymentArtifactRepository( DeploymentRepository repo, ArtifactRepositoryFactory artifactRepositoryFactory, PlexusContainer c )
         throws InvalidRepositoryException
     {
-        return rs( c ).buildArtifactRepository( repo );
+        return new LegacyArtifactRepositoryAdapter( rs( c ).buildArtifactRepository( repo ) );
     }
 
     public static ArtifactRepository buildArtifactRepository( Repository repo, ArtifactRepositoryFactory artifactRepositoryFactory, PlexusContainer c )
         throws InvalidRepositoryException
     {
-        return rs( c  ).buildArtifactRepository( repo );        
+        return new LegacyArtifactRepositoryAdapter( rs( c  ).buildArtifactRepository( repo ) );        
     }
 
     private static RepositorySystem rs( PlexusContainer c )

Modified: maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorBuilder.java?rev=794373&r1=794372&r2=794373&view=diff
==============================================================================
--- maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorBuilder.java (original)
+++ maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorBuilder.java Wed Jul 15 19:24:20 2009
@@ -26,10 +26,10 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
-import org.apache.maven.artifact.repository.DefaultArtifactRepository;
-import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.repository.legacy.repository.ArtifactRepository;
+import org.apache.maven.repository.legacy.repository.ArtifactRepositoryFactory;
+import org.apache.maven.repository.legacy.repository.DefaultArtifactRepository;
+import org.apache.maven.repository.legacy.repository.layout.ArtifactRepositoryLayout;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.Logger;

Modified: maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/repository/DelegatingLocalArtifactRepository.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/repository/DelegatingLocalArtifactRepository.java?rev=794373&r1=794372&r2=794373&view=diff
==============================================================================
--- maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/repository/DelegatingLocalArtifactRepository.java (original)
+++ maven/components/branches/MNG-4221/maven-compat/src/main/java/org/apache/maven/repository/DelegatingLocalArtifactRepository.java Wed Jul 15 19:24:20 2009
@@ -21,10 +21,10 @@
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.metadata.ArtifactMetadata;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
-import org.apache.maven.artifact.repository.MavenArtifactRepository;
-import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.repository.legacy.repository.ArtifactRepository;
+import org.apache.maven.repository.legacy.repository.ArtifactRepositoryPolicy;
+import org.apache.maven.repository.legacy.repository.MavenArtifactRepository;
+import org.apache.maven.repository.legacy.repository.layout.ArtifactRepositoryLayout;
 
 /**
  * Delegating local artifact repository chains the reactor, IDE workspace