Skip to content

Commit

Permalink
[SHRINKRES-220] updated versions of aether, maven and some plexus libs
Browse files Browse the repository at this point in the history
  • Loading branch information
MatousJobanek committed Mar 11, 2015
1 parent 2d9748f commit 65bae18
Show file tree
Hide file tree
Showing 7 changed files with 127 additions and 23 deletions.
2 changes: 1 addition & 1 deletion impl-maven-archive/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
<dependency>
<groupId>org.eclipse.sisu</groupId>
<artifactId>org.eclipse.sisu.plexus</artifactId>
<version>0.0.0.M5</version>
<version>0.3.0.M1</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.plexus</groupId>
Expand Down
16 changes: 14 additions & 2 deletions impl-maven/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,12 @@
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-connector-wagon</artifactId>
<artifactId>aether-connector-basic</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-transport-wagon</artifactId>
<version>${version.org.eclipse.aether}</version>
<exclusions>
<exclusion>
<groupId>org.apache.maven.wagon</groupId>
Expand All @@ -70,7 +75,7 @@
</exclusions>
</dependency>

<!-- org.apache.maven -->
<!-- org.apache.maven -->
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-aether-provider</artifactId>
Expand Down Expand Up @@ -133,6 +138,13 @@
<version>${version.org.apache.maven}</version>
</dependency>

<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${version.com.google.guava}</version>
</dependency>


<!-- org.codehaus.plexus -->
<dependency>
<groupId>org.codehaus.plexus</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
import org.apache.maven.wagon.providers.http.LightweightHttpWagon;
import org.apache.maven.wagon.providers.http.LightweightHttpWagonAuthenticator;
import org.apache.maven.wagon.providers.http.LightweightHttpsWagon;
import org.eclipse.aether.connector.wagon.WagonProvider;
import org.eclipse.aether.transport.wagon.WagonProvider;
import org.jboss.shrinkwrap.resolver.api.ResolutionException;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,7 @@
import org.apache.maven.repository.internal.SnapshotMetadataGeneratorFactory;
import org.apache.maven.repository.internal.VersionsMetadataGeneratorFactory;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.connector.wagon.WagonProvider;
import org.eclipse.aether.connector.wagon.WagonRepositoryConnectorFactory;
import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory;
import org.eclipse.aether.impl.ArtifactDescriptorReader;
import org.eclipse.aether.impl.ArtifactResolver;
import org.eclipse.aether.impl.DependencyCollector;
Expand All @@ -54,6 +53,7 @@
import org.eclipse.aether.impl.VersionRangeResolver;
import org.eclipse.aether.impl.VersionResolver;
import org.eclipse.aether.internal.impl.DefaultArtifactResolver;
import org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider;
import org.eclipse.aether.internal.impl.DefaultDependencyCollector;
import org.eclipse.aether.internal.impl.DefaultDeployer;
import org.eclipse.aether.internal.impl.DefaultFileProcessor;
Expand All @@ -64,18 +64,28 @@
import org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager;
import org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider;
import org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher;
import org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider;
import org.eclipse.aether.internal.impl.DefaultRepositorySystem;
import org.eclipse.aether.internal.impl.DefaultSyncContextFactory;
import org.eclipse.aether.internal.impl.DefaultTransporterProvider;
import org.eclipse.aether.internal.impl.DefaultUpdateCheckManager;
import org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer;
import org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory;
import org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory;
import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory;
import org.eclipse.aether.spi.connector.RepositoryConnectorFactory;
import org.eclipse.aether.spi.connector.checksum.ChecksumPolicyProvider;
import org.eclipse.aether.spi.connector.layout.RepositoryLayoutFactory;
import org.eclipse.aether.spi.connector.layout.RepositoryLayoutProvider;
import org.eclipse.aether.spi.connector.transport.TransporterFactory;
import org.eclipse.aether.spi.connector.transport.TransporterProvider;
import org.eclipse.aether.spi.io.FileProcessor;
import org.eclipse.aether.spi.localrepo.LocalRepositoryManagerFactory;
import org.eclipse.aether.spi.locator.Service;
import org.eclipse.aether.spi.locator.ServiceLocator;
import org.eclipse.aether.spi.log.LoggerFactory;
import org.eclipse.aether.transport.wagon.WagonProvider;
import org.eclipse.aether.transport.wagon.WagonTransporterFactory;
import org.jboss.shrinkwrap.resolver.impl.maven.logging.AetherLoggerFactory;

/**
Expand Down Expand Up @@ -172,7 +182,14 @@ public ShrinkWrapResolverServiceLocator() {
// add our own services
setServices(ModelBuilder.class, new DefaultModelBuilderFactory().newInstance());
setServices(WagonProvider.class, new ManualWagonProvider());
addService(RepositoryConnectorFactory.class, WagonRepositoryConnectorFactory.class);

// add default services introduced after aether 0.9.0.M2
addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
addService(TransporterProvider.class, DefaultTransporterProvider.class);
addService(TransporterFactory.class, WagonTransporterFactory.class);
addService(RepositoryLayoutProvider.class, DefaultRepositoryLayoutProvider.class);
addService(RepositoryLayoutFactory.class, Maven2RepositoryLayoutFactory.class);
addService(ChecksumPolicyProvider.class, DefaultChecksumPolicyProvider.class);

// to avoid problems with SLF4J, we are having a JUL bridge
setServices(LoggerFactory.class, new AetherLoggerFactory());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,21 +22,28 @@
import java.util.List;
import java.util.Set;

import org.apache.maven.model.Parent;
import org.apache.maven.model.Repository;
import org.apache.maven.model.building.FileModelSource;
import org.apache.maven.model.building.ModelSource;
import org.apache.maven.model.resolution.InvalidRepositoryException;
import org.apache.maven.model.resolution.ModelResolver;
import org.apache.maven.model.resolution.UnresolvableModelException;
import org.eclipse.aether.artifact.DefaultArtifact;
import org.jboss.shrinkwrap.resolver.impl.maven.bootstrap.MavenRepositorySystem;
import org.jboss.shrinkwrap.resolver.impl.maven.convert.MavenConverter;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.repository.RemoteRepository;
import org.eclipse.aether.resolution.ArtifactRequest;
import org.eclipse.aether.resolution.ArtifactResolutionException;
import org.eclipse.aether.resolution.VersionRangeRequest;
import org.eclipse.aether.resolution.VersionRangeResolutionException;
import org.eclipse.aether.resolution.VersionRangeResult;
import org.jboss.shrinkwrap.resolver.impl.maven.bootstrap.MavenRepositorySystem;
import org.jboss.shrinkwrap.resolver.impl.maven.convert.MavenConverter;

import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;

/**
* Resolves an artifact even from remote repository during resolution of the model.
Expand All @@ -59,11 +66,11 @@ public class MavenModelResolver implements ModelResolver {
* resolution chain
*
* @param system
* the Maven based implementation of the {@link RepositorySystem}
* the Maven based implementation of the {@link RepositorySystem}
* @param session
* the current Maven execution session
* the current Maven execution session
* @param remoteRepositories
* the list of available Maven repositories
* the list of available Maven repositories
*/
public MavenModelResolver(MavenRepositorySystem system, RepositorySystemSession session,
List<RemoteRepository> remoteRepositories) {
Expand Down Expand Up @@ -99,12 +106,7 @@ private MavenModelResolver(MavenModelResolver origin) {
*/
@Override
public void addRepository(Repository repository) throws InvalidRepositoryException {
if (repositoryIds.contains(repository.getId())) {
return;
}

repositoryIds.add(repository.getId());
repositories.add(MavenConverter.asRemoteRepository(repository));
addRepository(repository, false);
}

/*
Expand Down Expand Up @@ -141,4 +143,69 @@ public ModelSource resolveModel(String groupId, String artifactId, String versio
return new FileModelSource(pomFile);

}

@Override
public ModelSource resolveModel(Parent parent) throws UnresolvableModelException {

Artifact artifact = new DefaultArtifact(parent.getGroupId(), parent.getArtifactId(), "", "pom",
parent.getVersion());

VersionRangeRequest versionRangeRequest = new VersionRangeRequest(artifact, repositories, null);

try {
VersionRangeResult versionRangeResult =
system.resolveVersionRange(session, versionRangeRequest);

if (versionRangeResult.getHighestVersion() == null) {
throw new UnresolvableModelException("No versions matched the requested range '" + parent.getVersion()
+ "'", parent.getGroupId(), parent.getArtifactId(),
parent.getVersion());

}

if (versionRangeResult.getVersionConstraint() != null
&& versionRangeResult.getVersionConstraint().getRange() != null
&& versionRangeResult.getVersionConstraint().getRange().getUpperBound() == null) {
throw new UnresolvableModelException("The requested version range '" + parent.getVersion()
+ "' does not specify an upper bound", parent.getGroupId(),
parent.getArtifactId(), parent.getVersion());

}

parent.setVersion(versionRangeResult.getHighestVersion().toString());
} catch (VersionRangeResolutionException e) {
throw new UnresolvableModelException(e.getMessage(), parent.getGroupId(), parent.getArtifactId(),
parent.getVersion(), e);
}

return resolveModel(parent.getGroupId(), parent.getArtifactId(), parent.getVersion());
}

@Override
public void addRepository(Repository repository, boolean replace) throws InvalidRepositoryException {

if (session.isIgnoreArtifactDescriptorRepositories()) {
return;
}

if (!repositoryIds.add(repository.getId())) {
if (!replace) {
return;
}

removeMatchingRepository(repositories, repository.getId());
}

repositories.add(MavenConverter.asRemoteRepository(repository));
}

private static void removeMatchingRepository(Iterable<RemoteRepository> repositories, final String id) {
Iterables.removeIf(repositories, new Predicate<RemoteRepository>() {

@Override
public boolean apply(RemoteRepository remoteRepository) {
return remoteRepository.getId().equals(id);
}
});
}
}
6 changes: 6 additions & 0 deletions maven-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,12 @@
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>${version.org.apache.maven}</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>

Expand Down
10 changes: 6 additions & 4 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,17 +35,19 @@
<maven.compiler.argument.source>1.5</maven.compiler.argument.source>

<!-- Versioning -->
<version.org.apache.maven>3.1.1</version.org.apache.maven>
<version.org.apache.maven>3.2.5</version.org.apache.maven>
<version.org.apache.maven.wagon>2.6</version.org.apache.maven.wagon>

<version.com.google.guava>18.0</version.com.google.guava>

<version.org.codehaus.plexus.interpolation>1.19</version.org.codehaus.plexus.interpolation>
<version.org.codehaus.plexus.utils>3.0.15</version.org.codehaus.plexus.utils>
<version.org.codehaus.plexus.interpolation>1.21</version.org.codehaus.plexus.interpolation>
<version.org.codehaus.plexus.utils>3.0.20</version.org.codehaus.plexus.utils>
<version.org.codehaus.plexus.classworlds>2.5.1</version.org.codehaus.plexus.classworlds>
<version.org.codehaus.plexus.compiler.javac>2.3</version.org.codehaus.plexus.compiler.javac>
<version.org.codehaus.plexus.sec.dispatcher>1.3</version.org.codehaus.plexus.sec.dispatcher>

<!-- Aether version must be the same as used in Maven in order for plugin to work -->
<version.org.eclipse.aether>0.9.0.M2</version.org.eclipse.aether>
<version.org.eclipse.aether>1.0.0.v20140518</version.org.eclipse.aether>

<version.gradle-tooling-api>2.1</version.gradle-tooling-api>

Expand Down

0 comments on commit 65bae18

Please sign in to comment.