You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/07/20 20:13:50 UTC

svn commit: r795939 - /maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java

Author: bentmann
Date: Mon Jul 20 18:13:49 2009
New Revision: 795939

URL: http://svn.apache.org/viewvc?rev=795939&view=rev
Log:
o Optimized performance (the string concatenation in getId() severely affected ReactorArtifactRepository which in turn is heavily used for key calculation/comparision in the plugin & metadata cache)

Modified:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java?rev=795939&r1=795938&r2=795939&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java Mon Jul 20 18:13:49 2009
@@ -1598,18 +1598,27 @@
         {
             return false;
         }
-        else
-        {
-            MavenProject otherProject = (MavenProject) other;
 
-            return getId().equals( otherProject.getId() );
-        }
+        MavenProject that = (MavenProject) other;
+
+        return eq( getArtifactId(), that.getArtifactId() )
+            && eq( getGroupId(), that.getGroupId() )
+            && eq( getVersion(), that.getVersion() );
+    }
+
+    private static <T> boolean eq( T s1, T s2 )
+    {
+        return ( s1 != null ) ? s1.equals( s2 ) : s2 == null;
     }
 
     @Override
     public int hashCode()
     {
-        return getId().hashCode();
+        int hash = 17;
+        hash = 31 * hash + getGroupId().hashCode();
+        hash = 31 * hash + getArtifactId().hashCode();
+        hash = 31 * hash + getVersion().hashCode();
+        return hash;
     }
 
     public List<Extension> getBuildExtensions()