Example usage for org.apache.maven.model.building ModelBuilder build

List of usage examples for org.apache.maven.model.building ModelBuilder build

Introduction

In this page you can find the example usage for org.apache.maven.model.building ModelBuilder build.

Prototype

ModelBuildingResult build(ModelBuildingRequest request) throws ModelBuildingException;

Source Link

Document

Builds the effective model of the specified POM.

Usage

From source file:com.bennavetta.util.tycho.maven.Maven.java

License:Apache License

public static Model createModel(File pom) throws ModelBuildingException, ComponentLookupException {
    ModelBuilder builder = mavenContainer.lookup(ModelBuilder.class);
    ModelBuildingRequest req = new DefaultModelBuildingRequest();
    req.setProcessPlugins(false);/*from w w w .j  a  va  2s  . c o m*/
    req.setModelResolver(new RepoModelResolver());
    req.setPomFile(pom);
    return builder.build(req).getEffectiveModel();
}

From source file:com.facebook.buck.maven.Pom.java

License:Apache License

private Model constructModel() throws IOException {
    File file = path.toFile();//w w  w  .jav a2s.c  om
    if (file.isFile()) {
        ModelBuildingRequest modelBuildingRequest = new DefaultModelBuildingRequest().setPomFile(file);
        ModelBuilder modelBuilder = MODEL_BUILDER_FACTORY.newInstance();
        try {
            ModelBuildingResult modelBuildingResult = modelBuilder.build(modelBuildingRequest);

            // Would contain extra stuff: <build/>, <repositories/>, <pluginRepositories/>, <reporting/>
            // model = modelBuildingResult.getEffectiveModel();

            return Preconditions.checkNotNull(modelBuildingResult.getRawModel());
        } catch (ModelBuildingException e) {
            throw Throwables.propagate(e);
        }
    } else {
        Model model = new Model();
        model.setModelVersion(POM_MODEL_VERSION);
        return model;
    }
}

From source file:com.github.nethad.clustermeister.provisioning.dependencymanager.MavenRepositorySystem.java

License:Apache License

/**
 * Resolve the effective Maven model (pom) for a POM file.
 * //from   ww  w . j  a  v a2  s  .  co m
 * This resolves the POM hierarchy (parents and modules) and creates an 
 * overall model.
 * 
 * @param pom the POM file to resolve.
 * @return the effective model.
 */
protected Model getEffectiveModel(File pom) {
    ModelBuildingRequest req = new DefaultModelBuildingRequest();
    req.setProcessPlugins(false);
    req.setPomFile(pom);
    req.setModelResolver(new SimpleModelResolver(repositorySystem, createSession(),
            getRepositories(Collections.EMPTY_LIST)));
    req.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);

    ModelBuilder builder = new DefaultModelBuilderFactory().newInstance();
    try {
        return builder.build(req).getEffectiveModel();
    } catch (ModelBuildingException ex) {
        logger.warn("Could not build maven model.", ex);
    }

    return new Model();
}

From source file:org.jboss.forge.addon.maven.projects.MavenBuildManager.java

License:Open Source License

public ModelBuildingResult getModelBuildingResult(MavenModelResource pomResource)
        throws ModelBuildingException {
    ModelBuildingResult result = cacheModel.get(pomResource.getFullyQualifiedName());
    if (result == null) {
        ModelBuilder builder = getModelBuilder();
        DefaultModelBuildingRequest request = getModelBuildingRequest();
        boolean inTransaction = !pomResource.getUnderlyingResourceObject().exists();
        // FORGE-1287
        if (inTransaction) {
            // If under a transaction, don't start monitoring
            request.setModelSource(new FileResourceModelSource(pomResource));
        } else {/*w  w w .ja va  2 s.  c  om*/
            request.setPomFile(pomResource.getUnderlyingResourceObject());
            monitorResource(pomResource);
        }
        result = builder.build(request);
        cacheModel.put(pomResource.getFullyQualifiedName(), result);
    }
    return result;
}

From source file:org.jboss.forge.arquillian.maven.ProjectHelper.java

License:Open Source License

public Model loadPomFromFile(File pomFile, String... profiles) {
    RepositorySystem system = mavenContainer.getRepositorySystem();
    Settings settings = mavenContainer.getSettings();
    DefaultRepositorySystemSession session = mavenContainer.setupRepoSession(system, settings);
    final DefaultModelBuildingRequest request = new DefaultModelBuildingRequest()
            .setSystemProperties(System.getProperties()).setPomFile(pomFile)
            .setActiveProfileIds(settings.getActiveProfiles());
    ModelBuilder builder = new DefaultModelBuilderFactory().newInstance();
    ModelBuildingResult result;/*  w w  w .  ja v a 2 s  .c om*/
    try {
        request.setModelResolver(new MavenModelResolver(system, session,
                mavenContainer.getEnabledRepositoriesFromProfile(settings)));
        result = builder.build(request);
    }
    // wrap exception message
    catch (ModelBuildingException e) {
        String pomPath = request.getPomFile().getAbsolutePath();
        StringBuilder sb = new StringBuilder("Found ").append(e.getProblems().size())
                .append(" problems while building POM model from ").append(pomPath).append("\n");

        int counter = 1;
        for (ModelProblem problem : e.getProblems()) {
            sb.append(counter++).append("/ ").append(problem).append("\n");
        }

        throw new RuntimeException(sb.toString());
    }
    return result.getEffectiveModel();
}

From source file:org.jboss.shrinkwrap.resolver.impl.maven.MavenEnvironmentImpl.java

License:Open Source License

@Override
public MavenEnvironment execute(ModelBuildingRequest request) {

    request.setModelResolver(new MavenModelResolver(system, session, getRemoteRepositories()));

    ModelBuilder builder = new DefaultModelBuilderFactory().newInstance();
    ModelBuildingResult result;//from  w ww .j  a va2  s. c  o  m
    try {
        result = builder.build(request);
    }
    // wrap exception message
    catch (ModelBuildingException e) {
        String pomPath = request.getPomFile().getAbsolutePath();
        StringBuilder sb = new StringBuilder("Found ").append(e.getProblems().size())
                .append(" problems while building POM model from ").append(pomPath).append("\n");

        int counter = 1;
        for (ModelProblem problem : e.getProblems()) {
            sb.append(counter++).append("/ ").append(problem).append("\n");
        }

        throw new ResolutionException(sb.toString(), e);
    }

    // get and update model
    Model model = result.getEffectiveModel();
    this.model = model;

    // update model repositories
    for (Repository repository : model.getRepositories()) {
        remoteRepositories.add(MavenConverter.asRemoteRepository(repository));
    }

    return this;
}

From source file:org.jboss.shrinkwrap.resolver.impl.maven.MavenRepositorySystem.java

License:Apache License

public Model loadPom(File pom, MavenDependencyResolverSettings settings, MavenModelResolver modelResolver)
        throws ResolutionException {
    ModelBuildingRequest request = new DefaultModelBuildingRequest();
    request.setPomFile(pom);//from w w  w . ja  v a2 s. c  o m
    request.setModelResolver(modelResolver);

    ModelBuilder builder = new DefaultModelBuilderFactory().newInstance();
    ModelBuildingResult result;
    try {
        result = builder.build(request);
    }
    // wrap exception message
    catch (ModelBuildingException e) {
        StringBuilder sb = new StringBuilder("Found ").append(e.getProblems().size())
                .append(" problems while building POM model from ").append(pom.getAbsolutePath());

        int counter = 1;
        for (ModelProblem problem : e.getProblems()) {
            sb.append(counter++).append("/ ").append(problem).append("\n");
        }

        throw new ResolutionException(sb.toString(), e);
    }

    Model model = result.getEffectiveModel();
    settings.setModelRemoteRepositories(model);
    return model;

}

From source file:org.jboss.shrinkwrap.resolver.impl.maven.MavenWorkingSessionImpl.java

License:Apache License

@Override
public MavenWorkingSession loadPomFromFile(File pomFile, String... profiles)
        throws InvalidConfigurationFileException {

    final DefaultModelBuildingRequest request = new DefaultModelBuildingRequest()
            .setSystemProperties(SecurityActions.getProperties()).setProfiles(this.getSettingsDefinedProfiles())
            .setPomFile(pomFile)/*from   www  . java 2  s  .  co m*/
            .setActiveProfileIds(SettingsXmlProfileSelector.explicitlyActivatedProfiles(profiles))
            .setInactiveProfileIds(SettingsXmlProfileSelector.explicitlyDisabledProfiles(profiles));

    ModelBuilder builder = new DefaultModelBuilderFactory().newInstance();
    ModelBuildingResult result;
    try {
        request.setModelResolver(new MavenModelResolver(system, session, getRemoteRepositories()));
        result = builder.build(request);
    }
    // wrap exception message
    catch (ModelBuildingException e) {
        String pomPath = request.getPomFile().getAbsolutePath();
        StringBuilder sb = new StringBuilder("Found ").append(e.getProblems().size())
                .append(" problems while building POM model from ").append(pomPath).append("\n");

        int counter = 1;
        for (ModelProblem problem : e.getProblems()) {
            sb.append(counter++).append("/ ").append(problem).append("\n");
        }

        throw new InvalidConfigurationFileException(sb.toString());
    }

    // get and update model
    Model model = result.getEffectiveModel();
    this.model = model;

    // update model repositories
    for (Repository repository : model.getRepositories()) {
        remoteRepositories.add(MavenConverter.asRemoteRepository(repository));
    }

    return this;
}

From source file:org.ModelBuilderDemo.java

License:Open Source License

public static void main(String[] args) throws Exception {
    /*/*from   w ww.ja va 2 s  . com*/
     * setup the container and get us some interesting components
     */

    PlexusContainer container = new DefaultPlexusContainer();

    ModelBuilder modelBuilder = container.lookup(ModelBuilder.class);

    ModelWriter modelWriter = container.lookup(ModelWriter.class);

    /*
     * build some effective model
     */

    ModelSource modelSource = new UrlModelSource(
            ModelBuilderDemo.class.getResource("/repo/demo/dependency/1.0/pom.xml"));

    ModelBuildingRequest request = new DefaultModelBuildingRequest();

    request.setModelSource(modelSource);
    request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
    request.setSystemProperties(System.getProperties());
    request.setModelResolver(new SimpleModelResolver());

    ModelBuildingResult result = modelBuilder.build(request);

    Model effectivePom = result.getEffectiveModel();

    StringWriter writer = new StringWriter();
    modelWriter.write(writer, null, effectivePom);
    System.out.println(writer.toString());
}

From source file:org.tawja.maven.discovery.internal.MavenManager.java

License:Apache License

public Model getEffectiveModel(File pomXmlFile) {
    ModelBuilder modelBuilder = new DefaultModelBuilderFactory().newInstance();
    ModelBuildingRequest req = new DefaultModelBuildingRequest();

    Model model = null;/*  w  w w  .j ava 2s .c o  m*/

    try {
        req.setPomFile(pomXmlFile);
        req.setProcessPlugins(false);
        req.setModelResolver(getMavenModelResolver());
        req.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);

        model = modelBuilder.build(req).getEffectiveModel();
    } catch (Exception ex) {
        getLogger().error("Unable to build the Maven Model", ex);
    }

    return model;
}