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/06/12 09:44:41 UTC

cvs commit: avalon-sandbox/merlin/merlin-platform/tutorials/meta/src/java/org/apache/avalon/playground Primary.java PrimaryService.java Secondary.java SecondaryService.java

mcconnell    2003/06/12 00:44:41

  Added:       merlin/merlin-platform/tutorials/meta .cvsignore README.TXT
                        maven.xml project.xml
               merlin/merlin-platform/tutorials/meta/src/java/org/apache/avalon/playground
                        Primary.java PrimaryService.java Secondary.java
                        SecondaryService.java
  Log:
  Addition of a meta tags demonstration.
  
  Revision  Changes    Path
  1.1                  avalon-sandbox/merlin/merlin-platform/tutorials/meta/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  target
  maven.log
  velocity.log
  
  
  
  1.1                  avalon-sandbox/merlin/merlin-platform/tutorials/meta/README.TXT
  
  Index: README.TXT
  ===================================================================
  
  Meta Generation
  ---------------
  
  This tutorial demonstrates the creation of meta-info tags and subsequent deployment of a container using the component types declared with the meta.
  
  $ maven clean
  $ maven
  
  The maven run will build and deploy the resulting component model.
  During deployment you should see the following log messages.
  
  [INFO   ] (primary): ready
  [INFO   ] (secondary): logging established
  [INFO   ] (secondary.system): primary service resolved
  
  Steve.
  
  
  
  1.1                  avalon-sandbox/merlin/merlin-platform/tutorials/meta/maven.xml
  
  Index: maven.xml
  ===================================================================
  <project default="java:jar" xmlns:maven="jelly:maven" xmlns:j="jelly:core" xmlns:util="jelly:util">
  
    <preGoal name="java:compile">
      <attainGoal name="merlin:meta"/>
    </preGoal>
  
    <postGoal name="jar:jar">
      <attainGoal name="merlin:deploy"/>
    </postGoal>
  
  </project>
  
  
  
  1.1                  avalon-sandbox/merlin/merlin-platform/tutorials/meta/project.xml
  
  Index: project.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  
  <project>
  
    <groupId>test</groupId>
    <id>plugin-test</id>
    <name>Merlin Plugin Test</name>
    <package>org.apache.avalon.playground</package>
  
    <currentVersion>1.0</currentVersion>
    <inceptionYear>2003</inceptionYear>
    <shortDescription>Test for the Merlin Plugin.</shortDescription>
  
    <developers>
      <developer>
        <name>Stephen McConnell</name>
        <id>mcconnell</id>
        <email>mcconnell@apache.org</email>
        <organization>OSM</organization>
        <roles>
          <role>Architecture and development.</role>
        </roles>
      </developer>
    </developers>
  
    <dependencies>
      <dependency>
        <groupId>avalon</groupId>
        <artifactId>avalon-framework</artifactId>
        <version>4.1.4</version>
      </dependency>
    </dependencies>
    
    <build>
  
      <sourceDirectory>${basedir}/src/java</sourceDirectory>
      <unitTestSourceDirectory></unitTestSourceDirectory>
      <unitTest></unitTest>
      <testResources></testResources>
      <integrationUnitTestPatterns></integrationUnitTestPatterns>
  
      <resources>
        <resource>
          <directory>${basedir}/src/java</directory> 
          <includes>
            <include>**/*.properties</include>
          </includes>
        </resource>
        <resource>
          <directory>${maven.build.src}</directory> 
          <includes>
            <include>**/*.x*</include>
          </includes>
        </resource>
        <resource>
          <directory>${maven.conf.dir}</directory>
          <targetPath>BLOCK-INF</targetPath>
          <includes>
            <include>block.xml</include>
          </includes>
        </resource>
      </resources>
  
      <jars></jars>
  
    </build>
  
  </project>
  
  
  
  1.1                  avalon-sandbox/merlin/merlin-platform/tutorials/meta/src/java/org/apache/avalon/playground/Primary.java
  
  Index: Primary.java
  ===================================================================
  
  package org.apache.avalon.playground;
  
  import org.apache.avalon.framework.context.Contextualizable;
  import org.apache.avalon.framework.context.Context;
  import org.apache.avalon.framework.context.ContextException;
  import org.apache.avalon.framework.logger.AbstractLogEnabled;
  
  /**
   * @avalon.meta.version 1.3
   * @avalon.meta.name primary-component
   * @avalon.meta.lifestyle singleton
   * @avalon.meta.service type="org.apache.avalon.playground.PrimaryService:9.8"
   * @todo Verify class level todo.
   */
  public class Primary extends AbstractLogEnabled 
    implements PrimaryService, Contextualizable
  {
     /**
      * @avalon.meta.entry key="urn:avalon:home" 
      *    type="java.io.File"
      */
      public void contextualize( Context context ) throws ContextException
      {
          getLogger().info( "ready" );
      }
  }
  
  
  1.1                  avalon-sandbox/merlin/merlin-platform/tutorials/meta/src/java/org/apache/avalon/playground/PrimaryService.java
  
  Index: PrimaryService.java
  ===================================================================
  
  package org.apache.avalon.playground;
  
  /**
   * An interface representing a service.
   *
   * @avalon.meta.version 9.8
   * @avalon.meta.attribute key="status" value="test"
   */
  public interface PrimaryService
  {
  }
  
  
  1.1                  avalon-sandbox/merlin/merlin-platform/tutorials/meta/src/java/org/apache/avalon/playground/Secondary.java
  
  Index: Secondary.java
  ===================================================================
  
  package org.apache.avalon.playground;
  
  import org.apache.avalon.framework.logger.Logger;
  import org.apache.avalon.framework.logger.AbstractLogEnabled;
  import org.apache.avalon.framework.service.Serviceable;
  import org.apache.avalon.framework.service.ServiceManager;
  import org.apache.avalon.framework.service.ServiceException;
  
  /**
   * @avalon.meta.name secondary-component
   * @avalon.meta.version 2.4
   * @avalon.meta.service type="org.apache.avalon.playground.SecondaryService:0.1"
   */
  public class Secondary extends AbstractLogEnabled 
  implements Serviceable, SecondaryService
  {
      private Logger m_system = null;
  
      private PrimaryService m_primary = null;
  
     /**
      * Supply of a logging channel to the component.
      * @param logger the logging channel
      * @avalon.meta.logger name="system"
      */
      public void enableLogging( Logger logger )
      {
          super.enableLogging( logger );
          m_system = logger.getChildLogger( "system" );
          logger.info( "logging established" );
      }
  
     /**
      * Supply of dependent services to this component by the container.
      * @param manager the service manager
      * @avalon.meta.dependency type="org.apache.avalon.playground.PrimaryService:9.8" key="primary"
      */
      public void service( ServiceManager manager ) throws ServiceException
      {
          m_primary = (PrimaryService) manager.lookup( "primary" );
          m_system.info( "primary service resolved" );
      }
  }
  
  
  
  1.1                  avalon-sandbox/merlin/merlin-platform/tutorials/meta/src/java/org/apache/avalon/playground/SecondaryService.java
  
  Index: SecondaryService.java
  ===================================================================
  
  package org.apache.avalon.playground;
  
  /**
   * An interface representing a service.
   * @avalon.meta.version 0.1
   */
  public interface SecondaryService
  {
  }
  
  

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