1 22 package org.jboss.ejb3.test.longlived; 23 24 import java.io.Serializable ; 25 import javax.persistence.PersistenceContext; 26 import javax.persistence.PersistenceContextType; 27 import javax.persistence.EntityManager; 28 import javax.annotation.PreDestroy; 29 import javax.ejb.Stateful ; 30 import javax.ejb.PrePassivate ; 31 import javax.ejb.PostActivate ; 32 33 import org.jboss.annotation.ejb.cache.simple.CacheConfig; 34 35 41 @Stateful 42 @CacheConfig(maxSize = 1000, idleTimeoutSeconds = 2) 43 public class ContainedBean implements Contained, Serializable 44 { 45 @PersistenceContext(type= PersistenceContextType.EXTENDED) EntityManager em; 46 47 Customer customer; 48 49 public Customer find(long id) 50 { 51 return em.find(Customer.class, id); 52 } 53 54 public void setCustomer(long id) 55 { 56 customer = find(id); 57 } 58 59 public Customer getCustomer() 60 { 61 return customer; 62 } 63 64 public void updateCustomer() 65 { 66 customer.setName("contained modified"); 67 } 68 69 public boolean isActivated() 70 { 71 return activated; 72 } 73 74 public static boolean destroyed = false; 75 public static boolean passivated = false; 76 public static boolean activate = false; 77 private boolean activated = false; 78 79 @PrePassivate 80 public void passivate() 81 { 82 passivated = true; 83 } 84 85 @PostActivate 86 public void activate() 87 { 88 System.out.println("*********** ACTIVATED *****************"); 89 if (activated) throw new RuntimeException ("ACTIVATED TWICE"); 90 activated = true; 91 if (activate) throw new RuntimeException ("ACTIVATED TWIC IN TWO DIFFERENT INSTANCES"); 92 activate = true; 93 94 } 95 96 @PreDestroy 97 public void destroy() 98 { 99 destroyed = true; 100 } 101 } 102 | Popular Tags |