1 /** 2 * EasyBeans 3 * Copyright (C) 2006 Bull S.A.S. 4 * Contact: easybeans@objectweb.org 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * 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: RemoveAlwaysInterceptor.java 700 2006-06-21 09:54:21Z benoitf $ 23 * -------------------------------------------------------------------------- 24 */ 25 26 package org.objectweb.easybeans.container.session.stateful.interceptors; 27 28 import org.objectweb.easybeans.api.EasyBeansInterceptor; 29 import org.objectweb.easybeans.api.EasyBeansInvocationContext; 30 31 /** 32 * This class manages the removal of the stateful session bean. The bean is removed in all case (even with exception). 33 * @author Florent Benoit 34 */ 35 public class RemoveAlwaysInterceptor extends AbsRemoveInterceptor implements EasyBeansInterceptor { 36 37 /** 38 * Remove the current bean. 39 * @param invocationContext context with useful attributes on the current 40 * invocation 41 * @return result of the next invocation (to chain interceptors) 42 * @throws Exception if interceptor fails 43 * @see <a HREF="http://www.jcp.org/en/jsr/detail?id=220">EJB 3.0 44 * specification ?12.6.1</a> 45 */ 46 public Object intercept(final EasyBeansInvocationContext invocationContext) throws Exception { 47 try { 48 return invocationContext.proceed(); 49 } finally { 50 // Remove in all cases 51 remove(invocationContext); 52 } 53 } 54 55 } 56