You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jo...@apache.org on 2006/11/20 20:25:31 UTC

svn commit: r477297 - in /maven/sandbox/maven-shared-jar/src: main/java/org/apache/maven/shared/jar/ main/java/org/apache/maven/shared/jar/classes/ main/java/org/apache/maven/shared/jar/identification/ main/java/org/apache/maven/shared/jar/identificati...

Author: joakime
Date: Mon Nov 20 11:25:30 2006
New Revision: 477297

URL: http://svn.apache.org/viewvc?view=rev&rev=477297
Log:
Refactoring away from 'taxon' to 'identification' to avoid confusion on Jason's jar taxonomy efforts.

Added:
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/DefaultJarAnalyzerFactory.java   (with props)
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarAnalyzer.java
      - copied, changed from r477222, maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/Jar.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarAnalyzerFactory.java   (with props)
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/AbstractJarIdentificationExposer.java   (with props)
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/EmptyRepositoryHashSearch.java
      - copied, changed from r477222, maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/EmptyRepositoryHashSearch.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentification.java   (with props)
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentificationAnalysis.java   (with props)
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentificationExposer.java   (with props)
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/RepositoryHashSearch.java
      - copied, changed from r477222, maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/RepositoryHashSearch.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/
      - copied from r477222, maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/exposers/
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/util/
    maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/JarIdentificationAnalyzerTest.java
      - copied, changed from r477222, maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/JarTaxonAnalyzerTest.java
Removed:
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/Jar.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/AbstractJarTaxonExposer.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/EmptyRepositoryHashSearch.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/JarTaxon.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/JarTaxonAnalyzer.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/JarTaxonExposer.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/RepositoryHashSearch.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/exposers/
    maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/JarTaxonAnalyzerTest.java
Modified:
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarEntryComparator.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarException.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/classes/JarClasses.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/classes/JarClassesAnalyzer.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/EmbeddedMavenModelExposer.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/FilenameExposer.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/JarClassesExposer.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/ManifestExposer.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/RepositorySearchExposer.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/StaticMainOutputExposer.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/TextFileExposer.java
    maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/TimestampExposer.java
    maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/AbstractJarTestCase.java
    maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/JarTest.java
    maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/classes/JarClassesAnalyzerTest.java
    maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/exposers/EmbeddedMavenModelExposerTest.java

Added: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/DefaultJarAnalyzerFactory.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/DefaultJarAnalyzerFactory.java?view=auto&rev=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/DefaultJarAnalyzerFactory.java (added)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/DefaultJarAnalyzerFactory.java Mon Nov 20 11:25:30 2006
@@ -0,0 +1,65 @@
+package org.apache.maven.shared.jar;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.codehaus.plexus.PlexusConstants;
+import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.codehaus.plexus.context.Context;
+import org.codehaus.plexus.context.ContextException;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
+
+import java.io.File;
+
+/**
+ * DefaultJarAnalyzerFactory 
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ * @plexus.component role="org.apache.maven.shared.jar.JarAnalyzerFactory"
+ *                   role-hint="default"
+ */
+public class DefaultJarAnalyzerFactory
+    extends AbstractLogEnabled
+    implements JarAnalyzerFactory, Contextualizable
+{
+    private PlexusContainer container;
+
+    public JarAnalyzer getJarAnalyzer( File file )
+        throws JarException
+    {
+        try
+        {
+            JarAnalyzer jaranalyzer = (JarAnalyzer) container.lookup( JarAnalyzer.ROLE );
+            jaranalyzer.setFile( file );
+            return jaranalyzer;
+        }
+        catch ( ComponentLookupException e )
+        {
+            String emsg = "Unable to load Jar Analyzer for file " + file.getAbsolutePath();
+            getLogger().warn( emsg, e );
+            throw new JarException( emsg );
+        }
+    }
+
+    public void contextualize( Context context )
+        throws ContextException
+    {
+        container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
+    }
+}

Propchange: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/DefaultJarAnalyzerFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/DefaultJarAnalyzerFactory.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Copied: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarAnalyzer.java (from r477222, maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/Jar.java)
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarAnalyzer.java?view=diff&rev=477297&p1=maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/Jar.java&r1=477222&p2=maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarAnalyzer.java&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/Jar.java (original)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarAnalyzer.java Mon Nov 20 11:25:30 2006
@@ -17,7 +17,9 @@
  */
 
 import org.apache.maven.shared.jar.classes.JarClasses;
-import org.apache.maven.shared.jar.taxon.JarTaxon;
+import org.apache.maven.shared.jar.classes.JarClassesAnalyzer;
+import org.apache.maven.shared.jar.identification.JarIdentification;
+import org.apache.maven.shared.jar.identification.JarIdentificationAnalysis;
 import org.codehaus.plexus.digest.Digester;
 import org.codehaus.plexus.digest.DigesterException;
 import org.codehaus.plexus.digest.StreamingDigester;
@@ -40,14 +42,16 @@
 import java.util.regex.Pattern;
 
 /**
- * A Jar Toolbox for working with Jar Files.
+ * A JarAnalyzer Toolbox for working with Jar Files.
+ * 
+ * Use the {@link JarAnalyzerFactory#getJarAnalyzer(File)} to obtain a valid JarAnalyzer object.
  *
- * @plexus.component role="org.apache.maven.shared.jar.Jar" instantiation-strategy="per-lookup"
+ * @plexus.component role="org.apache.maven.shared.jar.JarAnalyzer" instantiation-strategy="per-lookup"
  */
-public class Jar
+public class JarAnalyzer
     extends AbstractLogEnabled
 {
-    public static final String ROLE = Jar.class.getName();
+    public static final String ROLE = JarAnalyzer.class.getName();
 
     private List entries;
 
@@ -57,22 +61,21 @@
 
     private JarClasses classes;
 
-    private JarTaxon taxon;
+    private JarIdentification identification;
 
     private boolean isSealed;
 
     /**
-     * @plexus.requirement role-hint="classes"
+     * @plexus.requirement
      */
-    private JarAnalyzer classesAnalyzer;
+    private JarClassesAnalyzer classesAnalyzer;
 
     /**
-     * @plexus.requirement role-hint="taxon"
+     * @plexus.requirement
      */
-    private JarAnalyzer taxonAnalyzer;
-
-    public void setFile( File file )
-        throws JarException
+    private JarIdentificationAnalysis taxonAnalyzer;
+    
+    protected void setFile( File file ) throws JarException
     {
         if ( file == null )
         {
@@ -83,7 +86,7 @@
     }
 
     /**
-     * Compute the HashCode for this Jar File.
+     * Compute the HashCode for this JarAnalyzer File.
      *
      * @return the hashcode, or null if not able to be computed.
      */
@@ -101,7 +104,7 @@
     }
 
     /**
-     * Compute the HashCode for the Bytecode within this Jar File.
+     * Compute the HashCode for the Bytecode within this JarAnalyzer File.
      * <p/>
      * Useful to see thru a recompile, recompression, or timestamp change.
      *
@@ -251,7 +254,7 @@
 
     public String toString()
     {
-        return "<Jar:" + jarfile.getName() + ">";
+        return "<JarAnalyzer:" + jarfile.getName() + ">";
     }
 
     public boolean isSealed()
@@ -279,19 +282,19 @@
         this.classes = classes;
     }
 
-    public JarTaxon getTaxon()
+    public JarIdentification getIdentification()
     {
-        if ( taxon == null )
+        if ( identification == null )
         {
             taxonAnalyzer.analyze( this );
         }
 
-        return taxon;
+        return identification;
     }
 
-    public void setTaxon( JarTaxon taxon )
+    public void setIdentification( JarIdentification taxon )
     {
-        this.taxon = taxon;
+        this.identification = taxon;
     }
 
     public List getEntries()

Added: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarAnalyzerFactory.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarAnalyzerFactory.java?view=auto&rev=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarAnalyzerFactory.java (added)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarAnalyzerFactory.java Mon Nov 20 11:25:30 2006
@@ -0,0 +1,32 @@
+package org.apache.maven.shared.jar;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.File;
+
+/**
+ * JarAnalyzerFactory 
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public interface JarAnalyzerFactory
+{
+    public static final String ROLE = JarAnalyzer.class.getName();
+    
+    public JarAnalyzer getJarAnalyzer(File file) throws JarException;
+}

Propchange: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarAnalyzerFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarAnalyzerFactory.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarEntryComparator.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarEntryComparator.java?view=diff&rev=477297&r1=477296&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarEntryComparator.java (original)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarEntryComparator.java Mon Nov 20 11:25:30 2006
@@ -1,11 +1,30 @@
-/**
- * 
- */
 package org.apache.maven.shared.jar;
 
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import java.util.Comparator;
 import java.util.jar.JarEntry;
 
+/**
+ * JarEntryComparator 
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
 class JarEntryComparator
     implements Comparator
 {
@@ -16,10 +35,12 @@
         {
             return 0;
         }
+        
         if ( !( o2 instanceof JarEntry ) )
         {
             return 0;
         }
+        
         JarEntry j1 = (JarEntry) o1;
         JarEntry j2 = (JarEntry) o2;
 

Modified: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarException.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarException.java?view=diff&rev=477297&r1=477296&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarException.java (original)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/JarException.java Mon Nov 20 11:25:30 2006
@@ -17,7 +17,7 @@
  */
 
 /**
- * Exceptions that occur during Jar utility methods.
+ * Exceptions that occur during JarAnalyzer utility methods.
  */
 public class JarException
     extends Exception

Modified: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/classes/JarClasses.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/classes/JarClasses.java?view=diff&rev=477297&r1=477296&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/classes/JarClasses.java (original)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/classes/JarClasses.java Mon Nov 20 11:25:30 2006
@@ -22,7 +22,7 @@
 import java.util.List;
 
 /**
- * Facts about the classes within a Jar File.
+ * Facts about the classes within a JarAnalyzer File.
  */
 public class JarClasses
 {
@@ -31,6 +31,8 @@
     private List packages;
 
     private List classNames;
+    
+    private List methodNames;
 
     private boolean isDebugPresent;
 
@@ -132,5 +134,15 @@
     public void setJdkRevision( String jdkRevision )
     {
         this.jdkRevision = jdkRevision;
+    }
+
+    public List getMethodNames()
+    {
+        return methodNames;
+    }
+
+    public void setMethodNames( List methodNames )
+    {
+        this.methodNames = methodNames;
     }
 }

Modified: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/classes/JarClassesAnalyzer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/classes/JarClassesAnalyzer.java?view=diff&rev=477297&r1=477296&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/classes/JarClassesAnalyzer.java (original)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/classes/JarClassesAnalyzer.java Mon Nov 20 11:25:30 2006
@@ -22,7 +22,6 @@
 import org.apache.bcel.classfile.JavaClass;
 import org.apache.bcel.classfile.LineNumberTable;
 import org.apache.bcel.classfile.Method;
-import org.apache.maven.shared.jar.Jar;
 import org.apache.maven.shared.jar.JarAnalyzer;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
@@ -32,18 +31,17 @@
 import java.util.jar.JarEntry;
 
 /**
- * Jar Classes Analyzer
+ * JarAnalyzer Classes Analyzer
  *
  * @plexus.component role="org.apache.maven.shared.jar.JarAnalyzer" role-hint="classes"
  */
 public class JarClassesAnalyzer
     extends AbstractLogEnabled
-    implements JarAnalyzer
 {
     /**
      * Analyze and populate the <code>jar.information.classes</code> object.
      */
-    public void analyze( Jar jar )
+    public void analyze( JarAnalyzer jar )
     {
         try
         {
@@ -71,7 +69,7 @@
                 }
                 catch ( ClassFormatException e )
                 {
-                    getLogger().warn( "Unable to process class " + classname + " in Jar File " + jar.getFile(), e );
+                    getLogger().warn( "Unable to process class " + classname + " in JarAnalyzer File " + jar.getFile(), e );
                     continue;
                 }
 
@@ -139,7 +137,7 @@
         }
         catch ( IOException e )
         {
-            getLogger().warn( "Unable to process Jar File " + jar.getFile(), e );
+            getLogger().warn( "Unable to process JarAnalyzer File " + jar.getFile(), e );
         }
     }
 

Added: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/AbstractJarIdentificationExposer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/AbstractJarIdentificationExposer.java?view=auto&rev=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/AbstractJarIdentificationExposer.java (added)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/AbstractJarIdentificationExposer.java Mon Nov 20 11:25:30 2006
@@ -0,0 +1,151 @@
+package org.apache.maven.shared.jar.identification;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.shared.jar.JarAnalyzer;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.logging.console.ConsoleLogger;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Abstract JarAnalyzer Taxon Exposer.
+ */
+public abstract class AbstractJarIdentificationExposer
+    extends AbstractLogEnabled
+    implements JarIdentificationExposer
+{
+    private JarAnalyzer jar;
+
+    private List groupIds = null;
+
+    private List artifactIds = null;
+
+    private List versions = null;
+
+    private List names = null;
+
+    private List vendors = null;
+
+    public void initialize()
+    {
+        jar = null;
+        groupIds = null;
+        artifactIds = null;
+        versions = null;
+        names = null;
+        vendors = null;
+    }
+
+    public JarAnalyzer getJar()
+    {
+        return jar;
+    }
+
+    public void setJar( JarAnalyzer jar )
+    {
+        this.jar = jar;
+    }
+
+    private List addUnique( List list, String id )
+    {
+        if ( id == null )
+        {
+            return list;
+        }
+
+        if ( list == null )
+        {
+            list = new ArrayList();
+        }
+
+        if ( !list.contains( id ) )
+        {
+            list.add( id );
+        }
+
+        return list;
+    }
+
+    protected void addGroupId( String id )
+    {
+        this.groupIds = addUnique( groupIds, id );
+    }
+
+    protected void addArtifactId( String id )
+    {
+        this.artifactIds = addUnique( artifactIds, id );
+    }
+
+    protected void addVersion( String id )
+    {
+        this.versions = addUnique( versions, id );
+    }
+
+    protected void addName( String id )
+    {
+        this.names = addUnique( names, id );
+    }
+
+    protected void addVendor( String id )
+    {
+        this.vendors = addUnique( vendors, id );
+    }
+
+    public List getGroupIds()
+    {
+        return groupIds;
+    }
+
+    public List getArtifactIds()
+    {
+        return artifactIds;
+    }
+
+    public List getVersions()
+    {
+        return versions;
+    }
+
+    public List getNames()
+    {
+        return names;
+    }
+
+    public List getVendors()
+    {
+        return vendors;
+    }
+
+    private Logger log;
+
+    protected Logger getLogger()
+    {
+        if ( log == null )
+        {
+            log = super.getLogger();
+            if ( log == null )
+            {
+                log = new ConsoleLogger( Logger.LEVEL_DEBUG, AbstractJarIdentificationExposer.class.getName() );
+            }
+        }
+
+        return log;
+    }
+}

Propchange: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/AbstractJarIdentificationExposer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/AbstractJarIdentificationExposer.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Copied: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/EmptyRepositoryHashSearch.java (from r477222, maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/EmptyRepositoryHashSearch.java)
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/EmptyRepositoryHashSearch.java?view=diff&rev=477297&p1=maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/EmptyRepositoryHashSearch.java&r1=477222&p2=maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/EmptyRepositoryHashSearch.java&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/EmptyRepositoryHashSearch.java (original)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/EmptyRepositoryHashSearch.java Mon Nov 20 11:25:30 2006
@@ -1,4 +1,4 @@
-package org.apache.maven.shared.jar.taxon;
+package org.apache.maven.shared.jar.identification;
 
 /*
  * Copyright 2001-2006 The Apache Software Foundation.
@@ -25,7 +25,7 @@
  * It is expected for the users of this library to provide an implementation
  * of a RepositoryHashSearch against a real repository.
  *
- * @plexus.component role="org.apache.maven.shared.jar.taxon.RepositoryHashSearch"
+ * @plexus.component role="org.apache.maven.shared.jar.identification.RepositoryHashSearch"
  */
 public class EmptyRepositoryHashSearch
     implements RepositoryHashSearch

Added: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentification.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentification.java?view=auto&rev=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentification.java (added)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentification.java Mon Nov 20 11:25:30 2006
@@ -0,0 +1,191 @@
+package org.apache.maven.shared.jar.identification;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * JarAnalyzer Taxon, the set of Maven dependency information both found and potential.
+ */
+public class JarIdentification
+{
+    private boolean wellKnown = false;
+
+    private String groupId;
+
+    private String artifactId;
+
+    private String version;
+
+    private String name;
+
+    private String vendor;
+
+    private List potentials;
+
+    public JarIdentification()
+    {
+        potentials = new ArrayList();
+    }
+
+    public String getArtifactId()
+    {
+        return artifactId;
+    }
+
+    public void setArtifactId( String artifactId )
+    {
+        this.artifactId = artifactId;
+    }
+
+    public String getGroupId()
+    {
+        return groupId;
+    }
+
+    public void setGroupId( String groupId )
+    {
+        this.groupId = groupId;
+    }
+
+    public String getName()
+    {
+        return name;
+    }
+
+    public void setName( String name )
+    {
+        this.name = name;
+    }
+
+    public List getPotentials()
+    {
+        return potentials;
+    }
+
+    public void setPotentials( List potentials )
+    {
+        this.potentials = potentials;
+    }
+
+    public String getVendor()
+    {
+        return vendor;
+    }
+
+    public void setVendor( String vendor )
+    {
+        this.vendor = vendor;
+    }
+
+    public String getVersion()
+    {
+        return version;
+    }
+
+    public void setVersion( String version )
+    {
+        this.version = version;
+    }
+
+    public boolean isWellKnown()
+    {
+        return wellKnown;
+    }
+
+    public void setWellKnown( boolean wellKnown )
+    {
+        this.wellKnown = wellKnown;
+    }
+
+    public List getGroupIds()
+    {
+        List ret = new ArrayList();
+        Iterator it = potentials.iterator();
+        while ( it.hasNext() )
+        {
+            AbstractJarIdentificationExposer exposer = (AbstractJarIdentificationExposer) it.next();
+            if ( exposer.getGroupIds() != null )
+            {
+                ret.addAll( exposer.getGroupIds() );
+            }
+        }
+        return ret;
+    }
+
+    public List getArtifactIds()
+    {
+        List ret = new ArrayList();
+        Iterator it = potentials.iterator();
+        while ( it.hasNext() )
+        {
+            AbstractJarIdentificationExposer exposer = (AbstractJarIdentificationExposer) it.next();
+            if ( exposer.getArtifactIds() != null )
+            {
+                ret.addAll( exposer.getArtifactIds() );
+            }
+        }
+        return ret;
+    }
+
+    public List getVersions()
+    {
+        List ret = new ArrayList();
+        Iterator it = potentials.iterator();
+        while ( it.hasNext() )
+        {
+            AbstractJarIdentificationExposer exposer = (AbstractJarIdentificationExposer) it.next();
+            if ( exposer.getVersions() != null )
+            {
+                ret.addAll( exposer.getVersions() );
+            }
+        }
+        return ret;
+    }
+
+    public List getNames()
+    {
+        List ret = new ArrayList();
+        Iterator it = potentials.iterator();
+        while ( it.hasNext() )
+        {
+            AbstractJarIdentificationExposer exposer = (AbstractJarIdentificationExposer) it.next();
+            if ( exposer.getNames() != null )
+            {
+                ret.addAll( exposer.getNames() );
+            }
+        }
+        return ret;
+    }
+
+    public List getVendors()
+    {
+        List ret = new ArrayList();
+        Iterator it = potentials.iterator();
+        while ( it.hasNext() )
+        {
+            AbstractJarIdentificationExposer exposer = (AbstractJarIdentificationExposer) it.next();
+            if ( exposer.getVendors() != null )
+            {
+                ret.addAll( exposer.getVendors() );
+            }
+        }
+        return ret;
+    }
+}

Propchange: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentification.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentification.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentificationAnalysis.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentificationAnalysis.java?view=auto&rev=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentificationAnalysis.java (added)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentificationAnalysis.java Mon Nov 20 11:25:30 2006
@@ -0,0 +1,179 @@
+package org.apache.maven.shared.jar.identification;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.shared.jar.JarAnalyzer;
+import org.codehaus.plexus.util.StringUtils;
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * JarAnalyzer Taxon Analyzer
+ *
+ * @plexus.component role="org.apache.maven.shared.jar.JarAnalyzer" role-hint="taxon"
+ */
+public class JarIdentificationAnalysis
+{
+    /**
+     * @plexus.requirement role="org.apache.maven.shared.jar.identification.JarIdentificationExposer"
+     */
+    private List exposers;
+
+    public void analyze( JarAnalyzer jar )
+    {
+        JarIdentification taxon = new JarIdentification();
+
+        for ( Iterator i = exposers.iterator(); i.hasNext(); )
+        {
+            JarIdentificationExposer exposer = (JarIdentificationExposer) i.next();
+            exposer.initialize();
+            exposer.setJar( jar );
+            addExposer( taxon, exposer );
+        }
+
+        normalize( taxon );
+
+        jar.setIdentification( taxon );
+    }
+
+    private void addExposer( JarIdentification taxon, JarIdentificationExposer exposer )
+    {
+        taxon.getPotentials().add( exposer );
+        exposer.expose();
+
+        if ( exposer.isAuthoritative() )
+        {
+            if ( StringUtils.isEmpty( taxon.getGroupId() ) && isNotEmpty( exposer.getGroupIds() ) )
+            {
+                taxon.setGroupId( (String) exposer.getGroupIds().get( 0 ) );
+            }
+
+            if ( StringUtils.isEmpty( taxon.getArtifactId() ) && isNotEmpty( exposer.getArtifactIds() ) )
+            {
+                taxon.setArtifactId( (String) exposer.getArtifactIds().get( 0 ) );
+            }
+
+            if ( StringUtils.isEmpty( taxon.getVersion() ) && isNotEmpty( exposer.getVersions() ) )
+            {
+                taxon.setVersion( (String) exposer.getVersions().get( 0 ) );
+            }
+
+            if ( StringUtils.isEmpty( taxon.getName() ) && isNotEmpty( exposer.getNames() ) )
+            {
+                taxon.setName( (String) exposer.getNames().get( 0 ) );
+            }
+
+            if ( StringUtils.isEmpty( taxon.getVendor() ) && isNotEmpty( exposer.getVendors() ) )
+            {
+                taxon.setVendor( (String) exposer.getVendors().get( 0 ) );
+            }
+        }
+    }
+
+    private void normalize( JarIdentification taxon )
+    {
+        if ( StringUtils.isEmpty( taxon.getGroupId() ) )
+        {
+            taxon.setGroupId( pickSmallest( taxon.getGroupIds() ) );
+        }
+
+        if ( StringUtils.isEmpty( taxon.getArtifactId() ) )
+        {
+            taxon.setArtifactId( pickLargest( taxon.getArtifactIds() ) );
+        }
+
+        if ( StringUtils.isEmpty( taxon.getVersion() ) )
+        {
+            taxon.setVersion( pickSmallest( taxon.getVersions() ) );
+        }
+
+        if ( StringUtils.isEmpty( taxon.getName() ) )
+        {
+            taxon.setName( pickLargest( taxon.getNames() ) );
+        }
+
+        if ( StringUtils.isEmpty( taxon.getVendor() ) )
+        {
+            taxon.setVendor( pickLargest( taxon.getVendors() ) );
+        }
+    }
+
+    private String pickSmallest( List list )
+    {
+        if ( isEmpty( list ) )
+        {
+            return null;
+        }
+
+        int size = Integer.MAX_VALUE;
+        String smallest = null;
+        Iterator it = list.iterator();
+        while ( it.hasNext() )
+        {
+            String val = (String) it.next();
+
+            if ( StringUtils.isNotEmpty( val ) )
+            {
+                if ( val.length() < size )
+                {
+                    smallest = val;
+                    size = val.length();
+                }
+            }
+        }
+
+        return smallest;
+    }
+
+    private String pickLargest( List list )
+    {
+        if ( isEmpty( list ) )
+        {
+            return null;
+        }
+
+        int size = Integer.MIN_VALUE;
+        String largest = null;
+        Iterator it = list.iterator();
+        while ( it.hasNext() )
+        {
+            String val = (String) it.next();
+            if ( StringUtils.isNotEmpty( val ) )
+            {
+                if ( val.length() > size )
+                {
+                    largest = val;
+                    size = val.length();
+                }
+            }
+        }
+
+        return largest;
+    }
+
+    private boolean isEmpty( Collection coll )
+    {
+        return ( ( coll == null ) || coll.isEmpty() );
+    }
+
+    private boolean isNotEmpty( Collection coll )
+    {
+        return ( ( coll != null ) && !coll.isEmpty() );
+    }
+}

Propchange: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentificationAnalysis.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentificationAnalysis.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentificationExposer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentificationExposer.java?view=auto&rev=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentificationExposer.java (added)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentificationExposer.java Mon Nov 20 11:25:30 2006
@@ -0,0 +1,50 @@
+package org.apache.maven.shared.jar.identification;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.shared.jar.JarAnalyzer;
+
+import java.util.List;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public interface JarIdentificationExposer
+{
+    static final String ROLE = JarIdentificationExposer.class.getName();
+
+    void setJar( JarAnalyzer jar );
+
+    void initialize();
+
+    void expose();
+
+    boolean isAuthoritative();
+
+    String getExposerName();
+
+    List getGroupIds();
+
+    List getArtifactIds();
+
+    List getVersions();
+
+    List getNames();
+
+    List getVendors();
+}

Propchange: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentificationExposer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/JarIdentificationExposer.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Copied: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/RepositoryHashSearch.java (from r477222, maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/RepositoryHashSearch.java)
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/RepositoryHashSearch.java?view=diff&rev=477297&p1=maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/RepositoryHashSearch.java&r1=477222&p2=maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/RepositoryHashSearch.java&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/RepositoryHashSearch.java (original)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/RepositoryHashSearch.java Mon Nov 20 11:25:30 2006
@@ -1,4 +1,4 @@
-package org.apache.maven.shared.jar.taxon;
+package org.apache.maven.shared.jar.identification;
 
 /*
  * Copyright 2001-2006 The Apache Software Foundation.

Modified: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/EmbeddedMavenModelExposer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/EmbeddedMavenModelExposer.java?view=diff&rev=477297&r1=477222&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/EmbeddedMavenModelExposer.java (original)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/EmbeddedMavenModelExposer.java Mon Nov 20 11:25:30 2006
@@ -1,4 +1,4 @@
-package org.apache.maven.shared.jar.taxon.exposers;
+package org.apache.maven.shared.jar.identification.exposers;
 
 /*
  * Copyright 2001-2006 The Apache Software Foundation.
@@ -19,7 +19,7 @@
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Organization;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.apache.maven.shared.jar.taxon.AbstractJarTaxonExposer;
+import org.apache.maven.shared.jar.identification.AbstractJarIdentificationExposer;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 import java.io.IOException;
@@ -30,12 +30,12 @@
 
 
 /**
- * Jar Taxon Exposer for the Embedded Maven Model.
+ * JarAnalyzer Taxon Exposer for the Embedded Maven Model.
  *
- * @plexus.component role="org.apache.maven.shared.jar.taxon.JarTaxonExposer" role-hint="embeddedMavenModel"
+ * @plexus.component role="org.apache.maven.shared.jar.identification.JarIdentificationExposer" role-hint="embeddedMavenModel"
  */
 public class EmbeddedMavenModelExposer
-    extends AbstractJarTaxonExposer
+    extends AbstractJarIdentificationExposer
 {
     public void expose()
     {

Modified: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/FilenameExposer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/FilenameExposer.java?view=diff&rev=477297&r1=477222&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/FilenameExposer.java (original)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/FilenameExposer.java Mon Nov 20 11:25:30 2006
@@ -1,4 +1,4 @@
-package org.apache.maven.shared.jar.taxon.exposers;
+package org.apache.maven.shared.jar.identification.exposers;
 
 /*
  * Copyright 2001-2006 The Apache Software Foundation.
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-import org.apache.maven.shared.jar.taxon.AbstractJarTaxonExposer;
+import org.apache.maven.shared.jar.identification.AbstractJarIdentificationExposer;
 import org.codehaus.plexus.util.FileUtils;
 
 import java.util.regex.Matcher;
@@ -24,12 +24,12 @@
 
 
 /**
- * Jar Taxon Exposer based on Filename patterns.
+ * JarAnalyzer Taxon Exposer based on Filename patterns.
  *
- * @plexus.component role="org.apache.maven.shared.jar.taxon.JarTaxonExposer" role-hint="filename"
+ * @plexus.component role="org.apache.maven.shared.jar.identification.JarIdentificationExposer" role-hint="filename"
  */
 public class FilenameExposer
-    extends AbstractJarTaxonExposer
+    extends AbstractJarIdentificationExposer
 {
     public String getExposerName()
     {

Modified: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/JarClassesExposer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/JarClassesExposer.java?view=diff&rev=477297&r1=477222&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/JarClassesExposer.java (original)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/JarClassesExposer.java Mon Nov 20 11:25:30 2006
@@ -1,4 +1,4 @@
-package org.apache.maven.shared.jar.taxon.exposers;
+package org.apache.maven.shared.jar.identification.exposers;
 
 /*
  * Copyright 2001-2006 The Apache Software Foundation.
@@ -16,29 +16,29 @@
  * limitations under the License.
  */
 
-import org.apache.maven.shared.jar.JarAnalyzer;
 import org.apache.maven.shared.jar.classes.JarClasses;
-import org.apache.maven.shared.jar.taxon.AbstractJarTaxonExposer;
+import org.apache.maven.shared.jar.classes.JarClassesAnalyzer;
+import org.apache.maven.shared.jar.identification.AbstractJarIdentificationExposer;
 
 import java.util.Iterator;
 
 
 /**
- * Jar Taxon Exposer for the information from JarClasses.
+ * JarAnalyzer Taxon Exposer for the information from JarClasses.
  *
- * @plexus.component role="org.apache.maven.shared.jar.taxon.JarTaxonExposer" role-hint="jarClasses"
+ * @plexus.component role="org.apache.maven.shared.jar.identification.JarIdentificationExposer" role-hint="jarClasses"
  */
 public class JarClassesExposer
-    extends AbstractJarTaxonExposer
+    extends AbstractJarIdentificationExposer
 {
     /**
      * @plexus.requirement role-hint="classes"
      */
-    private JarAnalyzer analyzer;
+    private JarClassesAnalyzer analyzer;
 
     public String getExposerName()
     {
-        return "Jar Classes";
+        return "JarAnalyzer Classes";
     }
 
     public boolean isAuthoritative()

Modified: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/ManifestExposer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/ManifestExposer.java?view=diff&rev=477297&r1=477222&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/ManifestExposer.java (original)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/ManifestExposer.java Mon Nov 20 11:25:30 2006
@@ -1,4 +1,4 @@
-package org.apache.maven.shared.jar.taxon.exposers;
+package org.apache.maven.shared.jar.identification.exposers;
 
 /*
  * Copyright 2001-2006 The Apache Software Foundation.
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-import org.apache.maven.shared.jar.taxon.AbstractJarTaxonExposer;
+import org.apache.maven.shared.jar.identification.AbstractJarIdentificationExposer;
 
 import java.util.Iterator;
 import java.util.Map;
@@ -25,12 +25,12 @@
 
 
 /**
- * Jar Taxon Exposer for the Manifest.mf contents.
+ * JarAnalyzer Taxon Exposer for the Manifest.mf contents.
  *
- * @plexus.component role="org.apache.maven.shared.jar.taxon.JarTaxonExposer" role-hint="manifest"
+ * @plexus.component role="org.apache.maven.shared.jar.identification.JarIdentificationExposer" role-hint="manifest"
  */
 public class ManifestExposer
-    extends AbstractJarTaxonExposer
+    extends AbstractJarIdentificationExposer
 {
     public String getExposerName()
     {

Modified: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/RepositorySearchExposer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/RepositorySearchExposer.java?view=diff&rev=477297&r1=477222&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/RepositorySearchExposer.java (original)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/RepositorySearchExposer.java Mon Nov 20 11:25:30 2006
@@ -1,4 +1,4 @@
-package org.apache.maven.shared.jar.taxon.exposers;
+package org.apache.maven.shared.jar.identification.exposers;
 
 /*
  * Copyright 2001-2006 The Apache Software Foundation.
@@ -17,8 +17,8 @@
  */
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.shared.jar.taxon.AbstractJarTaxonExposer;
-import org.apache.maven.shared.jar.taxon.RepositoryHashSearch;
+import org.apache.maven.shared.jar.identification.AbstractJarIdentificationExposer;
+import org.apache.maven.shared.jar.identification.RepositoryHashSearch;
 import org.codehaus.plexus.digest.Digester;
 import org.codehaus.plexus.digest.StreamingDigester;
 
@@ -27,12 +27,12 @@
 import java.util.List;
 
 /**
- * Jar Taxon Exposer for the hashcode hits within a repository.
+ * JarAnalyzer Taxon Exposer for the hashcode hits within a repository.
  *
- * @plexus.component role="org.apache.maven.shared.jar.taxon.JarTaxonExposer" role-hint="repositorySearch"
+ * @plexus.component role="org.apache.maven.shared.jar.identification.JarIdentificationExposer" role-hint="repositorySearch"
  */
 public class RepositorySearchExposer
-    extends AbstractJarTaxonExposer
+    extends AbstractJarIdentificationExposer
 {
     /**
      * @plexus.requirement role-hint="sha1"

Modified: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/StaticMainOutputExposer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/StaticMainOutputExposer.java?view=diff&rev=477297&r1=477222&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/StaticMainOutputExposer.java (original)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/StaticMainOutputExposer.java Mon Nov 20 11:25:30 2006
@@ -1,4 +1,4 @@
-package org.apache.maven.shared.jar.taxon.exposers;
+package org.apache.maven.shared.jar.identification.exposers;
 
 /*
  * Copyright 2001-2006 The Apache Software Foundation.
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-import org.apache.maven.shared.jar.taxon.AbstractJarTaxonExposer;
+import org.apache.maven.shared.jar.identification.AbstractJarIdentificationExposer;
 
 import java.util.Collections;
 import java.util.Iterator;
@@ -24,12 +24,12 @@
 
 
 /**
- * Jar Taxon Exposer - Static Main Class Output
+ * JarAnalyzer Taxon Exposer - Static Main Class Output
  *
- * @plexus.component role="org.apache.maven.shared.jar.taxon.JarTaxonExposer" role-hint="staticMainOutput"
+ * @plexus.component role="org.apache.maven.shared.jar.identification.JarIdentificationExposer" role-hint="staticMainOutput"
  */
 public class StaticMainOutputExposer
-    extends AbstractJarTaxonExposer
+    extends AbstractJarIdentificationExposer
 {
     public String getExposerName()
     {

Modified: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/TextFileExposer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/TextFileExposer.java?view=diff&rev=477297&r1=477222&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/TextFileExposer.java (original)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/TextFileExposer.java Mon Nov 20 11:25:30 2006
@@ -1,4 +1,4 @@
-package org.apache.maven.shared.jar.taxon.exposers;
+package org.apache.maven.shared.jar.identification.exposers;
 
 /*
  * Copyright 2001-2006 The Apache Software Foundation.
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-import org.apache.maven.shared.jar.taxon.AbstractJarTaxonExposer;
+import org.apache.maven.shared.jar.identification.AbstractJarIdentificationExposer;
 import org.codehaus.plexus.util.StringUtils;
 
 import java.io.BufferedReader;
@@ -30,12 +30,12 @@
 
 
 /**
- * Jar Taxon Exposer based on Text File contents.
+ * JarAnalyzer Taxon Exposer based on Text File contents.
  *
- * @plexus.component role="org.apache.maven.shared.jar.taxon.JarTaxonExposer" role-hint="textFile"
+ * @plexus.component role="org.apache.maven.shared.jar.identification.JarIdentificationExposer" role-hint="textFile"
  */
 public class TextFileExposer
-    extends AbstractJarTaxonExposer
+    extends AbstractJarIdentificationExposer
 {
     public String getExposerName()
     {

Modified: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/TimestampExposer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/TimestampExposer.java?view=diff&rev=477297&r1=477222&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/TimestampExposer.java (original)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/identification/exposers/TimestampExposer.java Mon Nov 20 11:25:30 2006
@@ -1,4 +1,4 @@
-package org.apache.maven.shared.jar.taxon.exposers;
+package org.apache.maven.shared.jar.identification.exposers;
 
 /*
  * Copyright 2001-2006 The Apache Software Foundation.
@@ -18,7 +18,7 @@
 
 import org.apache.commons.collections.Bag;
 import org.apache.commons.collections.bag.HashBag;
-import org.apache.maven.shared.jar.taxon.AbstractJarTaxonExposer;
+import org.apache.maven.shared.jar.identification.AbstractJarIdentificationExposer;
 import org.codehaus.plexus.util.StringUtils;
 
 import java.text.SimpleDateFormat;
@@ -29,12 +29,12 @@
 
 
 /**
- * Jar Taxon Exposer - using Majority Timestamp of classes.
+ * JarAnalyzer Taxon Exposer - using Majority Timestamp of classes.
  *
- * @plexus.component role="org.apache.maven.shared.jar.taxon.JarTaxonExposer" role-hint="timestamp"
+ * @plexus.component role="org.apache.maven.shared.jar.identification.JarIdentificationExposer" role-hint="timestamp"
  */
 public class TimestampExposer
-    extends AbstractJarTaxonExposer
+    extends AbstractJarIdentificationExposer
 {
     public String getExposerName()
     {

Modified: maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/AbstractJarTestCase.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/AbstractJarTestCase.java?view=diff&rev=477297&r1=477296&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/AbstractJarTestCase.java (original)
+++ maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/AbstractJarTestCase.java Mon Nov 20 11:25:30 2006
@@ -28,7 +28,7 @@
 import java.util.regex.Pattern;
 
 /**
- * Abstract Jar TestCase
+ * Abstract JarAnalyzer TestCase
  */
 public class AbstractJarTestCase
     extends PlexusTestCase
@@ -53,6 +53,11 @@
     public File getTestLocalRepoDirectory()
     {
         return new File( testdir, "localrepo" );
+    }
+    
+    public JarAnalyzerFactory getJarAnalyzerFactory() throws Exception
+    {
+        return (JarAnalyzerFactory) lookup( JarAnalyzerFactory.ROLE, "default" );
     }
 
     public void assertContains( String msg, Object expected, Collection coll )

Modified: maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/JarTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/JarTest.java?view=diff&rev=477297&r1=477296&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/JarTest.java (original)
+++ maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/JarTest.java Mon Nov 20 11:25:30 2006
@@ -19,38 +19,38 @@
 import java.io.File;
 
 /**
- * Jar Test Case
+ * JarAnalyzer Test Case
  */
 public class JarTest
     extends AbstractJarTestCase
 {
-    private Jar getJar( String filename )
+    private JarAnalyzer getJar( String filename )
         throws JarException
     {
         try
         {
             File jarfile = new File( getSampleJarsDirectory(), filename );
-            Jar jar = (Jar) lookup( Jar.ROLE );
+            JarAnalyzer jar = (JarAnalyzer) lookup( JarAnalyzer.ROLE );
             jar.setFile( jarfile );
             return jar;
         }
         catch ( Exception e )
         {
-            throw new JarException( "Can't load the Jar component", e );
+            throw new JarException( "Can't load the JarAnalyzer component", e );
         }
     }
 
     public void testSealed()
         throws JarException
     {
-        Jar evil = getJar( "evil-sealed-regex-1.0.jar" );
+        JarAnalyzer evil = getJar( "evil-sealed-regex-1.0.jar" );
         assertTrue( evil.isSealed() );
     }
 
     public void testNotSealed()
         throws JarException
     {
-        Jar codec = getJar( "codec.jar" );
+        JarAnalyzer codec = getJar( "codec.jar" );
         assertFalse( codec.isSealed() );
     }
 }

Modified: maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/classes/JarClassesAnalyzerTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/classes/JarClassesAnalyzerTest.java?view=diff&rev=477297&r1=477296&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/classes/JarClassesAnalyzerTest.java (original)
+++ maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/classes/JarClassesAnalyzerTest.java Mon Nov 20 11:25:30 2006
@@ -17,13 +17,13 @@
  */
 
 import org.apache.maven.shared.jar.AbstractJarTestCase;
-import org.apache.maven.shared.jar.Jar;
+import org.apache.maven.shared.jar.JarAnalyzer;
 
 import java.io.File;
 
 
 /**
- * Jar Classes Test Case
+ * JarAnalyzer Classes Test Case
  */
 public class JarClassesAnalyzerTest
     extends AbstractJarTestCase
@@ -34,8 +34,7 @@
         File jarfile = new File( getSampleJarsDirectory(), filename );
         try
         {
-        Jar jar = (Jar) lookup( Jar.ROLE );
-        jar.setFile( jarfile );
+        JarAnalyzer jar = getJarAnalyzerFactory().getJarAnalyzer( jarfile );
 
         JarClasses jclass = jar.getClasses();
         assertNotNull( "JarClasses", jclass );

Copied: maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/JarIdentificationAnalyzerTest.java (from r477222, maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/JarTaxonAnalyzerTest.java)
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/JarIdentificationAnalyzerTest.java?view=diff&rev=477297&p1=maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/JarTaxonAnalyzerTest.java&r1=477222&p2=maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/JarIdentificationAnalyzerTest.java&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/JarTaxonAnalyzerTest.java (original)
+++ maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/JarIdentificationAnalyzerTest.java Mon Nov 20 11:25:30 2006
@@ -17,28 +17,28 @@
  */
 
 import org.apache.maven.shared.jar.AbstractJarTestCase;
-import org.apache.maven.shared.jar.Jar;
+import org.apache.maven.shared.jar.JarAnalyzer;
+import org.apache.maven.shared.jar.identification.JarIdentification;
 
 import java.io.File;
 
 
 /**
- * Jar Taxon Analyzer Test Case
+ * JarAnalyzer Taxon Analyzer Test Case
  */
-public class JarTaxonAnalyzerTest
+public class JarIdentificationAnalyzerTest
     extends AbstractJarTestCase
 {
-    private JarTaxon getJarTaxon( String filename )
-        throws Exception
+    private JarIdentification getJarTaxon( String filename ) throws Exception
     {
-        Jar jar;
+        JarAnalyzer jar;
 
         File jarfile = new File( getSampleJarsDirectory(), filename );
-        jar = (Jar) lookup( Jar.ROLE );
-        jar.setFile( jarfile );
+        
+        jar = getJarAnalyzerFactory().getJarAnalyzer( jarfile );
 
-        JarTaxon taxon = jar.getTaxon();
-        assertNotNull( "JarTaxon", taxon );
+        JarIdentification taxon = jar.getIdentification();
+        assertNotNull( "JarIdentification", taxon );
 
         return taxon;
     }
@@ -46,7 +46,7 @@
     public void testTaxonAnalyzerWithJXR()
         throws Exception
     {
-        JarTaxon taxon = getJarTaxon( "jxr.jar" );
+        JarIdentification taxon = getJarTaxon( "jxr.jar" );
 
         assertTrue( "taxon.potentials > 0", ( taxon.getPotentials().size() > 0 ) );
 
@@ -58,12 +58,12 @@
     }
 
     /**
-     * Tests Jar with No embedded pom, and no useful manifest.mf information.
+     * Tests JarAnalyzer with No embedded pom, and no useful manifest.mf information.
      */
     public void testTaxonAnalyzerWithCODEC()
         throws Exception
     {
-        JarTaxon taxon = getJarTaxon( "codec.jar" );
+        JarIdentification taxon = getJarTaxon( "codec.jar" );
 
         assertTrue( "taxon.potentials > 0", ( taxon.getPotentials().size() > 0 ) );
 
@@ -78,7 +78,7 @@
     public void testTaxonAnalyzerWithANT()
         throws Exception
     {
-        JarTaxon taxon = getJarTaxon( "ant.jar" );
+        JarIdentification taxon = getJarTaxon( "ant.jar" );
 
         assertTrue( "taxon.potentials > 0", ( taxon.getPotentials().size() > 0 ) );
 

Modified: maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/exposers/EmbeddedMavenModelExposerTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/exposers/EmbeddedMavenModelExposerTest.java?view=diff&rev=477297&r1=477296&r2=477297
==============================================================================
--- maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/exposers/EmbeddedMavenModelExposerTest.java (original)
+++ maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/exposers/EmbeddedMavenModelExposerTest.java Mon Nov 20 11:25:30 2006
@@ -17,7 +17,8 @@
  */
 
 import org.apache.maven.shared.jar.AbstractJarTestCase;
-import org.apache.maven.shared.jar.Jar;
+import org.apache.maven.shared.jar.JarAnalyzer;
+import org.apache.maven.shared.jar.identification.exposers.EmbeddedMavenModelExposer;
 
 import java.io.File;
 
@@ -32,8 +33,7 @@
         throws Exception
     {
         File jxrfile = new File( getSampleJarsDirectory(), "jxr.jar" );
-        Jar jxrjar = (Jar) lookup( Jar.ROLE );
-        jxrjar.setFile( jxrfile );
+        JarAnalyzer jxrjar = getJarAnalyzerFactory().getJarAnalyzer( jxrfile );
 
         EmbeddedMavenModelExposer exposer = new EmbeddedMavenModelExposer();
         exposer.setJar( jxrjar );
@@ -55,8 +55,7 @@
         throws Exception
     {
         File antfile = new File( getSampleJarsDirectory(), "ant.jar" );
-        Jar antjar = (Jar) lookup( Jar.ROLE );
-        antjar.setFile( antfile );
+        JarAnalyzer antjar = getJarAnalyzerFactory().getJarAnalyzer( antfile );
 
         EmbeddedMavenModelExposer exposer = new EmbeddedMavenModelExposer();
         exposer.setJar( antjar );