* Avoid compilation warning
* More explicit error message
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1487443 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/ipojo/runtime/core/src/main/java/org/apache/felix/ipojo/extender/internal/processor/ExtensionBundleProcessor.java b/ipojo/runtime/core/src/main/java/org/apache/felix/ipojo/extender/internal/processor/ExtensionBundleProcessor.java
index e48584c..b9f4e6b 100644
--- a/ipojo/runtime/core/src/main/java/org/apache/felix/ipojo/extender/internal/processor/ExtensionBundleProcessor.java
+++ b/ipojo/runtime/core/src/main/java/org/apache/felix/ipojo/extender/internal/processor/ExtensionBundleProcessor.java
@@ -19,6 +19,7 @@
package org.apache.felix.ipojo.extender.internal.processor;
+import org.apache.felix.ipojo.IPojoFactory;
import org.apache.felix.ipojo.extender.internal.BundleProcessor;
import org.apache.felix.ipojo.extender.internal.builder.ReflectiveFactoryBuilder;
import org.apache.felix.ipojo.extender.internal.declaration.DefaultExtensionDeclaration;
@@ -125,12 +126,18 @@
*/
String[] nameparts = ParseUtils.split(segments[0].trim(), " \t");
String type = nameparts.length == 1 ? nameparts[0] : nameparts[0] + ":" + nameparts[1];
+ String classname = segments[1];
- Class clazz;
+ Class<? extends IPojoFactory> clazz;
try {
- clazz = bundle.loadClass(segments[1]);
+ clazz = bundle.loadClass(classname).asSubclass(IPojoFactory.class);
} catch (ClassNotFoundException e) {
- m_logger.log(Logger.ERROR, "Cannot load the extension " + type, e);
+ String message = String.format("Cannot load class '%s' from bundle %s (%s) for extension '%s'",
+ classname,
+ bundle.getSymbolicName(),
+ bundle.getVersion(),
+ type);
+ m_logger.log(Logger.ERROR, message, e);
return;
}