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;