Howard Lewis Ship wrote:
> I concur; throwing exceptions is a problem. I'd rather split the pipeline
> into multiple pipelines to support finer grained scheduling of the
> operations.

Actually, I was focused on the annotation subproject and the
tapestry.annotation.MethodWorkers configuration point which
indeed does NOT allow me to do what I described.

However, using the tapestry.enhance.EnhancementWorkers configuration
and its scheduling is more than enough for my current needs.


>
> On 10/4/06, Jesse Kuhnert <[EMAIL PROTECTED]> wrote:
>>
>> I had a few thoughts.
>>
>> For some reason throwing exceptions sends a red flag up for me. Is this
>> something that could be more easily solved by using patterns available
>> through HiveMind? Maybe something like how the chain of command workers
>> are
>> able to say before="" after="" etc.. ?
>>
>> My head isn't fully around what you are doing, but my instinct tells me
>> that
>> this kind of problem is best solved via some kind of hivemind construct.
>> It
>> may involve a little more overhead at first to change the service
>> configurations around to use something new, but hey...That's the cost of
>> developing against a very popular ~framework~ API. ;)
>>
>> On 10/4/06, andyhot <[EMAIL PROTECTED]> wrote:
>> >
>> > I got this working locally.
>> > Code coverage remains at the extraordinary 100% level (both
>> > for lines and branches)
>> >
>> > To recap, this addition allows
>> > MethodAnnotationEnhancementWorkers to throw a
>> > (new) RetryAnnotationEnhancementException.
>> > In this way, they get re-processed after all other
>> > annotations from all other methods have.
>> >
>> > BTW, this is very different from SecondaryAnnotationWorkers.
>> > It also allows retries based on runtime conditions.
>> >
>> >
>> > andyhot wrote:
>> > > Currently, for a given annotated class:
>> > > - class-level workers are applied first.
>> > > - for each method :
>> > >   1) all its method-level workers are applied, then
>> > >   2) all secondary workers are tested and applied
>> > >   3) move on to the next method.
>> > >
>> > > While taking a look at copy-of
>> > >
>> http://tapestry.apache.org/tapestry4/UsersGuide/spec.html#spec.component
>> > > and adding it to the @Component annotation, there is the need to
>> apply
>> a
>> > > worker
>> > > after all the other workers (from all other methods) have run.
>> > >
>> > > That's because we have to capture all bindings from the original
>> > > component before
>> > > copying them to the copyOf component. And perhaps other annotations
>> can
>> > > make use
>> > > of this scheduling.
>> > >
>> > > Now, what i have in mind involves the
>> > > AnnotationEnhancementWorker.performMethodEnhancement method which in
>> > > turn calls
>> > > MethodAnnotationEnhancementWorker.performEnhancement
>> > >
>> >
>> https://svn.apache.org/repos/asf/tapestry/tapestry4/trunk/tapestry-annotations/src/java/org/apache/tapestry/annotations/MethodAnnotationEnhancementWorker.java
>>
>> > >
>> > > The idea is that if that last method throws a new
>> > > RetryLaterKindOfException, we grab all its arguments in a queue
>> > > and run it at the end.
>> > >
>> > > So, will this be useful? Am i missing an easy way out of this?
>> > >
>> > >
>> > >
>> > >
>> >
>> >
>> > --
>> > Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr
>> > Tapestry / Tacos developer
>> > Open Source / J2EE Consulting
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: [EMAIL PROTECTED]
>> > For additional commands, e-mail: [EMAIL PROTECTED]
>> >
>> >
>>
>>
>> -- 
>> Jesse Kuhnert
>> Tapestry/Dojo/(and a dash of TestNG), team member/developer
>>
>> Open source based consulting work centered around
>> dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com
>>
>>
>
>


-- 
Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr
Tapestry / Tacos developer
Open Source / J2EE Consulting 


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

Reply via email to