Example usage for org.apache.maven.model.building DefaultModelBuildingRequest setModelResolver

List of usage examples for org.apache.maven.model.building DefaultModelBuildingRequest setModelResolver

Introduction

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

Prototype

@Override
    public DefaultModelBuildingRequest setModelResolver(ModelResolver modelResolver) 

Source Link

Usage

From source file:com.google.devtools.build.workspace.maven.DefaultModelResolver.java

License:Open Source License

public Model getEffectiveModel(ModelSource modelSource, EventHandler handler) {
    DefaultModelBuildingRequest request = new DefaultModelBuildingRequest();
    request.setModelResolver(this);
    request.setModelSource(modelSource);
    Model model;/* w ww .j a v a  2  s .  c  om*/
    try {
        ModelBuildingResult result = modelBuilder.build(request);
        model = result.getEffectiveModel();
    } catch (ModelBuildingException | IllegalArgumentException e) {
        // IllegalArg can be thrown if the parent POM cannot be resolved.
        handler.handle(Event.error(
                "Unable to resolve Maven model from " + modelSource.getLocation() + ": " + e.getMessage()));
        return null;
    }
    return model;
}

From source file:com.google.devtools.build.workspace.maven.DefaultModelResolver.java

License:Open Source License

public Model getRawModel(FileModelSource fileModelSource, EventHandler handler) {
    DefaultModelBuildingRequest request = new DefaultModelBuildingRequest();
    request.setModelResolver(this);
    request.setModelSource(fileModelSource);
    Model model;//w ww .j  a  v  a  2  s .  c  om
    try {
        ModelBuildingResult result = modelBuilder.build(request);
        model = result.getRawModel();
    } catch (ModelBuildingException | IllegalArgumentException e) {
        // IllegalArg can be thrown if the parent POM cannot be resolved.
        handler.handle(Event.error("Unable to resolve raw Maven model from " + fileModelSource.getLocation()
                + ": " + e.getMessage()));
        return null;
    }
    return model;
}

From source file:com.netflix.nebula.lint.rule.dependency.provider.MavenBomRecommendationProvider.java

License:Apache License

private Map<String, String> getMavenRecommendations()
        throws UnresolvableModelException, FileNotFoundException, ModelBuildingException {
    Map<String, String> recommendations = new HashMap<>();

    Set<File> recommendationFiles = getBomsOnConfiguration();
    for (File recommendation : recommendationFiles) {
        if (!recommendation.getName().endsWith("pom")) {
            break;
        }/*from   w w  w.  j a va  2s.co  m*/

        DefaultModelBuildingRequest request = new DefaultModelBuildingRequest();

        request.setModelResolver(new ModelResolver() {
            @Override
            public ModelSource2 resolveModel(String groupId, String artifactId, String version)
                    throws UnresolvableModelException {
                String notation = groupId + ":" + artifactId + ":" + version + "@pom";
                org.gradle.api.artifacts.Dependency dependency = project.getDependencies().create(notation);
                org.gradle.api.artifacts.Configuration configuration = project.getConfigurations()
                        .detachedConfiguration(dependency);
                try {
                    File file = configuration.getFiles().iterator().next();
                    return new SimpleModelSource(new java.io.FileInputStream(file));
                } catch (Exception e) {
                    throw new UnresolvableModelException(e, groupId, artifactId, version);
                }
            }

            @Override
            public ModelSource2 resolveModel(Dependency dependency) throws UnresolvableModelException {
                return resolveModel(dependency.getGroupId(), dependency.getArtifactId(),
                        dependency.getVersion());
            }

            @Override
            public ModelSource2 resolveModel(Parent parent) throws UnresolvableModelException {
                return resolveModel(parent.getGroupId(), parent.getArtifactId(), parent.getVersion());
            }

            @Override
            public void addRepository(Repository repository) throws InvalidRepositoryException {
                // do nothing
            }

            @Override
            public void addRepository(Repository repository, boolean bool) throws InvalidRepositoryException {
                // do nothing
            }

            @Override
            public ModelResolver newCopy() {
                return this; // do nothing
            }
        });
        request.setModelSource(new SimpleModelSource(new java.io.FileInputStream(recommendation)));
        request.setSystemProperties(System.getProperties());

        DefaultModelBuilder modelBuilder = new DefaultModelBuilderFactory().newInstance();
        modelBuilder.setModelInterpolator(new ProjectPropertiesModelInterpolator(project));

        ModelBuildingResult result = modelBuilder.build(request);
        log.info("using bom: " + result.getEffectiveModel().getId());
        Model model = result.getEffectiveModel();
        if (model == null) {
            break;
        }
        org.apache.maven.model.DependencyManagement dependencyManagement = model.getDependencyManagement();
        if (dependencyManagement == null) {
            break;
        }
        for (Dependency d : dependencyManagement.getDependencies()) {
            recommendations.put(d.getGroupId() + ":" + d.getArtifactId(), d.getVersion()); // overwrites previous values
        }
    }
    return recommendations;
}

From source file:com.redhat.rcm.version.mgr.VersionManager.java

License:Open Source License

private synchronized ModelBuildingRequest newModelBuildingRequest(final File pom,
        final VersionManagerSession session) {
    if (baseMbr == null) {
        final DefaultModelBuildingRequest mbr = new DefaultModelBuildingRequest();
        mbr.setSystemProperties(System.getProperties());
        mbr.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
        mbr.setProcessPlugins(false);//from w ww . j a  va 2 s  . c o m
        mbr.setLocationTracking(true);

        this.baseMbr = mbr;
    }

    final DefaultModelBuildingRequest req = new DefaultModelBuildingRequest(baseMbr);
    req.setModelSource(new FileModelSource(pom));

    final VManModelResolver resolver = new VManModelResolver(session, pom, artifactResolver,
            remoteRepositoryManager);

    req.setModelResolver(resolver);

    return req;
}

From source file:org.eclipse.aether.ant.AntRepoSys.java

License:Open Source License

public Model loadModel(Task task, File pomFile, boolean local, RemoteRepositories remoteRepositories) {
    RepositorySystemSession session = getSession(task, null);

    remoteRepositories = remoteRepositories == null ? AetherUtils.getDefaultRepositories(project)
            : remoteRepositories;//from   w  w w .  j  a v a  2  s .co m

    List<org.eclipse.aether.repository.RemoteRepository> repositories = ConverterUtils
            .toRepositories(task.getProject(), session, remoteRepositories, getRemoteRepoMan());

    ModelResolver modelResolver = new AntModelResolver(session, "project", getSystem(), getRemoteRepoMan(),
            repositories);

    Settings settings = getSettings();

    try {
        DefaultModelBuildingRequest request = new DefaultModelBuildingRequest();
        request.setLocationTracking(true);
        request.setProcessPlugins(false);
        if (local) {
            request.setPomFile(pomFile);
            request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_STRICT);
        } else {
            request.setModelSource(new FileModelSource(pomFile));
            request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
        }
        request.setSystemProperties(getSystemProperties());
        request.setUserProperties(getUserProperties());
        request.setProfiles(SettingsUtils.convert(settings.getProfiles()));
        request.setActiveProfileIds(settings.getActiveProfiles());
        request.setModelResolver(modelResolver);
        return modelBuilder.build(request).getEffectiveModel();
    } catch (ModelBuildingException e) {
        throw new BuildException("Could not load POM " + pomFile + ": " + e.getMessage(), e);
    }
}

From source file:org.eclipse.ebr.maven.ModelUtil.java

License:Open Source License

public Model buildEffectiveModel(final File pomFile) throws MojoExecutionException {
    getLog().debug(format("Building effective model for pom '%s'.", pomFile));

    final DefaultModelBuildingRequest request = new DefaultModelBuildingRequest();
    request.setModelResolver(getModelResolver());
    request.setPomFile(pomFile);//from  ww  w. j  ava  2  s  .c o  m
    request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
    request.setProcessPlugins(false);
    request.setTwoPhaseBuilding(false);
    request.setUserProperties(getMavenSession().getUserProperties());
    request.setSystemProperties(getMavenSession().getSystemProperties());
    if (getLog().isDebugEnabled()) {
        getLog().debug("Request: " + request);
    }

    ModelBuildingResult result;
    try {
        result = modelBuilder.build(request);
    } catch (final ModelBuildingException e) {
        getLog().debug(e);
        throw new MojoExecutionException(
                format("Unable to build model for pom '%s'. %s", pomFile, e.getMessage()));
    }

    if (getLog().isDebugEnabled()) {
        getLog().debug("Result: " + result);
    }

    return result.getEffectiveModel();
}

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;//from  www  . j  a  v  a  2 s  .  co  m
    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.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   w  w w .  ja v a 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.sonatype.aether.ant.AntRepoSys.java

License:Open Source License

public Model loadModel(Task task, File pomFile, boolean local, RemoteRepositories remoteRepositories) {
    RepositorySystemSession session = getSession(task, null);

    remoteRepositories = remoteRepositories == null ? AetherUtils.getDefaultRepositories(project)
            : remoteRepositories;/* ww w . j a  va  2  s  .co m*/

    List<org.sonatype.aether.repository.RemoteRepository> repositories = ConverterUtils
            .toRepositories(task.getProject(), session, remoteRepositories, getRemoteRepoMan());

    ModelResolver modelResolver = new AntModelResolver(session, "project", getSystem(), getRemoteRepoMan(),
            repositories);

    Settings settings = getSettings();

    try {
        DefaultModelBuildingRequest request = new DefaultModelBuildingRequest();
        request.setLocationTracking(true);
        request.setProcessPlugins(false);
        if (local) {
            request.setPomFile(pomFile);
            request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_STRICT);
        } else {
            request.setModelSource(new FileModelSource(pomFile));
            request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
        }
        request.setSystemProperties(getSystemProperties());
        request.setUserProperties(getUserProperties());
        request.setProfiles(SettingsUtils.convert(settings.getProfiles()));
        request.setActiveProfileIds(settings.getActiveProfiles());
        request.setModelResolver(modelResolver);
        return modelBuilder.build(request).getEffectiveModel();
    } catch (ModelBuildingException e) {
        throw new BuildException("Could not load POM " + pomFile + ": " + e.getMessage(), e);
    }
}

From source file:org.springframework.boot.cli.compiler.DependencyManagementBomTransformation.java

License:Apache License

private void updateDependencyResolutionContext(List<Map<String, String>> bomDependencies) {
    URI[] uris = Grape.getInstance().resolve(null, bomDependencies.toArray(new Map[bomDependencies.size()]));
    DefaultModelBuilder modelBuilder = new DefaultModelBuilderFactory().newInstance();
    for (URI uri : uris) {
        try {/*w  ww.j  a  v  a 2  s. c om*/
            DefaultModelBuildingRequest request = new DefaultModelBuildingRequest();
            request.setModelResolver(new GrapeModelResolver());
            request.setModelSource(new UrlModelSource(uri.toURL()));
            request.setSystemProperties(System.getProperties());
            Model model = modelBuilder.build(request).getEffectiveModel();
            this.resolutionContext.addDependencyManagement(new MavenModelDependencyManagement(model));
        } catch (Exception ex) {
            throw new IllegalStateException("Failed to build model for '" + uri + "'. Is it a valid Maven bom?",
                    ex);
        }
    }
}