You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@excalibur.apache.org by cr...@apache.org on 2004/12/04 18:19:53 UTC

svn commit: r109814 - /excalibur/trunk/fortress/container-impl/src/java/org/apache/avalon/fortress/impl/DefaultContainer.java

Author: crafterm
Date: Sat Dec  4 09:19:52 2004
New Revision: 109814

URL: http://svn.apache.org/viewcvs?view=rev&rev=109814
Log:
Applied patch from FORTRESS-13.

Patch allows you to specify a default activation policy for all components
inside of Fortress, by specifying the 'activation' attribute to the root
level element in the configuration file passed to Fortress during startup.

If no default is specified, 'background' (the previous default) is used.


Modified:
   excalibur/trunk/fortress/container-impl/src/java/org/apache/avalon/fortress/impl/DefaultContainer.java

Modified: excalibur/trunk/fortress/container-impl/src/java/org/apache/avalon/fortress/impl/DefaultContainer.java
Url: http://svn.apache.org/viewcvs/excalibur/trunk/fortress/container-impl/src/java/org/apache/avalon/fortress/impl/DefaultContainer.java?view=diff&rev=109814&p1=excalibur/trunk/fortress/container-impl/src/java/org/apache/avalon/fortress/impl/DefaultContainer.java&r1=109813&p2=excalibur/trunk/fortress/container-impl/src/java/org/apache/avalon/fortress/impl/DefaultContainer.java&r2=109814
==============================================================================
--- excalibur/trunk/fortress/container-impl/src/java/org/apache/avalon/fortress/impl/DefaultContainer.java	(original)
+++ excalibur/trunk/fortress/container-impl/src/java/org/apache/avalon/fortress/impl/DefaultContainer.java	Sat Dec  4 09:19:52 2004
@@ -91,6 +91,7 @@
         throws ConfigurationException
     {
         interpretProxy( config.getAttribute("proxy-type", "discover") );
+        m_defaultActivationPolicy = getDefaultActivationPolicy( config );
 
         final Configuration[] elements = config.getChildren();
         for ( int i = 0; i < elements.length; i++ )
@@ -121,6 +122,29 @@
             }
         }
     }
+    
+    /**
+     * Obtains the default activation policy from the component configuration header
+     * 
+     * @param config {@link Configuration} to examine
+     * @return activation policy if specified, 'background' (the default) if not
+     */
+    private String getDefaultActivationPolicy( final Configuration config )
+    {
+        final String policy = config.getAttribute( "activation", null );
+
+        if ( policy == null )
+        {
+            return "background";
+        }
+
+        if ( getLogger().isDebugEnabled() )
+        {
+            getLogger().debug( "Default component activation policy changed to: " + policy );
+        }
+
+        return policy;
+    }
 
     /**
      * Interpret the ProxyManager type from the configuration element.
@@ -205,7 +229,8 @@
     private int getActivation( final Configuration component )
         throws ConfigurationException
     {
-        final String activation = component.getAttribute( "activation", "background" );
+        final String activation =
+            component.getAttribute( "activation", m_defaultActivationPolicy );
         
         if ( "background".equalsIgnoreCase( activation )
             || "startup".equalsIgnoreCase( activation ) )
@@ -242,4 +267,9 @@
     {
         return super.getServiceManager();
     }
+    
+    /**
+     * Default activation policy for components, ie. inline, background, etc.
+     */
+    private String m_defaultActivationPolicy;
 }

---------------------------------------------------------------------
To unsubscribe, e-mail: scm-unsubscribe@excalibur.apache.org
For additional commands, e-mail: scm-help@excalibur.apache.org