Example usage for org.apache.maven.project MavenProject getRemoteArtifactRepositories

List of usage examples for org.apache.maven.project MavenProject getRemoteArtifactRepositories

Introduction

In this page you can find the example usage for org.apache.maven.project MavenProject getRemoteArtifactRepositories.

Prototype

public List<ArtifactRepository> getRemoteArtifactRepositories() 

Source Link

Usage

From source file:org.sourcepit.maven.dependency.model.aether.AetherDependencyModelResolver.java

License:Apache License

private MavenProject filterUnconnectableRepos(MavenProject project) {
    final RepositorySystemSession repositorySession = buildContext.getRepositorySession();

    final List<ArtifactRepository> repositories = project.getRemoteArtifactRepositories();
    final List<ArtifactRepository> validRepositories = new ArrayList<ArtifactRepository>();
    final List<ArtifactRepository> invalidRepositories = new ArrayList<ArtifactRepository>();
    for (ArtifactRepository artifactRepository : repositories) {
        try {//  w w w  .j a  v  a  2s.c o  m
            repositoryConnectorProvider.newRepositoryConnector(repositorySession, toRepo(artifactRepository));
            validRepositories.add(artifactRepository);
        } catch (NoRepositoryConnectorException e) {
            invalidRepositories.add(artifactRepository);
        }
    }

    if (!invalidRepositories.isEmpty()) {
        project = project.clone();
        project.setRemoteArtifactRepositories(validRepositories);
    }

    return project;
}

From source file:org.sourcepit.maven.dependency.model.aether.AetherDependencyModelResolver.java

License:Apache License

private ProjectBuildingRequest newProjectBuildingRequest(boolean resolveDeps, boolean processPlugins) {
    final ProjectBuildingRequest request = new DefaultProjectBuildingRequest(
            buildContext.getSession().getProjectBuildingRequest());
    request.setResolveDependencies(resolveDeps);
    request.setProcessPlugins(processPlugins);
    request.setProject(null);//  w  w  w  . ja v  a  2 s .  c  o  m

    final MavenProject project = buildContext.getSession().getCurrentProject();
    if (project != null) {
        @SuppressWarnings("unchecked")
        List<ArtifactRepository> artifactRepos = combine(project.getRemoteArtifactRepositories(),
                request.getRemoteRepositories());

        @SuppressWarnings("unchecked")
        List<ArtifactRepository> pluginRepos = combine(project.getPluginArtifactRepositories(),
                request.getPluginArtifactRepositories());

        request.setRemoteRepositories(artifactRepos);
        request.setPluginArtifactRepositories(pluginRepos);
    }

    return request;
}

From source file:org.sourcepit.osgifier.maven.context.MavenDependencyWalker.java

License:Apache License

private Set<Artifact> resolve(Request walkerRequest, Artifact artifact, MavenProject resolutionContext,
        boolean resolveRoot, List<Dependency> dependencies) {
    final ArtifactResolutionRequest request = new ArtifactResolutionRequest();
    request.setArtifact(artifact);//ww w.  j  av  a 2s.c  om
    request.setResolveRoot(resolveRoot);
    request.setResolveTransitively(!resolveRoot);

    if (dependencies != null) {
        final Set<Artifact> artifactDependencies = new LinkedHashSet<Artifact>();
        for (Dependency dependency : dependencies) {
            artifactDependencies.add(repositorySystem.createArtifactWithClassifier(dependency.getGroupId(),
                    dependency.getArtifactId(), dependency.getVersion(), dependency.getType(),
                    dependency.getClassifier()));
        }
        request.setArtifactDependencies(artifactDependencies);
    }

    request.setLocalRepository(walkerRequest.getLocalRepository());

    final List<ArtifactRepository> remoteRepositories = new ArrayList<ArtifactRepository>();
    final Set<String> repoIds = new HashSet<String>();
    final List<ArtifactRepository> requestRepos = walkerRequest.getRemoteRepositories();
    if (requestRepos != null) {
        for (ArtifactRepository artifactRepository : requestRepos) {
            repoIds.add(artifactRepository.getId());
            remoteRepositories.add(artifactRepository);
        }
    }

    if (resolutionContext != null) {
        for (ArtifactRepository artifactRepository : resolutionContext.getRemoteArtifactRepositories()) {
            if (repoIds.add(artifactRepository.getId())) {
                remoteRepositories.add(artifactRepository);
            }
        }
        request.setManagedVersionMap(resolutionContext.getManagedVersionMap());
    }

    request.setRemoteRepositories(remoteRepositories);

    final ArtifactFilter artifactFilter = walkerRequest.getArtifactFilter();

    request.setCollectionFilter(artifactFilter);
    request.setResolutionFilter(artifactFilter);

    ArtifactResolutionResult result = repositorySystem.resolve(request);

    final Exception ex;
    if (result.hasExceptions()) {
        ex = result.getExceptions().get(0);
    } else if (result.hasCircularDependencyExceptions()) {
        ex = result.getCircularDependencyException(0);
    } else if (result.hasErrorArtifactExceptions()) {
        ex = result.getErrorArtifactExceptions().get(0);
    } else if (result.hasMetadataResolutionExceptions()) {
        ex = result.getMetadataResolutionException(0);
    } else {
        ex = null;
    }
    if (ex != null) {
        throw new IllegalStateException(ex);
    }

    for (Artifact missingArtifact : result.getMissingArtifacts()) {
        throw Exceptions.pipe(new ArtifactNotFoundException("Unable to resolve artifact", missingArtifact));
    }

    return result.getArtifacts();
}

From source file:org.sourcepit.tpmp.LocalizeTargetPlatformMojo.java

License:Apache License

private void download(MavenSession session, MavenProject project, File parentDir) {
    final Artifact platformArtifact = createPlatformArtifact(project);

    final ArtifactResolutionRequest request = new ArtifactResolutionRequest();
    request.setArtifact(platformArtifact);
    request.setResolveRoot(true);//from   w ww.  j  a va 2 s . c o  m
    request.setResolveTransitively(false);
    request.setLocalRepository(session.getLocalRepository());
    request.setRemoteRepositories(project.getRemoteArtifactRepositories());
    request.setManagedVersionMap(project.getManagedVersionMap());
    request.setOffline(session.isOffline());

    repositorySystem.resolve(request);

    if (platformArtifact.getFile().exists()) {
        final ZipProcessingRequest unzipRequest = ZipProcessingRequest
                .newUnzipRequest(platformArtifact.getFile(), parentDir);
        try {
            new ZipProcessor().process(unzipRequest);
        } catch (IOException e) {
            throw Exceptions.pipe(e);
        }
    }
}

From source file:org.sourcepit.tpmp.resolver.tycho.TychoSessionTargetPlatformResolver.java

License:Apache License

private MavenProject setupAggregatedProject(MavenSession session,
        TargetPlatformConfiguration aggregatedConfiguration) {
    PropertiesMap mvnProperties = new LinkedPropertiesMap();
    mvnProperties.load(getClass().getClassLoader(), "META-INF/tpmp/maven.properties");

    String groupId = mvnProperties.get("groupId");
    String artifactId = mvnProperties.get("artifactId");
    String version = mvnProperties.get("version");

    final String tpmpKey = Plugin.constructKey(groupId, artifactId);

    MavenProject origin = session.getCurrentProject();

    Model model = origin.getModel().clone();
    Build build = model.getBuild();/* w w  w.  ja v a 2s  .  c o  m*/
    if (build.getPluginsAsMap().get(tpmpKey) == null) {
        Plugin tpmp = new Plugin();
        tpmp.setGroupId(groupId);
        tpmp.setArtifactId(artifactId);
        tpmp.setVersion(version);

        build.getPlugins().add(tpmp);
        build.flushPluginMap();
    }

    MavenProject fake = new MavenProject(model);
    fake.setClassRealm(origin.getClassRealm());
    fake.setFile(origin.getFile());

    final Map<String, ArtifactRepository> artifactRepositories = new LinkedHashMap<String, ArtifactRepository>();
    final Map<String, ArtifactRepository> pluginRepositories = new LinkedHashMap<String, ArtifactRepository>();
    for (MavenProject project : session.getProjects()) {
        for (ArtifactRepository repository : project.getRemoteArtifactRepositories()) {
            if (!artifactRepositories.containsKey(repository.getId())) {
                artifactRepositories.put(repository.getId(), repository);
            }
        }
        for (ArtifactRepository repository : project.getPluginArtifactRepositories()) {
            if (!pluginRepositories.containsKey(repository.getId())) {
                pluginRepositories.put(repository.getId(), repository);
            }
        }
    }

    fake.setRemoteArtifactRepositories(new ArrayList<ArtifactRepository>(artifactRepositories.values()));
    fake.setPluginArtifactRepositories(new ArrayList<ArtifactRepository>(pluginRepositories.values()));
    fake.setManagedVersionMap(origin.getManagedVersionMap());

    if (getTychoProject(fake) == null) {
        fake.setPackaging("eclipse-repository");
    }

    fake.getBuildPlugins();

    AbstractTychoProject tychoProject = (AbstractTychoProject) getTychoProject(fake);
    tychoProject.setupProject(session, fake);

    Properties properties = new Properties();
    properties.putAll(fake.getProperties());
    properties.putAll(session.getSystemProperties()); // session wins
    properties.putAll(session.getUserProperties());
    fake.setContextValue(TychoConstants.CTX_MERGED_PROPERTIES, properties);

    fake.setContextValue(TychoConstants.CTX_TARGET_PLATFORM_CONFIGURATION, aggregatedConfiguration);

    ExecutionEnvironmentConfiguration eeConfiguration = new ExecutionEnvironmentConfigurationImpl(logger,
            aggregatedConfiguration.isResolveWithEEConstraints());
    tychoProject.readExecutionEnvironmentConfiguration(fake, eeConfiguration);
    fake.setContextValue(TychoConstants.CTX_EXECUTION_ENVIRONMENT_CONFIGURATION, eeConfiguration);

    final DependencyMetadata dm = new DependencyMetadata();
    for (ReactorProject reactorProject : DefaultReactorProject.adapt(session)) {
        mergeMetadata(dm, reactorProject, true);
        mergeMetadata(dm, reactorProject, false);
    }

    int i = 0;
    for (Object object : dm.getMetadata(true)) {
        InstallableUnitDAO dao = new TychoSourceIUResolver.InstallableUnitDAO(
                object.getClass().getClassLoader());
        dao.setProperty(object, RepositoryLayoutHelper.PROP_CLASSIFIER, "fake_" + i);
        i++;
    }

    for (Object object : dm.getMetadata(false)) {
        InstallableUnitDAO dao = new TychoSourceIUResolver.InstallableUnitDAO(
                object.getClass().getClassLoader());
        dao.setProperty(object, RepositoryLayoutHelper.PROP_CLASSIFIER, "fake_" + i);
        i++;
    }

    Map<String, DependencyMetadata> metadata = new LinkedHashMap<String, DependencyMetadata>();
    metadata.put(null, dm);

    fake.setContextValue("tpmp.aggregatedMetadata", metadata);

    return fake;
}

From source file:org.springframework.ide.eclipse.maven.legacy.internal.core.GoogleProjectConfigurator.java

License:Open Source License

/**
 * {@inheritDoc}//from  w  w w  .ja v  a  2 s . c om
 */
@Override
protected void doConfigure(final MavenProject mavenProject, IProject project,
        ProjectConfigurationRequest request, final IProgressMonitor monitor) throws CoreException {

    final IMaven maven = MavenPlugin.getDefault().getMaven();

    configureNature(project, mavenProject, GAE_NATURE_ID, true, new NatureCallbackAdapter() {

        @Override
        public void beforeAddingNature() {
            try {
                DefaultMavenExecutionRequest executionRequest = new DefaultMavenExecutionRequest();
                executionRequest.setBaseDirectory(mavenProject.getBasedir());
                executionRequest.setLocalRepository(maven.getLocalRepository());
                executionRequest.setRemoteRepositories(mavenProject.getRemoteArtifactRepositories());
                executionRequest.setPluginArtifactRepositories(mavenProject.getPluginArtifactRepositories());
                executionRequest.setPom(mavenProject.getFile());
                executionRequest.setGoals(GAE_UNPACK_GOAL);

                MavenExecutionResult result = maven.execute(executionRequest, monitor);
                if (result.hasExceptions()) {
                    MavenCorePlugin.getDefault().getLog()
                            .log(new Status(IStatus.ERROR, MavenCorePlugin.NON_LEGACY_PLUGIN_ID,
                                    "Error configuring project", result.getExceptions().get(0)));
                }
            } catch (CoreException e) {
                MavenCorePlugin.getDefault().getLog().log(new Status(IStatus.ERROR,
                        MavenCorePlugin.NON_LEGACY_PLUGIN_ID, "Error configuring project", e));
            }
        }
    }, monitor);

    if (configureNature(project, mavenProject, GWT_NATURE_ID, true, new NatureCallbackAdapter() {

        @Override
        public void beforeAddingNature() {

            // Get the GWT version from the project pom
            String gwtVersion = null;
            List<Dependency> dependencies = mavenProject.getDependencies();
            for (Dependency dependency : dependencies) {
                if (GWT_GROUP_ID.equals(dependency.getGroupId())
                        && ("gwt-user".equals(dependency.getArtifactId())
                                || "gwt-servlet".equals(dependency.getArtifactId()))) {
                    gwtVersion = dependency.getVersion();
                    break;
                }
            }

            // Check that the pom.xml has GWT dependencies
            if (StringUtils.hasLength(gwtVersion)) {
                try {
                    // Download and install the gwt-dev.jar into the local repository
                    maven.resolve(GWT_GROUP_ID, "gwt-dev", gwtVersion, "jar", null,
                            mavenProject.getRemoteArtifactRepositories(), monitor);
                } catch (CoreException e) {
                    MavenCorePlugin.getDefault().getLog().log(new Status(IStatus.ERROR,
                            MavenCorePlugin.NON_LEGACY_PLUGIN_ID, "Error configuring project", e));
                }
            }
        }
    }, monitor)) {

        try {
            // Add GWT Web Application configuration parameters
            IEclipsePreferences prefs = SpringCorePreferences
                    .getProjectPreferences(project, "com.google.gdt.eclipse.core").getProjectPreferences();
            prefs.put("warSrcDir", "src/main/webapp");
            prefs.putBoolean("warSrcDirIsOutput", false);

            String artifactId = mavenProject.getArtifactId();
            String version = mavenProject.getVersion();
            IPath location = SpringCoreUtils.getProjectLocation(project);
            if (location != null && artifactId != null && version != null) {
                prefs.put("lastWarOutDir", location.append("target").append(artifactId + "-" + version).toFile()
                        .getAbsolutePath());
            }

            prefs.flush();
        } catch (BackingStoreException e) {
            MavenCorePlugin.getDefault().getLog().log(new Status(IStatus.ERROR,
                    MavenCorePlugin.NON_LEGACY_PLUGIN_ID, "Error configuring project", e));
        }
    }
}

From source file:org.springframework.ide.vscode.commons.maven.java.MavenProjectClasspath.java

License:Open Source License

private ImmutableList<CPE> resolveClasspathEntries(MavenProject project) throws Exception {
    LinkedHashSet<CPE> entries = new LinkedHashSet<>();
    safe(() -> maven.getJreLibs().forEach(path -> safe(() -> {
        CPE cpe = CPE.binary(path.toString());
        String javaVersion = maven.getJavaRuntimeMinorVersion();
        if (javaVersion == null) {
            javaVersion = "8";
        }//w ww .  ja va2 s  . c  o  m
        cpe.setJavadocContainerUrl(new URL("https://docs.oracle.com/javase/" + javaVersion + "/docs/api/"));
        cpe.setSystem(true);
        entries.add(cpe);
        // Add at the end, not critical if throws exception, but the CPE needs to be around regardless if the below throws
        Path sources = JavaUtils.jreSources(path);
        if (sources != null) {
            cpe.setSourceContainerUrl(sources.toUri().toURL());
        }
    })));
    //Add jar dependencies...
    for (Artifact a : projectDependencies(project)) {
        File f = a.getFile();
        if (f != null) {
            CPE cpe = CPE.binary(a.getFile().toPath().toString());
            safe(() -> { //add javadoc
                Artifact jdoc = maven.getJavadoc(a, project.getRemoteArtifactRepositories());
                if (jdoc != null) {
                    cpe.setJavadocContainerUrl(jdoc.getFile().toURI().toURL());
                }
            });
            safe(() -> { //add source
                Artifact source = maven.getSources(a, project.getRemoteArtifactRepositories());
                if (source != null) {
                    cpe.setSourceContainerUrl(source.getFile().toURI().toURL());
                }
            });
            entries.add(cpe);
        }
    }
    //Add source folders...
    { //main/java
        File sourceFolder = new File(project.getBuild().getSourceDirectory());
        File outputFolder = new File(project.getBuild().getOutputDirectory());
        CPE cpe = CPE.source(sourceFolder, outputFolder);
        cpe.setOwn(true);
        safe(() -> {
            String reportingDir = project.getModel().getReporting().getOutputDirectory();
            if (reportingDir != null) {
                File apidocs = new File(new File(reportingDir), "apidocs");
                cpe.setJavadocContainerUrl(apidocs.toURI().toURL());
            }
        });
        entries.add(cpe);
    }
    { //main/resources
        for (Resource resource : project.getBuild().getResources()) {
            File sourceFolder = new File(resource.getDirectory());
            String targetPath = resource.getTargetPath();
            if (targetPath == null) {
                targetPath = project.getBuild().getOutputDirectory();
            }
            CPE cpe = CPE.source(sourceFolder, new File(targetPath));
            cpe.setOwn(true);
            entries.add(cpe);
        }
    }
    { //test/resources
        for (Resource resource : project.getBuild().getTestResources()) {
            File sourceFolder = new File(resource.getDirectory());
            String targetPath = resource.getTargetPath();
            if (targetPath == null) {
                targetPath = project.getBuild().getTestOutputDirectory();
            }
            CPE cpe = CPE.source(sourceFolder, targetPath == null ? null : new File(targetPath));
            cpe.setOwn(true);
            entries.add(cpe);
        }
    }
    { //test/java
        File sourceFolder = new File(project.getBuild().getTestSourceDirectory());
        File outputFolder = new File(project.getBuild().getTestOutputDirectory());
        CPE cpe = CPE.source(sourceFolder, outputFolder);
        cpe.setOwn(true);
        safe(() -> {
            String reportingDir = project.getModel().getReporting().getOutputDirectory();
            if (reportingDir != null) {
                File apidocs = new File(new File(reportingDir), "apidocs");
                cpe.setJavadocContainerUrl(apidocs.toURI().toURL());
            }
        });
        entries.add(cpe);
    }
    return ImmutableList.copyOf(entries);
}

From source file:org.springframework.ide.vscode.commons.maven.MavenBridge.java

License:Open Source License

MavenProject resolveParentProject(RepositorySystemSession repositorySession, MavenProject child,
        ProjectBuildingRequest configuration) throws MavenException {
    configuration.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
    configuration.setRepositorySession(repositorySession);

    try {/*from   ww w . j  ava  2s .  co m*/
        configuration.setRemoteRepositories(child.getRemoteArtifactRepositories());

        File parentFile = child.getParentFile();
        if (parentFile != null) {
            return lookup(ProjectBuilder.class).build(parentFile, configuration).getProject();
        }

        Artifact parentArtifact = child.getParentArtifact();
        if (parentArtifact != null) {
            MavenProject parent = lookup(ProjectBuilder.class).build(parentArtifact, configuration)
                    .getProject();
            parentFile = parentArtifact.getFile(); // file is resolved as
            // side-effect of the
            // prior call
            // compensate for apparent bug in maven 3.0.4 which does not set
            // parent.file and parent.artifact.file
            if (parent.getFile() == null) {
                parent.setFile(parentFile);
            }
            if (parent.getArtifact().getFile() == null) {
                parent.getArtifact().setFile(parentFile);
            }
            return parent;
        }
    } catch (ProjectBuildingException ex) {
        log.error("Could not read parent project", ex);
    }

    return null;
}

From source file:org.springframework.ide.vscode.commons.maven.MavenCore.java

License:Open Source License

/**
 * Calculates dependency graph for a Maven project provided the scope.
 *
 * @param project Maven Project descriptor
 * @param scope Dependency scope//  w  w w  .j  a  va2  s . c  o m
 * @return Set of all dependencies including transient ones
 * @throws MavenException
 */
public Set<Artifact> resolveDependencies(MavenProject project, String scope) throws MavenException {
    MavenExecutionRequest request = maven.createExecutionRequest();
    DefaultRepositorySystemSession session = maven.createRepositorySession(request);

    DependencyNode graph = readDependencyTree(maven.lookupComponent(org.eclipse.aether.RepositorySystem.class),
            session, project, scope);
    if (graph != null) {

        ArrayList<DependencyNode> dependencyNodes = new ArrayList<>();
        graph.accept(new DependencyVisitor() {
            @Override
            public boolean visitEnter(DependencyNode node) {
                if (node.getDependency() != null) {
                    dependencyNodes.add(node);
                }
                return true;
            }

            @Override
            public boolean visitLeave(DependencyNode dependencynode) {
                return true;
            }
        });

        LinkedHashSet<Artifact> artifacts = new LinkedHashSet<>();
        RepositoryUtils.toArtifacts(artifacts, dependencyNodes,
                Collections.singletonList(project.getArtifact().getId()), null);

        return artifacts.parallelStream().map(artifact -> {
            if (!artifact.isResolved()) {
                try {
                    artifact = maven.resolve(artifact, project.getRemoteArtifactRepositories(), request);
                } catch (MavenException e) {
                    log.error("", e);
                    // Maven 2.x quirk: an artifact always points at the local repo,
                    // regardless whether resolved or not
                    LocalRepositoryManager lrm = session.getLocalRepositoryManager();
                    String path = lrm.getPathForLocalArtifact(RepositoryUtils.toArtifact(artifact));
                    artifact.setFile(new File(lrm.getRepository().getBasedir(), path));
                }
            }
            return artifact;
        }).collect(Collectors.toSet());
    }

    return Collections.emptySet();
}

From source file:org.universAAL.maven.treebuilder.ExecutionListCreator.java

License:Apache License

/**
 * Method builds dependency tree for a list of provision strings and
 * parameter specifying default transitiveness. Method validates format of
 * provision strings and parses them into representation acceptable by
 * DependencyTreeBuilder. DependencyTreeBuilder is invoked and its output is
 * returned.//from w  w  w  . jav  a 2s . c o  m
 * 
 * @return a dependency tree as a list of rootnodes (instances of RootNode
 *         class) which contain their own subtrees.
 */
private List<RootNode> parseProvisionsAndBuiltTree(final String[] provisions, final boolean transitive,
        final DependencyTreeBuilder treeBuilder) throws Exception {
    MavenProjectDescriptor[] projectDescs = new MavenProjectDescriptor[provisions.length];
    int i = 0;
    List<List> listOfRemoteRepositories = new ArrayList<List>();
    for (String provision : provisions) {
        boolean localtransitive = transitive;
        String provisionNoHeader = provision;
        if (provision.startsWith("transitive:")) {
            provisionNoHeader = provision.substring("transitive:".length());
            localtransitive = true;
        } else if (provision.startsWith("nontransitive:")) {
            provisionNoHeader = provision.substring("nontransitive:".length());
            localtransitive = false;
        }
        Artifact pomArtifact = parseMvnUrl(provisionNoHeader);
        MavenProject pomProject = mavenProjectBuilder.buildFromRepository(pomArtifact, remoteRepositories,
                localRepository);
        List<ArtifactRepository> finalRemoteRepositories = addMissingRepositories(
                pomProject.getRemoteArtifactRepositories());
        projectDescs[i] = new MavenProjectDescriptor(pomProject, finalRemoteRepositories, localtransitive);
        listOfRemoteRepositories.add(finalRemoteRepositories);
        i++;
    }
    List<RootNode> rootNodesOnly = treeBuilder.buildDependencyTree(localRepository, artifactFactory,
            artifactMetadataSource, projectDescs);
    Iterator<List> listOfRemoteRepositoriesIter = listOfRemoteRepositories.iterator();
    if (listOfRemoteRepositories.size() != rootNodesOnly.size()) {
        throw new IllegalStateException("listOfRemoteRepositories.size() != rootNodesWithRepositories.size()");
    }
    List<RootNode> rootNodesWithRepositories = new ArrayList();
    for (RootNode rootNode : rootNodesOnly) {
        rootNode.remoteRepositories = listOfRemoteRepositoriesIter.next();
        rootNodesWithRepositories.add(rootNode);
    }
    return rootNodesWithRepositories;
}