Example usage for org.apache.maven.model.building DefaultModelBuilderFactory DefaultModelBuilderFactory

List of usage examples for org.apache.maven.model.building DefaultModelBuilderFactory DefaultModelBuilderFactory

Introduction

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

Prototype

DefaultModelBuilderFactory

Source Link

Usage

From source file:com.buschmais.jqassistant.plugin.m2repo.impl.scanner.EffectiveModelBuilder.java

@Override
public Model getModel(final File pomFile) throws IOException {
    DefaultModelBuilder builder = new DefaultModelBuilderFactory().newInstance();
    ModelBuildingRequest req = new DefaultModelBuildingRequest();
    req.setProcessPlugins(false);//from w w  w  . ja  va2  s .  co  m
    req.setPomFile(pomFile);
    req.setModelResolver(modelResolver);
    req.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
    req.setSystemProperties(System.getProperties());
    builder.setModelValidator(new ModelValidatorImpl());
    try {
        return builder.build(req).getEffectiveModel();
    } catch (ModelBuildingException e) {
        LOGGER.warn("Cannot build effective model for " + pomFile.getAbsolutePath(), e);
        return new EffectiveModel(rawModelBuilder.getModel(pomFile));
    }
}

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

License:Apache License

/**
 * Resolve the effective Maven model (pom) for a POM file.
 * //w ww  .  ja v  a 2s. 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:com.google.devtools.build.workspace.maven.DefaultModelResolver.java

License:Open Source License

public DefaultModelResolver() {
    repositories = Sets.newHashSet();//from   w  ww.j av  a2 s  .  c  o m
    repositories.add(MavenConnector.getMavenCentral());
    ruleNameToModelSource = Maps.newHashMap();
    modelBuilder = new DefaultModelBuilderFactory().newInstance()
            .setProfileSelector(new DefaultProfileSelector())
            .setPluginConfigurationExpander(new DefaultPluginConfigurationExpander())
            .setPluginManagementInjector(new DefaultPluginManagementInjector())
            .setDependencyManagementImporter(new DefaultDependencyManagementImporter())
            .setDependencyManagementInjector(new DefaultDependencyManagementInjector());
}

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;
        }//  w  w  w.  j  av a2s  . c  om

        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.tobedevoured.naether.maven.Project.java

License:Apache License

/**
 * Load Maven pom//from  w  w  w  .  j  a v a  2  s .c o m
 *
 * @param pomPath String path
 * @param localRepo String
 * @param repositories {@link Collection<RemoteRepository>}
 * @return {@link Model}
 * @throws ProjectException if fails to open, read, or parse the POM
 */
public static Model loadPOM(String pomPath, String localRepo, Collection<RemoteRepository> repositories)
        throws ProjectException {
    RepositoryClient repoClient = new RepositoryClient(localRepo);
    NaetherModelResolver resolver = new NaetherModelResolver(repoClient, repositories);

    ModelBuildingRequest req = new DefaultModelBuildingRequest();
    req.setProcessPlugins(false);
    req.setPomFile(new File(pomPath));
    req.setModelResolver(resolver);
    req.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);

    DefaultModelBuilder builder = (new DefaultModelBuilderFactory()).newInstance();
    try {
        return builder.build(req).getEffectiveModel();
    } catch (ModelBuildingException e) {
        throw new ProjectException("Failed to build project from pom", e);
    }
}

From source file:fr.inria.spirals.repairnator.process.maven.MavenHelper.java

public static Model readPomXml(File pomXml, String localMavenRepository) {
    ModelBuildingRequest req = new DefaultModelBuildingRequest();
    req.setProcessPlugins(true);// www. j a v a 2 s  .  c  o  m
    req.setPomFile(pomXml);
    req.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
    req.setModelResolver(new RepositoryModelResolver(localMavenRepository));

    DefaultModelBuilder defaultModelBuilder = new DefaultModelBuilderFactory().newInstance();

    // we try to build the model, and if we fail, we try to get the raw model
    try {
        ModelBuildingResult modelBuildingResult = defaultModelBuilder.build(req);
        return modelBuildingResult.getEffectiveModel();
    } catch (ModelBuildingException e) {
        LOGGER.error("Error while building complete model. The raw model will be used. Error message: "
                + e.getMessage());
        return defaultModelBuilder.buildRawModel(pomXml, ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL, true)
                .get();
    }

}

From source file:illarion.download.maven.MavenDownloader.java

License:Open Source License

private void setupServiceLocator() {
    serviceLocator.addService(ArtifactDescriptorReader.class, DefaultArtifactDescriptorReader.class);

    serviceLocator.addService(VersionResolver.class, DefaultVersionResolver.class);
    serviceLocator.addService(VersionRangeResolver.class, DefaultVersionRangeResolver.class);

    serviceLocator.addService(MetadataGeneratorFactory.class, SnapshotMetadataGeneratorFactory.class);
    serviceLocator.addService(MetadataGeneratorFactory.class, VersionsMetadataGeneratorFactory.class);

    serviceLocator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
    serviceLocator.addService(TransporterFactory.class, HttpTransporterFactory.class);

    serviceLocator.setServices(ModelBuilder.class, new DefaultModelBuilderFactory().newInstance());
}

From source file:io.tesla.aether.guice.TeslaAetherModule.java

License:Open Source License

public void configure(Binder binder) {
    binder.install(new MavenAetherModule());
    binder.bind(ModelBuilder.class).toInstance(new DefaultModelBuilderFactory().newInstance());
    binder.bind(RemoteRepository.class).toProvider(RemoteRepositoryProvider.class);
    binder.bind(RepositorySystem.class).toProvider(RepositorySystemProvider.class);
    binder.bind(RepositorySystemSession.class).toProvider(RepositorySystemSessionProvider.class);
}

From source file:io.tesla.aether.internal.DefaultTeslaAether.java

License:Open Source License

public DefaultTeslaAether(List<RemoteRepository> remoteRepositories,
        RepositorySystemSession repositorySystemSession) {
    DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
    locator.addService(RepositoryConnectorFactory.class, FileRepositoryConnectorFactory.class);
    locator.addService(RepositoryConnectorFactory.class, AetherRepositoryConnectorFactory.class);
    locator.addService(FileProcessor.class, DefaultFileProcessor.class);

    this.system = locator.getService(RepositorySystem.class);
    this.session = repositorySystemSession;
    this.modelBuilder = new DefaultModelBuilderFactory().newInstance();
    this.artifactResolver = locator.getService(ArtifactResolver.class);
    this.remoteRepositoryManager = locator.getService(RemoteRepositoryManager.class);
    this.remoteRepositories = remoteRepositories;
}

From source file:io.tesla.aether.internal.DefaultTeslaAether.java

License:Open Source License

private void init(File localRepository, List<Repository> repositories) {
    remoteRepositories = new ArrayList<RemoteRepository>();
    for (Repository r : repositories) {
        RemoteRepository.Builder builder = new RemoteRepository.Builder(r.getId(), "default", r.getUrl());
        if (r.getUsername() != null && r.getPassword() != null) {
            Authentication auth = new AuthenticationBuilder().addUsername(r.getUsername())
                    .addPassword(r.getPassword()).build();
            builder.setAuthentication(auth);
        }//from  w  w w.j  a  v a2 s . c  o  m
        this.remoteRepositories.add(builder.build());
    }

    DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
    locator.addService(RepositoryConnectorFactory.class, FileRepositoryConnectorFactory.class);
    locator.addService(RepositoryConnectorFactory.class, AetherRepositoryConnectorFactory.class);
    locator.addService(FileProcessor.class, DefaultFileProcessor.class);

    this.system = locator.getService(RepositorySystem.class);
    this.session = new RepositorySystemSessionProvider(localRepository).get();
    this.modelBuilder = new DefaultModelBuilderFactory().newInstance();
    this.artifactResolver = locator.getService(ArtifactResolver.class);
    this.remoteRepositoryManager = locator.getService(RemoteRepositoryManager.class);
}