@ -28,7 +28,7 @@ import javax.jms.TextMessage;
@@ -28,7 +28,7 @@ import javax.jms.TextMessage;
import junit.framework.TestCase ;
import org.easymock.MockControl ;
import org.springframework.beans.BeansException ;
import org.springframework.beans.DirectFieldAccessor ;
import org.springframework.beans.TestBean ;
import org.springframework.beans.factory.config.BeanDefinition ;
import org.springframework.beans.factory.parsing.ComponentDefinition ;
@ -41,6 +41,7 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -41,6 +41,7 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jca.endpoint.GenericMessageEndpointManager ;
import org.springframework.jms.listener.DefaultMessageListenerContainer ;
import org.springframework.jms.listener.endpoint.JmsMessageEndpointManager ;
import org.springframework.util.ErrorHandler ;
/ * *
* @author Mark Fisher
@ -133,11 +134,26 @@ public class JmsNamespaceHandlerTests extends TestCase {
@@ -133,11 +134,26 @@ public class JmsNamespaceHandlerTests extends TestCase {
control3 . verify ( ) ;
}
public void testErrorHandlers ( ) {
ErrorHandler expected = this . context . getBean ( "testErrorHandler" , ErrorHandler . class ) ;
ErrorHandler errorHandler1 = getErrorHandler ( "listener1" ) ;
ErrorHandler errorHandler2 = getErrorHandler ( "listener2" ) ;
ErrorHandler defaultErrorHandler = getErrorHandler ( DefaultMessageListenerContainer . class . getName ( ) + "#0" ) ;
assertSame ( expected , errorHandler1 ) ;
assertSame ( expected , errorHandler2 ) ;
assertNull ( defaultErrorHandler ) ;
}
private MessageListener getListener ( String containerBeanName ) {
DefaultMessageListenerContainer container = this . context . getBean ( containerBeanName , DefaultMessageListenerContainer . class ) ;
return ( MessageListener ) container . getMessageListener ( ) ;
}
private ErrorHandler getErrorHandler ( String containerBeanName ) {
DefaultMessageListenerContainer container = this . context . getBean ( containerBeanName , DefaultMessageListenerContainer . class ) ;
return ( ErrorHandler ) new DirectFieldAccessor ( container ) . getPropertyValue ( "errorHandler" ) ;
}
public void testComponentRegistration ( ) {
assertTrue ( "Parser should have registered a component named 'listener1'" , context . containsComponentDefinition ( "listener1" ) ) ;
assertTrue ( "Parser should have registered a component named 'listener2'" , context . containsComponentDefinition ( "listener2" ) ) ;
@ -231,4 +247,12 @@ public class JmsNamespaceHandlerTests extends TestCase {
@@ -231,4 +247,12 @@ public class JmsNamespaceHandlerTests extends TestCase {
}
}
static class TestErrorHandler implements ErrorHandler {
@Override
public void handleError ( Throwable t ) {
}
}
}