@Override public DependencyNode cleanupDependencyTree( final DependencyNode root ) { final CloningDependencyVisitor clonningVisitor = new CloningDependencyVisitor(); final PatternExclusionsDependencyFilter nodeFilter = new PatternExclusionsDependencyFilter( new GenericVersionScheme(), "*:*:advice" ); final FilteringDependencyVisitor filter = new FilteringDependencyVisitor( clonningVisitor, nodeFilter ); root.accept( filter ); return clonningVisitor.getRootNode(); } }
@Override public CollectResult collectDependencies(RepositorySystemSession session, CollectRequest request) throws DependencyCollectionException { DefaultRepositorySystemSession cloned = new DefaultRepositorySystemSession(session); DependencyGraphTransformer transformer = session.getDependencyGraphTransformer(); //need to reset the transformer to prevent the transformation to happen and to it below separately. cloned.setDependencyGraphTransformer(null); CollectResult res = super.collectDependencies(cloned, request); CloningDependencyVisitor vis = new CloningDependencyVisitor(); res.getRoot().accept(vis); //this part copied from DefaultDependencyCollector try { DefaultDependencyGraphTransformationContext context = new DefaultDependencyGraphTransformationContext(session); res.setRoot(transformer.transformGraph(res.getRoot(), context)); } catch (RepositoryException e) { res.addException(e); } if (!res.getExceptions().isEmpty()) { throw new DependencyCollectionException(res); } res.getRoot().setData("NB_TEST", vis.getRootNode()); return res; }