address PR review comments

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

Branch: refs/heads/master
Commit: 6938922da2a5e1d9327219e91c219edbbeebe1c0
Parents: b157ff8
Author: Alex Heneveld <[email protected]>
Authored: Thu Apr 27 15:31:37 2017 +0100
Committer: Alex Heneveld <[email protected]>
Committed: Thu Apr 27 15:31:37 2017 +0100

----------------------------------------------------------------------
 .../java/org/apache/brooklyn/api/typereg/ManagedBundle.java | 3 +++
 .../mgmt/persist/BrooklynMementoPersisterToObjectStore.java | 6 +++++-
 .../core/mgmt/persist/BrooklynPersistenceUtils.java         | 2 +-
 .../core/mgmt/persist/FileBasedStoreObjectAccessor.java     | 3 +--
 .../apache/brooklyn/core/mgmt/rebind/RebindContextImpl.java | 9 +--------
 .../apache/brooklyn/core/mgmt/rebind/RebindIteration.java   | 4 +---
 6 files changed, 12 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/6938922d/api/src/main/java/org/apache/brooklyn/api/typereg/ManagedBundle.java
----------------------------------------------------------------------
diff --git 
a/api/src/main/java/org/apache/brooklyn/api/typereg/ManagedBundle.java 
b/api/src/main/java/org/apache/brooklyn/api/typereg/ManagedBundle.java
index 9fe7e8a..4f975b7 100644
--- a/api/src/main/java/org/apache/brooklyn/api/typereg/ManagedBundle.java
+++ b/api/src/main/java/org/apache/brooklyn/api/typereg/ManagedBundle.java
@@ -24,6 +24,9 @@ import org.apache.brooklyn.api.objs.BrooklynObject;
 /** Describes an OSGi bundle which Brooklyn manages, including persisting */
 public interface ManagedBundle extends BrooklynObject, Rebindable, 
OsgiBundleWithUrl {
 
+    /** A URL-like thing that we can register with the OSGi framework
+     * to uniquely identify this bundle-instance.
+     * This typically includes the unique {@link #getId()} of this item. */
     String getOsgiUniqueUrl();
 
 }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/6938922d/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynMementoPersisterToObjectStore.java
----------------------------------------------------------------------
diff --git 
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
index ccafcc3..e8bb5fc 100644
--- 
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
@@ -704,7 +704,7 @@ public class BrooklynMementoPersisterToObjectStore 
implements BrooklynMementoPer
     private void addPersistContentIfManagedBundle(final BrooklynObjectType 
type, final String id, List<ListenableFuture<?>> futures, final 
PersistenceExceptionHandler exceptionHandler) {
         if (type==BrooklynObjectType.MANAGED_BUNDLE) {
             if (mgmt==null) {
-                throw new IllegalStateException("Cannot persist bundles 
without a mangaement context");
+                throw new IllegalStateException("Cannot persist bundles 
without a management context");
             }
             final ManagedBundle mb = 
((ManagementContextInternal)mgmt).getOsgiManager().get().getManagedBundles().get(id);
             if (mb==null) {
@@ -719,6 +719,10 @@ public class BrooklynMementoPersisterToObjectStore 
implements BrooklynMementoPer
                     futures.add( executor.submit(new Runnable() {
                         @Override
                         public void run() {
+                            if 
(((BasicManagedBundle)mb).getTempLocalFileWhenJustUploaded()==null) {
+                                // someone else persisted this (race)
+                                return;
+                            }
                             persist(type.getSubPathName(), type, id+".jar", 
com.google.common.io.Files.asByteSource(f), exceptionHandler);
                             
((BasicManagedBundle)mb).setTempLocalFileWhenJustUploaded(null);
                             f.delete();

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/6938922d/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynPersistenceUtils.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynPersistenceUtils.java
 
b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynPersistenceUtils.java
index 0899ed1..ca63cce 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynPersistenceUtils.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynPersistenceUtils.java
@@ -195,7 +195,7 @@ public class BrooklynPersistenceUtils {
         OsgiManager osgi = 
((LocalManagementContext)mgmt).getOsgiManager().orNull();
         if (osgi!=null) {
             for (ManagedBundle instance: osgi.getManagedBundles().values()) {
-                result.catalogItem(instance.getId(), 
serializer.toString(newObjectMemento(instance)));
+                result.bundle(instance.getId(), 
serializer.toString(newObjectMemento(instance)));
             }
         }
         

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/6938922d/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/FileBasedStoreObjectAccessor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/FileBasedStoreObjectAccessor.java
 
b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/FileBasedStoreObjectAccessor.java
index 1800a05..2028c43 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/FileBasedStoreObjectAccessor.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/FileBasedStoreObjectAccessor.java
@@ -32,7 +32,6 @@ import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Charsets;
 import com.google.common.base.MoreObjects;
-import com.google.common.base.Preconditions;
 import com.google.common.io.ByteSource;
 import com.google.common.io.Files;
 
@@ -80,7 +79,7 @@ public class FileBasedStoreObjectAccessor implements 
PersistenceObjectStore.Stor
 
     @Override
     public void put(String val) {
-        Preconditions.checkNotNull(val, "Illegal attempt to write a null 
string");
+        if (val==null) val = "";
         put(ByteSource.wrap(val.getBytes(Charsets.UTF_8)));
     }
     

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/6938922d/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindContextImpl.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindContextImpl.java
 
b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindContextImpl.java
index cc301c9..1e9cbba 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindContextImpl.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindContextImpl.java
@@ -89,10 +89,7 @@ public class RebindContextImpl implements RebindContext {
         catalogItems.put(id, catalogItem);
     }
 
-    public void registerBundle(String id, ManagedBundle bundle) {
-        bundles.put(id, bundle);
-    }
-    
+    // we don't track register/unregister of bundles; it isn't needed as it 
happens so early
     public void installBundle(ManagedBundle bundle, InputStream zipInput) {
         
((LocalManagementContext)mgmt).getOsgiManager().get().installUploadedBundle(bundle,
 zipInput, true);
     }
@@ -113,10 +110,6 @@ public class RebindContextImpl implements RebindContext {
         catalogItems.remove(item.getId());
     }
 
-    public void unregisterBundle(ManagedBundle bundle) {
-        bundles.remove(bundle.getId());
-    }
-
     public void clearCatalogItems() {
         catalogItems.clear();
     }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/6938922d/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java
----------------------------------------------------------------------
diff --git 
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
index 5ed1dd5..34c795c 100644
--- 
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
@@ -328,10 +328,8 @@ public abstract class RebindIteration {
             logRebindingDebug("RebindManager installing bundles: {}", 
mementoManifest.getBundleIds());
             for (ManagedBundleMemento bundleM : 
mementoManifest.getBundles().values()) {
                 logRebindingDebug("RebindManager installing bundle {}", 
bundleM.getId());
-                try {
-                    InputStream in = bundleM.getJarContent().openStream();
+                try (InputStream in = bundleM.getJarContent().openStream()) {
                     
rebindContext.installBundle(instantiator.newManagedBundle(bundleM), in);
-                    in.close();
                 } catch (Exception e) {
                     
exceptionHandler.onCreateFailed(BrooklynObjectType.MANAGED_BUNDLE, 
bundleM.getId(), bundleM.getSymbolicName(), e);
                 }

Reply via email to