craigmcc    01/08/13 14:12:14

  Added:       workflow .cvsignore PROPOSAL.html STATUS.html
                        build.properties.sample build.xml
  Log:
  Iniital check-in of the workflow management system proposal.
  
  Revision  Changes    Path
  1.1                  jakarta-commons-sandbox/workflow/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  build.properties
  dist
  target
  
  
  
  1.1                  jakarta-commons-sandbox/workflow/PROPOSAL.html
  
  Index: PROPOSAL.html
  ===================================================================
  <html>
  <head>
  <title>Proposal for Workflow Package</title>
  </head>
  <body bgcolor="white">
  
  <div align="center">
  <h1>Proposal for <em>Workflow</em> Package</h1>
  </div>
  
  <h3>(0) Rationale</h3>
  
  <p>Modern application architecture and design practices recommend the concept
  of "composition" (of existing modules and components) in the assembly of an
  overall application, to maximize the resuse of previously built functionality.
  However, it is still generally necessary to write original code that "glues"
  the components together.  It would be useful if individuals familiar with the
  business requirements of their systems could create "scripts" to represent
  the linkages between components, rather than requiring Java code.  The
  <em>Workflow</em> proposal intends to create support for just such a
  capability.</p>
  
  <p>Scripted workflows is an idea that can be used in many different
  application environments and use cases.  In particular, a highly desired use
  is in managing the interaction with web application users, where the
  transaction being performed requires more than one HTML page to be displayed.
  However, the <em>Workflow</em> implementation will be strictly layered so
  that the underlying scripting engine can be used without any reliance on
  web layer APIs</p>
  
  
  <h3>(1) Scope of the Package</h3>
  
  <p>The <em>Workflow</em> project shall create and maintain an engine to
  manage and execute scripts, codified in XML.  The basic engine shall be
  environment independent, but specialized implementations of the basic engine
  can adapt the engine to that environment.</p>
  
  <p>One specialized implementation will be included in the <em>Workflow</em>
  package itself - an adapter to integrate the workflow engine into the web
  layer, by mapping the Workflow concept of bean scopes into the scopes
  provided by the Servlet API (request, session, and application).  This
  implementation will be independent of any particular web application
  framework - it is expected that frameworks will further specialize the
  web layer implementation in order to integrate the framework's own
  capabilities and features.</p>
  
  <p>Scripts for the workflow engine will be codified in XML.  It shall be
  possible for specialized implementations to register their own sets of custom
  Step implementations, under a specific XML namespace, to transparently extend
  the set of built in Step implementations that is available to workflow
  engine users.</p>
  
  
  <h3>(1.5) Interaction With Other Packages</h3>
  
  <p><em>Digester</em> relies on:
  </p>
  
  <ul>
    <li>Java Development Kit (Version 1.2 or later)</li>
    <li>A JAXP 1.1 implementation</li>
    <li>A SAX 2.0 parser conforming to the JAXP 1.1 APIs</li>
    <li>BeanUtils from Commons - for instrospection information</li>
    <li>Collections from Commons - for object collections</li>
    <li>Digester from Commons - for parsing scripts in XML</li>
    <li>Servlet API - for web integration layer only</li>
  </ul>
  
  <h3>(2) Initial Source of the Package</h3>
  
  <p>This package represents a new approach to the workflow management process,
  so no initial codebase has been identified.</p>
  
  <p>The proposed package name for the new component is
  <code>org.apache.commons.workflow</code>, with subpackages for implementations
  of the basic interfaces.</p>
  
  <h3>(3) Required Jakarta-Commons Resources</h3>
  
  <ul>
  
  <li>CVS Repository - New directory <code>workflow</code> in the 
  <code>jakarta-commons</code> CVS repository.</li>
  
  <li>Mailing List - Discussions will take place on the general
  <em>[EMAIL PROTECTED]</em> mailing list. To help list
  subscribers identify messages of interest, it is suggested that the
  message subject of messages about this component be prefixed with
  [Workflow].</li>
  
  <li>Bugzilla - New component "Workflow" under the "Commons" product
  category, with appropriate version identifiers as needed.</li>
  
  <li>Jyve FAQ - New category "commons-workflow" (when available).</li>
  </ul>
  
  
  <h3>(4) Initial Committers</h3>
  
  <p>The initial committers on the Workflow component shall be:</p>
  
  <ul>
    <li>Craig R. McClanahan</li>
    <li>TBD</li>
  </ul>
  
  </body>
  </html>
  
  
  
  1.1                  jakarta-commons-sandbox/workflow/STATUS.html
  
  Index: STATUS.html
  ===================================================================
  <html>
  <head>
  <title>Status File for Jakarta Commons "Workflow" Component</title>
  <head>
  <body bgcolor="white">
  
  
  <div align="center">
  <h1>The Jakarta Commons <em>Workflow</em> Component</h1>
  $Id: STATUS.html,v 1.1 2001/08/13 21:12:13 craigmcc Exp $<br>
  <a href="#Introduction">[Introduction]</a>
  <a href="#Dependencies">[Dependencies]</a>
  <a href="#Release Info">[Release Info]</a>
  <a href="#Committers">[Committers]</a>
  <br><br>
  </div>
  
  
  <a name="Introduction"></a>
  <h3>1.  INTRODUCTION</h3>
  
   <p>
   This scope of the <em>Workflow</em> component is primarily
   oriented to managing the execution of work flow processes scripted in
   XML.
   </p>
   
  
  <a name="Dependencies"></a>
  <h3>2.  DEPENDENCIES</h3>
  
  <p>The <em>Digester</em> component is dependent upon the following external
  components for development and use:</p>
  <ul>
  <li><a href="http://java.sun.com/j2se";>Java Development Kit</a>
      (Version 1.2 or later)</li>
  <li><a href="http://jakarta.apache.org/jakarta-commons/beanutils/";>Jakarta Commons 
BeanUtils</a></li>
  <li><a href="http://jakarta.apache.org/jakarta-commons/collections/";>Jakarta Commons 
Collections</a></li>
  <li><a href="http://jakarta.apache.org/jakarta-commons/digester"/>Jakarta Commons 
Digester</a></li>
  </ul>
  
  
  <a name="Release Info"></a>
  <h3>3.  RELEASE INFO</h3>
  
  <p>Current Release:  <strong>Unreleased, CVS Repository Only</strong></p>
  <p>Planned Next Release: N/A</p>
  
  
  <a name="Committers"></a>
  <h3>4.  COMMITTERS</h3>
  
  <p>The following individuals are the primary developers and maintainers of this
  component.  Developers who plan to use <em>Digester</em> in their own
  projects are encouraged to collaborate on the future development of this
  component to ensure that it continues to meet a variety of needs.</p>
  <ul>
  <li><a href="mailto:[EMAIL PROTECTED]";>Craig McClanahan</a></li>
  <li>TBD</li>
  </ul>
  
  </body>
  </html>
  
  
  
  1.1                  jakarta-commons-sandbox/workflow/build.properties.sample
  
  Index: build.properties.sample
  ===================================================================
  # junit.jar - JUnit 3.7+ Classpath
  junit.jar=/java/junit/junit.jar
  
  
  
  1.1                  jakarta-commons-sandbox/workflow/build.xml
  
  Index: build.xml
  ===================================================================
  <project name="Workflow" default="compile" basedir=".">
  
  
  <!--
          "Workflow" component of the Jakarta Commons Subproject
          $Id: build.xml,v 1.1 2001/08/13 21:12:13 craigmcc Exp $
  -->
  
  
  <!-- ========== Initialize Properties ===================================== -->
  
  
    <property file="build.properties"/>                <!-- Component local   -->
    <property file="../build.properties"/>             <!-- Commons local     -->
    <property file="${user.home}/build.properties"/>   <!-- User local        -->
  
  
  <!-- ========== External Dependencies ===================================== -->
  
  
    <!-- The directories corresponding to your necessary dependencies -->
    <property name="jaxp.home"               value="/usr/local/jaxp-1.1"/>
    <property name="junit.home"              value="/usr/local/junit3.7"/>
    <property name="commons.home"            value="../../jakarta-commons"/>
    <property name="beanutils.home"          value="${commons.home}/beanutils"/>
    <property name="collections.home"        value="${commons.home}/collections"/>
    <property name="digester.home"           value="${commons.home}/digester"/>
    <property name="servletapi.home"         value="../../jakarta-servleatpi-4"/>
  
  
  <!-- ========== Derived Values ============================================ -->
  
  
    <!-- The locations of necessary jar files -->
    <property name="jaxp.jaxp.jar"           value="${jaxp.home}/jaxp.jar"/>
    <property name="jaxp.parser.jar"         value="${jaxp.home}/crimson.jar"/>
    <property name="junit.jar"               value="${junit.home}/junit.jar"/>
    <property name="commons-beanutils.jar"   
value="${beanutils.home}/build/commons-beanutils.jar"/>
    <property name="commons-collections.jar" 
value="${collections.home}/build/commons-collections.jar"/>
    <property name="commons-digester.jar"    
value="${digester.home}/lib/commons-digester.jar"/>
    <property name="servlet.jar"             
value="${servletapi.home}/lib/servlet.jar"/>
  
  
  <!-- ========== Component Declarations ==================================== -->
  
  
    <!-- The name of this component -->
    <property name="component.name"          value="workflow"/>
  
    <!-- The title of this component -->
    <property name="component.title"         value="Workflow Management System"/>
  
    <!-- The current version number of this component -->
    <property name="component.version"       value="0.1-dev"/>
  
    <!-- The base directory for compilation targets -->
    <property name="build.home"              value="target"/>
  
    <!-- The base directory for component configuration files -->
    <property name="conf.home"               value="src/conf"/>
  
    <!-- The base directory for distribution targets -->
    <property name="dist.home"               value="dist"/>
  
    <!-- The base directory for component sources -->
    <property name="source.home"             value="src/java"/>
  
    <!-- The base directory for unit test sources -->
    <property name="test.home"               value="src/test"/>
  
  
  <!-- ========== Compiler Defaults ========================================= -->
  
  
    <!-- Should Java compilations set the 'debug' compiler option? -->
    <property name="compile.debug"           value="true"/>
  
    <!-- Should Java compilations set the 'deprecation' compiler option? -->
    <property name="compile.deprecation"     value="false"/>
  
    <!-- Should Java compilations set the 'optimize' compiler option? -->
    <property name="compile.optimize"        value="true"/>
  
    <!-- Construct compile classpath -->
    <path id="compile.classpath">
      <pathelement location="${build.home}/classes"/>
      <pathelement location="${jaxp.jaxp.jar}"/>
      <pathelement location="${jaxp.parser.jar}"/>
      <pathelement location="${commons-beanutils.jar}"/>
      <pathelement location="${commons-collections.jar}"/>
      <pathelement location="${commons-digester.jar}"/>
      <pathelement location="${servlet.jar}"/>
    </path>
  
  
  <!-- ========== Test Execution Defaults =================================== -->
  
  
    <!-- Construct unit test classpath -->
    <path id="test.classpath">
      <pathelement location="${build.home}/classes"/>
      <pathelement location="${build.home}/tests"/>
      <pathelement location="${commons-beanutils.jar}"/>
      <pathelement location="${commons-collections.jar}"/>
      <pathelement location="${commons-digester.jar}"/>
      <pathelement location="${servlet.jar}"/>
      <pathelement location="${junit.jar}"/>
    </path>
  
    <!-- Should all tests fail if one does? -->
    <property name="test.failonerror"        value="true"/>
  
    <!-- The test runner to execute -->
    <property name="test.runner"             value="junit.textui.TestRunner"/>
  
  
  <!-- ========== Demonstration Program Defaults ============================ -->
  
    <!-- Construct demonstration classpath -->
    <path id="demo.classpath">
      <pathelement location="${build.home}/classes"/>
      <pathelement location="${jaxp.jaxp.jar}"/>
      <pathelement location="${jaxp.parser.jar}"/>
      <pathelement location="${commons-beanutils.jar}"/>
      <pathelement location="${commons-collections.jar}"/>
      <pathelement location="${commons-digester.jar}"/>
      <pathelement location="${servlet.jar}"/>
    </path>
  
    <!-- The demonstration program runner to execute -->
    <property name="demo.runner"             
value="org.apache.commons.workflow.demo.Main"/>
  
    <!-- The default pathname to the demonstration data file -->
    <property name="demo.filename"           
value="src/java/org/apache/commons/workflow/demo/main.xml"/>
  
  
  <!-- ========== Executable Targets ======================================== -->
  
  
    <target name="init"
     description="Initialize and evaluate conditionals">
      <echo message="-------- ${component.name} ${component.version} --------"/>
      <filter  token="name"                  value="${component.name}"/>
      <filter  token="version"               value="${component.version}"/>
    </target>
  
  
    <target name="prepare" depends="init"
     description="Prepare build directory">
      <mkdir dir="${build.home}"/>
      <mkdir dir="${build.home}/classes"/>
      <mkdir dir="${build.home}/conf"/>
      <mkdir dir="${build.home}/tests"/>
    </target>
  
  
    <target name="static" depends="prepare"
     description="Copy static files to build directory">
      <tstamp/>
      <copy  todir="${build.home}/conf" filtering="on">
        <fileset dir="${conf.home}" includes="*.MF"/>
      </copy>
    </target>
  
  
    <target name="compile" depends="static"
     description="Compile shareable components">
      <javac  srcdir="${source.home}"
             destdir="${build.home}/classes"
               debug="${compile.debug}"
         deprecation="${compile.deprecation}"
            optimize="${compile.optimize}"
            excludes="org/apache/commons/workflow/demo/**">
        <classpath refid="compile.classpath"/>
      </javac>
      <copy    todir="${build.home}/classes" filtering="on">
        <fileset dir="${source.home}"
            excludes="**/*.java org/apache/commons/workflow/demo/**"/>
      </copy>
    </target>
  
  
    <target name="clean"
     description="Clean build and distribution directories">
      <delete    dir="${build.home}"/>
      <delete    dir="${dist.home}"/>
    </target>
  
  
    <target name="all" depends="clean,compile"
     description="Clean and compile all components"/>
  
  
    <target name="javadoc" depends="compile"
     description="Create component Javadoc documentation">
      <mkdir      dir="${dist.home}"/>
      <mkdir      dir="${dist.home}/docs"/>
      <mkdir      dir="${dist.home}/docs/api"/>
      <javadoc sourcepath="${source.home}"
                  destdir="${dist.home}/docs/api"
             packagenames="org.apache.commons.*"
                   author="true"
                  private="true"
                  version="true"
                 doctitle="&lt;h1&gt;${component.title}&lt;/h1&gt;"
              windowtitle="${component.title} (Version ${component.version})"
                   bottom="Copyright (c) 2001 - Apache Software Foundation"/>
    </target>
  
  
    <target name="dist" depends="compile,javadoc"
     description="Create binary distribution">
      <mkdir      dir="${dist.home}"/>
      <copy      file="../LICENSE"
                todir="${dist.home}"/>
      <jar    jarfile="${dist.home}/commons-${component.name}.jar"
              basedir="${build.home}/classes"
             manifest="${build.home}/conf/MANIFEST.MF"/>
    </target>
  
  
  <!-- ========== Unit Test Targets ========================================= -->
  
  
    <target name="compile.tests" depends="compile"
     description="Compile unit test cases">
      <javac  srcdir="${test.home}"
             destdir="${build.home}/tests"
               debug="${compile.debug}"
         deprecation="${compile.deprecation}"
            optimize="${compile.optimize}">
        <classpath refid="test.classpath"/>
      </javac>
      <copy    todir="${build.home}/tests" filtering="on">
        <fileset dir="${test.home}" excludes="**/*.java"/>
      </copy>
    </target>
  
  
    <target name="test"  depends="compile.tests"
     description="Run all unit test cases">
    </target>
  
  <!--
    <target name="test.property">
      <echo message="Running PropertyUtils tests ..."/>
      <java classname="${test.runner}" fork="yes"
          failonerror="${test.failonerror}">
        <arg value="org.apache.commons.beanutils.PropertyUtilsTestCase"/>
        <classpath refid="test.classpath"/>
      </java>
    </target>
  -->
  
  
  <!-- ========== Demonstration Program Target ============================== -->
  
  
    <target name="compile.demo" depends="compile"
     description="Compile demonstration program">
      <javac  srcdir="${source.home}"
             destdir="${build.home}/classes"
               debug="${compile.debug}"
         deprecation="${compile.deprecation}"
            optimize="${compile.optimize}"
            includes="org/apache/commons/workflow/demo/**">
        <classpath refid="compile.classpath"/>
      </javac>
      <copy    todir="${build.home}/classes" filtering="on">
        <fileset dir="${source.home}"
            includes="org/apache/commons/workflow/demo/**"
            excludes="**/*.java"/>
      </copy>
    </target>
  
    <target name="demo" depends="compile.demo"
     description="Excecute the demonstration program">
      <echo message="Excecuting demo program on ${demo.filename}"/>
      <java classname="${demo.runner}" fork="yes"
          failonerror="true">
        <arg value="${demo.filename}"/>
        <classpath refid="demo.classpath"/>
      </java>
    </target>
  
  
  </project>
  
  
  

Reply via email to