> So I don't agree with > > The point that we for the writeback don't > > convert is hence, technically, a bug.
It is - assuming we hold our documentation to be the source of what we support :-). > I would rather say the opposite: Write back and in general the .config file > format supports almost all types (despite the documentation) except for the > edge cases listed above. I would agree in general if we would have documented that we support the config file format - as long as we document our own format we can hardly mix the two. > So I see actually only two issues here: > 1) Document how to deploy object arrays via .config files We already have that documented. I think you want to say: change the documentation to be about a full configuration admin .config. > 2) Create issue for the not-yet supported edge cases of the write back (or > rather the underlying Felix Configuration Handler), but I don't think it is > worth actually fixing those, as those are really edge cases Yes, that is one possibility. However, I still think it would be a mistake to take our current definition (which is ok as far as I can see) and turn it into something else that we then don't fully support just because we have a writeback that isn't following our own definition to being with - no? regards, Karl > Does that make sense? > Konrad > > > > On 5. Mar 2019, at 13:58, Karl Pauls <karlpa...@gmail.com> wrote: > > > > Again, there are several angles We have something documented in > > sling. That is only talking about a capital "I" for object array and > > points to the felix config impl that will take an object array and > > serialize with an "I". The point that we for the writeback don't > > convert is hence, technically, a bug. > > > > We can desite that we want to change what we support and that would be > > fine by me. All I'm pointing out is that even if we do that, we still > > have something that doesn't seem sound if all we do is adding > > lowercases to the allowed types.We might not care or we might try to > > come up with a new definition (and add some backwards compatibility > > around it). > > > > That said, it seems like yes, we might want to consider to say: > > allowed types are upper and lower case array of primitives which will > > both result in a primitive array but the normative version is the > > lower case and we will backward compat exiting configs with object > > arrays to the new way (which would match what we have right now for > > the most part - except that we only do the bc conversion if the > > webconsole has been used). However, alternatively we could just fix > > the writeback to convert to none primitive array. I don't feel > > strongly about it - just trying to point out what I see. > > > > Wrt. the metatype spec, yes, it seems like it should be primitive or > > list of things - not sure I would add that to the supported types > > (seems like a head-age nobody is asking for - but YMMV), afaik, we > > don't really claim it has something todo with the metatype in the > > documentation. > > > > regards, > > > > Karl > > > > On Tue, Mar 5, 2019 at 12:35 PM Konrad Windszus <konra...@gmx.de> wrote: > >> > >> Slight correction > >> a Collection of Objects is supposed to be serialized e.g. as I(1,2) > >> > >> I am wondering under which circumstances an array of Objects, e.g. I[1,2] > >> is being emitted? > >> > >> > >>> On 5. Mar 2019, at 12:28, Konrad Windszus <konra...@gmx.de> wrote: > >>> > >>> Well, if I read the OSGi metatype spec correctly > >>> (https://osgi.org/specification/osgi.cmpn/7.0.0/service.metatype.html#org.osgi.service.metatype.annotations.AttributeType) > >>> it is supposed to be a primitive array (serialized e.g. as i[1,2]) for a > >>> positive cardinality and a Collection of Objects (serialized e.g. as > >>> I[1,2]) for a negative cardinality. > >>> AFAICT the write back behaves accordingly to that spec, i.e. it will only > >>> emit primitives for types having a positive cardinality and otherwise an > >>> array of proper classes. > >>> > >>> Is that a wrong understanding? > >>> Konrad > >>> > >>>> On 5. Mar 2019, at 09:21, Karl Pauls <karlpa...@gmail.com> wrote: > >>>> > >>>> I think the writeback is a bug as it stands right now. AFAICS, the > >>>> webconsole always converts arrays to primitive arrays and the > >>>> writeback just serialises what is there as is. Given that the > >>>> documentation only mentions a capital "I", the writeback should be > >>>> converting primitive arrays before writing back. > >>>> > >>>> I don't mind changing the documentation to allow lower case "i" as > >>>> well - assuming that really already works in all places - however, it > >>>> will cause some inconsistencies because if you then put a config in > >>>> the repository with a capital "I" it will first create a config with a > >>>> none primitive array. Next, if you modify it using the webconsole it > >>>> will turn into a primitive array which will be written back as lower > >>>> case "i". Not sure that is a real problem but it is somewhat confusing > >>>> as the config in the repository now has a lower case "i". > >>>> > >>>> In other words, I think we are really talking about two things - a bug > >>>> in the writeback and a potential broadening of the supported types. > >>>> > >>>> regards, > >>>> > >>>> Karl > >>>> > >>>> On Mon, Mar 4, 2019 at 7:06 PM Carsten Ziegeler <cziege...@apache.org> > >>>> wrote: > >>>>> > >>>>> +1 its always good to document reality...unless its a bug of course :) > >>>>> > >>>>> Carsten > >>>>> > >>>>> > >>>>> Georg Henzler wrote > >>>>>> If it works I'm +1 to document it... > >>>>>> > >>>>>> On 2019-02-27 14:15, Konrad Windszus wrote: > >>>>>>> Despite the documentation at > >>>>>>> https://sling.apache.org/documentation/bundles/configuration-installer-factory.html#configuration-files-config > >>>>>>> > >>>>>>> <https://github.com/apache/felix/blob/trunk/configadmin/src/main/java/org/apache/felix/cm/file/ConfigurationHandler.java> > >>>>>>> > >>>>>>> also primitive types are supported (with lower-case type information > >>>>>>> characters, compare with > >>>>>>> https://github.com/apache/felix/blob/ad2aabb04c754f86c6417c437256500dd61a4ffb/configadmin/src/main/java/org/apache/felix/cm/file/ConfigurationHandler.java#L92). > >>>>>>> > >>>>>>> Is there a reason why this is not documented? > >>>>>>> AFAIK the lowercase is also used for the JCR Installer write back, > >>>>>>> e.g. in case the metatype defines something like "<AD id="levels" > >>>>>>> type="Integer" cardinality="2147483647" name="Absolute Levels" > >>>>>>> description="List of absolute parent levels. Example: Absolute parent > >>>>>>> level 1 of '/foo/bar/test' is '/foo/bar'."/>" > >>>>>>> > >>>>>>> In case the cardinality is a large positive integer it is always > >>>>>>> supposed to be an array of primitives (compare with > >>>>>>> https://osgi.org/specification/osgi.cmpn/7.0.0/service.metatype.html#org.osgi.service.metatype.annotations.AttributeType). > >>>>>>> > >>>>>>> Does anything speak against extending that documentation in that > >>>>>>> regard? > >>>>>>> > >>>>>>> Thanks, > >>>>>>> Konrad > >>>>> -- > >>>>> Carsten Ziegeler > >>>>> Adobe Research Switzerland > >>>>> cziege...@apache.org > >>>> > >>>> > >>>> > >>>> -- > >>>> Karl Pauls > >>>> karlpa...@gmail.com > >>> > >> > > > > > > -- > > Karl Pauls > > karlpa...@gmail.com > -- Karl Pauls karlpa...@gmail.com