mizdebsk / rpms / maven

Forked from rpms/maven 5 years ago
Clone
Stanislav Ochotnicky 1ae9fb1
From efb78912935d04507ce36951686608d33a3b3647 Mon Sep 17 00:00:00 2001
Stanislav Ochotnicky 1ae9fb1
From: Stanislav Ochotnicky <sochotnicky@redhat.com>
Stanislav Ochotnicky 1ae9fb1
Date: Tue, 2 Nov 2010 14:47:05 +0100
Stanislav Ochotnicky 1ae9fb1
Subject: [PATCH 3/3] Use custom resolver
Stanislav Ochotnicky 1ae9fb1
Stanislav Ochotnicky 1ae9fb1
---
Stanislav Ochotnicky 1ae9fb1
 .../org/apache/maven/artifact/ArtifactUtils.java   |    8 ++++++--
Stanislav Ochotnicky 1ae9fb1
 .../main/java/org/apache/maven/DefaultMaven.java   |    6 ++++++
Stanislav Ochotnicky 1ae9fb1
 .../apache/maven/plugin/MavenPluginValidator.java  |    3 ++-
Stanislav Ochotnicky 1ae9fb1
 .../internal/DefaultPluginVersionResolver.java     |    7 +++++++
Stanislav Ochotnicky 1ae9fb1
 .../model/validation/DefaultModelValidator.java    |   13 ++++++++++---
Stanislav Ochotnicky 1ae9fb1
 5 files changed, 31 insertions(+), 6 deletions(-)
Stanislav Ochotnicky 1ae9fb1
Stanislav Ochotnicky 1ae9fb1
diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java b/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
Stanislav Ochotnicky 1ae9fb1
index 1f37d4f..04bc346 100644
Stanislav Ochotnicky 1ae9fb1
--- a/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
Stanislav Ochotnicky 1ae9fb1
+++ b/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
Stanislav Ochotnicky 1ae9fb1
@@ -99,12 +99,16 @@ public final class ArtifactUtils
Stanislav Ochotnicky 1ae9fb1
         {
Stanislav Ochotnicky 1ae9fb1
             throw new NullPointerException( "artifactId is null" );
Stanislav Ochotnicky 1ae9fb1
         }
Stanislav Ochotnicky 1ae9fb1
-        if ( version == null )
Stanislav Ochotnicky 1ae9fb1
+        if ( version == null && System.getProperty("maven.jpp.mode") == null )
Stanislav Ochotnicky 1ae9fb1
         {
Stanislav Ochotnicky 1ae9fb1
             throw new NullPointerException( "version is null" );
Stanislav Ochotnicky 1ae9fb1
         }
Stanislav Ochotnicky 1ae9fb1
 
Stanislav Ochotnicky 1ae9fb1
-        return groupId + ":" + artifactId + ":" + version;
Stanislav Ochotnicky 1ae9fb1
+        if( System.getProperty("maven.jpp.mode") == null ) {
Stanislav Ochotnicky 1ae9fb1
+            return groupId + ":" + artifactId + ":" + version;
Stanislav Ochotnicky 1ae9fb1
+        } else {
Stanislav Ochotnicky 1ae9fb1
+            return versionlessKey(groupId, artifactId);
Stanislav Ochotnicky 1ae9fb1
+        }
Stanislav Ochotnicky 1ae9fb1
     }
Stanislav Ochotnicky 1ae9fb1
 
Stanislav Ochotnicky 1ae9fb1
     public static Map<String, Artifact> artifactMapByVersionlessId( Collection<Artifact> artifacts )
Stanislav Ochotnicky 1ae9fb1
diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
Stanislav Ochotnicky 1ae9fb1
index e892ee9..b0bfea6 100644
Stanislav Ochotnicky 1ae9fb1
--- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
Stanislav Ochotnicky 1ae9fb1
+++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
Stanislav Ochotnicky 1ae9fb1
@@ -55,6 +55,7 @@ import org.apache.maven.project.ProjectBuildingException;
Stanislav Ochotnicky 1ae9fb1
 import org.apache.maven.project.ProjectBuildingRequest;
Stanislav Ochotnicky 1ae9fb1
 import org.apache.maven.project.ProjectBuildingResult;
Stanislav Ochotnicky 1ae9fb1
 import org.apache.maven.project.ProjectSorter;
Stanislav Ochotnicky 1ae9fb1
+import org.apache.maven.artifact.resolver.JavadirWorkspaceReader;
Stanislav Ochotnicky 1ae9fb1
 import org.apache.maven.repository.DelegatingLocalArtifactRepository;
Stanislav Ochotnicky 1ae9fb1
 import org.apache.maven.repository.LocalRepositoryNotAccessibleException;
Stanislav Ochotnicky 1ae9fb1
 import org.apache.maven.settings.Mirror;
Stanislav Ochotnicky 1ae9fb1
@@ -361,6 +362,11 @@ public class DefaultMaven
Stanislav Ochotnicky 1ae9fb1
             session.setWorkspaceReader( workspaceRepository );
Stanislav Ochotnicky 1ae9fb1
         }
Stanislav Ochotnicky 1ae9fb1
 
Stanislav Ochotnicky 1ae9fb1
+        if ( System.getProperty("maven.jpp.mode") != null)
Stanislav Ochotnicky 1ae9fb1
+        {
Stanislav Ochotnicky 1ae9fb1
+            session.setWorkspaceReader(new JavadirWorkspaceReader());
Stanislav Ochotnicky 1ae9fb1
+        }
Stanislav Ochotnicky 1ae9fb1
+
Stanislav Ochotnicky 1ae9fb1
         DefaultSettingsDecryptionRequest decrypt = new DefaultSettingsDecryptionRequest();
Stanislav Ochotnicky 1ae9fb1
         decrypt.setProxies( request.getProxies() );
Stanislav Ochotnicky 1ae9fb1
         decrypt.setServers( request.getServers() );
Stanislav Ochotnicky 1ae9fb1
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java b/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java
Stanislav Ochotnicky 1ae9fb1
index 009635b..91ad68e 100644
Stanislav Ochotnicky 1ae9fb1
--- a/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java
Stanislav Ochotnicky 1ae9fb1
+++ b/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java
Stanislav Ochotnicky 1ae9fb1
@@ -60,7 +60,8 @@ public class MavenPluginValidator
Stanislav Ochotnicky 1ae9fb1
             errors.add( "Plugin's descriptor contains the wrong artifact ID: " + pluginDescriptor.getArtifactId() );
Stanislav Ochotnicky 1ae9fb1
         }
Stanislav Ochotnicky 1ae9fb1
 
Stanislav Ochotnicky 1ae9fb1
-        if ( !pluginArtifact.getBaseVersion().equals( pluginDescriptor.getVersion() ) )
Stanislav Ochotnicky 1ae9fb1
+        if ( !pluginArtifact.getBaseVersion().equals( pluginDescriptor.getVersion() )
Stanislav Ochotnicky 1ae9fb1
+             && System.getProperty("maven.jpp.mode") == null)
Stanislav Ochotnicky 1ae9fb1
         {
Stanislav Ochotnicky 1ae9fb1
             errors.add( "Plugin's descriptor contains the wrong version: " + pluginDescriptor.getVersion() );
Stanislav Ochotnicky 1ae9fb1
         }
Stanislav Ochotnicky 1ae9fb1
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java b/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
Stanislav Ochotnicky 1ae9fb1
index fb074fb..9583d05 100644
Stanislav Ochotnicky 1ae9fb1
--- a/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
Stanislav Ochotnicky 1ae9fb1
+++ b/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
Stanislav Ochotnicky 1ae9fb1
@@ -75,6 +75,13 @@ public class DefaultPluginVersionResolver
Stanislav Ochotnicky 1ae9fb1
         throws PluginVersionResolutionException
Stanislav Ochotnicky 1ae9fb1
     {
Stanislav Ochotnicky 1ae9fb1
         logger.debug( "Resolving plugin version for " + request.getGroupId() + ":" + request.getArtifactId() );
Stanislav Ochotnicky 1ae9fb1
+        if (System.getProperty("maven.jpp.mode") != null) {
Stanislav Ochotnicky 1ae9fb1
+            DefaultPluginVersionResult result = new DefaultPluginVersionResult("latest");
Stanislav Ochotnicky 1ae9fb1
+            result.setRepository(request.getRepositorySession().getWorkspaceReader().getRepository());
Stanislav Ochotnicky 1ae9fb1
+            logger.debug( "Resolved plugin version for " + request.getGroupId() + ":" + request.getArtifactId()
Stanislav Ochotnicky 1ae9fb1
+                          + " to latest from repository " + result.getRepository());
Stanislav Ochotnicky 1ae9fb1
+            return result;
Stanislav Ochotnicky 1ae9fb1
+        }
Stanislav Ochotnicky 1ae9fb1
 
Stanislav Ochotnicky 1ae9fb1
         PluginVersionResult result = resolveFromProject( request );
Stanislav Ochotnicky 1ae9fb1
 
Stanislav Ochotnicky 1ae9fb1
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java b/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
Stanislav Ochotnicky 1ae9fb1
index 033211a..1c09272 100644
Stanislav Ochotnicky 1ae9fb1
--- a/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
Stanislav Ochotnicky 1ae9fb1
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
Stanislav Ochotnicky 1ae9fb1
@@ -405,7 +405,10 @@ public class DefaultModelValidator
Stanislav Ochotnicky 1ae9fb1
 
Stanislav Ochotnicky 1ae9fb1
                 if ( !management )
Stanislav Ochotnicky 1ae9fb1
                 {
Stanislav Ochotnicky 1ae9fb1
-                    validateVersion( prefix + "version", problems, errOn30, d.getVersion(), d.getManagementKey(), d );
Stanislav Ochotnicky 1ae9fb1
+                    if(System.getProperty("maven.jpp.mode") != null && d.getVersion() == null)
Stanislav Ochotnicky 1ae9fb1
+                        d.setVersion("latest");
Stanislav Ochotnicky 1ae9fb1
+                    else
Stanislav Ochotnicky 1ae9fb1
+                        validateVersion( prefix + "version", problems, errOn30, d.getVersion(), d.getManagementKey(), d );
Stanislav Ochotnicky 1ae9fb1
 
Stanislav Ochotnicky 1ae9fb1
                     /*
Stanislav Ochotnicky 1ae9fb1
                      * TODO: Extensions like Flex Mojos use custom scopes like "merged", "internal", "external", etc.
Stanislav Ochotnicky 1ae9fb1
@@ -433,7 +436,10 @@ public class DefaultModelValidator
Stanislav Ochotnicky 1ae9fb1
             {
Stanislav Ochotnicky 1ae9fb1
                 validateEffectiveDependency( problems, d, false, prefix, request );
Stanislav Ochotnicky 1ae9fb1
 
Stanislav Ochotnicky 1ae9fb1
-                validateVersion( prefix + "version", problems, errOn30, d.getVersion(), d.getManagementKey(), d );
Stanislav Ochotnicky 1ae9fb1
+                if(System.getProperty("maven.jpp.mode") != null && d.getVersion() == null)
Stanislav Ochotnicky 1ae9fb1
+                    d.setVersion("latest");
Stanislav Ochotnicky 1ae9fb1
+                else
Stanislav Ochotnicky 1ae9fb1
+                    validateVersion( prefix + "version", problems, errOn30, d.getVersion(), d.getManagementKey(), d );
Stanislav Ochotnicky 1ae9fb1
 
Stanislav Ochotnicky 1ae9fb1
                 validateEnum( prefix + "scope", problems, errOn30, d.getScope(), d.getManagementKey(), d, "compile",
Stanislav Ochotnicky 1ae9fb1
                               "runtime", "system" );
Stanislav Ochotnicky 1ae9fb1
@@ -452,7 +458,8 @@ public class DefaultModelValidator
Stanislav Ochotnicky 1ae9fb1
         {
Stanislav Ochotnicky 1ae9fb1
             validateStringNotEmpty( prefix + "type", problems, Severity.ERROR, d.getType(), d.getManagementKey(), d );
Stanislav Ochotnicky 1ae9fb1
 
Stanislav Ochotnicky 1ae9fb1
-            validateStringNotEmpty( prefix + "version", problems, Severity.ERROR, d.getVersion(), d.getManagementKey(),
Stanislav Ochotnicky 1ae9fb1
+            if(System.getProperty("maven.jpp.mode") == null)
Stanislav Ochotnicky 1ae9fb1
+                validateStringNotEmpty( prefix + "version", problems, Severity.ERROR, d.getVersion(), d.getManagementKey(),
Stanislav Ochotnicky 1ae9fb1
                                     d );
Stanislav Ochotnicky 1ae9fb1
         }
Stanislav Ochotnicky 1ae9fb1
 
Stanislav Ochotnicky 1ae9fb1
-- 
Stanislav Ochotnicky 1ae9fb1
1.7.3.2
Stanislav Ochotnicky 1ae9fb1