Author: fmeschbe
Date: Tue Jul 27 13:55:05 2010
New Revision: 979703
URL: http://svn.apache.org/viewvc?rev=979703&view=rev
Log:
FELIX-2486 Implement isA method using Class.isAssignableFrom
Modified:
felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaClassDescription.java
Modified:
felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaClassDescription.java
URL:
http://svn.apache.org/viewvc/felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaClassDescription.java?rev=979703&r1=979702&r2=979703&view=diff
==============================================================================
---
felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaClassDescription.java
(original)
+++
felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaClassDescription.java
Tue Jul 27 13:55:05 2010
@@ -240,20 +240,15 @@ public class ClassLoaderJavaClassDescrip
if ( this.clazz.getName().equals(type) ) {
return true;
}
- return this.testClass(this.clazz, type);
- }
- protected boolean testClass(Class<?> c, String type) {
- final Class<?>[] interfaces = c.getInterfaces();
- for(int i=0; i<interfaces.length; i++) {
- if ( interfaces[i].getName().equals(type) ) {
- return true;
- }
- if ( this.testClass(interfaces[i], type) ) {
- return true;
- }
+ try {
+ Class<?> typeClass = this.clazz.getClassLoader().loadClass( type );
+ return typeClass.isAssignableFrom( this.clazz );
+ } catch (ClassNotFoundException cnfe) {
+ // cannot load the check type through the class' class loader
+ // thus we assume clazz is not a type
+ return false;
}
- return false;
}
/**