Example usage for org.apache.maven.settings.building SettingsBuildingResult getEffectiveSettings

List of usage examples for org.apache.maven.settings.building SettingsBuildingResult getEffectiveSettings

Introduction

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

Prototype

Settings getEffectiveSettings();

Source Link

Document

Gets the assembled settings.

Usage

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