Hello,

Not meaning to jump into the middle of this thread, but in regard to
the specific mention of tacos, I totally agree that the Part component
needs to go, but that we might actually be able to fix it without
injection....(Only if not possible..)

I'm thinking that the ability to transparently replace the
ResponseRenderer with our very own ajax response renderer might be
able to do the trick. Theoretically at least.  Something along the
lines of doing one of the service overrides so that the current
ResponseRenderer:
<service-point id="ResponseRenderer">
    Renders the active page as the response.

    <invoke-factory>
      <construct class="impl.ResponseRendererImpl">
        <set-service property="localeManager"
service-id="RequestLocaleManager"/>
        <set-object property="markupWriterSource" 
value="infrastructure:markupWriterSource"/>
        <set-object property="webResponse" value="infrastructure:response"/>
      </construct>
    </invoke-factory>
  </service-point>
Would be replaced with something else, either a proxy class (bad for
performance? ) or a delegate class..(Or enhanced class? don't care..)

Once that was handled somehow, tacos could ditch the PartId concept
and require only that the user specifies a Component ID, which is
already handled by tapestry..Then our little ResponseRenderer can just
check to see if a particular component's ID matches it's set of ajax
re-render ids and hand it the appropriate IMarkupWriter depending on
the outcome..

This was my initial thought on how to handle it at least...

jesse
On 8/9/05, Markus Joschko <[EMAIL PROTECTED]> wrote:
> I just played around with the tacos partial ajax support.
> It now requires a special part component which knows if it should render or 
> not.
> If it would be possible to add interceptor like behaviour to
> componentes, every component could get some logic injected to decide
> if should render and which markupwriter to use.
> This would make the partial service more flexible and the part
> component unecessary.
> It's not a mission critical use case but I hoped that it might be possible.
> 
> OK, and in addition I wanted to learn a little bit more about the
> internals of tapestry 4 and its hivemind usage.
> 
> 
> On 8/9/05, Howard Lewis Ship <[EMAIL PROTECTED]> wrote:
> > Also, I'd like to know your use case for logging at this level of
> > granularity.  BaseComponent can log renderComponent() already ... but
> > you get a flood of output from all the different components (and
> > pages) that extend from BaseComponent.
> >
> > On 8/9/05, Howard Lewis Ship <[EMAIL PROTECTED]> wrote:
> > > Components are not services, it's a completely different model.
> > >
> > > Yes, you can get into conflicts between the different enhancement
> > > workers.  Most enhancement workers are concerned with just a single
> > > property (a method or pair of methods).  There's some ability to let
> > > multiple workers assemble a single method (they're called "incomplete
> > > methods") but there's a lot of constraints, such as always invoking
> > > the super implementation (if it exists) first.
> > >
> > > On 8/9/05, Markus Joschko <[EMAIL PROTECTED]> wrote:
> > > > I played around with the enhancementworkers and I can see one
> > > > possibility to modify e.g the renderBody method more or less proxy
> > > > like: using the addMethod method from the EnhancementOperation class
> > > > to add a renderBody method to the subclass with a body like this:
> > > >
> > > > System.out.println("start");
> > > > super.renderBody($$);
> > > > System.out.println("end");
> > > >
> > > > This will work for the moment. But it's not very cooperative. What
> > > > happens when a second enhancementworker also wants to modify the
> > > > renderBody method? I think that's a last one wins situation or?
> > > > Unless there is some javassist magic I don't know about, I think it is
> > > > not possible to add a proxy behaviour to the components.
> > > > Is there another way? I can't see a service point where I could add a
> > > > logging interceptor to the components.
> > > >
> > > > thanks,
> > > >  Markus
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > On 8/9/05, Markus Joschko <[EMAIL PROTECTED]> wrote:
> > > > > OK, I had a look at the ComponentConstructorImpl and the 
> > > > > EnhancementWorkers.
> > > > > Is this the right place to go? Should I make an enhancementworker out
> > > > > of the logging interceptor?
> > > > > Is it possible to add a proxy with an enhancementworker (don't think
> > > > > so as they are chained) or do I have to add the logging lines to the
> > > > > renderBody method (as e.g. seen in EnhancementOperationImpl)?
> > > > > But then I wonder how to add a line at the beginning and a line at the
> > > > > end of the method?
> > > > > Any help?
> > > > > Thanks,
> > > > >  Markus
> > > > >
> > > > > On 8/8/05, Markus Joschko <[EMAIL PROTECTED]> wrote:
> > > > > > I never wanted to question the decision to use hivemind. For me it's
> > > > > > always fun to learn new concepts. The only problem is to get started
> > > > > > if you have a usecase in mind and no time to learn from the basics.
> > > > > > So may be you can give me the starting point, how to handle the
> > > > > > enhancer (just where to look to grasp the concepts)?
> > > > > >
> > > > > > Thanks,
> > > > > >  Markus
> > > > > >
> > > > > > On 8/8/05, Howard Lewis Ship <[EMAIL PROTECTED]> wrote:
> > > > > > > People keep asking me "why HiveMind? why not Spring?"  It's 
> > > > > > > because of
> > > > > > > stuff like this ... HiveMind provides a particular kind of 
> > > > > > > flexibility
> > > > > > > and late binding that Spring simply can't express.  Spring's 
> > > > > > > focus is
> > > > > > > a simple IoC container used to build applications.  HiveMind is a 
> > > > > > > more
> > > > > > > complex IoC container used to build frameworks.
> > > > > > >
> > > > > > > On 8/8/05, Markus Joschko <[EMAIL PROTECTED]> wrote:
> > > > > > > > Oh, sorry, yes thats complete nonsense. I meant logging 
> > > > > > > > interceptor.
> > > > > > > > But even this is nonsense. I just had the logging interceptor 
> > > > > > > > example
> > > > > > > > from hivemind and the IComponent interface open in browser and 
> > > > > > > > IDE and
> > > > > > > > came out with this example ;-)
> > > > > > > >
> > > > > > > > Maybe you can give me a starting point how to add or where to 
> > > > > > > > find the
> > > > > > > > enhancer.
> > > > > > > > Coming from springland I'm a little bit helpless currently....
> > > > > > > >
> > > > > > > > But nice to know that this flexibility is given in the 
> > > > > > > > framework.
> > > > > > > >
> > > > > > > >
> > > > > > > > On 8/8/05, Howard Lewis Ship <[EMAIL PROTECTED]> wrote:
> > > > > > > > > Every page and component class is run through the enhancer, 
> > > > > > > > > so if you
> > > > > > > > > wanted that behaviour, you could add it quite easily.
> > > > > > > > >
> > > > > > > > > Did you mean "login interceptor" around renderBody()?  That 
> > > > > > > > > seems
> > > > > > > > > very, very odd.
> > > > > > > > >
> > > > > > > > > I *could* see adding PageValidationListener to your pages, 
> > > > > > > > > with an
> > > > > > > > > implementation that, say, checked against meta data to 
> > > > > > > > > determine if
> > > > > > > > > access to a page should be allowed.  That's reasonable.
> > > > > > > > >
> > > > > > > > > On 8/8/05, Markus Joschko <[EMAIL PROTECTED]> wrote:
> > > > > > > > > > Hi,
> > > > > > > > > > I'm just wondering if it's possible for an external library 
> > > > > > > > > > to front
> > > > > > > > > > all components with a proxy by configuration?
> > > > > > > > > >
> > > > > > > > > > I saw some hivemind.xml which have promising names like e.g.
> > > > > > > > > > tapestry.enhance.xml
> > > > > > > > > > E.g. would it be possible to add a loginterceptor around
> > > > > > > > > > IComponent.renderBody calls?
> > > > > > > > > >
> > > > > > > > > > Sorry if this question is totally stupid but I'm still 
> > > > > > > > > > fighting to
> > > > > > > > > > understand the way hivemind works and tapestry is 
> > > > > > > > > > internally wired.
> > > > > > > > > >
> > > > > > > > > > Thanks,
> > > > > > > > > >  Markus
> > > > > > > > > >
> > > > > > > > > > ---------------------------------------------------------------------
> > > > > > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > > > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > Howard M. Lewis Ship
> > > > > > > > > Independent J2EE / Open-Source Java Consultant
> > > > > > > > > Creator, Jakarta Tapestry
> > > > > > > > > Creator, Jakarta HiveMind
> > > > > > > > >
> > > > > > > > > Professional Tapestry training, mentoring, support
> > > > > > > > > and project work.  http://howardlewisship.com
> > > > > > > > >
> > > > > > > > > ---------------------------------------------------------------------
> > > > > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > > ---------------------------------------------------------------------
> > > > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Howard M. Lewis Ship
> > > > > > > Independent J2EE / Open-Source Java Consultant
> > > > > > > Creator, Jakarta Tapestry
> > > > > > > Creator, Jakarta HiveMind
> > > > > > >
> > > > > > > Professional Tapestry training, mentoring, support
> > > > > > > and project work.  http://howardlewisship.com
> > > > > > >
> > > > > > > ---------------------------------------------------------------------
> > > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > > >
> > >
> > >
> > > --
> > > Howard M. Lewis Ship
> > > Independent J2EE / Open-Source Java Consultant
> > > Creator, Jakarta Tapestry
> > > Creator, Jakarta HiveMind
> > >
> > > Professional Tapestry training, mentoring, support
> > > and project work.  http://howardlewisship.com
> > >
> >
> >
> > --
> > Howard M. Lewis Ship
> > Independent J2EE / Open-Source Java Consultant
> > Creator, Jakarta Tapestry
> > Creator, Jakarta HiveMind
> >
> > Professional Tapestry training, mentoring, support
> > and project work.  http://howardlewisship.com
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
>

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

Reply via email to