You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by sv...@apache.org on 2016/07/06 12:33:14 UTC
[2/5] brooklyn-server git commit: Hide bundle catalog.bom loading
behind a feature flag
Hide bundle catalog.bom loading behind a feature flag
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/48abd262
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/48abd262
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/48abd262
Branch: refs/heads/master
Commit: 48abd262099548bb246e1f1d9a7838e5b26958dc
Parents: 30573a5
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Tue Jul 5 12:36:02 2016 +0300
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Wed Jul 6 14:58:48 2016 +0300
----------------------------------------------------------------------
.../core/BrooklynFeatureEnablement.java | 8 ++++++
.../catalog/internal/CatalogBomScanner.java | 27 +++++++++++++-------
2 files changed, 26 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/48abd262/core/src/main/java/org/apache/brooklyn/core/BrooklynFeatureEnablement.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/BrooklynFeatureEnablement.java b/core/src/main/java/org/apache/brooklyn/core/BrooklynFeatureEnablement.java
index 48418a3..f2e8a0a 100644
--- a/core/src/main/java/org/apache/brooklyn/core/BrooklynFeatureEnablement.java
+++ b/core/src/main/java/org/apache/brooklyn/core/BrooklynFeatureEnablement.java
@@ -112,6 +112,13 @@ public class BrooklynFeatureEnablement {
public static final String FEATURE_VALIDATE_LOCATION_SSH_KEYS = "brooklyn.validate.locationSshKeys";
/**
+ * Whether to scan newly loaded bundles for catalog.bom and load it.
+ *
+ * The functionality loads catalog items regardless of the persistence state so best used with persistence disabled.
+ */
+ public static final String FEATURE_LOAD_BUNDLE_CATALOG_BOM = FEATURE_PROPERTY_PREFIX+".osgi.catalog_bom";
+
+ /**
* Values explicitly set by Java calls.
*/
private static final Map<String, Boolean> FEATURE_ENABLEMENTS = Maps.newLinkedHashMap();
@@ -146,6 +153,7 @@ public class BrooklynFeatureEnablement {
setDefault(FEATURE_AUTO_FIX_CATALOG_REF_ON_REBIND, false);
setDefault(FEATURE_SSH_ASYNC_EXEC, false);
setDefault(FEATURE_VALIDATE_LOCATION_SSH_KEYS, true);
+ setDefault(FEATURE_LOAD_BUNDLE_CATALOG_BOM, false);
}
static {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/48abd262/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 ae2885a..b7e0041 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
@@ -23,6 +23,7 @@ import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
import org.apache.brooklyn.api.catalog.CatalogItem;
import org.apache.brooklyn.api.mgmt.ManagementContext;
+import org.apache.brooklyn.core.BrooklynFeatureEnablement;
import org.apache.brooklyn.util.collections.MutableList;
import org.apache.brooklyn.util.exceptions.Exceptions;
import org.apache.brooklyn.util.stream.Streams;
@@ -60,21 +61,29 @@ public class CatalogBomScanner {
private CatalogPopulator catalogTracker;
public void bind(ServiceReference<ManagementContext> managementContext) throws Exception {
- LOG.debug("Binding management context with whiteList [{}] and blacklist [{}]",
- Strings.join(getWhiteList(), "; "),
- Strings.join(getBlackList(), "; "));
- catalogTracker = new CatalogPopulator(managementContext);
+ if (isEnabled()) {
+ LOG.debug("Binding management context with whiteList [{}] and blacklist [{}]",
+ Strings.join(getWhiteList(), "; "),
+ Strings.join(getBlackList(), "; "));
+ catalogTracker = new CatalogPopulator(managementContext);
+ }
}
public void unbind(ServiceReference<ManagementContext> managementContext) throws Exception {
- LOG.debug("Unbinding management context");
- if (null != catalogTracker) {
- CatalogPopulator temp = catalogTracker;
- catalogTracker = null;
- temp.close();
+ if (isEnabled()) {
+ LOG.debug("Unbinding management context");
+ if (null != catalogTracker) {
+ CatalogPopulator temp = catalogTracker;
+ catalogTracker = null;
+ temp.close();
+ }
}
}
+ private boolean isEnabled() {
+ return BrooklynFeatureEnablement.isEnabled(BrooklynFeatureEnablement.FEATURE_LOAD_BUNDLE_CATALOG_BOM);
+ }
+
private String[] bundleIds(Bundle bundle) {
return new String[] {
String.valueOf(bundle.getBundleId()), bundle.getSymbolicName(), bundle.getVersion().toString()