[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