private static Settings copySettings()

in src/main/java/org/apache/maven/plugins/help/EffectiveSettingsMojo.java [156:199]


    private static Settings copySettings(Settings settings) {
        if (settings == null) {
            return null;
        }

        // Not a deep copy in M2.2.1 !!!
        Settings clone = SettingsUtils.copySettings(settings);

        List<Server> clonedServers = new ArrayList<>(settings.getServers().size());
        for (Server server : settings.getServers()) {
            Server clonedServer = new Server();
            clonedServer.setConfiguration(server.getConfiguration());
            clonedServer.setDirectoryPermissions(server.getDirectoryPermissions());
            clonedServer.setFilePermissions(server.getFilePermissions());
            clonedServer.setId(server.getId());
            clonedServer.setPassphrase(server.getPassphrase());
            clonedServer.setPassword(server.getPassword());
            clonedServer.setPrivateKey(server.getPrivateKey());
            clonedServer.setSourceLevel(server.getSourceLevel());
            clonedServer.setUsername(server.getUsername());

            clonedServers.add(clonedServer);
        }
        clone.setServers(clonedServers);

        List<Proxy> clonedProxies = new ArrayList<>(settings.getProxies().size());
        for (Proxy proxy : settings.getProxies()) {
            Proxy clonedProxy = new Proxy();
            clonedProxy.setActive(proxy.isActive());
            clonedProxy.setHost(proxy.getHost());
            clonedProxy.setId(proxy.getId());
            clonedProxy.setNonProxyHosts(proxy.getNonProxyHosts());
            clonedProxy.setPassword(proxy.getPassword());
            clonedProxy.setPort(proxy.getPort());
            clonedProxy.setProtocol(proxy.getProtocol());
            clonedProxy.setSourceLevel(proxy.getSourceLevel());
            clonedProxy.setUsername(proxy.getUsername());

            clonedProxies.add(clonedProxy);
        }
        clone.setProxies(clonedProxies);

        return clone;
    }