Example usage for org.apache.maven.artifact Artifact SCOPE_IMPORT

List of usage examples for org.apache.maven.artifact Artifact SCOPE_IMPORT

Introduction

In this page you can find the example usage for org.apache.maven.artifact Artifact SCOPE_IMPORT.

Prototype

String SCOPE_IMPORT

To view the source code for org.apache.maven.artifact Artifact SCOPE_IMPORT.

Click Source Link

Usage

From source file:com.redhat.rcm.version.mgr.mod.BomModder.java

License:Open Source License

@Override
public boolean inject(final Project project, final VersionManagerSession session) {
    final Model model = project.getModel();

    final List<ModelBase> bases = new ArrayList<ModelBase>();
    bases.add(model);/*from www.  j a va  2s.com*/

    final List<Profile> profiles = model.getProfiles();
    if (profiles != null && !profiles.isEmpty()) {
        bases.addAll(profiles);
    }

    final File pom = project.getPom();
    boolean changed = false;

    for (final ModelBase base : bases) {
        logger.info("Processing: {} in model: {}", base, model);

        DependencyManagement dm = null;

        if (base.getDependencies() != null) {
            logger.info("Processing dependencies for '" + project.getKey() + "'...");
            for (final Iterator<Dependency> it = base.getDependencies().iterator(); it.hasNext();) {
                final Dependency dep = it.next();

                logger.info("Processing: {}", dep);

                final DepModResult depResult = modifyDep(dep, project, pom, session, false);
                if (depResult == DepModResult.DELETED) {
                    logger.info("Removing: {}", dep);
                    it.remove();
                    changed = true;
                } else {
                    if (depResult == DepModResult.MODIFIED) {
                        logger.info("Modified {}", dep);
                    } else {
                        logger.info("NO CHANGE to: {}", dep);
                    }

                    changed = DepModResult.MODIFIED == depResult || changed;
                }
            }
        }

        if (session.isStrict()) {
            dm = base.getDependencyManagement();

            if (base.getDependencyManagement() != null && dm.getDependencies() != null) {
                logger.info("Processing dependencyManagement for '" + project.getKey() + "'...");
                for (final Iterator<Dependency> it = dm.getDependencies().iterator(); it.hasNext();) {
                    final Dependency dep = it.next();

                    logger.info("Processing: {}", dep);

                    final DepModResult depResult = modifyDep(dep, project, pom, session, true);
                    if (depResult == DepModResult.DELETED) {
                        logger.info("Removing: {}", dep);
                        it.remove();
                        changed = true;
                    } else {
                        if (depResult == DepModResult.MODIFIED) {
                            logger.info("Modified {}", dep);
                        } else {
                            logger.info("NO CHANGE to: {}", dep);
                        }

                        changed = DepModResult.MODIFIED == depResult || changed;
                    }
                }
            }
        }
    }

    // NOTE: Inject BOMs directly, but ONLY if the parent project is NOT in
    // the current projects list. (If the parent is a current project, we
    // want to inject the BOMs there instead.)
    final List<FullProjectKey> bomCoords = session.getBomCoords();
    logger.info("{} BOMs available for injection...is my parent ({}) being modified in this session? {}",
            bomCoords.size(), project.getParent(), session.isCurrentProject(project.getParent()));

    if (!session.isCurrentProject(project.getParent()) && bomCoords != null && !bomCoords.isEmpty()) {
        logger.info("Injecting BOMs...");
        DependencyManagement dm = model.getDependencyManagement();

        if (dm == null) {
            dm = new DependencyManagement();
            model.setDependencyManagement(dm);
        }

        // Used to track inserting the BOMs in the correct order in the dependencyMgmt
        // section.
        int insertCounter = 0;

        for (final FullProjectKey bomCoord : bomCoords) {
            final Dependency dep = new Dependency();
            dep.setGroupId(bomCoord.getGroupId());
            dep.setArtifactId(bomCoord.getArtifactId());
            dep.setVersion(bomCoord.getVersion());
            dep.setType("pom");
            dep.setScope(Artifact.SCOPE_IMPORT);

            logger.info("Adding BOM: {} at index: {} of {}", dep, insertCounter, model);

            changed = true;
            dm.getDependencies().add(insertCounter++, dep);
        }
    } else if (!session.isStrict() && model.getDependencyManagement() != null) {
        model.setDependencyManagement(null);
        changed = true;
    }

    return changed;
}

From source file:com.redhat.rcm.version.testutil.VManAssertions.java

License:Open Source License

private static Set<Dependency> assertNormalized(final Set<Project> modified, final Set<FullProjectKey> bomKeys,
        final VersionlessProjectKey... skip) throws Exception {
    final Set<VersionlessProjectKey> skipKeys = new HashSet<VersionlessProjectKey>(Arrays.asList(skip));
    final Set<Dependency> skippedDeps = new HashSet<Dependency>();
    for (final Project project : modified) {
        final Model model = project.getModel();

        System.out.println("Examining: " + model.getId());

        new MavenXpp3Writer().write(System.out, model);

        final DependencyManagement dm = model.getDependencyManagement();
        if (dm != null) {
            final Set<FullProjectKey> foundBoms = new HashSet<FullProjectKey>();

            for (final Dependency dep : dm.getDependencies()) {
                final VersionlessProjectKey key = new VersionlessProjectKey(dep.getGroupId(),
                        dep.getArtifactId());
                if (("pom".equals(dep.getType()) && Artifact.SCOPE_IMPORT.equals(dep.getScope()))) {
                    foundBoms.add(new FullProjectKey(dep));
                } else if (!skipKeys.contains(key)) {
                    assertNull(/*from   ww  w .j a va  2  s.c o  m*/
                            "Managed Dependency version was NOT nullified: " + dep + "\nPOM: " + model.getId(),
                            dep.getVersion());
                } else {
                    skippedDeps.add(dep);
                }
            }

            assertThat(foundBoms, equalTo(bomKeys));
        }

        for (final Dependency dep : model.getDependencies()) {
            if (!("pom".equals(dep.getType()) && Artifact.SCOPE_IMPORT.equals(dep.getScope()))) {
                final VersionlessProjectKey key = new VersionlessProjectKey(dep.getGroupId(),
                        dep.getArtifactId());
                if (!skipKeys.contains(key)) {
                    assertNull("Dependency version was NOT nullified: " + dep.getManagementKey() + "\nPOM: "
                            + model.getId(), dep.getVersion());
                } else {
                    skippedDeps.add(dep);
                }
            }
        }
    }

    return skippedDeps;
}

From source file:io.sundr.maven.filter.SessionArtifactFilter.java

License:Apache License

private static boolean isBom(Artifact artifact) {
    return Artifact.SCOPE_IMPORT.equals(artifact.getScope()) && "pom".equals(artifact.getType());
}