You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2003/01/18 17:19:32 UTC

cvs commit: avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/lifecycle DefaultDeploymentService.java

mcconnell    2003/01/18 08:19:32

  Modified:    assembly/src/java/org/apache/avalon/assembly/appliance
                        Appliance.java ApplianceContext.java
                        DefaultAppliance.java DefaultApplianceContext.java
               assembly/src/java/org/apache/avalon/assembly/lifecycle
                        DefaultDeploymentService.java
  Log:
  Added startup policy so we can programatically control if the deployment system starts/stops a component or a container handles this function.
  
  Revision  Changes    Path
  1.23      +11 -1     avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/appliance/Appliance.java
  
  Index: Appliance.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/appliance/Appliance.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- Appliance.java	17 Jan 2003 11:38:49 -0000	1.22
  +++ Appliance.java	18 Jan 2003 16:19:31 -0000	1.23
  @@ -131,6 +131,16 @@
       boolean getActivationPolicy();
   
       /**
  +     * Return the startup policy for the component.  If TRUE, startup
  +     * of the component will be executed during normal lifecycle processing
  +     * on request for a new component instance.  If FALSE the startup phase
  +     * will be ommitted.
  +     *
  +     * @return the startup policy
  +     */
  +    boolean getStartupPolicy();
  +
  +    /**
        * Test is this appliance is enabled.  A appliance is enabled unless explicitly disabled by an
        * assembly directive, or implicity disabled as a result of an assembly failure.
        *
  
  
  
  1.10      +12 -1     avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/appliance/ApplianceContext.java
  
  Index: ApplianceContext.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/appliance/ApplianceContext.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- ApplianceContext.java	9 Jan 2003 15:08:09 -0000	1.9
  +++ ApplianceContext.java	18 Jan 2003 16:19:31 -0000	1.10
  @@ -232,4 +232,15 @@
        */
       Configuration getConfiguration();
   
  +    /**
  +     * Return the startup policy for the component.  If TRUE, startup
  +     * of the component will be executed during normal lifecycle processing
  +     * on request for a new component instance.  If FALSE the startup phase
  +     * will be ommitted.
  +     *
  +     * @return the startup policy
  +     */
  +    boolean getStartupPolicy();
  +
  +
   }
  
  
  
  1.24      +14 -2     avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/appliance/DefaultAppliance.java
  
  Index: DefaultAppliance.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/appliance/DefaultAppliance.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- DefaultAppliance.java	15 Jan 2003 09:09:23 -0000	1.23
  +++ DefaultAppliance.java	18 Jan 2003 16:19:31 -0000	1.24
  @@ -279,7 +279,6 @@
       // Reclaimable
       //=====================================================================
   
  -
       /**
        * Resolve a object to a value.
        *
  @@ -416,6 +415,19 @@
       public boolean getActivationPolicy()
       {
           return m_applianceContext.getActivationPolicy();
  +    }
  +
  +    /**
  +     * Return the startup policy for the component.  If TRUE, startup
  +     * of the component will be executed during normal lifecycle processing
  +     * on request for a new component instance.  If FALSE the startup phase
  +     * will be ommitted.
  +     *
  +     * @return the startup policy
  +     */
  +    public boolean getStartupPolicy()
  +    {
  +        return m_applianceContext.getStartupPolicy();
       }
   
       /**
  
  
  
  1.8       +34 -1     avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/appliance/DefaultApplianceContext.java
  
  Index: DefaultApplianceContext.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/appliance/DefaultApplianceContext.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- DefaultApplianceContext.java	15 Jan 2003 09:09:23 -0000	1.7
  +++ DefaultApplianceContext.java	18 Jan 2003 16:19:31 -0000	1.8
  @@ -164,6 +164,11 @@
        */
       private String m_factory;
   
  +    /**
  +     * The startup policy.
  +     */
  +    private boolean m_startup = true;
  +
       //==============================================================
       // constructor
       //==============================================================
  @@ -511,6 +516,34 @@
               return m_config;
           }
       }
  +
  +    /**
  +     * Return the startup policy for the component.  If TRUE, startup
  +     * of the component will be executed during normal lifecycle processing
  +     * on request for a new component instance.  If FALSE the startup phase
  +     * will be ommitted.
  +     *
  +     * @return the startup policy
  +     */
  +    public boolean getStartupPolicy()
  +    {
  +        return m_startup;
  +    }
  +
  +    /**
  +     * Set the startup policy for the component.  If TRUE, startup
  +     * of the component will be executed during normal lifecycle processing
  +     * on request for a new component instance.  If FALSE the startup phase
  +     * will be ommitted.
  +     *
  +     * @param policy the startup policy
  +     */
  +    public void setStartupPolicy( boolean policy )
  +    {
  +        checkWriteable();
  +        m_startup = policy;
  +    }
  +
   
       /**
        * Create a consolidated logging descriptor that takes into account both type logging
  
  
  
  1.14      +17 -23    avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/lifecycle/DefaultDeploymentService.java
  
  Index: DefaultDeploymentService.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/lifecycle/DefaultDeploymentService.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- DefaultDeploymentService.java	15 Jan 2003 09:09:24 -0000	1.13
  +++ DefaultDeploymentService.java	18 Jan 2003 16:19:32 -0000	1.14
  @@ -258,21 +258,6 @@
           }
   
           //
  -        // make sure we are deploying a fully assembled appliance
  -        //
  -
  -        //try
  -        //{
  -        //    appliance.assemble();
  -        //}
  -        //catch( Throwable e )
  -        //{
  -        //    final String error = 
  -        //      "Unresolved dependencies in appliance: " + appliance;
  -        //    throw new DeploymentException( error, e );
  -        //}
  -
  -        //
           // commence deployment
           //
   
  @@ -301,7 +286,10 @@
               m_configuration.configure( appliance, instance );
               m_parameters.parameterize( appliance, instance );
               m_initialization.initialize( appliance, instance );
  -            m_startup.start( appliance, instance );
  +            if( appliance.getStartupPolicy() )
  +            {
  +                m_startup.start( appliance, instance );
  +            }
               return instance;
           }
           catch( Throwable e )
  @@ -340,14 +328,20 @@
               appliance.disassemble();
           }
   
  -        try
  +        if( appliance.getStartupPolicy() )
           {
  -            m_startup.stop( appliance, instance );
  -        }
  -        catch( Throwable e )
  -        {
  -            // log a warning
  +            try
  +            {
  +                m_startup.stop( appliance, instance );
  +            }
  +            catch( Throwable e )
  +            {
  +                final String warning = 
  +                  "Ignoring shutdown error raised by component: " + appliance;
  +                getLogger().warn( warning, e );
  +            }
           }
  +
           m_disposal.dispose( appliance, instance );
       }
   
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>