Author: dkulp
Date: Tue Jan 24 16:41:00 2012
New Revision: 1235346

URL: http://svn.apache.org/viewvc?rev=1235346&view=rev
Log:
With more stuff promoted to API, change the hack put in place to
maintain compatibility with <=2.5.x

Removed:
    
cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/FaultInfoException.java
Modified:
    
cxf/trunk/api/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java
    
cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
    
cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/FaultInfoException.java

Modified: 
cxf/trunk/api/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java?rev=1235346&r1=1235345&r2=1235346&view=diff
==============================================================================
--- 
cxf/trunk/api/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java 
(original)
+++ 
cxf/trunk/api/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java 
Tue Jan 24 16:41:00 2012
@@ -44,6 +44,15 @@ import org.apache.cxf.staxutils.W3CDOMSt
 public class FaultOutInterceptor extends AbstractPhaseInterceptor<Message> {
     private static final Logger LOG = 
LogUtils.getL7dLogger(FaultOutInterceptor.class); 
 
+    /**
+     * Marker interfaces for Exceptions that have a
+     * getFaultInfo() method that returns some sort 
+     * of object that the FaultOutInterceptor can
+     * marshal into a fault detail element
+     */
+    public interface FaultInfoException {
+    }
+    
     public FaultOutInterceptor() {
         super(Phase.PRE_PROTOCOL);
     }
@@ -132,7 +141,7 @@ public class FaultOutInterceptor extends
     }
 
     protected Object getFaultBean(Throwable cause, FaultInfo faultPart, 
Message message) {
-        if (isFaultInfoException(cause.getClass())) {
+        if (cause instanceof FaultInfoException) {
             try {
                 Method method = cause.getClass().getMethod("getFaultInfo", new 
Class[0]);
                 return method.invoke(cause, new Object[0]);
@@ -147,16 +156,6 @@ public class FaultOutInterceptor extends
         return cause;
     }
 
-    private boolean isFaultInfoException(Class<?> cls) {
-        if (cls == null) {
-            return false;
-        }
-        if 
("org.apache.cxf.service.factory.FaultInfoException".equals(cls.getName())) {
-            return true;
-        }
-        return isFaultInfoException(cls.getSuperclass());
-    }
-
     /**
      * Find the correct Fault part for a particular exception.
      * 

Modified: 
cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java?rev=1235346&r1=1235345&r2=1235346&view=diff
==============================================================================
--- 
cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
 (original)
+++ 
cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
 Tue Jan 24 16:41:00 2012
@@ -2069,7 +2069,7 @@ public class ReflectionServiceFactoryBea
             return null;
         }
 
-        if (FaultInfoException.class.isAssignableFrom(exClass)) {
+        if 
(FaultOutInterceptor.FaultInfoException.class.isAssignableFrom(exClass)) {
             try {
                 Method m = exClass.getMethod("getFaultInfo");
                 return m.getReturnType();

Modified: 
cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/FaultInfoException.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/FaultInfoException.java?rev=1235346&r1=1235345&r2=1235346&view=diff
==============================================================================
--- 
cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/FaultInfoException.java
 (original)
+++ 
cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/FaultInfoException.java
 Tue Jan 24 16:41:00 2012
@@ -19,7 +19,10 @@
 
 package org.apache.cxf.frontend;
 
-public class FaultInfoException extends 
org.apache.cxf.service.factory.FaultInfoException {
+import org.apache.cxf.interceptor.FaultOutInterceptor;
+
+public class FaultInfoException extends Exception 
+    implements FaultOutInterceptor.FaultInfoException {
 
     private static final long serialVersionUID = 1392427062502667841L;
 


Reply via email to