View Javadoc

1   /*
2    * EL4J, the Extension Library for the J2EE, adds incremental enhancements to
3    * the spring framework, http://el4j.sf.net
4    * Copyright (C) 2010 by ELCA Informatique SA, Av. de la Harpe 22-24,
5    * 1000 Lausanne, Switzerland, http://www.elca.ch
6    *
7    * EL4J is published under the GNU Lesser General Public License (LGPL)
8    * Version 2.1. See http://www.gnu.org/licenses/
9    *
10   * This program is distributed in the hope that it will be useful,
11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13   * GNU Lesser General Public License for more details.
14   *
15   * For alternative licensing, please contact info@elca.ch
16   */
17  package ch.elca.el4j.tests.aspects.interceptor;
18  
19  import java.util.Properties;
20  
21  import org.aopalliance.intercept.MethodInvocation;
22  import org.springframework.transaction.PlatformTransactionManager;
23  import org.springframework.transaction.interceptor.TransactionAttributeSource;
24  import org.springframework.transaction.interceptor.TransactionInterceptor;
25  
26  import ch.elca.el4j.tests.aspects.util.InvocationMonitor;
27  
28  /**
29   * Wrapped transaction interceptor to count invocation of it.
30   *
31   * @svnLink $Revision: 4253 $;$Date: 2010-12-21 11:08:04 +0100 (Di, 21. Dez 2010) $;$Author: swismer $;$URL: https://el4j.svn.sourceforge.net/svnroot/el4j/branches/el4j_3_1/el4j/framework/tests/aspects/src/main/java/ch/elca/el4j/tests/aspects/interceptor/ObservedTransactionInterceptor.java $
32   *
33   * @author Martin Zeltner (MZE)
34   */
35  public class ObservedTransactionInterceptor extends TransactionInterceptor {
36  	/**
37  	 * Generated serialVersionUID.
38  	 */
39  	private static final long serialVersionUID = 3763830156550688091L;
40  
41  	/**
42  	 * @see super{@link TransactionInterceptor#TransactionInterceptor()}
43  	 */
44  	public ObservedTransactionInterceptor() {
45  		super();
46  	}
47  
48  	/**
49  	 * @see {@link TransactionInterceptor#TransactionInterceptor(PlatformTransactionManager, Properties)}
50  	 */
51  	public ObservedTransactionInterceptor(PlatformTransactionManager ptm,
52  		Properties attributes) {
53  		super(ptm, attributes);
54  	}
55  	
56  	/**
57  	 * @see {@link TransactionInterceptor#TransactionInterceptor(
58  	 * 			PlatformTransactionManager, TransactionAttributeSource)}
59  	 */
60  	public ObservedTransactionInterceptor(PlatformTransactionManager ptm,
61  		TransactionAttributeSource tas) {
62  		super(ptm, tas);
63  	}
64  
65  	@Override
66  	public Object invoke(final MethodInvocation invocation) throws Throwable {
67  		InvocationMonitor.incrementCounter(ObservedTransactionInterceptor.class);
68  		return super.invoke(invocation);
69  	}
70  }