You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by ro...@apache.org on 2009/02/20 06:20:52 UTC

svn commit: r746145 - /cayenne/main/trunk/framework/maven-cayenne-modeler-plugin/src/main/java/org/apache/cayenne/tools/CayenneModelerMojo.java

Author: robertdzeigler
Date: Fri Feb 20 05:20:48 2009
New Revision: 746145

URL: http://svn.apache.org/viewvc?rev=746145&view=rev
Log:
CAY-1158: cayenne-modeler:run plugin should open a (configured) project file, with suitable defaults

Modified:
    cayenne/main/trunk/framework/maven-cayenne-modeler-plugin/src/main/java/org/apache/cayenne/tools/CayenneModelerMojo.java

Modified: cayenne/main/trunk/framework/maven-cayenne-modeler-plugin/src/main/java/org/apache/cayenne/tools/CayenneModelerMojo.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/maven-cayenne-modeler-plugin/src/main/java/org/apache/cayenne/tools/CayenneModelerMojo.java?rev=746145&r1=746144&r2=746145&view=diff
==============================================================================
--- cayenne/main/trunk/framework/maven-cayenne-modeler-plugin/src/main/java/org/apache/cayenne/tools/CayenneModelerMojo.java (original)
+++ cayenne/main/trunk/framework/maven-cayenne-modeler-plugin/src/main/java/org/apache/cayenne/tools/CayenneModelerMojo.java Fri Feb 20 05:20:48 2009
@@ -19,7 +19,12 @@
 
 package org.apache.cayenne.tools;
 
+import java.io.File;
+import java.util.List;
+
 import org.apache.cayenne.modeler.Main;
+import org.apache.maven.model.Resource;
+import org.apache.maven.project.MavenProject;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
@@ -33,10 +38,54 @@
  * @goal run
  */
 public class CayenneModelerMojo extends AbstractMojo {
-	public void execute() throws MojoExecutionException, MojoFailureException {
 
-		// Start up the modeler.
-		Main.main(new String[] {});
+    /**
+     * Name of the model file to open.  
+     *
+     * @parameter expression="${modeler.modelFile} 
+     */
+    private File modelFile;
+
+    /**
+     * Project instance.
+     * @parameter default-value="${project}"
+     * @required
+     * @readonly
+     */
+    private MavenProject project;
+
+    private File lookupModelFile() {
+        if (modelFile != null) {
+            return modelFile;
+        }
+        
+        //try to locate cayenne.xml at top level of a resource directory.
+        for(Object o : project.getResources()) {
+            Resource r = (Resource) o;
+            File f = new File(r.getDirectory(),"cayenne.xml");
+            if (f.exists()) {
+                return f;
+            }
+        }
+        
+        //failing that, try for WEB-INF/cayenne.xml in the maven-conventional webapp directory, src/main/webapp
+        File f = new File(project.getBasedir().getAbsolutePath(),
+                            "src" + File.separator + 
+                            "main" + File.separator + 
+                            "webapp" + File.separator + 
+                            "WEB-INF" + File.separator +
+                            "cayenne.xml");
+        return f;
+    }
+
+	public void execute() throws MojoExecutionException, MojoFailureException {
+        File f = lookupModelFile();
+        //start the modeler with the provided model file, if it exists.
+        if (f.exists() && !f.isDirectory()) {
+            Main.main(new String[] {f.getAbsolutePath()});
+        } else {
+            Main.main(new String[] {});
+        }
 
 		// Block until the modeler finishes executing.
 		try {