ahgittin commented on pull request #1267:
URL: https://github.com/apache/brooklyn-server/pull/1267#issuecomment-956182620
So, changing `params` to be the more general `Object` doesn't allow some of
the historic xml deserialization.
A better fix is to annotate `ConfigBag` so that Jackson JSON/YAML can work
with it more nicely. This on that class should do it:
```
@JsonAutoDetect(fieldVisibility = Visibility.ANY, isGetterVisibility =
Visibility.NONE, getterVisibility = Visibility.NONE, setterVisibility =
Visibility.NONE)
```
(Revert the change of `params`, back to being a `ConfigBag`.)
The test you added to `BRTJST` passes with the above annotation.
I tried the following test also in `BRTJST` which also passes and is
probably worth including here (in addition to the test you have here):
```
@Test
public void testConfigBagSerialization() throws Exception {
ConfigBag bag = ConfigBag.newInstance();
bag.put(ConfigKeys.newConfigKey(String.class, "stringTypedKey"),
"foo");
bag.putStringKey("stringUntypedKey", "bar");
bag.putStringKey("intUntypedKey", 2);
bag.getStringKey("stringUntypedKey");
String out = ser(bag);
Assert.assertEquals(out,
"{\"type\":\"org.apache.brooklyn.util.core.config.ConfigBag\",\"config\":{\"stringTypedKey\":\"foo\",\"stringUntypedKey\":\"bar\",\"intUntypedKey\":2},\"unusedConfig\":{\"stringTypedKey\":\"foo\",\"intUntypedKey\":2},\"live\":false,\"sealed\":false}");
ConfigBag in = (ConfigBag) deser(out);
// used and unused is serialized
Asserts.assertSize(in.getUnusedConfig(), 2);
Asserts.assertEquals(in.getAllConfig(), bag.getAllConfig());
}
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]