X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnorthbound%2Fbundlescanner%2Fimplementation%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnorthbound%2Fbundlescanner%2Finternal%2FBundleInfo.java;h=4e94c5f84549344613ffe168386312f01a5de269;hp=a10893110cac02ca76d2e43b5c09472ee1fda7e5;hb=bbba9ddecc8fa5835d066741328d3d812b8433b0;hpb=665b37faa9977f3d5e20117c487aec918e762e0d diff --git a/opendaylight/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/BundleInfo.java b/opendaylight/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/BundleInfo.java index a10893110c..4e94c5f845 100644 --- a/opendaylight/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/BundleInfo.java +++ b/opendaylight/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/BundleInfo.java @@ -69,7 +69,7 @@ import org.slf4j.LoggerFactory; result.add(entry.getKey()); } } - return BundleScanner.loadClasses(bundle, result); + return BundleScanner.loadClasses(result, bundle); } private boolean matches(Pattern pattern, Set values) { @@ -81,13 +81,22 @@ import org.slf4j.LoggerFactory; return false; } + /** + * Get classes with annotations matching a pattern + * + * @param allbundles - all bundles + * @param pattern - annotation pattern to match + * @param initBundle - the bundle which initiated this call + * + * @return list of annotated classes matching the pattern + */ public List> getAnnotatedClasses( Collection allbundles, - Pattern pattern) + Pattern pattern, Bundle initBundle) { List> classes = getAnnotatedClasses(pattern); processAnnotatedClassesInternal(this, allbundles, pattern, - new HashSet(), classes); + new HashSet(), classes, initBundle); return classes; } @@ -115,17 +124,18 @@ import org.slf4j.LoggerFactory; Collection bundlesToScan, Pattern pattern, Collection visited, - List> classes) + List> classes, + Bundle initBundle) { for (BundleInfo other : bundlesToScan) { if (other.getId() == target.getId()) continue; if (target.isDependantOn(other)) { if (!visited.contains(other)) { - classes.addAll(BundleScanner.loadClasses(other.getBundle(), - other.getExportedAnnotatedClasses(pattern))); + classes.addAll(BundleScanner.loadClasses( + other.getExportedAnnotatedClasses(pattern), initBundle)); visited.add(other); processAnnotatedClassesInternal(other, bundlesToScan, - pattern, visited, classes); + pattern, visited, classes, initBundle); } } }