List of usage examples for org.apache.maven.model.building ModelBuildingRequest setSystemProperties
ModelBuildingRequest setSystemProperties(Properties systemProperties);
From source file:biz.itcf.maven.plugins.dependencytransfer.TransferMojo.java
License:Apache License
private ArtifactResult resolveParent(Artifact pomArtifact) throws MojoFailureException { try {/*w w w.j ava2 s . c om*/ 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.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 www . jav a 2s . c o 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: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 ww w . ja v a2s .c o 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:org.apache.archiva.metadata.repository.storage.maven2.Maven2RepositoryStorage.java
License:Apache License
@Override public ProjectVersionMetadata readProjectVersionMetadata(ReadMetadataRequest readMetadataRequest) throws RepositoryStorageMetadataNotFoundException, RepositoryStorageMetadataInvalidException, RepositoryStorageRuntimeException { try {//from ww w. jav a2s . c om 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 ww w . j ava2 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(); }
From source file:org.ModelBuilderDemo.java
License:Open Source License
public static void main(String[] args) throws Exception { /*//from www . java 2s . c o m * 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.sonatype.sisu.maven.bridge.internal.DefaultMavenBridge.java
License:Open Source License
public Model buildModel(File pom, Repository... repositories) throws ModelBuildingException { ModelResolver mr = modelResolver.newCopy(); if (repositories != null) { for (Repository repository : repositories) { try { mr.addRepository(repository); } catch (InvalidRepositoryException e) { logger.warn(String.format("Could not use repository [%s]", repository.getUrl()), e); }/* w ww . j a va 2s . com*/ } } ModelBuildingRequest modelRequest = new DefaultModelBuildingRequest(); modelRequest.setModelSource(new FileModelSource(pom)); modelRequest.setSystemProperties(System.getProperties()); modelRequest.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); modelRequest.setLocationTracking(false); modelRequest.setProcessPlugins(false); modelRequest.setModelResolver(mr); ModelBuildingResult modelResult = modelBuilder.build(modelRequest); Model model = modelResult.getEffectiveModel(); return model; }
From source file:org.talend.components.api.service.internal.ComponentServiceImpl.java
License:Open Source License
Model loadPom(final InputStream pomStream, MavenBooter booter, List<String> profilesList) throws ModelBuildingException { RepositorySystem system = booter.newRepositorySystem(); RepositorySystemSession session = booter.newRepositorySystemSession(system); ModelBuildingRequest modelRequest = new DefaultModelBuildingRequest(); modelRequest.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); modelRequest.setProcessPlugins(false); modelRequest.setTwoPhaseBuilding(false); modelRequest.setSystemProperties(toProperties(session.getUserProperties(), session.getSystemProperties())); // modelRequest.setModelCache( DefaultModelCache.newInstance( session ) ); ProjectModelResolver projectModelResolver = new ProjectModelResolver(session, null, system, new DefaultRemoteRepositoryManager(), booter.getRemoteRepositoriesWithAuthentification(system, session), null, null); modelRequest.setModelResolver(projectModelResolver); modelRequest.setActiveProfileIds(profilesList); modelRequest.setModelSource(new ModelSource() { @Override/*from ww w. ja v a 2s .c o m*/ public InputStream getInputStream() throws IOException { return pomStream; } @Override public String getLocation() { return "";// FIXME return the component name } }); if (modelBuilder == null) { modelBuilder = new DefaultModelBuilderFactory().newInstance(); } ModelBuildingResult builtModel = modelBuilder.build(modelRequest); LOGGER.debug("built problems:" + builtModel.getProblems()); return builtModel.getEffectiveModel(); }