Revision: 20078
Author:   emmartins
Date:     Mon Sep  5 07:36:59 2011
Log:      Updates JDBC example to the new JDBC RA Type
http://code.google.com/p/mobicents/source/detail?r=20078

Modified:
 /trunk/servers/jain-slee/examples/jdbc-demo/pom.xml
/trunk/servers/jain-slee/examples/jdbc-demo/sbb/src/main/java/org/mobicents/slee/example/jdbc/JdbcExampleSbb.java /trunk/servers/jain-slee/examples/jdbc-demo/sbb/src/main/resources/META-INF/sbb-jar.xml

=======================================
--- /trunk/servers/jain-slee/examples/jdbc-demo/pom.xml Thu Apr 28 02:54:47 2011 +++ /trunk/servers/jain-slee/examples/jdbc-demo/pom.xml Mon Sep 5 07:36:59 2011
@@ -7,7 +7,7 @@
        <parent>
                <groupId>org.mobicents</groupId>
                <artifactId>mobicents-parent</artifactId>
-               <version>2.19-SNAPSHOT</version>
+               <version>2.18</version>
        </parent>

        <artifactId>mobicents-slee-example-jdbc-demo</artifactId>
=======================================
--- /trunk/servers/jain-slee/examples/jdbc-demo/sbb/src/main/java/org/mobicents/slee/example/jdbc/JdbcExampleSbb.java Fri Jun 17 16:43:50 2011 +++ /trunk/servers/jain-slee/examples/jdbc-demo/sbb/src/main/java/org/mobicents/slee/example/jdbc/JdbcExampleSbb.java Mon Sep 5 07:36:59 2011
@@ -1,6 +1,8 @@
 package org.mobicents.slee.example.jdbc;

+import java.sql.Connection;
 import java.sql.PreparedStatement;
+import java.sql.ResultSet;
 import java.sql.Statement;

 import javax.slee.ActivityContextInterface;
@@ -10,16 +12,16 @@
 import javax.slee.SbbContext;
 import javax.slee.facilities.Tracer;
 import javax.slee.serviceactivity.ServiceStartedEvent;
+import javax.slee.transaction.SleeTransaction;

 import org.mobicents.slee.SbbContextExt;
 import org.mobicents.slee.resource.jdbc.JdbcActivity;
import org.mobicents.slee.resource.jdbc.JdbcActivityContextInterfaceFactory;
 import org.mobicents.slee.resource.jdbc.JdbcResourceAdaptorSbbInterface;
-import org.mobicents.slee.resource.jdbc.event.PreparedStatementResultSetEvent; -import org.mobicents.slee.resource.jdbc.event.PreparedStatementUpdateCountEvent;
-import org.mobicents.slee.resource.jdbc.event.StatementResultSetEvent;
-import org.mobicents.slee.resource.jdbc.event.StatementSQLExceptionEvent;
-import org.mobicents.slee.resource.jdbc.event.StatementUpdateCountEvent;
+import org.mobicents.slee.resource.jdbc.event.JdbcTaskExecutionExceptionEvent;
+import org.mobicents.slee.resource.jdbc.task.JdbcTaskContext;
+import org.mobicents.slee.resource.jdbc.task.simple.SimpleJdbcTask;
+import org.mobicents.slee.resource.jdbc.task.simple.SimpleJdbcTaskResultEvent;

 /**
  * A SBB that examples usage of the JDBC RA.
@@ -57,104 +59,75 @@
         */
        public void onServiceStartedEvent(ServiceStartedEvent event,
                        ActivityContextInterface aci) {
+
                tracer.info("JDBC Example started.");
+
                JdbcActivity jdbcActivity = jdbcRA.createActivity();
                tracer.info("Created JDBC RA activity, using RA's SBB 
Interface.");
+
                ActivityContextInterface jdbcACI = jdbcACIF
                                .getActivityContextInterface(jdbcActivity);
                jdbcACI.attach(contextExt.getSbbLocalObject());
tracer.info("Retrieved the ACI related to the JDBC RA activity, and attached the sbb entity.");
-               try {
-                       Statement statement = 
jdbcRA.getConnection().createStatement();
-                       tracer.info("Created statement, executing query...");
-                       jdbcActivity.executeQuery(statement,
-                                       "CREATE TABLE TestTable (Name 
VARCHAR(30));");
-               } catch (Throwable e) {
-                       tracer.severe("failed to create statement", e);
-               }
-       }
-
-       /**
-        * Event handler for {@link StatementResultSetEvent}.
-        *
-        * @param event
-        * @param aci
-        */
-       public void onStatementResultSetEvent(StatementResultSetEvent event,
-                       ActivityContextInterface aci) {
- tracer.info("Received a StatementResultSetEvent, as result of executed SQL "
-                               + event.getSQL());
-               tracer.info("Result: " + event.getResultSet());
-               try {
-                       PreparedStatement preparedStatement = 
jdbcRA.getConnection()
-                                       .prepareStatement("INSERT INTO TestTable 
VALUES(?)");
-                       preparedStatement.setString(1, "Mobicents");
-                       tracer.info("Created prepared statement, executing...");
-                       ((JdbcActivity) 
aci.getActivity()).executeUpdate(preparedStatement);
-               } catch (Throwable e) {
-                       tracer.severe("failed to create statement", e);
-               }
+
+               SimpleJdbcTask task = new SimpleJdbcTask() {
+                       @Override
+                       public Object executeSimple(JdbcTaskContext context) {
+                               SleeTransaction tx = null;
+                               try {
+                                       tx = context.getSleeTransactionManager()
+                                                       .beginSleeTransaction();
+                                       Connection connection = 
context.getConnection();
+                                       Statement statement = 
connection.createStatement();
+                                       tracer.info("Created statement to create 
table, executing query...");
+                                       statement
+                                                       .execute("CREATE TABLE 
TestTable (Name VARCHAR(30));");
+                                       PreparedStatement preparedStatement = 
connection
+                                                       .prepareStatement("INSERT 
INTO TestTable VALUES(?)");
+                                       preparedStatement.setString(1, 
"Mobicents");
+ tracer.info("Created prepared statement for data insert, executing...");
+                                       preparedStatement.execute();
+                                       preparedStatement = connection
+                                                       .prepareStatement("SELECT ? 
From TestTable;");
+                                       preparedStatement.setString(1, "Name");
+ tracer.info("Created prepared statement for data query, executing...");
+                                       preparedStatement.execute();
+                                       ResultSet resultSet = 
preparedStatement.getResultSet();
+                                       resultSet.next();
+                                       tracer.info("Data query first result: "
+                                                       + 
resultSet.getString(1));
+                                       Statement anotherStatement = 
connection.createStatement();
+                                       tracer.info("Created statement to drop 
table, executing update...");
+                                       anotherStatement.executeUpdate("DROP TABLE 
TestTable;");
+                                       tx.commit();
+                                       tx = null;
+                                       return true;
+                               } catch (Exception e) {
+                                       tracer.severe("failed to create table", 
e);
+                                       if (tx != null) {
+                                               try {
+                                                       tx.rollback();
+                                               } catch (Exception f) {
+                                                       tracer.severe("failed to 
rollback tx", f);
+                                               }
+                                       }
+                                       return false;
+                               }
+                       }
+               };
+               jdbcActivity.execute(task);
        }

        /**
-        * Event handler for {@link StatementResultSetEvent}.
+        * Event handler for {@link SimpleJdbcTaskResultEvent}.
         *
         * @param event
         * @param aci
         */
- public void onPreparedStatementResultSetEvent(PreparedStatementResultSetEvent event,
+       public void onSimpleJdbcTaskResultEvent(SimpleJdbcTaskResultEvent event,
                        ActivityContextInterface aci) {
-               tracer.info("Received a PreparedStatementResultSetEvent");
-               try {
-                       event.getResultSet().next();
-                       tracer.info("Result: " + 
event.getResultSet().getString(1));
-               } catch (Exception e) {
-                       e.printStackTrace();
-               }
-               try {
-                       Statement anotherStatement = jdbcRA.getConnection()
-                                       .createStatement();
-                       tracer.info("Created statement, executing update...");
-                       ((JdbcActivity) 
aci.getActivity()).executeUpdate(anotherStatement,
-                                       "DROP TABLE TestTable;");
-               } catch (Throwable e) {
-                       tracer.severe("failed to create statement", e);
-               }
-       }
-
-       /**
-        * Event handler for {@link StatementUpdateCountEvent}.
-        *
-        * @param event
-        * @param aci
-        */
-       public void onPreparedStatementUpdateCountEvent(
-                       PreparedStatementUpdateCountEvent event,
-                       ActivityContextInterface aci) {
-               tracer.info("Received a PreparedStatementUpdateCountEvent.");
-               tracer.info("Update Count: " + event.getUpdateCount());
-               try {
-                       PreparedStatement preparedStatement = 
jdbcRA.getConnection()
-                       .prepareStatement("SELECT ? From TestTable;");
-                       preparedStatement.setString(1, "Name");
-                       ((JdbcActivity) 
aci.getActivity()).executeQuery(preparedStatement);
-               } catch (Throwable e) {
-                       tracer.severe("failed to create prepared statement", e);
-               }
-       }
-
-       /**
-        * Event handler for {@link StatementUpdateCountEvent}.
-        *
-        * @param event
-        * @param aci
-        */
-       public void onStatementUpdateCountEvent(StatementUpdateCountEvent event,
-                       ActivityContextInterface aci) {
- tracer.info("Received a StatementUpdateCountEvent, as result of executed SQL "
-                               + event.getSQL());
-               tracer.info("Update Count: " + event.getUpdateCount());
-               tracer.info("Ending JDBC Activity...");
+               tracer.info("Received a SimpleJdbcTaskResultEvent, task = "
+                               + event.getTask() + ", result object = " + 
event.getResult());
                ((JdbcActivity) aci.getActivity()).endActivity();
        }

@@ -164,11 +137,11 @@
         * @param event
         * @param aci
         */
-       public void onStatementSQLExceptionEvent(StatementSQLExceptionEvent 
event,
-                       ActivityContextInterface aci) {
+       public void onJdbcTaskExecutionExceptionEvent(
+                       JdbcTaskExecutionExceptionEvent event, 
ActivityContextInterface aci) {
                tracer.info(
-                               "Received a StatementSQLExceptionEvent, as result of 
executed SQL "
-                                               + event.getSQL(), 
event.getSQLException());
+ "Received a JdbcTaskExecutionExceptionEvent, as result of executed task "
+                                               + event.getTask(), 
event.getException());
                tracer.info("Ending JDBC Activity...");
                ((JdbcActivity) aci.getActivity()).endActivity();
        }
=======================================
--- /trunk/servers/jain-slee/examples/jdbc-demo/sbb/src/main/resources/META-INF/sbb-jar.xml Fri Jun 17 16:43:50 2011 +++ /trunk/servers/jain-slee/examples/jdbc-demo/sbb/src/main/resources/META-INF/sbb-jar.xml Mon Sep 5 07:36:59 2011
@@ -26,45 +26,18 @@
                </event>

                <event event-direction="Receive" initial-event="False">
-                       <event-name>StatementResultSetEvent</event-name>
+                       <event-name>SimpleJdbcTaskResultEvent</event-name>
                        <event-type-ref>
-                               
<event-type-name>StatementResultSetEvent</event-type-name>
+                               
<event-type-name>SimpleJdbcTaskResultEvent</event-type-name>
                                
<event-type-vendor>org.mobicents</event-type-vendor>
                                <event-type-version>1.0</event-type-version>
                        </event-type-ref>
                </event>
-
-       <event event-direction="Receive" initial-event="False">
-                       <event-name>PreparedStatementResultSetEvent</event-name>
-                       <event-type-ref>
-                               
<event-type-name>PreparedStatementResultSetEvent</event-type-name>
-                               
<event-type-vendor>org.mobicents</event-type-vendor>
-                               <event-type-version>1.0</event-type-version>
-                       </event-type-ref>
-               </event>

                <event event-direction="Receive" initial-event="False">
-                       
<event-name>PreparedStatementUpdateCountEvent</event-name>
+                       <event-name>JdbcTaskExecutionExceptionEvent</event-name>
                        <event-type-ref>
-                               
<event-type-name>PreparedStatementUpdateCountEvent</event-type-name>
-                               
<event-type-vendor>org.mobicents</event-type-vendor>
-                               <event-type-version>1.0</event-type-version>
-                       </event-type-ref>
-               </event>
-
-               <event event-direction="Receive" initial-event="False">
-                       <event-name>StatementUpdateCountEvent</event-name>
-                       <event-type-ref>
-                               
<event-type-name>StatementUpdateCountEvent</event-type-name>
-                               
<event-type-vendor>org.mobicents</event-type-vendor>
-                               <event-type-version>1.0</event-type-version>
-                       </event-type-ref>
-               </event>
-
-               <event event-direction="Receive" initial-event="False">
-                       <event-name>StatementSQLExceptionEvent</event-name>
-                       <event-type-ref>
-                               
<event-type-name>StatementSQLExceptionEvent</event-type-name>
+                               
<event-type-name>JdbcTaskExecutionExceptionEvent</event-type-name>
                                
<event-type-vendor>org.mobicents</event-type-vendor>
                                <event-type-version>1.0</event-type-version>
                        </event-type-ref>

Reply via email to