56 lines
2.9 KiB
Diff
56 lines
2.9 KiB
Diff
diff -Nru resolver-2.2.2/impl-maven/src/main/java/org/jboss/shrinkwrap/resolver/impl/maven/internal/MavenModelResolver.java resolver-2.2.2.maven/impl-maven/src/main/java/org/jboss/shrinkwrap/resolver/impl/maven/internal/MavenModelResolver.java
|
|
--- resolver-2.2.2/impl-maven/src/main/java/org/jboss/shrinkwrap/resolver/impl/maven/internal/MavenModelResolver.java 2016-02-10 15:23:47.000000000 +0100
|
|
+++ resolver-2.2.2.maven/impl-maven/src/main/java/org/jboss/shrinkwrap/resolver/impl/maven/internal/MavenModelResolver.java 2016-08-09 16:37:49.946612710 +0200
|
|
@@ -22,6 +22,7 @@
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
|
|
+import org.apache.maven.model.Dependency;
|
|
import org.apache.maven.model.Parent;
|
|
import org.apache.maven.model.Repository;
|
|
import org.apache.maven.model.building.FileModelSource;
|
|
@@ -182,6 +183,43 @@
|
|
}
|
|
|
|
@Override
|
|
+ public ModelSource resolveModel(Dependency dependency) throws UnresolvableModelException {
|
|
+ Artifact artifact = new DefaultArtifact( dependency.getGroupId(), dependency.getArtifactId(), "",
|
|
+ "pom", dependency.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 dependency requested range '" + dependency.getVersion()
|
|
+ + "'", dependency.getGroupId(), dependency.getArtifactId(),
|
|
+ dependency.getVersion());
|
|
+
|
|
+ }
|
|
+
|
|
+ if (versionRangeResult.getVersionConstraint() != null
|
|
+ && versionRangeResult.getVersionConstraint().getRange() != null
|
|
+ && versionRangeResult.getVersionConstraint().getRange().getUpperBound() == null) {
|
|
+ throw new UnresolvableModelException("The requested dependency version range '" + dependency.getVersion()
|
|
+ + "' does not specify an upper bound", dependency.getGroupId(),
|
|
+ dependency.getArtifactId(), dependency.getVersion());
|
|
+
|
|
+ }
|
|
+
|
|
+ dependency.setVersion(versionRangeResult.getHighestVersion().toString());
|
|
+ } catch (VersionRangeResolutionException e) {
|
|
+ throw new UnresolvableModelException(e.getMessage(), dependency.getGroupId(), dependency.getArtifactId(),
|
|
+ dependency.getVersion(), e);
|
|
+ }
|
|
+
|
|
+ return resolveModel(dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion());
|
|
+
|
|
+ }
|
|
+
|
|
+ @Override
|
|
public void addRepository(Repository repository, boolean replace) throws InvalidRepositoryException {
|
|
|
|
if (session.isIgnoreArtifactDescriptorRepositories()) {
|