> On 14. Mar 2019, at 10:19, Karl Pauls <karlpa...@gmail.com> wrote: > >> 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 :-). Since the implementation was there first before Carsten added the documentation I would rather say it is a documentation issue.
> >> 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. Where is the config file format documented at Felix? > >> 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. > Sorry, I meant primitive arrays of course >> 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 <mailto:karlpa...@gmail.com>