You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ev...@apache.org on 2006/08/11 10:21:17 UTC

svn commit: r430718 [2/2] - in /maven/sandbox/maven-shared-jar: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/maven/ src/main/java/org/apache/maven/shared/ src/main/java/org/apache/maven/shared/j...

Added: maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/exposers/TimestampExposer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/exposers/TimestampExposer.java?rev=430718&view=auto
==============================================================================
--- maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/exposers/TimestampExposer.java (added)
+++ maven/sandbox/maven-shared-jar/src/main/java/org/apache/maven/shared/jar/taxon/exposers/TimestampExposer.java Fri Aug 11 01:21:11 2006
@@ -0,0 +1,82 @@
+package org.apache.maven.shared.jar.taxon.exposers;
+
+/*
+ * 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.commons.collections.Bag;
+import org.apache.commons.collections.bag.HashBag;
+import org.apache.maven.shared.jar.taxon.AbstractJarTaxonExposer;
+import org.codehaus.plexus.util.StringUtils;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.jar.JarEntry;
+
+
+/**
+ * Jar Taxon Exposer - using Majority Timestamp of classes.
+ *
+ * @plexus.component role="org.apache.maven.shared.jar.taxon.JarTaxonExposer" role-hint="timestamp"
+ */
+public class TimestampExposer
+    extends AbstractJarTaxonExposer
+{
+    public String getExposerName()
+    {
+        return "Timestamp";
+    }
+
+    public boolean isAuthoritative()
+    {
+        return false;
+    }
+
+    public void expose()
+    {
+        List entries = getJar().getNameRegexEntryList( ".*" ); //$NON-NLS-1$
+        SimpleDateFormat tsformat = new SimpleDateFormat( "yyyyMMdd" ); //$NON-NLS-1$
+        Bag timestamps = new HashBag();
+        Iterator it = entries.iterator();
+        while ( it.hasNext() )
+        {
+            JarEntry entry = (JarEntry) it.next();
+            long time = entry.getTime();
+            String timestamp = tsformat.format( new Date( time ) );
+            timestamps.add( timestamp );
+        }
+
+        String ts = "";
+        int tsmax = 0;
+        it = timestamps.iterator();
+        while ( it.hasNext() )
+        {
+            String timestamp = (String) it.next();
+            int count = timestamps.getCount( timestamp );
+            if ( count > tsmax )
+            {
+                ts = timestamp;
+                tsmax = count;
+            }
+        }
+
+        if ( StringUtils.isNotEmpty( ts ) )
+        {
+            addVersion( ts );
+        }
+    }
+}

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

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

Added: maven/sandbox/maven-shared-jar/src/test/jars/ant.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/jars/ant.jar?rev=430718&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/sandbox/maven-shared-jar/src/test/jars/ant.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/sandbox/maven-shared-jar/src/test/jars/codec.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/jars/codec.jar?rev=430718&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/sandbox/maven-shared-jar/src/test/jars/codec.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/sandbox/maven-shared-jar/src/test/jars/evil-sealed-regex-1.0.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/jars/evil-sealed-regex-1.0.jar?rev=430718&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/sandbox/maven-shared-jar/src/test/jars/evil-sealed-regex-1.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.1-debug.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.1-debug.jar?rev=430718&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.1-debug.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.1.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.1.jar?rev=430718&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.2-debug.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.2-debug.jar?rev=430718&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.2-debug.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.2.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.2.jar?rev=430718&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.2.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.3-debug.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.3-debug.jar?rev=430718&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.3-debug.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.3.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.3.jar?rev=430718&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.3.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.4-debug.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.4-debug.jar?rev=430718&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.4-debug.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.4.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.4.jar?rev=430718&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.4.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.5-debug.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.5-debug.jar?rev=430718&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.5-debug.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.5.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.5.jar?rev=430718&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/sandbox/maven-shared-jar/src/test/jars/helloworld-1.5.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/sandbox/maven-shared-jar/src/test/jars/jxr.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/jars/jxr.jar?rev=430718&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/sandbox/maven-shared-jar/src/test/jars/jxr.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: 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?rev=430718&view=auto
==============================================================================
--- maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/AbstractJarTestCase.java (added)
+++ maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/AbstractJarTestCase.java Fri Aug 11 01:21:11 2006
@@ -0,0 +1,94 @@
+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 junit.framework.AssertionFailedError;
+import org.codehaus.plexus.PlexusTestCase;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Abstract Jar TestCase
+ */
+public class AbstractJarTestCase
+    extends PlexusTestCase
+{
+    protected File basedir;
+
+    protected File testdir;
+
+    public AbstractJarTestCase()
+    {
+        super();
+        String userdir = System.getProperty( "user.dir" );
+        this.basedir = new File( System.getProperty( "basedir", userdir ) );
+        this.testdir = new File( basedir, "src/test" );
+    }
+
+    public File getSampleJarsDirectory()
+    {
+        return new File( testdir, "jars" );
+    }
+
+    public File getTestLocalRepoDirectory()
+    {
+        return new File( testdir, "localrepo" );
+    }
+
+    public void assertContains( String msg, Object expected, Collection coll )
+    {
+        if ( !coll.contains( expected ) )
+        {
+            throw new AssertionFailedError( msg + " collection did not have: " + expected.toString() );
+        }
+    }
+
+    public void assertNotContainsRegex( String msg, String regex, Collection coll )
+    {
+        List failures = new ArrayList();
+        Pattern pat = Pattern.compile( regex );
+        Matcher mat;
+        Iterator it = coll.iterator();
+        while ( it.hasNext() )
+        {
+            String value = (String) it.next();
+            mat = pat.matcher( value );
+            if ( mat.find() )
+            {
+                failures.add( value );
+            }
+        }
+
+        if ( !failures.isEmpty() )
+        {
+            StringBuffer sb = new StringBuffer();
+            sb.append( msg ).append( " collection has illegal regex \"" ).append( regex ).append( "\"" );
+            it = failures.iterator();
+            while ( it.hasNext() )
+            {
+                sb.append( "\n   - \"" ).append( it.next() ).append( "\"" );
+            }
+            throw new AssertionFailedError( sb.toString() );
+        }
+    }
+}

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

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

Added: 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?rev=430718&view=auto
==============================================================================
--- maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/JarTest.java (added)
+++ maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/JarTest.java Fri Aug 11 01:21:11 2006
@@ -0,0 +1,47 @@
+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;
+
+/**
+ * Jar Test Case
+ */
+public class JarTest
+    extends AbstractJarTestCase
+{
+    private Jar getJar( String filename )
+        throws JarException
+    {
+        File jarfile = new File( getSampleJarsDirectory(), filename );
+        return new Jar( jarfile );
+    }
+
+    public void testSealed()
+        throws JarException
+    {
+        Jar evil = getJar( "evil-sealed-regex-1.0.jar" );
+        assertTrue( evil.isSealed() );
+    }
+
+    public void testNotSealed()
+        throws JarException
+    {
+        Jar codec = getJar( "codec.jar" );
+        assertFalse( codec.isSealed() );
+    }
+}

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

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

Added: maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/classes/ImportVisitorTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/classes/ImportVisitorTest.java?rev=430718&view=auto
==============================================================================
--- maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/classes/ImportVisitorTest.java (added)
+++ maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/classes/ImportVisitorTest.java Fri Aug 11 01:21:11 2006
@@ -0,0 +1,78 @@
+package org.apache.maven.shared.jar.classes;
+
+/*
+ * 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.bcel.classfile.ClassFormatException;
+import org.apache.bcel.classfile.ClassParser;
+import org.apache.bcel.classfile.DescendingVisitor;
+import org.apache.bcel.classfile.JavaClass;
+import org.apache.maven.shared.jar.AbstractJarTestCase;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
+
+/**
+ * Import Visitor Test
+ */
+public class ImportVisitorTest
+    extends AbstractJarTestCase
+{
+    public void testImportsJxr()
+        throws ClassFormatException, IOException
+    {
+        File jxrjar = new File( getSampleJarsDirectory(), "jxr.jar" );
+        String classname = "org/apache/maven/jxr/DirectoryIndexer.class";
+        ClassParser classParser = new ClassParser( jxrjar.getAbsolutePath(), classname );
+        JavaClass javaClass = classParser.parse();
+
+        ImportVisitor importVisitor = new ImportVisitor( javaClass );
+        DescendingVisitor descVisitor = new DescendingVisitor( javaClass, importVisitor );
+        javaClass.accept( descVisitor );
+
+        List imports = importVisitor.getImports();
+        assertNotNull( "Import List", imports );
+
+        assertNotContainsRegex( "Import List", "[\\[\\)\\(\\;]", imports );
+
+        assertContains( "imports", "org.apache.maven.jxr.pacman.PackageType", imports );
+        assertContains( "imports", "org.codehaus.plexus.util.IOUtil", imports );
+        assertContains( "imports", "org.apache.oro.text.perl.Perl5Util", imports );
+    }
+
+    public void testImportsAnt()
+        throws ClassFormatException, IOException
+    {
+        File jxrjar = new File( getSampleJarsDirectory(), "ant.jar" );
+        String classname = "org/apache/tools/ant/Target.class";
+        ClassParser classParser = new ClassParser( jxrjar.getAbsolutePath(), classname );
+        JavaClass javaClass = classParser.parse();
+
+        ImportVisitor importVisitor = new ImportVisitor( javaClass );
+        DescendingVisitor descVisitor = new DescendingVisitor( javaClass, importVisitor );
+        javaClass.accept( descVisitor );
+
+        List imports = importVisitor.getImports();
+        assertNotNull( "Import List", imports );
+
+        assertNotContainsRegex( "Import List", "[\\[\\)\\(\\;]", imports );
+
+        assertContains( "imports", "org.apache.tools.ant.Location", imports );
+        assertContains( "imports", "org.apache.tools.ant.Task", imports );
+    }
+}

Propchange: maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/classes/ImportVisitorTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

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

Added: 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?rev=430718&view=auto
==============================================================================
--- maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/classes/JarClassesAnalyzerTest.java (added)
+++ maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/classes/JarClassesAnalyzerTest.java Fri Aug 11 01:21:11 2006
@@ -0,0 +1,137 @@
+package org.apache.maven.shared.jar.classes;
+
+/*
+ * 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.AbstractJarTestCase;
+import org.apache.maven.shared.jar.Jar;
+import org.apache.maven.shared.jar.JarException;
+
+import java.io.File;
+
+
+/**
+ * Jar Classes Test Case
+ */
+public class JarClassesAnalyzerTest
+    extends AbstractJarTestCase
+{
+    private JarClasses getJarClasses( String filename )
+        throws JarException
+    {
+        File jarfile = new File( getSampleJarsDirectory(), filename );
+        Jar jar = new Jar( jarfile );
+
+        JarClassesAnalyzer analyzer = new JarClassesAnalyzer();
+        analyzer.analyze( jar );
+
+        JarClasses jclass = jar.getClasses();
+        assertNotNull( "JarClasses", jclass );
+
+        return jclass;
+    }
+
+    public void testAnalyzeJXR()
+        throws JarException
+    {
+        JarClasses jclass = getJarClasses( "jxr.jar" );
+
+        assertTrue( "classes.imports.length > 0", ( jclass.getImports().size() > 0 ) );
+        assertTrue( "classes.packages.length > 0", ( jclass.getPackages().size() > 0 ) );
+
+        assertNotContainsRegex( "Import List", "[\\[\\)\\(\\;]", jclass.getImports() );
+
+        // TODO: test for classes count.
+
+        assertContains( "classes.imports", "org.apache.maven.jxr.JXR", jclass.getImports() );
+        assertContains( "classes.imports", "org.apache.oro.text.perl.Perl5Util", jclass.getImports() );
+        assertContains( "classes.imports", "org.codehaus.plexus.util.IOUtil", jclass.getImports() );
+        assertContains( "classes.packages", "org.apache.maven.jxr.pacman", jclass.getPackages() );
+    }
+
+    public void testAnalyzeANT()
+        throws JarException
+    {
+        JarClasses jclass = getJarClasses( "ant.jar" );
+
+        assertTrue( "classes.imports.length > 0", ( jclass.getImports().size() > 0 ) );
+        assertTrue( "classes.packages.length > 0", ( jclass.getPackages().size() > 0 ) );
+
+        assertNotContainsRegex( "Import List", "[\\[\\)\\(\\;]", jclass.getImports() );
+
+        assertContains( "classes.imports", "java.util.zip.GZIPInputStream", jclass.getImports() );
+        assertContains( "classes.imports", "org.apache.tools.ant.XmlLogger$TimedElement", jclass.getImports() );
+        assertContains( "classes.imports", "org.apache.tools.mail.MailMessage", jclass.getImports() );
+        assertContains( "classes.packages", "org.apache.tools.ant", jclass.getPackages() );
+        assertContains( "classes.packages", "org.apache.tools.bzip2", jclass.getPackages() );
+    }
+
+    public void testAnalyzeJarWithDebug()
+        throws JarException
+    {
+        JarClasses jclass = getJarClasses( "helloworld-1.4-debug.jar" );
+
+        assertTrue( "has debug", jclass.isDebugPresent() );
+    }
+
+    public void testAnalyzeJarWithoutDebug()
+        throws JarException
+    {
+        JarClasses jclass = getJarClasses( "helloworld-1.4.jar" );
+
+        assertFalse( "no debug present", jclass.isDebugPresent() );
+    }
+
+    public void testAnalyzeJarVersion15()
+        throws JarException
+    {
+        JarClasses jclass = getJarClasses( "helloworld-1.5.jar" );
+
+        assertEquals( "jdkrevision", "1.5", jclass.getJdkRevision() );
+    }
+
+    public void testAnalyzeJarVersion14()
+        throws JarException
+    {
+        JarClasses jclass = getJarClasses( "helloworld-1.4.jar" );
+
+        assertEquals( "jdkrevision", "1.4", jclass.getJdkRevision() );
+    }
+
+    public void testAnalyzeJarVersion13()
+        throws JarException
+    {
+        JarClasses jclass = getJarClasses( "helloworld-1.3.jar" );
+
+        assertEquals( "jdkrevision", "1.3", jclass.getJdkRevision() );
+    }
+
+    public void testAnalyzeJarVersion12()
+        throws JarException
+    {
+        JarClasses jclass = getJarClasses( "helloworld-1.2.jar" );
+
+        assertEquals( "jdkrevision", "1.2", jclass.getJdkRevision() );
+    }
+
+    public void testAnalyzeJarVersion11()
+        throws JarException
+    {
+        JarClasses jclass = getJarClasses( "helloworld-1.1.jar" );
+
+        assertEquals( "jdkrevision", "1.1", jclass.getJdkRevision() );
+    }
+}

Propchange: maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/classes/JarClassesAnalyzerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

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

Added: 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/JarTaxonAnalyzerTest.java?rev=430718&view=auto
==============================================================================
--- maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/JarTaxonAnalyzerTest.java (added)
+++ maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/JarTaxonAnalyzerTest.java Fri Aug 11 01:21:11 2006
@@ -0,0 +1,92 @@
+package org.apache.maven.shared.jar.taxon;
+
+/*
+ * 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.AbstractJarTestCase;
+import org.apache.maven.shared.jar.Jar;
+import org.apache.maven.shared.jar.JarAnalyzer;
+
+import java.io.File;
+
+
+/**
+ * Jar Taxon Analyzer Test Case
+ */
+public class JarTaxonAnalyzerTest
+    extends AbstractJarTestCase
+{
+    private JarTaxon getJarTaxon( String filename )
+        throws Exception
+    {
+        File jarfile = new File( getSampleJarsDirectory(), filename );
+        Jar jar = new Jar( jarfile );
+
+        JarAnalyzer analyzer = (JarAnalyzer) lookup( JarAnalyzer.ROLE, "taxon" );
+        analyzer.analyze( jar );
+
+        JarTaxon taxon = jar.getTaxon();
+        assertNotNull( "JarTaxon", taxon );
+
+        return taxon;
+    }
+
+    public void testTaxonAnalyzerWithJXR()
+        throws Exception
+    {
+        JarTaxon taxon = getJarTaxon( "jxr.jar" );
+
+        assertTrue( "taxon.potentials > 0", ( taxon.getPotentials().size() > 0 ) );
+
+        assertEquals( "taxon.groupId", "org.apache.maven", taxon.getGroupId() );
+        assertEquals( "taxon.artifactId", "maven-jxr", taxon.getArtifactId() );
+        assertEquals( "taxon.version", "1.1-SNAPSHOT", taxon.getVersion() );
+        assertEquals( "taxon.name", "Maven JXR", taxon.getName() );
+        assertEquals( "taxon.vendor", "Apache Software Foundation", taxon.getVendor() );
+    }
+
+    /**
+     * Tests Jar with No embedded pom, and no useful manifest.mf information.
+     */
+    public void testTaxonAnalyzerWithCODEC()
+        throws Exception
+    {
+        JarTaxon taxon = getJarTaxon( "codec.jar" );
+
+        assertTrue( "taxon.potentials > 0", ( taxon.getPotentials().size() > 0 ) );
+
+        assertEquals( "taxon.groupId", "org.apache.commons.codec", taxon.getGroupId() );
+        assertEquals( "taxon.artifactId", "codec", taxon.getArtifactId() );
+        // assertEquals( "taxon.version", "codec_release_1_0_0_interim_20030519095102_build", taxon.getVersion() );
+        assertEquals( "taxon.version", "20030519", taxon.getVersion() );
+        assertEquals( "taxon.name", "codec", taxon.getName() );
+        assertNull( "taxon.vendor", taxon.getVendor() );
+    }
+
+    public void testTaxonAnalyzerWithANT()
+        throws Exception
+    {
+        JarTaxon taxon = getJarTaxon( "ant.jar" );
+
+        assertTrue( "taxon.potentials > 0", ( taxon.getPotentials().size() > 0 ) );
+
+        assertEquals( "taxon.groupId", "org.apache.tools.ant", taxon.getGroupId() );
+        assertEquals( "taxon.artifactId", "ant", taxon.getArtifactId() );
+        assertEquals( "taxon.version", "1.6.5", taxon.getVersion() );
+        // assertEquals( "taxon.name", "Apache Ant", taxon.getName() );
+        assertEquals( "taxon.vendor", "Apache Software Foundation", taxon.getVendor() );
+    }
+}

Propchange: maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/JarTaxonAnalyzerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

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

Added: 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?rev=430718&view=auto
==============================================================================
--- maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/exposers/EmbeddedMavenModelExposerTest.java (added)
+++ maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/exposers/EmbeddedMavenModelExposerTest.java Fri Aug 11 01:21:11 2006
@@ -0,0 +1,70 @@
+package org.apache.maven.shared.jar.taxon.exposers;
+
+/*
+ * 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.AbstractJarTestCase;
+import org.apache.maven.shared.jar.Jar;
+import org.apache.maven.shared.jar.JarException;
+
+import java.io.File;
+
+
+/**
+ * Test Case for Embedded Maven Model Taxon Data.
+ */
+public class EmbeddedMavenModelExposerTest
+    extends AbstractJarTestCase
+{
+    public void testExposerWithJXR()
+        throws JarException
+    {
+        File jxrfile = new File( getSampleJarsDirectory(), "jxr.jar" );
+        Jar jxrjar = new Jar( jxrfile );
+
+        EmbeddedMavenModelExposer exposer = new EmbeddedMavenModelExposer();
+        exposer.setJar( jxrjar );
+        exposer.expose();
+
+        assertTrue( "exposer.isAuthoritative", exposer.isAuthoritative() );
+
+        assertNotNull( "exposer.groupIds", exposer.getGroupIds() );
+        assertFalse( "exposer.groupIds", exposer.getGroupIds().isEmpty() );
+
+        assertNotNull( "exposer.artifactIds", exposer.getArtifactIds() );
+        assertFalse( "exposer.artifactIds", exposer.getArtifactIds().isEmpty() );
+
+        assertNotNull( "exposer.versions", exposer.getVersions() );
+        assertFalse( "exposer.versions", exposer.getVersions().isEmpty() );
+    }
+
+    public void testExposerWithANT()
+        throws JarException
+    {
+        File antfile = new File( getSampleJarsDirectory(), "ant.jar" );
+        Jar antjar = new Jar( antfile );
+
+        EmbeddedMavenModelExposer exposer = new EmbeddedMavenModelExposer();
+        exposer.setJar( antjar );
+        exposer.expose();
+
+        assertTrue( "exposer.isAuthoritative", exposer.isAuthoritative() );
+
+        assertNull( "exposer.groupIds", exposer.getGroupIds() );
+        assertNull( "exposer.artifactIds", exposer.getArtifactIds() );
+        assertNull( "exposer.versions", exposer.getVersions() );
+    }
+}

Propchange: maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/exposers/EmbeddedMavenModelExposerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/maven-shared-jar/src/test/java/org/apache/maven/shared/jar/taxon/exposers/EmbeddedMavenModelExposerTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"