From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../src/examples/stateful/CartBean.java | 39 ++++++++++++++++++ .../src/examples/stateful/META-INF/application.xml | 11 +++++ .../Micah Examples/src/examples/stateful/build.xml | 25 ++++++++++++ .../src/examples/stateful/client/CartClient.java | 47 ++++++++++++++++++++++ .../src/examples/stateful/interfaces/Cart.java | 11 +++++ 5 files changed, 133 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/CartBean.java create mode 100644 Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/META-INF/application.xml create mode 100644 Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/build.xml create mode 100644 Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/client/CartClient.java create mode 100644 Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful/interfaces/Cart.java (limited to 'Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/stateful') 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 @@ + + + StatefulExamples + + StatefulExamplesEjb.jar + + 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 @@ + + ]> + + + + + + + + + + + + &include; + + + + + + + + + + + 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; +} -- cgit v1.2.3