You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2006/01/10 02:11:36 UTC
svn commit: r367448 - in
/maven/components/trunk/integration-tests/maven-core-it-plugin: ./
src/main/java/org/apache/maven/plugin/coreit/
Author: jdcasey
Date: Mon Jan 9 17:11:31 2006
New Revision: 367448
URL: http://svn.apache.org/viewcvs?rev=367448&view=rev
Log:
Adding mojos for loading classes, finding resources, and running BSH scripts, all according to the plugin's classpath.
Added:
maven/components/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/LoadableMojo.java (with props)
maven/components/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ReachableMojo.java (with props)
maven/components/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/RunnableMojo.java (with props)
Modified:
maven/components/trunk/integration-tests/maven-core-it-plugin/pom.xml
Modified: maven/components/trunk/integration-tests/maven-core-it-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/integration-tests/maven-core-it-plugin/pom.xml?rev=367448&r1=367447&r2=367448&view=diff
==============================================================================
--- maven/components/trunk/integration-tests/maven-core-it-plugin/pom.xml (original)
+++ maven/components/trunk/integration-tests/maven-core-it-plugin/pom.xml Mon Jan 9 17:11:31 2006
@@ -32,5 +32,10 @@
<artifactId>jline</artifactId>
<version>0.9.1</version>
</dependency>
+ <dependency>
+ <groupId>bsh</groupId>
+ <artifactId>bsh</artifactId>
+ <version>1.3.0</version>
+ </dependency>
</dependencies>
</model>
Added: maven/components/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/LoadableMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/LoadableMojo.java?rev=367448&view=auto
==============================================================================
--- maven/components/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/LoadableMojo.java (added)
+++ maven/components/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/LoadableMojo.java Mon Jan 9 17:11:31 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/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/LoadableMojo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/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/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ReachableMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ReachableMojo.java?rev=367448&view=auto
==============================================================================
--- maven/components/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ReachableMojo.java (added)
+++ maven/components/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ReachableMojo.java Mon Jan 9 17:11:31 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/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ReachableMojo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/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/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/RunnableMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/RunnableMojo.java?rev=367448&view=auto
==============================================================================
--- maven/components/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/RunnableMojo.java (added)
+++ maven/components/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/RunnableMojo.java Mon Jan 9 17:11:31 2006
@@ -0,0 +1,40 @@
+package org.apache.maven.plugin.coreit;
+
+import bsh.EvalError;
+import bsh.Interpreter;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoFailureException;
+
+/**
+ * @goal runnable
+ * @requiresDependencyResolution test
+ */
+public class RunnableMojo
+ extends AbstractMojo
+{
+ /**
+ * @parameter
+ * @required
+ */
+ private String script;
+
+ public void execute() throws MojoFailureException
+ {
+ Interpreter terp = new Interpreter();
+
+ try
+ {
+ getLog().info( "Executing in java version: " + System.getProperty( "java.version" ) );
+
+ Class result = (Class) terp.eval( script );
+
+ getLog().info( "Result of script evaluation was: " + result + "\nLoaded from: " + result.getClassLoader() );
+ }
+ catch ( EvalError e )
+ {
+ throw new MojoFailureException( this, "Failed to evaluate script.", "Script: \n\n" + script
+ + "\n\nfailed to evaluate. Error: " + e.getMessage() + "\nLine: " + e.getErrorLineNumber() );
+ }
+ }
+}
Propchange: maven/components/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/RunnableMojo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/integration-tests/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/RunnableMojo.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"