o Added another test to exhibit inheritance issue

o Removed task tags for resolved issues

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@756992 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Benjamin Bentmann 2009-03-21 19:12:42 +00:00
parent e8636ac8a7
commit 2783afc4bf
4 changed files with 381 additions and 38 deletions

View File

@ -33,7 +33,6 @@ import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.profiles.DefaultProfileManager;
import org.apache.maven.profiles.ProfileActivationContext;
import org.apache.maven.project.harness.PomTestWrapper;
import org.apache.maven.repository.RepositorySystem;
import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
@ -48,8 +47,6 @@ public class PomConstructionTest
private DefaultMavenProjectBuilder mavenProjectBuilder;
private RepositorySystem mavenTools;
private File testDirectory;
private File testMixinDirectory;
@ -60,7 +57,6 @@ public class PomConstructionTest
testDirectory = new File( getBasedir(), BASE_POM_DIR );
testMixinDirectory = new File( getBasedir(), BASE_MIXIN_DIR );
mavenProjectBuilder = (DefaultMavenProjectBuilder) lookup( MavenProjectBuilder.class );
mavenTools = lookup( RepositorySystem.class );
}
/**
@ -80,7 +76,7 @@ public class PomConstructionTest
*
* @throws Exception
*/
/* FIXME: cf MNG-786*/
/* MNG-786*/
public void testProfileModules()
throws Exception
{
@ -92,7 +88,6 @@ public class PomConstructionTest
assertEquals( "module-3", pom.getValue( "modules[3]" ) );
assertEquals( "module-4", pom.getValue( "modules[4]" ) );
}
//*/
/**
* Will throw exception if doesn't find parent(s) in build
@ -138,15 +133,11 @@ public class PomConstructionTest
// them into a resolver, create the expression to extract the data to validate the Model, and the URI
// to validate the properties. We also need a way to navigate from the Tex specification documents to
// the test in question and vice versa. A little Eclipse plugin would do the trick.
/*
TODO: Not sure why this test is failing after removing resolver. Logic is the same.
*/
public void testThatExecutionsWithoutIdsAreMergedAndTheChildWins()
throws Exception
{
// This should be 2
//assertEquals( 2, model.getLineageCount() );
PomTestWrapper tester = buildPom("micromailer");
assertEquals( 2, tester.getDomainModel().getLineageCount() );
assertModelEquals( tester, "child-descriptor", "build/plugins[1]/executions[1]/goals[1]" );
}
@ -349,7 +340,6 @@ public class PomConstructionTest
pom.getDomainModel().asString();
}
//*/
public void testOrderOfGoalsFromPluginExecutionWithoutPluginManagement()
throws Exception
{
@ -362,7 +352,7 @@ public class PomConstructionTest
assertEquals( "e", pom.getValue( "build/plugins[1]/executions[1]/goals[5]" ) );
}
/* FIXME: cf. MNG-3886*/
/* MNG-3886*/
public void testOrderOfGoalsFromPluginExecutionWithPluginManagement()
throws Exception
{
@ -374,7 +364,6 @@ public class PomConstructionTest
assertEquals( "c", pom.getValue( "build/plugins[1]/executions[1]/goals[4]" ) );
assertEquals( "e", pom.getValue( "build/plugins[1]/executions[1]/goals[5]" ) );
}
//*/
public void testOrderOfPluginExecutionsWithoutPluginManagement()
throws Exception
@ -388,7 +377,7 @@ public class PomConstructionTest
assertEquals( "e", pom.getValue( "build/plugins[1]/executions[5]/id" ) );
}
/* FIXME: cf. MNG-3887 */
/* MNG-3887 */
public void testOrderOfPluginExecutionsWithPluginManagement()
throws Exception
{
@ -400,7 +389,6 @@ public class PomConstructionTest
assertEquals( "c", pom.getValue( "build/plugins[1]/executions[4]/id" ) );
assertEquals( "e", pom.getValue( "build/plugins[1]/executions[5]/id" ) );
}
//*/
public void testMergeOfPluginExecutionsWhenChildInheritsPluginVersion()
throws Exception
@ -425,7 +413,7 @@ public class PomConstructionTest
assertEquals( "<?xml version='1.0'?>Tom&Jerry", pom.getValue( "properties/xmlTest" ) );
}
/* FIXME: cf. MNG-3925 */
/* MNG-3925 */
public void testOrderOfMergedPluginExecutionsWithoutPluginManagement()
throws Exception
{
@ -451,7 +439,6 @@ public class PomConstructionTest
assertEquals( "child-1", pom.getValue( "build/plugins[1]/executions[4]/goals[1]" ) );
assertEquals( "child-2", pom.getValue( "build/plugins[1]/executions[5]/goals[1]" ) );
}
//*/
/* MNG-3984*/
public void testDifferentContainersWithSameId()
@ -487,7 +474,6 @@ public class PomConstructionTest
assertEquals( "parent-b", pom.getValue( "build/plugins[1]/executions[1]/goals[4]" ) );
assertEquals( "parent-a", pom.getValue( "build/plugins[1]/executions[1]/goals[5]" ) );
}
//*/
public void testOverridingOfInheritedPluginExecutionsWithoutPluginManagement()
throws Exception
@ -620,7 +606,7 @@ public class PomConstructionTest
assertEquals( "PASSED", pom.getValue( "properties/property" + index ) );
}
}
/*
/* FIXME
public void testInterpolationOfLegacyExpressionsThatDontIncludeTheProjectPrefix()
throws Exception
{
@ -653,7 +639,7 @@ public class PomConstructionTest
assertTrue( pom.getValue( "properties/projectBuildOut" ).toString().endsWith( "bin" ) );
assertTrue( pom.getValue( "properties/projectSiteOut" ).toString().endsWith( "doc" ) );
}
*/
//*/
public void testInterpolationWithBasedirAlignedDirectories()
throws Exception
{
@ -690,7 +676,6 @@ public class PomConstructionTest
PomTestWrapper pom = buildPom( "id-container-joining-with-empty-elements/sub" );
assertNotNull( pom );
}
//*/
public void testOrderOfPluginConfigurationElementsWithoutPluginManagement()
throws Exception
@ -702,7 +687,7 @@ public class PomConstructionTest
assertEquals( "four", pom.getValue( "build/plugins[1]/configuration/stringParams/stringParam[4]" ) );
}
/* FIXME: cf. MNG-3827*/
/* MNG-3827*/
public void testOrderOfPluginConfigurationElementsWithPluginManagement()
throws Exception
{
@ -712,7 +697,6 @@ public class PomConstructionTest
assertEquals( "three", pom.getValue( "build/plugins[1]/configuration/stringParams/stringParam[3]" ) );
assertEquals( "four", pom.getValue( "build/plugins[1]/configuration/stringParams/stringParam[4]" ) );
}
//*/
public void testOrderOfPluginExecutionConfigurationElementsWithoutPluginManagement()
throws Exception
@ -727,7 +711,7 @@ public class PomConstructionTest
assertEquals( "key2", pom.getValue( prefix + "propertiesParam/property[2]/name" ) );
}
/* FIXME: cf. MNG-3864*/
/* MNG-3864*/
public void testOrderOfPluginExecutionConfigurationElementsWithPluginManagement()
throws Exception
{
@ -740,9 +724,8 @@ public class PomConstructionTest
assertEquals( "key1", pom.getValue( prefix + "propertiesParam/property[1]/name" ) );
assertEquals( "key2", pom.getValue( prefix + "propertiesParam/property[2]/name" ) );
}
//*/
/* FIXME: cf. MNG-3836*/
/* MNG-3836*/
public void testMergeOfInheritedPluginConfiguration()
throws Exception
{
@ -760,9 +743,8 @@ public class PomConstructionTest
assertEquals( "PASSED-2", pom.getValue( prefix + "listParam/listParam[3]" ) );
assertEquals( "PASSED-4", pom.getValue( prefix + "listParam/listParam[4]" ) );
}
//*/
/* FIXME: cf. MNG-2591*/
/* MNG-2591*/
public void testAppendOfInheritedPluginConfiguration()
throws Exception
{
@ -785,9 +767,8 @@ public class PomConstructionTest
assertEquals( "CHILD-2", pom.getValue( prefix + "listParam/listParam[7]" ) );
assertEquals( "CHILD-4", pom.getValue( prefix + "listParam/listParam[8]" ) );
}
//*/
/* FIXME: cf. MNG-4000 */
/* MNG-4000 */
public void testMultiplePluginExecutionsWithAndWithoutIdsWithoutPluginManagement()
throws Exception
{
@ -796,7 +777,6 @@ public class PomConstructionTest
assertEquals( "log-string", pom.getValue( "build/plugins[1]/executions[1]/goals[1]" ) );
assertEquals( "log-string", pom.getValue( "build/plugins[1]/executions[2]/goals[1]" ) );
}
//*/
public void testMultiplePluginExecutionsWithAndWithoutIdsWithPluginManagement()
throws Exception
@ -871,7 +851,6 @@ public class PomConstructionTest
assertEquals( "b", pom.getValue( "dependencies[3]/artifactId" ) );
assertEquals( "d", pom.getValue( "dependencies[4]/artifactId" ) );
}
//*/
/** MNG-4034 */
public void testManagedProfileDependency()
@ -886,7 +865,6 @@ public class PomConstructionTest
assertEquals( 1, ( (List<?>) pom.getValue( "dependencies[1]/exclusions" ) ).size() );
assertEquals( "commons-lang", pom.getValue( "dependencies[1]/exclusions[1]/groupId" ) );
}
//*/
/** MNG-4040 */
public void testProfileModuleInheritance()
@ -908,7 +886,7 @@ public class PomConstructionTest
assertEquals( null, pom.getValue( "build/plugins[1]/configuration/domParam/copy/fileset/@overwrite" ) );
}
/** FIXME: MNG-4053*/
/** MNG-4053*/
public void testPluginConfigurationUsingAttributesWithPluginManagement()
throws Exception
{
@ -930,7 +908,6 @@ public class PomConstructionTest
assertEquals( null, pom.getValue( "build/plugins[1]/configuration/domParam/copy/fileset/@todir" ) );
assertEquals( null, pom.getValue( "build/plugins[1]/configuration/domParam/copy/fileset/@overwrite" ) );
}
//*/
public void testPomEncoding()
throws Exception
@ -957,11 +934,27 @@ public class PomConstructionTest
assertEquals( pom.getBasedir().toURI().toString(), pom.getValue( "properties/prop1" ).toString() );
}
public void testCompleteModel()
public void testCompleteModelWithoutParent()
throws Exception
{
PomTestWrapper pom = buildPom( "complete-model" );
PomTestWrapper pom = buildPom( "complete-model/wo-parent" );
testCompleteModel( pom );
}
/* FIXME
public void testCompleteModelWithParent()
throws Exception
{
PomTestWrapper pom = buildPom( "complete-model/w-parent/sub" );
testCompleteModel( pom );
}
//*/
private void testCompleteModel( PomTestWrapper pom )
throws Exception
{
assertEquals( "4.0.0", pom.getValue( "modelVersion" ) );
assertEquals( "org.apache.maven.its.mng", pom.getValue( "groupId" ) );

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.
-->
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.its.mng</groupId>
<artifactId>parent</artifactId>
<version>0.1</version>
<packaging>pom</packaging>
<!-- minimal parent just to have one more level of inheritance -->
</project>

View File

@ -0,0 +1,319 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.
-->
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.maven.its.mng</groupId>
<artifactId>parent</artifactId>
<version>0.1</version>
</parent>
<groupId>org.apache.maven.its.mng</groupId>
<artifactId>test</artifactId>
<version>0.2</version>
<packaging>pom</packaging>
<name>project-name</name>
<description>project-description</description>
<url>http://project.url/</url>
<inceptionYear>2009</inceptionYear>
<organization>
<name>project-org</name>
<url>http://project-org.url/</url>
</organization>
<licenses>
<license>
<name>project-license</name>
<url>http://project.url/license</url>
<distribution>repo</distribution>
<comments>free</comments>
</license>
</licenses>
<developers>
<developer>
<id>dev</id>
<name>project-developer</name>
<email>developer@</email>
<url>http://developer</url>
<organization>developer</organization>
<organizationUrl>http://devel.org</organizationUrl>
<roles>
<role>devel</role>
</roles>
<timezone>-1</timezone>
<properties>
<developer>yes</developer>
</properties>
</developer>
</developers>
<contributors>
<contributor>
<name>project-contributor</name>
<email>contributor@</email>
<url>http://contributor</url>
<organization>contributor</organization>
<organizationUrl>http://contrib.org</organizationUrl>
<roles>
<role>contrib</role>
</roles>
<timezone>+1</timezone>
<properties>
<contributor>yes</contributor>
</properties>
</contributor>
</contributors>
<mailingLists>
<mailingList>
<name>project-mailing-list</name>
<subscribe>subscribe@</subscribe>
<unsubscribe>unsubscribe@</unsubscribe>
<post>post@</post>
<archive>mail-archive</archive>
<otherArchives>
<otherArchive>other-archive</otherArchive>
</otherArchives>
</mailingList>
</mailingLists>
<prerequisites>
<maven>2.0.1</maven>
</prerequisites>
<scm>
<url>http://project.url/trunk</url>
<connection>http://project.url/scm</connection>
<developerConnection>https://project.url/scm</developerConnection>
<tag>TAG</tag>
</scm>
<issueManagement>
<system>issues</system>
<url>http://project.url/issues</url>
</issueManagement>
<ciManagement>
<system>ci</system>
<url>http://project.url/ci</url>
<notifiers>
<notifier>
<type>irc</type>
<address>ci@</address>
<sendOnError>true</sendOnError>
<sendOnFailure>false</sendOnFailure>
<sendOnSuccess>false</sendOnSuccess>
<sendOnWarning>false</sendOnWarning>
<configuration>
<ciProp>ci</ciProp>
</configuration>
</notifier>
</notifiers>
</ciManagement>
<distributionManagement>
<repository>
<url>http://project.url/dist</url>
<id>project.distros</id>
<name>distros</name>
</repository>
<snapshotRepository>
<url>http://project.url/snaps</url>
<id>project.snaps</id>
<name>snaps</name>
<uniqueVersion>false</uniqueVersion>
</snapshotRepository>
<site>
<url>http://project.url/site</url>
<id>project.site</id>
<name>docs</name>
</site>
<downloadUrl>http://project.url/download</downloadUrl>
<relocation>
<groupId>reloc-gid</groupId>
<artifactId>reloc-aid</artifactId>
<version>reloc-version</version>
<message>project-reloc-msg</message>
</relocation>
</distributionManagement>
<modules>
<module>sub</module>
</modules>
<properties>
<itProperty>project-property</itProperty>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.maven.its</groupId>
<artifactId>managed-dep</artifactId>
<version>0.1</version>
<type>war</type>
<scope>runtime</scope>
<exclusions>
<exclusion>
<groupId>org.apache.maven.its</groupId>
<artifactId>excluded-managed-dep</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.maven.its</groupId>
<artifactId>dep</artifactId>
<version>0.2</version>
<type>ejb</type>
<scope>test</scope>
<optional>true</optional>
<exclusions>
<exclusion>
<groupId>org.apache.maven.its</groupId>
<artifactId>excluded-dep</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<repositories>
<repository>
<id>project-remote-repo</id>
<url>http://project.url/remote</url>
<name>repo</name>
</repository>
</repositories>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.its.ext</groupId>
<artifactId>ext</artifactId>
<version>3.0</version>
</extension>
</extensions>
<defaultGoal>test</defaultGoal>
<directory>build</directory>
<sourceDirectory>sources/main</sourceDirectory>
<scriptSourceDirectory>sources/scripts</scriptSourceDirectory>
<testSourceDirectory>sources/test</testSourceDirectory>
<outputDirectory>build/main</outputDirectory>
<testOutputDirectory>build/test</testOutputDirectory>
<finalName>coreit</finalName>
<resources>
<resource>
<directory>res/main</directory>
<filtering>true</filtering>
<targetPath>main</targetPath>
<includes>
<include>main.included</include>
</includes>
<excludes>
<exclude>main.excluded</exclude>
</excludes>
</resource>
</resources>
<testResources>
<testResource>
<directory>res/test</directory>
<filtering>true</filtering>
<targetPath>test</targetPath>
<includes>
<include>test.included</include>
</includes>
<excludes>
<exclude>test.excluded</exclude>
</excludes>
</testResource>
</testResources>
<filters>
<filter>src/main/filter/it.properties</filter>
</filters>
<plugins>
<plugin>
<groupId>org.apache.maven.its.plugins</groupId>
<artifactId>maven-it-plugin-build</artifactId>
<version>2.1-SNAPSHOT</version>
<configuration>
<outputFile>test.properties</outputFile>
</configuration>
<executions>
<execution>
<id>test</id>
<phase>validate</phase>
<goals>
<goal>eval</goal>
</goals>
<configuration>
<outputFile>pom.properties</outputFile>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.maven.its</groupId>
<artifactId>build-plugin-dep</artifactId>
<version>0.3</version>
<type>zip</type>
<exclusions>
<exclusion>
<groupId>org.apache.maven.its</groupId>
<artifactId>excluded-build-plugin-dep</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
<reporting>
<excludeDefaults>true</excludeDefaults>
<outputDirectory>docs</outputDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.its.plugins</groupId>
<artifactId>maven-it-plugin-reporting</artifactId>
<version>2.0-SNAPSHOT</version>
<configuration>
<outputFile>test.html</outputFile>
</configuration>
<reportSets>
<reportSet>
<id>it</id>
<reports>
<report>run</report>
</reports>
<configuration>
<outputFile>index.html</outputFile>
</configuration>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
</project>