summaryrefslogtreecommitdiffstats
path: root/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful
diff options
context:
space:
mode:
Diffstat (limited to 'Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful')
-rw-r--r--Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/CartBean.java39
-rw-r--r--Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/META-INF/application.xml11
-rw-r--r--Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/build.xml25
-rw-r--r--Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/client/CartClient.java47
-rw-r--r--Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/interfaces/Cart.java11
5 files changed, 133 insertions, 0 deletions
diff --git a/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/CartBean.java b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/CartBean.java
new file mode 100644
index 0000000..48688c0
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/CartBean.java
@@ -0,0 +1,39 @@
+package examples.stateful;
+
+import javax.annotation.Resource;
+import javax.ejb.Remove;
+import javax.ejb.SessionContext;
+import javax.ejb.Stateful;
+
+import examples.stateful.interfaces.Cart;
+
+@Stateful
+public class CartBean implements Cart {
+ @Resource SessionContext context;
+ private int numItems;
+
+ public void addItem() {
+ numItems++;
+ }
+
+ public int getItems() {
+ return numItems;
+ }
+
+ @Remove(retainIfException=false)
+ public void remove1() throws Exception {
+ doRemove();
+ }
+
+ @Remove(retainIfException=true)
+ public void remove2() throws Exception {
+ doRemove();
+ }
+
+ private void doRemove() throws Exception {
+ if (numItems > 1 && numItems < 4) {
+ throw new Exception("blah");
+ }
+ System.out.println("Removing cart with: "+numItems+" items.");
+ }
+}
diff --git a/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/META-INF/application.xml b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/META-INF/application.xml
new file mode 100644
index 0000000..eb9ae84
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/META-INF/application.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<application version="1.4"
+ xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+ http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
+ <display-name>StatefulExamples</display-name>
+ <module>
+ <ejb>StatefulExamplesEjb.jar</ejb>
+ </module>
+</application>
diff --git a/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/build.xml b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/build.xml
new file mode 100644
index 0000000..51b1f71
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/build.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!DOCTYPE project [ <!ENTITY include SYSTEM "../../../etc/common.xml"> ]>
+
+<project name="ejb3-examples-stateful" default="main" basedir="../../..">
+ <!-- basic settings -->
+ <property name="app.pkg" value="examples/stateful"/>
+ <property name="app.name" value="StatefulExamples"/>
+ <property name="create.client" value="true"/>
+ <property name="create.ejb" value="true"/>
+ <property name="create.ear" value="true"/>
+ <property name="deploy" value="true"/>
+
+ <!-- Include common.xml -->
+ &include;
+
+ <target name="main" depends="compile.common,package.common,deploy.common"/>
+
+ <target name="run">
+ <antcall target="execClient">
+ <param name="client.class" value="examples.stateful.client.CartClient"/>
+ </antcall>
+ </target>
+</project>
+
+
diff --git a/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/client/CartClient.java b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/client/CartClient.java
new file mode 100644
index 0000000..abc2da2
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/client/CartClient.java
@@ -0,0 +1,47 @@
+package examples.stateful.client;
+
+import javax.ejb.NoSuchEJBException;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+import examples.stateful.interfaces.Cart;
+
+public class CartClient {
+ public static void main(String[] args) {
+ try {
+ InitialContext ic = new InitialContext();
+ System.out.println("Adding items to cart, then removing...");
+ for (int i=0;i<2;i++) {
+ Cart cart = (Cart)ic.lookup(Cart.class.getName());
+ cart.addItem();
+ cart.addItem();
+ System.out.println("Number of items in the cart: "+cart.getItems());
+ try {
+ try {
+ if (i==0) {
+ cart.remove1();
+ }
+ else {
+ cart.remove2();
+ }
+ }
+ catch (Exception e) {
+ ;
+ }
+
+ cart.addItem();
+ cart.addItem();
+ cart.addItem();
+
+ System.out.println("Number of items in the cart: "+cart.getItems());
+ }
+ catch (NoSuchEJBException nsee) {
+ System.out.println("Cart was already removed during iteration "+i);
+ }
+ }
+ }
+ catch (NamingException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/interfaces/Cart.java b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/interfaces/Cart.java
new file mode 100644
index 0000000..a55ebbe
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/interfaces/Cart.java
@@ -0,0 +1,11 @@
+package examples.stateful.interfaces;
+
+import javax.ejb.Remote;
+
+@Remote
+public interface Cart {
+ public void addItem();
+ public int getItems();
+ public void remove1() throws Exception;
+ public void remove2() throws Exception;
+}