Oh and heres the diff
--
Cheers,
Pete
------------------------------------------------------------
militant agnostic: i don't know, and you don't know either.
------------------------------------------------------------
--- Begin Message ---
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: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
--- End Message ---
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>