Example usage for org.apache.maven.settings.building DefaultSettingsBuilder build

List of usage examples for org.apache.maven.settings.building DefaultSettingsBuilder build

Introduction

In this page you can find the example usage for org.apache.maven.settings.building DefaultSettingsBuilder build.

Prototype

@Override
    public SettingsBuildingResult build(SettingsBuildingRequest request) throws SettingsBuildingException 

Source Link

Usage

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;
}