From: cvs@openprivacy.orgCVS update: talon/src/java/talon
Date: Sunday February 11, 19101 @ 14:02
Author: burton
CVSWEB Options: -------------------
Main CVSWeb: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi
View this module: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi/talon/src/java/talon
-----------------------------------
Update of /usr/local/cvs/public/talon/src/java/talon
In directory giga:/tmp/cvs-serv4717/src/java/talon
Modified Files:
ComponentFactory.java ComponentHandle.java HandleManager.java
Initializer.java
Log Message:
ug... added some more features necessary for M1. Stupid bug in java.lang.Properties which took a while to fix.
*****************************************************************
File: talon/src/java/talon/ComponentFactory.java
CVSWEB Options: -------------------
CVSWeb: Annotate this file: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi/talon/src/java/talon/ComponentFactory.java?annotate=1.6
CVSWeb: View this file: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi/talon/src/java/talon/ComponentFactory.java?rev=1.6&content-type=text/x-cvsweb-markup
CVSWeb: Diff to previous version: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi/talon/src/java/talon/ComponentFactory.java.diff?r1=1.6&r2=1.5
-----------------------------------
Index: talon/src/java/talon/ComponentFactory.java
diff -u talon/src/java/talon/ComponentFactory.java:1.5 talon/src/java/talon/ComponentFactory.java:1.6
--- talon/src/java/talon/ComponentFactory.java:1.5 Thu Feb 8 22:31:42 2001
+++ talon/src/java/talon/ComponentFactory.java Sun Feb 11 14:02:10 2001
@@ -10,14 +10,14 @@
package talon;
import java.util.*;
-
+import talon.interfaces.*;
import talon.implementations.*;
/**
* Create instances of components and manage their lifetimes.
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: ComponentFactory.java,v 1.5 2001/02/09 06:31:42 burton Exp $
+ * @version $Id: ComponentFactory.java,v 1.6 2001/02/11 22:02:10 burton Exp $
*/
public class ComponentFactory {
@@ -62,11 +62,13 @@
private static Hashtable singletons = new Hashtable();
+ private static Logger logger = null;
+
/**
* Static initializer...
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: ComponentFactory.java,v 1.5 2001/02/09 06:31:42 burton Exp $
+ * @version $Id: ComponentFactory.java,v 1.6 2001/02/11 22:02:10 burton Exp $
*/
static {
@@ -80,7 +82,7 @@
* Given a ComponentHandle get a Component
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: ComponentFactory.java,v 1.5 2001/02/09 06:31:42 burton Exp $
+ * @version $Id: ComponentFactory.java,v 1.6 2001/02/11 22:02:10 burton Exp $
*/
public static Component getInstance( ComponentHandle handle )
throws TalonException {
@@ -93,9 +95,8 @@
//the given interface... throw an Exception because the resulting object
//won't be able to be (cast) and the application will get a RuntimeException
//write a use case for this.
-
-
+
//determine what lifetime to use
String lifetime = handle.getLifetime();
@@ -113,7 +114,7 @@
* Get a component instantiating a new one everytime we need it.
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: ComponentFactory.java,v 1.5 2001/02/09 06:31:42 burton Exp $
+ * @version $Id: ComponentFactory.java,v 1.6 2001/02/11 22:02:10 burton Exp $
*/
private static Component getDemandBasedInstance( ComponentHandle handle )
throws TalonException {
@@ -128,7 +129,7 @@
* Get a singleton or create it if necessary.
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: ComponentFactory.java,v 1.5 2001/02/09 06:31:42 burton Exp $
+ * @version $Id: ComponentFactory.java,v 1.6 2001/02/11 22:02:10 burton Exp $
*/
private static Component getSingletonBasedInstance( ComponentHandle handle )
throws TalonException {
@@ -152,7 +153,7 @@
* Perform basic instantiation on a component.
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: ComponentFactory.java,v 1.5 2001/02/09 06:31:42 burton Exp $
+ * @version $Id: ComponentFactory.java,v 1.6 2001/02/11 22:02:10 burton Exp $
*/
private static Component instantiateComponent( ComponentHandle handle )
throws TalonException {
@@ -165,7 +166,8 @@
return comp;
} catch ( Throwable t ) {
- throw new NotFoundException( t.getMessage() );
+ t.printStackTrace();
+ throw new TalonException( t.getMessage() );
}
}
@@ -174,10 +176,33 @@
* Put a singleton to the Factory.
* FIXME: Should this throw an Exception if this object is already present?
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: ComponentFactory.java,v 1.5 2001/02/09 06:31:42 burton Exp $
+ * @version $Id: ComponentFactory.java,v 1.6 2001/02/11 22:02:10 burton Exp $
*/
static void putSingleton( ComponentHandle handle, Component comp ) {
singletons.put( handle, comp );
+ }
+
+ /**
+ * A generic component with Talon has access to the default logger stream.
+ * Some internal Talon classes ( not components ) might want to get this
+ * stream so it can log. This is provided for easy of use so that they
+ * don't have to worry about fetching an object from the component system.
+ *
+ * @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
+ * @version $Id: ComponentFactory.java,v 1.6 2001/02/11 22:02:10 burton Exp $
+ */
+ public static Logger getLogger() {
+ return ComponentFactory.logger;
+ }
+
+ /**
+ *
+ *
+ * @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
+ * @version $Id: ComponentFactory.java,v 1.6 2001/02/11 22:02:10 burton Exp $
+ */
+ public static void setLogger( Logger logger ) {
+ ComponentFactory.logger = logger;
}
}
*****************************************************************
File: talon/src/java/talon/ComponentHandle.java
CVSWEB Options: -------------------
CVSWeb: Annotate this file: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi/talon/src/java/talon/ComponentHandle.java?annotate=1.7
CVSWeb: View this file: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi/talon/src/java/talon/ComponentHandle.java?rev=1.7&content-type=text/x-cvsweb-markup
CVSWeb: Diff to previous version: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi/talon/src/java/talon/ComponentHandle.java.diff?r1=1.7&r2=1.6
-----------------------------------
Index: talon/src/java/talon/ComponentHandle.java
diff -u talon/src/java/talon/ComponentHandle.java:1.6 talon/src/java/talon/ComponentHandle.java:1.7
--- talon/src/java/talon/ComponentHandle.java:1.6 Thu Feb 8 22:31:42 2001
+++ talon/src/java/talon/ComponentHandle.java Sun Feb 11 14:02:10 2001
@@ -18,20 +18,23 @@
* Object which is used to find components within the system.
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: ComponentHandle.java,v 1.6 2001/02/09 06:31:42 burton Exp $
+ * @version $Id: ComponentHandle.java,v 1.7 2001/02/11 22:02:10 burton Exp $
*/
public class ComponentHandle {
-
- public static final String DEPLOY_PROPERTY_INTERFACE = "_interface";
- public static final String DEPLOY_PROPERTY_IMPLEMENTATION = "_implementation";
- public static final String DEPLOY_PROPERTY_LIFETIME = "_lifetime";
- public static final String DEPLOY_PROPERTY_NAME = "_name";
+
+ public static final String DEPLOY_PROPERTY_INTERFACE = "talon_interface";
+ public static final String DEPLOY_PROPERTY_IMPLEMENTATION = "talon_implementation";
+ public static final String DEPLOY_PROPERTY_LIFETIME = "talon_lifetime";
+ public static final String DEPLOY_PROPERTY_NAME = "talon_name";
+ public static final String DEPLOY_PROPERTY_DESCRIPTION = "talon_description";
private String _interface = null;
private String _implementation = null;
private String _lifetime = null;
+
+ private String _description = null;
private PropertyManager initProperties = new SimplePropertyManager();
@@ -47,7 +50,7 @@
* Create a basic ComponentHandle
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: ComponentHandle.java,v 1.6 2001/02/09 06:31:42 burton Exp $
+ * @version $Id: ComponentHandle.java,v 1.7 2001/02/11 22:02:10 burton Exp $
*/
public ComponentHandle() {}
@@ -56,7 +59,7 @@
* pulled from the Talon properties.
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: ComponentHandle.java,v 1.6 2001/02/09 06:31:42 burton Exp $
+ * @version $Id: ComponentHandle.java,v 1.7 2001/02/11 22:02:10 burton Exp $
*/
public ComponentHandle( String _interface ) {
@@ -68,7 +71,7 @@
* The interface and classname.
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: ComponentHandle.java,v 1.6 2001/02/09 06:31:42 burton Exp $
+ * @version $Id: ComponentHandle.java,v 1.7 2001/02/11 22:02:10 burton Exp $
*/
public ComponentHandle( String _interface,
String _implementation ) {
@@ -83,7 +86,7 @@
* The interface and classname. You may specify a PropertyManager here.
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: ComponentHandle.java,v 1.6 2001/02/09 06:31:42 burton Exp $
+ * @version $Id: ComponentHandle.java,v 1.7 2001/02/11 22:02:10 burton Exp $
*/
public ComponentHandle( String _interface,
String _classname,
@@ -98,7 +101,7 @@
* Also set the name.
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: ComponentHandle.java,v 1.6 2001/02/09 06:31:42 burton Exp $
+ * @version $Id: ComponentHandle.java,v 1.7 2001/02/11 22:02:10 burton Exp $
*/
public ComponentHandle( String name,
String _interface,
@@ -161,31 +164,45 @@
}
/**
- *
- *
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: ComponentHandle.java,v 1.6 2001/02/09 06:31:42 burton Exp $
+ * @version $Id: ComponentHandle.java,v 1.7 2001/02/11 22:02:10 burton Exp $
*/
public String getLifetime() {
return this._lifetime;
}
+
/**
- *
- *
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: ComponentHandle.java,v 1.6 2001/02/09 06:31:42 burton Exp $
+ * @version $Id: ComponentHandle.java,v 1.7 2001/02/11 22:02:10 burton Exp $
*/
public ComponentHandle setLifetime( String _lifetime ) {
this._lifetime = _lifetime;
return this;
}
+
+ /**
+ * @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
+ * @version $Id: ComponentHandle.java,v 1.7 2001/02/11 22:02:10 burton Exp $
+ */
+ public String getDescription() {
+ return this._description;
+ }
/**
+ * @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
+ * @version $Id: ComponentHandle.java,v 1.7 2001/02/11 22:02:10 burton Exp $
+ */
+ public ComponentHandle setDescription( String _description ) {
+ this._description = _description;
+ return this;
+ }
+
+ /**
* @see Component
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: ComponentHandle.java,v 1.6 2001/02/09 06:31:42 burton Exp $
+ * @version $Id: ComponentHandle.java,v 1.7 2001/02/11 22:02:10 burton Exp $
*/
public PropertyManager getInitProperties() {
return this.initProperties;
@@ -200,7 +217,7 @@
* Dump Handle information..
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: ComponentHandle.java,v 1.6 2001/02/09 06:31:42 burton Exp $
+ * @version $Id: ComponentHandle.java,v 1.7 2001/02/11 22:02:10 burton Exp $
*/
public String toString() {
return this.getName() + ":" + this.getInterface() + " -> " + this.getImplementation();
*****************************************************************
File: talon/src/java/talon/HandleManager.java
CVSWEB Options: -------------------
CVSWeb: Annotate this file: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi/talon/src/java/talon/HandleManager.java?annotate=1.3
CVSWeb: View this file: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi/talon/src/java/talon/HandleManager.java?rev=1.3&content-type=text/x-cvsweb-markup
CVSWeb: Diff to previous version: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi/talon/src/java/talon/HandleManager.java.diff?r1=1.3&r2=1.2
-----------------------------------
Index: talon/src/java/talon/HandleManager.java
diff -u talon/src/java/talon/HandleManager.java:1.2 talon/src/java/talon/HandleManager.java:1.3
--- talon/src/java/talon/HandleManager.java:1.2 Fri Feb 9 02:44:13 2001
+++ talon/src/java/talon/HandleManager.java Sun Feb 11 14:02:10 2001
@@ -11,48 +11,108 @@
import java.util.*;
+import talon.interfaces.*;
+import talon.implementations.SimplePropertyManager;
+
/**
- * Responsible for keeping track of handles and providign methods for fetching
+ * Responsible for keeping track of handles and providing methods for fetching
* them.
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: HandleManager.java,v 1.2 2001/02/09 10:44:13 burton Exp $
+ * @version $Id: HandleManager.java,v 1.3 2001/02/11 22:02:10 burton Exp $
*/
public class HandleManager {
- private static Hashtable byName = new Hashtable();
- private static Hashtable byInterface = new Hashtable();
- private static Hashtable byImplementation = new Hashtable();
+ private static SimplePropertyManager byName = new SimplePropertyManager();
+ private static SimplePropertyManager byInterface = new SimplePropertyManager();
+ private static SimplePropertyManager byImplementation = new SimplePropertyManager();
- public static void addComponentHandle( ComponentHandle handle ) {
+ public static void registerComponentHandle( ComponentHandle handle ) {
+ Logger logger = ComponentFactory.getLogger();
+
+ logger.message( "registering handle:" + handle.toString() );
+
//register by name...
if ( handle.getName() != null ) {
- byName.put( handle.getName(), handle );
+ logger.message( "registering handle (byName):" + handle.toString() );
+ byName.setProperty( handle.getName(), handle );
}
//register by interface
if ( handle.getInterface() != null ) {
- byInterface.put( handle.getInterface(), handle );
+ logger.message( "registering handle (byInterface):" + handle.toString() );
+ byInterface.setProperty( handle.getInterface(), handle );
}
//register by implementation
if ( handle.getImplementation() != null ) {
- byInterface.put( handle.getImplementation(), handle );
+ logger.message( "registering handle (byImplementation):" + handle.toString() );
+ byImplementation.setProperty( handle.getImplementation(), handle );
}
}
+
+ /**
+ * Get a handle by its name
+ *
+ * @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
+ * @version $Id: HandleManager.java,v 1.3 2001/02/11 22:02:10 burton Exp $
+ */
+ public static ComponentHandle byName( String _name )
+ throws TalonException {
+
+ ComponentHandle handle = (ComponentHandle)byName.getProperty( _name );
+
+ if ( handle == null ) {
+ throw new NotFoundException( "ComponentHandle not found: " + _name );
+ }
+
+
+ return handle;
- public static ComponentHandle byName( String _name ) {
- return (ComponentHandle)byName.get( _name );
}
- public static ComponentHandle byInterface( String _interface ) {
- return (ComponentHandle)byInterface.get( _interface );
+ /**
+ * Get a handle by its interface
+ *
+ * @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
+ * @version $Id: HandleManager.java,v 1.3 2001/02/11 22:02:10 burton Exp $
+ */
+ public static ComponentHandle byInterface( String _interface )
+ throws TalonException {
+
+ return (ComponentHandle)byInterface.getProperty( _interface );
+
}
+
+ /**
+ * Get a handle by its impl
+ *
+ * @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
+ * @version $Id: HandleManager.java,v 1.3 2001/02/11 22:02:10 burton Exp $
+ */
+ public static ComponentHandle byImplementation( String _implementation )
+ throws TalonException {
- public static ComponentHandle byImplementation( String _implementation ) {
- return (ComponentHandle)byImplementation.get( _implementation );
+ ComponentHandle handle = (ComponentHandle)byImplementation.getProperty( _implementation );
+
+ if ( handle == null ) {
+ throw new NotFoundException( "ComponentHandle not found: " + _implementation );
+ }
+
+ return handle;
+
}
+ /**
+ * Get all registered components
+ *
+ * @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
+ * @version $Id: HandleManager.java,v 1.3 2001/02/11 22:02:10 burton Exp $
+ */
+ public static PropertyManager getRegistry() {
+ return byName;
+ }
+
}
*****************************************************************
File: talon/src/java/talon/Initializer.java
CVSWEB Options: -------------------
CVSWeb: Annotate this file: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi/talon/src/java/talon/Initializer.java?annotate=1.6
CVSWeb: View this file: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi/talon/src/java/talon/Initializer.java?rev=1.6&content-type=text/x-cvsweb-markup
CVSWeb: Diff to previous version: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi/talon/src/java/talon/Initializer.java.diff?r1=1.6&r2=1.5
-----------------------------------
Index: talon/src/java/talon/Initializer.java
diff -u talon/src/java/talon/Initializer.java:1.5 talon/src/java/talon/Initializer.java:1.6
--- talon/src/java/talon/Initializer.java:1.5 Fri Feb 9 02:44:13 2001
+++ talon/src/java/talon/Initializer.java Sun Feb 11 14:02:10 2001
@@ -18,7 +18,7 @@
* Handles intializing Talon and performing all startup procedures.
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: Initializer.java,v 1.5 2001/02/09 10:44:13 burton Exp $
+ * @version $Id: Initializer.java,v 1.6 2001/02/11 22:02:10 burton Exp $
*/
public class Initializer {
@@ -43,7 +43,7 @@
* Initialize Talon if necessary.
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: Initializer.java,v 1.5 2001/02/09 10:44:13 burton Exp $
+ * @version $Id: Initializer.java,v 1.6 2001/02/11 22:02:10 burton Exp $
*/
public static void init() {
@@ -61,8 +61,8 @@
project = "talon";
}
- PropertyManager pm = new FilePropertyManager( ComponentFactory.TALON_DEFAULT_PROPERTY_MANAGER,
- project );
+ FilePropertyManager pm = new FilePropertyManager( ComponentFactory.TALON_DEFAULT_PROPERTY_MANAGER,
+ project );
ComponentFactory.putSingleton( ComponentFactory.TALON_DEFAULT_PROPERTY_MANAGER, (Component)pm );
@@ -70,11 +70,13 @@
pm.getBoolean( TALON_LOG_DEBUG_KEY ),
pm.getBoolean( TALON_LOG_STDOUT_KEY ),
pm.getBoolean( TALON_LOG_STDERR_KEY ),
- pm.getProperty( TALON_PROJECT_KEY ) );
+ pm.getString( TALON_PROJECT_KEY ) );
+ ComponentFactory.setLogger( logger );
+
ComponentFactory.putSingleton( ComponentFactory.TALON_DEFAULT_LOGGER, (Component)logger );
- logger.message( "Talon initialized..." );
+ logger.message( "Talon initialized via file " + pm.getPropertyFilename() );
logger.message( pm.toString() );
logger.message( logger.toString() );
@@ -87,30 +89,33 @@
while ( true ) {
- Hashtable ht = pm.getGroup( "talon.component." + i );
+ PropertyManager group = pm.getGroup( "talon.component." + i );
- if ( ht == null ) {
+ if ( group == null ) {
break;
}
//create the component handle
ComponentHandle handle = new ComponentHandle();
- handle.setName( (String)ht.get( ComponentHandle.DEPLOY_PROPERTY_NAME ));
- handle.setInterface( (String)ht.get( ComponentHandle.DEPLOY_PROPERTY_INTERFACE ) );
- handle.setImplementation( (String)ht.get( ComponentHandle.DEPLOY_PROPERTY_IMPLEMENTATION ) );
- handle.setLifetime( (String)ht.get( ComponentHandle.DEPLOY_PROPERTY_LIFETIME ) );
+ handle.setName( group.getString( ComponentHandle.DEPLOY_PROPERTY_NAME ));
+ handle.setInterface( group.getString( ComponentHandle.DEPLOY_PROPERTY_INTERFACE ) );
+ handle.setImplementation( group.getString( ComponentHandle.DEPLOY_PROPERTY_IMPLEMENTATION ) );
+ handle.setLifetime( group.getString( ComponentHandle.DEPLOY_PROPERTY_LIFETIME ) );
+ handle.setDescription( group.getString( ComponentHandle.DEPLOY_PROPERTY_DESCRIPTION ) );
//add the rest of the parameters to the component...
- Enumeration keys = ht.keys();
+ Enumeration keys = group.getKeys();
while ( keys.hasMoreElements() ) {
String name = (String)keys.nextElement();
- String value = (String)ht.get( name );
+ String value = group.getString( name );
handle.getInitProperties().setProperty( name, value );
}
logger.message( handle.toString() );
+
+ HandleManager.registerComponentHandle( handle );
++i;
}
@@ -129,7 +134,7 @@
* Return true if Talon is initialized.
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: Initializer.java,v 1.5 2001/02/09 10:44:13 burton Exp $
+ * @version $Id: Initializer.java,v 1.6 2001/02/11 22:02:10 burton Exp $
*/
public static boolean isInitialized() {
return initialized;
@@ -139,7 +144,7 @@
* Return true if Talon is working.
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: Initializer.java,v 1.5 2001/02/09 10:44:13 burton Exp $
+ * @version $Id: Initializer.java,v 1.6 2001/02/11 22:02:10 burton Exp $
*/
public static boolean isWorking() {
return working;
@@ -149,7 +154,7 @@
* Return true if Talon should be initialized.
*
* @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</a>
- * @version $Id: Initializer.java,v 1.5 2001/02/09 10:44:13 burton Exp $
+ * @version $Id: Initializer.java,v 1.6 2001/02/11 22:02:10 burton Exp $
*/
public static boolean shouldInitialize() {
return isWorking() == false && isInitialized() == false;
This archive was generated by hypermail 2b30 : Sun Feb 11 2001 - 14:03:12 PST