List of usage examples for org.apache.maven.project MavenProject getOriginalModel
public Model getOriginalModel()
From source file:ch.sourcepond.maven.release.pom.UpdateProcessor.java
License:Apache License
@Override public ChangeSet updatePoms(final Reactor reactor, final boolean incrementSnapshotVersionAfterRelease) throws POMUpdateException { final DefaultChangeSet changeSet = changeSetFactory.newChangeSet(); final List<String> errors = new LinkedList<String>(); for (final ReleasableModule module : reactor) { final Version version = module.getVersion(); // TODO: If a module will not be released, is further processing // necessary or should we continue the loop here? if (module.getVersion().hasChanged()) { log.info(format("Going to release %s %s", module.getArtifactId(), version.getReleaseVersion())); }//from www. j av a 2 s . c o m final MavenProject project = module.getProject(); final Model releaseModel = project.getOriginalModel().clone(); Context context = contextFactory.newContext(reactor, project, releaseModel, false); process(context, errors); // Mark project to be written at a later stage; if an exception // occurs, we don't need to revert anything. changeSet.markRelease(project.getFile(), releaseModel, context.needsOwnVersion()); if (incrementSnapshotVersionAfterRelease) { final Model snapshotModel = project.getOriginalModel().clone(); context = contextFactory.newContext(reactor, project, snapshotModel, true); process(context, errors); changeSet.markSnapshotVersionIncrement(project.getFile(), snapshotModel, context.needsOwnVersion()); } } if (!errors.isEmpty()) { final POMUpdateException exception = new POMUpdateException(DEPENDENCY_ERROR_SUMMARY); exception.add(DEPENDENCY_ERROR_INTRO); for (final String dependencyError : errors) { exception.add(" * %s", dependencyError); } throw exception; } // At this point it's guaranteed that no dependency errors occurred. return changeSet.writeChanges(); }
From source file:com.exentes.maven.versions.UseReleasesMojo.java
License:Apache License
private Collection<String> processProject() throws MojoFailureException { List<String> errors = Lists.newArrayList(); getLog().info("Processing all projects snapshots..."); SetMultimap<Artifact, MavenProject> allSnapshotProjectArtifacts = VersionMojoUtils .allSnapshotProjectArtifacts(session); Map<String, Dependency> allDependenciesMap = allDependenciesMap(session); Map<Object, MavenProject> origins = origins(session); Set<MavenProject> projectsToUpdate = Sets.newHashSet(); for (Map.Entry<Artifact, Collection<MavenProject>> artifactWithProjects : allSnapshotProjectArtifacts .asMap().entrySet()) {//from w w w . j a v a 2s . c o m Artifact snapshotArtifact = artifactWithProjects.getKey(); Collection<MavenProject> projects = artifactWithProjects.getValue(); try { ArtifactResult artifactResult = resolveReleasedArtifact(snapshotArtifact); for (MavenProject project : projects) { Dependency dependencyToUpdate = allDependenciesMap .get(projectArtifactKey(project, snapshotArtifact)); if (isPropertyPlaceholder(dependencyToUpdate.getVersion())) { MavenProject projectToUpdate = origins.get(dependencyToUpdate); String propertyName = getPropertyName(dependencyToUpdate.getVersion()); Properties projectProperties = projectToUpdate.getOriginalModel().getProperties(); if (projectProperties != null && projectProperties.containsKey(propertyName)) { String newVersion = null; String versionPropertyValue = projectProperties.getProperty(propertyName); VersionRange versionRange = VersionRange.createFromVersionSpec(versionPropertyValue); if (versionRange.getRecommendedVersion() == null) { int restrictionIndex = 0; for (Restriction restriction : versionRange.getRestrictions()) { if (restriction.isUpperBoundInclusive()) { if (snapshotArtifact.getVersion() .equals(restriction.getUpperBound().toString())) { DefaultArtifactVersion updatedVersion = new DefaultArtifactVersion( artifactResult.getArtifact().getVersion()); Restriction updatedRestriction = new Restriction( restriction.getUpperBound().equals(restriction.getLowerBound()) ? updatedVersion : restriction.getLowerBound(), restriction.isLowerBoundInclusive(), updatedVersion, restriction.isUpperBoundInclusive()); versionRange.getRestrictions().set(restrictionIndex, updatedRestriction); newVersion = versionRange.toString(); break; } } restrictionIndex++; } } else { newVersion = artifactResult.getArtifact().getVersion(); } if (newVersion != null) { projectProperties.setProperty(propertyName, newVersion); projectsToUpdate.add(projectToUpdate); getLog().info("Version property {" + propertyName + "} in the project [" + projectToUpdate.getId() + "] set to the value: " + artifactResult.getArtifact().getVersion()); getLog().info("Snapshot dependency [" + snapshotArtifact + "] is replaced with [" + artifactResult.getArtifact() + "] in the project: [" + projectToUpdate.getId() + "]"); } else { errors.add("Dependency version value '" + versionPropertyValue + "' defined as a value of property '" + propertyName + "' not supported"); } } else { errors.add("Property [" + propertyName + "] not found in the project [" + projectsToUpdate + "] properties. The artifact version cannot be resolved"); } } else if (snapshotArtifact.getVersion().equals(dependencyToUpdate.getVersion())) { MavenProject projectToUpdate = origins.get(dependencyToUpdate); projectsToUpdate.add(projectToUpdate); dependencyToUpdate.setVersion(artifactResult.getArtifact().getVersion()); getLog().info("Snapshot dependency [" + snapshotArtifact + "] is replaced with [" + artifactResult.getArtifact() + "] in the project: [" + projectToUpdate.getId() + "]"); } else if (dependencyToUpdate.getVersion() == null) { errors.add("Unknown version for the dependency [" + dependencyToUpdate + "]"); } else { // check if this is version range try { VersionRange versionRange = VersionRange .createFromVersionSpec(dependencyToUpdate.getVersion()); if (versionRange.getRecommendedVersion() == null) { // this this a version range. now all inclusive upper bounds should be inspected and the one which match resolved snapshot version must be upgraded int restrictionIndex = 0; for (Restriction restriction : versionRange.getRestrictions()) { if (restriction.isUpperBoundInclusive()) { if (isPropertyPlaceholder(restriction.getUpperBound().toString())) { // try to update a property which is used as an upper version boundary String propertyName = getPropertyName( restriction.getUpperBound().toString()); getLog().info("property name: " + propertyName); MavenProject projectToUpdate = origins.get(dependencyToUpdate); Properties projectProperties = projectToUpdate.getOriginalModel() .getProperties(); if (projectProperties != null && projectProperties.containsKey(propertyName) && projectProperties.getProperty(propertyName) .equals(snapshotArtifact.getVersion())) { projectProperties.setProperty(propertyName, artifactResult.getArtifact().getVersion()); projectsToUpdate.add(projectToUpdate); getLog().info( "Version property {" + propertyName + "} in the project [" + projectToUpdate.getId() + "] set to the value: " + artifactResult.getArtifact().getVersion()); getLog().info("Snapshot dependency [" + snapshotArtifact + "] is replaced with [" + artifactResult.getArtifact() + "] in the project: [" + projectToUpdate.getId() + "]"); break; } } else { if (snapshotArtifact.getVersion() .equals(restriction.getUpperBound().toString())) { DefaultArtifactVersion updatedVersion = new DefaultArtifactVersion( artifactResult.getArtifact().getVersion()); Restriction updatedRestriction = new Restriction( restriction.getUpperBound().equals( restriction.getLowerBound()) ? updatedVersion : restriction.getLowerBound(), restriction.isLowerBoundInclusive(), updatedVersion, restriction.isUpperBoundInclusive()); versionRange.getRestrictions().set(restrictionIndex, updatedRestriction); MavenProject projectToUpdate = origins.get(dependencyToUpdate); projectsToUpdate.add(projectToUpdate); dependencyToUpdate.setVersion(versionRange.toString()); getLog().info("Snapshot dependency [" + snapshotArtifact + "] is replaced with [" + dependencyToUpdate + "] in the project: [" + projectToUpdate.getId() + "]"); break; } } } restrictionIndex++; } } else { errors.add("Dependency version value [" + dependencyToUpdate.getVersion() + "] not supported"); } } catch (InvalidVersionSpecificationException e) { errors.add("Invalid version specified: " + dependencyToUpdate.getVersion() + ". Exception when parsing version: " + e.getMessage()); } } } } catch (ArtifactResolutionException e) { getLog().info(e); errors.add("Failed to resolve a RELEASE version for [" + snapshotArtifact + "]. Exception: " + e.getMessage()); } catch (InvalidVersionSpecificationException e) { errors.add("Invalid version specified: " + snapshotArtifact.getVersion() + ". Exception when parsing version: " + e.getMessage()); } } if (!dryRun) { for (MavenProject project : projectsToUpdate) { try { modelWriter.write(project.getFile(), null, project.getOriginalModel()); } catch (IOException e) { throw new MojoFailureException("Error writing POM", e); } } } return errors; }
From source file:com.exentes.maven.versions.VersionMojoUtils.java
License:Apache License
private static Iterable<Dependency> dependencyManagement(MavenProject project) { if (project.getOriginalModel().getDependencyManagement() != null) { return project.getOriginalModel().getDependencyManagement().getDependencies(); } else {/*from w w w . java 2 s. c om*/ return emptyList(); } }
From source file:com.exentes.maven.versions.VersionMojoUtils.java
License:Apache License
public static Map<String, Dependency> allDependenciesMap(MavenSession session) { Map<String, Dependency> allDependencyManagementMap = allDependencyManagementMap(session); Map<String, Dependency> allDependenciesMap = Maps.newHashMap(); for (MavenProject project : session.getProjects()) { for (Dependency dependency : concat(emptyIfNull(project.getOriginalModel().getDependencies()), allActiveProfilesDependencies(project))) { if (dependency.getVersion() != null) { allDependenciesMap.put(projectDependencyKey(project, dependency), dependency); } else { // dependency version is not specified. Perhaps it is specified in a dependencyManagement section // of the project of one of its parents Dependency parentDependency = null; MavenProject projectToCheck = project; while (parentDependency == null && projectToCheck != null) { parentDependency = allDependencyManagementMap .get(projectDependencyKey(projectToCheck, dependency)); if (parentDependency != null) { allDependenciesMap.put(projectDependencyKey(project, dependency), parentDependency); } else { if (!projectToCheck.isExecutionRoot()) { projectToCheck = projectToCheck.getParent(); } else { projectToCheck = null; }// w w w . j a va 2s. co m } } } } } return allDependenciesMap; }
From source file:com.exentes.maven.versions.VersionMojoUtils.java
License:Apache License
public static Map<Object, MavenProject> origins(MavenSession session) { Map<Object, MavenProject> origins = new IdentityHashMap<Object, MavenProject>(); for (MavenProject project : session.getProjects()) { if (project.getOriginalModel().getProperties() != null) { origins.put(project.getOriginalModel().getProperties(), project); }/* w w w. ja v a 2 s. co m*/ for (Profile profile : project.getActiveProfiles()) { if (profile.getProperties() != null) { origins.put(profile.getProperties(), project); } } for (Dependency dependency : concat(emptyIfNull(project.getOriginalModel().getDependencies()), dependencyManagement(project), allActiveProfilesDependencies(project), allActiveProfilesDependencyManagement(project))) { origins.put(dependency, project); } } return origins; }
From source file:com.igormaznitsa.upom.UPomMojo.java
License:Apache License
private Model[] collectFullHierarchy(final MavenProject project) { final List<Model> result = new ArrayList<Model>(); MavenProject current = project; while (current != null) { result.add(0, current.getOriginalModel()); current = current.getParent() == null ? null : current.getParent(); }//from w ww .ja va2 s.c o m return result.toArray(new Model[result.size()]); }
From source file:com.igormaznitsa.upom.UPomMojo.java
License:Apache License
private static UPomModel[] collectModels(final MavenProject project, final int depth) { final List<UPomModel> result = new ArrayList<UPomModel>(); int levels = depth < 0 ? Integer.MAX_VALUE : depth; MavenProject current = project; while (current != null && levels-- >= 0) { result.add(0, new UPomModel(current.getOriginalModel())); current = current.getParent();//from ww w . jav a2 s . c o m } return result.toArray(new UPomModel[result.size()]); }
From source file:com.lewisd.maven.lint.rules.opensource.MissingLicenseRule.java
@Override public void invoke(MavenProject mavenProject, Map<String, Object> models, ResultCollector resultCollector) { final List<License> licenses = mavenProject.getLicenses(); if (licenses.isEmpty()) { InputLocation location = mavenProject.getOriginalModel().getLocation("licences"); resultCollector.addViolation(mavenProject, this, "missing <licenses/> information", location == null ? getEmptyLocation(mavenProject) : location); } else {//w w w . j a v a2s . c om for (License license : licenses) { if (StringUtils.isEmpty(license.getName())) { resultCollector.addViolation(mavenProject, this, "missing <name> in <license/> information", license.getLocation("")); } if (StringUtils.isEmpty(license.getUrl())) { resultCollector.addViolation(mavenProject, this, "missing <url> in <license/> information", license.getLocation("")); } } } }
From source file:com.lewisd.maven.lint.rules.opensource.MissingLicenseRule.java
private InputLocation getEmptyLocation(MavenProject mavenProject) { final InputSource source = new InputSource(); source.setLocation(mavenProject.getOriginalModel().getPomFile() + ""); return new InputLocation(0, 0, source); }
From source file:com.redhat.rcm.version.mgr.session.ManagedInfo.java
License:Open Source License
void setToolchain(final File toolchainFile, final MavenProject project) { toolchainKey = new FullProjectKey(project); this.toolchainProject = project; final PluginManagement pm = project.getPluginManagement(); if (pm != null) { for (final Plugin plugin : pm.getPlugins()) { managedPlugins.put(new VersionlessProjectKey(plugin), plugin); }//from w w w.j a v a2 s. com } final Model model = project.getOriginalModel(); final Build build = model.getBuild(); if (build != null) { final List<Plugin> plugins = build.getPlugins(); if (plugins != null) { for (final Plugin plugin : plugins) { final VersionlessProjectKey key = new VersionlessProjectKey(plugin); injectedPlugins.put(key, plugin); if (!managedPlugins.containsKey(key) && plugin.getVersion() != null) { injectedPlugins.put(key, plugin); } } } } }