Yes that would be nice. I've tried asking questions to both users and
dev mailling lists here and have never really seen a response. Not
that they're obligated to or anything...I just know it's easier to
spend two minutes thinking about something when you have the entire
architecture in your head already rather than wading through and
guessing what the best path is...Heh...
j
On 8/10/05, Markus Joschko <[EMAIL PROTECTED]> wrote:
> I had a look at the responserenderer but this is IMO to coarse
> grained. As far as I can see the responserenderer simply triggers the
> render method of the requestcycle and has no chance to know which
> component is currently rendering and no possibility to intercept then.
>
> The complete renderprocess of the components is somehow
> "selfcontained". Each component triggers the rendering of the
> contained components passing the markupwriter along. I can't detect a
> single point of control which would be able to intercept and e.g. is
> able to manipulate the markupwriter.
>
> If it is not possible to add some logic at the beginning of the
> components renderComponent (not renderBody as I previously thought) I
> don't see a way to discard the part component as nice as it would be.
>
> But maybe a more experienced tapestry developer could see a way out of this.
>
>
> markus
>
>
> > On 8/9/05, Jesse Kuhnert <[EMAIL PROTECTED]> wrote:
> > > 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]
> > >
> > >
> >
>
> ---------------------------------------------------------------------
> 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]