donaldp     02/03/21 01:08:29

  Modified:    src/java/org/apache/avalon/phoenix/components/embeddor
                        DefaultEmbeddor.java
  Log:
  Made the embeddor cache Context passed via Contextualizable method and pass 
it onto embeddor sub-components.
  
  Also renamed components --> m_components
  
  Revision  Changes    Path
  1.50      +58 -31    
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/embeddor/DefaultEmbeddor.java
  
  Index: DefaultEmbeddor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/embeddor/DefaultEmbeddor.java,v
  retrieving revision 1.49
  retrieving revision 1.50
  diff -u -r1.49 -r1.50
  --- DefaultEmbeddor.java      21 Mar 2002 08:54:43 -0000      1.49
  +++ DefaultEmbeddor.java      21 Mar 2002 09:08:29 -0000      1.50
  @@ -57,9 +57,18 @@
   
       private EmbeddorObservable m_observable = new EmbeddorObservable();
       private Parameters m_parameters;
  +
  +    /**
  +     * Context passed to embeddor. See the contextualize() method
  +     * for details on what is stored in context.
  +     *
  +     * @see DefaultEmbeddor#contextualize(Context)
  +     */
  +    private Context m_context;
  +
       private String m_phoenixHome;
   
  -    private EmbeddorEntry[] components;
  +    private EmbeddorEntry[] m_components;
   
       /**
        * If true, flag indicates that the Embeddor should continue running
  @@ -82,9 +91,23 @@
        */
       private long m_startTime;
   
  +    /**
  +     * Pass the Context to the embeddor.
  +     * It is expected that the following will be entrys in context;
  +     * <ul>
  +     *   <li><b>common.classloader</b>: ClassLoader shared betweeen
  +     *      container and applications</li>
  +     *   <li><b>container.classloader</b>: ClassLoader used to load
  +     *      container</li>
  +     * </ul>
  +     *
  +     * @param context
  +     * @throws ContextException
  +     */
       public void contextualize( final Context context )
           throws ContextException
       {
  +        m_context = context;
           try
           {
               final Observer observer = (Observer)context.get( 
Observer.class.getName() );
  @@ -143,20 +166,20 @@
       public void configure( final Configuration configuration )
           throws ConfigurationException
       {
  -        Configuration[] childs = configuration.getChildren( "component" );
  -        components = new EmbeddorEntry[ childs.length ];
  -        for( int i = 0; i < childs.length; i++ )
  -        {
  -            final String role = childs[ i ].getAttribute( "role" );
  -            final String classname = childs[ i ].getAttribute( "class" );
  -            final String logger = childs[ i ].getAttribute( "logger" );
  -            final Configuration childConfiguration = childs[ i ];
  -
  -            components[ i ] = new EmbeddorEntry();
  -            components[ i ].setRole( role );
  -            components[ i ].setClassName( classname );
  -            components[ i ].setLoggerName( logger );
  -            components[ i ].setConfiguration( childConfiguration );
  +        final Configuration[] children = configuration.getChildren( 
"component" );
  +        m_components = new EmbeddorEntry[ children.length ];
  +        for( int i = 0; i < children.length; i++ )
  +        {
  +            final String role = children[ i ].getAttribute( "role" );
  +            final String classname = children[ i ].getAttribute( "class" );
  +            final String logger = children[ i ].getAttribute( "logger" );
  +            final Configuration childConfiguration = children[ i ];
  +
  +            m_components[ i ] = new EmbeddorEntry();
  +            m_components[ i ].setRole( role );
  +            m_components[ i ].setClassName( classname );
  +            m_components[ i ].setLoggerName( logger );
  +            m_components[ i ].setConfiguration( childConfiguration );
           }
       }
   
  @@ -274,9 +297,9 @@
               final String message = REZ.getString( 
"embeddor.error.shutdown.failed" );
               getLogger().fatalError( message, e );
           }
  -        for( int i = 0; i < components.length; i++ )
  +        for( int i = 0; i < m_components.length; i++ )
           {
  -            components[ i ].setObject( null );
  +            m_components[ i ].setObject( null );
           }
           System.gc(); // make sure resources are released
       }
  @@ -392,10 +415,10 @@
           Object object;
           try
           {
  -            for( int i = 0; i < components.length; i++ )
  +            for( int i = 0; i < m_components.length; i++ )
               {
  -                object = createComponent( components[ i ].getClassName(), 
Class.forName( components[ i ].getClassName() ) );
  -                components[ i ].setObject( object );
  +                object = createComponent( m_components[ i ].getClassName(), 
Class.forName( m_components[ i ].getClassName() ) );
  +                m_components[ i ].setObject( object );
               }
           }
           catch( Exception e )
  @@ -465,11 +488,11 @@
       private void setupComponents()
           throws Exception
       {
  -        for( int i = 0; i < components.length; i++ )
  +        for( int i = 0; i < m_components.length; i++ )
           {
  -            final Component component = (Component)( components[ i 
].getObject() );
  -            final String loggerName = components[ i ].getLoggerName();
  -            final Configuration configuration = components[ i 
].getConfiguration();
  +            final Component component = (Component)( m_components[ i 
].getObject() );
  +            final String loggerName = m_components[ i ].getLoggerName();
  +            final Configuration configuration = m_components[ i 
].getConfiguration();
               setupComponent( component, loggerName, configuration );
           }
       }
  @@ -485,6 +508,10 @@
           throws Exception
       {
           setupLogger( component, loggerName );
  +        if( component instanceof Contextualizable )
  +        {
  +            ( (Contextualizable)component ).contextualize( m_context );
  +        }
           if( component instanceof Composable )
           {
               final ComponentManager componentManager = getComponentManager();
  @@ -511,9 +538,9 @@
       private void shutdownComponents()
           throws Exception
       {
  -        for( int i = 0; i < components.length; i++ )
  +        for( int i = 0; i < m_components.length; i++ )
           {
  -            shutdownComponent( (Component)components[ i ] );
  +            shutdownComponent( (Component)m_components[ i ] );
           }
       }
   
  @@ -580,9 +607,9 @@
       {
           final DefaultComponentManager componentManager = new 
DefaultComponentManager();
           componentManager.put( Embeddor.ROLE, this );
  -        for( int i = 0; i < components.length; i++ )
  +        for( int i = 0; i < m_components.length; i++ )
           {
  -            componentManager.put( components[ i ].getRole(), 
(Component)getEmbeddorComponent( components[ i ].getRole() ) );
  +            componentManager.put( m_components[ i ].getRole(), 
(Component)getEmbeddorComponent( m_components[ i ].getRole() ) );
           }
           return componentManager;
       }
  @@ -609,12 +636,12 @@
   
       private Object getEmbeddorComponent( final String role )
       {
  -        for( int i = 0; i < components.length; i++ )
  +        for( int i = 0; i < m_components.length; i++ )
           {
  -            final EmbeddorEntry entry = components[ i ];
  +            final EmbeddorEntry entry = m_components[ i ];
               if( entry.getRole().equals( role ) )
               {
  -                return components[ i ].getObject();
  +                return m_components[ i ].getObject();
               }
           }
           // Should never happen
  
  
  

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

Reply via email to