[ome-devel] model description driven code generation

josh.moore at gmx.de josh.moore at gmx.de
Mon Jul 6 10:31:26 BST 2009

re-send & reply.

zag at crs4.it writes:
 > > A few words of warning:
 > > 
 > >   1) though the OME-Perl server was built with exactly this use in
 > >   mind, and OMERO was _originally_ built to include it, we've made
 > >   other design decisions since then. By doing this, you are breaking
 > >   API compatibility with the official clients, and will have to
 > >   package your own. Similarly, your clients will not be able to work
 > >   with the official server.
 > Does this mean that adding a new model has side effects on the code
 > generated for the others? If so, how?

By modifying the model, you are changing the on-wire binary
representation. It *might* be possible, if you are very careful, to
create a model that would work in with server/client hybrids. But I
don't think so. My experience is that model changes will break
communication. To understand why, imagine adding the type:

 class MySuperAnalysis {

    private long valueA;
    private long valueB;
    // etc.

and then the relation:


what is a client to do with all the bytes which make up
mySuperAnalysis as they come over the wire?

 > >   2) in the mid-term, we will be trying to move the code generation to
 > >   no longer use the files under model/resources/mappings, and instead
 > >   to use the XSD definitions directly. If you begin to build
 > >   significant infrastructure based on this code generation, we may
 > >   should talk first.
 > This is rather interesting, since what we will try to do is to put in
 > some OpenEHR derived objects. We did write some time ago a ADL (the
 > model description language used to describe OpenEHR 'models') to XSD
 > converter: it was an ugly piece of code, but we did learn something and
 > we can probably rewrite it better now. In the code generation, are you
 > also considering the production of automatic object validators?

Yes, to some degree.

 > > If the above isn't enough to scare you away and you'd still like more
 > > information, ping me and I'll setup a wiki page on the trac. 

 > Please do setup the wiki page :-).
 > --gianluigi

Will do.

More information about the ome-devel mailing list