Technical note: Looking at the code, I can`t see these WikiPropertyGroups
being handled anywhere. I imagine that you would have to delegate the task
of creating WikiDescriptor instances to the WikiManager which will, in
turn, be in charge of querying all the WikiPropertyGroupProviders and
populating the new WikiDescriptor with these properties before returning
it
to the caller.
You speak of WikiPropertyGroup as a storage location. However, in the
code,
I see that each provider is supposed to save the properties itself, so it
is in charge of picking a physical location for these properties to be
stored. The WikiDescriptor would only be a logical location where
applications might store and read information/properties **about** the
wiki. When an application would store a new property for a wiki in a
certain property group, that group's provider will be in charge of
physically storing the value in the location where that group's properties
are physically stored.
It would be an interesting idea, but I find that it would be much more
productive as a generic service of its own and not just limited to wikis.
It is easy to imagine the need for such a service in the case of users.
Applications might want to store/query properties for the current user,
maybe for the current space and so on. For users, right now we`re storing
stuff in the user profile. For wikis, we`d probably store it in
XWikiPreferences, SpacePreferences for spaces and so on.
Maybe something a bit like what we do with ConfiguratinSource, but
targeted
on certain entities (wikis, users, etc)
https://github.com/xwiki/xwiki-commons/blob/master/xwiki-commons-core/xwiki…
...however, what I don`t like about ConfigurationSource is that it is
ReadOnly.
Would be a shame to spend the effort and not to make it a generic
solution.
WDYT?
I think it is a good idea. But I won't have the time to do it for 5.3.
I want to continue on what I have already proposed, and we could still
make a generic solution after.
Thanks,
Louis-Marie