Author: dkulp
Date: Fri Jul 24 20:59:07 2009
New Revision: 797651
URL: http://svn.apache.org/viewvc?rev=797651&view=rev
Log:
Check parents for the Provider interface as well
Modified:
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsImplementorInfo.java
Modified:
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsImplementorInfo.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsImplementorInfo.java?rev=797651&r1=797650&r2=797651&view=diff
==============================================================================
---
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsImplementorInfo.java
(original)
+++
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsImplementorInfo.java
Fri Jul 24 20:59:07 2009
@@ -309,13 +309,17 @@
public Class<?> getProviderParameterType() {
// The Provider Implementor inherits out of Provider<T>
- Type intfTypes[] = implementorClass.getGenericInterfaces();
- for (Type t : intfTypes) {
- Class<?> clazz = JAXBEncoderDecoder.getClassFromType(t);
- if (Provider.class == clazz) {
- Type paramTypes[] =
((ParameterizedType)t).getActualTypeArguments();
- return JAXBEncoderDecoder.getClassFromType(paramTypes[0]);
+ Class<?> c = implementorClass;
+ while (c != null) {
+ Type intfTypes[] = c.getGenericInterfaces();
+ for (Type t : intfTypes) {
+ Class<?> clazz = JAXBEncoderDecoder.getClassFromType(t);
+ if (Provider.class == clazz) {
+ Type paramTypes[] =
((ParameterizedType)t).getActualTypeArguments();
+ return JAXBEncoderDecoder.getClassFromType(paramTypes[0]);
+ }
}
+ c = c.getSuperclass();
}
return null;
}