This is an automated email from the ASF dual-hosted git repository.

aledsage pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git

commit cdb298faafada153bcd1e81f1a65b983d0752611
Author: Paul Campbell <pcampb...@kemitix.net>
AuthorDate: Wed Oct 24 11:48:39 2018 +0100

    Limit violation of the law of demeter
    
    Push out drilling into the orgimanager,framework.bundlecontext.bundles to
    callers.
---
 .../core/catalog/internal/CatalogInitialization.java        | 10 +++++++---
 .../core/catalog/internal/CatalogUpgradeScanner.java        | 13 +++++++------
 2 files changed, 14 insertions(+), 9 deletions(-)

diff --git 
a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogInitialization.java
 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogInitialization.java
index fe57f41..29a9601 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogInitialization.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogInitialization.java
@@ -68,6 +68,7 @@ import org.apache.brooklyn.util.os.Os;
 import org.apache.brooklyn.util.osgi.VersionedName;
 import org.apache.brooklyn.util.text.Strings;
 import org.apache.brooklyn.util.time.Duration;
+import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -256,12 +257,15 @@ public class CatalogInitialization implements 
ManagementContextInjectable {
             
             populateInitialCatalogImpl(true);
 
-            final Maybe<OsgiManager> osgiManager = 
managementContext.getOsgiManager();
-            if (osgiManager.isAbsent()) {
+            final Maybe<OsgiManager> maybesOsgiManager = 
managementContext.getOsgiManager();
+            if (maybesOsgiManager.isAbsent()) {
                 // Can't find any bundles to tell if there are upgrades. Could 
be running tests; do no filtering.
                 
CatalogUpgrades.storeInManagementContext(CatalogUpgrades.EMPTY, 
managementContext);
             } else {
-                final CatalogUpgrades catalogUpgrades = 
catalogUpgradeScanner.scan(osgiManager.get(), rebindLogger);
+                final OsgiManager osgiManager = maybesOsgiManager.get();
+                final BundleContext bundleContext = 
osgiManager.getFramework().getBundleContext();
+                final CatalogUpgrades catalogUpgrades =
+                        catalogUpgradeScanner.scan(osgiManager, bundleContext, 
rebindLogger);
                 CatalogUpgrades.storeInManagementContext(catalogUpgrades, 
managementContext);
             }
             PersistedCatalogState filteredPersistedState = 
filterBundlesAndCatalogInPersistedState(persistedState, rebindLogger);
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogUpgradeScanner.java
 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogUpgradeScanner.java
index b48bbf8..efe902d 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogUpgradeScanner.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogUpgradeScanner.java
@@ -25,9 +25,9 @@ import org.apache.brooklyn.api.typereg.RegisteredType;
 import org.apache.brooklyn.core.mgmt.ha.OsgiManager;
 import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal;
 import org.apache.brooklyn.core.typereg.BundleUpgradeParser.CatalogUpgrades;
-import org.apache.brooklyn.core.typereg.RegisteredTypePredicates;
 import org.apache.brooklyn.util.guava.Maybe;
 import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
 
 import java.util.Collection;
 import java.util.function.BiFunction;
@@ -57,11 +57,12 @@ class CatalogUpgradeScanner {
 
     public CatalogUpgrades scan(
             final OsgiManager osgiManager,
+            final BundleContext bundleContext,
             final CatalogInitialization.RebindLogger rebindLogger
     ) {
         final CatalogUpgrades.Builder catalogUpgradesBuilder = 
CatalogUpgrades.builder();
         scanManagedBundles(osgiManager, catalogUpgradesBuilder, rebindLogger);
-        scanAllBundles(osgiManager, catalogUpgradesBuilder);
+        scanUnmanagedBundles(catalogUpgradesBuilder, bundleContext);
         return catalogUpgradesBuilder.build();
     }
 
@@ -83,11 +84,11 @@ class CatalogUpgradeScanner {
         }
     }
 
-    private void scanAllBundles(
-            final OsgiManager osgiManager,
-            final CatalogUpgrades.Builder catalogUpgradesBuilder
+    private void scanUnmanagedBundles(
+            final CatalogUpgrades.Builder catalogUpgradesBuilder,
+            final BundleContext bundleContext
     ) {
-        for (Bundle bundle : 
osgiManager.getFramework().getBundleContext().getBundles()) {
+        for (Bundle bundle : bundleContext.getBundles()) {
             final CatalogUpgrades catalogUpgrades = 
bundleUpgradeParser.apply(bundle, typeSupplier(bundle));
             catalogUpgradesBuilder.addAll(catalogUpgrades);
         }

Reply via email to