Author: jlmonteiro
Date: Tue Jul  1 10:59:21 2014
New Revision: 1607041

URL: http://svn.apache.org/r1607041
Log:
Better EJB exception management

Added:
    
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/EJBAccessExceptionMapper.java
      - copied, changed from r1607025, 
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/SecurityExceptionMapper.java
    
tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/EJBAccessExceptionMapperTest.java
      - copied, changed from r1607025, 
tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SecurityExceptionMapperTest.java
Removed:
    
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/SecurityExceptionMapper.java
    
tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SecurityExceptionMapperTest.java
Modified:
    
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java

Modified: 
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java?rev=1607041&r1=1607040&r2=1607041&view=diff
==============================================================================
--- 
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
 (original)
+++ 
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
 Tue Jul  1 10:59:21 2014
@@ -583,23 +583,25 @@ public class CxfRsHttpListener implement
         }
 
         // providers
-        Set<String> providersConfig = new HashSet<String>();
-        {
-            // add an exception mapper for EJBAccessException to convert into 
403
-            providersConfig.add(SecurityExceptionMapper.class.getName());
-
-            // then add first global providers
-            if (GLOBAL_PROVIDERS != null) {
-                
providersConfig.addAll(Arrays.asList(GLOBAL_PROVIDERS.split(",")));
-            }
+        Set<String> providersConfig = null;
 
-            // and finally user custom providers
+        {
             final String provider = 
serviceConfiguration.getProperties().getProperty(PROVIDERS_KEY);
             if (provider != null) {
+                providersConfig = new HashSet<String>();
                 for (final String p : Arrays.asList(provider.split(","))) {
                     providersConfig.add(p.trim());
                 }
             }
+
+            {
+                if (GLOBAL_PROVIDERS != null) {
+                    if (providersConfig == null) {
+                        providersConfig = new HashSet<String>();
+                    }
+                    
providersConfig.addAll(Arrays.asList(GLOBAL_PROVIDERS.split(",")));
+                }
+            }
         }
 
         List<Object> providers = null;
@@ -608,7 +610,6 @@ public class CxfRsHttpListener implement
             if (providers != null && additionalProviders != null && 
!additionalProviders.isEmpty()) {
                 providers.addAll(providers(services, additionalProviders));
             }
-            factory.setProviders(providers);
         }
         if (providers == null) {
             providers = new ArrayList<Object>();
@@ -617,10 +618,13 @@ public class CxfRsHttpListener implement
             } else {
                 providers.addAll(defaultProviders());
             }
-            factory.setProviders(providers);
-        } else {
-            LOGGER.info("Using providers " + providers);
         }
+
+        // add the EJB access exception mapper
+        providers.add(EJBAccessExceptionMapper.INSTANCE);
+
+        LOGGER.info("Using providers " + providers);
+        factory.setProviders(providers);
     }
 
     private static List<Object> defaultProviders() {

Copied: 
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/EJBAccessExceptionMapper.java
 (from r1607025, 
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/SecurityExceptionMapper.java)
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/EJBAccessExceptionMapper.java?p2=tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/EJBAccessExceptionMapper.java&p1=tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/SecurityExceptionMapper.java&r1=1607025&r2=1607041&rev=1607041&view=diff
==============================================================================
--- 
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/SecurityExceptionMapper.java
 (original)
+++ 
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/EJBAccessExceptionMapper.java
 Tue Jul  1 10:59:21 2014
@@ -20,7 +20,9 @@ import javax.ejb.EJBAccessException;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.ext.ExceptionMapper;
 
-public class SecurityExceptionMapper implements 
ExceptionMapper<EJBAccessException> {
+public class EJBAccessExceptionMapper implements 
ExceptionMapper<EJBAccessException> {
+    public static final EJBAccessExceptionMapper INSTANCE = new 
EJBAccessExceptionMapper();
+
     @Override
     public Response toResponse(EJBAccessException throwable) {
         return Response.status(Response.Status.FORBIDDEN).build();

Copied: 
tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/EJBAccessExceptionMapperTest.java
 (from r1607025, 
tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SecurityExceptionMapperTest.java)
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/EJBAccessExceptionMapperTest.java?p2=tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/EJBAccessExceptionMapperTest.java&p1=tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SecurityExceptionMapperTest.java&r1=1607025&r2=1607041&rev=1607041&view=diff
==============================================================================
--- 
tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SecurityExceptionMapperTest.java
 (original)
+++ 
tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/EJBAccessExceptionMapperTest.java
 Tue Jul  1 10:59:21 2014
@@ -41,7 +41,7 @@ import java.util.Properties;
 
 import static org.junit.Assert.assertEquals;
 
-public class SecurityExceptionMapperTest {
+public class EJBAccessExceptionMapperTest {
     private static EJBContainer container;
     private static RESTIsCool service;
 


Reply via email to