Author: jdcasey Date: Mon Jan 9 19:19:23 2006 New Revision: 367472 URL: http://svn.apache.org/viewcvs?rev=367472&view=rev Log: Adding classloader testing mojos.
Added: maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/LoadableMojo.java (with props) maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ReachableMojo.java (with props) maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/RunnableMojo.java (with props) Modified: maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/pom.xml Modified: maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/pom.xml URL: http://svn.apache.org/viewcvs/maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/pom.xml?rev=367472&r1=367471&r2=367472&view=diff ============================================================================== --- maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/pom.xml (original) +++ maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/pom.xml Mon Jan 9 19:19:23 2006 @@ -3,7 +3,7 @@ <parent> <artifactId>maven-plugin-parent</artifactId> <groupId>org.apache.maven.plugins</groupId> - <version>2.0-beta-3</version> + <version>2.0.1</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>maven-core-it-plugin</artifactId> @@ -31,6 +31,16 @@ <groupId>jline</groupId> <artifactId>jline</artifactId> <version>0.9.1</version> + </dependency> + <dependency> + <groupId>bsh</groupId> + <artifactId>bsh</artifactId> + <version>1.3.0</version> + </dependency> + <dependency> + <groupId>xalan</groupId> + <artifactId>xalan</artifactId> + <version>2.6.0</version> </dependency> </dependencies> </model> Added: maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/LoadableMojo.java URL: http://svn.apache.org/viewcvs/maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/LoadableMojo.java?rev=367472&view=auto ============================================================================== --- maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/LoadableMojo.java (added) +++ maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/LoadableMojo.java Mon Jan 9 19:19:23 2006 @@ -0,0 +1,59 @@ +package org.apache.maven.plugin.coreit; + +import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoFailureException; + +/** + * @goal loadable + * @requiresDependencyResolution test + */ +public class LoadableMojo + extends AbstractMojo +{ + /** + * @parameter + * @required + */ + private String className; + + public void execute() throws MojoFailureException + { + if ( !load( true ) || !load( false ) ) + { + throw new MojoFailureException( this, "Class-loading test failed..", "Failed to load class: " + className + " using one or more methods." ); + } + } + + private boolean load( boolean useContextClassloader ) throws MojoFailureException + { + getLog().info( "Executing in java version: " + System.getProperty( "java.version" ) ); + + ClassLoader cl; + if ( useContextClassloader ) + { + cl = Thread.currentThread().getContextClassLoader(); + } + else + { + cl = this.getClass().getClassLoader(); + } + + getLog().info( "Attepting to load: " + className + " from: " + cl + (useContextClassloader ? " (context classloader)" : "" ) ); + + try + { + Class result = cl.loadClass( className ); + + getLog().info( "Load succeeded." ); + + return true; + } + catch ( ClassNotFoundException e ) + { + getLog().info( "Failed to load class: " + className + + (useContextClassloader ? " using context classloader" : "") ); + + return false; + } + } +} Propchange: maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/LoadableMojo.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/LoadableMojo.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ReachableMojo.java URL: http://svn.apache.org/viewcvs/maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ReachableMojo.java?rev=367472&view=auto ============================================================================== --- maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ReachableMojo.java (added) +++ maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ReachableMojo.java Mon Jan 9 19:19:23 2006 @@ -0,0 +1,54 @@ +package org.apache.maven.plugin.coreit; + +import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoFailureException; + +import java.net.URL; + +/** + * @goal reachable + * @requiresDependencyResolution test + */ +public class ReachableMojo extends AbstractMojo +{ + /** + * @parameter + * @required + */ + private String resource; + + public void execute() + throws MojoFailureException + { + if ( !reach( true ) || !reach( false ) ) + { + throw new MojoFailureException( this, "Resource reachability test failed..", "Failed to reach resource: " + resource + " using one or more methods." ); + } + } + + public boolean reach( boolean useContextClassloader ) throws MojoFailureException + { + ClassLoader cl; + if ( useContextClassloader ) + { + cl = Thread.currentThread().getContextClassLoader(); + } + else + { + cl = this.getClass().getClassLoader(); + } + + URL result = cl.getResource( resource ); + + getLog().info( "Attepting to reach: " + resource + " from: " + cl + (useContextClassloader ? " (context classloader)" : "" ) + ( result == null ? ": FAILED" : ":SUCCEEDED" ) ); + + if ( result == null ) + { + getLog().info( "Cannot find resource: " + resource + (useContextClassloader?" in context classloader":"") ); + + return false; + } + + return true; + } +} Propchange: maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ReachableMojo.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ReachableMojo.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/RunnableMojo.java URL: http://svn.apache.org/viewcvs/maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/RunnableMojo.java?rev=367472&view=auto ============================================================================== --- maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/RunnableMojo.java (added) +++ maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/RunnableMojo.java Mon Jan 9 19:19:23 2006 @@ -0,0 +1,39 @@ +package org.apache.maven.plugin.coreit; + +import bsh.EvalError; +import bsh.Interpreter; + +import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoExecutionException; + +/** + * @goal runnable + * @requiresDependencyResolution test + */ +public class RunnableMojo + extends AbstractMojo +{ + /** + * @parameter + * @required + */ + private String script; + + public void execute() throws MojoExecutionException + { + Interpreter terp = new Interpreter(); + + try + { + getLog().info( "Executing in java version: " + System.getProperty( "java.version" ) ); + + Object result = terp.eval( script ); + + getLog().info( "Result of script evaluation was: " + result + "\nLoaded from: " + result.getClass().getClassLoader() ); + } + catch ( EvalError e ) + { + throw new MojoExecutionException( "Failed to evaluate script.", e ); + } + } +} Propchange: maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/RunnableMojo.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/branches/maven-2.0.x/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/RunnableMojo.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision"