01: /**
02: * EasyBeans
03: * Copyright (C) 2006 Bull S.A.S.
04: * Contact: easybeans@objectweb.org
05: *
06: * This library is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public
08: * License as published by the Free Software Foundation; either
09: * version 2.1 of the License, or any later version.
10: *
11: * This library is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * Lesser General Public License for more details.
15: *
16: * You should have received a copy of the GNU Lesser General Public
17: * License along with this library; if not, write to the Free Software
18: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
19: * USA
20: *
21: * --------------------------------------------------------------------------
22: * $Id: SessionSynchronization.java 1100 2006-08-16 13:05:31Z benoitf $
23: * --------------------------------------------------------------------------
24: */package javax.ejb;
25:
26: import java.rmi.RemoteException;
27:
28: /**
29: * The SessionSynchronization interface allows a session Bean instance to be
30: * notified by its container of transaction boundaries. An session Bean class is
31: * not required to implement this interface. A session Bean class should
32: * implement this interface only if it wishes to synchronize its state with the
33: * transactions.
34: * @see <a href="http://www.jcp.org/en/jsr/detail?id=220">EJB 3.0 specification</a>
35: * @author Florent Benoit
36: */
37: public interface SessionSynchronization {
38:
39: /**
40: * The afterBegin method notifies a session Bean instance that a new
41: * transaction has started, and that the subsequent business methods on the
42: * instance will be invoked in the context of the transaction. The instance
43: * can use this method, for example, to read data from a database and cache
44: * the data in the instance fields. This method executes in the proper
45: * transaction context.
46: * @throws EJBException Thrown by the method to indicate a failure caused by
47: * a system-level error.
48: * @throws RemoteException This exception is defined in the method signature
49: * to provide backward compatibility for enterprise beans written
50: * for the EJB 1.0 specification. Enterprise beans written for the
51: * EJB 1.1 and higher specifications should throw the
52: * javax.ejb.EJBException instead of this exception. Enterprise
53: * beans written for the EJB 2.0 and higher specifications must not
54: * throw the java.rmi.RemoteException.
55: */
56: void afterBegin() throws EJBException, RemoteException;
57:
58: /**
59: * The beforeCompletion method notifies a session Bean instance that a
60: * transaction is about to be committed. The instance can use this method,
61: * for example, to write any cached data to a database. This method executes
62: * in the proper transaction context. Note: The instance may still cause the
63: * container to rollback the transaction by invoking the setRollbackOnly()
64: * method on the instance context, or by throwing an exception.
65: * @throws EJBException Thrown by the method to indicate a failure caused by
66: * a system-level error.
67: * @throws RemoteException This exception is defined in the method signature
68: * to provide backward compatibility for enterprise beans written
69: * for the EJB 1.0 specification. Enterprise beans written for the
70: * EJB 1.1 and higher specification should throw the
71: * javax.ejb.EJBException instead of this exception. Enterprise
72: * beans written for the EJB 2.0 and higher specifications must not
73: * throw the java.rmi.RemoteException.
74: */
75: void beforeCompletion() throws EJBException, RemoteException;
76:
77: /**
78: * The afterCompletion method notifies a session Bean instance that a
79: * transaction commit protocol has completed, and tells the instance whether
80: * the transaction has been committed or rolled back. This method executes
81: * with no transaction context. This method executes with no transaction
82: * context.
83: * @param committed True if the transaction has been committed, false if is
84: * has been rolled back.
85: * @throws EJBException Thrown by the method to indicate a failure caused by
86: * a system-level error.
87: * @throws RemoteException This exception is defined in the method signature
88: * to provide backward compatibility for enterprise beans written
89: * for the EJB 1.0 specification. Enterprise beans written for the
90: * EJB 1.1 and higher specification should throw the
91: * javax.ejb.EJBException instead of this exception. Enterprise
92: * beans written for the EJB 2.0 and higher specifications must not
93: * throw the java.rmi.RemoteException.
94: */
95: void afterCompletion(final boolean committed) throws EJBException,
96: RemoteException;
97:
98: }
|