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/04/28 10:32:07 UTC

[06/13] brooklyn-server git commit: Merge branch 'master' into persist-osgi-bundles

Merge branch 'master' into persist-osgi-bundles


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

Branch: refs/heads/master
Commit: 340e036d78ed3c55317c5d38bf3d2cc9791d6b0b
Parents: abd0cb8 b08c482
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Sat Apr 22 00:05:32 2017 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Sat Apr 22 00:05:32 2017 +0100

----------------------------------------------------------------------
 .../internal/AbstractBrooklynObjectSpec.java    | 211 ++++++++++----
 .../mementos/BrooklynMementoManifest.java       |  36 +--
 .../api/mgmt/rebind/mementos/Memento.java       |  33 ++-
 .../brooklyn/api/objs/BrooklynObject.java       |  19 ++
 .../brooklyn/spi/creation/CampResolver.java     |   2 +-
 .../brooklyn/camp/brooklyn/RebindOsgiTest.java  |  54 ++++
 .../catalog/CatalogOsgiYamlEntityTest.java      |  59 +++-
 .../brooklyn/catalog/CatalogYamlEntityTest.java |  79 +++---
 .../brooklyn/catalog/CatalogYamlRebindTest.java | 273 +++++++++----------
 .../src/test/yaml/python-webserver.bom          |  98 +++++++
 .../core/catalog/internal/CatalogItemDo.java    |  21 ++
 .../internal/CatalogItemDtoAbstract.java        |   5 +-
 .../core/catalog/internal/CatalogUtils.java     |  26 +-
 .../internal/JavaCatalogToSpecTransformer.java  |   8 +-
 .../apache/brooklyn/core/entity/Entities.java   |   9 +
 .../access/PortForwardManagerClient.java        |   6 +
 .../core/mgmt/EntityManagementUtils.java        |   7 +-
 .../BrooklynClassLoadingContextSequential.java  |   7 +-
 .../internal/AbstractManagementContext.java     |  17 +-
 .../BrooklynMementoPersisterToObjectStore.java  |  61 +++--
 .../core/mgmt/rebind/RebindIteration.java       | 233 ++++++++++------
 .../core/mgmt/rebind/dto/AbstractMemento.java   |  30 +-
 .../rebind/dto/BrooklynMementoManifestImpl.java |   5 +-
 .../rebind/dto/EntityMementoManifestImpl.java   |  13 +-
 .../mgmt/rebind/dto/MementosGenerators.java     |   5 +-
 .../rebind/transformer/CompoundTransformer.java |  30 +-
 .../core/objs/AbstractBrooklynObject.java       |  60 +++-
 .../core/objs/AbstractEntityAdjunct.java        |   8 +-
 .../core/objs/BrooklynObjectInternal.java       |   9 +
 .../core/objs/proxy/InternalEntityFactory.java  |  14 +-
 .../objs/proxy/InternalLocationFactory.java     |  13 +-
 .../core/objs/proxy/InternalPolicyFactory.java  |  24 +-
 .../resolve/entity/JavaEntitySpecResolver.java  |   2 +-
 .../typereg/AbstractTypePlanTransformer.java    |   3 +-
 .../brooklyn/util/core/ClassLoaderUtils.java    |  40 ++-
 .../brooklyn/util/core/xstream/XmlUtil.java     |  26 +-
 .../core/mgmt/osgi/OsgiStandaloneTest.java      |   2 +
 .../rebind/RebindConfigInheritanceTest.java     |   2 +-
 .../util/core/ClassLoaderUtilsTest.java         |   3 +-
 .../brooklyn/util/osgi/OsgiTestResources.java   |   2 +
 40 files changed, 1082 insertions(+), 473 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/340e036d/api/src/main/java/org/apache/brooklyn/api/mgmt/rebind/mementos/BrooklynMementoManifest.java
----------------------------------------------------------------------
diff --cc api/src/main/java/org/apache/brooklyn/api/mgmt/rebind/mementos/BrooklynMementoManifest.java
index 97fd91a,fa56d1d..41ca61e
--- a/api/src/main/java/org/apache/brooklyn/api/mgmt/rebind/mementos/BrooklynMementoManifest.java
+++ b/api/src/main/java/org/apache/brooklyn/api/mgmt/rebind/mementos/BrooklynMementoManifest.java
@@@ -32,33 -33,31 +33,34 @@@ import org.apache.brooklyn.api.objs.Ide
  public interface BrooklynMementoManifest extends Serializable {
      public interface EntityMementoManifest extends Identifiable{
          @Override
-         public String getId();
-         public String getType();
-         public String getParent();
-         public String getCatalogItemId();
+         String getId();
+         String getType();
+         String getParent();
+         String getCatalogItemId();
+         List<String> getCatalogItemIdSearchPath();
      }
  
-     public String getPlaneId();
+     String getPlaneId();
  
-     public Map<String, EntityMementoManifest> getEntityIdToManifest();
+     Map<String, EntityMementoManifest> getEntityIdToManifest();
  
-     public Map<String, String> getLocationIdToType();
+     Map<String, String> getLocationIdToType();
  
-     public Map<String, String> getPolicyIdToType();
+     Map<String, String> getPolicyIdToType();
  
-     public Map<String, String> getEnricherIdToType();
+     Map<String, String> getEnricherIdToType();
  
-     public Map<String, String> getFeedIdToType();
+     Map<String, String> getFeedIdToType();
      
-     public CatalogItemMemento getCatalogItemMemento(String id);
-     public Collection<String> getCatalogItemIds();
-     public Map<String, CatalogItemMemento> getCatalogItemMementos();
+     CatalogItemMemento getCatalogItemMemento(String id);
 -
+     Collection<String> getCatalogItemIds();
 -
+     Map<String, CatalogItemMemento> getCatalogItemMementos();
  
-     public ManagedBundleMemento getBundle(String id);
++    ManagedBundleMemento getBundle(String id);
 +    /** returns UID not symbolic name + version */
-     public Collection<String> getBundleIds();
-     public Map<String, ManagedBundleMemento> getBundles();
++    Collection<String> getBundleIds();
++    Map<String, ManagedBundleMemento> getBundles();
 +
-     public boolean isEmpty();
+     boolean isEmpty();
      
  }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/340e036d/core/src/main/java/org/apache/brooklyn/core/catalog/internal/JavaCatalogToSpecTransformer.java
----------------------------------------------------------------------
diff --cc core/src/main/java/org/apache/brooklyn/core/catalog/internal/JavaCatalogToSpecTransformer.java
index 2c76520,e8bb23b..4e4fcb0
--- a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/JavaCatalogToSpecTransformer.java
+++ b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/JavaCatalogToSpecTransformer.java
@@@ -29,9 -29,10 +29,10 @@@ import org.apache.brooklyn.api.mgmt.Man
  import org.apache.brooklyn.api.policy.Policy;
  import org.apache.brooklyn.api.policy.PolicySpec;
  import org.apache.brooklyn.api.typereg.RegisteredType;
+ import org.apache.brooklyn.core.mgmt.classloading.BrooklynClassLoadingContextSequential;
  import org.apache.brooklyn.core.objs.BasicSpecParameter;
 -import org.apache.brooklyn.core.plan.PlanNotRecognizedException;
  import org.apache.brooklyn.core.plan.PlanToSpecTransformer;
 +import org.apache.brooklyn.core.typereg.UnsupportedTypePlanException;
  import org.apache.brooklyn.util.exceptions.Exceptions;
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/340e036d/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/340e036d/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynMementoPersisterToObjectStore.java
----------------------------------------------------------------------
diff --cc core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynMementoPersisterToObjectStore.java
index 142bcbc,2e0b8bf..7707adb
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynMementoPersisterToObjectStore.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynMementoPersisterToObjectStore.java
@@@ -55,14 -53,14 +56,16 @@@ import org.apache.brooklyn.config.Confi
  import org.apache.brooklyn.config.StringConfigMap;
  import org.apache.brooklyn.core.catalog.internal.CatalogUtils;
  import org.apache.brooklyn.core.config.ConfigKeys;
+ import org.apache.brooklyn.core.mgmt.classloading.BrooklynClassLoadingContextSequential;
  import org.apache.brooklyn.core.mgmt.classloading.ClassLoaderFromBrooklynClassLoadingContext;
 +import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal;
  import org.apache.brooklyn.core.mgmt.persist.PersistenceObjectStore.StoreObjectAccessor;
  import org.apache.brooklyn.core.mgmt.persist.PersistenceObjectStore.StoreObjectAccessorWithLock;
  import org.apache.brooklyn.core.mgmt.rebind.PeriodicDeltaChangeListener;
  import org.apache.brooklyn.core.mgmt.rebind.dto.BrooklynMementoImpl;
  import org.apache.brooklyn.core.mgmt.rebind.dto.BrooklynMementoManifestImpl;
 +import org.apache.brooklyn.core.typereg.BasicManagedBundle;
+ import org.apache.brooklyn.util.collections.MutableList;
  import org.apache.brooklyn.util.collections.MutableMap;
  import org.apache.brooklyn.util.collections.MutableSet;
  import org.apache.brooklyn.util.core.xstream.XmlUtil;
@@@ -354,9 -335,36 +364,35 @@@ public class BrooklynMementoPersisterTo
          return result;
      }
  
+     private static class XPathHelper {
+         private String contents;
+         private String prefix;
+ 
+         public XPathHelper(String contents, String prefix) {
+             this.contents = contents;
+             this.prefix = prefix;
+         }
+ 
+         private String get(String innerPath) {
+             return (String) XmlUtil.xpathHandlingIllegalChars(contents, prefix+innerPath);
+         }
+         private List<String> getStringList(String innerPath) {
+             List<String> result = MutableList.of();
+             final NodeList nodeList =
+                 (NodeList) XmlUtil.xpathHandlingIllegalChars(contents, prefix + innerPath + "//string", XPathConstants.NODESET);
+             for(int c = 0 ; c < nodeList.getLength() ; c++) {
+                 result.add(nodeList.item(c).getFirstChild().getNodeValue());
+             }
+             return result;
+         }
+     }
+ 
+ 
      @Override
-     public BrooklynMementoManifest loadMementoManifest(BrooklynMementoRawData mementoDataR, final RebindExceptionHandler exceptionHandler) throws IOException {
 -    public BrooklynMementoManifest loadMementoManifest(BrooklynMementoRawData mementoData,
++    public BrooklynMementoManifest loadMementoManifest(BrooklynMementoRawData mementoDataR,
+                                                        final RebindExceptionHandler exceptionHandler) throws IOException {
 -        if (mementoData==null)
 -            mementoData = loadMementoRawData(exceptionHandler);
 +        final BrooklynMementoRawData mementoData = mementoDataR==null ? loadMementoRawData(exceptionHandler) : mementoDataR;
+         
          final BrooklynMementoManifestImpl.Builder builder = BrooklynMementoManifestImpl.builder();
  
          builder.planeId(mementoData.getPlaneId());

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/340e036d/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java
----------------------------------------------------------------------
diff --cc core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java
index 92a87a7,ad12c52..5ed1dd5
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java
@@@ -19,9 -19,11 +19,12 @@@
  package org.apache.brooklyn.core.mgmt.rebind;
  
  import static com.google.common.base.Preconditions.checkNotNull;
+ import static org.apache.brooklyn.core.BrooklynFeatureEnablement.FEATURE_AUTO_FIX_CATALOG_REF_ON_REBIND;
+ import static org.apache.brooklyn.core.BrooklynFeatureEnablement.FEATURE_BACKWARDS_COMPATIBILITY_INFER_CATALOG_ITEM_ON_REBIND;
+ import static org.apache.brooklyn.core.catalog.internal.CatalogUtils.newClassLoadingContextForCatalogItems;
  
  import java.io.IOException;
 +import java.io.InputStream;
  import java.util.Arrays;
  import java.util.Collection;
  import java.util.List;

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/340e036d/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/AbstractMemento.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/340e036d/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/BrooklynMementoManifestImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/340e036d/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/MementosGenerators.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/340e036d/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/transformer/CompoundTransformer.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/340e036d/utils/common/src/test/java/org/apache/brooklyn/util/osgi/OsgiTestResources.java
----------------------------------------------------------------------