The action approach is the easiest way to add custom objects to the cocoon
object model (at least that I know of, perhaps there is a better way?) I
don't think that this adds any significant overhead to the request since
actions are thread safe and can be pooled (now if your action has to do a
lot of work to create the business object-- e.g.  calling a database--
then this could add to the overall response time.)

Regards,

--mike

On Fri, 21 Dec 2001 [EMAIL PROTECTED] wrote:

> Thanks - I've been discussing this on the user list too.
>
> what I want to do is instantiate myBusinessObject and place it into the
> objectModel so I can do exactly that (except you do it in the pipeline not
> the <generators> section unless I'm mistaken :)
>
> Why?
> I would like to create an object that provides metadata about the site
> structure that can be accessed by various Velocity or JSP (or whatever)
> components. This (these) may also provide interfaces to other business
> logic.
>
> The sensible place seems to be the objectModel.
>
> David Rosenstrauch suggested I use actions to populate the Map.
> This seems good and we now have a custom action that simply adds a component
> to the map where Velocity can be confgigured to look for it.
>
> However, this requires we stick an action in every <match>; I'm still
> looking for a place to ensure that the objectModel is updated for *every*
> request.
>
> One approach that may work is to have a pattern that matches every request
> and simply calls an action that modifies the objectModel and returns null.
> But that sounds like it could be inefficient.
>
> David
>
>
> > -----Original Message-----
> > From: Michael McKibben [mailto:[EMAIL PROTECTED]]
> > Sent: 21 December 2001 18:28
> > To: cocoon-dev
> > Subject: Re: How do I add objects to the objectModel Map
> >
> >
> >
> > This feature is for exporting objects already in the Cocoon object map
> > to
> > the Velocity template context. So they must already exist.
> > But let's say
> > you knew that, then in your sitemap, here is how you would make some
> > object named "myBusinessObject" in the cocoon object map available to
> > your
> > velocity template as "$myBusinessObject":
> >
> > (in your sitemap.xmap)
> > <generators default="file">
> >  ...
> >  <generator name="velocity"
> > src="org.apache.cocoon.generation.VelocityGenerator" pool-max="32"
> > pool-min="16" pool-grow="4">
> >    <export-object key="myBusinessObject" name="myBusinessObject"/>
> >  </generator>
> >  ...
> >  </generators>
> >
> > Hope this helps!
> >
> > --mike
> >
> > On Tue, 18 Dec 2001 [EMAIL PROTECTED] wrote:
> >
> > > Hi
> > >
> > > I hope this is straightforward...
> > >
> > > How do I add objects to the objectModel Map?
> > >
> > >
> > http://xml.apache.org/cocoon/userdocs/generators/velocity-gene
> rator.html
> > says:
> > <export-object key="objectMapKey" name="velocityContextName"/>
> (optional;
> > 0..n) - Export the object specified by key from the Cocoon object map
> to the
> > Velocity context of the template. The object can be accessed from the
> > template as name. Be careful to use a valid VTL variable name.
> >
> > I've looked through the code but can't figure this one out.
> >
> > David
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, email: [EMAIL PROTECTED]
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, email: [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, email: [EMAIL PROTECTED]
>


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

Reply via email to