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