public Result resolve()

in gshell-support/gshell-artifact-ivy/src/main/java/org/apache/geronimo/gshell/artifact/ivy/ArtifactResolverImpl.java [64:116]


    public Result resolve(final Request request) throws Failure {
        assert request != null;

        ResolveOptions options = new ResolveOptions();
        options.setOutputReport(true);
        options.setTransitive(true);

        AndArtifactFilter filter = new AndArtifactFilter();
        options.setArtifactFilter(filter);

        // Filter deps needed for use of apache-ivy
        filter.add(new IvyDependenciesFilter());

        if (request.filter != null) {
            log.debug("Filter: {}", request.filter);

            filter.add(new Filter() {
                public boolean accept(final Object obj) {
                    if (!(obj instanceof org.apache.ivy.core.module.descriptor.Artifact)) {
                        return false;
                    }

                    Artifact artifact = createArtifact((org.apache.ivy.core.module.descriptor.Artifact)obj);
                    return request.filter.accept(artifact);
                }
            });
        }

        ModuleDescriptor md = createModuleDescriptor(request);

        Result result = new Result();

        try {
            ResolveReport resolveReport = ivy.resolve(md, options);
            result.artifacts = new LinkedHashSet<Artifact>();

            log.debug("Resolved:");

            for (ArtifactDownloadReport downloadReport : resolveReport.getAllArtifactsReports()) {
                Artifact artifact = createArtifact(downloadReport.getArtifact());
                artifact.setFile(downloadReport.getLocalFile());

                log.debug("    {}", artifact);

                result.artifacts.add(artifact);
            }
        }
        catch (Exception e) {
            throw new Failure(e);
        }

        return result;
    }