@Override public Collection<Advice> getAdvices( final DependencyNode root ) { final PreorderNodeListGenerator collector = new PreorderNodeListGenerator(); root.accept( collector ); final Collection<Advice> advices = new ArrayList<Advice>(); for ( final Artifact artifact : collector.getArtifacts( false ) ) { if ( artifact.getFile() != null ) { advices.addAll( extractAdvices( artifact.getFile(), Utils.fullArtifactId( artifact ) ) ); } } return advices; }
@Override public boolean visitEnter( DependencyNode node ) { if ( !setVisited( node ) ) { return false; } if ( node.getDependency() != null ) { nodes.add( node ); } return true; }
private List<Artifact> getArtifacts(String artifact) throws MojoExecutionException { Dependency dependency = new Dependency( new DefaultArtifact( artifact ), "runtime" ); CollectRequest collectRequest = new CollectRequest(); collectRequest.setRoot( dependency ); //collectRequest.addRepository( remoteRepos ); DependencyNode node; try { node = repoSystem.collectDependencies( repoSession, collectRequest ).getRoot(); } catch (DependencyCollectionException e) { throw new MojoExecutionException( e.getMessage(), e ); } DependencyRequest dependencyRequest = new DependencyRequest( node, null ); Set<String> included = Collections.singleton("runtime"); dependencyRequest.setFilter(new ScopeDependencyFilter(included, Collections.EMPTY_SET)); try { repoSystem.resolveDependencies( repoSession, dependencyRequest ); } catch (DependencyResolutionException e) { throw new MojoExecutionException( e.getMessage(), e ); } PreorderNodeListGenerator nlg = new PreorderNodeListGenerator(); node.accept( nlg ); getLog().info( "" + nlg.getClassPath() ); return nlg.getArtifacts(false); }
public AetherResult resolve(String groupId, String artifactId, String version, String extension, String classifier, List<RemoteRepository> repos) throws PlexusContainerException, ComponentLookupException, DependencyCollectionException, DependencyResolutionException { if (Strings.isBlank(extension) || extension.equals("bundle")) { extension = DEFAULT_EXTENSION; } if (classifier == null) { classifier = DEFAULT_CLASSIFIER; } RepositorySystemSession session = newSession(); Dependency dependency = new Dependency(new DefaultArtifact(groupId, artifactId, classifier, extension, version), "runtime"); CollectRequest collectRequest = new CollectRequest(); collectRequest.setRoot(dependency); RemoteRepository[] repoArray = new RemoteRepository[repos.size()]; repos.toArray(repoArray); for (RemoteRepository repo : repoArray) { collectRequest.addRepository(repo); } RepositorySystem system = getRepositorySystem(); DependencyNode rootNode = system.collectDependencies(session, collectRequest).getRoot(); DependencyRequest dependencyRequest = new DependencyRequest(); dependencyRequest.setRoot(rootNode); system.resolveDependencies(session, dependencyRequest); PreorderNodeListGenerator nlg = new PreorderNodeListGenerator(); rootNode.accept(nlg); return new AetherResult(rootNode, nlg.getFiles(), nlg.getClassPath()); }
@Override protected List<File> resolve(String fqtn) throws Exception { StringTokenizer tokenizer = new StringTokenizer(fqtn, ":", false); String groupId = tokenizer.nextToken(); String templateId = tokenizer.nextToken(); String version = tokenizer.nextToken(); Dependency dependency = new Dependency(new DefaultArtifact(groupId + ':' + templateId + ':' + version), null); CollectRequest collectRequest = new CollectRequest(); collectRequest.setRoot(dependency); collectRequest.addRepository(local); collectRequest.addRepository(central); RepositorySystemSession session = newSession(repoSystem); DependencyNode node = repoSystem.collectDependencies(session, collectRequest).getRoot(); DependencyRequest dependencyRequest = new DependencyRequest(node, null); repoSystem.resolveDependencies(session, dependencyRequest); PreorderNodeListGenerator nlg = new PreorderNodeListGenerator(); node.accept(nlg); return nlg.getFiles(); }
.getRoot(); final PreorderNodeListGenerator generator = new PreorderNodeListGenerator(); rootNode.accept(generator);
private static ClassPathEnvironment createResult( final PreorderNodeListGenerator generator) { final ClassPathEnvironment env = new ClassPathEnvironment(); final List<DependencyNode> nodes = generator.getNodes(); // TODO: Should we copy the artifacts to a local folder? for (final DependencyNode node : nodes) { final ArtifactRef artifactRef = createArtifact(node); env.addArchiveArtifactRef(artifactRef); } // final PropertySetClassesLoader declarationLoader = // new PropertySetClassesLoader(); // final Set<Class<?>> declarations = // declarationLoader.getPropertySetTypes(urls); // // final PropertiesFilesLoader definitionLoader = new // PropertiesFilesLoader(); // final Set<String> definitions = // definitionLoader.getPropertiesFiles(urls); // // final PropertiesResources resources = // new PropertiesResources(env, declarations, definitions); // return resources; return env; }
@Override public Collection<Advice> getAdvices( final DependencyNode root ) { final PreorderNodeListGenerator collector = new PreorderNodeListGenerator(); root.accept( collector ); final Collection<Advice> advices = new ArrayList<Advice>(); for ( final Artifact artifact : collector.getArtifacts( false ) ) { if ( "advice".equals( artifact.getExtension() ) ) { advices.addAll( extractAdvices( artifact.getFile(), Utils.fullArtifactId( root.getDependency().getArtifact() ) ) ); } } return advices; }