[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