On 13 Jun 2004, at 22:27, Sylvain Wallez wrote:

Jeremy Quinn wrote:

Hi All

I am working on a search form to add to the Lucene samples, that uses CForms to manipulate a QueryBean that performs queries for you. The Bean assembles LuceneQueries directly, so you don't use text expressions, you add Criteria to the Query's CForms repeater.

I am trying to work out how to get the Avalon Context's "Constants.CONTEXT_WORK_DIR" from within FlowScript.

I think I must be confused between org.apache.avalon.framework.context.Context and
org.apache.cocoon.environment.Context.

My FlowScript gets a LuceneCocoonSearcher and needs to set it's Directory, all of the other Components that use this Searcher are contextualized, so have access to the work directory (which is the default location for Lucene Indexes).

Is there a way to do this from FlowScript?


Yes, indirectly, by calling cocoon.createObject on the following class:

public void ContextAccess implements Contextualizable {
   Context avalonContext;

   public void contextualize(Context avalonContext) {
       this.avalonContext = avalonContext;
   }

   Context getAvalonContext() {
       return this.avalonContext;
   }
}

And in your flowscript just type:
var avalonContext = cocoon.createObject(my.package.ContextAccess).avalonContext;


Many thanks.



This also has some interesting side effects as the full, unrestricted object model is available through the Avalon context (see ContextHelper).

Remember "Less is more... or less" [1]? I really think it's time to remove the arbitrary limitations of the FOM.

Because I would otherwise be committing this class to Cocoon, as it is needed for what I am adding to Lucene, and it makes a mockery of the limitations .....

Sylvain

many thanks for your help.

regards Jeremy

Attachment: smime.p7s
Description: S/MIME cryptographic signature



Reply via email to