You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2006/10/11 11:30:44 UTC
svn commit: r462747 -
/geronimo/genesis/trunk/plugins/script-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/script/GroovyMojo.java
Author: jdillon
Date: Wed Oct 11 02:30:43 2006
New Revision: 462747
URL: http://svn.apache.org/viewvc?view=rev&rev=462747
Log:
Changed scriptDirectory to scriptpath
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=462747&r1=462746&r2=462747
==============================================================================
--- 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:30:43 2006
@@ -35,8 +35,10 @@
import groovy.lang.GroovyObject;
import groovy.lang.GroovyResourceLoader;
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DependencyResolutionRequiredException;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.project.MavenProject;
+import org.apache.maven.plugin.MojoExecutionException;
import org.apache.geronimo.genesis.MojoSupport;
import org.apache.geronimo.genesis.util.ArtifactItem;
@@ -68,14 +70,12 @@
*/
private ArtifactItem[] classpath = null;
- //
- // TODO: Make this a scriptpath
- //
-
/**
- * @parameter expression="${basedir}/src/main/script"
+ * Path to search for imported scripts.
+ *
+ * @parameter expression
*/
- private File scriptDirectory = null;
+ private File[] scriptpath = null;
//
// Maven components
@@ -109,39 +109,18 @@
//
// Mojo
//
-
+
protected void doExecute() throws Exception {
source.validate();
ClassLoader parent = getClass().getClassLoader();
- List urls = new ArrayList();
-
- // Add the plugins dependencies
- List classpathFiles = project.getCompileClasspathElements();
- for (int i = 0; i < classpathFiles.size(); ++i) {
- urls.add(new File((String)classpathFiles.get(i)).toURL());
- }
-
- // Add custom dependencies
- if (classpath != null) {
- for (int i=0; i < classpath.length; i++) {
- Artifact artifact = getArtifact(classpath[i]);
- urls.add(artifact.getFile().toURL());
- }
- }
-
- URL[] _urls = (URL[])urls.toArray(new URL[urls.size()]);
- if (log.isDebugEnabled()) {
- for (int i=0; i < _urls.length; i++) {
- log.debug("URL[" + i + "]: " + _urls[i]);
- }
- }
+ URL[] urls = getClasspath();
//
// TODO: Investigate using GroovyScript instead of this...
//
- URLClassLoader cl = new URLClassLoader(_urls, parent);
+ URLClassLoader cl = new URLClassLoader(urls, parent);
GroovyClassLoader loader = new GroovyClassLoader(cl);
loader.setResourceLoader(new GroovyResourceLoader()
{
@@ -153,13 +132,22 @@
}
resource = resource + ".groovy";
- File file = new File(scriptDirectory, resource);
- if (file.exists()) {
- return file.toURL();
- }
- else {
- return null;
+ if (scriptpath != null) {
+ for (int i=0; i<scriptpath.length; i++) {
+ if (scriptpath[i] == null) {
+ // Can not throw MojoExecutionException, so just spit out a warning
+ log.warn("Ignoring null element in scriptpath");
+ }
+ else {
+ File file = new File(scriptpath[i], resource);
+ if (file.exists()) {
+ return file.toURL();
+ }
+ }
+ }
}
+
+ return null;
}
});
@@ -206,9 +194,37 @@
groovyObject.setProperty("project", delegate);
groovyObject.setProperty("pom", delegate);
+ // Execute the script
groovyObject.invokeMethod("run", new Object[0]);
}
+ private URL[] getClasspath() throws DependencyResolutionRequiredException, MalformedURLException, MojoExecutionException {
+ List list = new ArrayList();
+
+ // Add the plugins dependencies
+ List classpathFiles = project.getCompileClasspathElements();
+ for (int i = 0; i < classpathFiles.size(); ++i) {
+ list.add(new File((String)classpathFiles.get(i)).toURL());
+ }
+
+ // Add custom dependencies
+ if (classpath != null) {
+ for (int i=0; i < classpath.length; i++) {
+ Artifact artifact = getArtifact(classpath[i]);
+ list.add(artifact.getFile().toURL());
+ }
+ }
+
+ URL[] urls = (URL[])list.toArray(new URL[list.size()]);
+ if (log.isDebugEnabled()) {
+ for (int i=0; i < urls.length; i++) {
+ log.debug("URL[" + i + "]: " + urls[i]);
+ }
+ }
+
+ return urls;
+ }
+
private Properties resolveProperties(final Properties source) {
Properties props = new Properties(System.getProperties());