[jboss-svn-commits] JBL Code SVN: r37251 - in labs/jbosstm/trunk/ArjunaCore/quickstarts/txoj: src/main/java/org/jboss/narayana/quickstarts/txoj and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jul 7 06:36:00 EDT 2011


Author: tomjenkinson
Date: 2011-07-07 06:35:59 -0400 (Thu, 07 Jul 2011)
New Revision: 37251

Modified:
   labs/jbosstm/trunk/ArjunaCore/quickstarts/txoj/readme.txt
   labs/jbosstm/trunk/ArjunaCore/quickstarts/txoj/src/main/java/org/jboss/narayana/quickstarts/txoj/AtomicObject.java
Log:
Updated to remove nested transactions

Modified: labs/jbosstm/trunk/ArjunaCore/quickstarts/txoj/readme.txt
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/quickstarts/txoj/readme.txt	2011-07-07 10:19:52 UTC (rev 37250)
+++ labs/jbosstm/trunk/ArjunaCore/quickstarts/txoj/readme.txt	2011-07-07 10:35:59 UTC (rev 37251)
@@ -14,9 +14,11 @@
 
 OVERVIEW
 --------
-This shows an example of how to introduce TXOJ to your project
+This shows an example of how to introduce TXOJ to your project.
 
+TXOJ are described in the ArjunaCore developers guide.
 
+
 USAGE
 -----
 mvn compile exec:exec

Modified: labs/jbosstm/trunk/ArjunaCore/quickstarts/txoj/src/main/java/org/jboss/narayana/quickstarts/txoj/AtomicObject.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/quickstarts/txoj/src/main/java/org/jboss/narayana/quickstarts/txoj/AtomicObject.java	2011-07-07 10:19:52 UTC (rev 37250)
+++ labs/jbosstm/trunk/ArjunaCore/quickstarts/txoj/src/main/java/org/jboss/narayana/quickstarts/txoj/AtomicObject.java	2011-07-07 10:35:59 UTC (rev 37251)
@@ -3,7 +3,6 @@
 import java.io.IOException;
 
 import com.arjuna.ats.arjuna.AtomicAction;
-import com.arjuna.ats.arjuna.coordinator.ActionStatus;
 import com.arjuna.ats.arjuna.state.InputObjectState;
 import com.arjuna.ats.arjuna.state.OutputObjectState;
 import com.arjuna.ats.txoj.Lock;
@@ -15,83 +14,44 @@
 
 	private int state;
 
-	public AtomicObject() {
+	public AtomicObject() throws Exception {
 		super();
 
 		state = 0;
 
-		AtomicAction A = new AtomicAction();
-
-		A.begin();
-
 		if (setlock(new Lock(LockMode.WRITE), 0) == LockResult.GRANTED) {
-			if (A.commit() == ActionStatus.COMMITTED)
-				System.out.println("Created persistent object " + get_uid());
-			else
-				System.out.println("Action.commit error.");
+			System.out.println("Created persistent object " + get_uid());
 		} else {
-			A.abort();
-
-			System.out.println("setlock error.");
+			throw new Exception("setlock error.");
 		}
 	}
 
 	public void incr(int value) throws Exception {
-		AtomicAction A = new AtomicAction();
 
-		A.begin();
-
 		if (setlock(new Lock(LockMode.WRITE), 0) == LockResult.GRANTED) {
 			state += value;
 
-			if (A.commit() != ActionStatus.COMMITTED)
-				throw new Exception("Action commit error.");
-			else
-				return;
+			return;
+		} else {
+			throw new Exception("Write lock error.");
 		}
-
-		A.abort();
-
-		throw new Exception("Write lock error.");
 	}
 
 	public void set(int value) throws Exception {
-		AtomicAction A = new AtomicAction();
-
-		A.begin();
-
 		if (setlock(new Lock(LockMode.WRITE), 0) == LockResult.GRANTED) {
 			state = value;
-
-			if (A.commit() != ActionStatus.COMMITTED)
-				throw new Exception("Action commit error.");
-			else
-				return;
+			return;
+		} else {
+			throw new Exception("Write lock error.");
 		}
-
-		A.abort();
-
-		throw new Exception("Write lock error.");
 	}
 
 	public int get() throws Exception {
-		AtomicAction A = new AtomicAction();
-		int value = -1;
-
-		A.begin();
-
 		if (setlock(new Lock(LockMode.READ), 0) == LockResult.GRANTED) {
-			value = state;
-
-			if (A.commit() == ActionStatus.COMMITTED)
-				return value;
-			else
-				throw new Exception("Action commit error.");
+			return state;
+		} else {
+			throw new Exception("Read lock error.");
 		}
-
-		A.abort();
-
-		throw new Exception("Read lock error.");
 	}
 
 	public boolean save_state(OutputObjectState os, int ot) {
@@ -129,43 +89,53 @@
 	}
 
 	public static void main(String[] args) throws Exception {
-		AtomicObject obj = new AtomicObject();
 		AtomicAction a = new AtomicAction();
-
 		a.begin();
 
+		AtomicObject obj = new AtomicObject();
 		obj.set(1234);
-
 		a.commit();
 
-		if (obj.get() != 1234) {
-			throw new RuntimeException("The object was not set to 1234");
+		a = new AtomicAction();
+		a.begin();
+		try {
+			if (obj.get() != 1234) {
+				throw new RuntimeException("The object was not set to 1234");
+			}
+		} finally {
+			a.commit();
 		}
 
 		a = new AtomicAction();
-
 		a.begin();
-
 		obj.incr(1);
-
 		a.abort();
 
-		if (obj.get() != 1234) {
-			throw new RuntimeException(
-					"The object was not set to 1234 after abort");
+		a = new AtomicAction();
+		a.begin();
+		try {
+			if (obj.get() != 1234) {
+				throw new RuntimeException(
+						"The object was not set to 1234 after abort");
+			}
+		} finally {
+			a.commit();
 		}
 
 		a = new AtomicAction();
-
 		a.begin();
-
 		obj.incr(11111);
-
 		a.commit();
 
-		if (obj.get() != 12345) {
-			throw new RuntimeException(
-					"The object was not set to 12345 after commit");
+		a = new AtomicAction();
+		a.begin();
+		try {
+			if (obj.get() != 12345) {
+				throw new RuntimeException(
+						"The object was not set to 12345 after commit");
+			}
+		} finally {
+			a.commit();
 		}
 
 		System.out.println("Atomic object operated as expected");



More information about the jboss-svn-commits mailing list