Repository: brooklyn-server
Updated Branches:
  refs/heads/master bfc74ebc5 -> 050a15654


persistence: include bundle-prefix for whitelisted classes


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

Branch: refs/heads/master
Commit: dfd4315565c6767ccb16979c8d098717ed2a4853
Parents: bfc74eb
Author: Aled Sage <aled.s...@gmail.com>
Authored: Fri Jan 20 18:12:38 2017 +0000
Committer: Aled Sage <aled.s...@gmail.com>
Committed: Fri Jan 20 20:54:40 2017 +0000

----------------------------------------------------------------------
 .../brooklyn/core/mgmt/persist/OsgiClassPrefixer.java       | 9 ++++++++-
 .../brooklyn/core/mgmt/persist/OsgiClassPrefixerTest.java   | 2 +-
 2 files changed, 9 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/dfd43155/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/OsgiClassPrefixer.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/OsgiClassPrefixer.java
 
b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/OsgiClassPrefixer.java
index f252f8e..4c4a348 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/OsgiClassPrefixer.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/OsgiClassPrefixer.java
@@ -58,7 +58,14 @@ public class OsgiClassPrefixer {
     
     public Optional<String> getPrefix(Class<?> type) {
         Optional<Bundle> bundle  = (bundleRetriever != null) ? 
bundleRetriever.apply(type) : Osgis.getBundleOf(type);
-        if (bundle.isPresent() && 
!whiteListRetriever.isBundleWhiteListed(bundle.get())) {
+        if (bundle.isPresent()) {
+            // Previously we didn't include the bundle prefix for whitelisted 
bundles. However,
+            // that means once a bundle is whitelisted it must always be 
whitelisted. That is 
+            // annoying for customer-upgrades of persisted state created 
pre-karaf. For those 
+            // upgrades, the temporary whitelist is a useful way to allow 
rebind to complete 
+            // successfully. The persisted state will then be re-written with 
the appropriate
+            // prefixes. It is also better that we treat persistence/rebind of 
classes from 
+            // Brooklyn bundles in the same way as customer bundles.
             return Optional.of(bundle.get().getSymbolicName() + DELIMITER);
         }
         return Optional.absent();

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/dfd43155/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/OsgiClassPrefixerTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/OsgiClassPrefixerTest.java
 
b/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/OsgiClassPrefixerTest.java
index 19a5610..724d8d7 100644
--- 
a/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/OsgiClassPrefixerTest.java
+++ 
b/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/OsgiClassPrefixerTest.java
@@ -70,7 +70,7 @@ public class OsgiClassPrefixerTest {
             }
         };
         OsgiClassPrefixer prefixer = new OsgiClassPrefixer(bundleRetriever);
-        assertAbsent(prefixer.getPrefix(String.class));
+        assertPresent(prefixer.getPrefix(String.class), 
"org.apache.brooklyn.my-bundle:");
     }
     
     @Test

Reply via email to