You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by ge...@apache.org on 2017/07/19 16:25:37 UTC

[07/39] brooklyn-server git commit: comments on BOM scanning

comments on BOM scanning


Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/e32d74d1
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/e32d74d1
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/e32d74d1

Branch: refs/heads/master
Commit: e32d74d15359152c9b1900db2ee0a7958b15c29b
Parents: 8385f13
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Jun 28 09:28:13 2017 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Jun 28 09:28:13 2017 +0100

----------------------------------------------------------------------
 .../catalog/internal/CatalogBomScanner.java     | 28 ++++++++++++--------
 1 file changed, 17 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/e32d74d1/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogBomScanner.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogBomScanner.java b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogBomScanner.java
index 1f528c8..90efaa2 100644
--- a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogBomScanner.java
+++ b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogBomScanner.java
@@ -35,8 +35,13 @@ import com.google.common.annotations.Beta;
 import com.google.common.base.Predicate;
 import com.google.common.collect.ImmutableList;
 
-/** Scans bundles being added, filtered by a whitelist and blacklist, and adds catalog.bom files to the catalog.
+/** Scans bundles being added to add their catalog.bom to Brooklyn, 
+ * filtering which bundles are allowed add _applications_ through a whitelist and blacklist.
+ * (All bundles are allowed to add other types.) 
  * See karaf blueprint.xml for configuration, and tests in dist project. */
+// TODO AH: i wonder if we can remove this or generalize it; disallowing just app/templates seems a little weird
+// (makes sense as those appear more prominently in some displays, but feels like there'd be a better way
+// to customize; intercepting at this particular point is surprising)
 @Beta
 public class CatalogBomScanner {
 
@@ -44,8 +49,9 @@ public class CatalogBomScanner {
 
     private static final Logger LOG = LoggerFactory.getLogger(CatalogBomScanner.class);
 
-    private List<String> whiteList = ImmutableList.of(ACCEPT_ALL_BY_DEFAULT);
-    private List<String> blackList = ImmutableList.of();
+    // configured by `brooklyn.catalog.osgi.application.{white,black}list`
+    private List<String> bundlesAllowedToAddAppsWhitelist = ImmutableList.of(ACCEPT_ALL_BY_DEFAULT);
+    private List<String> bundlesAllowedToAddAppsBlacklist = ImmutableList.of();
 
     private CatalogBundleTracker catalogBundleTracker;
 
@@ -57,7 +63,7 @@ public class CatalogBomScanner {
 
             final BundleContext bundleContext = mgmtContextReference.getBundle().getBundleContext();
             ManagementContext mgmt = bundleContext.getService(mgmtContextReference);
-            CatalogBundleLoader bundleLoader = new CatalogBundleLoader(new SymbolicNameAccessControl(), mgmt);
+            CatalogBundleLoader bundleLoader = new CatalogBundleLoader(new BundlesAllowedToAddAddsFilter(), mgmt);
 
             catalogBundleTracker = new CatalogBundleTracker(bundleContext, bundleLoader);
             catalogBundleTracker.open();
@@ -81,32 +87,32 @@ public class CatalogBomScanner {
     }
 
     public List<String> getWhiteList() {
-        return whiteList;
+        return bundlesAllowedToAddAppsWhitelist;
     }
 
     public void setWhiteList(List<String> whiteList) {
-        this.whiteList = whiteList;
+        this.bundlesAllowedToAddAppsWhitelist = whiteList;
     }
 
     public void setWhiteList(String whiteListText) {
         LOG.debug("Setting whiteList to ", whiteListText);
-        this.whiteList = Strings.parseCsv(whiteListText);
+        this.bundlesAllowedToAddAppsWhitelist = Strings.parseCsv(whiteListText);
     }
 
     public List<String> getBlackList() {
-        return blackList;
+        return bundlesAllowedToAddAppsBlacklist;
     }
 
     public void setBlackList(List<String> blackList) {
-        this.blackList = blackList;
+        this.bundlesAllowedToAddAppsBlacklist = blackList;
     }
 
     public void setBlackList(String blackListText) {
         LOG.debug("Setting blackList to ", blackListText);
-        this.blackList = Strings.parseCsv(blackListText);
+        this.bundlesAllowedToAddAppsBlacklist = Strings.parseCsv(blackListText);
     }
 
-    public class SymbolicNameAccessControl implements Predicate<Bundle> {
+    public class BundlesAllowedToAddAddsFilter implements Predicate<Bundle> {
         @Override
         public boolean apply(@Nullable Bundle input) {
             return passesWhiteAndBlacklists(input);