Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


Hi,

Yes, this is indeed a bit of a tragedy.  The relevant UNO types and
services bootstrapping code is very old, and concepts are tightly
knit together there, and whenever you want to change something you risk
backwards incompatibility. 

Backwards compatibility to whom ? Binaries ? Source ? User data ?

At the heart of the matter there is the old binary "store" file
structure and the XRegistry interface on top of it.  At runtime, both
all the UNO type information (scattered across a number of binary rdb
files) and all the UNO service information (scattered across a number
of rdb files that used to be binary but have been mostly changed to XML
now) are represented by a single XRegistry instance each.

What kind of data do these files hold ?
Is that data somewhat changed after build or does it remain constant ?

The way the respective information is represented in the XRegistry
interface simply corresponds to the way the information is stored in
the binary rdb files.

How is that data structured ? How is it accessed, by whom ?
It is ro or rw data ?

Perhaps it could make sense to design a new interface and step by step
get rid of the old one ?

Hence, for example information about a UNO interface type
com.sun.star.foo.XBar is stored in a nested "folder" with path
com - sun - star - foo - XBar, containing little blobs of information
about the type's ancestors, its methods, etc. 

Does that type name necessarily have to have path semantics, or
would a "flat" string key also be fine ?

As there are typically multiple rdb files containing types resp.
services (URE specific, LO specific, from extensions, ...), but they
need to be represented by a single XRegistry instance, so "nested
registries" were invented.  They effectively form a linear list of
chaining XRegistry instances together.  Whenever a path needs to be
looked up in the top-level registry, it effectively searches through
the linear list of nested registries.

Does this nested XRegistry have mounting or union semantics ? Or both ?
Can we compile that splitted registry into a big one ?

When I introduced XML service rdbs, I sort of chickened out (see
above for rationale) and put them behind an XRegistry facade, so that they
would seamlessly integrate with the existing mess.  I postponed
systematic clean-up to the pie-in-the-sky days of LO 4 (or, "once
we'll become incompatible with OOo," as the phrase used to be back then).

Which kind of incompatibility would happen exactly ?


cu

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.