[jboss-svn-commits] JBL Code SVN: r37221 - in labs/jbosstm/trunk/ArjunaJTA/quickstarts/integration/src: test/java and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jul 4 08:21:58 EDT 2011
Author: tomjenkinson
Date: 2011-07-04 08:21:57 -0400 (Mon, 04 Jul 2011)
New Revision: 37221
Modified:
labs/jbosstm/trunk/ArjunaJTA/quickstarts/integration/src/main/java/org/jboss/narayana/quickstarts/servlet/SimpleServlet.java
labs/jbosstm/trunk/ArjunaJTA/quickstarts/integration/src/test/java/TestBusinessLogic.java
Log:
JBTM-854 updated to add a TXOJ into the mix
Modified: labs/jbosstm/trunk/ArjunaJTA/quickstarts/integration/src/main/java/org/jboss/narayana/quickstarts/servlet/SimpleServlet.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/quickstarts/integration/src/main/java/org/jboss/narayana/quickstarts/servlet/SimpleServlet.java 2011-07-04 11:04:22 UTC (rev 37220)
+++ labs/jbosstm/trunk/ArjunaJTA/quickstarts/integration/src/main/java/org/jboss/narayana/quickstarts/servlet/SimpleServlet.java 2011-07-04 12:21:57 UTC (rev 37221)
@@ -33,6 +33,7 @@
import javax.transaction.UserTransaction;
import org.jboss.narayana.quickstarts.ejb.SimpleEJB;
+import org.jboss.narayana.quickstarts.txoj.AtomicObject;
@WebServlet(displayName = "hello", urlPatterns = "/hello")
public class SimpleServlet extends HttpServlet {
@@ -40,6 +41,8 @@
@EJB(lookup = "java:module/SimpleEJBImpl")
private SimpleEJB simpleEJB;
+ private AtomicObject atomicObject = new AtomicObject();
+
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
@@ -101,6 +104,7 @@
.lookup("java:comp/UserTransaction");
tx.begin();
simpleEJB.createCustomer(name);
+ atomicObject.incr(1);
toWrite.append("<p>Created: " + name + "</p>");
tx.commit();
} catch (Throwable e) {
@@ -108,4 +112,21 @@
}
return toWrite.toString();
}
+
+ public String getCustomerCount() {
+ StringBuffer toWrite = new StringBuffer();
+ toWrite.append("<h1>Customer count</h1>\n");
+
+ try {
+ UserTransaction tx = (UserTransaction) new InitialContext()
+ .lookup("java:comp/UserTransaction");
+ tx.begin();
+ toWrite.append("<p>Customers created this run: " + atomicObject.get()
+ + "</p>");
+ tx.commit();
+ } catch (Throwable e) {
+ throw new RuntimeException(e);
+ }
+ return toWrite.toString();
+ }
}
Modified: labs/jbosstm/trunk/ArjunaJTA/quickstarts/integration/src/test/java/TestBusinessLogic.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/quickstarts/integration/src/test/java/TestBusinessLogic.java 2011-07-04 11:04:22 UTC (rev 37220)
+++ labs/jbosstm/trunk/ArjunaJTA/quickstarts/integration/src/test/java/TestBusinessLogic.java 2011-07-04 12:21:57 UTC (rev 37221)
@@ -21,14 +21,10 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import java.lang.reflect.Field;
+
import javax.ejb.EJB;
import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import javax.transaction.HeuristicMixedException;
-import javax.transaction.HeuristicRollbackException;
-import javax.transaction.NotSupportedException;
-import javax.transaction.RollbackException;
-import javax.transaction.SystemException;
import javax.transaction.UserTransaction;
import org.jboss.arquillian.container.test.api.Deployment;
@@ -36,6 +32,7 @@
import org.jboss.narayana.quickstarts.ejb.Customer;
import org.jboss.narayana.quickstarts.ejb.SimpleEJB;
import org.jboss.narayana.quickstarts.ejb.SimpleEJBImpl;
+import org.jboss.narayana.quickstarts.servlet.SimpleServlet;
import org.jboss.narayana.quickstarts.txoj.AtomicObject;
import org.jboss.shrinkwrap.api.ArchivePaths;
import org.jboss.shrinkwrap.api.ShrinkWrap;
@@ -59,6 +56,7 @@
.addClasses(SimpleEJB.class, SimpleEJBImpl.class,
Customer.class)
.addClasses(AtomicObject.class)
+ .addClasses(SimpleServlet.class)
.addAsResource("META-INF/persistence.xml",
"META-INF/persistence.xml")
.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
@@ -74,26 +72,25 @@
}
@Test
- public void checkThatDoubleCallIncreasesListSize() throws NamingException,
- NotSupportedException, SystemException, SecurityException,
- IllegalStateException, RollbackException, HeuristicMixedException,
- HeuristicRollbackException {
- UserTransaction tx = (UserTransaction) new InitialContext()
- .lookup("java:comp/UserTransaction");
- tx.begin();
- simpleEJB.createCustomer("tom");
- tx.commit();
+ public void checkThatDoubleCallIncreasesListSize()
+ throws SecurityException, NoSuchFieldException,
+ IllegalArgumentException, IllegalAccessException {
- String firstList = simpleEJB.listIds();
+ // Declare the servlet outside the container
+ SimpleServlet servlet = new SimpleServlet();
+ Field field = servlet.getClass().getDeclaredField("simpleEJB");
+ field.setAccessible(true);
+ field.set(servlet, simpleEJB);
+ field.setAccessible(false);
- tx = (UserTransaction) new InitialContext()
- .lookup("java:comp/UserTransaction");
- tx.begin();
- simpleEJB.createCustomer("tom");
- tx.commit();
+ servlet.createCustomer("tom");
- String secondList = simpleEJB.listIds();
+ String firstList = servlet.listCustomers();
+ servlet.createCustomer("tom");
+
+ String secondList = servlet.listCustomers();
+
System.out.println(firstList);
System.out.println(secondList);
@@ -147,4 +144,36 @@
assertEquals(4, finalVal);
}
+ @Test
+ public void testServlet() throws Exception {
+ // Declare the servlet outside the container
+ SimpleServlet servlet = new SimpleServlet();
+ Field field = servlet.getClass().getDeclaredField("simpleEJB");
+ field.setAccessible(true);
+ field.set(servlet, simpleEJB);
+ field.setAccessible(false);
+
+ String toLookFor = "<p>Customers created this run: ";
+ String response = null;
+ int indexOf = -1;
+ String customersCreated = null;
+
+ // Get the initial number of customers
+ response = servlet.getCustomerCount();
+ indexOf = response.indexOf(toLookFor);
+ customersCreated = response.substring(indexOf + toLookFor.length(),
+ response.indexOf("</p>", indexOf));
+ int initialSize = Integer.parseInt(customersCreated);
+
+ // Create a new customer
+ servlet.createCustomer("tom");
+
+ // Check that one extra customer was created
+ response = servlet.getCustomerCount();
+ indexOf = response.indexOf(toLookFor);
+ customersCreated = response.substring(indexOf + toLookFor.length(),
+ response.indexOf("</p>", indexOf));
+ int newSize = Integer.parseInt(customersCreated);
+ assertTrue(newSize == initialSize + 1);
+ }
}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list