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/09/04 16:55:17 UTC
svn commit: r440099 - in /geronimo/genesis/trunk/plugins/tools-maven-plugin:
pom.xml
src/main/java/org/apache/geronimo/genesis/plugins/tools/MavenMojo.java
src/main/java/org/apache/geronimo/genesis/plugins/tools/RequireJavaVersionMojo.java
Author: jdillon
Date: Mon Sep 4 07:55:16 2006
New Revision: 440099
URL: http://svn.apache.org/viewvc?view=rev&rev=440099
Log:
Adding a prototype of a custom maven invoker module, so we can pass profile & other flags to the child
Added:
geronimo/genesis/trunk/plugins/tools-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/tools/MavenMojo.java (with props)
Modified:
geronimo/genesis/trunk/plugins/tools-maven-plugin/pom.xml
geronimo/genesis/trunk/plugins/tools-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/tools/RequireJavaVersionMojo.java
Modified: geronimo/genesis/trunk/plugins/tools-maven-plugin/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/genesis/trunk/plugins/tools-maven-plugin/pom.xml?view=diff&rev=440099&r1=440098&r2=440099
==============================================================================
--- geronimo/genesis/trunk/plugins/tools-maven-plugin/pom.xml (original)
+++ geronimo/genesis/trunk/plugins/tools-maven-plugin/pom.xml Mon Sep 4 07:55:16 2006
@@ -54,6 +54,18 @@
</dependency>
</dependencies>
-
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-plugin-plugin</artifactId>
+ <configuration>
+ <goalPrefix>tools</goalPrefix>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
</project>
Added: geronimo/genesis/trunk/plugins/tools-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/tools/MavenMojo.java
URL: http://svn.apache.org/viewvc/geronimo/genesis/trunk/plugins/tools-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/tools/MavenMojo.java?view=auto&rev=440099
==============================================================================
--- geronimo/genesis/trunk/plugins/tools-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/tools/MavenMojo.java (added)
+++ geronimo/genesis/trunk/plugins/tools-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/tools/MavenMojo.java Mon Sep 4 07:55:16 2006
@@ -0,0 +1,158 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.geronimo.genesis.plugins.tools;
+
+import java.io.File;
+import java.io.IOException;
+
+import java.util.Map;
+import java.util.Iterator;
+
+import org.apache.geronimo.genesis.AntMojoSupport;
+
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.plugin.MojoExecutionException;
+
+import org.codehaus.plexus.util.Os;
+
+import org.apache.tools.ant.taskdefs.ExecTask;
+
+/**
+ * Invoke Maven in a sub-process.
+ *
+ * @goal maven
+ *
+ * @version $Rev$ $Date$
+ */
+public class MavenMojo
+ extends AntMojoSupport
+{
+ /**
+ * ???
+ *
+ * @parameter expression="${pomFile}"
+ * @required
+ */
+ private File pomFile = null;
+
+ /**
+ * ???
+ *
+ * @parameter
+ */
+ private String[] flags = null;
+
+ /**
+ * ???
+ *
+ * @parameter
+ */
+ private Map parameters = null;
+
+ /**
+ * ???
+ *
+ * @parameter
+ */
+ private String[] goals = null;
+
+ //
+ // MojoSupport Hooks
+ //
+
+ /**
+ * The maven project.
+ *
+ * @parameter expression="${project}"
+ * @required
+ * @readonly
+ */
+ protected MavenProject project = null;
+
+ protected MavenProject getProject() {
+ return project;
+ }
+
+ protected void doExecute() throws Exception {
+ ExecTask exec = (ExecTask)createTask("exec");
+
+ exec.setExecutable(getMavenExecutable().getAbsolutePath());
+ exec.setFailIfExecutionFails(true);
+ exec.setFailonerror(true);
+
+ if (flags != null) {
+ for (int i=0; i< flags.length; i++) {
+ exec.createArg().setValue(flags[i]);
+ }
+ }
+
+ if (parameters != null) {
+ Iterator iter = parameters.keySet().iterator();
+ while (iter.hasNext()) {
+ String name = (String)iter.next();
+ Object value = parameters.get(name);
+ exec.createArg().setValue("-D" + name + "=" + value);
+ }
+ }
+
+ if (goals != null) {
+ for (int i=0; i< goals.length; i++) {
+ exec.createArg().setValue(goals[i]);
+ }
+ }
+
+ if (!pomFile.exists()) {
+ throw new MojoExecutionException("Missing pom file as: " + pomFile);
+ }
+ else {
+ exec.createArg().setValue("-f");
+ exec.createArg().setFile(pomFile);
+ }
+
+ log.info("Starting Maven...");
+
+ exec.execute();
+ }
+
+ private File getMavenExecutable() throws MojoExecutionException, IOException {
+ String path = System.getProperty("maven.home");
+ if (path == null) {
+ // This should really never happen
+ throw new MojoExecutionException("Missing msaven.home system property");
+ }
+
+ File home = new File(path);
+ File cmd;
+
+ if (Os.isFamily("windows")) {
+ cmd = new File(home, "bin/mvn.bat");
+ }
+ else {
+ cmd = new File(home, "bin/mvn");
+ }
+
+ cmd = cmd.getCanonicalFile();
+ if (!cmd.exists()) {
+ throw new MojoExecutionException("Maven executable not found at: " + cmd);
+ }
+
+ return cmd;
+ }
+}
Propchange: geronimo/genesis/trunk/plugins/tools-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/tools/MavenMojo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/genesis/trunk/plugins/tools-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/tools/MavenMojo.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/genesis/trunk/plugins/tools-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/tools/MavenMojo.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: geronimo/genesis/trunk/plugins/tools-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/tools/RequireJavaVersionMojo.java
URL: http://svn.apache.org/viewvc/geronimo/genesis/trunk/plugins/tools-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/tools/RequireJavaVersionMojo.java?view=diff&rev=440099&r1=440098&r2=440099
==============================================================================
--- geronimo/genesis/trunk/plugins/tools-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/tools/RequireJavaVersionMojo.java (original)
+++ geronimo/genesis/trunk/plugins/tools-maven-plugin/src/main/java/org/apache/geronimo/genesis/plugins/tools/RequireJavaVersionMojo.java Mon Sep 4 07:55:16 2006
@@ -34,7 +34,8 @@
* @version $Rev$ $Date$
*/
public class RequireJavaVersionMojo
- extends MojoSupport {
+ extends MojoSupport
+{
/**
* Specify the required version of Java (1.1, 1.2, 1.3, 1.4, 1.5).
*