Thanks very much - you were extremely thorough.  I'll process your comments 
now. 
 
Thanks, 
Alex 
 
>  
> From: Stephen McConnell <[EMAIL PROTECTED]> 
> Date: 2003/08/18 Mon PM 01:02:29 EDT 
> To: Avalon framework users <[EMAIL PROTECTED]> 
> Subject: Re: Questions regarding the Context interface 
>  
>  
>  
> [EMAIL PROTECTED] wrote: 
>  
> >Hello,  
> >  
> >My questions regard the use of the Context interface.  I have used the less  
> >portable means for getting a context object from the contextualize method 
in  
> >the past when using phoenix for my components - namely the following form:  
> >  
> >  public void contextualize( Context context )  
> >         throws ContextException  
> >     {  
> >         BlockContext tContext = ( BlockContext ) context;  
> >     }  
> >  
> >As you can see the BlockContext is from phoenix.  I found myself doing this  
> >because I could get a path to the base phoenix directory via the  
> >getBaseDirectory() method.  I would like to use the recommended portable  
> >mechanism now that LDAPd is going to use more than one container.  The  
> >question is how do I make the container add the appropriate Context entry.  
I  
> >would image that would be container implementation specific.  So how would 
I  
> >add this entry using say Merlin and Fortress:  
> >  
> >   <entry key="avalon:work" type="java.io.File"/>  
> >   
> > 
>  
> If you declare the following <entry/> declaration in a type descriptor  
> (manually or via an @avalon.entry) then Merlin will take care of this  
> for you.  This declaration is based on the meta-info model declarations  
> which means its as close as you can get to an Avalon standard. 
>  
>   <context> 
>     <entry key="urn:avalon:home" type="java.io.File"/> 
>   </context> 
>  
> Please note that the following two file related keys are available  
> (which is slighlty different to what you described above): 
>  
>   "urn:avalon:work" - a transient directory that will be desoyed 
>                       following decommissioning of the component 
>   "urn:avalon:home" - persistent directory for the component 
>  
>  
> >to be able to get  
> >  
> >   File workDirectory = ( File ) context.get( "avalon:work" ) ;  
> >  
> >as is the recommended way in the javadocs page for the Context interface 
here:  
> >  
> 
>http://avalon.apache.org/framework/api/org/apache/avalon/framework/context/Context.html
>  
> > 
>  
> If you want to use a friendly castable context interface then you need  
> to declare this under the @avalon.context type="MyContextInterface" tag  
> which generates the following: 
>  
>   <context type="MyContextInterface"> 
>     <!-- plus any entries --> 
>   </context> 
>  
> In your code you can safely case the supplied context to the declared  
> interface just like you do in Phoenix. This is also covered by the  
> meta-info model but Merlin is probably the only container to provide  
> support for this capability at this time. 
>  
>    public void contextualize( Context context ) 
>    { 
>        MyContextInterface myContext = (MyContextInterface) context; 
>        File file = myContext.getMyFile(); 
>    } 
>  
> There is also a working demonstration of this in the merlin tutorial  
> content. 
>  
> $ cd merlin-platform\tutorials\context_casting 
> $ maven 
> $ merlin -execute target\classes 
>  
> [INFO   ] (tutorial.hello): listing values resolved from domain specific  
> context 
> [INFO   ] (tutorial.hello): supplied context class:  
> tutorial.DemoContextProvider 
> [INFO   ] (tutorial.hello): name: hello 
> [INFO   ] (tutorial.hello): partition: /tutorial/ 
> [INFO   ] (tutorial.hello): home: [you-directory]\home\tutorial\hello 
> [INFO   ] (tutorial.hello): temp: C:\TEMP\tutorial\hello 
>  
> Stephen. 
>  
> >  
> >Thanks much,  
> >Alex  
> >  
> > 
> > 
> >--------------------------------------------------------------------- 
> >To unsubscribe, e-mail: [EMAIL PROTECTED] 
> >For additional commands, e-mail: [EMAIL PROTECTED] 
> > 
> > 
> > 
> >   
> > 
>  
> --  
>  
> Stephen J. McConnell 
> mailto:[EMAIL PROTECTED] 
> http://www.osm.net 
>  
> Sent via James running under Merlin as an NT service. 
> http://avalon.apache.org/sandbox/merlin 
>  
>  
>  
>  
> --------------------------------------------------------------------- 
> 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