camp resolver correctly resolves flags used in subtypes
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/bcd8b26a Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/bcd8b26a Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/bcd8b26a Branch: refs/heads/master Commit: bcd8b26a1eb3793e3b0fb036f1fe5c75aa6b6987 Parents: 8405d87 Author: Alex Heneveld <alex.henev...@cloudsoftcorp.com> Authored: Tue Sep 20 13:44:39 2016 +0100 Committer: Alex Heneveld <alex.henev...@cloudsoftcorp.com> Committed: Wed Sep 21 16:06:07 2016 +0100 ---------------------------------------------------------------------- .../spi/creation/BrooklynComponentTemplateResolver.java | 3 ++- .../brooklyn/camp/brooklyn/ConfigInheritanceYamlTest.java | 6 ++---- 2 files changed, 4 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/bcd8b26a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java ---------------------------------------------------------------------- diff --git a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java index f658fbd..8cbe4b8 100644 --- a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java +++ b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java @@ -292,7 +292,8 @@ public class BrooklynComponentTemplateResolver { for (FlagConfigKeyAndValueRecord r: records) { if (r.getFlagMaybeValue().isPresent()) { final String flag = r.getFlagName(); - final ConfigKey<Object> key = ConfigKeys.newConfigKey(Object.class, flag); + final ConfigKey<Object> key = (ConfigKey<Object>) r.getConfigKey(); + if (key==null) ConfigKeys.newConfigKey(Object.class, flag); final Object ownValueF = new SpecialFlagsTransformer(loader, encounteredRegisteredTypeIds).apply(r.getFlagMaybeValue().get()); Iterable<? extends ContainerAndKeyValue<Object>> ckvi = MutableList.of( http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/bcd8b26a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ConfigInheritanceYamlTest.java ---------------------------------------------------------------------- diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ConfigInheritanceYamlTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ConfigInheritanceYamlTest.java index c3d4ebc..349adae 100644 --- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ConfigInheritanceYamlTest.java +++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ConfigInheritanceYamlTest.java @@ -648,11 +648,9 @@ public class ConfigInheritanceYamlTest extends AbstractYamlTest { EntityAsserts.assertConfigEquals(entity, EmptySoftwareProcess.SHELL_ENVIRONMENT, expectedEnv); } - // TODO Has never worked, and probably hard to fix?! We need to figure out that "env" corresponds to the - // config key. Maybe FlagUtils could respect SetFromFlags when returning Map<String,ConfigKey>? - // TODO should be able to fix in this phase of work - @Test(groups={"WIP", "Broken"}) + @Test public void testExtendsSuperTypeConfigMixingShortOverridingShortName() throws Exception { + // fixed Sept 2016 ImmutableMap<String, Object> expectedEnv = ImmutableMap.<String, Object>of("ENV1", "myEnv1", "ENV2", "myEnv2"); // super-type has env; sub-type env