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 2004/02/10 17:18:43 UTC

cvs commit: avalon/merlin/activation/api/src/java/org/apache/avalon/activation/lifestyle LifestyleException.java LifestyleRuntimeException.java package.html

mcconnell    2004/02/10 08:18:43

  Modified:    merlin/activation/api project.xml
  Added:       merlin/activation/api/src/java/org/apache/avalon/activation
                        Appliance.java ApplianceException.java
                        ApplianceRuntimeException.java
                        ComponentFactory.java LifecycleException.java
                        LifestyleFactory.java LifestyleManager.java
                        LifestyleRuntimeException.java RuntimeFactory.java
  Removed:     merlin/activation/api/src/java/org/apache/avalon/activation/appliance
                        Appliance.java ApplianceEvent.java
                        ApplianceException.java ApplianceListener.java
                        ApplianceRuntimeException.java
                        AssemblyException.java Block.java
                        CascadingIOException.java DeploymentException.java
                        DuplicateApplianceException.java Engine.java
                        FatalDeploymentException.java
                        NoProviderDefinitionException.java
                        UnknownServiceException.java package.html
               merlin/activation/api/src/java/org/apache/avalon/activation/lifecycle
                        ContextualizationHandler.java
                        LifecycleCreateExtension.java
                        LifecycleDestroyExtension.java
                        LifecycleException.java
                        LifecycleRuntimeException.java package.html
               merlin/activation/api/src/java/org/apache/avalon/activation/lifestyle
                        LifestyleException.java
                        LifestyleRuntimeException.java package.html
  Log:
  Add support for plugable runtime implementation.
  
  Revision  Changes    Path
  1.8       +1 -1      avalon/merlin/activation/api/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/api/project.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- project.xml	13 Jan 2004 11:41:22 -0000	1.7
  +++ project.xml	10 Feb 2004 16:18:42 -0000	1.8
  @@ -27,7 +27,7 @@
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-api</artifactId>
  -      <version>1.3</version>
  +      <version>1.4-SNAPSHOT</version>
       </dependency>
       <dependency>
         <groupId>avalon-composition</groupId>
  
  
  
  1.1                  avalon/merlin/activation/api/src/java/org/apache/avalon/activation/Appliance.java
  
  Index: Appliance.java
  ===================================================================
  /* 
   * Copyright 2004 Apache Software Foundation
   * Licensed  under the  Apache License,  Version 2.0  (the "License");
   * you may not use  this file  except in  compliance with the License.
   * You may obtain a copy of the License at 
   * 
   *   http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed  under the  License is distributed on an "AS IS" BASIS,
   * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
   * implied.
   * 
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  package org.apache.avalon.activation;
  
  import org.apache.avalon.composition.model.Commissionable;
  import org.apache.avalon.composition.model.DeploymentModel;
  import org.apache.avalon.composition.model.Resolver;
  
  /**
   * An Appliance is the basic tool merlin wraps around a component to
   * provide support for lifecycle and lifestyle management. Different
   * implementations of Appliance can be plugged into the merlin system
   * to allow merlin to manage a variety of components.
   *
   * The name appliance is used to call up an association with a kitchen
   * utility like a microwave. Merlin acts as a chef in his kitchen, and uses
   * various appliances to "cook up" various components as the restaurant
   * customers (which can be other components or systems on the other end
   * on the planet) ask for them.
   *
   * An appliance manages the establishment of a component
   * type relative to a deployment criteria. Once established, an appliance
   * provides support for the deployment of component instances on request.
   * An appliance is responsible for component lifestyle and lifecycle
   * management during the deployment and decommission cycles.
   *
   *
   * @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
   * @version $Revision: 1.1 $ $Date: 2004/02/10 16:18:42 $
   */
  public interface Appliance extends Commissionable, Resolver
  {
  }
  
  
  
  1.1                  avalon/merlin/activation/api/src/java/org/apache/avalon/activation/ApplianceException.java
  
  Index: ApplianceException.java
  ===================================================================
  /* 
   * Copyright 2004 Apache Software Foundation
   * Licensed  under the  Apache License,  Version 2.0  (the "License");
   * you may not use  this file  except in  compliance with the License.
   * You may obtain a copy of the License at 
   * 
   *   http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed  under the  License is distributed on an "AS IS" BASIS,
   * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
   * implied.
   * 
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  package org.apache.avalon.activation;
  
  import org.apache.avalon.framework.CascadingException;
  
  /**
   * Exception to indicate that there was a appliance related error.
   *
   * @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
   * @version $Revision: 1.1 $ $Date: 2004/02/10 16:18:42 $
   */
  public class ApplianceException
          extends CascadingException
  {
  
      /**
       * Construct a new <code>ApplianceException</code> instance.
       *
       * @param message The detail message for this exception.
       */
      public ApplianceException( final String message )
      {
          this( message, null );
      }
  
      /**
       * Construct a new <code>ApplianceException</code> instance.
       *
       * @param message The detail message for this exception.
       * @param throwable the root cause of the exception
       */
      public ApplianceException( final String message, final Throwable throwable )
      {
          super( message, throwable );
      }
  }
  
  
  
  
  1.1                  avalon/merlin/activation/api/src/java/org/apache/avalon/activation/ApplianceRuntimeException.java
  
  Index: ApplianceRuntimeException.java
  ===================================================================
  /* 
   * Copyright 2004 Apache Software Foundation
   * Licensed  under the  Apache License,  Version 2.0  (the "License");
   * you may not use  this file  except in  compliance with the License.
   * You may obtain a copy of the License at 
   * 
   *   http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed  under the  License is distributed on an "AS IS" BASIS,
   * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
   * implied.
   * 
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  package org.apache.avalon.activation;
  
  import org.apache.avalon.framework.CascadingRuntimeException;
  
  /**
   * Exception to indicate that there was an appliance related runtime error.
   *
   * @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
   * @version $Revision: 1.1 $ $Date: 2004/02/10 16:18:42 $
   */
  public class ApplianceRuntimeException
          extends CascadingRuntimeException
  {
  
      /**
       * Construct a new <code>ApplianceRuntimeException</code> instance.
       *
       * @param message The detail message for this exception.
       */
      public ApplianceRuntimeException( final String message )
      {
          this( message, null );
      }
  
      /**
       * Construct a new <code>ApplianceRuntimeException</code> instance.
       *
       * @param message The detail message for this exception.
       * @param throwable the root cause of the exception
       */
      public ApplianceRuntimeException( final String message, final Throwable throwable )
      {
          super( message, throwable );
      }
  }
  
  
  
  
  1.1                  avalon/merlin/activation/api/src/java/org/apache/avalon/activation/ComponentFactory.java
  
  Index: ComponentFactory.java
  ===================================================================
  /* 
   * Copyright 2004 Apache Software Foundation
   * Licensed  under the  Apache License,  Version 2.0  (the "License");
   * you may not use  this file  except in  compliance with the License.
   * You may obtain a copy of the License at 
   * 
   *   http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed  under the  License is distributed on an "AS IS" BASIS,
   * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
   * implied.
   * 
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  package org.apache.avalon.activation;
  
  import org.apache.avalon.composition.model.DeploymentModel;
  
  /**
   * A factory that provides object instantiation. A instance factory will
   * typically encapsulate component constuction semantic, lifecycle processing
   * and end-of-life processing.
   *
   * @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
   * @version $Revision: 1.1 $ $Date: 2004/02/10 16:18:42 $
   */
  public interface ComponentFactory 
  {
     /**
      * Creation of a new instance including all deployment stage handling.
      * @return the new instance
      */
      Object incarnate() throws Exception;
  
     /**
      * Termination of the instance including all end-of-life processing.
      * @param instance the component instance
      */
      void etherialize( Object instance );
  
  }
  
  
  
  1.1                  avalon/merlin/activation/api/src/java/org/apache/avalon/activation/LifecycleException.java
  
  Index: LifecycleException.java
  ===================================================================
  /* 
   * Copyright 2004 Apache Software Foundation
   * Licensed  under the  Apache License,  Version 2.0  (the "License");
   * you may not use  this file  except in  compliance with the License.
   * You may obtain a copy of the License at 
   * 
   *   http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed  under the  License is distributed on an "AS IS" BASIS,
   * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
   * implied.
   * 
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  package org.apache.avalon.activation;
  
  /**
   * Exception to indicate that there was a lifecycle related error.
   *
   * @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
   * @version $Revision: 1.1 $ $Date: 2004/02/10 16:18:42 $
   */
  public class LifecycleException
          extends ApplianceException
  {
  
      /**
       * Construct a new <code>LifecycleException</code> instance.
       *
       * @param message The detail message for this exception.
       */
      public LifecycleException( final String message )
      {
          this( message, null );
      }
  
      /**
       * Construct a new <code>LifecycleException</code> instance.
       *
       * @param message The detail message for this exception.
       * @param throwable the root cause of the exception
       */
      public LifecycleException( final String message, final Throwable throwable )
      {
          super( message, throwable );
      }
  }
  
  
  
  
  1.1                  avalon/merlin/activation/api/src/java/org/apache/avalon/activation/LifestyleFactory.java
  
  Index: LifestyleFactory.java
  ===================================================================
  /* 
   * Copyright 2004 Apache Software Foundation
   * Licensed  under the  Apache License,  Version 2.0  (the "License");
   * you may not use  this file  except in  compliance with the License.
   * You may obtain a copy of the License at 
   * 
   *   http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed  under the  License is distributed on an "AS IS" BASIS,
   * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
   * implied.
   * 
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  package org.apache.avalon.activation;
  
  import org.apache.avalon.composition.model.ComponentModel;
  
  /**
   * A factory enabling the establishment of runtime handlers.
   *
   * @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
   * @version $Revision: 1.1 $ $Date: 2004/02/10 16:18:42 $
   */
  public interface LifestyleFactory 
  {
     /**
      * Create a new lifestyle manager.
      * @param model the component model
      * @return the runtime appliance
      */
      LifestyleManager createLifestyleManager( ComponentModel model );
  }
  
  
  
  1.1                  avalon/merlin/activation/api/src/java/org/apache/avalon/activation/LifestyleManager.java
  
  Index: LifestyleManager.java
  ===================================================================
  /* 
   * Copyright 2004 Apache Software Foundation
   * Licensed  under the  Apache License,  Version 2.0  (the "License");
   * you may not use  this file  except in  compliance with the License.
   * You may obtain a copy of the License at 
   * 
   *   http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed  under the  License is distributed on an "AS IS" BASIS,
   * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
   * implied.
   * 
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  package org.apache.avalon.activation;
  
  import org.apache.avalon.composition.model.Commissionable;
  import org.apache.avalon.composition.model.Resolver;
  
  /**
   * A lifestyle handler provides support for a particular lifestyle policy.
   *
   * @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
   * @version $Revision: 1.1 $ $Date: 2004/02/10 16:18:42 $
   */
  public interface LifestyleManager extends Commissionable, Resolver
  {
      /**
       * Release and finalize the supplied object.
       *
       * @param instance the object to be released
       */
      void finalize( Object instance );
  
  }
  
  
  
  1.1                  avalon/merlin/activation/api/src/java/org/apache/avalon/activation/LifestyleRuntimeException.java
  
  Index: LifestyleRuntimeException.java
  ===================================================================
  /* 
   * Copyright 2004 Apache Software Foundation
   * Licensed  under the  Apache License,  Version 2.0  (the "License");
   * you may not use  this file  except in  compliance with the License.
   * You may obtain a copy of the License at 
   * 
   *   http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed  under the  License is distributed on an "AS IS" BASIS,
   * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
   * implied.
   * 
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  package org.apache.avalon.activation;
  
  /**
   * Exception to indicate that there was an lifestyle related runtime error.
   *
   * @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
   * @version $Revision: 1.1 $ $Date: 2004/02/10 16:18:42 $
   */
  public final class LifestyleRuntimeException
          extends ApplianceRuntimeException
  {
  
      /**
       * Construct a new <code>LifestyleRuntimeException</code> instance.
       *
       * @param message The detail message for this exception.
       */
      public LifestyleRuntimeException( final String message )
      {
          this( message, null );
      }
  
      /**
       * Construct a new <code>LifestyleRuntimeException</code> instance.
       *
       * @param message The detail message for this exception.
       * @param throwable the root cause of the exception
       */
      public LifestyleRuntimeException( final String message, final Throwable throwable )
      {
          super( message, throwable );
      }
  }
  
  
  
  
  1.1                  avalon/merlin/activation/api/src/java/org/apache/avalon/activation/RuntimeFactory.java
  
  Index: RuntimeFactory.java
  ===================================================================
  /* 
   * Copyright 2004 Apache Software Foundation
   * Licensed  under the  Apache License,  Version 2.0  (the "License");
   * you may not use  this file  except in  compliance with the License.
   * You may obtain a copy of the License at 
   * 
   *   http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed  under the  License is distributed on an "AS IS" BASIS,
   * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
   * implied.
   * 
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  package org.apache.avalon.activation;
  
  import org.apache.avalon.composition.model.DeploymentModel;
  
  /**
   * A factory enabling the establishment of runtime handlers.
   *
   * @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
   * @version $Revision: 1.1 $ $Date: 2004/02/10 16:18:42 $
   */
  public interface RuntimeFactory 
  {
     /**
      * Resolve a runtime handler for a model.
      * @param model the deployment model
      * @return the runtime appliance
      */
      Appliance getRuntime( DeploymentModel model );
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org