[jboss-cvs] JBossAS SVN: r105954 - in projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator: code and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jun 11 05:14:18 EDT 2010


Author: jeff.zhang
Date: 2010-06-11 05:14:18 -0400 (Fri, 11 Jun 2010)
New Revision: 105954

Modified:
   projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/Definition.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/code/ActivationCodeGen.java
   projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/RaCodeGen.java
Log:
[JBJCA-352] Activation start and stop method

Modified: projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/Definition.java
===================================================================
--- projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/Definition.java	2010-06-11 08:41:16 UTC (rev 105953)
+++ projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/Definition.java	2010-06-11 09:14:18 UTC (rev 105954)
@@ -31,6 +31,8 @@
  */
 public class Definition
 {
+   /** jca version  */
+   private String version;
    /** output directory  */
    private String outputDir;
    /** resource adapter package name */
@@ -98,6 +100,26 @@
    private String activationClass;
    
    /**
+    * Set the version.
+    * 
+    * @param version The version to set.
+    */
+   public void setVersion(String version)
+   {
+      this.version = version;
+   }
+
+   /**
+    * Get the version.
+    * 
+    * @return the version.
+    */
+   public String getVersion()
+   {
+      return version;
+   }
+
+   /**
     * Set the outputDir.
     * 
     * @param outputDir The outputDir to set.

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-06-11 08:41:16 UTC (rev 105953)
+++ projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/Main.java	2010-06-11 09:14:18 UTC (rev 105954)
@@ -107,6 +107,7 @@
                version = "1.6";
          }
          while (!(version.equals("1.6") || version.equals("1.5") || version.equals("1.0")));
+         def.setVersion(version);
          
          //by default, support outbound, but not inbound
          def.setSupportOutbound(true);

Modified: projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/ActivationCodeGen.java
===================================================================
--- projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/ActivationCodeGen.java	2010-06-11 08:41:16 UTC (rev 105953)
+++ projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/ActivationCodeGen.java	2010-06-11 09:14:18 UTC (rev 105954)
@@ -74,7 +74,25 @@
       writeEol(out);
       writeEol(out);
 
-      writeDefaultConstructor(def, out, indent);
+      writeIndent(out, indent);
+      out.write("/**");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" * default constructor");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" * @exception ResourceException Thrown if an error occurs");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" */");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write("public " + getClassName(def) + "() throws ResourceException");
+      writeLeftCurlyBracket(out, indent);
+      writeIndent(out, indent + 1);
+      out.write("this(null, null, null);");
+      writeRightCurlyBracket(out, indent);
+      writeEol(out);
       
       //constructor
       writeIndent(out, indent);
@@ -93,6 +111,9 @@
       out.write(" * @param spec " + def.getAsClass());
       writeEol(out);
       writeIndent(out, indent);
+      out.write(" * @exception ResourceException Thrown if an error occurs");
+      writeEol(out);
+      writeIndent(out, indent);
       out.write(" */");
       writeEol(out);
       
@@ -106,13 +127,13 @@
       out.write(def.getAsClass() + " spec) throws ResourceException");
       writeEol(out);
       writeLeftCurlyBracket(out, indent);
-      writeIndent(out, indent + 2);
+      writeIndent(out, indent + 1);
       out.write("this.ra = ra;");
       writeEol(out);
-      writeIndent(out, indent + 2);
+      writeIndent(out, indent + 1);
       out.write("this.endpointFactory = endpointFactory;");
       writeEol(out);
-      writeIndent(out, indent + 2);
+      writeIndent(out, indent + 1);
       out.write("this.spec = spec;");
       writeRightCurlyBracket(out, indent);
       writeEol(out);
@@ -120,6 +141,7 @@
 
       writeGetAs(def, out, indent);
       writeMef(def, out, indent);
+      writeStartStop(def, out, indent);
       
       writeRightCurlyBracket(out, 0);
    }
@@ -222,4 +244,47 @@
       writeRightCurlyBracket(out, indent);
       writeEol(out);
    }
+   
+   /**
+    * Output start and stop  method
+    * @param def definition
+    * @param out Writer
+    * @param indent space number
+    * @throws IOException ioException
+    */
+   private void writeStartStop(Definition def, Writer out, int indent) throws IOException
+   {
+      writeIndent(out, indent);
+      out.write("/**");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" * Start the activation");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" * @throws ResourceException Thrown if an error occurs");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" */");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write("public void start() throws ResourceException");
+      writeLeftCurlyBracket(out, indent);
+      writeRightCurlyBracket(out, indent);
+      writeEol(out);
+      
+      writeIndent(out, indent);
+      out.write("/**");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" * Stop the activation");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" */");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write("public void stop()");
+      writeLeftCurlyBracket(out, indent);
+      writeRightCurlyBracket(out, indent);
+      writeEol(out);
+   }
 }

Modified: projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/RaCodeGen.java
===================================================================
--- projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/RaCodeGen.java	2010-06-11 08:41:16 UTC (rev 105953)
+++ projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/RaCodeGen.java	2010-06-11 09:14:18 UTC (rev 105954)
@@ -70,12 +70,44 @@
          out.write("/** The activations by activation spec */");
          writeEol(out);
          writeIndent(out, indent);
-         out.write("private HashMap activations = new HashMap();");
+         if (def.getVersion().equals("1.6"))
+         {
+            out.write("ConcurrentHash");
+         }
+         out.write("Map<" + def.getAsClass() + ", " + def.getActivationClass() + "> activations;");
          writeEol(out);
          writeEol(out);
       }
       
-      writeDefaultConstructor(def, out, indent);
+      writeIndent(out, indent);
+      out.write("/**");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" * default constructor");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" */");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write("public " + getClassName(def) + "()");
+      writeLeftCurlyBracket(out, indent);
+      if (def.isSupportInbound())
+      {
+         writeIndent(out, indent + 1);
+         if (def.getVersion().equals("1.6"))
+         {
+            out.write("this.activations = new ConcurrentHashMap<" + 
+               def.getAsClass() + ", " + def.getActivationClass() + ">();");
+         }
+         else
+         {
+            out.write("this.activations = Collections.synchronizedMap(new HashMap<" + 
+               def.getAsClass() + ", " + def.getActivationClass() + ">());");
+         }
+         writeEol(out);
+      }
+      writeRightCurlyBracket(out, indent);
+      writeEol(out);
       
       writeConfigProps(def, out, indent);
       writeEndpointLifecycle(def, out, indent);
@@ -106,9 +138,22 @@
          out.write("import " + def.getRaPackage() + ".inflow." + def.getAsClass() + ";");
          writeEol(out);
          writeEol(out);
-         out.write("import java.util.HashMap;");
-         writeEol(out);
-         writeEol(out);
+         if (def.getVersion().equals("1.5"))
+         {
+            out.write("import java.util.Collections;");
+            writeEol(out);
+            out.write("import java.util.HashMap;");
+            writeEol(out);
+            out.write("import java.util.Map;");
+            writeEol(out);
+            writeEol(out);
+         }
+         else if (def.getVersion().equals("1.6"))
+         {
+            out.write("import java.util.concurrent.ConcurrentHashMap;");
+            writeEol(out);
+            writeEol(out);
+         }
       }
       out.write("import javax.resource.ResourceException;");
       writeEol(out);
@@ -290,9 +335,12 @@
             "(this, endpointFactory, (" + def.getAsClass() + ")spec);");
          writeEol(out);
          writeIndent(out, indent + 1);
-         out.write("activations.put(spec, activation);");
+         out.write("activations.put((" + def.getAsClass() + ")spec, activation);");
          writeEol(out);
+         writeIndent(out, indent + 1);
+         out.write("activation.start();");
          writeEol(out);
+         writeEol(out);
       }
       
       writeIndent(out, indent + 1);
@@ -329,9 +377,16 @@
       if (def.isSupportInbound())
       {
          writeIndent(out, indent + 1);
-         out.write("activations.remove(spec);");
+         out.write(def.getActivationClass() + " activation = (" + def.getActivationClass() + 
+            ")activations.remove(spec);");
          writeEol(out);
+         writeIndent(out, indent + 1);
+         out.write("if (activation != null)");
          writeEol(out);
+         writeIndent(out, indent + 2);
+         out.write("activation.stop();");
+         writeEol(out);
+         writeEol(out);
       }
       writeIndent(out, indent + 1);
       out.write("log.debug(\"call endpointDeactivation\");");



More information about the jboss-cvs-commits mailing list