[transfer-dev] Re: is there an issue with the codegen abstractbasegenerator's use of structCopy() in CF9

2010-03-19 Thread Adam Drew
Thanks Mark. I book marked the adobe bug tracker.. seems like it might
come in handy when researching these issues before posting to fw
lists.

Guess I'll just keep the state=duplicate(arguments); change I had made
in my copy of the framework until something happens with this bug..
just gotta remember to use my svn url on a new deployment and not the
public one.


On Mar 17, 4:38 pm, Mark Mandel mark.man...@gmail.com wrote:
 Sorry about the late reply.

 Looks like this is a bug in CF9 that they are looking at fixing.

 http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html#...

 Just got the email:
 *
 The bug entered on Thursday, July 23, 2009 has been marked verified by Adobe
 ColdFusion Team.

 This means Adobe ColdFusion Team has verified the behavior you've observed.

 (If this email is addressed to you directly, you've logged this bug.
 Otherwise, you've subscribed to this bug through the Adobe beta site and are
 receiving a BCC.)

 Targeted for: ColdFusion 9.0.1, Beta 1

 Note:  Any targeting information included above is an estimate.  Targeting
 can change during the course of bug triage.

 Product Area:  CFML Function (General)
 Severity: 6 - Low (Easy workaround  only affects small group)
 Description:  Doing a StructCopy() on the arguments scope doesn't return a
 copy of the arguments scope - it simply returns the arguments scope.This is
 very confusing, as changes to the returned struct from StructCopy() also
 occur on the arguments scope, as it is a reference.
 *



 On Sat, Mar 13, 2010 at 7:43 AM, Adam Drew epne...@gmail.com wrote:
  Mark,

  Just curious if you've encountered this issue..

  on like 87 of the AbstractBaseGenerator you use structCopy() to set
  the local state from the agruments.. then later you delete two
  arguments (path, and escapeCFML) from that state struct.. however, it
  then goes on to throw an escapeCFML not found in arguments error on my
  CF9 apps unless i change that to a Duplicate(arguments)..

  is this a known issue or could it be something else?

  regards,

  Adam Drew

  --
  Before posting questions to the group please read:

 http://groups.google.com/group/transfer-dev/web/how-to-ask-support-qu...

  Try out the new Transfer ORM Custom Google Search:
 http://www.google.com/cse/home?cx=002375903941309441958:2s7wbd5ocb8

  You received this message because you are subscribed to the Google Groups
  transfer-dev group.
  To post to this group, send email to transfer-dev@googlegroups.com
  To unsubscribe from this group, send email to
  transfer-dev+unsubscr...@googlegroups.comtransfer-dev%2bunsubscr...@googlegroups.com
  For more options, visit this group at
 http://groups.google.com/group/transfer-dev?hl=en

 --
 E: mark.man...@gmail.com
 T:http://www.twitter.com/neurotic
 W:www.compoundtheory.com

 Hands-on ColdFusion ORM Training @ cf.Objective() 
 2010www.ColdFusionOrmTraining.com/

-- 
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer

Try out the new Transfer ORM Custom Google Search:
http://www.google.com/cse/home?cx=002375903941309441958:2s7wbd5ocb8

You received this message because you are subscribed to the Google Groups 
transfer-dev group.
To post to this group, send email to transfer-dev@googlegroups.com
To unsubscribe from this group, send email to 
transfer-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/transfer-dev?hl=en

To unsubscribe from this group, send email to 
transfer-dev+unsubscribegooglegroups.com or reply to this email with the words 
REMOVE ME as the subject.


[transfer-dev] is there an issue with the codegen abstractbasegenerator's use of structCopy() in CF9

2010-03-12 Thread Adam Drew
Mark,

Just curious if you've encountered this issue..

on like 87 of the AbstractBaseGenerator you use structCopy() to set
the local state from the agruments.. then later you delete two
arguments (path, and escapeCFML) from that state struct.. however, it
then goes on to throw an escapeCFML not found in arguments error on my
CF9 apps unless i change that to a Duplicate(arguments)..

is this a known issue or could it be something else?


regards,

Adam Drew

-- 
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer

Try out the new Transfer ORM Custom Google Search:
http://www.google.com/cse/home?cx=002375903941309441958:2s7wbd5ocb8

You received this message because you are subscribed to the Google Groups 
transfer-dev group.
To post to this group, send email to transfer-dev@googlegroups.com
To unsubscribe from this group, send email to 
transfer-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/transfer-dev?hl=en


[transfer-dev] Re: CF9

2009-07-27 Thread Adam Drew

 Alternatively, has anyone given considering to turning transfer into a
 wrapper about CF9's inbuilt hibernate support to allow a migration
 path?

 That would be tricky, considering they work in some pretty significantly
 different ways, including but not limited to configuration.


Although I have not thought about using Transfer to wrap CF9 ORM in
any way shape or form.. I do plan on using Transfer's codegen to dupe
my objects for use with CF9 ORM. This is based on some work I had been
doing with odegen for decorators, ddl, and xml templates just prior to
the release of CF9 beta.. now seeing the cf9 orm implementation, I
still still find value in using Transfer as the shoe fits...

I believe one could create an abstract ORM layer which supports both
ORMs in any of your applications mainly by rolling some orm factory/
service/gateway combo with some codegen templates for each ORM.. then
some application.cfc logic to determine which ORM to generate for and
load up based on the server version in use, but maybe I'm am crazy.

I will deploy on CF9  ORM and want to take full advantage of it's
benefits within my application, but maybe a client is on CF8 or even
CF7(argh).. So wherever possible I would like to have the same
frameworks  behind both versions of my application, and I really
think Transfer will help me realize this and continue to play a
significant role in my applications architecture going forward...

From what I have seen recently I get the feeling that all things CF
ORM are going to start boiling real soon.. I just hope we can keep
things in context. CF9 is amazingly good.. but so is Transfer...
Yet, neither techonlogy will help you if you do not understand when
you should be using a o2m, m2o, m2m, or a o2o, bi-m2m...  I still find
this hard to nail down in some of my more complex models...
Just imagine all the CF people who have never used an ORM before and
are going to be getting started with CF9-Hibernate..

They are going to end up relying on Transfer's users for these
answers... as I already know this group has been a invaluable resource
for me... I just wanted to say, thanks people!
--~--~-~--~~~---~--~~
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer

You received this message because you are subscribed to the Google Groups 
transfer-dev group.
To post to this group, send email to transfer-dev@googlegroups.com
To unsubscribe from this group, send email to 
transfer-dev-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/transfer-dev?hl=en
-~--~~~~--~~--~--~---



[transfer-dev] Re: transfer.codegen (BER)

2009-06-14 Thread Adam Drew

gen:commentComment Text Here/gen:comment

Which would generate the comment text wrapped with the getCommentStart
() and getCommentEnd() tags

!--- Comment Text Here ---
or
!-- Comment Text Here --
or
/* Comment Text Here */


Anyways, I'm not really sure that I really *need* this at this point
since I could just type out the comments normally in the template.. I
was thinking it would be nice to have in a gen:comment since my
generators already know what the comment start and end looked like.




On Jun 13, 6:19 pm, Mark Mandel mark.man...@gmail.com wrote:
 Adam,

 I'm not 100% sure what you are talking about could you give me an
 example?

 Are you saying you want a standard Template comment? i.e. a comment syntax
 that is always ignored in the template?

 Mark

 On Sun, Jun 14, 2009 at 12:55 AM, Adam Drew epne...@gmail.com wrote:

  Mark,

  I feel like I need a comment tag for the templates so that whatever
  comment method is being used by my generator is used in the template..
  in this way I could standardize my template writing regardless if I'm
  wrighting CFCs, CFMs, XMLs, or DDLs,.. I'm going to review the block,
  compact, and template tags to see if i am missing something and come
  up with the answer on my own.. but let me know if I am missing
  something or if you have any thoughts about this.

  AD

 --
 E: mark.man...@gmail.com
 W:www.compoundtheory.com
--~--~-~--~~~---~--~~
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer

You received this message because you are subscribed to the Google Groups 
transfer-dev group.
To post to this group, send email to transfer-dev@googlegroups.com
To unsubscribe from this group, send email to 
transfer-dev-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/transfer-dev?hl=en
-~--~~~~--~~--~--~---



[transfer-dev] Re: transfer.codegen (BER)

2009-06-14 Thread Adam Drew

To be more specific, here is a dump of the type of precision data i'm
looking to use with the DDL

struct
CHAR_OCTET_LENGTH   0
COLUMN_DEFAULT_VALUE[empty string]
COLUMN_NAME id
COLUMN_SIZE 18
DECIMAL_DIGITS  0
IS_FOREIGNKEY   NO
IS_NULLABLE NO
IS_PRIMARYKEY   YES
ORDINAL_POSITION1
REFERENCED_PRIMARYKEY   N/A
REFERENCED_PRIMARYKEY_TABLE N/A
REMARKS [empty string]
TYPE_NAME   numeric() identity
--~--~-~--~~~---~--~~
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer

You received this message because you are subscribed to the Google Groups 
transfer-dev group.
To post to this group, send email to transfer-dev@googlegroups.com
To unsubscribe from this group, send email to 
transfer-dev-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/transfer-dev?hl=en
-~--~~~~--~~--~--~---



[transfer-dev] Re: transfer.codegen (BER)

2009-06-13 Thread Adam Drew

To follow up on topic..   I got my xml generator working beautifully
by overloading the init() function and setting setCommentStart(! 
--);  .. I ended up creating an AbstractXMLGenerator which I extend
myself for the different types of xml config I need for my forms,
validations, searchs, audits, and many other areas of object specific
metadata configurations...

Now I'm thinking that to be able to generate DDL based on Transfer.XML
seams to be the next logical step for me because basically right now I
am doing the complete reverse of that process with an cb interceptor
and a set of Service/Gateway objects.. I created a CFDatasourceGateway
which uses DBInfo based on the concepts found in the TransferConfig
project, and I have my TranseferConfigService use it to generate me
some transfer.xml based on some specific conventions I've used in my
SQL database.  This introspects the DB and generates the
transfer.xml (w/Packages, M2O, O2M + M2M Relationships)... The next
interceptors loads Transfer and runs my generators based on that

So if I could implement a DDL generator in addition this would allow
me to either build the database up in SQL with my abstract model
conventions and then generate my transfer.xml from that.. or just
build my transfer.xml and then generate the database based on that...
either way, having this ability to go either way with the development
process would be nothing short of sick...

I will post any progress on the subject, Thanks for the suggestions.

-Adam

On Jun 12, 9:21 pm, Mark Mandel mark.man...@gmail.com wrote:
 A side note on all this... if anyone wants to write a generator to output
 DDL table generation based on Transfer meta data... that would be pretty
 cool ;o)

 Mark



 On Fri, Jun 12, 2009 at 10:20 AM, Adam Drew epne...@gmail.com wrote:

  But what IF you have the cb app redirect the client to the static
  ColdDoc URL no matter what.. the afterConfigurationLoad interceptor
  would *update* the ColdDoc's static BER folder before redirecting the
  client there... and all you would have to do after a significant API
  change was restart the public CB app with a fwreinit password. Maybe I
  had tooo much Hop Stooopid tonight.

  On Jun 11, 8:11 pm, Mark Mandel mark.man...@gmail.com wrote:
   Because ColdDoc does static generation of the HTML files, not a runt time
   generation.

   Could always do it on a scheduled task I guess... ;o)

   Mark

   On Fri, Jun 12, 2009 at 10:04 AM, Adam Drew epne...@gmail.com wrote:

nvm.. i know what codldoc is cause i am using it...I was over reading
your statement but seriously now.. with thinking about this
quickly ... couldn't I set up a lightweight coldbox app to introspect
my SVN repsoitory, check out the latest trunk to a secured current
ber folder, in order to then have ColdDoc load and display the
API? .. basically afterConfigurationLoad If my SVN trunk revision is
greater then that of the local working copy (publicy documented
version) for my current BER, then update the working copy before
loading ColdDoc

On Jun 11, 7:44 pm, Adam Drew epne...@gmail.com wrote:
 ColdDoc..? Is this a Mark+Luis project happening under my radar?
   What
 i mean is who is the *we* you reference with the ColdDoc and what is
 the problem with the BER? I have been playing with some java SVN
 component that lets me introspect Trunks, Branches and Tags and the
 whole self documenting SVN concept is pretty interesting to me.. I
 would love to see more resources!

 I'll let you know if anything comes up with my codegen experiance.. I
 have written 3 custom generators at this point.. a
 DecoratorGenerator, ServiceGenerator, GatewayGenerator.. and
  now
 I've begun my MetadataGenerator... it's kinda clear for me at this
 point what i need to do.. My concern was the handling of the CFML
 comment in XML .. I had previously gone through the
 AbstractBaseGenerator (actually first thing).. but some how
  overlooked
 the idea that that i could just setCommentStart() and setCommentEnd
 ()..

 Now I am wondering should I do this in my run() implementation or do
  I
 override the init() caling super.init() so I can then setCommentStart
 () and setCommentEnd()?

 -AD

 On Jun 11, 7:14 pm, Mark Mandel mark.man...@gmail.com wrote:

  No worries!

  Let me know if you run into any issues.

  Mark

  On Fri, Jun 12, 2009 at 9:12 AM, Adam Drew epne...@gmail.com
  wrote:

   This is why your the man.. because you knew what i wanted and you
gave
   it right to me..

   The two things you should probably take note of :

   In the init() of the AbstractBaseGenerator, you can see where I
  have:
          setCommentStart(!  ---);
          setCommentEnd(---);

   THANKS.

   On Jun 11, 7:05 pm, Mark Mandel mark.man...@gmail.com wrote:
Ah very nice!

This would be easier

[transfer-dev] Re: transfer.codegen (BER)

2009-06-13 Thread Adam Drew

Mark,

I feel like I need a comment tag for the templates so that whatever
comment method is being used by my generator is used in the template..
in this way I could standardize my template writing regardless if I'm
wrighting CFCs, CFMs, XMLs, or DDLs,.. I'm going to review the block,
compact, and template tags to see if i am missing something and come
up with the answer on my own.. but let me know if I am missing
something or if you have any thoughts about this.

AD
--~--~-~--~~~---~--~~
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer

You received this message because you are subscribed to the Google Groups 
transfer-dev group.
To post to this group, send email to transfer-dev@googlegroups.com
To unsubscribe from this group, send email to 
transfer-dev-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/transfer-dev?hl=en
-~--~~~~--~~--~--~---



[transfer-dev] transfer.codegen (BER)

2009-06-11 Thread Adam Drew

Hey Mark,

I started playing with the transfer.codegen functionality in the BER
in an attempt to replace my current usage of TransferConfig+Illudium
PU-36 (riaforge) by implementing a chain of Coldbox Interceptors that
have my special layer to do some *active* codegen during a CB+Transfer
+CS app start up (afterConfigurationLoad + afterAspectsLoad  if dev =
true).

I am currently generating concrete objects for my abstract decorators,
gateways and services using the method described above and each of
these are working as expected, and beautifully I might add..
especially with the protected block feature allowing me to re-generate
the *protected* functions in my concrete CFCs as I refine a specific
domain model, all the while leaving the *custom* code in my concrete
objects alone... anyone can say what they want about the practice...
but this really makes me happy :)

Now, I want to generate some custom/specific metadata to use with say
ValidateThis!, Majik, or for that matter any other library, toolkit,
framework, et al..)  using the transfer object metadata and other
information i've gathered up during the interceptor chain with my
services + factories...

I have not tried to generate any XML yet as I just started writing the
generator, and then began a template and started to think.  I have
reviewed the codegen doc (WIP), and honestly, I have not gone through
the source enough to answer the following questions so, as I work
things out here, I was hoping that maybe you could confirm for me if
things should function the same when generating XML files as with CFCs
in my custom generator?  Should my template be named *.xml .. and my
generator write *.xml... Will protected blocks work? ect.

Thanks in advance for considerations extended, and for such an AMAZING
addition to our toolkit.
--~--~-~--~~~---~--~~
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer

You received this message because you are subscribed to the Google Groups 
transfer-dev group.
To post to this group, send email to transfer-dev@googlegroups.com
To unsubscribe from this group, send email to 
transfer-dev-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/transfer-dev?hl=en
-~--~~~~--~~--~--~---



[transfer-dev] Re: transfer.codegen (BER)

2009-06-11 Thread Adam Drew

This is why your the man.. because you knew what i wanted and you gave
it right to me..

The two things you should probably take note of :

In the init() of the AbstractBaseGenerator, you can see where I have:
setCommentStart(!  ---);
setCommentEnd(---);



THANKS.


On Jun 11, 7:05 pm, Mark Mandel mark.man...@gmail.com wrote:
 Ah very nice!

 This would be easier, if we had ColdDoc for the BER release, but I haven't
 worked out the best way to do that...

 Where you want to be looking is the AbstractBaseGenerator - as this is what
 you will be extending.

 Writing your own Generators, you will have to look through the code a bit,
 as it is the best resource for doing this sort of stuff.

 The two things you should probably take note of :

 In the init() of the AbstractBaseGenerator, you can see where I have:
         setCommentStart(!  ---);
         setCommentEnd(---);

 This is where you can tell the generator what code comments look like in
 whatever you are generating, so you may want to override these in your
 generator, as you are generting XML and probably want --! and -- rather
 than the extra -

 The other thing to look at - check out the API for writeTemplate(), since
 you are generating XML, you can tell it to escapeCFML=false, so that you
 don't have to use the $$ and {{ and }} syntax - although, maybe for XML you
 may want to leave that capability, I'll leave that up to you.

 Other than that - protected block should still work, and as long as you have
 writeTemplate() point to XML files, it will write XML files.

 Have a look at the source for the Decorator generator, and the API for the
 AbstractBaseGenerator - it should be pretty clear (hopefuly).

 Mark



 On Fri, Jun 12, 2009 at 8:54 AM, Adam Drew epne...@gmail.com wrote:

  Hey Mark,

  I started playing with the transfer.codegen functionality in the BER
  in an attempt to replace my current usage of TransferConfig+Illudium
  PU-36 (riaforge) by implementing a chain of Coldbox Interceptors that
  have my special layer to do some *active* codegen during a CB+Transfer
  +CS app start up (afterConfigurationLoad + afterAspectsLoad  if dev =
  true).

  I am currently generating concrete objects for my abstract decorators,
  gateways and services using the method described above and each of
  these are working as expected, and beautifully I might add..
  especially with the protected block feature allowing me to re-generate
  the *protected* functions in my concrete CFCs as I refine a specific
  domain model, all the while leaving the *custom* code in my concrete
  objects alone... anyone can say what they want about the practice...
  but this really makes me happy :)

  Now, I want to generate some custom/specific metadata to use with say
  ValidateThis!, Majik, or for that matter any other library, toolkit,
  framework, et al..)  using the transfer object metadata and other
  information i've gathered up during the interceptor chain with my
  services + factories...

  I have not tried to generate any XML yet as I just started writing the
  generator, and then began a template and started to think.  I have
  reviewed the codegen doc (WIP), and honestly, I have not gone through
  the source enough to answer the following questions so, as I work
  things out here, I was hoping that maybe you could confirm for me if
  things should function the same when generating XML files as with CFCs
  in my custom generator?  Should my template be named *.xml .. and my
  generator write *.xml... Will protected blocks work? ect.

  Thanks in advance for considerations extended, and for such an AMAZING
  addition to our toolkit.

 --
 E: mark.man...@gmail.com
 W:www.compoundtheory.com
--~--~-~--~~~---~--~~
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer

You received this message because you are subscribed to the Google Groups 
transfer-dev group.
To post to this group, send email to transfer-dev@googlegroups.com
To unsubscribe from this group, send email to 
transfer-dev-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/transfer-dev?hl=en
-~--~~~~--~~--~--~---



[transfer-dev] Re: transfer.codegen (BER)

2009-06-11 Thread Adam Drew

ColdDoc..? Is this a Mark+Luis project happening under my radar?  What
i mean is who is the *we* you reference with the ColdDoc and what is
the problem with the BER? I have been playing with some java SVN
component that lets me introspect Trunks, Branches and Tags and the
whole self documenting SVN concept is pretty interesting to me.. I
would love to see more resources!

I'll let you know if anything comes up with my codegen experiance.. I
have written 3 custom generators at this point.. a
DecoratorGenerator, ServiceGenerator, GatewayGenerator.. and now
I've begun my MetadataGenerator... it's kinda clear for me at this
point what i need to do.. My concern was the handling of the CFML
comment in XML .. I had previously gone through the
AbstractBaseGenerator (actually first thing).. but some how overlooked
the idea that that i could just setCommentStart() and setCommentEnd
()..

Now I am wondering should I do this in my run() implementation or do I
override the init() caling super.init() so I can then setCommentStart
() and setCommentEnd()?

-AD


On Jun 11, 7:14 pm, Mark Mandel mark.man...@gmail.com wrote:
 No worries!

 Let me know if you run into any issues.

 Mark



 On Fri, Jun 12, 2009 at 9:12 AM, Adam Drew epne...@gmail.com wrote:

  This is why your the man.. because you knew what i wanted and you gave
  it right to me..

  The two things you should probably take note of :

  In the init() of the AbstractBaseGenerator, you can see where I have:
         setCommentStart(!  ---);
         setCommentEnd(---);

  THANKS.

  On Jun 11, 7:05 pm, Mark Mandel mark.man...@gmail.com wrote:
   Ah very nice!

   This would be easier, if we had ColdDoc for the BER release, but I
  haven't
   worked out the best way to do that...

   Where you want to be looking is the AbstractBaseGenerator - as this is
  what
   you will be extending.

   Writing your own Generators, you will have to look through the code a
  bit,
   as it is the best resource for doing this sort of stuff.

   The two things you should probably take note of :

   In the init() of the AbstractBaseGenerator, you can see where I have:
           setCommentStart(!  ---);
           setCommentEnd(---);

   This is where you can tell the generator what code comments look like in
   whatever you are generating, so you may want to override these in your
   generator, as you are generting XML and probably want --! and -- rather
   than the extra -

   The other thing to look at - check out the API for writeTemplate(), since
   you are generating XML, you can tell it to escapeCFML=false, so that you
   don't have to use the $$ and {{ and }} syntax - although, maybe for XML
  you
   may want to leave that capability, I'll leave that up to you.

   Other than that - protected block should still work, and as long as you
  have
   writeTemplate() point to XML files, it will write XML files.

   Have a look at the source for the Decorator generator, and the API for
  the
   AbstractBaseGenerator - it should be pretty clear (hopefuly).

   Mark

   On Fri, Jun 12, 2009 at 8:54 AM, Adam Drew epne...@gmail.com wrote:

Hey Mark,

I started playing with the transfer.codegen functionality in the BER
in an attempt to replace my current usage of TransferConfig+Illudium
PU-36 (riaforge) by implementing a chain of Coldbox Interceptors that
have my special layer to do some *active* codegen during a CB+Transfer
+CS app start up (afterConfigurationLoad + afterAspectsLoad  if dev =
true).

I am currently generating concrete objects for my abstract decorators,
gateways and services using the method described above and each of
these are working as expected, and beautifully I might add..
especially with the protected block feature allowing me to re-generate
the *protected* functions in my concrete CFCs as I refine a specific
domain model, all the while leaving the *custom* code in my concrete
objects alone... anyone can say what they want about the practice...
but this really makes me happy :)

Now, I want to generate some custom/specific metadata to use with say
ValidateThis!, Majik, or for that matter any other library, toolkit,
framework, et al..)  using the transfer object metadata and other
information i've gathered up during the interceptor chain with my
services + factories...

I have not tried to generate any XML yet as I just started writing the
generator, and then began a template and started to think.  I have
reviewed the codegen doc (WIP), and honestly, I have not gone through
the source enough to answer the following questions so, as I work
things out here, I was hoping that maybe you could confirm for me if
things should function the same when generating XML files as with CFCs
in my custom generator?  Should my template be named *.xml .. and my
generator write *.xml... Will protected blocks work? ect.

Thanks in advance for considerations

[transfer-dev] Re: transfer.codegen (BER)

2009-06-11 Thread Adam Drew

nvm.. i know what codldoc is cause i am using it...I was over reading
your statement but seriously now.. with thinking about this
quickly ... couldn't I set up a lightweight coldbox app to introspect
my SVN repsoitory, check out the latest trunk to a secured current
ber folder, in order to then have ColdDoc load and display the
API? .. basically afterConfigurationLoad If my SVN trunk revision is
greater then that of the local working copy (publicy documented
version) for my current BER, then update the working copy before
loading ColdDoc

On Jun 11, 7:44 pm, Adam Drew epne...@gmail.com wrote:
 ColdDoc..? Is this a Mark+Luis project happening under my radar?  What
 i mean is who is the *we* you reference with the ColdDoc and what is
 the problem with the BER? I have been playing with some java SVN
 component that lets me introspect Trunks, Branches and Tags and the
 whole self documenting SVN concept is pretty interesting to me.. I
 would love to see more resources!

 I'll let you know if anything comes up with my codegen experiance.. I
 have written 3 custom generators at this point.. a
 DecoratorGenerator, ServiceGenerator, GatewayGenerator.. and now
 I've begun my MetadataGenerator... it's kinda clear for me at this
 point what i need to do.. My concern was the handling of the CFML
 comment in XML .. I had previously gone through the
 AbstractBaseGenerator (actually first thing).. but some how overlooked
 the idea that that i could just setCommentStart() and setCommentEnd
 ()..

 Now I am wondering should I do this in my run() implementation or do I
 override the init() caling super.init() so I can then setCommentStart
 () and setCommentEnd()?

 -AD

 On Jun 11, 7:14 pm, Mark Mandel mark.man...@gmail.com wrote:

  No worries!

  Let me know if you run into any issues.

  Mark

  On Fri, Jun 12, 2009 at 9:12 AM, Adam Drew epne...@gmail.com wrote:

   This is why your the man.. because you knew what i wanted and you gave
   it right to me..

   The two things you should probably take note of :

   In the init() of the AbstractBaseGenerator, you can see where I have:
          setCommentStart(!  ---);
          setCommentEnd(---);

   THANKS.

   On Jun 11, 7:05 pm, Mark Mandel mark.man...@gmail.com wrote:
Ah very nice!

This would be easier, if we had ColdDoc for the BER release, but I
   haven't
worked out the best way to do that...

Where you want to be looking is the AbstractBaseGenerator - as this is
   what
you will be extending.

Writing your own Generators, you will have to look through the code a
   bit,
as it is the best resource for doing this sort of stuff.

The two things you should probably take note of :

In the init() of the AbstractBaseGenerator, you can see where I have:
        setCommentStart(!  ---);
        setCommentEnd(---);

This is where you can tell the generator what code comments look like in
whatever you are generating, so you may want to override these in your
generator, as you are generting XML and probably want --! and -- 
rather
than the extra -

The other thing to look at - check out the API for writeTemplate(), 
since
you are generating XML, you can tell it to escapeCFML=false, so that you
don't have to use the $$ and {{ and }} syntax - although, maybe for XML
   you
may want to leave that capability, I'll leave that up to you.

Other than that - protected block should still work, and as long as you
   have
writeTemplate() point to XML files, it will write XML files.

Have a look at the source for the Decorator generator, and the API for
   the
AbstractBaseGenerator - it should be pretty clear (hopefuly).

Mark

On Fri, Jun 12, 2009 at 8:54 AM, Adam Drew epne...@gmail.com wrote:

 Hey Mark,

 I started playing with the transfer.codegen functionality in the BER
 in an attempt to replace my current usage of TransferConfig+Illudium
 PU-36 (riaforge) by implementing a chain of Coldbox Interceptors that
 have my special layer to do some *active* codegen during a CB+Transfer
 +CS app start up (afterConfigurationLoad + afterAspectsLoad  if dev =
 true).

 I am currently generating concrete objects for my abstract decorators,
 gateways and services using the method described above and each of
 these are working as expected, and beautifully I might add..
 especially with the protected block feature allowing me to re-generate
 the *protected* functions in my concrete CFCs as I refine a specific
 domain model, all the while leaving the *custom* code in my concrete
 objects alone... anyone can say what they want about the practice...
 but this really makes me happy :)

 Now, I want to generate some custom/specific metadata to use with say
 ValidateThis!, Majik, or for that matter any other library, toolkit,
 framework, et al..)  using the transfer object metadata and other
 information i've

[transfer-dev] Re: transfer.codegen (BER)

2009-06-11 Thread Adam Drew

But what IF you have the cb app redirect the client to the static
ColdDoc URL no matter what.. the afterConfigurationLoad interceptor
would *update* the ColdDoc's static BER folder before redirecting the
client there... and all you would have to do after a significant API
change was restart the public CB app with a fwreinit password. Maybe I
had tooo much Hop Stooopid tonight.


On Jun 11, 8:11 pm, Mark Mandel mark.man...@gmail.com wrote:
 Because ColdDoc does static generation of the HTML files, not a runt time
 generation.

 Could always do it on a scheduled task I guess... ;o)

 Mark



 On Fri, Jun 12, 2009 at 10:04 AM, Adam Drew epne...@gmail.com wrote:

  nvm.. i know what codldoc is cause i am using it...I was over reading
  your statement but seriously now.. with thinking about this
  quickly ... couldn't I set up a lightweight coldbox app to introspect
  my SVN repsoitory, check out the latest trunk to a secured current
  ber folder, in order to then have ColdDoc load and display the
  API? .. basically afterConfigurationLoad If my SVN trunk revision is
  greater then that of the local working copy (publicy documented
  version) for my current BER, then update the working copy before
  loading ColdDoc

  On Jun 11, 7:44 pm, Adam Drew epne...@gmail.com wrote:
   ColdDoc..? Is this a Mark+Luis project happening under my radar?  What
   i mean is who is the *we* you reference with the ColdDoc and what is
   the problem with the BER? I have been playing with some java SVN
   component that lets me introspect Trunks, Branches and Tags and the
   whole self documenting SVN concept is pretty interesting to me.. I
   would love to see more resources!

   I'll let you know if anything comes up with my codegen experiance.. I
   have written 3 custom generators at this point.. a
   DecoratorGenerator, ServiceGenerator, GatewayGenerator.. and now
   I've begun my MetadataGenerator... it's kinda clear for me at this
   point what i need to do.. My concern was the handling of the CFML
   comment in XML .. I had previously gone through the
   AbstractBaseGenerator (actually first thing).. but some how overlooked
   the idea that that i could just setCommentStart() and setCommentEnd
   ()..

   Now I am wondering should I do this in my run() implementation or do I
   override the init() caling super.init() so I can then setCommentStart
   () and setCommentEnd()?

   -AD

   On Jun 11, 7:14 pm, Mark Mandel mark.man...@gmail.com wrote:

No worries!

Let me know if you run into any issues.

Mark

On Fri, Jun 12, 2009 at 9:12 AM, Adam Drew epne...@gmail.com wrote:

 This is why your the man.. because you knew what i wanted and you
  gave
 it right to me..

 The two things you should probably take note of :

 In the init() of the AbstractBaseGenerator, you can see where I have:
        setCommentStart(!  ---);
        setCommentEnd(---);

 THANKS.

 On Jun 11, 7:05 pm, Mark Mandel mark.man...@gmail.com wrote:
  Ah very nice!

  This would be easier, if we had ColdDoc for the BER release, but I
 haven't
  worked out the best way to do that...

  Where you want to be looking is the AbstractBaseGenerator - as this
  is
 what
  you will be extending.

  Writing your own Generators, you will have to look through the code
  a
 bit,
  as it is the best resource for doing this sort of stuff.

  The two things you should probably take note of :

  In the init() of the AbstractBaseGenerator, you can see where I
  have:
          setCommentStart(!  ---);
          setCommentEnd(---);

  This is where you can tell the generator what code comments look
  like in
  whatever you are generating, so you may want to override these in
  your
  generator, as you are generting XML and probably want --! and --
  rather
  than the extra -

  The other thing to look at - check out the API for writeTemplate(),
  since
  you are generating XML, you can tell it to escapeCFML=false, so
  that you
  don't have to use the $$ and {{ and }} syntax - although, maybe for
  XML
 you
  may want to leave that capability, I'll leave that up to you.

  Other than that - protected block should still work, and as long as
  you
 have
  writeTemplate() point to XML files, it will write XML files.

  Have a look at the source for the Decorator generator, and the API
  for
 the
  AbstractBaseGenerator - it should be pretty clear (hopefuly).

  Mark

  On Fri, Jun 12, 2009 at 8:54 AM, Adam Drew epne...@gmail.com
  wrote:

   Hey Mark,

   I started playing with the transfer.codegen functionality in the
  BER
   in an attempt to replace my current usage of
  TransferConfig+Illudium
   PU-36 (riaforge) by implementing a chain of Coldbox Interceptors
  that
   have my special layer to do some *active* codegen during a
  CB+Transfer
   +CS app start up

[transfer-dev] Re: Decorator after populate method?

2009-03-13 Thread Adam Drew

Yes... basically it wraps the TransferDecorator using CF8's
onMissingMethod() functionality  I would suggest that if you
haven't yet, go check out the work Peter Bell did with the coldfusion
IBO on riaforge.org.. The TIBO started as a slightly modified IBO, it
now has a fairly similar api, but extends my BaseObject and also
incorporates my own Paginator and Filter objects, its implementation
in Transfer is all is based on the abstract transfer service/gateway/
decorator ideas that Bob S. and Paul M. and others have been
graciously sharing with us for a while (great work!!!)

At the moment, I am using the TIBO mainly in my UI while i develop it
rather then for things going on in my service layer, but I don't see
any reason I couldn't or shouldn't also be able to use it anywhere i
need to as well..
However, right now I am in the middle of fleshing out the basic filter/
paginator functionality when it comes to user sessions  other caching
issues.. I think I have it mostly licked, but I need to do some
more work.
Another topic for another day maybe.

Basically, It all looks something kinda like this...
__


AbstractDecorator:
getDisplayTitle() : string
  return getTransferObject().getName();
__

UserDecorator - AbstractDecorator
   getDisplayTitle(); //overrides abstractdecorator,
  return getTransferObject().getUsername();
__

BaseObject:
   init(args);
   configure();
   get(val);
   set(val);
   new(object);
   add(scope,val);
   exists(val);

   onMissingMethod() :
 get[PropertyName] or  get[InstanceVar]
 set[PropertyName] or  set[InstanceVar]
 new[Transient] // (Paginator/Filter)
__

TIBO - BaseObject
   configure();
   load(gateway,paginator,filter);
   loadStruct(pos);
   filter(string);

   reset();
   next();
   populate();
   moveTo(pos);

  getPKValue()
  getIsPersisted() : Always TRUE
  getIsDirty()

   getPosition();
   getCount();
   getPage();

   getPaginator();
   getFilter();
__


Controller:
   ibo = userService.getIterator();
__

View:
   ibo.reset();
   #ibo.getPaginator().render()#
   if (ibo.next()) {
#ibo.getPKValue()#
#ibo.getDisplayTitle()#
#ibo.getIsPersisted()#
   }

Hope that helps you visualize it a little bit.. its a lot more
complicated .. so you should start by checking out the work by Peter,
Bob, and Paul on riaforge if you haven't already

Please excuse any typos and psudo code, been a busy day..

Regards,
-adam



On Mar 13, 12:34 pm, John Whish john.wh...@googlemail.com wrote:
 @Adam, that TIBO sounds interesting. Does it pick up the 'custom' behaviour
 from the decorator or do you end up duplicating code?
--~--~-~--~~~---~--~~
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer

You received this message because you are subscribed to the Google Groups 
transfer-dev group.
To post to this group, send email to transfer-dev@googlegroups.com
To unsubscribe from this group, send email to 
transfer-dev-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/transfer-dev?hl=en
-~--~~~~--~~--~--~---



[transfer-dev] Re: Decorator after populate method?

2009-03-13 Thread Adam Drew
 to create in one shot),
 then don't use a OneToMany. Use a ManyToOne, i.e.
 person.setCompany(company).

 OneToMany, is meant for very specific, tightly related relationships. For
 me, that means something like 10 or maybe 100 related objects at most. The
 actual number is up to you but following my own advice, I would not really
 want Transfer to be creating more than 100 related objects.

 For example:

 A User has a BillingAccount. If your business model is such that most
 BillingAccounts have one User, or if most BillingAccounts have only a few
 Users, then use a OneToMany if you wish. i.e.
 User.setParentBillingAccount().

 However, a User also has an AccountType. AccountType is probably quite
 generic and could be associated with thousands or tens of thousands of
 Users. In such a case, do NOT use a OneToMany. Use a ManyToOne, i.e.
 User.setAccountType().

 On Fri, Mar 13, 2009 at 12:16 PM, Adam Drew epne...@gmail.com wrote:

  @Brian,

  Are you advising the use of a manyToOne instead of oneToMany with
  large collections strictly because of transfer performance issues? Or
  is there some other relationship guidance behind that?

  I understand the potential for issues with only having oneToMany
  relationships.. but so far, I have been working on a fairly complex
  model with over 200 objects.. some of those objects have oneToManys
  with collections of 10K+,

  I use lazy, proxied, oneToManys on those transfer objects. Then i use
  a TIBO for displaying, paginating, or filtering those large
  collections where performance issues arise... It's not done yet, but
  honestly I'm very pleased with the overall functionality and
  performance of this approach thus far, however the TIBO is not a part
  of the transfer so i understand that, as a best practice with a
  strict transfer implementation.. that a manytoOne maybe the best route
  for performance concerns until future features are added... However,
  The TIBO is a topic i had brought up in the past on the list.. and is
  something I plan on posting a component someplace one day for anyone
  here who is interested when I can get the implementation cleaned-up
  and stable enough for what I need to do with it.. hopefully it works
  for someone other then myself.

  I guess I'm just curious if I'm missing some caveats about the
  oneToMany+TIBO approach I've been spending some time on... I have have
  not yet worked it out on manyToOnes.. but plan on  doing so... and I
  would be interested to hear your input on this topic in regards to
  oneToManys vs manyToOnes...

  Regards,
  Adam
--~--~-~--~~~---~--~~
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer

You received this message because you are subscribed to the Google Groups 
transfer-dev group.
To post to this group, send email to transfer-dev@googlegroups.com
To unsubscribe from this group, send email to 
transfer-dev-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/transfer-dev?hl=en
-~--~~~~--~~--~--~---



[transfer-dev] Transfer + Java SE Development Kit 6u12

2009-02-05 Thread Adam Drew

Cheers!

I have been developing my Majik for a little over a year now, and I
have been using a number of different development setups and test beds
to work out my issues.. but I've always using the latest release of
Transfer with CF8's default JVM running.. 1.6.4-9? those of you
familiar with that JVMs class loader issues can only imagine how and
where I was bogging down while building a fully OO-CF framework based
RIA with +300 DB tables  Transfer objects.. and well, um too many
objects really

At this very moment, I can not even think of ever using the shipped
CF8 JVM again!!  I am so happy right now because those performance
issues have always bothered me, and made me second guess the
architectures and patterns I had chosen to vest myself in over the
past three years... since I was unsuccessful in my attempts to get
1.6.10 running in the past according to blogs which I had read while
using the google... I gave up for a while.. but decided to give it a
go again today after setting up a Win7+CF8+IIS7+SQL2008Express test
bed.

I just wanted to get any feedback from the group from anyone using the
JVM 6u12 release with transfer.. has it been tested by anyone yet?
what are you're thoughts? is there a previous version that you guys
would reccomend for use with transfer?

So far, i am getting _amazing_ performance gain results compared with
only a few hours ago today...

Just felt like sharing this in case anyone else was interested.


-adam
Majik Ferret Solutions
--~--~-~--~~~---~--~~
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer

You received this message because you are subscribed to the Google Groups 
transfer-dev group.
To post to this group, send email to transfer-dev@googlegroups.com
To unsubscribe from this group, send email to 
transfer-dev-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/transfer-dev?hl=en
-~--~~~~--~~--~--~---



[transfer-dev] Re: Iterating Transfer Object

2008-12-05 Thread Adam Drew

I think all I need is a setLimit() on the TIBO -

I'm presently working up a uml for my _plan_ which once complete, i
could email to those interested for review, comment, and revision...

On Dec 5, 10:34 pm, Chris Peterson [EMAIL PROTECTED] wrote:
 Ya know, if we are going to roll this, why not build a paging model into it
 from the git go?  I bet tons of folks have done that already or have their
 own hacks around it (I perform my sql query for ID's only, for the specific
 page of results i want, then loop and return the transfer objects as a part
 of a structure with totalPages, currentPage, itemsPerPage, and the TO array.

 just thinkin out loud here

 Chris



 On Fri, Dec 5, 2008 at 10:13 PM, Adam Drew [EMAIL PROTECTED] wrote:

   I'm getting the feeling that either you guys don't have your own
  implementation of this pattern in transfer, or your just holding out
  on me.. ;)

  @Peter..
  How have you used transfer with your IBO pattern?   Does LightBase use
  Transfer?

  @Chris
   I would like to suggest that we define the scope of the TIOB
  responsibilities, and dependencies, and then specify the functionality
  and implementations which are required for our general use cases...

  @John
  I would be able to commit a super alpha tag once we lay this thing
  out... and I would look froward to as much testing and feedback as
  possible...besides I need some extra validation in my life =).

  For Follow Up:

  Does anyone have any caveats or advice they can share when approaching
  this?
  Mark, Is this an abomination of the TransferObject??
  What are some of the other design around practices in use?
  Any one else interested in collaborating/helping/testing?

  I remain,
  Adam Drew

  On Dec 5, 7:48 pm, John Allen [EMAIL PROTECTED] wrote:
   I design around this, but would love to check it out when/if super alpha.

   On Fri, Dec 5, 2008 at 6:49 AM, Chris Peterson [EMAIL PROTECTED]
  wrote:
I want to see this too =)  With the latest proxy object support and
  lazy
loading, I have been using an array of transfer objects in a few
  places,
which I would love to gut and replace with something like your TIBO
(Transfer Iterating Business Object, lets spread the word, thats the
  new
acronym).  If you need a tester let me know =)

Chris Peterson
On Fri, Dec 5, 2008 at 6:20 AM, Peter Bell [EMAIL PROTECTED]
  wrote:

Im certainly interested in seeing how this progresses :-)

Peter

On Dec 5, 2008, at 1:05 AM, Adam wrote:

 I am trying to create an IteratingTransferObject, or
 AbastractIteratingObject, or IteratingBusinessObject (IBO) as
 described by Mr. Peter Bell...

 I need something to kill the OIP evil do-er with transfer objects
  from
 large tables that _need_ the concrete,  mixin, and abstract code to
 perform accordingly... (validation/documentation/business objects,
  ui,
 ajax calls, mvc plugins, services, gateways..)  I was never never
  able
 to find, or didn't look in the right places for a solid example of
  the
 pattern in use with transfer.

 I think it's a great idea, so I did a quick and dirty test in my
 model .. this dirty test gave my ui  an unscientifically estimation
  of
 80%!! reduction in load times on large record sets, as compared to
 when i just use very large transfer object collections.

 In my proof of concept I immediately ran into a few things right of
 the bat that would require some rethinking and refactoring..
   But
 I don't want to run off into the desert with no water if there is
 another route...

 My ITO is a factory generated, beanInjected, wrapper on a new
  transfer
 object that is being populated() by my Abstract Decorator and looped
 over a cached query,. so when i get one of these 'transferObjects'
 it's not exactly being created by Transfer, and I found that i was
 getting a PK = 0 and isPersisted = false and isDirty=true.

 I quickly hacked my wrapper to get the PK from the
  instance.recordset,
 insted of the TO just to make it work but I cant move any
  further
 with this until i get my head around the Performance / Development/
 Cost involved... or at least make me feel comfortable that it's
  going
 to work until adobe _hopefully_ fixes the OIP in CF9???..

 I'm just looking for any feedback from anyone with any interest in
  my
 topic..

 Thanks Guys!

--
Hey! I dont tell you how to tell me what to do, so dont tell me how to
  do
what you tell me to do! ~ Bender (Futurama)

 --
 Hey! I dont tell you how to tell me what to do, so dont tell me how to do
 what you tell me to do! ~ Bender (Futurama)
--~--~-~--~~~---~--~~
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer

You received this message because you are subscribed to the Google Groups