001: package org.objectweb.jonas.jtests.beans.cluster;
002:
003: import javax.ejb.CreateException;
004: import javax.ejb.DuplicateKeyException;
005: import javax.ejb.EntityBean;
006: import javax.ejb.EntityContext;
007: import javax.ejb.RemoveException;
008:
009: import org.objectweb.jonas.common.Log;
010: import org.objectweb.util.monolog.api.BasicLevel;
011: import org.objectweb.util.monolog.api.Logger;
012:
013: public class IdentityEC implements EntityBean {
014:
015: static private Logger logger = null;
016: EntityContext ejbContext;
017:
018: // ------------------------------------------------------------------
019: // State of the bean.
020: // They must be public for Container Managed Persistence.
021: // ------------------------------------------------------------------
022: public String name;
023: public int number;
024:
025: // ------------------------------------------------------------------
026: // EntityBean implementation
027: // ------------------------------------------------------------------
028:
029: /**
030: * Set the associated entity context. The container invokes this method
031: * on an instance after the instance has been created.
032: * This method is called in an unspecified transaction context.
033: *
034: * @param ctx - An EntityContext interface for the instance. The instance
035: * should store the reference to the context in an instance variable.
036: * @throws EJBException Thrown by the method to indicate a failure caused by a
037: * system-level error.
038: */
039: public void setEntityContext(EntityContext ctx) {
040: if (logger == null) {
041: logger = Log.getLogger(Log.JONAS_TESTS_PREFIX);
042: }
043: logger.log(BasicLevel.DEBUG, "");
044: ejbContext = ctx;
045: }
046:
047: /**
048: * Unset the associated entity context. The container calls this method
049: * before removing the instance.
050: * This is the last method that the container invokes on the instance.
051: * The Java garbage collector will eventually invoke the finalize() method
052: * on the instance.
053: * This method is called in an unspecified transaction context.
054: * @throws EJBException Thrown by the method to indicate a failure caused by a
055: * system-level error.
056: */
057: public void unsetEntityContext() {
058: logger.log(BasicLevel.DEBUG, "");
059: ejbContext = null;
060: }
061:
062: /**
063: * A container invokes this method before it removes the EJB object
064: * that is currently associated with the instance. This method is
065: * invoked when a client invokes a remove operation on the enterprise Bean's
066: * home interface or the EJB object's remote interface. This method
067: * transitions the instance from the ready state to the pool of available
068: * instances.
069: *
070: * This method is called in the transaction context of the remove operation.
071: * @throws RemoveException The enterprise Bean does not allow destruction of the object.
072: * @throws EJBException - Thrown by the method to indicate a failure caused by a system-level
073: * error.
074: */
075: public void ejbRemove() throws RemoveException {
076: logger.log(BasicLevel.DEBUG, "=" + number);
077: }
078:
079: /**
080: * A container invokes this method to instruct the instance to synchronize
081: * its state by loading it state from the underlying database.
082: * This method always executes in the proper transaction context.
083: *
084: * @throws EJBException Thrown by the method to indicate a failure caused by
085: * a system-level error.
086: */
087: public void ejbLoad() {
088: logger.log(BasicLevel.DEBUG, "=" + number);
089: }
090:
091: /**
092: * A container invokes this method to instruct the instance to synchronize
093: * its state by storing it to the underlying database.
094: * This method always executes in the proper transaction context.
095: *
096: * @throws EJBException Thrown by the method to indicate a failure caused by
097: * a system-level error.
098: */
099: public void ejbStore() {
100: logger.log(BasicLevel.DEBUG, "=" + number);
101: }
102:
103: /**
104: * The Entity bean can define 0 or more ejbCreate methods.
105: *
106: * @throws CreateException Failure to create an entity EJB object.
107: * @throws DuplicateKeyException An object with the same key already exists.
108: */
109: public String ejbCreate(String s, int i) throws CreateException,
110: DuplicateKeyException {
111:
112: // Init here the bean fields
113: name = s;
114: number = i;
115: logger.log(BasicLevel.DEBUG, "=" + number);
116:
117: // In CMP, should return null.
118: return null;
119: }
120:
121: /**
122: * There must be an ejbPostCreate par ejbCreate method
123: *
124: * @throws CreateException Failure to create an entity EJB object.
125: */
126: public void ejbPostCreate(String s, int i) throws CreateException {
127: logger.log(BasicLevel.DEBUG, "=" + number);
128: }
129:
130: /**
131: * A container invokes this method on an instance before the instance
132: * becomes disassociated with a specific EJB object.
133: */
134: public void ejbPassivate() {
135: logger.log(BasicLevel.DEBUG, "=" + number);
136: }
137:
138: /**
139: * A container invokes this method when the instance is taken out of
140: * the pool of available instances to become associated with a specific
141: * EJB object.
142: */
143: public void ejbActivate() {
144: logger.log(BasicLevel.DEBUG, "=" + number);
145: }
146:
147: // ------------------------------------------------------------------
148: // Identity implementation
149: // ------------------------------------------------------------------
150:
151: /**
152: * getName
153: */
154: public String getName() {
155: logger.log(BasicLevel.DEBUG, "=" + number);
156: return name;
157: }
158:
159: /**
160: * getNumber
161: */
162: public int getNumber() {
163: logger.log(BasicLevel.DEBUG, "=" + number);
164: return number;
165: }
166:
167: /**
168: * setNumber
169: */
170: public void setNumber(int val) {
171: number = val;
172: logger.log(BasicLevel.DEBUG, "=" + number);
173: }
174:
175: }
|