OK - will do - just found one little bug which I'll remove first...

Cheers,
Gavin.

-----Original Message-----
From: Aslak Hellesøy [mailto:aslak.hellesoy@;netcom.no] 
Sent: Friday, 8 November 2002 11:45 AM
To: Gavin Hughes; [EMAIL PROTECTED]
Cc: Shaun Kelly
Subject: RE: [Middlegen-user] Value Objects and Middlegen


Hi Gavin,

We really appreciate your contribution! -But contribution on email will evaporise in 
our hot mail boxes. Could you please repost your code/explanation as a patch on SF?

http://sourceforge.net/tracker/?group_id=36044&atid=415992

Cheers,
Aslak

> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:middlegen-user-admin@;lists.sourceforge.net]On Behalf Of Gavin 
> Hughes
> Sent: 8. november 2002 01:12
> To: [EMAIL PROTECTED]
> Cc: Shaun Kelly
> Subject: RE: [Middlegen-user] Value Objects and Middlegen
>
>
>
> We've been doing a bit more work on this here - if any of this is 
> useful and someone wants to include it into Middlegen then feel free 
> to use whichever bits you like - the code is still a bit ugly in 
> places I'm afraid.
>
> The change I mentioned in the original message generates Value objects 
> that only contain the CMP fields (which means they aren't that 
> different to data objects).
>
> We've done some further modifications now that include CMR fields in 
> the value objects as well.
>
> The changes are larger than the previous set, and involve the 
> following files :
>
> -  nrma-entity-cmp-20.vm   - CMP template file (derived from
> entity-cmp-20.vm)
> -  NrmaEntityPlugin.java   - CMP plugin (extends the CMP20 plugin)
> -  NrmaEntityTable         - (extends Entity20Table)
> -  nrma-details-object.vm  - template file for Details objects
>
> Plugin
> ------
>
> The Plugin class uses a few new parameters that are specified when it 
> is invoked in the Ant task :
>
>   valueObjectPackage specifies the package that Value objects are to 
> be placed in
>
>   detailsObjectPackage specifies the package that Details objects are 
> placed in
>
> There should be a parameter to specify the Value object base class as 
> well (currently its hard coded into the CMP template).
>
> The Plugin class specifies that NrmaEntityTable represents the table 
> data passed to the velocity templates - this Table class contains a 
> number of new methods that
> let us get various names required for specifying the Value object
> to be generated
> in the template.
>
> The Plugin class generates "Details" objects that are simple wrappers 
> for Value objects. We use these for debugging - the toString method is
> edited to print out
> whatever information we think is necessary - including CMR
> information, which the
> XDoclet generated Value object doesn't do. These are generated in
> the same directory
> as the Bean classes, which isn't so good if the package specified
> for them is not
> the same as the bean package - haven't found a way around this
> yet. They aren't used
> by any of the generated code so you can ignore them if you wish.
>
> Value object changes to the template
> ------------------------------------
>
> Look at the template file for all the value object changes - XDoclet 
> @ejb.value-object tags are now included on all CMP and CMR fields.
>
> One "match" value named "all" is used for all fields - this results in 
> a single Value object being generated for each Bean that contains all 
> the fields and
> relationships on the Bean.
>
> The pattern followed is a little different in intent to what seems to 
> be the standard XDoclet mechanism of defining particular Value object
> trees (each with
> its own "match" name) for different scenarios.
>
> As there is no simple way of defining these, one Value object class is 
> much easier to generate. In any case, I find the standard mechanism
> very unwieldy
> for complex trees - instead I use a "tree builder" utility to
> generate particular
> trees at runtime that include the desired branches - have a look
> at the ValueTreeBuilder
> class attached if you are interested (its not used by any of the
> Middlegen related
> code).
>
>
> Example of invocation in build.xml
> ----------------------------------
>
> These are invoked instead of <cmp20> in the <middlegen> task :
>
>          <nrmacmp20
>             destination="${build.gen-src.dir}"
>             package="${packageRoot}.entities"
>             detailsObjectPackage="${packageRoot}.values"
>             valueObjectPackage="${packageRoot}.entities"
>             interfacepackage="${packageRoot}.entities"
>             jndiprefix="${jndiRoot}"
>             pkclass="false"
>             dataobject="true"
>             datasuffix="Details"
>             viewtype="local"
>             mergedir="${basedir}/src/middlegen"
>             readonly="false"
>             fkcmp="false"
>             guid="true">
>
>             <fileproducer
>                id="entity-cmp-20"
>                template="${basedir}/src/templates/nrma-entity-cmp-20.vm"
>             />
>
>             <jboss/>
>
>          </nrmacmp20>
>
>
> Hope that helps anyone wanting to generate full Value objects.
>
> Cheers,
> Gavin.
>
>
> -----Original Message-----
> From: Eivind Waaler [mailto:eivindw@;tihlde.org]
> Sent: Wednesday, 6 November 2002 6:45 PM
> To: Gavin Hughes
> Cc: [EMAIL PROTECTED]
> Subject: RE: [Middlegen-user] Value Objects and Middlegen
>
>
> Good work, I added a ref. to this mail thread as a feature request:
>
> http://sourceforge.net/tracker/index.php?func=detail&aid=634285&gr
> oup_id=36044&atid=415993
>
> .eivind
>
> On Wed, 6 Nov 2002, Gavin Hughes wrote:
>
> >
> > We've done a quick hack to get Middlegen to generate Value objects 
> > instead of Data objects (or to ask XDoclet to anyway).
> >
> > The change is a minor modification to the entity CMP template 
> > (entity-cmp-20.vm in the middlegen-entitybean-plugin-2.0-b2-dev.jar
> > file in lib).
> >
> > You can do this by modifying the original template or by copying it 
> > and modifying the appropriate section, then overriding the original 
> > template with your modified version. This is done by adding a 
> > <fileproducer> element within the <cmp20> element in your build.xml 
> > file :
> >
> >   <fileproducer
> >     id="entity-cmp-20"
> >     template="${basedir}/src/templates/nrma-entity-cmp-20.vm"
> >   />
> >
> > The section of the template between @ejb.bean and @ejb.finder should 
> > be changed to the following (use your own Value object base class in 
> > the "extends" attribute if you want one or just leave it empty) :
> >
> >   #if( ${plugin.dataobject} )
> >    * @ejb:value-object name="${table.beanName}"
> >    *                extends="com.nrma.values.BaseValue"
> >    *                match="*"
> >    *                instantiation="eager"
> >    *
> >   #end
> >
> > Obviously it would be better to have a different parameter 
> > specifying that value objects are generated (ie. 
> > $(plugin.valueobject)) so that you can choose one or the other. This 
> > would need some changes to one of the CMP plugin classes I think - 
> > I've got no idea which one I'm afraid...
> >
> > Cheers,
> > Gavin.
> >
> >
> > -----Original Message-----
> > From: Aslak Hellesøy [mailto:aslak.hellesoy@;netcom.no]
> > Sent: Wednesday, 6 November 2002 7:59 AM
> > To: Brian Cochran; [EMAIL PROTECTED]
> > Subject: RE: [Middlegen-user] Value Objects and Middlegen
> >
> >
> > > -----Original Message-----
> > > From: [EMAIL PROTECTED]
> > > [mailto:middlegen-user-admin@;lists.sourceforge.net]On Behalf Of 
> > > Brian Cochran
> > > Sent: 5. november 2002 05:28
> > > To: '[EMAIL PROTECTED]'
> > > Subject: [Middlegen-user] Value Objects and Middlegen
> > >
> > >
> > > Hey Aslak,
> > >    I noticed you were one of the primary contributors on Value 
> > > Objects in
> >
> > Nonono. I have never really looked into them or tried them. -Just 
> > applied some patches.
> >
> > > XDoclet. Is that as simple as I think it is as far as integrating 
> > > it into middlegen? (Drop it into the template entitiy-cmp20.vm 
> > > template. Moreover, where could I find something about the idea 
> > > behind Value Objects. (i.e what do they offer, and how do you use 
> > > them, etc.) Thanks a bunch.
> > >
> >
> > It would be great if you would do us the favour to add value-object 
> > support in middlegen. Send a diff/patch when you're done. Value 
> > object is badly documented, so be prepared to dig into XDoclet's 
> > mail archives and sources.
> >
> > > Thanks a bunch,
> > > Brian
> > >
> >
> > Cheers,
> > Aslak
> >
> > >
> > > -------------------------------------------------------
> > > This SF.net email is sponsored by: ApacheCon, November 18-21 in 
> > > Las Vegas (supported by COMDEX), the only Apache event to be fully 
> > > supported by the ASF. http://www.apachecon.com 
> > > _______________________________________________
> > > middlegen-user mailing list [EMAIL PROTECTED]
> > > https://lists.sourceforge.net/lists/listinfo/middlegen-user
> >
> >
> >
> > -------------------------------------------------------
> > This sf.net email is sponsored by: See the NEW Palm Tungsten T 
> > handheld. Power & Color in a compact size!
http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0001en
> _______________________________________________
> middlegen-user mailing list [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/middlegen-user
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by: See the NEW Palm
> Tungsten T handheld. Power & Color in a compact size! 
> http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0001en
> _______________________________________________
> middlegen-user mailing list [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/middlegen-user
>




-------------------------------------------------------
This sf.net email is sponsored by: See the NEW Palm
Tungsten T handheld. Power & Color in a compact size!
http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0001en
_______________________________________________
middlegen-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/middlegen-user

Reply via email to