I have a configuration type that has a fragment in it as shown below. @ProviderType @ObjectClassDefinition(name = "Provider Configuration") public @interface MetricProviderConfig { String schedule() default "0"; }
If the associated property in a .cfg file exists but has no value, as in: schedule = I get the null string "" as opposed to the default which is what I would expect. While this is preferable to a null, which I got at some on some earlier Karaf release, I would think that you'd get the default whether the property didn't exist or existed with no value. Another comment, which perhaps is more general to OSGi in this area, is that properties aren't trimmed. I honestly can't think of a use case where somebody would want trailing white space passed in. Also, if the configuration type exposes an enumeration, an error occurs. @ProviderType @ObjectClassDefinition(name = "Provider Configuration") public @interface MetricProviderConfig { MyEnum enumValue() default MyEnum.ENUM_VALUE; } So the first property below works, but the second one doesn't. Is this by design? enumValue = ENUM_VALUE enumValue = ENUM_VALUE Regards, Scott