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: RollbackAppInterceptor.java 450 2006-05-12 15:30:25Z benoitf $ 23 * -------------------------------------------------------------------------- 24 */ 25 package org.objectweb.easybeans.tests.common.interceptors.business; 26 27 import java.sql.SQLException; 28 29 import javax.interceptor.AroundInvoke; 30 import javax.interceptor.InvocationContext; 31 32 import org.objectweb.easybeans.tests.common.exception.RollbackApplicationException; 33 34 /** 35 * Changes the SQLException to a application exception with the element rollback = 36 * true. 37 * @author Gisele Pinheiro Souza 38 * @author Eduardo Studzinski Estima de Castro 39 */ 40 public class RollbackAppInterceptor { 41 42 43 /** 44 * Changes the SQLException to a application exception with the element rollback = true. 45 * @param invocationContext contains attributes of invocation 46 * @return the method's intercepted result. 47 * @throws Exception if an error occurs. 48 */ 49 @AroundInvoke 50 public Object changeMethodException(final InvocationContext invocationContext) throws Exception{ 51 Object objReturnedValue = null; 52 try { 53 objReturnedValue = invocationContext.proceed(); 54 } catch(SQLException e){ 55 throw new RollbackApplicationException(e.getCause()); 56 } 57 return objReturnedValue; 58 } 59 } 60