[jboss-cvs] JBossAS SVN: r107987 - in projects/jboss-jca/trunk/codegenerator/src/main: java/org/jboss/jca/codegenerator/xml and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Sep 3 23:51:17 EDT 2010


Author: jeff.zhang
Date: 2010-09-03 23:51:17 -0400 (Fri, 03 Sep 2010)
New Revision: 107987

Added:
   projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/xml/PomXmlGen.java
   projects/jboss-jca/trunk/codegenerator/src/main/resources/pom.xml.template
Modified:
   projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/BaseProfile.java
   projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/Main.java
   projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/xml/IvyXmlGen.java
   projects/jboss-jca/trunk/codegenerator/src/main/resources/codegenerator.properties
Log:
[JBJCA-398] maven support for generated code

Modified: projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/BaseProfile.java
===================================================================
--- projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/BaseProfile.java	2010-09-03 19:41:56 UTC (rev 107986)
+++ projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/BaseProfile.java	2010-09-04 03:51:17 UTC (rev 107987)
@@ -26,6 +26,7 @@
 import org.jboss.jca.codegenerator.xml.BuildXmlGen;
 import org.jboss.jca.codegenerator.xml.IvySettingsXmlGen;
 import org.jboss.jca.codegenerator.xml.IvyXmlGen;
+import org.jboss.jca.codegenerator.xml.PomXmlGen;
 import org.jboss.jca.codegenerator.xml.RaXmlGen;
 
 import java.io.File;
@@ -65,6 +66,8 @@
 
       if (def.getBuild().equals("ivy"))
          generateAntIvyXml(def, def.getOutputDir());
+      else if (def.getBuild().equals("maven"))
+         generateMavenXml(def, def.getOutputDir());
       else
          generateAntXml(def, def.getOutputDir());
 
@@ -231,7 +234,28 @@
          ioe.printStackTrace();
       }
    }
+   
    /**
+    * generate ant build.xml
+    * @param def Definition
+    * @param outputDir output directory
+    */
+   void generateMavenXml(Definition def, String outputDir)
+   {
+      try
+      {
+         FileWriter pomfw = Utils.createFile("pom.xml", outputDir);
+         PomXmlGen pxGen = new PomXmlGen();
+         pxGen.generate(def, pomfw);
+         pomfw.close();
+      }
+      catch (IOException ioe)
+      {
+         ioe.printStackTrace();
+      }
+   }
+   
+   /**
     * generate ra.xml
     * @param def Definition
     * @param outputDir output directory

Modified: projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/Main.java
===================================================================
--- projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/Main.java	2010-09-03 19:41:56 UTC (rev 107986)
+++ projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/Main.java	2010-09-04 03:51:17 UTC (rev 107987)
@@ -431,6 +431,11 @@
          {
             def.setBuild("ivy");
          }
+         else if (buildEnv.equalsIgnoreCase("m") || 
+            buildEnv.equalsIgnoreCase("maven"))
+         {
+            def.setBuild("maven");
+         }
          else
             def.setBuild("ant");
       }

Modified: projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/xml/IvyXmlGen.java
===================================================================
--- projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/xml/IvyXmlGen.java	2010-09-03 19:41:56 UTC (rev 107986)
+++ projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/xml/IvyXmlGen.java	2010-09-04 03:51:17 UTC (rev 107987)
@@ -53,19 +53,22 @@
       URL buildFile = IvyXmlGen.class.getResource("/ivy.xml.template");
       String buildString = Utils.readFileIntoString(buildFile);
       
+      String packageName = "";
+      String moduleName;
       int pos = def.getRaPackage().lastIndexOf(".");
-      String packageName = "";
-      String moduleName = "";
       if (pos > 0)
       {
          packageName = def.getRaPackage().substring(0, pos);
          moduleName = def.getRaPackage().substring(pos + 1);
       }
+      else
+      {
+         moduleName = def.getRaPackage();
+      }
       Map<String, String> map = new HashMap<String, String>();
       map.put("ivy.package.name", packageName);
       map.put("ivy.module.name", moduleName);
       Template template = new SimpleTemplate(buildString);
       template.process(map, out);
-      //out.write(buildString);
    }
 }

Added: projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/xml/PomXmlGen.java
===================================================================
--- projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/xml/PomXmlGen.java	                        (rev 0)
+++ projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/xml/PomXmlGen.java	2010-09-04 03:51:17 UTC (rev 107987)
@@ -0,0 +1,67 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.jca.codegenerator.xml;
+
+import org.jboss.jca.codegenerator.Definition;
+import org.jboss.jca.codegenerator.SimpleTemplate;
+import org.jboss.jca.codegenerator.Template;
+import org.jboss.jca.codegenerator.Utils;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * A PomXmlGen.
+ * 
+ * @author Jeff Zhang
+ * @version $Revision: $
+ */
+public class PomXmlGen extends AbstractXmlGen
+{
+   @Override
+   public void writeXmlBody(Definition def, Writer out) throws IOException
+   {
+      URL buildFile = PomXmlGen.class.getResource("/pom.xml.template");
+      String buildString = Utils.readFileIntoString(buildFile);
+
+      String packageName = "";
+      String moduleName;
+      int pos = def.getRaPackage().lastIndexOf(".");
+      if (pos > 0)
+      {
+         packageName = def.getRaPackage().substring(0, pos);
+         moduleName = def.getRaPackage().substring(pos + 1);
+      }
+      else
+      {
+         moduleName = def.getRaPackage();
+      }
+      Map<String, String> map = new HashMap<String, String>();
+      map.put("pom.package.name", packageName);
+      map.put("pom.module.name", moduleName);
+      Template template = new SimpleTemplate(buildString);
+      template.process(map, out);
+   }
+}

Modified: projects/jboss-jca/trunk/codegenerator/src/main/resources/codegenerator.properties
===================================================================
--- projects/jboss-jca/trunk/codegenerator/src/main/resources/codegenerator.properties	2010-09-03 19:41:56 UTC (rev 107986)
+++ projects/jboss-jca/trunk/codegenerator/src/main/resources/codegenerator.properties	2010-09-04 03:51:17 UTC (rev 107987)
@@ -31,5 +31,5 @@
 connection.method.param.type=Parameter type: 
 connection.method.exception=Exception type [enter to quit]: 
 output.dir=Output directory: 
-build.env=Build environment [A/Ant/I/Ant+Ivy] 
+build.env=Build environment [A/Ant/I/Ant+Ivy/M/Maven] 
 code.wrote=Code generated 

Added: projects/jboss-jca/trunk/codegenerator/src/main/resources/pom.xml.template
===================================================================
--- projects/jboss-jca/trunk/codegenerator/src/main/resources/pom.xml.template	                        (rev 0)
+++ projects/jboss-jca/trunk/codegenerator/src/main/resources/pom.xml.template	2010-09-04 03:51:17 UTC (rev 107987)
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>${pom.package.name}</groupId>
+  <artifactId>${pom.module.name}</artifactId>
+  <packaging>jar</packaging>
+  <version>0.1</version>
+  <url>http://repository.jboss.org</url>
+  <dependencies>
+    <dependency>
+      <groupId>org.jboss.ironjacamar</groupId>
+      <artifactId>ironjacamar-spec-api</artifactId>
+      <version>@VERSION.IRONJACAMAR@</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.ironjacamar</groupId>
+      <artifactId>ironjacamar-common-api</artifactId>
+      <version>@VERSION.IRONJACAMAR@</version>
+      <scope>runtime</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.jboss.ironjacamar</groupId>
+      <artifactId>ironjacamar-common-impl</artifactId>
+      <version>@VERSION.IRONJACAMAR@</version>
+      <scope>runtime</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.jboss.ironjacamar</groupId>
+      <artifactId>ironjacamar-core-api</artifactId>
+      <version>@VERSION.IRONJACAMAR@</version>
+      <scope>runtime</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.jboss.ironjacamar</groupId>
+      <artifactId>ironjacamar-core-impl</artifactId>
+      <version>@VERSION.IRONJACAMAR@</version>
+      <scope>runtime</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.jboss.ironjacamar</groupId>
+      <artifactId>ironjacamar-core-spi</artifactId>
+      <version>@VERSION.IRONJACAMAR@</version>
+      <scope>runtime</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.jboss.ironjacamar</groupId>
+      <artifactId>ironjacamar-depchain</artifactId>
+      <version>@VERSION.IRONJACAMAR@</version>
+      <scope>runtime</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.jboss.ironjacamar</groupId>
+      <artifactId>ironjacamar-deployers-fungal</artifactId>
+      <version>@VERSION.IRONJACAMAR@</version>
+      <scope>runtime</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.jboss.ironjacamar</groupId>
+      <artifactId>ironjacamar-embedded-arquillian</artifactId>
+      <version>@VERSION.IRONJACAMAR@</version>
+      <scope>runtime</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.jboss.ironjacamar</groupId>
+      <artifactId>ironjacamar-embedded</artifactId>
+      <version>@VERSION.IRONJACAMAR@</version>
+      <scope>runtime</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.jboss.ironjacamar</groupId>
+      <artifactId>ironjacamar-validator</artifactId>
+      <version>@VERSION.IRONJACAMAR@</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.8.1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  <build>
+    <sourceDirectory>src/main</sourceDirectory>
+    <testSourceDirectory>src/test</testSourceDirectory>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.5</source>
+          <target>1.5</target>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build> 
+  <repositories>
+    <repository>
+      <id>fungal</id>
+      <url>http://jesperpedersen.github.com/fungal/maven2</url>
+    </repository>
+  </repositories>
+</project>



More information about the jboss-cvs-commits mailing list