[jboss-cvs] JBossAS SVN: r110388 - in projects/jboss-jca/trunk/codegenerator/src/main: java/org/jboss/jca/codegenerator/code and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jan 17 08:31:16 EST 2011


Author: jeff.zhang
Date: 2011-01-17 08:31:15 -0500 (Mon, 17 Jan 2011)
New Revision: 110388

Added:
   projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/xml/MbeanXmlGen.java
   projects/jboss-jca/trunk/codegenerator/src/main/resources/mbean.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/code/MbeanImplCodeGen.java
Log:
[JBJCA-457] add mbean xml file for sjc

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	2011-01-17 13:04:47 UTC (rev 110387)
+++ projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/BaseProfile.java	2011-01-17 13:31:15 UTC (rev 110388)
@@ -27,6 +27,7 @@
 import org.jboss.jca.codegenerator.xml.IronjacamarXmlGen;
 import org.jboss.jca.codegenerator.xml.IvySettingsXmlGen;
 import org.jboss.jca.codegenerator.xml.IvyXmlGen;
+import org.jboss.jca.codegenerator.xml.MbeanXmlGen;
 import org.jboss.jca.codegenerator.xml.PomXmlGen;
 import org.jboss.jca.codegenerator.xml.RaXmlGen;
 
@@ -62,8 +63,6 @@
       generateRaCode(def);
       generateOutboundCode(def);
       generateInboundCode(def);
-      if (def.isGenMbean() && !def.isUseCciConnection())
-         generateMBeanCode(def);
       
       generateTestCode(def);
 
@@ -76,6 +75,12 @@
 
       generateRaXml(def, def.getOutputDir());
       generateIronjacamarXml(def, def.getOutputDir());
+      
+      if (def.isGenMbean() && !def.isUseCciConnection())
+      {
+         generateMBeanCode(def);
+         generateMbeanXml(def, def.getOutputDir());
+      }
    }
 
    /**
@@ -330,6 +335,26 @@
    }
    
    /**
+    * generate mbean deployment xml
+    * @param def Definition
+    * @param outputDir output directory
+    */
+   void generateMbeanXml(Definition def, String outputDir)
+   {
+      try
+      {
+         FileWriter mbfw = Utils.createFile(def.getDefaultValue() + ".xml", outputDir);
+         MbeanXmlGen mbGen = new MbeanXmlGen();
+         mbGen.generate(def, mbfw);
+         mbfw.close();
+      }
+      catch (IOException ioe)
+      {
+         ioe.printStackTrace();
+      }
+   }
+   
+   /**
     * generate test code
     * 
     * @param def Definition 

Modified: projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/MbeanImplCodeGen.java
===================================================================
--- projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/MbeanImplCodeGen.java	2011-01-17 13:04:47 UTC (rev 110387)
+++ projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/MbeanImplCodeGen.java	2011-01-17 13:31:15 UTC (rev 110388)
@@ -114,8 +114,6 @@
       writeEol(out);
       out.write("import javax.management.MBeanServer;");
       writeEol(out);
-      out.write("import javax.management.NotCompliantMBeanException;");
-      writeEol(out);
       out.write("import javax.management.ObjectName;");
       writeEol(out);
       out.write("import javax.naming.InitialContext;");

Added: projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/xml/MbeanXmlGen.java
===================================================================
--- projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/xml/MbeanXmlGen.java	                        (rev 0)
+++ projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/xml/MbeanXmlGen.java	2011-01-17 13:31:15 UTC (rev 110388)
@@ -0,0 +1,64 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2011, 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 MbeanXmlGen.
+ * 
+ * @author Jeff Zhang
+ * @version $Revision: $
+ */
+public class MbeanXmlGen extends AbstractXmlGen
+{
+   @Override
+   public void writeXmlBody(Definition def, Writer out) throws IOException
+   {
+      out.write("<!--");
+      writeEol(out);
+      writeheader(def, out);
+      out.write("-->");
+      writeEol(out);
+      writeEol(out);
+
+      URL buildFile = MbeanXmlGen.class.getResource("/mbean.xml.template");
+      String buildString = Utils.readFileIntoString(buildFile);
+      
+      Map<String, String> map = new HashMap<String, String>();
+      map.put("mbean.name", def.getDefaultValue());
+      map.put("mbean.interface", def.getRaPackage() + "." + def.getMbeanInterfaceClass());
+      map.put("mbean.impl", def.getRaPackage() + "." + def.getMbeanImplClass());
+      
+      Template template = new SimpleTemplate(buildString);
+      template.process(map, out);
+   }
+}

Added: projects/jboss-jca/trunk/codegenerator/src/main/resources/mbean.xml.template
===================================================================
--- projects/jboss-jca/trunk/codegenerator/src/main/resources/mbean.xml.template	                        (rev 0)
+++ projects/jboss-jca/trunk/codegenerator/src/main/resources/mbean.xml.template	2011-01-17 13:31:15 UTC (rev 110388)
@@ -0,0 +1,7 @@
+<deployment>
+  <bean name="${mbean.name}" interface="${mbean.interface}" class="${mbean.impl}">
+    <property name="MBeanServer">
+        <inject bean="Kernel" property="MBeanServer"/>
+    </property>
+  </bean>
+</deployment>



More information about the jboss-cvs-commits mailing list