Hey Kristian,

yeah I ended up with decorators as well. Did your implementation get any
further than experimental stage? If it's available somewhere, I'd gladly
take a look to compare. Eventually I'll probably make this or some improved
version available as part of Trails 2.

Kalle


On Fri, Jan 16, 2009 at 12:21 AM, Kristian Marinkovic <
kristian.marinko...@porsche.co.at> wrote:

> hi Kalle,
>
> i did some experiments on this some time back. my solution was to provide
> a decorator for the
> PersistentFieldManager service. This decorator would know it it was in a
> conversation and save
> the persistent fields respectivley. I also used the LinkFactory and the
> LinkFactoryListener to add
> the conversation id transparently to every link.
>
> g,
> kris
>
>
>
>
>
> Kalle Korhonen <kalle.o.korho...@gmail.com>
> 16.01.2009 00:19
> Bitte antworten an
> "Tapestry users" <users@tapestry.apache.org>
>
>
> An
> Tapestry users <users@tapestry.apache.org>
> Kopie
> ted.st...@gmail.com
> Thema
> Re: T5: Reading context before persistent fields are read
>
>
>
>
>
>
> Hey Ted,
>
> I happened to run into the same exact problem you were having while trying
> to get my custom conversational PersistentFieldStrategy implemented. Did
> you
> manage the solve the problem (reading values from activation context
> before
> gathering persistent fields) in any satisfactory way?
>
> Kalle
>
>
> On Fri, Jan 18, 2008 at 4:59 AM, Ted Steen <ted.st...@gmail.com> wrote:
>
> > Hmm, i must have been very tired when i tested this yesterday.
> >
> > It doesnt work. The ComponentActionRequestFilter is handled after the
> > persistent fields are gathered. So my activation context variable that
> > I need when gathering persistent fields is not set before I gather the
> > fields.
> > I have tried to add the filter with "before:*"
> >
> > A solution would be to inject the Request into the
> > PersistentFieldStrategy and get/decode the context from the path (or
> > post variables when posting) .. but that is not very clean in my
> > opinion.
> >
> > It would be nice if the gathering of fields was done a little later or
> > maybe we could extend the Request API with a Object[]
> > getActivationContext()
> >
> > Or do you have any other ideas.
> >
> > I feel I should explain my use case here..
> > We are developing a checkout service where the current cart beeing
> > processed is passed around via a activation context variable (the
> > cart-hash). This means that the persistent variables in the components
> > should be "per cart-hash". This can be done transparently by
> > implementing a custom PersistentFieldStrategy which uses the first
> > value in the activation context (we decided that the cart-hash should
> > always be the first value).
> >
> > Or the hash could be a part of the domain like hash.mydomain.com, then
> > the session is made unique per host and everything will work like
> > expected.
> > this is a third solution
> >
> >
> > 2008/1/18, Howard Lewis Ship <hls...@gmail.com>:
> > > The pipelines and chains of command make it easy to "slip in" specific
> > logic.
> > >
> > > OH, an alternative to defining a service to contain the data is to
> > > just write it as a Request attribute.  I've used that approach for
> > > handling a few awkward cases.
> > >
> > > On Jan 17, 2008 5:56 PM, Ted Steen <ted.st...@gmail.com> wrote:
> > > > Yep, that did it.
> > > > Thanks!
> > > >
> > > > 2008/1/18, Howard Lewis Ship <hls...@gmail.com>:
> > > >
> > > > > If you mean the event context (as opposed to the page activation
> > > > > context), then ...
> > > > >
> > > > > The path of least resistance is:
> > > > >
> > > > > 1) Define a service with a simple read/write property to store the
> > > > > context.  Make sure this is perthread scope.
> > > > > 2) Contribute a filter to the ComponentActionRequestHandler
> pipeline.
> > > > > The filter can capture the event context and store it in your
> > service.
> > > > > 3) In your PersistentFieldStrategy, inject the context-storing
> > service
> > > > > and read the context.
> > > > >
> > > > > You might simplify #1 to just store the piece of data you need
> from
> > the context.
> > > > >
> > > > > The approach is similar if you need page activation context,  but
> > > > > you'll need to contribute a similar filter into the
> > > > > PageRenderRequestHandler pipeline as well.
> > > > >
> > > > > On Jan 17, 2008 12:13 PM, Ted Steen <ted.st...@gmail.com> wrote:
> > > > > > I need to hook in somewhere between where the context is
> available
> > and
> > > > > > the persistent fields are read.
> > > > > > I need to read a context variable just before my
> > > > > > PersistentFieldStrategy tries to read from the session, as I
> need a
> > > > > > value from the context when reading from the session.
> > > > > >
> > > > > > What should I inject into my PersistentFieldStrategy in order to
> be
> > > > > > able to read the context?
> > > > > >
> > > > > >
> > ---------------------------------------------------------------------
> > > > > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > > > > > For additional commands, e-mail: users-h...@tapestry.apache.org
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Howard M. Lewis Ship
> > > > >
> > > > > Creator Apache Tapestry and Apache HiveMind
> > > > >
> > > > >
> ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > > > > For additional commands, e-mail: users-h...@tapestry.apache.org
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > /ted
> > > >
> > > >
> > > >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > > > For additional commands, e-mail: users-h...@tapestry.apache.org
> > > >
> > > >
> > >
> > >
> > >
> > > --
> > > Howard M. Lewis Ship
> > >
> > > Creator Apache Tapestry and Apache HiveMind
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > > For additional commands, e-mail: users-h...@tapestry.apache.org
> > >
> > >
> >
> >
> > --
> > /ted
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > For additional commands, e-mail: users-h...@tapestry.apache.org
> >
> >
>
>

Reply via email to