> 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

Reply via email to