Remove the usages of @XmlSeeAlso annotation.
[controller.git] / opendaylight / northbound / bundlescanner / implementation / src / main / java / org / opendaylight / controller / northbound / bundlescanner / internal / BundleScanner.java
index 3e517e9a1f717e3b9a8c889c5b34b2f3bf3d7351..a5a2073a610886d0aed68044ca70f40c44146556 100644 (file)
@@ -73,7 +73,8 @@ import org.slf4j.LoggerFactory;
         Pattern pattern = mergePatterns(annotations, false);
         List<Class<?>> result = null;
         if (includeDependentBundleClasses) {
-            result = info.getAnnotatedClasses(bundleAnnotations.values(), pattern);
+            result = info.getAnnotatedClasses(bundleAnnotations.values(),
+                    pattern, context.getBundle());
         } else {
             result = info.getAnnotatedClasses(pattern);
         }
@@ -237,17 +238,23 @@ import org.slf4j.LoggerFactory;
         // find bundle dependencies
     }
 
-    public static List<Class<?>> loadClasses(Bundle bundle,
-            Collection<String> annotatedClasses)
+    public static List<Class<?>> loadClasses(
+            Collection<String> annotatedClasses,
+            Bundle initBundle)
     {
         List<Class<?>> result = new ArrayList<Class<?>>();
+        StringBuilder errors = new StringBuilder();
         for (String name : annotatedClasses) {
             try {
-                result.add(bundle.loadClass(name));
-            } catch (Exception e) {
-                LOGGER.error("Unable to load class: {}", name, e);
+                result.add(initBundle.loadClass(name));
+            } catch (ClassNotFoundException e) {
+                errors.append(name).append(", ");
             }
         }
+        if (LOGGER.isDebugEnabled() && errors.length() > 0) {
+            LOGGER.debug("Bundle: {} could not load classes: {}",
+                    initBundle.getSymbolicName(), errors.toString());
+        }
         return result;
     }