Author: bentmann
Date: Mon Feb 28 12:07:53 2011
New Revision: 1075309

URL: http://svn.apache.org/viewvc?rev=1075309&view=rev
Log:
o Restored runtime compatibility with plugins that implement custom 
ArtifactRepositoryLayouts (e.g. appassembler-maven-plugin). The method getId() 
was added in 3.0 and as such is not implemented by those custom impls. The 
refactoring done in r1073990 for MNG-4991 eventually made this discrepancy show 
up during plugin execution.

Modified:
    
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java
    
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java
    
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java
    
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/LegacyRepositorySystem.java
    
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
    
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/MavenArtifactRepository.java
    
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java

Modified: 
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java?rev=1075309&r1=1075308&r2=1075309&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java
 (original)
+++ 
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java
 Mon Feb 28 12:07:53 2011
@@ -180,7 +180,7 @@ public class DefaultArtifactRepository
 
         sb.append( "       id: " ).append( getId() ).append( "\n" );
         sb.append( "      url: " ).append( getUrl() ).append( "\n" );
-        sb.append( "   layout: " ).append( layout != null ? layout.getId() : 
"none" ).append( "\n" );
+        sb.append( "   layout: " ).append( layout != null ? layout : "none" 
).append( "\n" );
 
         if ( snapshots != null )
         {

Modified: 
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java?rev=1075309&r1=1075308&r2=1075309&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java
 (original)
+++ 
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java
 Mon Feb 28 12:07:53 2011
@@ -83,4 +83,11 @@ public class FlatRepositoryLayout
     {
         return pathOfRepositoryMetadata( metadata.getRemoteFilename() );
     }
+
+    @Override
+    public String toString()
+    {
+        return getId();
+    }
+
 }

Modified: 
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java?rev=1075309&r1=1075308&r2=1075309&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java
 (original)
+++ 
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java
 Mon Feb 28 12:07:53 2011
@@ -23,6 +23,7 @@ import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.List;
 
+import org.apache.maven.RepositoryUtils;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.settings.Mirror;
 import org.codehaus.plexus.component.annotations.Component;
@@ -143,7 +144,7 @@ public class DefaultMirrorSelector
 
     static boolean matchesLayout( ArtifactRepository repository, Mirror mirror 
)
     {
-        return matchesLayout( repository.getLayout().getId(), 
mirror.getMirrorOfLayouts() );
+        return matchesLayout( RepositoryUtils.getLayout( repository ), 
mirror.getMirrorOfLayouts() );
     }
 
     /**

Modified: 
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/LegacyRepositorySystem.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/LegacyRepositorySystem.java?rev=1075309&r1=1075308&r2=1075309&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/LegacyRepositorySystem.java
 (original)
+++ 
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/LegacyRepositorySystem.java
 Mon Feb 28 12:07:53 2011
@@ -883,6 +883,12 @@ public class LegacyRepositorySystem
             return fallback.pathOfRemoteRepositoryMetadata( metadata );
         }
 
+        @Override
+        public String toString()
+        {
+            return getId();
+        }
+
     }
 
 }

Modified: 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java?rev=1075309&r1=1075308&r2=1075309&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
 (original)
+++ 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
 Mon Feb 28 12:07:53 2011
@@ -197,7 +197,7 @@ public class RepositoryUtils
         RemoteRepository result = null;
         if ( repo != null )
         {
-            result = new RemoteRepository( repo.getId(), 
repo.getLayout().getId(), repo.getUrl() );
+            result = new RemoteRepository( repo.getId(), getLayout( repo ), 
repo.getUrl() );
             result.setPolicy( true, toPolicy( repo.getSnapshots() ) );
             result.setPolicy( false, toPolicy( repo.getReleases() ) );
             result.setAuthentication( toAuthentication( 
repo.getAuthentication() ) );
@@ -207,6 +207,31 @@ public class RepositoryUtils
         return result;
     }
 
+    public static String getLayout( ArtifactRepository repo )
+    {
+        try
+        {
+            return repo.getLayout().getId();
+        }
+        catch ( LinkageError e )
+        {
+            /*
+             * NOTE: getId() was added in 3.x and is as such not implemented 
by plugins compiled against 2.x APIs.
+             */
+            String className = repo.getLayout().getClass().getSimpleName();
+            if ( className.endsWith( "RepositoryLayout" ) )
+            {
+                String layout = className.substring( 0, className.length() - 
"RepositoryLayout".length() );
+                if ( layout.length() > 0 )
+                {
+                    layout = Character.toLowerCase( layout.charAt( 0 ) ) + 
layout.substring( 1 );
+                    return layout;
+                }
+            }
+            return "";
+        }
+    }
+
     private static RepositoryPolicy toPolicy( ArtifactRepositoryPolicy policy )
     {
         RepositoryPolicy result = null;

Modified: 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/MavenArtifactRepository.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/MavenArtifactRepository.java?rev=1075309&r1=1075308&r2=1075309&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/MavenArtifactRepository.java
 (original)
+++ 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/MavenArtifactRepository.java
 Mon Feb 28 12:07:53 2011
@@ -136,7 +136,7 @@ public class MavenArtifactRepository
 
         sb.append( "       id: " ).append( getId() ).append( "\n" );
         sb.append( "      url: " ).append( getUrl() ).append( "\n" );
-        sb.append( "   layout: " ).append( layout != null ? layout.getId() : 
"none" ).append( "\n" );
+        sb.append( "   layout: " ).append( layout != null ? layout : "none" 
).append( "\n" );
 
         if ( snapshots != null )
         {

Modified: 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java?rev=1075309&r1=1075308&r2=1075309&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java
 (original)
+++ 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java
 Mon Feb 28 12:07:53 2011
@@ -103,4 +103,10 @@ public class DefaultRepositoryLayout
         return directory.replace( GROUP_SEPARATOR, PATH_SEPARATOR );
     }
 
+    @Override
+    public String toString()
+    {
+        return getId();
+    }
+
 }


Reply via email to