You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by do...@apache.org on 2001/12/08 10:06:57 UTC

cvs commit: jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix BlockContext.java

donaldp     01/12/08 01:06:57

  Modified:    src/java/org/apache/avalon/phoenix BlockContext.java
  Log:
  Added some javadocs to some BlockContext methods indicating future directions.
  
  Also add Some commented out methods declarations and javadcs to indicate future directions.
  
  Revision  Changes    Path
  1.6       +67 -0     jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/BlockContext.java
  
  Index: BlockContext.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/BlockContext.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- BlockContext.java	2001/11/19 12:21:28	1.5
  +++ BlockContext.java	2001/12/08 09:06:57	1.6
  @@ -28,6 +28,8 @@
        * Base directory of .sar application.
        *
        * TODO: Should this be getHomeDirectory() or getWorkingDirectory() or other?
  +     * TODO: Should a Block be able to declare it doesn't use the Filesystem? If
  +     * it declares this then it would be an error to call this method.
        *
        * @return the base directory
        */
  @@ -65,6 +67,8 @@
       /**
        * Retrieve logger coresponding to named category.
        *
  +     * TODO: Determine if this is really necessary ?
  +     *
        * @return the logger
        */
       Logger getLogger( String name );
  @@ -76,4 +80,67 @@
        * @deprecated Use the getLogger(String) version
        */
       Logger getBaseLogger();
  +
  +    /**
  +     * Retrieve the proxy for this object.
  +     * Each Block is referenced by other Blocks via their Proxy. When Phoenix 
  +     * shuts down the Block, it can automatically invalidate the proxy. Thus 
  +     * any attempt to call a method on a "dead"/shutdown object will result in
  +     * an <code>IllegalStateException</code>. This is desirable as it will 
  +     * stop objects from using the Block when it is in an invalid state.
  +     *
  +     * <p>The proxy also allows Phoenix to associate "Context" information with
  +     * the object. For instance, a <code>Block</code> may expect to run with a 
  +     * specific ContextClassLoader set. However if this Block were to be passed
  +     * to another component that processed the Block in a thread that did not 
  +     * have the correct context information setup, then the Block could fail
  +     * to perform as expected. By passing the proxy instead, the correct context
  +     * information is maintained by Phoenix.</p>
  +     *
  +     * <p>Note that only interfaces that the Block declares as offered services
  +     * will actually be implemented by the proxy.</p>
  +     */
  +    //Object getProxy();
  +
  +    /**
  +     * This method is similar to <code>getProxy()</code> except that it operates
  +     * on arbitrary objects. It will in effect proxy all interfaces that the 
  +     * component supports.
  +     *
  +     * <p>Proxying arbitrary objects is useful for the same reason it is useful
  +     * to proxy the Block. Thus it is recomended that when needed you pass
  +     * Proxys of objects to minimize the chance of incorrect behaviour.</p>
  +     */
  +    //Object getProxy( Object other );
  +
  +    /**
  +     * This method generates a Proxy of the specified object using the 
  +     * specified interfaces. In other respects it is identical to 
  +     * getProxy( Object other )
  +     */
  +    //Object getProxy( Object other, Class[] interfaces );
  +
  +    /**
  +     * Retrieve a resource from the SAR file. The specified
  +     * name is relative the root of the archive. So you could 
  +     * use it to retrieve a html page from within sar by loading
  +     * the resource named "data/main.html" or similar.
  +     */
  +    //InputStream getResourceAsStream( String name );
  +
  +    /**
  +     * This method gives you access to a named ClassLoader. The ClassLoaders
  +     * for an application are declared in the <code>environment.xml</code>
  +     * descriptor.
  +     */
  +    //ClassLoader getClassLoader( String name );
  +
  +    /**
  +     * Retrieve the MBeanServer for this application.
  +     *
  +     * NOTE: Unsure if this will ever be implemented
  +     * may be retrievable via CM instead, or perhaps in
  +     * a directory or whatever.
  +     */
  +    //MBeanServer getMBeanServer();
   }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>