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

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

Introduction

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

Prototype

public Model getModel() 

Source Link

Usage

From source file:fr.fastconnect.factory.tibco.bw.maven.BWLifecycleParticipant.java

License:Apache License

private static File getHawkLibDirectory(MavenProject mavenProject, Logger logger) {
    File result = null;/*from  w w  w. j a v  a  2s .c o  m*/
    if (mavenProject == null) {
        return result;
    }

    String hawkLib = mavenProject.getModel().getProperties().getProperty("hawk.lib");
    if (hawkLib != null) {
        result = new File(hawkLib);
    }
    if (result != null && result.exists() && result.isDirectory()) {
        return result;
    }

    String tibcoHome = mavenProject.getModel().getProperties().getProperty("tibco.home");
    logger.debug("tibcoHome : " + tibcoHome);
    String hawkVersion = mavenProject.getModel().getProperties().getProperty("tibco.hawk.version");
    logger.debug("hawkVersion : " + hawkVersion);

    hawkLib = tibcoHome + File.separator + "hawk" + File.separator + hawkVersion + File.separator + "lib";
    if (hawkLib != null) {
        result = new File(hawkLib);
    }

    if (result != null && result.exists() && result.isDirectory()) {
        return result;
    }

    return null;
}

From source file:fr.fastconnect.factory.tibco.bw.maven.BWLifecycleParticipant.java

License:Apache License

private static File getRvLibDirectory(MavenProject mavenProject, Logger logger) {
    File result = null;//from   w  w w  . ja  va 2  s . com
    if (mavenProject == null) {
        return result;
    }

    String rvLib = mavenProject.getModel().getProperties().getProperty("rv.lib");
    if (rvLib != null) {
        result = new File(rvLib);
    }
    if (result != null && result.exists() && result.isDirectory()) {
        return result;
    }

    String tibcoHome = mavenProject.getModel().getProperties().getProperty("tibco.home");
    logger.debug("tibcoHome : " + tibcoHome);
    String rvVersion = mavenProject.getModel().getProperties().getProperty("tibco.rv.version");
    logger.debug("rvVersion : " + rvVersion);

    rvLib = tibcoHome + File.separator + "tibrv" + File.separator + rvVersion + File.separator + "lib";
    if (rvLib != null) {
        result = new File(rvLib);
    }

    if (result != null && result.exists() && result.isDirectory()) {
        return result;
    }

    return null;
}

From source file:fr.fastconnect.factory.tibco.bw.maven.BWLifecycleParticipant.java

License:Apache License

public static void addTIBCODependenciesToPlugin(MavenProject mavenProject, Logger logger) {
    File hawkLib = getHawkLibDirectory(mavenProject, logger);
    File rvLib = getRvLibDirectory(mavenProject, logger);
    String hawkVersion = mavenProject.getModel().getProperties().getProperty("tibco.hawk.version");
    String rvVersion = mavenProject.getModel().getProperties().getProperty("tibco.rv.version");
    logger.debug("hawkVersion : " + hawkVersion);
    logger.debug("rvVersion : " + rvVersion);

    if (hawkLib != null && hawkLib.exists() && hawkLib.isDirectory()) {
        File console = new File(hawkLib, "console.jar");
        File talon = new File(hawkLib, "talon.jar");
        File util = new File(hawkLib, "util.jar");

        logger.debug(console.getAbsolutePath());
        logger.debug(talon.getAbsolutePath());
        logger.debug(util.getAbsolutePath());

        logger.debug("looking for plugins");
        for (Plugin plugin : mavenProject.getModel().getBuild().getPlugins()) {
            logger.debug(plugin.getArtifactId());
            if ("bw-maven-plugin".equals(plugin.getArtifactId())) {
                logger.debug("found ! " + plugin.getArtifactId());
                Dependency dependency = new Dependency();
                dependency.setGroupId("com.tibco.hawk");
                dependency.setVersion(hawkVersion);
                dependency.setScope("system");
                dependency.setArtifactId("console");
                dependency.setSystemPath(console.getAbsolutePath());
                plugin.addDependency(dependency);

                dependency = new Dependency();
                dependency.setGroupId("com.tibco.hawk");
                dependency.setVersion(hawkVersion);
                dependency.setScope("system");
                dependency.setArtifactId("talon");
                dependency.setSystemPath(talon.getAbsolutePath());
                plugin.addDependency(dependency);

                dependency = new Dependency();
                dependency.setGroupId("com.tibco.hawk");
                dependency.setVersion(hawkVersion);
                dependency.setScope("system");
                dependency.setArtifactId("util");
                dependency.setSystemPath(util.getAbsolutePath());
                plugin.addDependency(dependency);
                logger.debug(plugin.getDependencies().toString());

            }/*from   w ww  . j  a va  2  s.com*/
        }
    }

    logger.debug(mavenProject.getModel().getBuild().getPlugins().toString());
    if (rvLib != null && rvLib.exists() && rvLib.isDirectory()) {
        File tibrv = new File(rvLib, "tibrvj.jar");

        logger.debug(tibrv.getAbsolutePath());

        for (Plugin plugin : mavenProject.getModel().getBuild().getPlugins()) {
            if ("bw-maven-plugin".equals(plugin.getArtifactId())) {
                Dependency dependency = new Dependency();
                dependency.setGroupId("com.tibco.rv");
                dependency.setVersion(rvVersion);
                dependency.setScope("system");
                dependency.setArtifactId("tibrvj");
                dependency.setSystemPath(tibrv.getAbsolutePath());
                plugin.addDependency(dependency);
            }
        }
    }
}

From source file:fr.fastconnect.factory.tibco.bw.maven.packaging.pom.GenerateRootDeploymentPOM.java

License:Apache License

private List<String> addModules(MavenProject project, List<MavenProject> activeProjects)
        throws IOException, XmlPullParserException {
    return addModules(project.getBasedir() + File.separator, project.getModel(),
            getActiveProfiles(activeProjects), activeProjects);
}

From source file:info.mikaelsvensson.devtools.sitesearch.SiteSearchPlugin.java

License:Apache License

private void scanForProjectsInProjectHierarchyWithSiteIndexing(final MavenProject proj, boolean forceEmbed,
        Set<String> modulePaths) throws IOException {
    forceEmbed |= isSiteIndexerPluginReferences(proj);
    if (forceEmbed) {
        String pathFromProjectRootToOtherProject = getRelativePath(project.getBasedir(),
                proj.getModel().getPomFile().getParentFile());
        modulePaths.add(pathFromProjectRootToOtherProject);
    }//  w  w  w.ja va  2s. c om

    for (Object moduleName : proj.getModules()) {
        try {
            File pomFile = new File(proj.getFile().getParentFile(),
                    moduleName.toString() + File.separatorChar + "pom.xml");

            MavenProject subModuleProj = loadPomFile(pomFile);

            scanForProjectsInProjectHierarchyWithSiteIndexing(subModuleProj, forceEmbed, modulePaths);
        } catch (XmlPullParserException e) {
            getLog().warn("Could not read POM file for module '" + moduleName + "'.", e);
        }
    }
}

From source file:io.airlift.resolver.ArtifactResolver.java

License:Apache License

public List<Artifact> resolvePom(File pomFile) {
    if (pomFile == null) {
        throw new RuntimeException("pomFile is null");
    }//from   w  w  w .jav a 2  s.c o m

    MavenProject pom;
    try {
        PlexusContainer container = container();
        org.apache.maven.repository.RepositorySystem lrs = container
                .lookup(org.apache.maven.repository.RepositorySystem.class);
        ProjectBuilder projectBuilder = container.lookup(ProjectBuilder.class);
        ProjectBuildingRequest request = new DefaultProjectBuildingRequest();
        request.setSystemProperties(requiredSystemProperties());
        request.setRepositorySession(repositorySystemSession);
        request.setProcessPlugins(false);
        request.setLocalRepository(lrs.createDefaultLocalRepository());
        request.setRemoteRepositories(
                Arrays.asList(new ArtifactRepository[] { lrs.createDefaultRemoteRepository() }.clone()));
        ProjectBuildingResult result = projectBuilder.build(pomFile, request);
        pom = result.getProject();
    } catch (Exception e) {
        if (e instanceof RuntimeException) {
            throw (RuntimeException) e;
        }
        throw new RuntimeException("Error loading pom: " + pomFile.getAbsolutePath(), e);
    }

    Artifact rootArtifact = new DefaultArtifact(pom.getArtifact().getGroupId(),
            pom.getArtifact().getArtifactId(), pom.getArtifact().getClassifier(), pom.getArtifact().getType(),
            pom.getArtifact().getVersion(), null, new File(pom.getModel().getBuild().getOutputDirectory()));

    CollectRequest collectRequest = new CollectRequest();
    for (org.apache.maven.model.Dependency dependency : pom.getDependencies()) {
        collectRequest.addDependency(toAetherDependency(dependency));
    }
    for (RemoteRepository repository : pom.getRemoteProjectRepositories()) {
        collectRequest.addRepository(repository);
    }
    for (RemoteRepository repository : repositories) {
        collectRequest.addRepository(repository);
    }

    // Make sure we account for managed dependencies
    if (pom.getDependencyManagement() != null) {
        for (org.apache.maven.model.Dependency managedDependency : pom.getDependencyManagement()
                .getDependencies()) {
            collectRequest.addManagedDependency(toAetherDependency(managedDependency));
        }
    }

    DependencyRequest dependencyRequest = new DependencyRequest(collectRequest,
            DependencyFilterUtils.classpathFilter(JavaScopes.RUNTIME));
    List<Artifact> artifacts = resolveArtifacts(dependencyRequest);
    return ImmutableList.<Artifact>builder().add(rootArtifact).addAll(artifacts).build();
}

From source file:io.github.stackinfo.maven.plugins.PrepareMojo.java

License:Apache License

public void execute() throws MojoExecutionException {
    File outputDirectory = new File(targetDirectory, "stackinfo/poms");

    try {// w  w  w . j a v  a2s.c o m
        createOrCleanDirectory(outputDirectory);
        rootDirectory = rootDirectory.getCanonicalFile();
    } catch (IOException e) {
        getLog().error(e);
        return;
    }

    MavenXpp3Writer writer = new MavenXpp3Writer();

    for (MavenProject project : projects) {
        Model model = getMinimalModel(project.getModel());

        try {
            File projectDirectory = model.getProjectDirectory().getCanonicalFile();
            if (!projectDirectory.toString().startsWith(rootDirectory.toString())) {
                getLog().error("Invalid project directory: " + projectDirectory);
                continue;
            }

            String relative = rootDirectory.toURI().relativize(projectDirectory.toURI()).getPath();
            File projectOutputDirectory = new File(outputDirectory, relative);
            projectOutputDirectory.mkdirs();

            OutputStream out = new FileOutputStream(new File(projectOutputDirectory, "pom.xml"));
            writer.write(out, model);
        } catch (Exception e) {
            getLog().error(e);
        }
    }
}

From source file:io.sundr.maven.GenerateBomMojo.java

License:Apache License

private MavenProject generateBom(BomConfig config) throws MojoFailureException, MojoExecutionException {
    File outputDir = new File(getProject().getBuild().getOutputDirectory());
    File bomDir = new File(outputDir, config.getArtifactId());
    File generatedBom = new File(bomDir, BOM_NAME);

    if (!bomDir.exists() && !bomDir.mkdirs()) {
        throw new MojoFailureException("Failed to create output dir for bom:" + bomDir.getAbsolutePath());
    }//  ww w.  ja  v  a 2  s.  c  o m
    preProccessConfig(config);
    FileWriter writer = null;
    try {
        writer = new FileWriter(generatedBom);
        // Imported dependencies may have important additional information (eg. exclusions)
        // Taking both the artifacts and their related dependencies
        Map<Artifact, Dependency> dependencies = new LinkedHashMap<Artifact, Dependency>();
        Set<Artifact> plugins = new LinkedHashSet<Artifact>();

        Set<Artifact> ownModules = Filters.filter(getReactorArtifacts(), Filters.createModulesFilter(config));

        //We add first project management and unwrapped boms. (we don't resolve those).
        Set<Artifact> dependencyManagementArtifacts = config.isInheritDependencyManagement()
                ? getProjectDependencyManagement()
                : new LinkedHashSet<Artifact>();
        Set<Artifact> pluginManagementArtifacts = config.isInheritPluginManagement()
                ? getProjectPluginManagement()
                : new LinkedHashSet<Artifact>();

        Set<Artifact> allDependencies = new LinkedHashSet<Artifact>(dependencyManagementArtifacts);
        allDependencies.addAll(getDependencies(getProjectDependencies())); //We resolve transitives here....

        //Populate dependencies
        dependencies.putAll(toDependencyMap(ownModules));
        dependencies.putAll(toDependencyMap(
                Filters.filter(allDependencies, Filters.createDependencyFilter(getSession(), config))));

        //Populate dependencies with imported boms.
        ExternalBomResolver bomResolver = new ExternalBomResolver(getSession(), getArtifactHandler(),
                aetherSystem, aetherSession, aetherRemoteRepositories, getLog());
        Map<Artifact, Dependency> externalDependencies = bomResolver.resolve(config);
        dependencies.putAll(externalDependencies);

        //Populate plugins
        plugins.addAll(Filters.filter(ownModules, Filters.MAVEN_PLUGIN_FILTER));
        plugins.addAll(
                Filters.filter(pluginManagementArtifacts, Filters.createPluginFilter(getSession(), config)));

        //Checking version mismatches.
        MavenProject projectToGenerate = toGenerate(getProject(), config, dependencies.values(), plugins);
        verifyBomDependencies(config, projectToGenerate);

        getLog().info("Generating BOM: " + config.getArtifactId());
        new CodeGeneratorBuilder<Model>().withWriter(writer).withModel(projectToGenerate.getModel())
                .withTemplateResource(bomTemplateResource).withTemplateUrl(bomTemplateUrl).build().generate();

        return toBuild(getProject(), config);

    } catch (Exception e) {
        throw new MojoFailureException("Failed to generate bom.", e);
    } finally {
        try {
            if (writer != null) {
                writer.close();
            }
        } catch (IOException e) {
            throw new MojoExecutionException("Failed to close the generated bom writer", e);
        }
    }
}

From source file:io.sundr.maven.GenerateBomMojo.java

License:Apache License

/**
 * Returns the model of the {@link org.apache.maven.project.MavenProject} to generate.
 * This is a trimmed down version and contains just the stuff that need to go into the bom.
 *
 * @param project The source {@link org.apache.maven.project.MavenProject}.
 * @param config  The {@link io.sundr.maven.BomConfig}.
 * @return The build {@link org.apache.maven.project.MavenProject}.
 *//* w  w w . j  a  v a2 s. co  m*/
private static MavenProject toGenerate(MavenProject project, BomConfig config,
        Collection<Dependency> dependencies, Set<Artifact> plugins) {
    MavenProject toGenerate = project.clone();
    toGenerate.setGroupId(project.getGroupId());
    toGenerate.setArtifactId(config.getArtifactId());
    toGenerate.setVersion(project.getVersion());
    toGenerate.setPackaging("pom");
    toGenerate.setName(config.getName());
    toGenerate.setDescription(config.getDescription());

    toGenerate.setUrl(project.getUrl());
    toGenerate.setLicenses(project.getLicenses());
    toGenerate.setScm(project.getScm());
    toGenerate.setDevelopers(project.getDevelopers());

    toGenerate.getModel().setDependencyManagement(new DependencyManagement());
    for (Dependency dependency : dependencies) {
        toGenerate.getDependencyManagement().addDependency(dependency);
    }

    toGenerate.getModel().setBuild(new Build());
    if (!plugins.isEmpty()) {
        toGenerate.getModel().setBuild(new Build());
        toGenerate.getModel().getBuild().setPluginManagement(new PluginManagement());
        for (Artifact artifact : plugins) {
            toGenerate.getPluginManagement().addPlugin(toPlugin(artifact));
        }
    }

    return toGenerate;
}

From source file:io.sundr.maven.GenerateBomMojo.java

License:Apache License

/**
 * Returns the generated {@link org.apache.maven.project.MavenProject} to build.
 * This version of the project contains all the stuff needed for building (parents, profiles, properties etc).
 *
 * @param project The source {@link org.apache.maven.project.MavenProject}.
 * @param config  The {@link io.sundr.maven.BomConfig}.
 * @return The build {@link org.apache.maven.project.MavenProject}.
 *//*from  w w w  .  j  a  v a2 s  .c  o m*/
private static MavenProject toBuild(MavenProject project, BomConfig config) {
    File outputDir = new File(project.getBuild().getOutputDirectory());
    File bomDir = new File(outputDir, config.getArtifactId());
    File generatedBom = new File(bomDir, BOM_NAME);

    MavenProject toBuild = project.clone();
    //we want to avoid recursive "generate-bom".
    toBuild.setExecutionRoot(false);
    toBuild.setFile(generatedBom);
    toBuild.getModel().setPomFile(generatedBom);
    toBuild.setModelVersion(project.getModelVersion());

    toBuild.setArtifact(new DefaultArtifact(project.getGroupId(), config.getArtifactId(), project.getVersion(),
            project.getArtifact().getScope(), project.getArtifact().getType(),
            project.getArtifact().getClassifier(), project.getArtifact().getArtifactHandler()));

    toBuild.setParent(project.getParent());
    toBuild.getModel().setParent(project.getModel().getParent());

    toBuild.setGroupId(project.getGroupId());
    toBuild.setArtifactId(config.getArtifactId());
    toBuild.setVersion(project.getVersion());
    toBuild.setPackaging("pom");
    toBuild.setName(config.getName());
    toBuild.setDescription(config.getDescription());

    toBuild.setUrl(project.getUrl());
    toBuild.setLicenses(project.getLicenses());
    toBuild.setScm(project.getScm());
    toBuild.setDevelopers(project.getDevelopers());
    toBuild.setDistributionManagement(project.getDistributionManagement());
    toBuild.getModel().setProfiles(project.getModel().getProfiles());

    //We want to avoid having the generated stuff wiped.
    toBuild.getProperties().put("clean.skip", "true");
    toBuild.getModel().getBuild().setDirectory(bomDir.getAbsolutePath());
    toBuild.getModel().getBuild().setOutputDirectory(new File(bomDir, "target").getAbsolutePath());
    for (String key : config.getProperties().stringPropertyNames()) {
        toBuild.getProperties().put(key, config.getProperties().getProperty(key));
    }
    return toBuild;
}