Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
Expand All @@ -47,6 +48,7 @@
import org.eclipse.aether.collection.DependencyCollectionException;
import org.eclipse.aether.collection.DependencyManagement;
import org.eclipse.aether.collection.DependencyManager;
import org.eclipse.aether.graph.DefaultDependencyNode;
import org.eclipse.aether.graph.Dependency;
import org.eclipse.aether.graph.DependencyCycle;
import org.eclipse.aether.graph.DependencyNode;
Expand All @@ -64,6 +66,7 @@
import org.eclipse.aether.util.artifact.ArtifactIdUtils;
import org.eclipse.aether.util.graph.manager.ClassicDependencyManager;
import org.eclipse.aether.util.graph.manager.DependencyManagerUtils;
import org.eclipse.aether.util.graph.manager.TransitiveDependencyManager;
import org.eclipse.aether.util.graph.selector.ScopeDependencySelector;
import org.eclipse.aether.util.graph.version.HighestVersionFilter;
import org.junit.Before;
Expand Down Expand Up @@ -487,6 +490,52 @@ public void testDependencyManagement_VerboseMode()
assertEquals( Boolean.FALSE, DependencyManagerUtils.getPremanagedOptional( node ) );
}

@Test
public void testDependencyManagement_TransitiveDependencyManager()
throws DependencyCollectionException, IOException
{
collector.setArtifactDescriptorReader( newReader( "managed/" ) );
parser = new DependencyGraphParser( "artifact-descriptions/managed/" );
session.setDependencyManager( new TransitiveDependencyManager() );
final Dependency root = newDep( "gid:root:ext:ver", "compile" );
CollectRequest request = new CollectRequest( root, Collections.singletonList( repository ) );
request.addManagedDependency( newDep( "gid:root:ext:must-retain-core-management" ) );
CollectResult result = collector.collectDependencies( session, request );

final DependencyNode expectedTree = parser.parseResource( "management-tree.txt" );
assertEqualSubtree( expectedTree, result.getRoot() );

// Same test for root artifact (POM) request.
final CollectRequest rootArtifactRequest = new CollectRequest();
rootArtifactRequest.setRepositories( Collections.singletonList( repository ) );
rootArtifactRequest.setRootArtifact( new DefaultArtifact( "gid:root:ext:ver" ) );
rootArtifactRequest.addDependency( newDep( "gid:direct:ext:ver", "compile" ) );
rootArtifactRequest.addManagedDependency( newDep( "gid:root:ext:must-retain-core-management" ) );
rootArtifactRequest.addManagedDependency( newDep( "gid:direct:ext:must-retain-core-management" ) );
rootArtifactRequest.addManagedDependency( newDep( "gid:transitive-1:ext:managed-by-root" ) );
session.setDependencyManager( new TransitiveDependencyManager() );
result = collector.collectDependencies( session, rootArtifactRequest );
assertEqualSubtree( expectedTree, toDependencyResult( result.getRoot(), "compile", null ) );
}

private DependencyNode toDependencyResult( final DependencyNode root, final String rootScope,
final Boolean optional )
{
// Make the root artifact resultion result a dependency resolution result for the subtree check.
assertNull( "Expected root artifact resolution result.", root.getDependency() );
final DefaultDependencyNode defaultNode =
new DefaultDependencyNode( new Dependency( root.getArtifact(), rootScope ) );

defaultNode.setChildren( root.getChildren() );

if ( optional != null )
{
defaultNode.setOptional( optional );
}

return defaultNode;
}

@Test
public void testVersionFilter()
throws Exception
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[dependencies]
gid:transitive-1:ext:ver
[manageddependencies]
gid:transitive-1:ext:must-retain-core-management
gid:transitive-2:ext:managed-by-direct
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[dependencies]
gid:direct:ext:ver
[manageddependencies]
gid:direct:ext:must-retain-core-management
gid:transitive-1:ext:managed-by-root
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[dependencies]
gid:transitive-2:ext:ver
[manageddependencies]
gid:transitive-2:ext:must-retain-core-management
gid:transitive-3:ext:managed-by-transitive-1
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[dependencies]
gid:transitive-3:ext:ver
[manageddependencies]
gid:transitive-3:ext:must-retain-core-management
gid:transitive-4:ext:managed-by-transitive-2
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[dependencies]
gid:transitive-4:ext:ver
[manageddependencies]
gid:transitive-4:ext:must-retain-core-management
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[dependencies]
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
gid:root:ext:ver compile
+- gid:direct:ext:ver compile
+- gid:transitive-1:ext:managed-by-root compile
+- gid:transitive-2:ext:managed-by-direct compile
+- gid:transitive-3:ext:managed-by-transitive-1 compile
+- gid:transitive-4:ext:managed-by-transitive-2 compile
Loading