001: /*
002: * JOnAS: Java(TM) Open Application Server
003: * Copyright (C) 1999 Bull S.A.
004: * Contact: jonas-team@objectweb.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
019: * USA
020: *
021: * --------------------------------------------------------------------------
022: * $Id: SimpleEC2.java 5825 2004-11-30 15:29:14Z durieuxp $
023: * --------------------------------------------------------------------------
024: */
025:
026: package org.objectweb.jonas.jtests.beans.ebasic;
027:
028: import java.rmi.RemoteException;
029: import javax.ejb.CreateException;
030: import javax.ejb.EntityBean;
031: import javax.ejb.EntityContext;
032: import javax.ejb.RemoveException;
033:
034: import org.objectweb.jonas.common.Log;
035: import org.objectweb.util.monolog.api.BasicLevel;
036: import org.objectweb.util.monolog.api.Logger;
037:
038: /**
039: * This is an entity bean with "container managed persistence version 2.x".
040: * The state of an instance is stored into a relational database.
041: * The following table should exist :
042: * ebasicSimpleEC2
043: * c_testname varchar(30) primarey key
044: * c_info integer
045: * c_numtest integer
046: * @author Philippe Coq, Philippe Durieux, Helene Joanin
047: */
048:
049: public abstract class SimpleEC2 implements EntityBean {
050:
051: static protected Logger logger = null;
052:
053: protected EntityContext entityContext;
054:
055: // Get and Set accessor methods of the bean's abstract schema
056: public abstract int getInfo();
057:
058: public abstract void setInfo(int info);
059:
060: public abstract int getNumTest();
061:
062: public abstract void setNumTest(int numtest);
063:
064: public abstract String getTestName();
065:
066: public abstract void setTestName(String testname);
067:
068: public void ejbActivate() {
069: logger.log(BasicLevel.DEBUG, "");
070: }
071:
072: public void ejbPassivate() {
073: logger.log(BasicLevel.DEBUG, "");
074: }
075:
076: public void ejbLoad() {
077: logger.log(BasicLevel.DEBUG, "");
078: }
079:
080: public void ejbStore() {
081: logger.log(BasicLevel.DEBUG, "");
082: }
083:
084: public void ejbRemove() throws RemoveException {
085: logger.log(BasicLevel.DEBUG, "");
086: }
087:
088: public void setEntityContext(EntityContext ctx) {
089: if (logger == null)
090: logger = Log.getLogger(Log.JONAS_TESTS_PREFIX);
091: logger.log(BasicLevel.DEBUG, "");
092: entityContext = ctx;
093:
094: }
095:
096: public void unsetEntityContext() {
097: logger.log(BasicLevel.DEBUG, "");
098: }
099:
100: public String ejbCreate(String name, int info, int num)
101: throws CreateException {
102: logger.log(BasicLevel.DEBUG, "create" + info + "," + name + ","
103: + num);
104: setInfo(info);
105: setNumTest(num);
106: setTestName(name);
107: return (null);
108: }
109:
110: public void ejbPostCreate(String name, int info, int num) {
111: logger.log(BasicLevel.DEBUG, "");
112: }
113:
114: /**
115: * loop back on the same bean instance.
116: * This is forbidden when bean is non reentrant.
117: * @return true if test passed.
118: * @throws RemoteException
119: */
120: public boolean loopBack() throws RemoteException {
121: logger.log(BasicLevel.DEBUG, "");
122: boolean pass = false;
123: Simple myref = (Simple) entityContext.getEJBObject();
124: try {
125: myref.getNumTest();
126: } catch (RemoteException e) {
127: logger.log(BasicLevel.DEBUG, "expected exception:" + e);
128: pass = true;
129: }
130: return pass;
131: }
132:
133: /**
134: * loop back on the same bean instance.
135: * This is forbidden when bean is non reentrant.
136: * @return true if test passed.
137: * @throws RemoteException
138: */
139: public boolean loopBackTx() throws RemoteException {
140: logger.log(BasicLevel.DEBUG, "");
141: boolean pass = false;
142: Simple myref = (Simple) entityContext.getEJBObject();
143: try {
144: myref.getNumTest();
145: } catch (RemoteException e) {
146: logger.log(BasicLevel.DEBUG, "expected exception:" + e);
147: pass = true;
148: }
149: return pass;
150: }
151:
152: /**
153: * Check the set of allowed operations
154: * See EJB 2.1 spec - 12.1.6
155: */
156: public void ejbHomeGlobalOpe() throws RemoteException {
157: logger.log(BasicLevel.DEBUG, "");
158: if (entityContext == null) {
159: throw new RemoteException("null entityContext");
160: }
161: entityContext.getEJBHome();
162: // This bean has no local interface
163: try {
164: entityContext.getEJBLocalHome();
165: } catch (IllegalStateException e) {
166: }
167: entityContext.getCallerPrincipal();
168: entityContext.getRollbackOnly();
169: entityContext.isCallerInRole("role");
170: entityContext.getTimerService();
171: }
172: }
|