Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 27303 invoked from network); 11 Oct 2006 09:04:48 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 11 Oct 2006 09:04:48 -0000 Received: (qmail 60544 invoked by uid 500); 11 Oct 2006 09:04:47 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 60516 invoked by uid 500); 11 Oct 2006 09:04:47 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 60505 invoked by uid 99); 11 Oct 2006 09:04:47 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Oct 2006 02:04:47 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [140.211.166.113] (HELO eris.apache.org) (140.211.166.113) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Oct 2006 02:04:46 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id A1BF11A981A; Wed, 11 Oct 2006 02:04:25 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r462740 - /geronimo/genesis/trunk/plugins/script-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/script/GroovyMojo.java Date: Wed, 11 Oct 2006 09:04:25 -0000 To: scm@geronimo.apache.org From: jdillon@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20061011090425.A1BF11A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: jdillon Date: Wed Oct 11 02:04:24 2006 New Revision: 462740 URL: http://svn.apache.org/viewvc?view=rev&rev=462740 Log: Allow loading peer scripts Modified: geronimo/genesis/trunk/plugins/script-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/script/GroovyMojo.java Modified: geronimo/genesis/trunk/plugins/script-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/script/GroovyMojo.java URL: http://svn.apache.org/viewvc/geronimo/genesis/trunk/plugins/script-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/script/GroovyMojo.java?view=diff&rev=462740&r1=462739&r2=462740 ============================================================================== --- geronimo/genesis/trunk/plugins/script-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/script/GroovyMojo.java (original) +++ geronimo/genesis/trunk/plugins/script-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/script/GroovyMojo.java Wed Oct 11 02:04:24 2006 @@ -19,31 +19,28 @@ package org.apache.geronimo.genesis.plugins.script; -import org.apache.geronimo.genesis.MojoSupport; -import org.apache.geronimo.genesis.util.ArtifactItem; -import org.apache.geronimo.genesis.util.ExpressionParser; - import java.io.File; import java.io.InputStream; - +import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; -import java.util.List; import java.util.ArrayList; -import java.util.Properties; -import java.util.Map; import java.util.HashMap; import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Properties; -import org.apache.maven.artifact.repository.ArtifactRepository; +import groovy.lang.GroovyClassLoader; +import groovy.lang.GroovyObject; +import groovy.lang.GroovyResourceLoader; import org.apache.maven.artifact.Artifact; -import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.project.MavenProject; -import groovy.lang.GroovyClassLoader; -import groovy.lang.GroovyObject; -import groovy.lang.GroovyRuntimeException; -import groovy.lang.MissingPropertyException; +import org.apache.geronimo.genesis.MojoSupport; +import org.apache.geronimo.genesis.util.ArtifactItem; +import org.apache.geronimo.genesis.util.ExpressionParser; /** * Executes a Groovy script. @@ -72,6 +69,15 @@ private ArtifactItem[] classpath = null; // + // TODO: Make this a scriptpath + // + + /** + * @parameter expression="${basedir}/src/main/script" + */ + private File scriptDirectory = null; + + // // Maven components // @@ -86,7 +92,7 @@ * @readonly * @required */ - protected ArtifactRepository artifactRepository = null; + private ArtifactRepository artifactRepository = null; // // MojoSupport Hooks @@ -134,9 +140,28 @@ // // TODO: Investigate using GroovyScript instead of this... // - + URLClassLoader cl = new URLClassLoader(_urls, parent); GroovyClassLoader loader = new GroovyClassLoader(cl); + loader.setResourceLoader(new GroovyResourceLoader() + { + // Allow peer scripts to be loaded + public URL loadGroovySource(final String classname) throws MalformedURLException { + String resource = classname.replace('.', '/'); + if (!resource.startsWith("/")) { + resource = "/" + resource; + } + resource = resource + ".groovy"; + + File file = new File(scriptDirectory, resource); + if (file.exists()) { + return file.toURL(); + } + else { + return null; + } + } + }); Class groovyClass;