You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by mi...@apache.org on 2003/12/17 23:20:08 UTC
cvs commit: maven-components/maven-artifact-factory/src/test/resources project.properties project.xml
michal 2003/12/17 14:20:08
Added: maven-artifact-factory/src/test/resources/overriding/legacy
project.xml project.properties
maven-artifact-factory .cvsignore project.xml
project.properties checkstyle.xml LICENSE.txt
maven-artifact-factory/src/test/resources/overriding
project.properties project.xml
maven-artifact-factory/src/test/java/org/apache/maven/artifact/layout
DefaultRepositoryLayoutTest.java
DefaultRepositoryLayoutTest.xml
maven-artifact-factory/src/test/java/org/apache/maven/artifact/factory
DefaultArtifactFactoryTest.java
DefaultArtifactFactoryTest.xml
maven-artifact-factory/src/test/resources project.properties
project.xml
Log:
Small part of maven-artifat project extracted
Revision Changes Path
1.1 maven-components/maven-artifact-factory/src/test/resources/overriding/legacy/project.xml
Index: project.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<project>
<groupId>maven</groupId>
<artifactId>maven</artifactId>
<dependencies>
<!-- JAR overriding in POM-->
<dependency>
<groupId>g1</groupId>
<artifactId>d1</artifactId>
<version>v1</version>
<jar>lutefisk.fish</jar>
</dependency>
<!-- File overriding in properties file -->
<dependency>
<groupId>g2</groupId>
<artifactId>d2</artifactId>
<version>3.0</version>
</dependency>
<!-- jar overriding in properties file and POM. POM wins -->
<dependency>
<groupId>g3</groupId>
<artifactId>d3</artifactId>
<version>3.0</version>
<jar>should_be_ignored</jar>
</dependency>
<!-- Version overriding in properties file -->
<dependency>
<groupId>g4</groupId>
<artifactId>d4</artifactId>
<version>v2</version>
</dependency>
</dependencies>
</project>
1.1 maven-components/maven-artifact-factory/src/test/resources/overriding/legacy/project.properties
Index: project.properties
===================================================================
# ------------------------------------------------------------------------
# M A V E N L E G A CY J A R O V E R R I D E
# ------------------------------------------------------------------------
maven.jar.override = on
# ------------------------------------------------------------------------
# Artifacts set explicity by path.
# ------------------------------------------------------------------------
maven.jar.d2 = /lib/d2.jar
maven.jar.d3 = /lib/d3.jar
# ------------------------------------------------------------------------
# Artifacts set explicity by version.
# ------------------------------------------------------------------------
maven.jar.d4 = 1.1
1.1 maven-components/maven-artifact-factory/.cvsignore
Index: .cvsignore
===================================================================
*.log
target
.classpath
.project
default.lst
test.out
default.ajsym
1.1 maven-components/maven-artifact-factory/project.xml
Index: project.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<project>
<pomVersion>3</pomVersion>
<name>Maven Artifact Factory</name>
<groupId>maven</groupId>
<id>maven-artifact-factory</id>
<artifactId>maven-artifact-factory</artifactId>
<currentVersion>2.0-alpha-2</currentVersion>
<gumpRepositoryId>jakarta</gumpRepositoryId>
<description>Maven Artifact Factory</description>
<shortDescription>Maven Artifact Factory</shortDescription>
<versions/>
<branches/>
<developers>
<developer>
<name>Jason van Zyl</name>
<id>jvanzyl</id>
<email>jason@zenplex.com</email>
<organization>Zenplex</organization>
<roles>
<role>Architect</role>
<role>Release Manager</role>
</roles>
</developer>
<developer>
<name>Michal Maczka</name>
<id>michal</id>
<email>michal.maczka@dimatics.com</email>
<organization>Dimatics</organization>
<roles>
<role>Developer</role>
</roles>
</developer>
</developers>
<contributors/>
<dependencies>
<dependency>
<groupId>maven</groupId>
<artifactId>maven-model</artifactId>
<version>2.0-alpha-2</version>
</dependency>
<dependency>
<groupId>maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.0-alpha-1</version>
</dependency>
<dependency>
<groupId>maven</groupId>
<artifactId>maven-model-tools</artifactId>
<version>2.0-alpha-2</version>
</dependency>
<dependency>
<groupId>plexus</groupId>
<artifactId>plexus</artifactId>
<version>0.11</version>
</dependency>
<dependency>
<groupId>plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>1.0-beta-2</version>
</dependency>
<dependency>
<groupId>xstream</groupId>
<artifactId>xstream</artifactId>
<version>0.2</version>
</dependency>
<dependency>
<groupId>avalon</groupId>
<artifactId>avalon-framework-api</artifactId>
<version>4.1.4</version>
</dependency>
<!-- Component Testing -->
<dependency>
<id>classworlds</id>
<version>1.0</version>
</dependency>
<dependency>
<groupId>xpp3</groupId>
<artifactId>xpp3</artifactId>
<version>1.1.2a</version>
</dependency>
<dependency>
<groupId>xmlpull</groupId>
<artifactId>xmlpull</artifactId>
<version>1.1.2.1</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<unitTestSourceDirectory>src/test/java</unitTestSourceDirectory>
<unitTest>
<includes>
<include>**/*Test.java</include>
</includes>
<resources>
<resource>
<directory>src/test/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/test/resources</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</unitTest>
<resources>
<resource>
<directory>src/main/conf</directory>
<includes>
<include>layout*.properties</include>
</includes>
</resource>
</resources>
</build>
<reports>
<report>maven-jdepend-plugin</report>
<report>maven-checkstyle-plugin</report>
<report>maven-changes-plugin</report>
<report>maven-changelog-plugin</report>
<report>maven-file-activity-plugin</report>
<report>maven-developer-activity-plugin</report>
<report>maven-javadoc-plugin</report>
<report>maven-jxr-plugin</report>
<report>maven-junit-report-plugin</report>
<report>maven-tasklist-plugin</report>
<report>maven-pmd-plugin</report>
<report>maven-simian-plugin</report>
<report>maven-clover-plugin</report>
</reports>
</project>
1.1 maven-components/maven-artifact-factory/project.properties
Index: project.properties
===================================================================
maven.junit.fork=true
# -------------------------------------------------------------------
# C H E C K S T Y L E P R O P E R T I E S
# -------------------------------------------------------------------
maven.checkstyle.properties = ${basedir}/checkstyle.xml
1.1 maven-components/maven-artifact-factory/checkstyle.xml
Index: checkstyle.xml
===================================================================
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.1//EN"
"http://www.puppycrawl.com/dtds/configuration_1_1.dtd">
<!--
Checkstyle checks configured for Maven.
-->
<module name="Checker">
<!-- Checks that a package.html file exists for each package. -->
<!-- See http://checkstyle.sf.net/config_javadoc.html#PackageHtml -->
<module name="PackageHtml"/>
<!-- Checks whether files end with a new line. -->
<!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
<module name="NewlineAtEndOfFile"/>
<!-- Checks that property files contain the same keys. -->
<!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
<module name="Translation"/>
<module name="TreeWalker">
<property name="cacheFile" value="${checkstyle.cache.file}"/>
<!-- ************************************************************** -->
<!-- Checks that are different from the sun coding conventions ones -->
<!-- ************************************************************** -->
<module name="Header">
<property name="headerFile" value="${basedir}/LICENSE.txt"/>
<property name="ignoreLines" value="1,2,3,4,5,6"/>
</module>
<property name="tabWidth" value="4"/>
<module name="LeftCurly">
<property name="option" value="nl"/>
</module>
<module name="RightCurly">
<property name="option" value="alone"/>
</module>
<module name="LineLength">
<property name="max" value="132"/>
</module>
<module name="MethodLength">
<property name="max" value="175"/>
</module>
<!-- No Paren pad check
<module name="ParenPad"/>
-->
<module name="ConstantName">
<property name="format" value="log|^[a-zA-Z][a-zA-Z0-9_]*$"/>
</module>
<!-- ************************************************************** -->
<!-- Default Sun coding conventions checks -->
<!-- ************************************************************** -->
<!-- Checks for Javadoc comments. -->
<!-- See http://checkstyle.sf.net/config_javadoc.html -->
<module name="JavadocMethod"/>
<module name="JavadocType"/>
<module name="JavadocVariable"/>
<!-- Checks for Naming Conventions. -->
<!-- See http://checkstyle.sf.net/config_naming.html -->
<module name="LocalFinalVariableName"/>
<module name="LocalVariableName"/>
<module name="MethodName"/>
<module name="PackageName"/>
<module name="ParameterName"/>
<module name="StaticVariableName"/>
<module name="TypeName"/>
<module name="MemberName"/>
<!-- Checks for imports -->
<!-- See http://checkstyle.sf.net/config_import.html -->
<module name="AvoidStarImport"/>
<module name="IllegalImport"/> <!-- defaults to sun.* packages -->
<module name="RedundantImport"/>
<module name="UnusedImports"/>
<!-- Checks for Size Violations. -->
<!-- See http://checkstyle.sf.net/config_sizes.html -->
<module name="FileLength"/>
<module name="ParameterNumber"/>
<!-- Checks for whitespace -->
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
<module name="EmptyForIteratorPad"/>
<module name="NoWhitespaceAfter"/>
<module name="NoWhitespaceBefore"/>
<module name="OperatorWrap"/>
<module name="TabCharacter"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround"/>
<!-- Modifier Checks -->
<!-- See http://checkstyle.sf.net/config_modifiers.html -->
<module name="ModifierOrder"/>
<module name="RedundantModifier"/>
<!-- Checks for blocks. You know, those {}'s -->
<!-- See http://checkstyle.sf.net/config_blocks.html -->
<module name="AvoidNestedBlocks"/>
<module name="EmptyBlock"/>
<module name="NeedBraces"/>
<!-- Checks for common coding problems -->
<!-- See http://checkstyle.sf.net/config_coding.html -->
<module name="AvoidInlineConditionals"/>
<module name="DoubleCheckedLocking"/> <!-- MY FAVOURITE -->
<module name="EmptyStatement"/>
<module name="EqualsHashCode"/>
<module name="HiddenField"/>
<module name="IllegalInstantiation"/>
<module name="InnerAssignment"/>
<module name="MagicNumber"/>
<module name="MissingSwitchDefault"/>
<!--<module name="RedundantThrows"/>-->
<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>
<!-- Checks for class design -->
<!-- See http://checkstyle.sf.net/config_design.html -->
<!--<module name="DesignForExtension"/>-->
<module name="FinalClass"/>
<module name="HideUtilityClassConstructor"/>
<module name="InterfaceIsType"/>
<module name="VisibilityModifier"/>
<!-- Miscellaneous other checks. -->
<!-- See http://checkstyle.sf.net/config_misc.html -->
<module name="ArrayTypeStyle"/>
<!-- <module name="FinalParameters"/> -->
<module name="GenericIllegalRegexp">
<property name="format" value="\s+$"/>
<property name="message" value="Line has trailing spaces."/>
</module>
<module name="TodoComment"/>
<module name="UpperEll"/>
</module>
</module>
1.1 maven-components/maven-artifact-factory/LICENSE.txt
Index: LICENSE.txt
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache Maven" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache Maven", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
1.1 maven-components/maven-artifact-factory/src/test/resources/overriding/project.properties
Index: project.properties
===================================================================
# ------------------------------------------------------------------------
# M A V E N A R T I F A C T O V E R R I D E
# ------------------------------------------------------------------------
maven.artifact.override = on
# ------------------------------------------------------------------------
# Artifacts set explicity by path.
# ------------------------------------------------------------------------
maven.override.artifact.g2.d2.jar = /lib/d2.jar
maven.override.artifact.g3.d3.jar = /lib/d3.jar
# ------------------------------------------------------------------------
# Artifacts set explicity by version.
# ------------------------------------------------------------------------
maven.override.version.g4.d4.jar = 1.1
1.1 maven-components/maven-artifact-factory/src/test/resources/overriding/project.xml
Index: project.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<project>
<groupId>maven</groupId>
<artifactId>maven</artifactId>
<dependencies>
<!-- File overriding in POM-->
<dependency>
<groupId>g1</groupId>
<artifactId>d1</artifactId>
<version>v1</version>
<artifact>lutefisk.fish</artifact>
</dependency>
<!-- File overriding in properties file -->
<dependency>
<groupId>g2</groupId>
<artifactId>d2</artifactId>
<version>3.0</version>
</dependency>
<!-- File overriding in properties file and POM. POM wins -->
<dependency>
<groupId>g3</groupId>
<artifactId>d3</artifactId>
<version>3.0</version>
<artifact>should_be_ignored</artifact>
</dependency>
<!-- Version overriding in properties file -->
<dependency>
<groupId>g4</groupId>
<artifactId>d4</artifactId>
<version>v2</version>
</dependency>
</dependencies>
</project>
1.1 maven-components/maven-artifact-factory/src/test/java/org/apache/maven/artifact/layout/DefaultRepositoryLayoutTest.java
Index: DefaultRepositoryLayoutTest.java
===================================================================
package org.apache.maven.artifact.layout;
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache MavenSession" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache MavenSession", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
import org.apache.maven.model.Dependency;
import org.codehaus.plexus.PlexusTestCase;
/**
* @author <a href="mailto:michal.maczka@dimatics.com">Michal Maczka</a>
* @version $Id: DefaultRepositoryLayoutTest.java,v 1.1 2003/12/17 22:20:08 michal Exp $
*/
public class DefaultRepositoryLayoutTest extends PlexusTestCase
{
private RepositoryLayout repositoryLayout = null;
/**
* Constructor for DefaultRepositoryLayoutTest.
*
* @param arg0
*/
public DefaultRepositoryLayoutTest( final String arg0 )
{
super( arg0 );
}
public void setUp() throws Exception
{
super.setUp();
repositoryLayout = ( RepositoryLayout ) lookup( RepositoryLayout.ROLE );
}
public void testGeneratePath()
{
final String msg = "Expected path in repository is different than actual.";
final String groupId1 = "mm_group_id";
final String artifactId1 = "mm_id";
final String version1 = "1.0.0";
final String type1 = "a";
final String expectedPathD = "mm_group_id/as/mm_id-1.0.0.a";
String actualPathD = null;
try
{
actualPathD =
repositoryLayout.generatePath(
groupId1,
artifactId1,
type1,
version1 );
}
catch ( Exception e )
{
final String msg2 =
"Cannot bulid repository layout for: " + artifactId1 + ".";
fail( msg2 );
}
assertEquals( msg, expectedPathD, actualPathD );
final Dependency ejb = new Dependency();
ejb.setGroupId( "boo" );
ejb.setArtifactId( "foo" );
ejb.setVersion( "1.1.1" );
ejb.setType( "ejb" );
final String expectedPathEjb = "boo/ejbs/foo-1.1.1.jar";
String actualPathEjb = null;
try
{
actualPathEjb = repositoryLayout.generatePath( ejb );
}
catch ( Exception e )
{
final String msg2 = "Cannot bulid repository layout for: " + ejb + ".";
fail( msg2 );
}
assertEquals( msg, expectedPathEjb, actualPathEjb );
final Dependency nativeD = new Dependency();
nativeD.setGroupId( "boo" );
nativeD.setArtifactId( "foo" );
nativeD.setVersion( "1.1.1" );
nativeD.setType( "native" );
String expectedPathNative = null;
final String osName = System.getProperty( "os.name" );
if ( osName.toLowerCase().startsWith( "windows" ) )
{
expectedPathNative = "boo/native/foo-1.1.1.dll";
}
else
{
expectedPathNative = "boo/native/foo-1.1.1.so";
}
String actualPathNative = null;
try
{
actualPathNative = repositoryLayout.generatePath( nativeD );
}
catch ( Exception e )
{
final String msg2 =
"Cannot bulid repository layout for: " + nativeD + ".";
fail( msg2 );
}
assertEquals( msg, expectedPathNative, actualPathNative );
}
public void testDependecyWithOverridenFile()
{
final Dependency dep = new Dependency();
dep.setGroupId( "boo" );
dep.setArtifactId( "foo" );
dep.setVersion( "1.1.1" );
dep.setType( "ejb" );
dep.setArtifact( "kaa.jar" );
final String expectedPath = "boo/ejbs/kaa.jar";
String actualPath = null;
try
{
actualPath = repositoryLayout.generatePath( dep );
}
catch ( Exception e )
{
final String msg2 = "Cannot bulid repository layout for: " + dep + ".";
fail( msg2 );
}
final String msg = "Expected path in repository is different than actual.";
assertEquals( msg, expectedPath, actualPath );
}
}
1.1 maven-components/maven-artifact-factory/src/test/java/org/apache/maven/artifact/layout/DefaultRepositoryLayoutTest.xml
Index: DefaultRepositoryLayoutTest.xml
===================================================================
<configuration>
<components>
<component>
<role>org.apache.maven.artifact.layout.RepositoryLayout</role>
<implementation>org.apache.maven.artifact.layout.DefaultRepositoryLayout</implementation>
<configuration/>
</component>
<component>
<role>org.codehaus.plexus.i18n.I18N</role>
<implementation>org.codehaus.plexus.i18n.DefaultI18N</implementation>
<configuration/>
</component>
</components>
</configuration>
1.1 maven-components/maven-artifact-factory/src/test/java/org/apache/maven/artifact/factory/DefaultArtifactFactoryTest.java
Index: DefaultArtifactFactoryTest.java
===================================================================
package org.apache.maven.artifact.factory;
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache MavenSession" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache MavenSession", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
import org.apache.maven.artifact.Artifact;
import org.apache.maven.project.Project;
import org.apache.maven.project.ProjectBuilder;
import org.codehaus.plexus.PlexusTestCase;
import java.io.File;
import java.util.List;
/**
* @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
* @version $Id: DefaultArtifactFactoryTest.java,v 1.1 2003/12/17 22:20:08 michal Exp $
*/
public class DefaultArtifactFactoryTest extends PlexusTestCase
{
private ArtifactFactory artifactFactory;
private ProjectBuilder builder;
/**
* Constructor for DefaultArtifactFactoryTest.
*
* @param testName
*/
public DefaultArtifactFactoryTest( final String testName )
{
super( testName );
}
/**
* @see junit.framework.TestCase#setUp()
*/
public void setUp() throws Exception
{
super.setUp();
artifactFactory = ( ArtifactFactory ) lookup( ArtifactFactory.ROLE );
builder = ( ProjectBuilder ) lookup( ProjectBuilder.ROLE );
//String basedir = System.getProperty( "basedir" );
artifactFactory.setMavenRepoLocal( "src/test/resources/maven-repo-local" );
}
public void testCreateArtifacts()
{
Project project = null;
try
{
project = builder.build( new File( getTestFile( basedir,
"src/test/resources/project.xml" ) ) );
}
catch ( Exception e )
{
final String msg = "Cannot get project sample: " + e.getMessage();
fail( msg );
}
List artifacts = null;
try
{
artifacts = artifactFactory.createArtifacts( project, null );
}
catch ( Exception e )
{
final String msg = "Failed to create list of artifacts: "
+ e.getMessage();
fail( msg );
}
final String repositoryPath = artifactFactory.getMavenRepoLocal( project );
//1 Check if we have required number of artifacts
final int expectedNumberOfArtifacts = 2;
final int actualNumberOfArtifacts = artifacts.size();
assertEquals( "Artifact list has unexpected size.",
expectedNumberOfArtifacts, actualNumberOfArtifacts );
// 2 Check if artifacts are not null
final Artifact artifact1 = ( Artifact ) artifacts.get( 0 );
final Artifact artifact2 = ( Artifact ) artifacts.get( 1 );
final String msg1 = "No artifact should be null.";
assertNotNull( msg1, artifact1 );
assertNotNull( msg1, artifact2 );
//3 Check if paths were build correctly
final String msg2 = "Artifact has incorrect path.";
// a1
final String expectedPath1 = "g1/jars/d1-1.0.jar";
final String actualPath1 = artifact1.getPath();
assertEquals( msg2 + artifact1, expectedPath1, actualPath1 );
// a2
final String expectedPath2 = "g2/jars/d2-2.0.jar";
final String actualPath2 = artifact2.getPath();
assertEquals( msg2 + artifact2, expectedPath2, actualPath2 );
//4 Check if files were set correctly
final String msg3 = "Artifact file has been set incorrectly.";
// a1
final File expectedFile1 = new File( repositoryPath, "g1/jars/d1-1.0.jar" );
final File actualFile1 = artifact1.getFile();
assertEquals( msg3, expectedFile1, actualFile1 );
// a2
final File expectedFile2 = new File( repositoryPath, "g2/jars/d2-2.0.jar" );
final File actualFile2 = artifact2.getFile();
assertEquals( msg3, expectedFile2, actualFile2 );
// 5 check if some fields were set correctly
assertNull( "Version should not be overriden",
artifact1.getOverriddenVersion() );
assertFalse( "File should not be overriden",
artifact1.isFileOverridden() );
assertFalse( "Artifact is not a SNAPHOT", artifact1.isSnapshot() );
}
public void testArtifactOverrding()
{
doTestArtifact( "src/test/resources/overriding/project.xml" );
}
/**
*
*
*/
public void doTestArtifact( final String projectFile )
{
Project project = null;
try
{
project = builder.build( new File( getTestFile( projectFile ) ) );
}
catch ( Exception e )
{
final String msg = "Cannot get project sample : '" + projectFile + "'. "
+ e.getMessage();
fail( msg );
}
List artifacts = null;
try
{
artifacts = artifactFactory.createArtifacts( project, null );
}
catch ( Exception e )
{
final String msg = "Failed to create list of artifacts: "
+ e.getMessage();
fail( msg );
}
final String repositoryPath = artifactFactory.getMavenRepoLocal( project );
//1 Check if overddiing is turn on
//boolean isOverringOn = project.getMavenArtifactOverride();
//assertTrue( "Overriding is not turned on", isOverringOn );
//2 Check if we have required number of artifacts
final int expectedNumberOfArtifacts = 4;
final int actualNumberOfArtifacts = artifacts.size();
assertEquals( "Artifact list has unexpected size.",
expectedNumberOfArtifacts, actualNumberOfArtifacts );
//3 Check if artifacts are not null
final Artifact artifact1 = ( Artifact ) artifacts.get( 0 );
final Artifact artifact2 = ( Artifact ) artifacts.get( 1 );
final Artifact artifact3 = ( Artifact ) artifacts.get( 2 );
final Artifact artifact4 = ( Artifact ) artifacts.get( 3 );
final String msg1 = "No artifact should be null.";
assertNotNull( msg1, artifact1 );
assertNotNull( msg1, artifact2 );
assertNotNull( msg1, artifact3 );
assertNotNull( msg1, artifact4 );
//4 Check if files were set correctly
final String msg3 = "Artifact file has been set incorrectly.";
// a1 - file overrding in POM
final File expectedFile1 = new File( repositoryPath, "g1/jars/lutefisk.fish" );
final File actualFile1 = artifact1.getFile();
System.out.println( "File overriding in POM: " +
expectedFile1 + " " +actualFile1);
assertEquals( "File overriding in POM: " + msg3, expectedFile1,
actualFile1 );
// a2 file overring in properties file
final File expectedFile2 = new File( "/lib/d2.jar" );
final File actualFile2 = artifact2.getFile();
assertEquals( "File overriding in prop. file: " + msg3, expectedFile2,
actualFile2 );
// a3 file overring in properties file and POM
final File expectedFile3 = new File( "/lib/d3.jar" );
final File actualFile3 = artifact3.getFile();
assertEquals( "File overriding in prop. file and POM: " + msg3,
expectedFile3, actualFile3 );
// a4 - version overrding in POM
final File expectedFile4 = new File( repositoryPath, "/g4/jars/d4-1.1.jar" );
final File actualFile4 = artifact4.getFile();
System.out.println( "Version overriding in prop. file: " +
expectedFile4 + " " +actualFile4);
assertEquals( "Version overriding in prop. file: " + msg3,
expectedFile4, actualFile4 );
//4 check if some choosen artifacts' fields were set properly
assertNotNull( "Version was overriden.",
artifact4.getOverriddenVersion() );
assertFalse( "File should not be overriden.",
artifact4.isFileOverridden() );
assertNull( "Version should not be overriden.",
artifact3.getOverriddenVersion() );
assertTrue( "File was not overriden.", artifact3.isFileOverridden() );
}
public void testCreatePomArtifact()
{
Project project = null;
try
{
project = builder.build( new File( getTestFile( basedir,
"src/test/resources/project.xml" ) ) );
}
catch ( Exception e )
{
final String msg = "Cannot get project sample : '"
+ "src/test/resources/project.xml" + "'. " + e.getMessage();
fail( msg );
}
List artifacts = null;
try
{
artifacts = artifactFactory.createArtifacts( project, null );
}
catch ( Exception e )
{
final String msg = "Failed to create list of artifacts: "
+ e.getMessage();
fail( msg );
}
try
{
final String repositoryPath = artifactFactory.getMavenRepoLocal( project );
final Artifact artifact1 = ( Artifact ) artifacts.get( 0 );
System.out.println( artifact1 );
final Artifact pomArtifact = artifactFactory.createPomArtifact( artifact1 );
System.out.println( "artifact:" + pomArtifact );
System.out.println( "artifact file:" + pomArtifact.getFile() );
}
catch ( Exception e )
{
}
}
public void testLegacyArtifactOverrding()
{
doTestArtifact( "src/test/resources/overriding/legacy/project.xml" );
}
}
1.1 maven-components/maven-artifact-factory/src/test/java/org/apache/maven/artifact/factory/DefaultArtifactFactoryTest.xml
Index: DefaultArtifactFactoryTest.xml
===================================================================
<configuration>
<components>
<component>
<role>org.apache.maven.project.ProjectBuilder</role>
<implementation>org.apache.maven.project.DefaultProjectBuilder</implementation>
<configuration/>
</component>
<component>
<role>org.apache.maven.model.ModelUnmarshaller</role>
<implementation>org.apache.maven.model.DefaultModelUnmarshaller</implementation>
<configuration/>
</component>
<!-- ProjectBuilder needs it. Possibly Remove this -->
<component>
<role>org.apache.maven.model.ModelMarshaller</role>
<implementation>org.apache.maven.model.DefaultModelMarshaller</implementation>
<configuration/>
</component>
<component>
<role>org.apache.maven.artifact.factory.ArtifactFactory</role>
<implementation>org.apache.maven.artifact.factory.DefaultArtifactFactory</implementation>
<configuration/>
</component>
<component>
<role>org.apache.maven.artifact.layout.RepositoryLayout</role>
<implementation>org.apache.maven.artifact.layout.DefaultRepositoryLayout</implementation>
<configuration/>
</component>
<component>
<role>org.codehaus.plexus.i18n.I18N</role>
<implementation>org.codehaus.plexus.i18n.DefaultI18N</implementation>
<configuration/>
</component>
</components>
</configuration>
1.1 maven-components/maven-artifact-factory/src/test/resources/project.properties
Index: project.properties
===================================================================
maven.repo.local=src/test/resources/maven-repo-local
1.1 maven-components/maven-artifact-factory/src/test/resources/project.xml
Index: project.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<project>
<pomVersion>3</pomVersion>
<groupId>maven</groupId>
<artifactId>maven</artifactId>
<name>Maven</name>
<currentVersion>1.0-beta-9</currentVersion>
<inceptionYear>2001</inceptionYear>
<package>org.apache.maven</package>
<gumpRepositoryId>jakarta</gumpRepositoryId>
<description>Description</description>
<shortDescription>shortDescription</shortDescription>
<url>http://maven.apache.org/</url>
<issueTrackingUrl>issueTrackingUrl</issueTrackingUrl>
<siteAddress>maven.apache.org</siteAddress>
<siteDirectory>/www/maven.apache.org/</siteDirectory>
<distributionDirectory>/www/maven.apache.org/builds/</distributionDirectory>
<organization>
<name>Apache Software Foundation</name>
<url>http://apache.org/</url>
<logo>/images/jakarta-logo-blue.gif</logo>
</organization>
<repository>
<connection>anon-connection</connection>
<developerConnection>developer-connection</developerConnection>
<url>repository-url</url>
</repository>
<versions>
<version>
<id>b1</id>
<name>1.0-b1</name>
<tag>MAVEN_1_0_B1</tag>
</version>
</versions>
<mailingLists>
<mailingList>
<name>Maven User List</name>
<subscribe>subscribe</subscribe>
<unsubscribe>unsubscribe</unsubscribe>
<archive>archive</archive>
</mailingList>
</mailingLists>
<developers>
<developer>
<name>Jason van Zyl</name>
<id>jvanzyl</id>
<email>jason@maven.org</email>
<organization>Zenplex</organization>
<roles>
<role>Founder</role>
<role>Release Manager</role>
</roles>
</developer>
</developers>
<contributors>
<contributor>
<name>Martin van dem Bemt</name>
<email>mvdb@mvdb.com</email>
</contributor>
</contributors>
<dependencies>
<dependency>
<groupId>g1</groupId>
<artifactId>d1</artifactId>
<version>1.0</version>
<url>d1-url</url>
</dependency>
<dependency>
<groupId>g2</groupId>
<artifactId>d2</artifactId>
<version>2.0</version>
<url>d2-url</url>
</dependency>
</dependencies>
<build>
<nagEmailAddress>jason@maven.org</nagEmailAddress>
<sourceDirectory>sourceDirectory</sourceDirectory>
<unitTestSourceDirectory>unitTestSourceDirectory</unitTestSourceDirectory>
<unitTest>
<includes>
<include>**/*Test.java</include>
</includes>
<excludes>
<exclude>**/RepositoryTest.java</exclude>
<exclude>**/JAXPTest.java</exclude>
</excludes>
<resources>
<resource>
<directory>${basedir}/src/test</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</unitTest>
<resources>
<resource>
<directory>src/conf</directory>
<includes>
<include>*.xsd</include>
<include>*.dtd</include>
<include>*.mod</include>
<include>log4j.properties</include>
<include>driver.jelly</include>
<include>driver.properties</include>
</includes>
</resource>
<resource>
<directory>src/messages</directory>
<targetPath>org/apache/maven/messages</targetPath>
<includes>
<include>messages*.properties</include>
</includes>
</resource>
</resources>
</build>
<reports>
<report>maven-jdepend-plugin</report>
<report>maven-checkstyle-plugin</report>
<report>maven-changelog-plugin</report>
<report>maven-file-activity-plugin</report>
<report>maven-developer-activity-plugin</report>
<report>maven-javadoc-plugin</report>
<report>maven-jxr-plugin</report>
<report>maven-junit-report-plugin</report>
<report>maven-tasklist-plugin</report>
<report>maven-jellydoc-plugin</report>
</reports>
</project>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: cvs commit:
maven-components/maven-artifact-factory/src/test/resources
project.properties project.xml
Posted by Jason van Zyl <jv...@maven.org>.
On Wed, 2003-12-17 at 17:20, michal@apache.org wrote:
> michal 2003/12/17 14:20:08
>
> Added: maven-artifact-factory/src/test/resources/overriding/legacy
> project.xml project.properties
> maven-artifact-factory .cvsignore project.xml
> project.properties checkstyle.xml LICENSE.txt
> maven-artifact-factory/src/test/resources/overriding
> project.properties project.xml
> maven-artifact-factory/src/test/java/org/apache/maven/artifact/layout
> DefaultRepositoryLayoutTest.java
> DefaultRepositoryLayoutTest.xml
> maven-artifact-factory/src/test/java/org/apache/maven/artifact/factory
> DefaultArtifactFactoryTest.java
> DefaultArtifactFactoryTest.xml
> maven-artifact-factory/src/test/resources project.properties
> project.xml
> Log:
> Small part of maven-artifat project extracted
>
Coolio, thanks. I'll integrate in into maven-project now.
--
jvz.
Jason van Zyl
jason@zenplex.com
http://tambora.zenplex.org
In short, man creates for himself a new religion of a rational
and technical order to justify his work and to be justified in it.
-- Jacques Ellul, The Technological Society
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org