mirror of https://github.com/apache/maven.git
[MJAR-6] Fixing pollution of Extensions-List by test-scoped dependencies.
Submitted By: Jerome Lacoste git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@394684 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a5a6226e53
commit
857c6e7b41
|
@ -151,6 +151,10 @@ public class MavenArchiver
|
||||||
for ( Iterator iter = artifacts.iterator(); iter.hasNext(); )
|
for ( Iterator iter = artifacts.iterator(); iter.hasNext(); )
|
||||||
{
|
{
|
||||||
Artifact artifact = (Artifact) iter.next();
|
Artifact artifact = (Artifact) iter.next();
|
||||||
|
if ( "test".equals( artifact.getScope() ) )
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
// TODO: type of ejb should be added too?
|
// TODO: type of ejb should be added too?
|
||||||
if ( "jar".equals( artifact.getType() ) )
|
if ( "jar".equals( artifact.getType() ) )
|
||||||
{
|
{
|
||||||
|
|
|
@ -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" ) );
|
||||||
|
}
|
||||||
|
}
|
|
@ -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.
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue