diff --git a/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DebugResolutionListener.java b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DebugResolutionListener.java
new file mode 100644
index 0000000000..59e2e57b18
--- /dev/null
+++ b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DebugResolutionListener.java
@@ -0,0 +1,84 @@
+package org.apache.maven.artifact.resolver;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed 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;
+import org.codehaus.plexus.logging.Logger;
+
+/**
+ * Send resolution events to the debug log.
+ *
+ * @author Brett Porter
+ * @version $Id$
+ */
+public class DebugResolutionListener
+ implements ResolutionListener
+{
+ private Logger logger;
+
+ private String indent = "";
+
+ public DebugResolutionListener( Logger logger )
+ {
+ this.logger = logger;
+ }
+
+ public void testArtifact( Artifact node )
+ {
+ }
+
+ public void startProcessChildren( Artifact artifact )
+ {
+ indent += " ";
+ }
+
+ public void endProcessChildren( Artifact artifact )
+ {
+ indent = indent.substring( 1 );
+ }
+
+ public void includeArtifact( Artifact artifact )
+ {
+ logger.debug( indent + artifact.getId() + " (selected)" );
+ }
+
+ public void omitForNearer( Artifact omitted, Artifact kept )
+ {
+ logger.debug( indent + omitted.getId() + " (removed - nearer found: " + kept.getVersion() + ")" );
+ }
+
+ public void updateScope( Artifact artifact, String scope )
+ {
+ logger.debug( indent + artifact.getId() + " (settings scope to: " + scope + ")" );
+ }
+
+ public void manageArtifact( Artifact artifact, Artifact replacement )
+ {
+ String msg = indent + artifact.getId();
+ msg += " (";
+ if ( replacement.getVersion() != null )
+ {
+ msg += "applying version: " + replacement.getVersion() + ";";
+ }
+ if ( replacement.getScope() != null )
+ {
+ msg += "applying scope: " + replacement.getScope();
+ }
+ msg += ")";
+ logger.debug( msg );
+ }
+}
diff --git a/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
index 69401f321e..9ee8b315ff 100644
--- a/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
+++ b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
@@ -28,9 +28,9 @@ import org.apache.maven.artifact.transform.ArtifactTransformation;
import org.apache.maven.wagon.ResourceDoesNotExistException;
import org.apache.maven.wagon.TransferFailedException;
import org.codehaus.plexus.logging.AbstractLogEnabled;
-import org.codehaus.plexus.logging.Logger;
import java.io.File;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -71,11 +71,6 @@ public class DefaultArtifactResolver
// request for resolution has been satisfied.
// ----------------------------------------------------------------------
- Logger logger = getLogger();
- logger.debug(
- "Resolving: " + artifact.getId() + " from:\n" + "{localRepository: " + localRepository + "}\n" +
- "{remoteRepositories: " + remoteRepositories + "}" );
-
String localPath = localRepository.pathOf( artifact );
artifact.setFile( new File( localRepository.getBasedir(), localPath ) );
@@ -158,9 +153,16 @@ public class DefaultArtifactResolver
{
ArtifactResolutionResult artifactResolutionResult;
+ // TODO: this is simplistic
+ List listeners = new ArrayList();
+ if ( getLogger().isDebugEnabled() )
+ {
+ listeners.add( new DebugResolutionListener( getLogger() ) );
+ }
+
artifactResolutionResult = artifactCollector.collect( artifacts, originatingArtifact, managedVersions,
localRepository, remoteRepositories, source, filter,
- artifactFactory );
+ artifactFactory, listeners );
for ( Iterator i = artifactResolutionResult.getArtifacts().iterator(); i.hasNext(); )
{
diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java b/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java
index e6c6c227d8..32ebb23bc4 100644
--- a/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java
+++ b/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java
@@ -105,4 +105,6 @@ public interface Artifact
List getDependencyTrail();
void setDependencyTrail( List dependencyTrail );
+
+ void setScope( String scope );
}
\ No newline at end of file
diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java b/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java
index 6141c080cc..1bae94ec03 100644
--- a/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java
+++ b/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java
@@ -48,7 +48,7 @@ public class DefaultArtifact
private final String classifier;
- private final String scope;
+ private String scope;
private List metadataList;
@@ -360,4 +360,9 @@ public class DefaultArtifact
{
this.dependencyTrail = dependencyTrail;
}
+
+ public void setScope( String scope )
+ {
+ this.scope = scope;
+ }
}
diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactCollector.java b/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactCollector.java
index 18b95279f0..f7c0866e8f 100644
--- a/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactCollector.java
+++ b/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactCollector.java
@@ -23,8 +23,8 @@ import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import java.util.List;
-import java.util.Set;
import java.util.Map;
+import java.util.Set;
/**
* Artifact collector - takes a set of original artifacts and resolves all of the best versions to use
@@ -37,12 +37,12 @@ public interface ArtifactCollector
{
ArtifactResolutionResult collect( Set artifacts, Artifact originatingArtifact, ArtifactRepository localRepository,
List remoteRepositories, ArtifactMetadataSource source, ArtifactFilter filter,
- ArtifactFactory artifactFactory )
+ ArtifactFactory artifactFactory, List listeners )
throws ArtifactResolutionException;
ArtifactResolutionResult collect( Set artifacts, Artifact originatingArtifact, Map managedVersions,
ArtifactRepository localRepository, List remoteRepositories,
ArtifactMetadataSource source, ArtifactFilter filter,
- ArtifactFactory artifactFactory )
+ ArtifactFactory artifactFactory, List listeners )
throws ArtifactResolutionException;
}
diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java b/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
index b724278537..53e23e75a1 100644
--- a/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
+++ b/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
@@ -44,17 +44,17 @@ public class DefaultArtifactCollector
public ArtifactResolutionResult collect( Set artifacts, Artifact originatingArtifact,
ArtifactRepository localRepository, List remoteRepositories,
ArtifactMetadataSource source, ArtifactFilter filter,
- ArtifactFactory artifactFactory )
+ ArtifactFactory artifactFactory, List listeners )
throws ArtifactResolutionException
{
return collect( artifacts, originatingArtifact, Collections.EMPTY_MAP, localRepository, remoteRepositories,
- source, filter, artifactFactory );
+ source, filter, artifactFactory, listeners );
}
public ArtifactResolutionResult collect( Set artifacts, Artifact originatingArtifact, Map managedVersions,
ArtifactRepository localRepository, List remoteRepositories,
ArtifactMetadataSource source, ArtifactFilter filter,
- ArtifactFactory artifactFactory )
+ ArtifactFactory artifactFactory, List listeners )
throws ArtifactResolutionException
{
Map resolvedArtifacts = new HashMap();
@@ -63,7 +63,7 @@ public class DefaultArtifactCollector
root.addDependencies( artifacts, filter );
recurse( root, resolvedArtifacts, managedVersions, localRepository, remoteRepositories, source, filter,
- artifactFactory );
+ artifactFactory, listeners );
Set set = new HashSet();
@@ -89,94 +89,57 @@ public class DefaultArtifactCollector
private void recurse( ResolutionNode node, Map resolvedArtifacts, Map managedVersions,
ArtifactRepository localRepository, List remoteRepositories, ArtifactMetadataSource source,
- ArtifactFilter filter, ArtifactFactory artifactFactory )
+ ArtifactFilter filter, ArtifactFactory artifactFactory, List listeners )
throws CyclicDependencyException, TransitiveArtifactResolutionException
{
+ fireEvent( ResolutionListener.TEST_ARTIFACT, listeners, node );
+
// TODO: conflict resolvers, shouldn't be munging original artifact perhaps?
Object key = node.getKey();
if ( managedVersions.containsKey( key ) )
{
Artifact artifact = (Artifact) managedVersions.get( key );
- // TODO: apply scope. assign whole artifact, except that the missing bits must be filled in
+
+ fireEvent( ResolutionListener.MANAGE_ARTIFACT, listeners, node, artifact );
+
if ( artifact.getVersion() != null )
{
node.getArtifact().setVersion( artifact.getVersion() );
}
+ if ( artifact.getScope() != null )
+ {
+ node.getArtifact().setScope( artifact.getScope() );
+ }
}
ResolutionNode previous = (ResolutionNode) resolvedArtifacts.get( key );
if ( previous != null )
{
- // TODO: conflict resolvers
+ // TODO: use as conflict resolver(s), chain and introduce version mediation
// previous one is more dominant
if ( previous.getDepth() <= node.getDepth() )
{
- boolean updateScope = false;
- Artifact newArtifact = node.getArtifact();
- Artifact previousArtifact = previous.getArtifact();
-
- if ( Artifact.SCOPE_RUNTIME.equals( newArtifact.getScope() ) &&
- ( Artifact.SCOPE_TEST.equals( previousArtifact.getScope() ) ||
- Artifact.SCOPE_PROVIDED.equals( previousArtifact.getScope() ) ) )
- {
- updateScope = true;
- }
-
- if ( Artifact.SCOPE_COMPILE.equals( newArtifact.getScope() ) &&
- !Artifact.SCOPE_COMPILE.equals( previousArtifact.getScope() ) )
- {
- updateScope = true;
- }
-
- if ( updateScope )
- {
- Artifact artifact = artifactFactory.createArtifact( previousArtifact.getGroupId(),
- previousArtifact.getArtifactId(),
- previousArtifact.getVersion(),
- newArtifact.getScope(),
- previousArtifact.getType() );
- // TODO: can I just change the scope?
- previous.setArtifact( artifact );
- }
-
- return;
+ checkScopeUpdate( node, previous, artifactFactory, listeners );
}
else
{
- boolean updateScope = false;
- Artifact previousArtifact = previous.getArtifact();
- Artifact newArtifact = node.getArtifact();
-
- if ( Artifact.SCOPE_RUNTIME.equals( previousArtifact.getScope() ) &&
- ( Artifact.SCOPE_TEST.equals( newArtifact.getScope() ) ||
- Artifact.SCOPE_PROVIDED.equals( newArtifact.getScope() ) ) )
- {
- updateScope = true;
- }
-
- if ( Artifact.SCOPE_COMPILE.equals( previousArtifact.getScope() ) &&
- !Artifact.SCOPE_COMPILE.equals( newArtifact.getScope() ) )
- {
- updateScope = true;
- }
-
- if ( updateScope )
- {
- Artifact artifact = artifactFactory.createArtifact( newArtifact.getGroupId(),
- newArtifact.getArtifactId(),
- newArtifact.getVersion(),
- previousArtifact.getScope(),
- newArtifact.getType() );
- // TODO: can I just change the scope?
- node.setArtifact( artifact );
- }
+ checkScopeUpdate( previous, node, artifactFactory, listeners );
+ }
+ if ( previous.getDepth() <= node.getDepth() )
+ {
+ fireEvent( ResolutionListener.OMIT_FOR_NEARER, listeners, node, previous.getArtifact() );
+ return;
}
}
resolvedArtifacts.put( key, node );
+ fireEvent( ResolutionListener.INCLUDE_ARTIFACT, listeners, node );
+
+ fireEvent( ResolutionListener.PROCESS_CHILDREN, listeners, node );
+
for ( Iterator i = node.getChildrenIterator(); i.hasNext(); )
{
ResolutionNode child = (ResolutionNode) i.next();
@@ -195,7 +158,82 @@ public class DefaultArtifactCollector
}
recurse( child, resolvedArtifacts, managedVersions, localRepository, remoteRepositories, source, filter,
- artifactFactory );
+ artifactFactory, listeners );
+ }
+ }
+
+ fireEvent( ResolutionListener.FINISH_PROCESSING_CHILDREN, listeners, node );
+ }
+
+ private void checkScopeUpdate( ResolutionNode node, ResolutionNode previous, ArtifactFactory artifactFactory,
+ List listeners )
+ {
+ boolean updateScope = false;
+ Artifact newArtifact = node.getArtifact();
+ Artifact previousArtifact = previous.getArtifact();
+
+ if ( Artifact.SCOPE_RUNTIME.equals( newArtifact.getScope() ) &&
+ ( Artifact.SCOPE_TEST.equals( previousArtifact.getScope() ) ||
+ Artifact.SCOPE_PROVIDED.equals( previousArtifact.getScope() ) ) )
+ {
+ updateScope = true;
+ }
+
+ if ( Artifact.SCOPE_COMPILE.equals( newArtifact.getScope() ) &&
+ !Artifact.SCOPE_COMPILE.equals( previousArtifact.getScope() ) )
+ {
+ updateScope = true;
+ }
+
+ if ( updateScope )
+ {
+ fireEvent( ResolutionListener.UPDATE_SCOPE, listeners, previous, newArtifact );
+
+ Artifact artifact = artifactFactory.createArtifact( previousArtifact.getGroupId(),
+ previousArtifact.getArtifactId(),
+ previousArtifact.getVersion(), newArtifact.getScope(),
+ previousArtifact.getType() );
+ // TODO: can I just change the scope?
+ previous.setArtifact( artifact );
+ }
+ }
+
+ private void fireEvent( int event, List listeners, ResolutionNode node )
+ {
+ fireEvent( event, listeners, node, null );
+ }
+
+ private void fireEvent( int event, List listeners, ResolutionNode node, Artifact replacement )
+ {
+ for ( Iterator i = listeners.iterator(); i.hasNext(); )
+ {
+ ResolutionListener listener = (ResolutionListener) i.next();
+
+ switch ( event )
+ {
+ case ResolutionListener.TEST_ARTIFACT:
+ listener.testArtifact( node.getArtifact() );
+ break;
+ case ResolutionListener.PROCESS_CHILDREN:
+ listener.startProcessChildren( node.getArtifact() );
+ break;
+ case ResolutionListener.FINISH_PROCESSING_CHILDREN:
+ listener.endProcessChildren( node.getArtifact() );
+ break;
+ case ResolutionListener.INCLUDE_ARTIFACT:
+ listener.includeArtifact( node.getArtifact() );
+ break;
+ case ResolutionListener.OMIT_FOR_NEARER:
+ listener.omitForNearer( node.getArtifact(), replacement );
+ break;
+ case ResolutionListener.UPDATE_SCOPE:
+ listener.updateScope( node.getArtifact(), replacement.getScope() );
+ break;
+ case ResolutionListener.MANAGE_ARTIFACT:
+ listener.manageArtifact( node.getArtifact(), replacement );
+ break;
+ default:
+ throw new IllegalStateException( "Unknown event: " + event );
}
}
}
diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/LegacyArtifactCollector.java b/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/LegacyArtifactCollector.java
deleted file mode 100644
index 7dd567fc77..0000000000
--- a/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/LegacyArtifactCollector.java
+++ /dev/null
@@ -1,169 +0,0 @@
-package org.apache.maven.artifact.resolver;
-
-/*
- * Copyright 2001-2005 The Apache Software Foundation.
- *
- * Licensed 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;
-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.resolver.filter.ArtifactFilter;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Previous implementation of the artifact collector.
- *
- * @author Brett Porter
- * @version $Id: DefaultArtifactCollector.java 191748 2005-06-22 00:31:33Z brett $
- * @deprecated
- */
-public class LegacyArtifactCollector
- implements ArtifactCollector
-{
- public ArtifactResolutionResult collect( Set artifacts, Artifact originatingArtifact,
- ArtifactRepository localRepository, List remoteRepositories,
- ArtifactMetadataSource source, ArtifactFilter filter,
- ArtifactFactory artifactFactory )
- throws ArtifactResolutionException
- {
- return collect( artifacts, originatingArtifact, Collections.EMPTY_MAP, localRepository, remoteRepositories,
- source, filter, artifactFactory );
- }
-
- public ArtifactResolutionResult collect( Set artifacts, Artifact originatingArtifact, Map managedVersions,
- ArtifactRepository localRepository, List remoteRepositories,
- ArtifactMetadataSource source, ArtifactFilter filter,
- ArtifactFactory artifactFactory )
- throws ArtifactResolutionException
- {
- ArtifactResolutionResult result = new ArtifactResolutionResult();
-
- Map resolvedArtifacts = new HashMap();
-
- List queue = new LinkedList();
-
- queue.add( artifacts );
-
- while ( !queue.isEmpty() )
- {
- Set currentArtifacts = (Set) queue.remove( 0 );
-
- for ( Iterator i = currentArtifacts.iterator(); i.hasNext(); )
- {
- Artifact newArtifact = (Artifact) i.next();
-
- String id = newArtifact.getDependencyConflictId();
-
- if ( resolvedArtifacts.containsKey( id ) )
- {
- Artifact knownArtifact = (Artifact) resolvedArtifacts.get( id );
-
- String newVersion = newArtifact.getVersion();
-
- String knownVersion = knownArtifact.getVersion();
-
- if ( !newVersion.equals( knownVersion ) )
- {
- addConflict( result, knownArtifact, newArtifact );
- }
-
- // TODO: scope handler
- boolean updateScope = false;
- if ( Artifact.SCOPE_RUNTIME.equals( newArtifact.getScope() ) &&
- Artifact.SCOPE_TEST.equals( knownArtifact.getScope() ) )
- {
- updateScope = true;
- }
-
- if ( Artifact.SCOPE_COMPILE.equals( newArtifact.getScope() ) &&
- !Artifact.SCOPE_COMPILE.equals( knownArtifact.getScope() ) )
- {
- updateScope = true;
- }
-
- if ( updateScope )
- {
- Artifact artifact = artifactFactory.createArtifact( knownArtifact.getGroupId(),
- knownArtifact.getArtifactId(), knownVersion,
- newArtifact.getScope(),
- knownArtifact.getType() );
- resolvedArtifacts.put( artifact.getDependencyConflictId(), artifact );
- }
- }
- else
- {
- // ----------------------------------------------------------------------
- // It's the first time we have encountered this artifact
- // ----------------------------------------------------------------------
-
- if ( filter != null && !filter.include( newArtifact ) )
- {
- continue;
- }
-
- resolvedArtifacts.put( id, newArtifact );
-
- Set referencedDependencies = null;
-
- try
- {
- referencedDependencies = source.retrieve( newArtifact, localRepository, remoteRepositories );
- }
- catch ( ArtifactMetadataRetrievalException e )
- {
- throw new TransitiveArtifactResolutionException( e.getMessage(), newArtifact,
- remoteRepositories, e );
- }
-
- // the pom for given dependency exisit we will add it to the
- // queue
- queue.add( referencedDependencies );
- }
- }
- }
-
- result.setArtifacts( new HashSet( resolvedArtifacts.values() ) );
-
- return result;
- }
-
- private void addConflict( ArtifactResolutionResult result, Artifact knownArtifact, Artifact newArtifact )
- {
- List conflicts;
-
- conflicts = (List) result.getConflicts().get( newArtifact.getDependencyConflictId() );
-
- if ( conflicts == null )
- {
- conflicts = new LinkedList();
-
- conflicts.add( knownArtifact );
-
- result.getConflicts().put( newArtifact.getDependencyConflictId(), conflicts );
- }
-
- conflicts.add( newArtifact );
- }
-}
diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionListener.java b/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionListener.java
new file mode 100644
index 0000000000..f76b39de29
--- /dev/null
+++ b/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionListener.java
@@ -0,0 +1,58 @@
+package org.apache.maven.artifact.resolver;
+
+import org.apache.maven.artifact.Artifact;
+
+/*
+* Copyright 2001-2005 The Apache Software Foundation.
+*
+* Licensed 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.
+*/
+
+/**
+ * TODO: describe
+ *
+ * @author Brett Porter
+ * @version $Id$
+ */
+public interface ResolutionListener
+{
+ String ROLE = ResolutionListener.class.getName();
+
+ int TEST_ARTIFACT = 1;
+
+ int PROCESS_CHILDREN = 2;
+
+ int FINISH_PROCESSING_CHILDREN = 3;
+
+ int INCLUDE_ARTIFACT = 4;
+
+ int OMIT_FOR_NEARER = 5;
+
+ int UPDATE_SCOPE = 6;
+
+ int MANAGE_ARTIFACT = 7;
+
+ void testArtifact( Artifact node );
+
+ void startProcessChildren( Artifact artifact );
+
+ void endProcessChildren( Artifact artifact );
+
+ void includeArtifact( Artifact artifact );
+
+ void omitForNearer( Artifact omitted, Artifact kept );
+
+ void updateScope( Artifact artifact, String scope );
+
+ void manageArtifact( Artifact artifact, Artifact replacement );
+}
diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/conflict/ConflictResolver.java b/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/conflict/ConflictResolver.java
index 81eae05f27..47cb622b34 100644
--- a/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/conflict/ConflictResolver.java
+++ b/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/conflict/ConflictResolver.java
@@ -22,4 +22,5 @@ package org.apache.maven.artifact.resolver.conflict;
*/
public interface ConflictResolver
{
+ static String ROLE = ConflictResolver.class.getName();
}
diff --git a/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java b/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java
index ceafd5eaed..5e6feced2f 100644
--- a/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java
+++ b/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java
@@ -264,21 +264,21 @@ public class DefaultArtifactCollectorTest
throws ArtifactResolutionException
{
return artifactCollector.collect( artifacts, projectArtifact.artifact, null, null, source, null,
- artifactFactory );
+ artifactFactory, Collections.EMPTY_LIST );
}
private ArtifactResolutionResult collect( ArtifactSpec a )
throws ArtifactResolutionException
{
return artifactCollector.collect( Collections.singleton( a.artifact ), projectArtifact.artifact, null, null,
- source, null, artifactFactory );
+ source, null, artifactFactory, Collections.EMPTY_LIST );
}
private ArtifactResolutionResult collect( ArtifactSpec a, ArtifactFilter filter )
throws ArtifactResolutionException
{
return artifactCollector.collect( Collections.singleton( a.artifact ), projectArtifact.artifact, null, null,
- source, filter, artifactFactory );
+ source, filter, artifactFactory, Collections.EMPTY_LIST );
}
private ArtifactResolutionResult collect( ArtifactSpec a, Artifact managedVersion )
@@ -286,7 +286,8 @@ public class DefaultArtifactCollectorTest
{
Map managedVersions = Collections.singletonMap( managedVersion.getDependencyConflictId(), managedVersion );
return artifactCollector.collect( Collections.singleton( a.artifact ), projectArtifact.artifact,
- managedVersions, null, null, source, null, artifactFactory );
+ managedVersions, null, null, source, null, artifactFactory,
+ Collections.EMPTY_LIST );
}
private ArtifactSpec createArtifact( String id, String version )