List of usage examples for org.apache.maven.settings.building DefaultSettingsBuilder build
@Override public SettingsBuildingResult build(SettingsBuildingRequest request) throws SettingsBuildingException
From source file:com.google.devtools.build.lib.bazel.repository.MavenServerFunction.java
License:Open Source License
@Nullable @Override/* w w w . j a v a 2s.co 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.liferay.blade.cli.aether.AetherClient.java
License:Open Source License
private static Settings _buildSettings() { SettingsBuildingRequest request = new DefaultSettingsBuildingRequest(); request.setGlobalSettingsFile(_DEFAULT_GLOBAL_SETTINGS_FILE); request.setUserSettingsFile(_USER_MAVEN_DEFAULT_USER_SETTINGS_FILE); try {//from w w w. j a va 2s. c o m DefaultSettingsBuilder builder = new DefaultSettingsBuilderFactory().newInstance(); return builder.build(request).getEffectiveSettings(); } catch (SettingsBuildingException sbe) { sbe.printStackTrace(); return null; } }
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(); }/*from ww w. j av a2 s .c o m*/ 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.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;/*from www . j a v a 2s .co 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 w w w . j a v a 2 s .c o m*/ 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// w w w.j a va2 s . c om * @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: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./*w ww. j av a 2s. c o 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.fabric3.runtime.maven3.repository.Maven3Repository.java
License:Open Source License
public void init() throws RepositoryException { DefaultServiceLocator locator = new DefaultServiceLocator(); locator.setServices(WagonProvider.class, new ManualWagonProvider()); locator.addService(RepositoryConnectorFactory.class, WagonRepositoryConnectorFactory.class); repositorySystem = locator.getService(RepositorySystem.class); session = new MavenRepositorySystemSession(); DefaultSettingsBuilder builder = new DefaultSettingsBuilderFactory().newInstance(); SettingsBuildingRequest request = new DefaultSettingsBuildingRequest(); if (DEFAULT_GLOBAL_SETTINGS.exists()) { request.setGlobalSettingsFile(DEFAULT_GLOBAL_SETTINGS); } else {/*w w w. j ava2 s . co m*/ request.setGlobalSettingsFile(DEFAULT_M2_GLOBAL_SETTINGS); } request.setUserSettingsFile(DEFAULT_USER_SETTINGS); try { SettingsBuildingResult result = builder.build(request); String location = result.getEffectiveSettings().getLocalRepository(); if (location == null) { location = DEFAULT_MAVEN_REPO.getName(); } LocalRepository localRepository = new LocalRepository(location); LocalRepositoryManager manager = repositorySystem.newLocalRepositoryManager(localRepository); session.setLocalRepositoryManager(manager); } catch (SettingsBuildingException e) { throw new RepositoryException(e); } }
From source file:org.ops4j.pax.url.mvn.internal.config.MavenConfigurationImpl.java
License:Apache License
private Settings buildSettings(String localRepoPath, String settingsPath, boolean useFallbackRepositories) { Settings settings;//from ww w . ja v a 2s . c om 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("https://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:org.ops4j.pax.url.mvn.UnitHelp.java
License:Apache License
/** * Load settings.xml file and apply custom properties. *//*from ww w. j av a 2 s .c om*/ public static MavenConfiguration getConfig(final File settingsFile, final Properties props) { props.setProperty(ServiceConstants.PID + "." + ServiceConstants.PROPERTY_SETTINGS_FILE, settingsFile.toURI().toASCIIString()); PropertiesPropertyResolver propertiesPropertyResolver = new PropertiesPropertyResolver(props); final MavenConfigurationImpl config = new MavenConfigurationImpl(propertiesPropertyResolver, ServiceConstants.PID); DefaultSettingsBuilderFactory factory = new DefaultSettingsBuilderFactory(); DefaultSettingsBuilder builder = factory.newInstance(); SettingsBuildingRequest request = new DefaultSettingsBuildingRequest(); request.setUserSettingsFile(settingsFile); Settings settings; try { SettingsBuildingResult result = builder.build(request); settings = result.getEffectiveSettings(); config.setSettings(settings); } catch (SettingsBuildingException exc) { throw new AssertionError("cannot build settings", exc); } String localRepo = props .getProperty(ServiceConstants.PID + "." + ServiceConstants.PROPERTY_LOCAL_REPOSITORY); if (localRepo != null) { settings.setLocalRepository(localRepo); } return config; }