mcconnell    02/02/04 09:32:09

  Modified:    apps/enterprise/pss build.xml
               apps/enterprise/pss/dist psdl-2.0.1.jar pss-2.0.1.jar
               apps/enterprise/pss/src/java/org/apache/pss Initializer.java
               apps/enterprise/pss/src/java/org/apache/pss/connector/database
                        DatabaseSessionPool.java
               apps/enterprise/pss/src/java/org/apache/pss/connector/file
                        FileSessionPool.java
  Added:       apps/enterprise/pss build.properties
  Removed:     apps/enterprise/pss pss.properties
  Log:
  runtime correction to interceptor management
  
  Revision  Changes    Path
  1.5       +4 -4      jakarta-avalon-cornerstone/apps/enterprise/pss/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/enterprise/pss/build.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- build.xml 2 Feb 2002 18:35:36 -0000       1.4
  +++ build.xml 4 Feb 2002 17:32:08 -0000       1.5
  @@ -7,7 +7,7 @@
   <project name="pss" default="help" basedir=".">
   
     <property file="local.properties"/>
  -  <property file="pss.properties"/>
  +  <property file="build.properties"/>
   
     <target name="help" >
       <echo>
  @@ -96,7 +96,7 @@
   
     <target name="compiler" depends="compiler.context" 
unless="compiler.uptodate" >
         <echo message="Building PSDL Compiler."/>
  -      <javac debug="off" destdir="${build}/compiler/lib" deprecation="true">
  +      <javac debug="off" destdir="${build}/compiler/lib" deprecation="true" 
target="1.2" >
           <src path="${src}/java" />
           <include name="org/apache/pss/compiler/**"/>
           <include name="org/apache/pss/wrapper/**"/>
  @@ -157,7 +157,7 @@
   
     <target name="pss" depends="pss.idl,pss.build.context" 
unless="pss.uptodate" >
         <echo message="Building PSS Implementation."/>
  -      <javac debug="off" destdir="${build}/pss/lib" deprecation="true">
  +      <javac debug="off" destdir="${build}/pss/lib" deprecation="true" 
target="1.2" >
           <classpath>
            <path refid="project.classpath" />
          </classpath>
  @@ -243,7 +243,7 @@
   
     <target name="test.build.action" >
         <echo message="Compilation Test for ${connector} connector."/>
  -      <javac debug="off" destdir="${build}/test/${connector}/lib" 
deprecation="true">
  +      <javac debug="off" destdir="${build}/test/${connector}/lib" 
deprecation="true" target="1.2" >
           <classpath>
            <path refid="project.classpath" />
             <pathelement path="${dist}/${pss.jar}" />
  
  
  
  1.1                  
jakarta-avalon-cornerstone/apps/enterprise/pss/build.properties
  
  Index: build.properties
  ===================================================================
  
  #
  # The pss.properties file is read in by the build.xml file.  It 
  # contains information related to resource dependencies and paths
  # to related cornerstone resource
  #
  
  orb.path=../orb/lib
  orb.jar=openorb-1.2.2.jar
  idl.jar=openorb_tools-1.2.2.jar
  
  ots.path=../ots/lib
  ots.jar=openorb_ots-1.2.1.jar
  ots.jta.jar=jta_1.0.1.jar
  
  
  
  
  1.3       +52 -52    
jakarta-avalon-cornerstone/apps/enterprise/pss/dist/psdl-2.0.1.jar
  
        <<Binary file>>
  
  
  1.4       +179 -171  
jakarta-avalon-cornerstone/apps/enterprise/pss/dist/pss-2.0.1.jar
  
        <<Binary file>>
  
  
  1.5       +152 -50   
jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/Initializer.java
  
  Index: Initializer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/Initializer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Initializer.java  2 Feb 2002 10:29:54 -0000       1.4
  +++ Initializer.java  4 Feb 2002 17:32:09 -0000       1.5
  @@ -22,8 +22,10 @@
   import org.apache.avalon.framework.logger.LogEnabled;
   import org.apache.avalon.framework.logger.LogKitLogger;
   import org.apache.avalon.framework.logger.AvalonFormatter;
  +import org.apache.avalon.framework.configuration.Configurable;
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
  +import org.apache.avalon.framework.CascadingRuntimeException;
   import org.apache.log.output.io.FileTarget;
   import org.apache.log.Hierarchy;
   
  @@ -72,33 +74,91 @@
    * </pre>
    */
   public class Initializer extends LocalObject
  -         implements ORBInitializer
  +         implements ORBInitializer, LogEnabled, Configurable
   {
   
  +    
//==========================================================================
  +    // static
  +    
//==========================================================================
  +
  +    public static FileSessionManager getFileSessionManager()
  +    {
  +        if( m_file_session_manager == null ) throw new IllegalStateException(
  +         "Initalizer has not been initialized.");
  +        return m_file_session_manager;
  +    }
  +
  +    public static DatabaseSessionManager getDatabaseSessionManager()
  +    {
  +        if( m_database_session_manager == null ) throw new 
IllegalStateException(
  +         "Initalizer has not been initialized.");
  +        return m_database_session_manager;
  +    }
  +
       private static final String PSS = "PSS:";
   
       private final static String DEFAULT_FORMAT =
           "%{time} [%7.7{priority}] (%{category}): %{message}\\n%{throwable}";
   
  +    private static FileSessionManager m_file_session_manager;
   
  -    /**
  -     * The file session manager.
  -     */
  -    public static FileSessionManager _session_manager_file;
  +    private static DatabaseSessionManager m_database_session_manager;
  +    
  +    
//==========================================================================
  +    // state
  +    
//==========================================================================
   
  -    /**
  -     * The database session manager.
  -     */
  -    public static DatabaseSessionManager _session_manager_database;
  +    private Logger m_logger;
   
  -    private Logger logger;
  +    private Configuration m_config;
   
  +    
//==========================================================================
  +    // constructor
  +    
//==========================================================================
   
       /**
        * Constructor for the Initializer object
        */
       public Initializer() { }
   
  +    
//==========================================================================
  +    // LogEnabled
  +    
//==========================================================================
  +
  +   /**
  +    * Sets the logging channel for this instance.
  +    * @param logger the logging channel
  +    */
  +    public void enableLogging( Logger logger )
  +    {
  +        m_logger = logger;
  +    }
  +
  +   /**
  +    * Returns the logging channel.
  +    * @return Logger the logging channel.
  +    */
  +    protected Logger getLogger()
  +    {
  +        return m_logger;
  +    }
  +
  +    
//==========================================================================
  +    // Configurable
  +    
//==========================================================================
  +
  +   /**
  +    * Set the static configuration for this instance.
  +    */
  +    public void configure( Configuration config )
  +    {
  +        if( getLogger().isDebugEnabled() ) 
getLogger().debug("configuration");
  +        this.m_config = config;
  +    }
  +
  +    
//==========================================================================
  +    // ORBInitializer
  +    
//==========================================================================
   
       /**
        * Registers inital references to the file, database and memory 
connectors.
  @@ -110,98 +170,135 @@
        */
       public void pre_init( ORBInitInfo orbinitinfo )
       {
  +
  +        if( getLogger() != null ) if( getLogger().isDebugEnabled() ) 
getLogger().debug("pre_init");
  +
           PIDFactory.info = orbinitinfo;
   
  +        //
  +        // get the implmentation default configuration
  +        //
  +
           Configuration defaults = null;
           String vendor = "NULL";
           try
           {
  -            defaults = getConfiguration( this.getClass(), 
"org/apache/pss/config.xml" );
  +            defaults = getConfiguration( "org/apache/pss/config.xml" );
               vendor = defaults.getAttribute("vendor","APACHE") + ":" ;
           }
           catch ( Throwable e )
           {
  -            System.out.println("Could not load configuration.");
  -             e.printStackTrace();
  +            final String error = "Could not load default configuration.";
  +             throw new CascadingRuntimeException( error, e );
           }
   
  +        //
  +        // if a logging channel has not been declared then bootstrap 
  +        // a channel now
  +        //
  +
           String loggingPath = "";
  -        try
  +        if( getLogger() == null ) try
           {
               loggingPath = defaults.getChild("logging").getAttribute("file");
               String loggingPriority = 
defaults.getChild("logging").getAttribute("priority", "INFO" );
  -            logger = createLogger( loggingPath, loggingPriority );
  +            m_logger = createLogger( loggingPath, loggingPriority );
           }
           catch ( Throwable e )
           {
               final String error = "Could not create logger on path: " + 
loggingPath;
  -            throw new INITIALIZE( error + " due to " + e.toString());
  +             throw new CascadingRuntimeException( error, e );
           }
   
  +        //
  +        // if this instance has been configured, use the supplied 
configuration
  +        // for the remainder fo the operations, otherwise use the defautlt 
  +        // configuration
  +        //
  +
  +        Configuration config = m_config;
  +        if( config == null )
  +        {
  +            if( getLogger().isDebugEnabled() ) getLogger().debug("bootstrap 
configuration");
  +            config = defaults;
  +        }
  +        else
  +        {
  +            if( getLogger().isDebugEnabled() ) getLogger().debug("managed 
configuration");
  +        }
  +
  +        //
  +        // create a singleton file connector
  +        //
  +
           try
           {
  -            Configuration config = 
defaults.getChild("connector").getChild("file");
  -            final FileConnector connector = new FileConnector( config, 
orbinitinfo );
  -            connector.enableLogging( logger.getChildLogger("file") );
  +            Configuration c = config.getChild("connector").getChild("file");
  +            final FileConnector connector = new FileConnector( c, 
orbinitinfo );
  +            connector.enableLogging( getLogger().getChildLogger("file") );
               orbinitinfo.register_initial_reference( 
  -              PSS + vendor + config.getAttribute("name"), connector );
  +              PSS + vendor + "file", connector );
           }
           catch ( Throwable e )
           {
  -            throw new INITIALIZE( "Unable to register file connector due to 
" + e.toString());
  +            final String error = "Unexpected exception while attempting to 
register the file connector.";
  +            throw new CascadingRuntimeException( error, e );
           }
   
  +        //
  +        // create a singleton database connector
  +        //
  +
           try
           {
  -            Configuration config = 
defaults.getChild("connector").getChild("database");
  -            final DatabaseConnector connector = new DatabaseConnector( 
config, orbinitinfo );
  -            connector.enableLogging( logger.getChildLogger("db") );
  +            Configuration c = 
config.getChild("connector").getChild("database");
  +            final DatabaseConnector connector = new DatabaseConnector( c, 
orbinitinfo );
  +            connector.enableLogging( getLogger().getChildLogger("db") );
               orbinitinfo.register_initial_reference( 
  -              PSS + vendor + config.getAttribute("name"), connector );
  +              PSS + vendor + "database", connector );
           }
           catch ( Throwable e )
           {
  -            throw new INITIALIZE( "Unable to register database connector due 
to: " + e.toString() );
  +            final String error = "Unexpected exception while attempting to 
register the database connector.";
  +            throw new CascadingRuntimeException( error, e );
           }
   
           try
           {
  -            Configuration config = 
defaults.getChild("connector").getChild("memory");
  -            final MemoryConnector connector = new MemoryConnector( config, 
orbinitinfo );
  -            connector.enableLogging( logger.getChildLogger("memory") );
  +            Configuration c = 
config.getChild("connector").getChild("memory");
  +            final MemoryConnector connector = new MemoryConnector( c, 
orbinitinfo );
  +            connector.enableLogging( getLogger().getChildLogger("memory") );
               orbinitinfo.register_initial_reference( 
  -              PSS + vendor + config.getAttribute("name"), connector );
  +              PSS + vendor + "memory", connector );
           }
           catch ( Throwable e )
           {
  -            throw new INITIALIZE( "Unable to register memory connector due 
to: " + e.toString() );
  +            final String error = "Unexpected exception while attempting to 
register the memory connector.";
  +            throw new CascadingRuntimeException( error, e );
           }
   
  -        
  -        if( defaults.getChild("ots").getAttributeAsBoolean("boot", false) )
  +        if( config.getChild("ots").getAttributeAsBoolean("boot", false) )
           {
               org.openorb.ots.Initializer initializer = new 
org.openorb.ots.Initializer();
               initializer.pre_init( orbinitinfo );
           }
   
  -
  -        ORBLoader orbloader = ( ( OpenORBInitInfo ) orbinitinfo 
).orb().getLoader();
  -        boolean flag1 = orbloader.getBooleanProperty( "PSS.Debug", false );
  -        if ( flag1 )
  +        try
           {
  -            debug.debugMode( true );
  +            m_file_session_manager = new FileSessionManager( orbinitinfo );
  +            m_database_session_manager = new DatabaseSessionManager( 
orbinitinfo );
  +            orbinitinfo.add_server_request_interceptor( 
getFileSessionManager() );
  +            orbinitinfo.add_server_request_interceptor( 
getDatabaseSessionManager() );
           }
  -
  -        _session_manager_file = new FileSessionManager( orbinitinfo );
  -        _session_manager_database = new DatabaseSessionManager( orbinitinfo 
);
  -        try
  +        catch ( DuplicateName duplicateName )
           {
  -            orbinitinfo.add_server_request_interceptor( 
_session_manager_file );
  -            orbinitinfo.add_server_request_interceptor( 
_session_manager_database );
  +            final String error = "Illegal attempt to register an interceptor 
under an duplicate name.";
  +            throw new CascadingRuntimeException( error, duplicateName );
           }
  -        catch ( DuplicateName duplicatename )
  +        catch( Throwable e )
           {
  -            Verbose.exception( "Initializer", "Duplicate name when adding 
the interceptor", duplicatename );
  +            final String error = "Unexpected error while attempting to 
register an interceptor.";
  +            throw new CascadingRuntimeException( error, e );
           }
       }
   
  @@ -213,25 +310,30 @@
       public void post_init( ORBInitInfo orbinitinfo ) { }
   
   
  +    
//==========================================================================
  +    // internals
  +    
//==========================================================================
  +
      /**
       * Returns the configuration resource.
       */
  -    private static Configuration getConfiguration( Class c, String path ) 
throws Exception
  +    private Configuration getConfiguration( String path ) throws Exception
       {
          DefaultConfigurationBuilder builder = new 
DefaultConfigurationBuilder( );
  -       InputStream is = c.getClassLoader().getResourceAsStream( path );
  +       InputStream is = 
this.getClass().getClassLoader().getResourceAsStream( path );
           if( is == null ) throw new Exception(
                        "Could not find the configuration resource \"" + path + 
"\"" );
           return builder.build( is );
       }
   
  -    private static Logger createLogger( final String filename, String 
priority )
  +    private Logger createLogger( final String filename, String priority )
       {
          try
          {
               Hierarchy hierarchy = Hierarchy.getDefaultHierarchy();
               hierarchy.setDefaultPriority( 
org.apache.log.Priority.getPriorityForName( priority ));
  -            hierarchy.setDefaultLogTarget( new FileTarget( new File( 
filename ), false, new AvalonFormatter( DEFAULT_FORMAT ) ) );
  +            hierarchy.setDefaultLogTarget( new FileTarget( new File( 
filename ), 
  +               false, new AvalonFormatter( DEFAULT_FORMAT ) ) );
               return new LogKitLogger( hierarchy.getLoggerFor( "pss" ) );
           }
           catch( Exception e)
  
  
  
  1.4       +1 -1      
jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/connector/database/DatabaseSessionPool.java
  
  Index: DatabaseSessionPool.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/connector/database/DatabaseSessionPool.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DatabaseSessionPool.java  2 Feb 2002 03:04:45 -0000       1.3
  +++ DatabaseSessionPool.java  4 Feb 2002 17:32:09 -0000       1.4
  @@ -134,7 +134,7 @@
           _tx_policy = tx_policy;
           if ( _tx_policy == TRANSACTIONAL.value )
           {
  -            Initializer._session_manager_database.register( this );
  +            Initializer.getDatabaseSessionManager().register( this );
           }
       }
   
  
  
  
  1.4       +1 -1      
jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/connector/file/FileSessionPool.java
  
  Index: FileSessionPool.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/connector/file/FileSessionPool.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- FileSessionPool.java      2 Feb 2002 10:29:54 -0000       1.3
  +++ FileSessionPool.java      4 Feb 2002 17:32:09 -0000       1.4
  @@ -101,7 +101,7 @@
           _tx_policy = policy;
           if ( _tx_policy == TRANSACTIONAL.value )
           {
  -            Initializer._session_manager_file.register( this );
  +            Initializer.getFileSessionManager().register( this );
           }
       }
   
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to