Re: svn commit: r911476 - /cayenne/main/trunk/framework/cayenne-tools/src/main/resources/templates/v1_2/client-datamap-superclass.vm

From: Andrey Razumovsky (razumovsky.andre..mail.com)
Date: Fri Feb 19 2010 - 02:25:36 EST

  • Next message: Andrus Adamchik: "Re: svn commit: r911476 - /cayenne/main/trunk/framework/cayenne-tools/src/main/resources/templates/v1_2/client-datamap-superclass.vm"

    If we really need to show cgen version, i'd rather we do it in templates'
    comments (##this is template for use with cgen 1.2), not in directory name.

    2010/2/19 Andrey Razumovsky <razumovsky.andre..mail.com>

    > About this commit:
    > Again, I don't know how this worked before. There's no basePackageName
    > defined for client datamap (and I think never should be - datamap generated
    > class doesn't have a superclass. maybe we should remove that row?) so
    > ImportUtils added something like ${basePackageName}.${baseClassName}. So
    > maybe we should've fixed ImportUtils behavior, but I decided to do minor
    > change for now.
    > So, in spite of it is velocity upgrade that broke the builds, our templates
    > are not perfect. Note that new templates (hopefully) will work with both
    > versions of Velocity.
    >
    > About versions:
    > I think that we don't need them. Who's using cgen 1.1 now [with Cayenne 3]?
    > Also cgen is part of Cayenne, so I'd say we have cgen 3.1 right now.
    >
    > 2010/2/19 Mike Kienenberger <mkienen..mail.com>
    >
    > Yes, we need a cgen version, although it will probably change very
    >> infrequently.
    >>
    >> No, it is not the same version as the templates. Even though Andrey
    >> had to change the templates, we do not have to change cgen itself.
    >>
    >> It's been a long time since I upgraded cgen from version 1.1 to 1.2,
    >> but basically the version determines what cgen puts into the velocity
    >> context.
    >>
    >> For cgen 1.1, I think the only thing we made available to the template
    >> was a java class instance called "classGen".
    >>
    >> For 1.2, the exposed data model was completely changed. Here's some
    >> of the variables exposed to the template (from the 1.2 standard
    >> template comments):
    >>
    >> ## objEntity - the ObjEntity class: See
    >> org.objectstyle.cayenne.map.ObjectEntity
    >> ## stringUtils - class for string "helper" functions: See
    >> org.objectstyle.cayenne.gen.StringUtils
    >> ## entityUtils - class for entity "helper" functions: See
    >> org.objectstyle.cayenne.gen.EntityUtils
    >> ## importUtils - class for import statement management: See
    >> org.objectstyle.cayenne.gen.ImportUtils
    >>
    >> So a template written against 1.1 cannot work under 1.2, nor can a
    >> template under 1.2 work under cgen 1.1.
    >>
    >> As for the confusion, if it hasn't confused anyone in several years,
    >> it's unlikely to start confusing them just because we're now on 3.1 :)
    >>
    >> However, a cgen 1.1 template can work with Velocity 1.3 or 1.6 or
    >> whatever.
    >> A cgen 1.2 template can likewise work with different versions of velocity.
    >>
    >> So someone who has a ton of velocity templates (like myself) can be
    >> assured that they don't need to be rewritten under Cayenne 3.1. Yes,
    >> we might have to tweak a couple of things here and there if we upgrade
    >> to velocity 1.6, but anyone who's maintaining their own velocity
    >> templates has pretty much been aware (for a few years now) that we
    >> were going to have to handle this at one point or another.
    >>
    >> And quite honestly, I doubt that there's really anything stopping
    >> someone from reverting back to Velocity 1.3 if they so desire.
    >> There's nothing architecturally different that I'm aware of. I
    >> haven't looked at velocity changes in a couple of years, but I'm
    >> pretty sure that velocity 1.6 is at least a couple of years old at
    >> this point.
    >>
    >> On Thu, Feb 18, 2010 at 7:42 PM, Aristedes Maniatis <ar..aniatis.org>
    >> wrote:
    >> > On 19/02/10 9:44 AM, Mike Kienenberger wrote:
    >> >>
    >> >> v1.2 is the cgen version. It's fine and doesn't need to be changed.
    >> >> We would only change that version if we did further work on the cgen
    >> >> engine.
    >> >
    >> > End users will probably confuse 1.2 with the Cayenne 1.2 release version
    >> > number.
    >> >
    >> > * why do we have a version at all? Surely the templates which ship with
    >> > Cayenne 3.1 are the templates which work with 3.1. Should the user be
    >> given
    >> > the choice to use version 1.1 templates or 1.2 templates, when only the
    >> 1.2
    >> > templates will work.
    >> >
    >> > * Andrey just introduced a change which makes the templates non-backward
    >> > compatible. So if we keep the versioning, we should move to 1.3 to
    >> identify
    >> > to the user that things have changed.
    >> >
    >> >
    >> >
    >> > Ari
    >> >
    >> > --
    >> > -------------------------->
    >> > Aristedes Maniatis
    >> > GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A
    >> >
    >>
    >
    >
    >
    > --
    > Andrey
    >

    -- 
    Andrey
    



    This archive was generated by hypermail 2.0.0 : Fri Feb 19 2010 - 02:26:29 EST