It's like that at all. The annotation workers run before the normal
enhancement workers (like property setters and such), whoever claims the
property first wins. (you can control when your worker is called via
hivemind's awesome pipeline ability ).

On 5/25/06, Dan Adams <[EMAIL PROTECTED]> wrote:

Hmmm. That gives me an idea. I was thinking that the reason I couldn't
claim the method is that it would be possible for another annotation
like @InjectObject for instance to be used and then I would have to
preserve whatever changes were put in there by InjectObject. But since I
suppose this annotation will only be used for non-abstract accessors
that do some sort of calculation that it would be okay to claim the
property. I'll give that a go and I think I should be all set. Thanks
Jesse! Keep up the good work on Tapestry. :)

On Thu, 2006-05-25 at 12:35 -0400, Jesse Kuhnert wrote:
> You should be able to do this fine using the existing annotation page
logic.
>
>
> In your annotation stuff for handling your specific type "claim" the
> property specified using EnhancementOperation and then define a method
body
> that does the caching logic you describe and you'll be all set. (there
are
> other annotations in there that provide method body stuff to javassist
for
> you to reference)
>
> On 5/25/06, Dan Adams <[EMAIL PROTECTED]> wrote:
> >
> > Thank you for the time you guys have already spent on this, but if you
> > have any other comments I would really appreciate them. Is there just
no
> > way to do this given the current tapestry annotation class structure?
> >
> > On Thu, 2006-05-25 at 10:51 -0400, Dan Adams wrote:
> > > Well, I've been digging around in all the annotation source for
4.0.1
> > > and I seem to be stuck. It seems like there isn't any way to get to
the
> > > javassist methods or to do what I'm trying to do. I've looked at the
> > > hivemind config and how to add the annotation. My only problem is
how to
> > > actually get the annotation to do what it needs to do. Any
suggestions
> > > on how to approach the problems I mentioned earlier? I also attached
the
> > > source which is pretty short.
> > >
> > > On Thu, 2006-05-25 at 10:42 -0400, Jesse Kuhnert wrote:
> > > > Ah well...The annotations stuff in tapestry is pretty easy to
follow
> > (just
> > > > added a lot of logic in this area myself). It would be best for
you to
> > refer
> > > > to the tapestry annotations source, but the biggest thing is to
also
> > > > remember that annotations are done almost the same way that the
> > > > "enhancement" stuff is done - with a hivemind chained pipeline
> > > > configuration. There is an annotations hivemind configuration
section
> > that
> > > > configures and sets up all of them as well.
> > > >
> > > > On 5/25/06, Dan Adams <[EMAIL PROTECTED]> wrote:
> > > > >
> > > > > You are right about this. I hadn't realized you could do that
with
> > > > > parameters. But that doesn't really apply to my problem since
@Once
> > > > > won't normally be used on parameters. It came up because in some
> > > > > situations you have a method that does a hibernate query and
returns
> > a
> > > > > list of objects and you'd like to be able to easily refer to
that
> > > > > property more than once in the template. A common situation is
> > checking
> > > > > the list size in an @If before doing something with it.
> > > > >
> > > > > On Thu, 2006-05-25 at 10:28 -0400, Jesse Kuhnert wrote:
> > > > > > Doesn't tapestry support marking a parameter as cache-able
> > already?
> > > > > >
> > > > > > On 5/25/06, James Carman <[EMAIL PROTECTED]> wrote:
> > > > > > >
> > > > > > > Have you looked into AspectJ?
> > > > > > >
> > > > > > > -----Original Message-----
> > > > > > > From: Dan Adams [mailto:[EMAIL PROTECTED]
> > > > > > > Sent: Thursday, May 25, 2006 10:00 AM
> > > > > > > To: Tapestry users
> > > > > > > Subject: RE: Help in writing a custom annotation
> > > > > > >
> > > > > > > Okay, my annotation is called @Once and if put on accessor
will
> > make
> > > > > > > sure that the method is only executed once and then the
return
> > value
> > > > > is
> > > > > > > cached. Any further calls to the method will just return the
> > saved
> > > > > > > value. I've got pretty far but I think I'm stuck as I want
to do
> > > > > > > something that I could do with javassist but I'm not sure
how to
> > do
> > > > > > > within the tapestry enhancement classes. I've attached what
I
> > have so
> > > > > > > far and I would greatly appreciated it if someone could give
me
> > some
> > > > > > > suggestions on what to do. My big problem is:
> > > > > > >
> > > > > > > - I could add code at the beginning and end of the method
with
> > > > > javassit
> > > > > > > but can't see a way to do that
> > > > > > > - Perhaps I could somehow rename the old method to something
> > else and
> > > > > > > put in a new method that calls it?
> > > > > > >
> > > > > > > Thanks a lot.
> > > > > > >
> > > > > > > On Thu, 2006-05-25 at 07:11 -0400, James Carman wrote:
> > > > > > > > I'd look at the one that injects messages, or beans, or
even
> > the one
> > > > > > > that
> > > > > > > I
> > > > > > > > wrote for "autowiring" (available in SVN on the 4.1branch).
> > > > > > > >
> > > > > > > > -----Original Message-----
> > > > > > > > From: Dan Adams [mailto:[EMAIL PROTECTED]
> > > > > > > > Sent: Wednesday, May 24, 2006 10:44 PM
> > > > > > > > To: Tapestry users
> > > > > > > > Subject: Help in writing a custom annotation
> > > > > > > >
> > > > > > > > I want to write an annotation that will intercept a method
and
> > add a
> > > > > > > > property to the class. I've started digging around in some
of
> > the
> > > > > > > > annotation sources but it's going pretty slow. Can someone
> > point me
> > > > > at
> > > > > > > > the right place to look for where to start?
> > > > > > > >
> > > > > > > --
> > > > > > > Dan Adams
> > > > > > > Software Engineer
> > > > > > > Interactive Factory
> > > > > > > 617.235.5857
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > ---------------------------------------------------------------------
> > > > > > > To unsubscribe, e-mail:
[EMAIL PROTECTED]
> > > > > > > For additional commands, e-mail:
[EMAIL PROTECTED]
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > --
> > > > > Dan Adams
> > > > > Software Engineer
> > > > > Interactive Factory
> > > > > 617.235.5857
> > > > >
> > > > >
> > > > >
> > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > >
> > > > >
> > > >
> > > >
> > --
> > Dan Adams
> > Software Engineer
> > Interactive Factory
> > 617.235.5857
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
--
Dan Adams
Software Engineer
Interactive Factory
617.235.5857


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Jesse Kuhnert
Tacos/Tapestry, team member/developer

Open source based consulting work centered around
dojo/tapestry/tacos/hivemind.

Reply via email to