List of usage examples for org.apache.maven.execution MavenExecutionRequestPopulator populateDefaults
MavenExecutionRequest populateDefaults(MavenExecutionRequest request)
throws MavenExecutionRequestPopulationException;
From source file:com.ruleoftech.markdown.page.generator.plugin.BetterAbstractMojoTestCase.java
protected MavenSession newMavenSession() { try {/* w w w.j a v a 2s. co m*/ MavenExecutionRequest request = new DefaultMavenExecutionRequest(); MavenExecutionResult result = new DefaultMavenExecutionResult(); // populate sensible defaults, including repository basedir and remote repos MavenExecutionRequestPopulator populator; populator = getContainer().lookup(MavenExecutionRequestPopulator.class); populator.populateDefaults(request); // this is needed to allow java profiles to get resolved; i.e. avoid during project builds: // [ERROR] Failed to determine Java version for profile java-1.5-detected @ org.apache.commons:commons-parent:22, /Users/alex/.m2/repository/org/apache/commons/commons-parent/22/commons-parent-22.pom, line 909, column 14 request.setSystemProperties(System.getProperties()); // and this is needed so that the repo session in the maven session // has a repo manager, and it points at the local repo // (cf MavenRepositorySystemUtils.newSession() which is what is otherwise done) DefaultMaven maven = (DefaultMaven) getContainer().lookup(Maven.class); DefaultRepositorySystemSession repoSession = (DefaultRepositorySystemSession) maven .newRepositorySession(request); repoSession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory().newInstance(repoSession, new LocalRepository(request.getLocalRepository().getBasedir()))); @SuppressWarnings("deprecation") MavenSession session = new MavenSession(getContainer(), repoSession, request, result); return session; } catch (Exception e) { throw new RuntimeException(e); } }
From source file:com.vladsch.flexmark.page.generator.plugin.BetterAbstractMojoTestCase.java
protected MavenSession newMavenSession() { try {//from ww w . ja va 2 s . c o m MavenExecutionRequest request = new DefaultMavenExecutionRequest(); MavenExecutionResult result = new DefaultMavenExecutionResult(); // populate sensible defaults, including repository basedir and remote repos MavenExecutionRequestPopulator populator; populator = getContainer().lookup(MavenExecutionRequestPopulator.class); populator.populateDefaults(request); // this is needed to allow java profiles to get resolved; i.e. avoid during project builds: // [ERROR] Failed to determine Java version for profile java-1.5-detected @ org.apache.commons:commons-parent:22, /Users/alex/.m2/repository/org/apache/commons/commons-parent/22/commons-parent-22.pom, line 909, column 14 request.setSystemProperties(System.getProperties()); // and this is needed so that the repo session in the maven session // has a repo manager, and it points at the local repo // (cf MavenRepositorySystemUtils.newSession() which is what is otherwise done) DefaultMaven maven = (DefaultMaven) getContainer().lookup(Maven.class); DefaultRepositorySystemSession repoSession = (DefaultRepositorySystemSession) maven .newRepositorySession(request); repoSession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory().newInstance(repoSession, new LocalRepository(request.getLocalRepository().getBasedir()))); @SuppressWarnings("deprecation") MavenSession session = new MavenSession(getContainer(), repoSession, request, result); return session; } catch (Exception e) { throw new RuntimeException(e); } }
From source file:info.debatty.sparkpackages.maven.plugin.MojoTestCase.java
License:Open Source License
/** * Create an instance of Mojo corresponding to the provided goal. * The Mojo will be configured according to values provided in the pom. * @param pom/* w w w. j a v a 2 s .c o m*/ * @param goal * @return * @throws Exception if something went wrong... */ public final Mojo lookupConfiguredMojo(final File pom, final String goal) throws Exception { MavenExecutionRequest request = new DefaultMavenExecutionRequest(); MavenExecutionResult result = new DefaultMavenExecutionResult(); // populate default values for (a.o.) repository basedir and // remote repos MavenExecutionRequestPopulator populator = getContainer().lookup(MavenExecutionRequestPopulator.class); populator.populateDefaults(request); // this is needed to allow java profiles to get resolved; // i.e. avoid during project builds: // [ERROR] Failed to determine Java version for profile // java-1.5-detected request.setSystemProperties(System.getProperties()); // and this is needed so that the repo session in the maven session // has a repo manager, and it points at the local repo // (cf MavenRepositorySystemUtils.newSession() which is what is // otherwise done) DefaultMaven maven = (DefaultMaven) getContainer().lookup(Maven.class); DefaultRepositorySystemSession repo_session = (DefaultRepositorySystemSession) maven .newRepositorySession(request); repo_session.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory().newInstance(repo_session, new LocalRepository(request.getLocalRepository().getBasedir()))); @SuppressWarnings("deprecation") MavenSession session = new MavenSession(getContainer(), repo_session, request, result); ProjectBuildingRequest building_request = session.getProjectBuildingRequest(); ProjectBuilder project_builder = lookup(ProjectBuilder.class); MavenProject project = project_builder.build(pom, building_request).getProject(); return super.lookupConfiguredMojo(project, goal); }
From source file:io.takari.maven.testing.Maven30xRuntime.java
License:Open Source License
@SuppressWarnings("deprecation") protected MavenExecutionRequest newExecutionRequest() throws Exception { // system properties Properties buildProperties = getMavenBuildProperties(); String mavenVersion = buildProperties.getProperty("version"); Properties systemProperties = new Properties(); systemProperties.putAll(System.getProperties()); // TODO not thread safe systemProperties.setProperty("maven.version", mavenVersion); systemProperties.setProperty("maven.build.version", mavenVersion); // request with initial configuration MavenExecutionRequest request = new DefaultMavenExecutionRequest(); request.setLocalRepositoryPath(properties.getLocalRepository()); request.setUserSettingsFile(properties.getUserSettings()); request.setGlobalSettingsFile(properties.getGlobalSettings()); request.setOffline(properties.getOffline()); request.setUpdateSnapshots(properties.getUpdateSnapshots()); request.setSystemProperties(systemProperties); // read settings SettingsBuildingRequest settingsRequest = new DefaultSettingsBuildingRequest(); settingsRequest.setGlobalSettingsFile(request.getGlobalSettingsFile()); settingsRequest.setUserSettingsFile(request.getUserSettingsFile()); settingsRequest.setSystemProperties(request.getSystemProperties()); settingsRequest.setUserProperties(request.getUserProperties()); Settings settings = lookup(SettingsBuilder.class).build(settingsRequest).getEffectiveSettings(); MavenExecutionRequestPopulator populator = container.lookup(MavenExecutionRequestPopulator.class); request = populator.populateFromSettings(request, settings); return populator.populateDefaults(request); }
From source file:org.commonjava.maven.ext.cli.Cli.java
License:Apache License
private void createSession(File target, File settings) { try {/*from ww w .jav a2s . c o m*/ final DefaultContainerConfiguration config = new DefaultContainerConfiguration(); config.setClassPathScanning(PlexusConstants.SCANNING_ON); config.setComponentVisibility(PlexusConstants.GLOBAL_VISIBILITY); config.setName("PME-CLI"); PlexusContainer container = new DefaultPlexusContainer(config); pomIO = container.lookup(PomIO.class); session = container.lookup(ManipulationSession.class); manipulationManager = container.lookup(ManipulationManager.class); final MavenExecutionRequest req = new DefaultMavenExecutionRequest() .setUserProperties(System.getProperties()).setUserProperties(userProps) .setRemoteRepositories(Collections.<ArtifactRepository>emptyList()); ArtifactRepository ar = null; if (settings == null) { // No, this is not a typo. If current default is null, supply new local and global. // This function passes in settings to make it easier to test. this.settings = settings = new File(System.getProperty("user.home"), ".m2/settings.xml"); ar = new MavenArtifactRepository(); ar.setUrl("file://" + System.getProperty("user.home") + "/.m2/repository"); req.setLocalRepository(ar); } req.setUserSettingsFile(settings); req.setGlobalSettingsFile(settings); MavenExecutionRequestPopulator executionRequestPopulator = container .lookup(MavenExecutionRequestPopulator.class); executionRequestPopulator.populateFromSettings(req, parseSettings(settings)); executionRequestPopulator.populateDefaults(req); if (ar != null) { ar.setUrl("file://" + req.getLocalRepositoryPath()); } if (userProps != null && userProps.containsKey("maven.repo.local")) { if (ar == null) { ar = new MavenArtifactRepository(); } ar.setUrl("file://" + userProps.getProperty("maven.repo.local")); req.setLocalRepository(ar); } final MavenSession mavenSession = new MavenSession(container, null, req, new DefaultMavenExecutionResult()); mavenSession.getRequest().setPom(target); session.setMavenSession(mavenSession); } catch (ComponentLookupException e) { logger.debug("Caught problem instantiating ", e); System.err.println("Unable to start Cli subsystem"); System.exit(100); } catch (PlexusContainerException e) { logger.debug("Caught problem instantiating ", e); System.err.println("Unable to start Cli subsystem"); System.exit(100); } catch (SettingsBuildingException e) { logger.debug("Caught problem parsing settings file ", e); System.err.println("Unable to parse settings.xml file"); System.exit(100); } catch (MavenExecutionRequestPopulationException e) { logger.debug("Caught problem populating maven request from settings file ", e); System.err.println("Unable to create maven execution request from settings.xml file"); System.exit(100); } }
From source file:org.commonjava.maven.ext.manip.Cli.java
License:Apache License
private void createSession(File target, File settings) { try {/*from ww w.j a v a2s .c o m*/ PlexusContainer container = new DefaultPlexusContainer(); final MavenExecutionRequest req = new DefaultMavenExecutionRequest() .setUserProperties(System.getProperties()).setUserProperties(userProps) .setRemoteRepositories(Collections.<ArtifactRepository>emptyList()); if (userProps != null && userProps.containsKey("maven.repo.local")) { ArtifactRepository ar = new MavenArtifactRepository(); ar.setUrl("file://" + userProps.getProperty("maven.repo.local")); req.setLocalRepository(ar); } if (settings != null) { req.setUserSettingsFile(settings); req.setGlobalSettingsFile(settings); MavenExecutionRequestPopulator executionRequestPopulator = container .lookup(MavenExecutionRequestPopulator.class); executionRequestPopulator.populateFromSettings(req, parseSettings(settings)); executionRequestPopulator.populateDefaults(req); } final MavenSession mavenSession = new MavenSession(container, null, req, new DefaultMavenExecutionResult()); mavenSession.getRequest().setPom(target); pomIO = container.lookup(PomIO.class); session = container.lookup(ManipulationSession.class); manipulationManager = container.lookup(ManipulationManager.class); session.setMavenSession(mavenSession); } catch (ComponentLookupException e) { logger.debug("Caught problem instantiating ", e); System.err.println("Unable to start Cli subsystem"); System.exit(100); e.printStackTrace(); } catch (PlexusContainerException e) { logger.debug("Caught problem instantiating ", e); System.err.println("Unable to start Cli subsystem"); System.exit(100); } catch (SettingsBuildingException e) { logger.debug("Caught problem parsing settings file ", e); System.err.println("Unable to parse settings.xml file"); System.exit(100); } catch (MavenExecutionRequestPopulationException e) { logger.debug("Caught problem populating maven request from settings file ", e); System.err.println("Unable to create maven execution request from settings.xml file"); System.exit(100); } }
From source file:org.echocat.jomon.maven.boot.ArtifactFactory.java
License:Mozilla Public License
private MavenExecutionRequest injectDefaults(MavenExecutionRequest request, AtomicReference<PlexusContainer> containerReference, AtomicReference<DefaultMaven> oldMaven, DefaultMavenExecutionResult executionResult) throws ComponentLookupException, MavenExecutionRequestPopulationException { final MavenExecutionRequestPopulator populator = containerReference.get() .lookup(MavenExecutionRequestPopulator.class); final MavenExecutionRequest resultRequest = populator.populateDefaults(request); final RepositorySystemSession repositorySystemSession = oldMaven.get().newRepositorySession(resultRequest); resultRequest.getProjectBuildingRequest().setRepositorySession(repositorySystemSession); final MavenSession session = new MavenSession(containerReference.get(), repositorySystemSession, request, executionResult);/* w ww . j av a 2s .com*/ final LegacySupport legacySupport = containerReference.get().lookup(LegacySupport.class); legacySupport.setSession(session); return resultRequest; }
From source file:org.echocat.jomon.maven.MavenEnvironmentFactory.java
License:Mozilla Public License
@Nonnull protected MavenExecutionRequest warpExecutionRequest(@Nonnull MavenExecutionRequest request, @Nonnull PlexusContainer container) throws ComponentLookupException, MavenExecutionRequestPopulationException { final MavenExecutionRequestPopulator populator = container.lookup(MavenExecutionRequestPopulator.class); return populator.populateDefaults(request); }
From source file:org.jboss.forge.addon.maven.projects.MavenBuildManager.java
License:Open Source License
@SuppressWarnings("deprecation") private ProjectBuildingRequest getProjectBuildingRequest(final boolean offline) { ClassLoader cl = Thread.currentThread().getContextClassLoader(); try {// w w w. j a va 2 s.c om Settings settings = container.getSettings(); // TODO this needs to be configurable via .forge // TODO this reference to the M2_REPO should probably be centralized MavenExecutionRequest executionRequest = new DefaultMavenExecutionRequest(); MavenExecutionRequestPopulator populator = getPlexus().lookup(MavenExecutionRequestPopulator.class); populator.populateFromSettings(executionRequest, container.getSettings()); populator.populateDefaults(executionRequest); RepositorySystem system = getPlexus().lookup(RepositorySystem.class); ProjectBuildingRequest request = executionRequest.getProjectBuildingRequest(); ArtifactRepository localRepository = RepositoryUtils.toArtifactRepository("local", new File(settings.getLocalRepository()).toURI().toURL().toString(), null, true, true); request.setLocalRepository(localRepository); List<ArtifactRepository> settingsRepos = new ArrayList<>(request.getRemoteRepositories()); List<String> activeProfiles = settings.getActiveProfiles(); Map<String, Profile> profiles = settings.getProfilesAsMap(); for (String id : activeProfiles) { Profile profile = profiles.get(id); if (profile != null) { List<Repository> repositories = profile.getRepositories(); for (Repository repository : repositories) { settingsRepos.add(RepositoryUtils.convertFromMavenSettingsRepository(repository)); } } } request.setRemoteRepositories(settingsRepos); request.setSystemProperties(System.getProperties()); DefaultRepositorySystemSession repositorySession = MavenRepositorySystemUtils.newSession(); Proxy activeProxy = settings.getActiveProxy(); if (activeProxy != null) { DefaultProxySelector dps = new DefaultProxySelector(); dps.add(RepositoryUtils.convertFromMavenProxy(activeProxy), activeProxy.getNonProxyHosts()); repositorySession.setProxySelector(dps); } LocalRepository localRepo = new LocalRepository(settings.getLocalRepository()); repositorySession .setLocalRepositoryManager(system.newLocalRepositoryManager(repositorySession, localRepo)); repositorySession.setOffline(offline); List<Mirror> mirrors = executionRequest.getMirrors(); if (mirrors != null) { DefaultMirrorSelector mirrorSelector = new DefaultMirrorSelector(); for (Mirror mirror : mirrors) { mirrorSelector.add(mirror.getId(), mirror.getUrl(), mirror.getLayout(), false, mirror.getMirrorOf(), mirror.getMirrorOfLayouts()); } repositorySession.setMirrorSelector(mirrorSelector); } request.setRepositorySession(repositorySession); request.setProcessPlugins(false); request.setResolveDependencies(false); return request; } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new RuntimeException("Could not create Maven project building request", e); } finally { /* * We reset the classloader to prevent potential modules bugs if Classwords container changes classloaders on * us */ Thread.currentThread().setContextClassLoader(cl); } }
From source file:org.jboss.forge.arquillian.maven.ProjectHelper.java
License:Open Source License
private ProjectBuildingRequest getBuildingRequest(PlexusContainer plexus) { if (this.request == null) { ClassLoader cl = Thread.currentThread().getContextClassLoader(); try {/*from w w w .j a v a 2s . com*/ Settings settings = mavenContainer.getSettings(); // TODO this needs to be configurable via .forge // TODO this reference to the M2_REPO should probably be centralized MavenExecutionRequest executionRequest = new DefaultMavenExecutionRequest(); RepositorySystem repositorySystem = plexus.lookup(RepositorySystem.class); MavenExecutionRequestPopulator requestPopulator = plexus .lookup(MavenExecutionRequestPopulator.class); requestPopulator.populateFromSettings(executionRequest, settings); requestPopulator.populateDefaults(executionRequest); ProjectBuildingRequest request = executionRequest.getProjectBuildingRequest(); org.apache.maven.artifact.repository.ArtifactRepository localRepository = RepositoryUtils .toArtifactRepository("local", new File(settings.getLocalRepository()).toURI().toURL().toString(), null, true, true); request.setLocalRepository(localRepository); List<org.apache.maven.artifact.repository.ArtifactRepository> settingsRepos = new ArrayList<org.apache.maven.artifact.repository.ArtifactRepository>( request.getRemoteRepositories()); List<String> activeProfiles = settings.getActiveProfiles(); Map<String, Profile> profiles = settings.getProfilesAsMap(); for (String id : activeProfiles) { Profile profile = profiles.get(id); if (profile != null) { List<Repository> repositories = profile.getRepositories(); for (Repository repository : repositories) { settingsRepos.add(RepositoryUtils.convertFromMavenSettingsRepository(repository)); } } } request.setRemoteRepositories(settingsRepos); request.setSystemProperties(System.getProperties()); DefaultRepositorySystemSession repositorySession = MavenRepositorySystemUtils.newSession(); Proxy activeProxy = settings.getActiveProxy(); if (activeProxy != null) { DefaultProxySelector dps = new DefaultProxySelector(); dps.add(RepositoryUtils.convertFromMavenProxy(activeProxy), activeProxy.getNonProxyHosts()); repositorySession.setProxySelector(dps); } LocalRepository localRepo = new LocalRepository(settings.getLocalRepository()); repositorySession.setLocalRepositoryManager( repositorySystem.newLocalRepositoryManager(repositorySession, localRepo)); repositorySession.setOffline(settings.isOffline()); List<Mirror> mirrors = executionRequest.getMirrors(); DefaultMirrorSelector mirrorSelector = new DefaultMirrorSelector(); if (mirrors != null) { for (Mirror mirror : mirrors) { mirrorSelector.add(mirror.getId(), mirror.getUrl(), mirror.getLayout(), false, mirror.getMirrorOf(), mirror.getMirrorOfLayouts()); } } repositorySession.setMirrorSelector(mirrorSelector); LazyAuthenticationSelector authSelector = new LazyAuthenticationSelector(mirrorSelector); for (Server server : settings.getServers()) { authSelector.add(server.getId(), new AuthenticationBuilder().addUsername(server.getUsername()) .addPassword(server.getPassword()) .addPrivateKey(server.getPrivateKey(), server.getPassphrase()).build()); } repositorySession.setAuthenticationSelector(authSelector); request.setRepositorySession(repositorySession); request.setProcessPlugins(false); request.setResolveDependencies(false); this.request = request; } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new RuntimeException("Could not create Maven project building request", e); } finally { /* * We reset the classloader to prevent potential modules bugs if Classwords container changes classloaders * on us */ Thread.currentThread().setContextClassLoader(cl); } } return request; }