Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [p2-dev] making p2 metadata serializable

Tycho is expected to detect and discard incompatible cached target
platform, so automatic class version validation performed during java
deserialization is actually desired behaviour.

Tycho build target platform is a mixture or p2 and tycho objects and
java de/serialization seems like a convenient standard mechanism. I
realise it is not hard (albeit tedious) to write Tycho specific
de/serializable logic for p2 metadata but I am concerned about
maintenance of this code. When a new field is added to p2 metadata,
we'll have to somehow learn about it and update our custom
de/serializable logic accordingly. Unfortunately, most likely we won't
know about the new field until somebody runs into very hard to diagnose
cache misbehaviour.

--
Regards,
Igor

On 11-01-22 11:53 PM, Ian Bull wrote:
Hi Igor,

We talked about this last year, and the problem with serialization is
the constraints placed on the format with respect to API.  Once we
declare the p2 metadata serializable, it would seem that you could read
/ write the data without worry. However, if a new field is added to the
metadata, this assumption will break.

FWIW, a while ago I experimented with my own class structure that
mirrored the metadata (for each class associated with the p2 metadata,
there is a corresponding interface -- so this isn't too hard). I maked
these as serializable and used this format.  While it was better /
faster / smaller than the compressed XML, the results weren't that
impressive.

HTH,
Ian

On Fri, Jan 21, 2011 at 8:57 PM, Igor Fedorenko <ifedorenko@xxxxxxxxxxxx
<mailto:ifedorenko@xxxxxxxxxxxx>> wrote:

    Tycho calculates and maintains build target platform for each project
    individually. For larger builds, with tens or even hundreds of projects,
    target platform resolution becomes quite time consuming so I am looking
    for ways to optimise this. One optimisation I am considering is caching
    resolved target platform instances between re-builds of the same project
    and I was hoping to use serialization as an easy way to implement this.

    p2 metadata is part of target platform state Tycho needs to maintain and
    unfortunately p2 metadata is not serializable.

    So as the subject says, is there a chance p2 metadata will become
    serializable in 3.7 or I should look for alternative solutions?

    --
    Regards,
    Igor
    _______________________________________________
    p2-dev mailing list
    p2-dev@xxxxxxxxxxx <mailto:p2-dev@xxxxxxxxxxx>
    https://dev.eclipse.org/mailman/listinfo/p2-dev




--
R. Ian Bull | EclipseSource Victoria | +1 250 477 7484
http://eclipsesource.com | http://twitter.com/eclipsesource



_______________________________________________
p2-dev mailing list
p2-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/p2-dev


Back to the top