You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by fm...@apache.org on 2010/07/27 15:55:05 UTC
svn commit: r979703 -
/felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaClassDescription.java
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;
}
/**