List of usage examples for org.apache.maven.settings.building SettingsBuildingResult getEffectiveSettings
Settings getEffectiveSettings();
From source file:com.google.devtools.build.lib.bazel.repository.MavenServerFunction.java
License:Open Source License
@Nullable @Override/*from www. j a v a 2s .c o m*/ public SkyValue compute(SkyKey skyKey, Environment env) throws InterruptedException, RepositoryFunctionException { String repository = (String) skyKey.argument(); Rule repositoryRule = null; try { repositoryRule = RepositoryFunction.getRule(repository, env); } catch (RepositoryNotFoundException ex) { // Ignored. We throw a new one below. } BlazeDirectories directories = PrecomputedValue.BLAZE_DIRECTORIES.get(env); if (env.valuesMissing()) { return null; } String serverName; String url; Map<String, FileValue> settingsFiles; boolean foundRepoRule = repositoryRule != null && repositoryRule.getRuleClass().equals(MavenServerRule.NAME); if (!foundRepoRule) { if (repository.equals(MavenServerValue.DEFAULT_ID)) { settingsFiles = getDefaultSettingsFile(directories, env); serverName = MavenServerValue.DEFAULT_ID; url = MavenConnector.getMavenCentralRemote().getUrl(); } else { throw new RepositoryFunctionException( new IOException("Could not find maven repository " + repository), Transience.TRANSIENT); } } else { WorkspaceAttributeMapper mapper = WorkspaceAttributeMapper.of(repositoryRule); serverName = repositoryRule.getName(); try { url = mapper.get("url", Type.STRING); if (!mapper.isAttributeValueExplicitlySpecified("settings_file")) { settingsFiles = getDefaultSettingsFile(directories, env); } else { PathFragment settingsFilePath = new PathFragment(mapper.get("settings_file", Type.STRING)); RootedPath settingsPath = RootedPath.toRootedPath( directories.getWorkspace().getRelative(settingsFilePath), PathFragment.EMPTY_FRAGMENT); FileValue fileValue = (FileValue) env.getValue(FileValue.key(settingsPath)); if (fileValue == null) { return null; } if (!fileValue.exists()) { throw new RepositoryFunctionException( new IOException("Could not find settings file " + settingsPath), Transience.TRANSIENT); } settingsFiles = ImmutableMap.<String, FileValue>builder().put(USER_KEY, fileValue).build(); } } catch (EvalException e) { throw new RepositoryFunctionException(e, Transience.PERSISTENT); } } if (settingsFiles == null) { return null; } Fingerprint fingerprint = new Fingerprint(); try { for (Map.Entry<String, FileValue> entry : settingsFiles.entrySet()) { fingerprint.addString(entry.getKey()); Path path = entry.getValue().realRootedPath().asPath(); if (path.exists()) { fingerprint.addBoolean(true); fingerprint.addBytes(path.getDigest()); } else { fingerprint.addBoolean(false); } } } catch (IOException e) { throw new RepositoryFunctionException(e, Transience.TRANSIENT); } byte[] fingerprintBytes = fingerprint.digestAndReset(); if (settingsFiles.isEmpty()) { return new MavenServerValue(serverName, url, new Server(), fingerprintBytes); } DefaultSettingsBuildingRequest request = new DefaultSettingsBuildingRequest(); if (settingsFiles.containsKey(SYSTEM_KEY)) { request.setGlobalSettingsFile(settingsFiles.get(SYSTEM_KEY).realRootedPath().asPath().getPathFile()); } if (settingsFiles.containsKey(USER_KEY)) { request.setUserSettingsFile(settingsFiles.get(USER_KEY).realRootedPath().asPath().getPathFile()); } DefaultSettingsBuilder builder = (new DefaultSettingsBuilderFactory()).newInstance(); SettingsBuildingResult result; try { result = builder.build(request); } catch (SettingsBuildingException e) { throw new RepositoryFunctionException( new IOException("Error parsing settings files: " + e.getMessage()), Transience.TRANSIENT); } if (!result.getProblems().isEmpty()) { throw new RepositoryFunctionException(new IOException( "Errors interpreting settings file: " + Arrays.toString(result.getProblems().toArray())), Transience.PERSISTENT); } Settings settings = result.getEffectiveSettings(); Server server = settings.getServer(serverName); server = server == null ? new Server() : server; return new MavenServerValue(serverName, url, server, fingerprintBytes); }
From source file:com.redhat.ceylon.cmr.resolver.aether.AetherResolverImpl.java
License:Apache License
private List<RemoteRepository> configureSession(RepositorySystem system, DefaultRepositorySystemSession session) { DefaultSettingsBuilderFactory factory = new DefaultSettingsBuilderFactory(); DefaultSettingsBuilder builder = factory.newInstance(); SettingsBuildingRequest settingsBuilderRequest = new DefaultSettingsBuildingRequest(); settingsBuilderRequest.setSystemProperties(System.getProperties()); // find the settings String settingsFile = settingsXml; if (settingsFile == null) { File userSettings = new File(System.getProperty("user.home"), ".m2/settings.xml"); if (userSettings.exists()) settingsFile = userSettings.getAbsolutePath(); }// w w w.j a v a2 s . com if (settingsFile != null) { settingsBuilderRequest.setUserSettingsFile(new File(settingsXml)); } // read it SettingsBuildingResult settingsBuildingResult; try { settingsBuildingResult = builder.build(settingsBuilderRequest); } catch (SettingsBuildingException e) { throw new RuntimeException(e); } Settings set = settingsBuildingResult.getEffectiveSettings(); // configure the local repo String localRepository = set.getLocalRepository(); if (localRepository == null) localRepository = System.getProperty("user.home") + File.separator + ".m2" + File.separator + "repository"; else { if (!new File(localRepository).isAbsolute() && currentDirectory != null) { localRepository = new File(new File(currentDirectory), localRepository).getAbsolutePath(); } } // set up authentication DefaultAuthenticationSelector authenticationSelector = new DefaultAuthenticationSelector(); for (Server server : set.getServers()) { AuthenticationBuilder auth = new AuthenticationBuilder(); if (server.getUsername() != null) auth.addUsername(server.getUsername()); if (server.getPassword() != null) auth.addPassword(server.getPassword()); if (server.getPrivateKey() != null) auth.addPrivateKey(server.getPrivateKey(), server.getPassphrase()); authenticationSelector.add(server.getId(), auth.build()); } session.setAuthenticationSelector(authenticationSelector); // set up mirrors DefaultMirrorSelector mirrorSelector = new DefaultMirrorSelector(); for (Mirror mirror : set.getMirrors()) { mirrorSelector.add(mirror.getId(), mirror.getUrl(), mirror.getLayout(), false, mirror.getMirrorOf(), mirror.getMirrorOfLayouts()); } session.setMirrorSelector(mirrorSelector); // set up proxies DefaultProxySelector proxySelector = new DefaultProxySelector(); for (Proxy proxy : set.getProxies()) { if (proxy.isActive()) { AuthenticationBuilder auth = new AuthenticationBuilder(); if (proxy.getUsername() != null) auth.addUsername(proxy.getUsername()); if (proxy.getPassword() != null) auth.addPassword(proxy.getPassword()); org.eclipse.aether.repository.Proxy p = new org.eclipse.aether.repository.Proxy(proxy.getProtocol(), proxy.getHost(), proxy.getPort(), auth.build()); proxySelector.add(p, proxy.getNonProxyHosts()); } } session.setProxySelector(proxySelector); // set up remote repos List<RemoteRepository> repos = new ArrayList<>(); RemoteRepository central = new RemoteRepository.Builder("central", "default", "http://repo1.maven.org/maven2/").build(); repos.add(central); Set<String> activeProfiles = new HashSet<>(); activeProfiles.addAll(set.getActiveProfiles()); for (Profile profile : set.getProfiles()) { Activation activation = profile.getActivation(); if (activation != null) { if (activation.isActiveByDefault()) activeProfiles.add(profile.getId()); } } for (String profileId : activeProfiles) { Profile profile = set.getProfilesAsMap().get(profileId); if (profile != null) { addReposFromProfile(repos, profile); } } // connection settings session.setConfigProperty(ConfigurationProperties.CONNECT_TIMEOUT, timeout); session.setOffline(offline || set.isOffline()); LocalRepository localRepo = new LocalRepository(localRepository); session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepo)); return repos; }
From source file:com.redhat.rcm.version.config.DefaultSessionConfigurator.java
License:Open Source License
private void loadSettings(final VersionManagerSession session) { MavenExecutionRequest executionRequest = session.getExecutionRequest(); if (executionRequest == null) { executionRequest = new DefaultMavenExecutionRequest(); }//from w w w. j a v a2s . c o m File settingsXml; try { settingsXml = getFile(session.getSettingsXml(), session.getDownloads()); } catch (final VManException e) { session.addError(e); return; } final DefaultSettingsBuildingRequest req = new DefaultSettingsBuildingRequest(); req.setUserSettingsFile(settingsXml); req.setSystemProperties(System.getProperties()); try { final SettingsBuildingResult result = settingsBuilder.build(req); final Settings settings = result.getEffectiveSettings(); final String proxyHost = System.getProperty("http.proxyHost"); final String proxyPort = System.getProperty("http.proxyPort", "8080"); final String nonProxyHosts = System.getProperty("http.nonProxyHosts", "localhost"); final String proxyUser = System.getProperty("http.proxyUser"); final String proxyPassword = System.getProperty("http.proxyPassword"); if (proxyHost != null) { final Proxy proxy = new Proxy(); proxy.setActive(true); proxy.setHost(proxyHost); proxy.setId("cli"); proxy.setNonProxyHosts(nonProxyHosts); proxy.setPort(Integer.parseInt(proxyPort)); if (proxyUser != null && proxyPassword != null) { proxy.setUsername(proxyUser); proxy.setPassword(proxyPassword); Authenticator.setDefault(new Authenticator() { @Override public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(proxyUser, proxyPassword.toCharArray()); } }); } settings.setProxies(Collections.singletonList(proxy)); } executionRequest = requestPopulator.populateFromSettings(executionRequest, settings); session.setExecutionRequest(executionRequest); } catch (final SettingsBuildingException e) { session.addError(new VManException("Failed to build settings from: %s. Reason: %s", e, settingsXml, e.getMessage())); } catch (final MavenExecutionRequestPopulationException e) { session.addError(new VManException("Failed to initialize system using settings from: %s. Reason: %s", e, settingsXml, e.getMessage())); } }
From source file:com.rhox.maven.MavenSettings.java
public static MavenSettings getDefault() { String envMavenHome = System.getenv("M2_HOME"); File userSettings = new File(USER_MAVEN_HOME, "settings.xml"); File globalSettings = new File(System.getProperty("maven.home", envMavenHome != null ? envMavenHome : ""), "conf/settings.xml"); SettingsBuildingRequest settingsBuildingRequest = new DefaultSettingsBuildingRequest(); settingsBuildingRequest.setSystemProperties(System.getProperties()); settingsBuildingRequest.setUserSettingsFile(userSettings); settingsBuildingRequest.setGlobalSettingsFile(globalSettings); DefaultSettingsBuilderFactory mvnSettingBuilderFactory = new DefaultSettingsBuilderFactory(); DefaultSettingsBuilder settingsBuilder = mvnSettingBuilderFactory.newInstance(); Settings settings;// ww w . ja va 2 s. c o m try { SettingsBuildingResult settingsBuildingResult = settingsBuilder.build(settingsBuildingRequest); settings = settingsBuildingResult.getEffectiveSettings(); } catch (SettingsBuildingException unexpected) { throw new IllegalStateException(unexpected); } return new MavenSettings(settings); }
From source file:io.fabric8.maven.util.MavenConfigurationImpl.java
License:Apache License
private Settings buildSettings(String localRepoPath, String settingsPath, boolean useFallbackRepositories) { Settings settings;/*from ww w.ja va2 s .com*/ if (settingsPath == null) { settings = new Settings(); } else { DefaultSettingsBuilderFactory factory = new DefaultSettingsBuilderFactory(); DefaultSettingsBuilder builder = factory.newInstance(); SettingsBuildingRequest request = new DefaultSettingsBuildingRequest(); request.setUserSettingsFile(new File(settingsPath)); try { SettingsBuildingResult result = builder.build(request); settings = result.getEffectiveSettings(); } catch (SettingsBuildingException exc) { throw new AssertionError("cannot build settings", exc); } } if (useFallbackRepositories) { Profile fallbackProfile = new Profile(); Repository central = new Repository(); central.setId("central"); central.setUrl("http://repo1.maven.org/maven2"); fallbackProfile.setId("fallback"); fallbackProfile.setRepositories(Arrays.asList(central)); settings.addProfile(fallbackProfile); settings.addActiveProfile("fallback"); } if (localRepoPath != null) { settings.setLocalRepository(localRepoPath); } return settings; }
From source file:net.linguica.gradle.maven.settings.LocalMavenSettingsLoader.java
License:Apache License
/** * Loads and merges Maven settings from global and local user configuration files. Returned * {@link org.apache.maven.settings.Settings} object includes decrypted credentials. * * @return Effective settings//from w w w .j a v a2 s . c o m * @throws SettingsBuildingException If the effective settings cannot be built */ public Settings loadSettings() throws SettingsBuildingException { SettingsBuildingRequest settingsBuildingRequest = new DefaultSettingsBuildingRequest(); settingsBuildingRequest.setUserSettingsFile(extension.getUserSettingsFile()); settingsBuildingRequest.setGlobalSettingsFile(GLOBAL_SETTINGS_FILE); settingsBuildingRequest.setSystemProperties(System.getProperties()); DefaultSettingsBuilderFactory factory = new DefaultSettingsBuilderFactory(); DefaultSettingsBuilder settingsBuilder = factory.newInstance(); SettingsBuildingResult settingsBuildingResult = settingsBuilder.build(settingsBuildingRequest); Settings settings = settingsBuildingResult.getEffectiveSettings(); decryptCredentials(settings); return settings; }
From source file:net.officefloor.maven.classpath.ClassPathFactoryImpl.java
License:Open Source License
/** * Obtains the local repository as configured for the user. * /*from w w w. j a v a2 s . c om*/ * @return Local repository. * @throws Exception * If fails to obtain the user configured local repository. */ public static File getUserLocalRepository() throws Exception { // Obtain the local repository path String localRepositoryPath = null; // Obtain the settings File settingsFile = new File(org.apache.maven.repository.RepositorySystem.userMavenConfigurationHome, "settings.xml"); if (settingsFile.exists()) { // Load user settings and obtain local repository SettingsBuilder settingsBuilder = new DefaultSettingsBuilderFactory().newInstance(); SettingsBuildingRequest request = new DefaultSettingsBuildingRequest(); request.setUserSettingsFile(settingsFile); SettingsBuildingResult result = settingsBuilder.build(request); localRepositoryPath = result.getEffectiveSettings().getLocalRepository(); } // Use default local repository (if not specified in settings) if (localRepositoryPath == null) { localRepositoryPath = org.apache.maven.repository.RepositorySystem.defaultUserLocalRepository .getAbsolutePath(); } // Return the user local repository return new File(localRepositoryPath); }
From source file:nl.pieni.maven.dependency_analyzer.mojo.create.AbstractParserMojo.java
License:Apache License
/** * Setup the context for the creation of a {@link org.apache.maven.project.MavenProject}. * * @return Building context/* w w w .j ava2s .c o m*/ * @throws MojoExecutionException Unable to parse the settings file. * @throws org.apache.maven.plugin.MojoExecutionException * in case of error */ private ProjectBuildingRequest makeBuildingRequest() throws MojoExecutionException { try { if (buildRequest == null) { buildRequest = new DefaultProjectBuildingRequest(); SettingsBuildingResult settingsBuildingResult = settingsBuilder .build(new DefaultSettingsBuildingRequest()); Settings settings = settingsBuildingResult.getEffectiveSettings(); buildRequest.setActiveProfileIds(settings.getActiveProfiles()); buildRequest.setLocalRepository(localRepository); MavenRepositorySystemSession mrs = new MavenRepositorySystemSession(); mrs.setLocalRepositoryManager(new SimpleLocalRepositoryManager(localRepository.getBasedir())); buildRequest.setRepositorySession(mrs); buildRequest.setRemoteRepositories(remoteRepositories); } return buildRequest; } catch (SettingsBuildingException e) { throw new MojoExecutionException("Unable to create building request", e); } }
From source file:org.apache.karaf.maven.command.MavenConfigurationSupport.java
License:Apache License
/** * Reads on demand <code>settings.xml</code> file - without password decryption. Also * collects declared servers by ID.//from w ww .j a v a 2 s.co m * @param settingsFile */ protected synchronized Settings readSettings(File settingsFile) throws SettingsBuildingException { if (!settingsFile.isFile() || !settingsFile.canRead()) { return null; } try { DefaultSettingsBuilderFactory factory = new DefaultSettingsBuilderFactory(); DefaultSettingsBuilder builder = factory.newInstance(); SettingsBuildingRequest request = new DefaultSettingsBuildingRequest(); request.setUserSettingsFile(settingsFile); SettingsBuildingResult result = builder.build(request); if (result.getProblems().size() > 0) { for (SettingsProblem problem : result.getProblems()) { System.err.println(problem); } return null; } else { Settings settings = result.getEffectiveSettings(); if (settings.getServers() != null) { for (Server server : settings.getServers()) { servers.put(server.getId(), server); } } return settings; } } catch (Throwable e) { System.err.println(e.getMessage()); LOG.error(e.getMessage(), e); throw e; } }
From source file:org.bsc.core.MavenHelper.java
/** * /*from w ww . ja v a2 s . c o m*/ * @return */ public static Settings getSettings() { try { final String userHome = System.getProperty("user.home"); SettingsBuilder settingsBuilder = new DefaultSettingsBuilderFactory().newInstance(); SettingsBuildingRequest settingsRequest = new DefaultSettingsBuildingRequest(); settingsRequest.setUserSettingsFile(new File(userHome.concat("/.m2/settings.xml"))); if (M2_HOME != null) settingsRequest.setGlobalSettingsFile(new File(M2_HOME + "/conf/settings.xml")); SettingsBuildingResult settingsBuildingResult = settingsBuilder.build(settingsRequest); Settings effectiveSettings = settingsBuildingResult.getEffectiveSettings(); if (effectiveSettings.getLocalRepository() == null) { effectiveSettings.setLocalRepository(userHome.concat("/.m2/repository")); } return effectiveSettings; } catch (SettingsBuildingException e) { throw new Error(e); } }