o a test for using resources that plugins need from dependencies and not extensions. So the practice of using extensions for this purpose

will not be allowed for 2.1 and we can actually deprecate this in 2.0.x. This is simply a bad practice, if a plugin needs something
  the plugin should specify that.


git-svn-id: https://svn.apache.org/repos/asf/maven/core-integration-testing/trunk@585617 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jason van Zyl 2007-10-17 18:14:40 +00:00
parent 63a1cedd0a
commit 572a1a4be1
8 changed files with 266 additions and 0 deletions

View File

@ -0,0 +1,5 @@
This test needs to build a JAR and then a plugin to use it. The root pom does that. The verifier then goes into test-project
and executes mvn verify to execute the plugin. I did this to make sure the verifier picked up the correct
artifacts by making a separate execution.
This test also shows that any resources that are required by plugins should be specified as dependencies and not extensions.

View File

@ -0,0 +1,112 @@
<?xml version="1.0"?>
<ruleset name="EPHS Custom ruleset"
xmlns="http://pmd.sf.net/ruleset/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description>
This ruleset checks EPHS code
</description>
<rule ref="rulesets/finalizers.xml"/>
<rule ref="rulesets/controversial.xml/UnnecessaryParentheses"/>
<rule ref="rulesets/optimizations.xml/UseArrayListInsteadOfVector"/>
<rule ref="rulesets/optimizations.xml/SimplifyStartsWith"/>
<rule ref="rulesets/optimizations.xml/UseArraysAsList"/>
<rule ref="rulesets/optimizations.xml/AvoidArrayLoops"/>
<!--<rule ref="rulesets/optimizations.xml/UnnecessaryWrapperObjectCreation"/> -->
<rule ref="rulesets/j2ee.xml/UseProperClassLoader"/>
<rule ref="rulesets/basic.xml/EmptyCatchBlock"/>
<rule ref="rulesets/basic.xml/EmptyIfStmt"/>
<rule ref="rulesets/basic.xml/EmptyWhileStmt"/>
<rule ref="rulesets/basic.xml/EmptyTryBlock"/>
<rule ref="rulesets/basic.xml/EmptyFinallyBlock"/>
<rule ref="rulesets/basic.xml/EmptySwitchStatements"/>
<rule ref="rulesets/basic.xml/JumbledIncrementer"/>
<rule ref="rulesets/basic.xml/UnnecessaryConversionTemporary"/>
<rule ref="rulesets/basic.xml/DoubleCheckedLocking"/>
<rule ref="rulesets/basic.xml/OverrideBothEqualsAndHashcode"/>
<rule ref="rulesets/basic.xml/ReturnFromFinallyBlock"/>
<rule ref="rulesets/basic.xml/EmptySynchronizedBlock"/>
<rule ref="rulesets/basic.xml/UnnecessaryReturn"/>
<rule ref="rulesets/basic.xml/UnconditionalIfStatement"/>
<rule ref="rulesets/basic.xml/EmptyStatementNotInLoop"/>
<rule ref="rulesets/basic.xml/BooleanInstantiation"/>
<rule ref="rulesets/basic.xml/CollapsibleIfStatements"/>
<rule ref="rulesets/basic.xml/ClassCastExceptionWithToArray"/>
<rule ref="rulesets/basic.xml/UselessOperationOnImmutable"/>
<!-- <rule ref="rulesets/basic.xml/NullPointerException"/> -->
<rule ref="rulesets/basic.xml/AvoidThreadGroup"/>
<!-- <rule ref="rulesets/basic.xml/BrokenNullCheck"/> -->
<rule ref="rulesets/sunsecure.xml"/>
<rule ref="rulesets/strictexception.xml"/>
<rule ref="rulesets/codesize.xml/ExcessiveMethodLength"/>
<rule ref="rulesets/codesize.xml/ExcessiveParameterList"/>
<rule ref="rulesets/design.xml/SimplifyBooleanReturns"/>
<rule ref="rulesets/design.xml/AvoidDeeplyNestedIfStmts"/>
<rule ref="rulesets/design.xml/ConstructorCallsOverridableMethod"/>
<rule ref="rulesets/design.xml/CloseResource"/>
<rule ref="rulesets/design.xml/NonStaticInitializer"/>
<rule ref="rulesets/design.xml/DefaultLabelNotLastInSwitchStmt"/>
<rule ref="rulesets/design.xml/NonCaseLabelInSwitchStatement"/>
<rule ref="rulesets/design.xml/OptimizableToArrayCall"/>
<rule ref="rulesets/design.xml/BadComparison"/>
<rule ref="rulesets/design.xml/EqualsNull"/>
<rule ref="rulesets/design.xml/InstantiationToGetClass"/>
<rule ref="rulesets/design.xml/IdempotentOperations"/>
<rule ref="rulesets/design.xml/AssignmentToNonFinalStatic"/>
<rule ref="rulesets/design.xml/MissingStaticMethodInNonInstantiatableClass"/>
<rule ref="rulesets/design.xml/MissingBreakInSwitch"/>
<rule ref="rulesets/design.xml/UseNotifyAllInsteadOfNotify"/>
<rule ref="rulesets/design.xml/SimplifyConditional"/>
<rule ref="rulesets/design.xml/CompareObjectsWithEquals"/>
<rule ref="rulesets/design.xml/UnnecessaryLocalBeforeReturn"/>
<rule ref="rulesets/design.xml/UnsynchronizedStaticDateFormatter"/>
<rule ref="rulesets/design.xml/PreserveStackTrace"/>
<rule ref="rulesets/strings.xml/StringInstantiation"/>
<rule ref="rulesets/strings.xml/StringToString"/>
<rule ref="rulesets/strings.xml/UnnecessaryCaseChange"/>
<rule ref="rulesets/strings.xml/UseStringBufferLength"/>
<rule ref="rulesets/strings.xml/InsufficientStringBufferDeclaration"/>
<!--<rule ref="rulesets/strings.xml/UselessStringValueOf"/> -->
<rule ref="rulesets/imports.xml"/>
<rule ref="rulesets/naming.xml/VariableNamingConventions"/>
<!--<rule ref="rulesets/naming.xml/AvoidDollarSign"/> -->
<rule ref="rulesets/naming.xml/SuspiciousHashcodeMethodName"/>
<rule ref="rulesets/naming.xml/SuspiciousConstantFieldName"/>
<rule ref="rulesets/naming.xml/SuspiciousEqualsMethodName"/>
<rule ref="rulesets/naming.xml/AvoidFieldNameMatchingTypeName"/>
<rule ref="rulesets/naming.xml/AvoidFieldNameMatchingMethodName"/>
<rule ref="rulesets/naming.xml/AvoidNonConstructorMethodsWithClassName"/>
<rule ref="rulesets/naming.xml/NoPackage"/>
<rule ref="rulesets/naming.xml/PackageCase"/>
<rule ref="rulesets/naming.xml/MisleadingVariableName"/>
<rule ref="rulesets/logging-java.xml/SystemPrintln"/>
<rule ref="rulesets/logging-java.xml/AvoidPrintStackTrace"/>
<rule ref="rulesets/logging-jakarta-commons.xml/UseCorrectExceptionLogging"/>
<rule ref="rulesets/braces.xml"/>
</ruleset>

View File

@ -0,0 +1,31 @@
<?xml version="1.0"?><project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.its.it0129</groupId>
<artifactId>it0129-extension</artifactId>
<packaging>pom</packaging>
<version>1.0</version>
<name>it0129 - extension</name>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>attached</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/assembly/assembly.xml</descriptor>
</descriptors>
<outputDirectory>target</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,16 @@
<assembly>
<id></id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>.</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>it0129_rule_set.xml</include>
</includes>
</fileSet>
</fileSets>
</assembly>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.its.it0129</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<name>it0129 - parent</name>
<modules>
<module>extension</module>
<module>test-plugin</module>
</modules>
</project>

View File

@ -0,0 +1,26 @@
<?xml version="1.0"?><project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.its.it0129</groupId>
<artifactId>it0129-plugin</artifactId>
<packaging>maven-plugin</packaging>
<version>1.0</version>
<name>it0129 - plugin</name>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,31 @@
package org.apache.maven.plugin;
import java.net.URL;
/**
* @author <a href="mailto:brianf@apache.org">Brian Fox</a>
* @goal test
* @phase verify
*/
public class It0129Mojo
extends AbstractMojo
{
public void execute()
throws MojoExecutionException, MojoFailureException
{
ClassLoader cl = this.getClass().getClassLoader();
URL url = cl.getResource( "it0129_rule_set.xml" );
if (url != null)
{
this.getLog().info( "Found Url: "+ url.getFile() );
}
else
{
throw new MojoExecutionException("Can't find it0129_rule_set.xml on classpath!!");
}
}
}

View File

@ -0,0 +1,32 @@
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.its.it0129</groupId>
<artifactId>it0129-plugin-runner</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<name>it0129 - plugin runner</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.its.it0129</groupId>
<artifactId>it0129-plugin</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.its.it0129</groupId>
<artifactId>it0129-extension</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>