Author: jdcasey
Date: Mon Apr 17 07:45:47 2006
New Revision: 394684

URL: http://svn.apache.org/viewcvs?rev=394684&view=rev
Log:
[MJAR-6] Fixing pollution of Extensions-List by test-scoped dependencies.

Submitted By: Jerome Lacoste

Added:
    maven/components/trunk/maven-archiver/src/test/
    maven/components/trunk/maven-archiver/src/test/java/
    maven/components/trunk/maven-archiver/src/test/java/org/
    maven/components/trunk/maven-archiver/src/test/java/org/apache/
    maven/components/trunk/maven-archiver/src/test/java/org/apache/maven/
    
maven/components/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/
    
maven/components/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
   (with props)
    
maven/components/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MockArtifact.java
   (with props)
Modified:
    
maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java

Modified: 
maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java?rev=394684&r1=394683&r2=394684&view=diff
==============================================================================
--- 
maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java
 (original)
+++ 
maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java
 Mon Apr 17 07:45:47 2006
@@ -151,6 +151,10 @@
             for ( Iterator iter = artifacts.iterator(); iter.hasNext(); )
             {
                 Artifact artifact = (Artifact) iter.next();
+                if ( "test".equals( artifact.getScope() ) )
+                {
+                    continue;
+                }
                 // TODO: type of ejb should be added too?
                 if ( "jar".equals( artifact.getType() ) )
                 {

Added: 
maven/components/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java?rev=394684&view=auto
==============================================================================
--- 
maven/components/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
 (added)
+++ 
maven/components/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
 Mon Apr 17 07:45:47 2006
@@ -0,0 +1,134 @@
+package org.apache.maven.archiver;
+
+/*
+ * 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.TestCase;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.model.Model;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.archiver.jar.Manifest;
+
+import java.util.Comparator;
+import java.util.Set;
+import java.util.TreeSet;
+
+public class MavenArchiverTest
+    extends TestCase
+{
+    static class ArtifactComparator implements Comparator {
+        public int compare( Object o1, Object o2 )
+        {
+          return ((Artifact) o1).getArtifactId().compareTo(((Artifact) 
o2).getArtifactId());
+        }
+        public boolean equals(Object o) { return false; }
+    }
+
+    public void testGetManifestExtensionList() throws Exception
+    {
+        MavenArchiver archiver = new MavenArchiver();
+
+        Model model = new Model();
+        model.setArtifactId( "dummy" );
+
+        MavenProject project = new MavenProject( model );
+        // we need to sort the artifacts for test purposes
+        Set artifacts = new TreeSet( new ArtifactComparator() );
+        project.setArtifacts( artifacts );
+
+        // there should be a mock or a setter for this field.
+        ManifestConfiguration config = new ManifestConfiguration()
+        {
+            public boolean isAddExtensions()
+            {
+                return true;
+            }
+        };
+
+        Manifest manifest;
+
+        manifest = archiver.getManifest( project, config );
+
+        assertNotNull( manifest.getMainSection() );
+
+        java.util.Enumeration enume = manifest.getSectionNames();
+        while (enume.hasMoreElements()) {  
+           Manifest.Section section = 
manifest.getSection(enume.nextElement().toString());
+           System.out.println( section + " " + section.getAttributeValue( 
"Extension-List" ) );
+        }
+
+        assertEquals( null,
+                      manifest.getMainSection().getAttributeValue( 
"Extension-List" ) );
+
+        MockArtifact artifact1 = new MockArtifact();
+        artifact1.setGroupId( "org.apache.dummy" );
+        artifact1.setArtifactId( "dummy1" );
+        artifact1.setVersion( "1.0" );
+        artifact1.setType( "dll" );
+        artifact1.setScope( "compile" );
+
+        artifacts.add( artifact1 );
+
+        manifest = archiver.getManifest( project, config );
+
+        assertEquals( null,
+                      manifest.getMainSection().getAttributeValue( 
"Extension-List" ) );
+
+        MockArtifact artifact2 = new MockArtifact();
+        artifact2.setGroupId( "org.apache.dummy" );
+        artifact2.setArtifactId( "dummy2" );
+        artifact2.setVersion( "1.0" );
+        artifact2.setType( "jar" );
+        artifact2.setScope( "compile" );
+
+        artifacts.add( artifact2 );
+
+        manifest = archiver.getManifest( project, config );
+
+        assertEquals( "dummy2",
+                      manifest.getMainSection().getAttributeValue( 
"Extension-List" ) );
+
+        MockArtifact artifact3 = new MockArtifact();
+        artifact3.setGroupId( "org.apache.dummy" );
+        artifact3.setArtifactId( "dummy3" );
+        artifact3.setVersion( "1.0" );
+        artifact3.setScope( "test" );
+        artifact3.setType( "jar" );
+
+        artifacts.add( artifact3 );
+
+        manifest = archiver.getManifest( project, config );
+
+        assertEquals( "dummy2",
+                      manifest.getMainSection().getAttributeValue( 
"Extension-List" ) );
+
+
+        MockArtifact artifact4 = new MockArtifact();
+        artifact4.setGroupId( "org.apache.dummy" );
+        artifact4.setArtifactId( "dummy4" );
+        artifact4.setVersion( "1.0" );
+        artifact4.setType( "jar" );
+        artifact4.setScope( "compile" );
+
+        artifacts.add( artifact4 );
+
+        manifest = archiver.getManifest( project, config );
+
+        assertEquals( "dummy2 dummy4",
+                      manifest.getMainSection().getAttributeValue( 
"Extension-List" ) );
+    }
+}

Propchange: 
maven/components/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: 
maven/components/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MockArtifact.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MockArtifact.java?rev=394684&view=auto
==============================================================================
--- 
maven/components/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MockArtifact.java
 (added)
+++ 
maven/components/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MockArtifact.java
 Mon Apr 17 07:45:47 2006
@@ -0,0 +1,309 @@
+package org.apache.maven.archiver;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.artifact.versioning.ArtifactVersion;
+import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
+import org.apache.maven.artifact.versioning.VersionRange;
+
+import java.io.File;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @todo move to maven-artifact-test
+ */
+class MockArtifact
+    implements Artifact
+{
+    private String groupId;
+
+    private String artifactId;
+
+    private String version;
+
+    private File file;
+
+    private String scope;
+
+    private String type;
+
+    private String classifier;
+
+    private String baseVersion;
+
+    public String getGroupId()
+    {
+        return groupId;
+    }
+
+    public String getArtifactId()
+    {
+        return artifactId;
+    }
+
+    public String getVersion()
+    {
+        return version;
+    }
+
+    public void setVersion( String string )
+    {
+        this.version = string;
+    }
+
+    public String getScope()
+    {
+        return scope;
+    }
+
+    public String getType()
+    {
+        return type;
+    }
+
+    public String getClassifier()
+    {
+        return classifier;
+    }
+
+    public boolean hasClassifier()
+    {
+        return classifier != null;
+    }
+
+    public File getFile()
+    {
+        return file;
+    }
+
+    public void setFile( File file )
+    {
+        this.file = file;
+    }
+
+    public String getBaseVersion()
+    {
+        return baseVersion;
+    }
+
+    public void setBaseVersion( String string )
+    {
+        this.baseVersion = string;
+    }
+
+    public String getId()
+    {
+        // TODO
+        return null;
+    }
+
+    public String getDependencyConflictId()
+    {
+        // TODO
+        return null;
+    }
+
+    public void addMetadata( ArtifactMetadata artifactMetadata )
+    {
+        // TODO
+    }
+
+    public Collection getMetadataList()
+    {
+        // TODO
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    public void setRepository( ArtifactRepository artifactRepository )
+    {
+        //To change body of implemented methods use File | Settings | File 
Templates.
+        // TODO
+    }
+
+    public ArtifactRepository getRepository()
+    {
+        // TODO
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    public void updateVersion( String string, ArtifactRepository 
artifactRepository )
+    {
+        //To change body of implemented methods use File | Settings | File 
Templates.
+        // TODO
+    }
+
+    public String getDownloadUrl()
+    {
+        // TODO
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    public void setDownloadUrl( String string )
+    {
+        //To change body of implemented methods use File | Settings | File 
Templates.
+        // TODO
+    }
+
+    public ArtifactFilter getDependencyFilter()
+    {
+        // TODO
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    public void setDependencyFilter( ArtifactFilter artifactFilter )
+    {
+        // TODO
+        //To change body of implemented methods use File | Settings | File 
Templates.
+    }
+
+    public ArtifactHandler getArtifactHandler()
+    {
+        // TODO
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    public List getDependencyTrail()
+    {
+        // TODO
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    public void setDependencyTrail( List list )
+    {
+        //To change body of implemented methods use File | Settings | File 
Templates.
+        // TODO
+    }
+
+    public VersionRange getVersionRange()
+    {
+        // TODO
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    public void setVersionRange( VersionRange versionRange )
+    {
+        // TODO
+        //To change body of implemented methods use File | Settings | File 
Templates.
+    }
+
+    public void selectVersion( String string )
+    {
+        // TODO
+        //To change body of implemented methods use File | Settings | File 
Templates.
+    }
+
+    public boolean isSnapshot()
+    {
+        // TODO
+        return false;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    public void setResolved( boolean b )
+    {
+        // TODO
+        //To change body of implemented methods use File | Settings | File 
Templates.
+    }
+
+    public boolean isResolved()
+    {
+        // TODO
+        return false;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    public void setResolvedVersion( String string )
+    {
+        // TODO
+        //To change body of implemented methods use File | Settings | File 
Templates.
+    }
+
+    public void setArtifactHandler( ArtifactHandler artifactHandler )
+    {
+        // TODO
+        //To change body of implemented methods use File | Settings | File 
Templates.
+    }
+
+    public boolean isRelease()
+    {
+        // TODO
+        return false;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    public void setRelease( boolean b )
+    {
+        // TODO
+        //To change body of implemented methods use File | Settings | File 
Templates.
+    }
+
+    public List getAvailableVersions()
+    {
+        // TODO
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    public void setAvailableVersions( List list )
+    {
+        // TODO
+        //To change body of implemented methods use File | Settings | File 
Templates.
+    }
+
+    public boolean isOptional()
+    {
+        return false;  //To change body of implemented methods use File | 
Settings | File Templates.
+        // TODO
+    }
+
+    public void setOptional( boolean b )
+    {
+        // TODO
+        //To change body of implemented methods use File | Settings | File 
Templates.
+    }
+
+    public ArtifactVersion getSelectedVersion()
+        throws OverConstrainedVersionException
+    {
+        // TODO
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    public boolean isSelectedVersionKnown()
+        throws OverConstrainedVersionException
+    {
+        return false;  //To change body of implemented methods use File | 
Settings | File Templates.
+        // TODO
+    }
+
+    public void setGroupId( String groupId )
+    {
+        this.groupId = groupId;
+    }
+
+    public void setArtifactId( String artifactId )
+    {
+        this.artifactId = artifactId;
+    }
+
+    public void setType( String type )
+    {
+        this.type = type;
+    }
+
+    public void setClassifier( String classifier )
+    {
+        this.classifier = classifier;
+    }
+
+    public void setScope( String string )
+    {
+         this.scope = string;
+    }
+
+    public int compareTo( Object o )
+    {
+        // TODO
+        return 0;  //To change body of implemented methods use File | Settings 
| File Templates.
+    }
+}

Propchange: 
maven/components/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MockArtifact.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MockArtifact.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision


Reply via email to