commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mart...@apache.org
Subject cvs commit: jakarta-commons-sandbox/chain/xdocs download.xml index.xml navigation.xml
Date Thu, 23 Oct 2003 06:27:40 GMT
martinc     2003/10/22 23:27:40

  Added:       chain    project.properties project.xml
               chain/xdocs download.xml index.xml navigation.xml
  Log:
  Add minimal Mavenisation, so that we can create a web site. The main page
  is pretty much the same as the 'Rationale' section of the initial proposal,
  with minor changes. (Thanks, Craig!) The download page was borrowed from
  Commons FileUpload.
  
  IMPORTANT NOTE: I deliberately did NOT include incl_nav.xml in the nav menu
  because that seems to push project-specific pages to the very bottom of the
  menu, which, IMHO, is a *very bad thing*.
  
  Revision  Changes    Path
  1.1                  jakarta-commons-sandbox/chain/project.properties
  
  Index: project.properties
  ===================================================================
  # -------------------------------------------------------------------
  # P R O J E C T  P R O P E R T I E S
  # -------------------------------------------------------------------
  
  compile.debug = on
  compile.optimize = off
  compile.deprecation = off
  
  maven.linkcheck.enable=true 
  
  # documentation properties
  maven.xdoc.date=left
  maven.xdoc.version=${pom.currentVersion}
  maven.xdoc.developmentProcessUrl=http://jakarta.apache.org/commons/charter.html
  
  
  
  1.1                  jakarta-commons-sandbox/chain/project.xml
  
  Index: project.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  
  <project>
    <extend>../project.xml</extend>
    <name>Chain</name>
    <id>commons-chain</id>
    <currentVersion>0.1-dev</currentVersion>
    <inceptionYear>2003</inceptionYear>
    <shortDescription>Chain of Responsibility</shortDescription>
    <description>An implmentation of the GoF Chain of Responsibility pattern.</description>
  
    <developers>
      <developer>
        <name>Craig McClanahan</name>
        <id>craigmcc</id>
        <email>craigmcc@apache.org</email>
        <organization></organization>
      </developer>
      <developer>
        <name>Ted Husted</name>
        <id>husted</id>
        <email>husted@apache.org</email>
        <organization></organization>
      </developer>
      <developer>
        <name>Martin Cooper</name>
        <id>martinc</id>
        <email>martinc@apache.org</email>
        <organization>Informatica</organization>
      </developer>
    </developers>
    
    <dependencies>
      <dependency> 
        <id>servletapi</id> 
        <version>2.3</version> 
      </dependency>
      <dependency>
        <id>portlet-api</id>
        <version>0.1-dev-unreleased</version>
      </dependency>
      <dependency>
        <id>junit</id>
        <version>3.8.1</version>
      </dependency>
      <dependency> 
        <id>commons-beanutils</id> 
        <version>1.6</version> 
      </dependency> 
      <dependency> 
        <id>commons-collections</id> 
        <version>2.1</version> 
      </dependency> 
      <dependency> 
        <id>commons-digester</id> 
        <version>1.5</version> 
      </dependency> 
      <dependency> 
        <id>commons-logging</id> 
        <version>1.0.3</version> 
      </dependency> 
    </dependencies>
    
    <build>
      <unitTest>
        <includes>
          <include>**/*Test.java</include>
        </includes>
      </unitTest>
    </build>
  </project>
  
  
  
  1.1                  jakarta-commons-sandbox/chain/xdocs/download.xml
  
  Index: download.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <document>
  
    <properties>
      <title>Download</title>
      <author email="martinc@apache.org">Martin Cooper</author>
    </properties>
  
    <body>
  
      <section name="Downloading Chain">
        <subsection name='Full Releases'>
          <p>
          </p>
        </subsection>
        <subsection name='Releases Candidate'>
          <p>
          </p>
        </subsection>
        <subsection name='Beta Releases'>
          <p>
          </p>
        </subsection>
        <subsection name='Nightly Builds'>	
            <p>
            Nightly builds are built every day from the current CVS HEAD. This is 
            the latest code and so should be treated with caution!
            </p>
            <p>
            Download nightly builds from 
            <a href='http://cvs.apache.org/builds/jakarta-commons/nightly/commons-chain/'>here</a>.
            </p>
        </subsection>
      </section>
  
    </body>
  
  </document>
  
  
  
  1.1                  jakarta-commons-sandbox/chain/xdocs/index.xml
  
  Index: index.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <document>
  
    <properties>
      <title>Home</title>
      <author email="martinc@apache.org">Martin Cooper</author>
      <author email="craigmcc@apache.org">Craig McClanahan</author>
    </properties>
  
    <body>
  
      <section name="Introduction">
        <p>A popular technique for organizing the execution of complex
        processing flows is the "Chain of Responsibility" pattern, as
        described (among many other places) in the classic "Gang of Four"
        design patterns book. Although the fundamental API contracts
        required to implement this design patten are extremely simple, it
        is useful to have a base API that facilitates using the pattern,
        and (more importantly) encouraging composition of command
        implementations from multiple diverse sources.</p>
  
        <p>Towards that end, the Chain API models a computation as a
        series of "commands" that can be combined into a "chain". The API
        for a command consists of a single method
        (<code>execute()</code>), which is passed a "context" parameter
        containing the dynamic state of the computation, and whose return
        value is a boolean that determines whether or not processing for
        the current chain has been completed (true), or whether
        processing should be delegated to the next command in the chain
        (false).</p>
  
        <p>The "context" abstraction is designed to isolate command
        implementations from the environment in which they are run (such
        as a command that can be used in either a Servlet or Portlet,
        without being tied directly to the API contracts of either of
        these environments). For commands that need to allocate resources
        prior to delegation, and then release them upon return (even if a
        delegated-to command throws an exception), the "filter" extension
        to "command" provides a <code>postprocess()</code> method for
        this cleanup. Finally, commands can be stored and looked up in a
        "catalog" to allow deferral of the decision on which command (or
        chain) is actually executed.</p>
  
        <p>To maximize the usefulness of the Chain of Responsibility
        pattern APIs, the fundamental interface contracts are defined in
        a manner with zero dependencies other than an appropriate JDK.
        Convenience base class implementations of these APIs are
        provided, as well as more specialized (but optional)
        implementations for the web environment (i.e. servlets and
        portlets). However, conditional compilation in the build script
        allows graceful creation of the underlying API JAR file even in
        the absence of the optional dependencies.</p>
  
        <p>Given that command implementations are designed to conform
        with these recommendations, it should be feasible to utilize the
        Chain of Responsibility APIs in the "front controller" of a web
        application framework (such as Struts), but also be able to use
        it in the business logic and persistence tiers to model complex
        computational requirements via composition. In addition,
        separation of a computation into discrete commands that operate
        on a general purpose context allows easier creation of commands
        that are unit testable, because the impact of executing a command
        can be directly measured by observing the corresponding state
        changes in the context that is supplied.</p>
      </section>
  
    </body>
  
  </document>
  
  
  
  1.1                  jakarta-commons-sandbox/chain/xdocs/navigation.xml
  
  Index: navigation.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  
  <project name="Chain">
  
    <title>Chain</title>
    <organizationLogo href="/images/jakarta-logo-blue.gif">Jakarta</organizationLogo>
  
    <body>
      <menu name="Chain">
        <item name="Home"                href="/index.html"/>
        <item name="Download"            href="/download.html"/>
      </menu>
  
      <links>
        <item name="Jakarta" href="http://jakarta.apache.org"/>
        <item name="Commons" href="http://jakarta.apache.org/commons"/>
        <item name="Chain" href="/index.html"/>
      </links>
    </body>
  </project>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message