List of usage examples for org.apache.maven.model.building ModelBuildingRequest setModelResolver
ModelBuildingRequest setModelResolver(ModelResolver modelResolver);
From source file:biz.itcf.maven.plugins.dependencytransfer.TransferMojo.java
License:Apache License
private ArtifactResult resolveParent(Artifact pomArtifact) throws MojoFailureException { try {/*from w w w . j av a 2 s .c o m*/ ModelBuildingRequest buildingRequest = new DefaultModelBuildingRequest(); buildingRequest.setModelResolver(new AvailableModelResolver(repoSession, null, null, artifactResolver, remoteRepositoryManager, projectRepos)); buildingRequest.setPomFile(pomArtifact.getFile()); buildingRequest.setTwoPhaseBuilding(false); buildingRequest.setSystemProperties(System.getProperties()); buildingRequest.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); ModelBuildingResult build = modelBuilder.build(buildingRequest); Parent dependencyParent = build.getRawModel().getParent(); if (dependencyParent != null) { ArtifactRequest parentArtifactRequest = new ArtifactRequest(); parentArtifactRequest.setArtifact(new DefaultArtifact(dependencyParent.getGroupId(), dependencyParent.getArtifactId(), "pom", dependencyParent.getVersion())); parentArtifactRequest.setRepositories(projectRepos); return repoSystem.resolveArtifact(repoSession, parentArtifactRequest); } else { return null; } } catch (ArtifactResolutionException e) { throw new MojoFailureException("Could not resolve parent artifact.", e); } catch (ModelBuildingException e) { throw new MojoFailureException("Could not build Maven model for given artifact.", e); } }
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);/* ww w .j ava 2s . c om*/ req.setModelResolver(new RepoModelResolver()); req.setPomFile(pom); return builder.build(req).getEffectiveModel(); }
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 ww . ja v a2 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. * /* ww w .j a va 2 s . c o 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.tobedevoured.naether.maven.Project.java
License:Apache License
/** * Load Maven pom/* ww w .ja v a2 s . c om*/ * * @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);/*from w w w . j av a2 s. com*/ 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:io.tesla.aether.internal.DefaultTeslaAether.java
License:Open Source License
public Model resolveModel(File pom) throws ModelBuildingException { RequestTrace trace = new RequestTrace(pom); ModelBuildingRequest modelRequest = new DefaultModelBuildingRequest(); modelRequest.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); modelRequest.setProcessPlugins(false); modelRequest.setTwoPhaseBuilding(false); modelRequest.setSystemProperties(toProperties(session.getUserProperties(), session.getSystemProperties())); ///*from w ww. j av a 2s .co m*/ // The model cache and default model resolver should be injected // modelRequest.setModelCache(new DefaultModelCache()); modelRequest.setModelResolver(new DefaultModelResolver(session, trace.newChild(modelRequest), "bithub", artifactResolver, remoteRepositoryManager, remoteRepositories)); modelRequest.setPomFile(pom); return modelBuilder.build(modelRequest).getEffectiveModel(); }
From source file:io.tesla.maven.bridge.support.model.internal.MavenModelResolverSupport.java
License:Open Source License
@Override public Model resolveModel(final ModelBuildingRequest request, final RepositorySystemSession session, final RemoteRepository... repositories) throws ModelBuildingException { assertNotNull(session, session.getClass()); request.setModelResolver(new ModelResolverProxy(session, repositories)); if (request.getModelSource() instanceof ArtifactModelSource) { final ArtifactModelSource source = (ArtifactModelSource) request.getModelSource(); source.resolver = new ModelResolverProxy(session, repositories); }/*from ww w. ja v a 2s . co m*/ final ModelBuildingResult modelResult = modelBuilder.build(request); return modelResult.getEffectiveModel(); }
From source file:org.apache.archiva.metadata.repository.storage.maven2.Maven2RepositoryStorage.java
License:Apache License
@Override public ProjectVersionMetadata readProjectVersionMetadata(ReadMetadataRequest readMetadataRequest) throws RepositoryStorageMetadataNotFoundException, RepositoryStorageMetadataInvalidException, RepositoryStorageRuntimeException { try {//from w ww . j a va 2 s .co m ManagedRepository managedRepository = managedRepositoryAdmin .getManagedRepository(readMetadataRequest.getRepositoryId()); String artifactVersion = readMetadataRequest.getProjectVersion(); // olamy: in case of browsing via the ui we can mix repos (parent of a SNAPSHOT can come from release repo) if (!readMetadataRequest.isBrowsingRequest()) { if (VersionUtil.isSnapshot(artifactVersion)) { // skygo trying to improve speed by honoring managed configuration MRM-1658 if (managedRepository.isReleases() && !managedRepository.isSnapshots()) { throw new RepositoryStorageRuntimeException("lookforsnaponreleaseonly", "managed repo is configured for release only"); } } else { if (!managedRepository.isReleases() && managedRepository.isSnapshots()) { throw new RepositoryStorageRuntimeException("lookforsreleaseonsneponly", "managed repo is configured for snapshot only"); } } } File basedir = new File(managedRepository.getLocation()); if (VersionUtil.isSnapshot(artifactVersion)) { File metadataFile = pathTranslator.toFile(basedir, readMetadataRequest.getNamespace(), readMetadataRequest.getProjectId(), artifactVersion, METADATA_FILENAME); try { ArchivaRepositoryMetadata metadata = MavenMetadataReader.read(metadataFile); // re-adjust to timestamp if present, otherwise retain the original -SNAPSHOT filename SnapshotVersion snapshotVersion = metadata.getSnapshotVersion(); if (snapshotVersion != null) { artifactVersion = artifactVersion.substring(0, artifactVersion.length() - 8); // remove SNAPSHOT from end artifactVersion = artifactVersion + snapshotVersion.getTimestamp() + "-" + snapshotVersion.getBuildNumber(); } } catch (XMLException e) { // unable to parse metadata - LOGGER it, and continue with the version as the original SNAPSHOT version LOGGER.warn("Invalid metadata: {} - {}", metadataFile, e.getMessage()); } } // TODO: won't work well with some other layouts, might need to convert artifact parts to ID by path translator String id = readMetadataRequest.getProjectId() + "-" + artifactVersion + ".pom"; File file = pathTranslator.toFile(basedir, readMetadataRequest.getNamespace(), readMetadataRequest.getProjectId(), readMetadataRequest.getProjectVersion(), id); if (!file.exists()) { // metadata could not be resolved throw new RepositoryStorageMetadataNotFoundException( "The artifact's POM file '" + file.getAbsolutePath() + "' was missing"); } // TODO: this is a workaround until we can properly resolve using proxies as well - this doesn't cache // anything locally! List<RemoteRepository> remoteRepositories = new ArrayList<>(); Map<String, NetworkProxy> networkProxies = new HashMap<>(); Map<String, List<ProxyConnector>> proxyConnectorsMap = proxyConnectorAdmin.getProxyConnectorAsMap(); List<ProxyConnector> proxyConnectors = proxyConnectorsMap.get(readMetadataRequest.getRepositoryId()); if (proxyConnectors != null) { for (ProxyConnector proxyConnector : proxyConnectors) { RemoteRepository remoteRepoConfig = remoteRepositoryAdmin .getRemoteRepository(proxyConnector.getTargetRepoId()); if (remoteRepoConfig != null) { remoteRepositories.add(remoteRepoConfig); NetworkProxy networkProxyConfig = networkProxyAdmin .getNetworkProxy(proxyConnector.getProxyId()); if (networkProxyConfig != null) { // key/value: remote repo ID/proxy info networkProxies.put(proxyConnector.getTargetRepoId(), networkProxyConfig); } } } } // That's a browsing request so we can a mix of SNAPSHOT and release artifacts (especially with snapshots which // can have released parent pom if (readMetadataRequest.isBrowsingRequest()) { remoteRepositories.addAll(remoteRepositoryAdmin.getRemoteRepositories()); } ModelBuildingRequest req = new DefaultModelBuildingRequest().setProcessPlugins(false).setPomFile(file) .setTwoPhaseBuilding(false).setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); //MRM-1607. olamy this will resolve jdk profiles on the current running archiva jvm req.setSystemProperties(System.getProperties()); // MRM-1411 req.setModelResolver(new RepositoryModelResolver(managedRepository, pathTranslator, wagonFactory, remoteRepositories, networkProxies, managedRepository)); Model model; try { model = builder.build(req).getEffectiveModel(); } catch (ModelBuildingException e) { String msg = "The artifact's POM file '" + file + "' was invalid: " + e.getMessage(); List<ModelProblem> modelProblems = e.getProblems(); for (ModelProblem problem : modelProblems) { // MRM-1411, related to MRM-1335 // this means that the problem was that the parent wasn't resolved! // olamy really hackhish but fail with java profile so use error message // || ( StringUtils.startsWith( problem.getMessage(), "Failed to determine Java version for profile" ) ) // but setTwoPhaseBuilding(true) fix that if ((problem.getException() instanceof FileNotFoundException && e.getModelId() != null && !e.getModelId().equals(problem.getModelId()))) { LOGGER.warn("The artifact's parent POM file '{}' cannot be resolved. " + "Using defaults for project version metadata..", file); ProjectVersionMetadata metadata = new ProjectVersionMetadata(); metadata.setId(readMetadataRequest.getProjectVersion()); MavenProjectFacet facet = new MavenProjectFacet(); facet.setGroupId(readMetadataRequest.getNamespace()); facet.setArtifactId(readMetadataRequest.getProjectId()); facet.setPackaging("jar"); metadata.addFacet(facet); String errMsg = "Error in resolving artifact's parent POM file. " + (problem.getException() == null ? problem.getMessage() : problem.getException().getMessage()); RepositoryProblemFacet repoProblemFacet = new RepositoryProblemFacet(); repoProblemFacet.setRepositoryId(readMetadataRequest.getRepositoryId()); repoProblemFacet.setId(readMetadataRequest.getRepositoryId()); repoProblemFacet.setMessage(errMsg); repoProblemFacet.setProblem(errMsg); repoProblemFacet.setProject(readMetadataRequest.getProjectId()); repoProblemFacet.setVersion(readMetadataRequest.getProjectVersion()); repoProblemFacet.setNamespace(readMetadataRequest.getNamespace()); metadata.addFacet(repoProblemFacet); return metadata; } } throw new RepositoryStorageMetadataInvalidException("invalid-pom", msg, e); } // Check if the POM is in the correct location boolean correctGroupId = readMetadataRequest.getNamespace().equals(model.getGroupId()); boolean correctArtifactId = readMetadataRequest.getProjectId().equals(model.getArtifactId()); boolean correctVersion = readMetadataRequest.getProjectVersion().equals(model.getVersion()); if (!correctGroupId || !correctArtifactId || !correctVersion) { StringBuilder message = new StringBuilder("Incorrect POM coordinates in '" + file + "':"); if (!correctGroupId) { message.append("\nIncorrect group ID: ").append(model.getGroupId()); } if (!correctArtifactId) { message.append("\nIncorrect artifact ID: ").append(model.getArtifactId()); } if (!correctVersion) { message.append("\nIncorrect version: ").append(model.getVersion()); } throw new RepositoryStorageMetadataInvalidException("mislocated-pom", message.toString()); } ProjectVersionMetadata metadata = new ProjectVersionMetadata(); metadata.setCiManagement(convertCiManagement(model.getCiManagement())); metadata.setDescription(model.getDescription()); metadata.setId(readMetadataRequest.getProjectVersion()); metadata.setIssueManagement(convertIssueManagement(model.getIssueManagement())); metadata.setLicenses(convertLicenses(model.getLicenses())); metadata.setMailingLists(convertMailingLists(model.getMailingLists())); metadata.setDependencies(convertDependencies(model.getDependencies())); metadata.setName(model.getName()); metadata.setOrganization(convertOrganization(model.getOrganization())); metadata.setScm(convertScm(model.getScm())); metadata.setUrl(model.getUrl()); metadata.setProperties(model.getProperties()); MavenProjectFacet facet = new MavenProjectFacet(); facet.setGroupId(model.getGroupId() != null ? model.getGroupId() : model.getParent().getGroupId()); facet.setArtifactId(model.getArtifactId()); facet.setPackaging(model.getPackaging()); if (model.getParent() != null) { MavenProjectParent parent = new MavenProjectParent(); parent.setGroupId(model.getParent().getGroupId()); parent.setArtifactId(model.getParent().getArtifactId()); parent.setVersion(model.getParent().getVersion()); facet.setParent(parent); } metadata.addFacet(facet); return metadata; } catch (RepositoryAdminException e) { throw new RepositoryStorageRuntimeException("repo-admin", e.getMessage(), e); } }
From source file:org.jboss.maven.extension.dependency.resolver.EffectiveModelBuilder.java
License:Apache License
/** * Build the effective model for the given pom file * * @param pomFile//from w w w .j a v a 2 s .c o m * @return effective pom model * @throws ModelBuildingException */ private Model buildModel(File pomFile, ModelResolver modelResolver) throws ModelBuildingException { ModelBuildingRequest request = new DefaultModelBuildingRequest(); request.setPomFile(pomFile); request.setModelResolver(modelResolver); request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0); request.setTwoPhaseBuilding(false); // Resolve the complete model in one step request.setSystemProperties(System.getProperties()); ModelBuildingResult result = modelBuilder.build(request); return result.getEffectiveModel(); }