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) 2005 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  
18  package ch.elca.el4j.services.exceptionhandler;
19  
20  import java.util.Map;
21  
22  import ch.elca.el4j.services.monitoring.notification.CoreNotificationHelper;
23  /**
24   * Convenience factory that simplifies the creation of context exception
25   * handlers.
26   *
27   * @svnLink $Revision: 3873 $;$Date: 2009-08-04 13:59:45 +0200 (Di, 04. Aug 2009) $;$Author: swismer $;$URL: https://el4j.svn.sourceforge.net/svnroot/el4j/branches/el4j_3_1/el4j/framework/modules/exception_handling/src/main/java/ch/elca/el4j/services/exceptionhandler/ContextExceptionHandlerFactoryBean.java $
28   *
29   * @author Andreas Bur (ABU)
30   */
31  public class ContextExceptionHandlerFactoryBean extends
32  		AbstractExceptionHandlerFactoryBean {
33  
34  	/** The policies. */
35  	private Map m_policies;
36  	
37  	/**
38  	 * Default Constructor. Configures the proxy to handle only those exceptions
39  	 * that are <b>not</b> defined in the signature (excluding unchecked
40  	 * exceptions, which are handled always).
41  	 */
42  	public ContextExceptionHandlerFactoryBean() {
43  		super();
44  		// change this behaviour in the ContextExceptionHandlerInterceptor too
45  		// (to be done manually since Java doesn't support multi inheritance).
46  		setForwardSignatureExceptions(true);
47  		setHandleRTSignatureExceptions(true);
48  	}
49  
50  	/**
51  	 * @see ContextExceptionHandlerInterceptor#setPolicies(Map)
52  	 */
53  	public void setPolicies(Map policies) {
54  		m_policies = policies;
55  	}
56  
57  	/**
58  	 * {@inheritDoc}
59  	 */
60  	public void afterPropertiesSet() throws Exception {
61  		super.afterPropertiesSet();
62  		CoreNotificationHelper.notifyIfEssentialPropertyIsEmpty(
63  				m_policies, "policies", this);
64  	}
65  
66  	/**
67  	 * {@inheritDoc}
68  	 */
69  	protected AbstractExceptionHandlerInterceptor
70  	createExceptionHandlerInterceptor() {
71  		
72  		ContextExceptionHandlerInterceptor interceptor
73  			= new ContextExceptionHandlerInterceptor();
74  		interceptor.setPolicies(m_policies);
75  		return interceptor;
76  	}
77  }