[jboss-cvs] JBossAS SVN: r111216 - projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Apr 20 03:43:04 EDT 2011


Author: jeff.zhang
Date: 2011-04-20 03:43:04 -0400 (Wed, 20 Apr 2011)
New Revision: 111216

Modified:
   projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/ConnImplCodeGen.java
   projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/ConnInterfaceCodeGen.java
   projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/McCodeGen.java
   projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/TestCodeGen.java
Log:
[JBJCA-540] Add ConnectionEvent usage

Modified: projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/ConnImplCodeGen.java
===================================================================
--- projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/ConnImplCodeGen.java	2011-04-20 06:50:18 UTC (rev 111215)
+++ projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/ConnImplCodeGen.java	2011-04-20 07:43:04 UTC (rev 111216)
@@ -59,6 +59,14 @@
       writeEol(out);
       
       writeIndent(out, indent);
+      out.write("/** ManagedConnection */");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write("private " + def.getMcClass() + " mc;");
+      writeEol(out);
+      writeEol(out);
+      
+      writeIndent(out, indent);
       out.write("/** ManagedConnectionFactory */");
       writeEol(out);
       writeIndent(out, indent);
@@ -74,6 +82,9 @@
       out.write(" * Default constructor");
       writeEol(out);
       writeIndent(out, indent);
+      out.write(" * @param mc " + def.getMcClass());
+      writeEol(out);
+      writeIndent(out, indent);
       out.write(" * @param mcf " + def.getMcfClass());
       writeEol(out);
       writeIndent(out, indent);
@@ -81,9 +92,13 @@
       writeEol(out);
       
       writeIndent(out, indent);
-      out.write("public " + getClassName(def) + "(" + def.getMcfClass() + " mcf)");
+      out.write("public " + getClassName(def) + "(" + 
+         def.getMcClass() + " mc, " + def.getMcfClass() + " mcf)");
       writeLeftCurlyBracket(out, indent);
       writeIndent(out, indent + 1);
+      out.write("this.mc = mc;");
+      writeEol(out);
+      writeIndent(out, indent + 1);
       out.write("this.mcf = mcf;");
       writeRightCurlyBracket(out, indent);
       writeEol(out);
@@ -224,8 +239,24 @@
          writeLeftCurlyBracket(out, indent);
          writeIndent(out, indent + 1);
          out.write("log.finest(\"callMe()\");");
-
          writeRightCurlyBracket(out, indent);
       }
+
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write("/**");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" * Close");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" */");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write("public void close()");
+      writeLeftCurlyBracket(out, indent);
+      writeIndent(out, indent + 1);
+      out.write("mc.closeHandle(this);");
+      writeRightCurlyBracket(out, indent);
    }
 }

Modified: projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/ConnInterfaceCodeGen.java
===================================================================
--- projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/ConnInterfaceCodeGen.java	2011-04-20 06:50:18 UTC (rev 111215)
+++ projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/ConnInterfaceCodeGen.java	2011-04-20 07:43:04 UTC (rev 111216)
@@ -132,6 +132,19 @@
          out.write("public void callMe();");
       }
 
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write("/**");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" * Close");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" */");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write("public void close();");
+      
       writeRightCurlyBracket(out, 0);
    }
    

Modified: projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/McCodeGen.java
===================================================================
--- projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/McCodeGen.java	2011-04-20 06:50:18 UTC (rev 111215)
+++ projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/McCodeGen.java	2011-04-20 07:43:04 UTC (rev 111216)
@@ -74,6 +74,14 @@
       writeEol(out);
       
       writeIndent(out, indent);
+      out.write("/** Listeners */");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write("private List<ConnectionEventListener> listeners;");
+      writeEol(out);
+      writeEol(out);
+      
+      writeIndent(out, indent);
       out.write("/** Connection */");
       writeEol(out);
       writeIndent(out, indent);
@@ -102,6 +110,12 @@
       out.write("this.mcf = mcf;");
       writeEol(out);
       writeIndent(out, indent + 1);
+      out.write("this.logwriter = null;");
+      writeEol(out);
+      writeIndent(out, indent + 1);
+      out.write("this.listeners = new ArrayList<ConnectionEventListener>(1);");
+      writeEol(out);
+      writeIndent(out, indent + 1);
       out.write("this.connection = null;");
       writeRightCurlyBracket(out, indent);
       writeEol(out);
@@ -131,11 +145,17 @@
       out.write("import java.io.PrintWriter;");
       writeEol(out);
       writeEol(out);
+      out.write("import java.util.ArrayList;");
+      writeEol(out);
+      out.write("import java.util.List;");
+      writeEol(out);
       out.write("import java.util.logging.Logger;");
       writeEol(out);
       writeEol(out);
       out.write("import javax.resource.ResourceException;");
       writeEol(out);
+      out.write("import javax.resource.spi.ConnectionEvent;");
+      writeEol(out);
       out.write("import javax.resource.spi.ConnectionEventListener;");
       writeEol(out);
       out.write("import javax.resource.spi.ConnectionRequestInfo;");
@@ -212,7 +232,7 @@
       out.write("log.finest(\"getConnection()\");");
       writeEol(out);
       writeIndent(out, indent + 1);
-      out.write("connection = new " + def.getConnImplClass() + "(mcf);");
+      out.write("connection = new " + def.getConnImplClass() + "(this, mcf);");
       writeEol(out);
       writeIndent(out, indent + 1);
       out.write("return connection;");
@@ -339,6 +359,15 @@
       writeLeftCurlyBracket(out, indent);
       writeIndent(out, indent + 1);
       out.write("log.finest(\"addConnectionEventListener()\");");
+      writeEol(out);
+      writeIndent(out, indent + 1);
+      out.write("if (listener == null)");
+      writeEol(out);
+      writeIndent(out, indent + 2);
+      out.write("throw new IllegalArgumentException(\"Listener is null\");");
+      writeEol(out);
+      writeIndent(out, indent + 1);
+      out.write("listeners.add(listener);");
       writeRightCurlyBracket(out, indent);
       writeEol(out);
       
@@ -363,6 +392,48 @@
       writeLeftCurlyBracket(out, indent);
       writeIndent(out, indent + 1);
       out.write("log.finest(\"removeConnectionEventListener()\");");
+      writeEol(out);
+      writeIndent(out, indent + 1);
+      out.write("if (listener == null)");
+      writeEol(out);
+      writeIndent(out, indent + 2);
+      out.write("throw new IllegalArgumentException(\"Listener is null\");");
+      writeEol(out);
+      writeIndent(out, indent + 1);
+      out.write("listeners.remove(listener);");
+      writeRightCurlyBracket(out, indent);
+      writeEol(out);
+      
+      writeIndent(out, indent);
+      out.write("/**");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" * Close handle");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" *");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" * @param handle The handle");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write(" */");
+      writeEol(out);
+      writeIndent(out, indent);
+      out.write("public void closeHandle(" + def.getConnInterfaceClass() + " handle)");
+      writeLeftCurlyBracket(out, indent);
+      writeIndent(out, indent + 1);
+      out.write("ConnectionEvent event = new ConnectionEvent(this, ConnectionEvent.CONNECTION_CLOSED);");
+      writeEol(out);
+      writeIndent(out, indent + 1);
+      out.write("event.setConnectionHandle(handle);");
+      writeEol(out);
+      writeIndent(out, indent + 1);
+      out.write("for (ConnectionEventListener cel : listeners)");
+      writeLeftCurlyBracket(out, indent + 1);
+      writeIndent(out, indent + 2);
+      out.write("cel.connectionClosed(event);");
+      writeRightCurlyBracket(out, indent + 1);
 
       writeRightCurlyBracket(out, indent);
       writeEol(out);

Modified: projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/TestCodeGen.java
===================================================================
--- projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/TestCodeGen.java	2011-04-20 06:50:18 UTC (rev 111215)
+++ projects/jboss-jca/trunk/codegenerator/src/main/java/org/jboss/jca/codegenerator/code/TestCodeGen.java	2011-04-20 07:43:04 UTC (rev 111216)
@@ -224,10 +224,7 @@
       out.write("@Resource(mappedName = \"java:/eis/" + getClassName(def) + "\")");
       writeEol(out);
       writeIndent(out, indent);
-      if (def.isDefineMethodInConnection())
-         out.write("private " + def.getCfInterfaceClass() + " connectionFactory;");
-      else
-         out.write("private Object connectionFactory;");
+      out.write("private " + def.getCfInterfaceClass() + " connectionFactory;");
       writeEol(out);
       writeEol(out);
    }
@@ -265,7 +262,15 @@
       
       writeIndent(out, indent + 1);
       out.write("assertNotNull(connectionFactory);");
-
+      writeEol(out);
+      writeIndent(out, indent + 1);
+      out.write(def.getConnInterfaceClass() + " connection = connectionFactory.getConnection();");
+      writeEol(out);
+      writeIndent(out, indent + 1);
+      out.write("assertNotNull(connection);");
+      writeEol(out);
+      writeIndent(out, indent + 1);
+      out.write("connection.close();");
       writeRightCurlyBracket(out, indent);
    }
    
@@ -342,7 +347,10 @@
                out.write(", ");
          }
          out.write(");");
-
+         writeEol(out);
+         writeIndent(out, indent + 1);
+         out.write("connection.close();");
+         
          writeRightCurlyBracket(out, indent);
          writeEol(out);
       }



More information about the jboss-cvs-commits mailing list