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

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

Introduction

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

Prototype

public File getFile() 

Source Link

Usage

From source file:org.eclipse.scada.build.helper.AbstractSetQualifierMojo.java

License:Open Source License

private void process(final Collection<MavenProject> projects, final MavenProject project) throws Exception {
    getLog().debug("Processing: " + project + " / " + project.getVersion());

    final String qualifier = getQualifier(project);
    final String version = makeVersion(project, qualifier);

    recordVersion("pom", String.format("%s:%s", project.getGroupId(), project.getArtifactId()), version);

    addChange(project.getFile(), new ModelModifier() {

        @Override// www.jav  a2s . c om
        public boolean apply(final Model model) {
            if (version != null && !version.equals(project.getVersion())) {
                getLog().info(String.format("Update from %s to %s on project %s", project.getVersion(), version,
                        project));
                model.setVersion(version);
                return true;
            }
            return false;
        }
    });

    addChange(project.getFile(), new ModelModifier() {

        @Override
        public boolean apply(final Model model) {
            boolean change = false;
            final Properties p = model.getProperties();

            getLog().debug("Project Properties: " + p);

            for (final String prop : AbstractSetQualifierMojo.this.qualifierProperties) {
                if (p.containsKey(prop)) {
                    getLog().info(String.format("%s: Setting property - %s -> %s", project, prop, qualifier));
                    p.put(prop, qualifier);
                    change = true;
                }
            }

            for (final Map.Entry<String, String> entry : AbstractSetQualifierMojo.this.additionalProperties
                    .entrySet()) {
                if (p.containsKey(entry.getKey())) {
                    if (entry.getValue() != null) {
                        getLog().info(String.format("%s: Setting property - %s -> %s", project, entry.getKey(),
                                entry.getValue()));
                        p.put(entry.getKey(), entry.getValue());
                        change = true;
                    } else {
                        getLog().info(String.format("%s: Removing property - %s", entry.getKey()));
                        p.remove(entry.getKey());
                        change = true;
                    }
                }
            }

            return change;
        }

        @Override
        public String toString() {
            return String.format("Change properties: " + project);
        };
    });

    addChange(project.getFile(), new ModelModifier() {

        @Override
        public boolean apply(final Model model) {
            boolean changed = false;
            for (final Dependency dep : model.getDependencies()) {
                changed |= syncDep(dep);
            }
            for (final Profile profile : model.getProfiles()) {
                for (final Dependency dep : profile.getDependencies()) {
                    changed |= syncDep(dep);
                }
            }
            return changed;
        }

        @Override
        public String toString() {
            return String.format("Change dependencies: " + project);
        };
    });

    // visit all modules that have this project as a parent
    this.helper.visitModulesWithParent(projects, project, new VisitorChange(this.changeManager) {
        @Override
        protected boolean performChange(final Model model) {
            getLog().debug(String.format("Update parent version in module: %s", model));
            model.getParent().setVersion(version);
            return true;
        }
    });

    checkNonRelativeParent(project);

    syncModule(project, version);
}

From source file:org.eclipse.scada.build.helper.AbstractSetQualifierMojo.java

License:Open Source License

private void checkNonRelativeParent(final MavenProject project) {
    if (project.getModel().getParent() == null) {
        // no parent
        return;/*from ww  w  . j av a2  s  .  c o m*/
    }

    if (project.getParentFile() != null) {
        // is a local parent
        return;
    }

    final Parent parent = project.getModel().getParent();

    final String prefix = String.format("%s:%s:", parent.getGroupId(), parent.getArtifactId());
    for (final String entry : this.forceUpdateParentQualifiers) {
        if (entry.startsWith(prefix)) {
            final String qualifier = entry.substring(prefix.length());
            final String newVersion = makeVersion(parent.getVersion(), qualifier);

            getLog().info(String.format("Force update parent of %s to %s -> %s", project.getId(),
                    parent.getId(), newVersion));

            addChange(project.getFile(), new ModelModifier() {

                @Override
                public boolean apply(final Model model) {
                    model.getParent().setVersion(newVersion);
                    return true;
                }
            });
        }
    }
}

From source file:org.eclipse.scada.build.helper.DefaultPomHelper.java

License:Open Source License

@Override
public Set<MavenProject> expandProjects(final Collection<MavenProject> projects, final Log log,
        final MavenSession session) {
    try {//from   w  w  w . j ava2 s .c o  m
        final Set<MavenProject> result = new HashSet<MavenProject>();

        final Queue<MavenProject> queue = new LinkedList<MavenProject>(projects);
        while (!queue.isEmpty()) {
            final MavenProject project = queue.poll();
            log.debug("Checking project: " + project);
            if (project.getFile() == null) {
                log.info("Skipping non-local project: " + project);
                continue;
            }
            if (!result.add(project)) {
                // if the project was already in our result, there is no need to process twice
                continue;
            }
            // add all children to the queue
            queue.addAll(loadChildren(project, log, session));
            if (hasLocalParent(project)) {
                // if we have a parent, add the parent as well
                queue.add(project.getParent());
            }
        }
        return result;
    } catch (final Exception e) {
        throw new RuntimeException(e);
    }
}

From source file:org.eclipse.scada.build.helper.DefaultPomHelper.java

License:Open Source License

private MavenProject loadProject(File file, final MavenSession session) throws Exception {
    file = file.getCanonicalFile();/*from w w  w  . j a v a  2  s .  c  om*/
    for (final MavenProject project : session.getProjects()) {
        final File projectFile = project.getFile().getCanonicalFile();
        if (projectFile.equals(file)) {
            return project;
        }
    }

    throw new MojoExecutionException(file, "Unreferenced project found",
            String.format("Project at '%s' is not in the list of active projects. This plugin can only"
                    + "work on projects there were loaded by maven. You need to include the project in your build.",
                    file));
}

From source file:org.eclipse.scada.build.helper.DefaultPomHelper.java

License:Open Source License

@Override
public void visitModulesWithParent(final Collection<MavenProject> projects, final MavenProject parentProject,
        final ProjectVisitor visitor) throws Exception {
    for (final MavenProject project : projects) {
        if (project.getParentFile() == null) {
            continue;
        }//from  w  w w  .j ava2s.  com
        if (project.getParentFile().equals(parentProject.getFile())) {
            visitor.visit(project);
        }
    }
}

From source file:org.eclipse.scada.build.helper.VisitorChange.java

License:Open Source License

@Override
public void visit(final MavenProject project) throws IOException {
    this.changeManager.addChange(project.getFile(), new ModelModifier() {

        @Override/*from   w w  w . j a  v  a  2 s  .c  o m*/
        public boolean apply(final Model model) {
            return performChange(model);
        }

        @Override
        public String toString() {
            return VisitorChange.this.toString();
        };
    });
}

From source file:org.fornax.toolsupport.sculptor.maven.plugin.AbstractSculptorMojoTestCase.java

License:Apache License

/**
 * Returns Mojo instance for the given goal. The Mojo instance is
 * initialized with a {@link MavenProject} created from the test projects in
 * <code>"src/test/projects/"</code> by given project name.
 *///from   w  w w . j  ava  2  s  . co m
protected T createMojo(MavenProject project, String goal) throws Exception {

    // Create mojo
    @SuppressWarnings("unchecked")
    T mojo = (T) lookupMojo(goal, project.getFile());
    assertNotNull(mojo);

    // Set Maven project
    setVariableValueToObject(mojo, "project", project);

    // Set default values on mojo
    setVariableValueToObject(mojo, "outletSrcOnceDir", new File(project.getBasedir(), "src/main/java"));
    setVariableValueToObject(mojo, "outletResOnceDir", new File(project.getBasedir(), "src/main/resources"));
    setVariableValueToObject(mojo, "outletSrcDir", new File(project.getBasedir(), "src/generated/java"));
    setVariableValueToObject(mojo, "outletResDir", new File(project.getBasedir(), "src/generated/resources"));
    setVariableValueToObject(mojo, "outletSrcTestOnceDir", new File(project.getBasedir(), "src/test/java"));
    setVariableValueToObject(mojo, "outletResTestOnceDir",
            new File(project.getBasedir(), "src/test/resources"));
    setVariableValueToObject(mojo, "outletSrcTestDir",
            new File(project.getBasedir(), "src/test/generated/java"));
    setVariableValueToObject(mojo, "outletResTestDir",
            new File(project.getBasedir(), "src/test/generated/resources"));
    setVariableValueToObject(mojo, "statusFile", new File(project.getBasedir(), ".sculptor-status"));
    return mojo;
}

From source file:org.gephi.maven.CreateAutoUpdate.java

License:Apache License

@Override
public void execute() throws MojoExecutionException, MojoFailureException {
    String gephiVersion = (String) project.getProperties().get("gephi.version");
    if (gephiVersion == null) {
        throw new MojoExecutionException("The 'gephi.version' property should be defined");
    }/*from  w w  w. ja  v  a  2 s.  com*/

    File outputFolder = new File(outputDirectory, gephiVersion);
    if (outputFolder.mkdirs()) {
        getLog().debug("Folder '" + outputFolder.getAbsolutePath() + "' created.");
    }

    if (reactorProjects != null && reactorProjects.size() > 0) {
        Project antProject = registerNbmAntTasks();

        for (MavenProject proj : reactorProjects) {
            if (proj.getPackaging().equals("nbm")) {
                File moduleDir = proj.getFile().getParentFile();
                if (moduleDir != null && moduleDir.exists()) {
                    File targetDir = new File(moduleDir, "target");
                    if (targetDir.exists()) {
                        String gephiVersionModule = proj.getProperties().getProperty("gephi.version");
                        if (gephiVersionModule == null) {
                            throw new MojoExecutionException(
                                    "The 'gephi.version' property should be defined in project '"
                                            + proj.getName() + "'");
                        }
                        if (gephiVersionModule.equals(gephiVersion)) {
                            File[] nbmsFiles = targetDir.listFiles(new FilenameFilter() {
                                @Override
                                public boolean accept(File dir, String name) {
                                    return !name.startsWith(".") && name.endsWith(".nbm");
                                }
                            });
                            for (File nbmFile : nbmsFiles) {
                                try {
                                    FileUtils.copyFileToDirectory(nbmFile, outputFolder);
                                } catch (IOException ex) {
                                    getLog().error(
                                            "Error while copying nbm file '" + nbmFile.getAbsolutePath() + "'",
                                            ex);
                                }
                                getLog().info("Copying  '" + nbmFile + "' to '" + outputFolder.getAbsolutePath()
                                        + "'");
                            }
                        } else {
                            getLog().warn("The NBM of module '" + proj.getName()
                                    + "' has been ignored because its 'gephi.version' is '" + gephiVersionModule
                                    + "' while '" + gephiVersion + "' is expected");
                        }
                    } else {
                        getLog().error(
                                "The module target dir for project '" + proj.getName() + "' doesn't exists");
                    }
                } else {
                    getLog().error("The module dir for project '" + proj.getName() + "' doesn't exists");
                }
            }
        }

        // Create updates.xml
        String fileName = "updates.xml";
        MakeUpdateDesc descTask = (MakeUpdateDesc) antProject.createTask("updatedist");
        File xmlFile = new File(outputFolder, fileName);
        descTask.setDesc(xmlFile);
        FileSet fs = new FileSet();
        fs.setDir(outputFolder);
        fs.createInclude().setName("**/*.nbm");
        descTask.addFileset(fs);
        try {
            descTask.execute();
        } catch (BuildException ex) {
            throw new MojoExecutionException("Cannot create autoupdate site xml file", ex);
        }
        getLog().info("Generated autoupdate site content at " + outputFolder.getAbsolutePath());

        // Create compressed version of updates.xml
        try {
            GZipArchiver gz = new GZipArchiver();
            gz.addFile(xmlFile, fileName);
            File gzipped = new File(outputFolder, fileName + ".gz");
            gz.setDestFile(gzipped);
            gz.createArchive();
        } catch (ArchiverException ex) {
            throw new MojoExecutionException("Cannot create gzipped version of the update site xml file.", ex);
        } catch (IOException ex) {
            throw new MojoExecutionException("Cannot create gzipped version of the update site xml file.", ex);
        }
        getLog().info("Generated compressed autoupdate site content at " + outputFolder.getAbsolutePath());
    } else {
        throw new MojoExecutionException("This should be executed on the reactor project");
    }
}

From source file:org.hypoport.milk.maven.plugin.AbstractVersionsUpdaterMojo.java

License:Apache License

protected void process() throws MojoFailureException, MojoExecutionException {
    for (MavenProject project : reactorProjects) {
        process(project.getFile());
    }//from   w  w  w. j av a 2  s .c o m
}

From source file:org.javagems.core.maven.DebianMojo.java

License:Apache License

/**
 * Copy properties from the maven project to the ant project.
 *
 * @param mavenProject/*from  ww w  .  j ava2s.co  m*/
 * @param antProject
 */
public void copyProperties(MavenProject mavenProject, Project antProject) {
    Properties mavenProps = mavenProject.getProperties();
    Iterator iter = mavenProps.keySet().iterator();
    while (iter.hasNext()) {
        String key = (String) iter.next();
        antProject.setProperty(key, mavenProps.getProperty(key));
    }

    // Set the POM file as the ant.file for the tasks run directly in Maven.
    antProject.setProperty("ant.file", mavenProject.getFile().getAbsolutePath());

    // Add some of the common maven properties
    getLog().debug("Setting properties with prefix: " + propertyPrefix);
    antProject.setProperty((propertyPrefix + "project.groupId"), mavenProject.getGroupId());
    antProject.setProperty((propertyPrefix + "project.artifactId"), mavenProject.getArtifactId());
    antProject.setProperty((propertyPrefix + "project.name"), mavenProject.getName());
    if (mavenProject.getDescription() != null) {
        antProject.setProperty((propertyPrefix + "project.description"), mavenProject.getDescription());
    }
    antProject.setProperty((propertyPrefix + "project.version"), mavenProject.getVersion());
    antProject.setProperty((propertyPrefix + "project.packaging"), mavenProject.getPackaging());
    antProject.setProperty((propertyPrefix + "project.build.directory"),
            mavenProject.getBuild().getDirectory());
    antProject.setProperty((propertyPrefix + "project.build.outputDirectory"),
            mavenProject.getBuild().getOutputDirectory());
    antProject.setProperty((propertyPrefix + "project.build.testOutputDirectory"),
            mavenProject.getBuild().getTestOutputDirectory());
    antProject.setProperty((propertyPrefix + "project.build.sourceDirectory"),
            mavenProject.getBuild().getSourceDirectory());
    antProject.setProperty((propertyPrefix + "project.build.testSourceDirectory"),
            mavenProject.getBuild().getTestSourceDirectory());
    antProject.setProperty((propertyPrefix + "localRepository"), localRepository.toString());
    antProject.setProperty((propertyPrefix + "settings.localRepository"), localRepository.getBasedir());

    // Add properties for depenedency artifacts
    Set depArtifacts = mavenProject.getArtifacts();
    for (Iterator it = depArtifacts.iterator(); it.hasNext();) {
        Artifact artifact = (Artifact) it.next();

        String propName = artifact.getDependencyConflictId();

        antProject.setProperty(propertyPrefix + propName, artifact.getFile().getPath());
    }

    // Add a property containing the list of versions for the mapper
    StringBuffer versionsBuffer = new StringBuffer();
    for (Iterator it = depArtifacts.iterator(); it.hasNext();) {
        Artifact artifact = (Artifact) it.next();

        versionsBuffer.append(artifact.getVersion() + File.pathSeparator);
    }
    antProject.setProperty(versionsPropertyName, versionsBuffer.toString());
}