From: Mathieu Baudier Date: Sun, 7 Dec 2008 16:13:12 +0000 (+0000) Subject: Call python natively X-Git-Tag: svn/tags/maven-plugins-0.3.0@2542~36 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=a46abbe1243c96e640f0971f5be005facc32f162;p=gpl%2Fargeo-slc.git Call python natively git-svn-id: https://svn.argeo.org/slc/trunk/maven@1925 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/maven-argeo-qooxdoo-plugin/pom.xml b/maven-argeo-qooxdoo-plugin/pom.xml index b740b00f6..b456a2d80 100644 --- a/maven-argeo-qooxdoo-plugin/pom.xml +++ b/maven-argeo-qooxdoo-plugin/pom.xml @@ -29,12 +29,6 @@ maven-project 2.0.7 - - org.argeo.dep.dist - jython - 2.5.beta0 - exec - diff --git a/maven-argeo-qooxdoo-plugin/src/main/java/org/argeo/slc/maven/plugins/qooxdoo/GenerateMojo.java b/maven-argeo-qooxdoo-plugin/src/main/java/org/argeo/slc/maven/plugins/qooxdoo/GenerateMojo.java index 5a3429523..ec695a56b 100644 --- a/maven-argeo-qooxdoo-plugin/src/main/java/org/argeo/slc/maven/plugins/qooxdoo/GenerateMojo.java +++ b/maven-argeo-qooxdoo-plugin/src/main/java/org/argeo/slc/maven/plugins/qooxdoo/GenerateMojo.java @@ -5,7 +5,11 @@ import java.io.File; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; -import org.python.util.jython; +import org.apache.maven.plugin.logging.Log; +import org.codehaus.plexus.util.cli.CommandLineException; +import org.codehaus.plexus.util.cli.CommandLineUtils; +import org.codehaus.plexus.util.cli.Commandline; +import org.codehaus.plexus.util.cli.StreamConsumer; /** * Calls Qooxdoo python tool chain @@ -40,19 +44,39 @@ public class GenerateMojo extends AbstractMojo { public void execute() throws MojoExecutionException, MojoFailureException { try { - File jythonBase = new File(buildDirectory, "jython"); - jythonBase.mkdirs(); - System.setProperty("python.home", jythonBase.getCanonicalPath()); + // File jythonBase = new File(buildDirectory, "jython"); + // jythonBase.mkdirs(); + // System.setProperty("python.home", jythonBase.getCanonicalPath()); - //File generateScript = new File(baseDir, "generate.py"); + File generateScript = new File(baseDir, "generate.py"); // String[] jobArray = jobs.split(" "); // String[] args = new String[jobArray.length + 1]; // args[0] = generateScript.getCanonicalPath(); // System.arraycopy(jobArray, 0, args, 1, jobArray.length); String[] args = { "generate.py", job }; getLog().info("Running Qooxdoo job: " + job + " ..."); - jython.main(args); + // jython.main(args); + + Commandline cl = new Commandline(); + cl.setExecutable("python"); + cl.setWorkingDirectory(baseDir.getCanonicalPath()); + cl.createArgument().setValue(generateScript.getCanonicalPath()); + cl.createArgument().setValue(job); + + StreamConsumer stdout = new StdoutConsumer(getLog()); + StreamConsumer stderr = new StderrConsumer(getLog()); + try { + int result = CommandLineUtils.executeCommandLine(cl, stdout, + stderr); + if (result != 0) { + throw new MojoExecutionException("Qooxdoo job returned: \'" + + result + "\'."); + } + } catch (CommandLineException e) { + throw new MojoExecutionException("Unable to run Qooxdoo job", e); + } getLog().info("Finished Qooxdoo job: " + job); + } catch (Exception e) { throw new MojoExecutionException( "Unexpected exception when running Jython", e); @@ -60,4 +84,61 @@ public class GenerateMojo extends AbstractMojo { } + /** + * Consumer to receive lines sent to stdout. The lines are logged as info. + */ + private class StdoutConsumer implements StreamConsumer { + /** Logger to receive the lines. */ + private Log logger; + + /** + * Constructor. + * + * @param log + * The logger to receive the lines + */ + public StdoutConsumer(Log log) { + logger = log; + } + + /** + * Consume a line. + * + * @param string + * The line to consume + */ + public void consumeLine(String string) { + logger.info(string); + } + } + + /** + * Consumer to receive lines sent to stderr. The lines are logged as + * warnings. + */ + private class StderrConsumer implements StreamConsumer { + /** Logger to receive the lines. */ + private Log logger; + + /** + * Constructor. + * + * @param log + * The logger to receive the lines + */ + public StderrConsumer(Log log) { + logger = log; + } + + /** + * Consume a line. + * + * @param string + * The line to consume + */ + public void consumeLine(String string) { + logger.warn(string); + } + } + } diff --git a/maven-argeo-qooxdoo-plugin/src/main/resources/META-INF/maven/lifecycle.xml b/maven-argeo-qooxdoo-plugin/src/main/resources/META-INF/maven/lifecycle.xml index 9d2f90106..3fb51df2e 100644 --- a/maven-argeo-qooxdoo-plugin/src/main/resources/META-INF/maven/lifecycle.xml +++ b/maven-argeo-qooxdoo-plugin/src/main/resources/META-INF/maven/lifecycle.xml @@ -12,16 +12,6 @@ - - org.argeo.dep.dist - jython - 2.5.beta0 - lib - zip - ${project.build.directory}/jython - - false - org.argeo.dep.dist qooxdoo-sdk