[jboss-svn-commits] JBL Code SVN: r10828 - labs/jbossbuild/maven-plugins/trunk/jboss-deploy-maven-plugin/src/main/java/org/jboss/maven/plugins/deploy.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Apr 8 14:26:58 EDT 2007


Author: pgier
Date: 2007-04-08 14:26:49 -0400 (Sun, 08 Apr 2007)
New Revision: 10828

Modified:
   labs/jbossbuild/maven-plugins/trunk/jboss-deploy-maven-plugin/src/main/java/org/jboss/maven/plugins/deploy/JBossDeployMojo.java
Log:
JBBUILD-347; Added generation of imports based on dependencies.

Modified: labs/jbossbuild/maven-plugins/trunk/jboss-deploy-maven-plugin/src/main/java/org/jboss/maven/plugins/deploy/JBossDeployMojo.java
===================================================================
--- labs/jbossbuild/maven-plugins/trunk/jboss-deploy-maven-plugin/src/main/java/org/jboss/maven/plugins/deploy/JBossDeployMojo.java	2007-04-08 17:32:40 UTC (rev 10827)
+++ labs/jbossbuild/maven-plugins/trunk/jboss-deploy-maven-plugin/src/main/java/org/jboss/maven/plugins/deploy/JBossDeployMojo.java	2007-04-08 18:26:49 UTC (rev 10828)
@@ -15,6 +15,7 @@
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.model.Dependency;
 import org.apache.maven.model.License;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
@@ -94,9 +95,17 @@
    private String jbossDeployRoot;
 
    /**
-    * This is the map of components that this project depends on.
+    * If set to true, this will tell the plugin to generate a listing of imports based on the
+    * project dependencies.  Defaults to false;
     * @parameter
     */
+   private boolean generateImports;
+
+   /**
+    * This is the map of components that this project depends on.  If generateImports is set
+    * to true, the generated imports will be appended to the imports specified here.
+    * @parameter
+    */
    private Map imports;
 
    /**
@@ -121,8 +130,8 @@
       }
 
       // Initialize some local variables
-      File deployToDir = new File(jbossDeployRoot + fileSep + project.getGroupId() + fileSep + project.getArtifactId()
-            + fileSep + project.getVersion() + fileSep);
+      File deployToDir = new File(jbossDeployRoot + fileSep + project.getGroupId().replace('.', '/') + fileSep
+            + project.getArtifactId() + fileSep + project.getVersion() + fileSep);
       File deployToLibDir = new File(deployToDir.getAbsolutePath() + fileSep + "lib" + fileSep);
 
       // Load template file
@@ -243,26 +252,33 @@
       }
       evaluateVariable(compInfoTemplate, "includes", exportsString.toString());
 
-      // Get list of imports
-      //TODO: Maybe this can be determined based on the dependencies, but for now we just have to set it 
-      //      in the plugin configuration 
-      //      List dependencies = project.getDependencies();
-      if (imports == null)
+      // Generate list of imports
+      StringBuffer importsString = new StringBuffer();
+      if (imports != null)
       {
-         evaluateVariable(compInfoTemplate, "imports", "");
-      }
-      else
-      {
-         StringBuffer importsString = new StringBuffer();
          Set componentNames = imports.keySet();
          for (Object component : componentNames)
          {
-            importsString.append("    <import componentref=\"" + component + "\">\n");
+            importsString.append("    <import componentref=\"" + component.toString().replace('.', '/') + "\">\n");
             importsString.append("      <compatible version=\"" + imports.get(component) + "\"/>\n");
             importsString.append("    </import>\n");
          }
-         evaluateVariable(compInfoTemplate, "imports", importsString.toString());
       }
+      if (this.generateImports)
+      {
+         List dependencies = project.getDependencies();
+         for (Object obj : dependencies)
+         {
+            Dependency dep = (Dependency) obj;
+            if (dep.getScope() == null || !dep.getScope().equals("test")) {
+               importsString.append("    <import componentref=\"" + dep.getGroupId().replace('.', '/') + "/"
+                     + dep.getArtifactId() + "\">\n");
+               importsString.append("      <compatible version=\"" + dep.getVersion() + "\"/>\n");
+               importsString.append("    </import>\n");
+            }
+         }
+      }
+      evaluateVariable(compInfoTemplate, "imports", importsString.toString());
 
       // Write the component info file
       File compInfoFile = new File(deployToDir + fileSep + "component-info.xml");
@@ -281,14 +297,18 @@
       {
          this.getLog().error(ioe);
       }
-  
+
       CompInfoVerifier verifier = new CompInfoVerifier();
-      try {
+      try
+      {
          verifier.verifyCompInfo(new FileInputStream(compInfoFile));
       }
-      catch (SAXException e) {
+      catch (SAXException e)
+      {
          this.getLog().warn(e);
-      } catch (FileNotFoundException fnfe) {
+      }
+      catch (FileNotFoundException fnfe)
+      {
          fnfe.printStackTrace();
       }
    }




More information about the jboss-svn-commits mailing list