[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