update fron sonatype aether to eclipse aether 1.1.0

This commit is contained in:
Sebastian Sdorra
2018-04-05 21:58:00 +02:00
parent 528f763634
commit 4e58b82373
9 changed files with 216 additions and 206 deletions

View File

@@ -226,13 +226,13 @@
<!-- aether --> <!-- aether -->
<dependency> <dependency>
<groupId>org.sonatype.aether</groupId> <groupId>org.eclipse.aether</groupId>
<artifactId>aether-api</artifactId> <artifactId>aether-api</artifactId>
<version>${aether.version}</version> <version>${aether.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.sonatype.aether</groupId> <groupId>org.eclipse.aether</groupId>
<artifactId>aether-impl</artifactId> <artifactId>aether-impl</artifactId>
<version>${aether.version}</version> <version>${aether.version}</version>
</dependency> </dependency>
@@ -250,14 +250,20 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.sonatype.aether</groupId> <groupId>org.eclipse.aether</groupId>
<artifactId>aether-connector-asynchttpclient</artifactId> <artifactId>aether-transport-http</artifactId>
<version>${aether.version}</version> <version>${aether.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.sonatype.aether</groupId> <groupId>org.eclipse.aether</groupId>
<artifactId>aether-connector-file</artifactId> <artifactId>aether-transport-file</artifactId>
<version>${aether.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-connector-basic</artifactId>
<version>${aether.version}</version> <version>${aether.version}</version>
</dependency> </dependency>
@@ -526,9 +532,9 @@
<environment.profile>default</environment.profile> <environment.profile>default</environment.profile>
<selenium.version>2.53.1</selenium.version> <selenium.version>2.53.1</selenium.version>
<enunciate.version>2.9.1</enunciate.version> <enunciate.version>2.9.1</enunciate.version>
<aether.version>1.13.1</aether.version> <aether.version>1.1.0</aether.version>
<wagon.version>1.0</wagon.version> <wagon.version>1.0</wagon.version>
<maven.version>3.0.5</maven.version> <maven.version>3.3.9</maven.version>
<mustache.version>0.8.17</mustache.version> <mustache.version>0.8.17</mustache.version>
<netbeans.hint.deploy.server>Tomcat</netbeans.hint.deploy.server> <netbeans.hint.deploy.server>Tomcat</netbeans.hint.deploy.server>
<sonar.issue.ignore.multicriteria>e1</sonar.issue.ignore.multicriteria> <sonar.issue.ignore.multicriteria>e1</sonar.issue.ignore.multicriteria>

View File

@@ -36,18 +36,13 @@ package sonia.scm.plugin;
//~--- non-JDK imports -------------------------------------------------------- //~--- non-JDK imports --------------------------------------------------------
import com.google.common.base.Throwables; import com.google.common.base.Throwables;
import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.graph.DependencyFilter;
import org.eclipse.aether.graph.DependencyNode;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.sonatype.aether.artifact.Artifact;
import org.sonatype.aether.graph.DependencyFilter;
import org.sonatype.aether.graph.DependencyNode;
//~--- JDK imports ------------------------------------------------------------
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;

View File

@@ -35,41 +35,34 @@ package sonia.scm.plugin;
//~--- non-JDK imports -------------------------------------------------------- //~--- non-JDK imports --------------------------------------------------------
import org.apache.maven.repository.internal.MavenRepositorySystemSession; import com.google.common.base.Throwables;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.collection.CollectRequest;
import org.eclipse.aether.collection.DependencyCollectionException;
import org.eclipse.aether.collection.DependencyGraphTransformer;
import org.eclipse.aether.graph.Dependency;
import org.eclipse.aether.graph.DependencyFilter;
import org.eclipse.aether.graph.DependencyNode;
import org.eclipse.aether.repository.*;
import org.eclipse.aether.resolution.DependencyRequest;
import org.eclipse.aether.resolution.DependencyResolutionException;
import org.eclipse.aether.spi.locator.ServiceLocator;
import org.eclipse.aether.util.artifact.JavaScopes;
import org.eclipse.aether.util.filter.AndDependencyFilter;
import org.eclipse.aether.util.filter.DependencyFilterUtils;
import org.eclipse.aether.util.graph.transformer.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.sonatype.aether.RepositorySystem;
import org.sonatype.aether.RepositorySystemSession;
import org.sonatype.aether.collection.CollectRequest;
import org.sonatype.aether.collection.DependencyCollectionException;
import org.sonatype.aether.collection.DependencyGraphTransformer;
import org.sonatype.aether.graph.Dependency;
import org.sonatype.aether.graph.DependencyFilter;
import org.sonatype.aether.graph.DependencyNode;
import org.sonatype.aether.repository.LocalRepository;
import org.sonatype.aether.repository.LocalRepositoryManager;
import org.sonatype.aether.repository.Proxy;
import org.sonatype.aether.repository.RemoteRepository;
import org.sonatype.aether.repository.RepositoryPolicy;
import org.sonatype.aether.resolution.DependencyRequest;
import org.sonatype.aether.resolution.DependencyResolutionException;
import org.sonatype.aether.util.artifact.DefaultArtifact;
import org.sonatype.aether.util.artifact.JavaScopes;
import org.sonatype.aether.util.filter.AndDependencyFilter;
import org.sonatype.aether.util.filter.DependencyFilterUtils;
import org.sonatype.aether.util.graph.transformer
.ChainedDependencyGraphTransformer;
import org.sonatype.aether.util.graph.transformer.ConflictMarker;
import org.sonatype.aether.util.graph.transformer.JavaDependencyContextRefiner;
import org.sonatype.aether.util.graph.transformer.JavaEffectiveScopeCalculator;
import org.sonatype.aether.util.graph.transformer
.NearestVersionConflictResolver;
import sonia.scm.config.ScmConfiguration; import sonia.scm.config.ScmConfiguration;
import sonia.scm.net.Proxies; import sonia.scm.net.Proxies;
import java.net.MalformedURLException;
import java.net.URL;
/** /**
* *
* @author Sebastian Sdorra * @author Sebastian Sdorra
@@ -77,6 +70,8 @@ import sonia.scm.net.Proxies;
public final class Aether public final class Aether
{ {
private static final ServiceLocator serviceLocator = new AetherServiceLocator();
/** Field description */ /** Field description */
private static final DependencyFilter FILTER = private static final DependencyFilter FILTER =
new AndDependencyFilter(new CoreDependencyFilter(), new AndDependencyFilter(new CoreDependencyFilter(),
@@ -134,11 +129,9 @@ public final class Aether
public static RemoteRepository createRemoteRepository( public static RemoteRepository createRemoteRepository(
ScmConfiguration configuration, PluginRepository pluginRepository) ScmConfiguration configuration, PluginRepository pluginRepository)
{ {
RemoteRepository remoteRepository = RemoteRepository.Builder builder = new RemoteRepository.Builder(pluginRepository.getId(), "default", pluginRepository.getUrl());
new RemoteRepository(pluginRepository.getId(), "default",
pluginRepository.getUrl());
if (Proxies.isEnabled(configuration, remoteRepository.getHost())) if (Proxies.isEnabled(configuration, hostFromUrl(pluginRepository.getUrl())))
{ {
Proxy proxy = DefaultProxySelector.createProxy(configuration); Proxy proxy = DefaultProxySelector.createProxy(configuration);
@@ -148,10 +141,18 @@ public final class Aether
pluginRepository.getUrl()); pluginRepository.getUrl());
} }
remoteRepository.setProxy(proxy); builder.setProxy(proxy);
} }
return remoteRepository; return builder.build();
}
private static String hostFromUrl(String url) {
try {
return new URL(url).getHost();
} catch (MalformedURLException e) {
throw Throwables.propagate(e);
}
} }
/** /**
@@ -162,7 +163,7 @@ public final class Aether
*/ */
public static RepositorySystem createRepositorySystem() public static RepositorySystem createRepositorySystem()
{ {
return new AetherServiceLocator().getService(RepositorySystem.class); return serviceLocator.getService(RepositorySystem.class);
} }
/** /**
@@ -181,8 +182,7 @@ public final class Aether
ScmConfiguration configuration, ScmConfiguration configuration,
AdvancedPluginConfiguration advancedPluginConfiguration) AdvancedPluginConfiguration advancedPluginConfiguration)
{ {
MavenRepositorySystemSession session = new MavenRepositorySystemSession(); DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
session.setChecksumPolicy(RepositoryPolicy.CHECKSUM_POLICY_WARN); session.setChecksumPolicy(RepositoryPolicy.CHECKSUM_POLICY_WARN);
if (configuration.isEnableProxy()) if (configuration.isEnableProxy())
@@ -191,23 +191,26 @@ public final class Aether
session.setProxySelector(new DefaultProxySelector(configuration)); session.setProxySelector(new DefaultProxySelector(configuration));
} }
LocalRepositoryManager localRepositoryManager = LocalRepositoryManager localRepositoryManager = system.newLocalRepositoryManager(session, localRepository);
system.newLocalRepositoryManager(localRepository);
session.setLocalRepositoryManager(localRepositoryManager); session.setLocalRepositoryManager(localRepositoryManager);
session.setAuthenticationSelector( session.setAuthenticationSelector(
new AetherAuthenticationSelector(advancedPluginConfiguration) new AetherAuthenticationSelector(advancedPluginConfiguration)
); );
// create graph transformer to resolve dependency conflicts // create graph transformer and conflictResolver to resolve dependency conflicts
//J- ConflictResolver conflictResolver = new ConflictResolver(
new NearestVersionSelector(),
new JavaScopeSelector(),
new SimpleOptionalitySelector(),
new JavaScopeDeriver()
);
DependencyGraphTransformer dgt = new ChainedDependencyGraphTransformer( DependencyGraphTransformer dgt = new ChainedDependencyGraphTransformer(
new ConflictMarker(), new ConflictMarker(),
new JavaEffectiveScopeCalculator(), conflictResolver,
new NearestVersionConflictResolver(),
new JavaDependencyContextRefiner() new JavaDependencyContextRefiner()
); );
//J+
session.setDependencyGraphTransformer(dgt); session.setDependencyGraphTransformer(dgt);

View File

@@ -36,20 +36,18 @@ package sonia.scm.plugin;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMap.Builder; import com.google.common.collect.ImmutableMap.Builder;
import org.eclipse.aether.repository.Authentication;
import org.eclipse.aether.repository.AuthenticationSelector;
import org.eclipse.aether.repository.RemoteRepository;
import org.eclipse.aether.util.repository.AuthenticationBuilder;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.sonatype.aether.repository.Authentication;
import org.sonatype.aether.repository.AuthenticationSelector;
import org.sonatype.aether.repository.RemoteRepository;
import sonia.scm.plugin.AdvancedPluginConfiguration.Server; import sonia.scm.plugin.AdvancedPluginConfiguration.Server;
//~--- JDK imports ------------------------------------------------------------
import java.util.Map; import java.util.Map;
//~--- JDK imports ------------------------------------------------------------
/** /**
* *
* @author Sebastian Sdorra * @author Sebastian Sdorra
@@ -115,8 +113,10 @@ public class AetherAuthenticationSelector implements AuthenticationSelector
{ {
logger.info("use user {} for repository wiht id {}", logger.info("use user {} for repository wiht id {}",
server.getUsername(), repository.getId()); server.getUsername(), repository.getId());
authentication = new Authentication(server.getUsername(), authentication = new AuthenticationBuilder()
server.getPassword()); .addUsername(server.getUsername())
.addPassword(server.getPassword())
.build();
} }
return authentication; return authentication;

View File

@@ -36,27 +36,24 @@ package sonia.scm.plugin;
//~--- non-JDK imports -------------------------------------------------------- //~--- non-JDK imports --------------------------------------------------------
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.collection.CollectRequest;
import org.eclipse.aether.collection.DependencyCollectionException;
import org.eclipse.aether.graph.Dependency;
import org.eclipse.aether.graph.DependencyNode;
import org.eclipse.aether.repository.LocalRepository;
import org.eclipse.aether.repository.RemoteRepository;
import org.eclipse.aether.resolution.DependencyResolutionException;
import org.eclipse.aether.util.graph.visitor.PreorderNodeListGenerator;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.sonatype.aether.RepositorySystem;
import org.sonatype.aether.RepositorySystemSession;
import org.sonatype.aether.collection.CollectRequest;
import org.sonatype.aether.collection.DependencyCollectionException;
import org.sonatype.aether.graph.Dependency;
import org.sonatype.aether.graph.DependencyNode;
import org.sonatype.aether.repository.LocalRepository;
import org.sonatype.aether.repository.RemoteRepository;
import org.sonatype.aether.resolution.DependencyResolutionException;
import org.sonatype.aether.util.graph.PreorderNodeListGenerator;
import sonia.scm.config.ScmConfiguration; import sonia.scm.config.ScmConfiguration;
//~--- JDK imports ------------------------------------------------------------
import java.util.List; import java.util.List;
//~--- JDK imports ------------------------------------------------------------
/** /**
* *
* @author Sebastian Sdorra * @author Sebastian Sdorra

View File

@@ -40,10 +40,10 @@ import com.google.common.collect.Lists;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.sonatype.aether.RepositorySystem; import org.eclipse.aether.RepositorySystem;
import org.sonatype.aether.graph.Dependency; import org.eclipse.aether.graph.Dependency;
import org.sonatype.aether.repository.LocalRepository; import org.eclipse.aether.repository.LocalRepository;
import org.sonatype.aether.repository.RemoteRepository; import org.eclipse.aether.repository.RemoteRepository;
import sonia.scm.ConfigurationException; import sonia.scm.ConfigurationException;
import sonia.scm.SCMContextProvider; import sonia.scm.SCMContextProvider;
@@ -190,7 +190,6 @@ public class AetherPluginHandler
* *
* *
* @param dependency * @param dependency
* @param dependencies
* @param localDependencies * @param localDependencies
*/ */
private void collectDependencies(Dependency dependency, private void collectDependencies(Dependency dependency,

View File

@@ -37,32 +37,30 @@ package sonia.scm.plugin;
import org.apache.maven.repository.internal.DefaultArtifactDescriptorReader; import org.apache.maven.repository.internal.DefaultArtifactDescriptorReader;
import org.apache.maven.repository.internal.DefaultVersionRangeResolver; import org.apache.maven.repository.internal.DefaultVersionRangeResolver;
import org.apache.maven.repository.internal.DefaultVersionResolver; import org.apache.maven.repository.internal.DefaultVersionResolver;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory;
import org.eclipse.aether.impl.ArtifactDescriptorReader;
import org.eclipse.aether.impl.DefaultServiceLocator;
import org.eclipse.aether.impl.VersionRangeResolver;
import org.eclipse.aether.impl.VersionResolver;
import org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory;
import org.eclipse.aether.spi.connector.RepositoryConnectorFactory;
import org.eclipse.aether.spi.connector.transport.TransporterFactory;
import org.eclipse.aether.spi.locator.ServiceLocator;
import org.eclipse.aether.spi.log.LoggerFactory;
import org.eclipse.aether.transport.file.FileTransporterFactory;
import org.eclipse.aether.transport.http.HttpTransporterFactory;
import org.slf4j.LoggerFactory; import java.util.List;
import org.sonatype.aether.connector.async.AsyncRepositoryConnectorFactory;
import org.sonatype.aether.connector.file.FileRepositoryConnectorFactory;
import org.sonatype.aether.impl.ArtifactDescriptorReader;
import org.sonatype.aether.impl.VersionRangeResolver;
import org.sonatype.aether.impl.VersionResolver;
import org.sonatype.aether.impl.internal.DefaultServiceLocator;
import org.sonatype.aether.impl.internal.Slf4jLogger;
import org.sonatype.aether.spi.connector.RepositoryConnectorFactory;
import org.sonatype.aether.spi.log.Logger;
/** /**
* *
* @author Sebastian Sdorra * @author Sebastian Sdorra
*/ */
public class AetherServiceLocator extends DefaultServiceLocator public class AetherServiceLocator implements ServiceLocator
{ {
/** Field description */ private DefaultServiceLocator delegate;
private static final String LOGGER_NAME = "org.sonatype.aether";
/** Field description */
private static final Slf4jLogger logger =
new Slf4jLogger(LoggerFactory.getLogger(LOGGER_NAME));
//~--- constructors --------------------------------------------------------- //~--- constructors ---------------------------------------------------------
@@ -70,16 +68,25 @@ public class AetherServiceLocator extends DefaultServiceLocator
* Constructs ... * Constructs ...
* *
*/ */
public AetherServiceLocator() AetherServiceLocator()
{ {
setServices(Logger.class, logger); delegate = MavenRepositorySystemUtils.newServiceLocator();
addService(VersionResolver.class, DefaultVersionResolver.class); delegate.setService(LoggerFactory.class, Slf4jLoggerFactory.class);
addService(VersionRangeResolver.class, DefaultVersionRangeResolver.class); delegate.addService(VersionResolver.class, DefaultVersionResolver.class);
addService(ArtifactDescriptorReader.class, delegate.addService(VersionRangeResolver.class, DefaultVersionRangeResolver.class);
DefaultArtifactDescriptorReader.class); delegate.addService(ArtifactDescriptorReader.class, DefaultArtifactDescriptorReader.class);
addService(RepositoryConnectorFactory.class, delegate.addService(TransporterFactory.class, HttpTransporterFactory.class);
AsyncRepositoryConnectorFactory.class); delegate.addService(TransporterFactory.class, FileTransporterFactory.class);
addService(RepositoryConnectorFactory.class, delegate.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
FileRepositoryConnectorFactory.class); }
@Override
public <T> T getService(Class<T> type) {
return delegate.getService(type);
}
@Override
public <T> List<T> getServices(Class<T> type) {
return delegate.getServices(type);
} }
} }

View File

@@ -34,13 +34,13 @@ package sonia.scm.plugin;
//~--- non-JDK imports -------------------------------------------------------- //~--- non-JDK imports --------------------------------------------------------
import org.eclipse.aether.repository.Authentication;
import org.eclipse.aether.repository.Proxy;
import org.eclipse.aether.repository.ProxySelector;
import org.eclipse.aether.repository.RemoteRepository;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.sonatype.aether.repository.Authentication;
import org.sonatype.aether.repository.Proxy;
import org.sonatype.aether.repository.ProxySelector;
import org.sonatype.aether.repository.RemoteRepository;
import sonia.scm.config.ScmConfiguration; import sonia.scm.config.ScmConfiguration;
import sonia.scm.util.Util; import sonia.scm.util.Util;
@@ -89,8 +89,11 @@ public class DefaultProxySelector implements ProxySelector
if (Util.isNotEmpty(username) || Util.isNotEmpty(password)) if (Util.isNotEmpty(username) || Util.isNotEmpty(password))
{ {
authentication = new Authentication(Util.nonNull(username), /*
Util.nonNull(password)); TODO
authentication = new Authentication(Util.nonNull(username), Util.nonNull(password));
*/
} }
return new Proxy(Proxy.TYPE_HTTP, configuration.getProxyServer(), return new Proxy(Proxy.TYPE_HTTP, configuration.getProxyServer(),

View File

@@ -34,8 +34,8 @@ package sonia.scm.plugin;
//~--- non-JDK imports -------------------------------------------------------- //~--- non-JDK imports --------------------------------------------------------
import org.sonatype.aether.graph.DependencyNode; import org.eclipse.aether.graph.DependencyNode;
import org.sonatype.aether.graph.DependencyVisitor; import org.eclipse.aether.graph.DependencyVisitor;
/** /**
* *