haul        2002/12/04 01:51:09

  Modified:    src/documentation/xdocs/userdocs/concepts Tag:
                        cocoon_2_0_3_branch modules.xml
  Log:
  remove obsolete note
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.5   +159 -131  
xml-cocoon2/src/documentation/xdocs/userdocs/concepts/modules.xml
  
  Index: modules.xml
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/documentation/xdocs/userdocs/concepts/modules.xml,v
  retrieving revision 1.1.2.4
  retrieving revision 1.1.2.5
  diff -u -r1.1.2.4 -r1.1.2.5
  --- modules.xml       18 Sep 2002 16:28:10 -0000      1.1.2.4
  +++ modules.xml       4 Dec 2002 09:51:09 -0000       1.1.2.5
  @@ -12,73 +12,73 @@
   
   <body>
   
  -     <s1 title="Introduction">
  -       <p>
  -             Many sitemap components serve a purpose regardless how the input is
  -             obtained. Still, to provide a wide range of components to quickly get
  -             you up to speed, variants for different inputs exist. Modules allow to
  -             create generic components and plug-in input or output later.
  -       </p>
  -       <p>
  -             This document will explain how modules work and how to make use of
  -             them. If you plan on writing your own modules, it is highly recommended
  -             to read <fork
  -               href="http://jakarta.apache.org/avalon/developing/index.html";>
  -               Developing With Apache Avalon</fork>. It is a very good description
  -             of the underlying rationale and principles.
  -       </p>
  -     </s1>
  -     <s1 title="Types of Modules">
  -       <p>
  -             Currently, three different types of modules exist: Input modules
  -             provide means to enumerate parameters and to retrieve them, output
  -             modules allow storing of data and exhibit transaction like semantics,
  -             database modules encapsulate different mechanisms for auto increment
  -             columns of various database management systems. Please refer to the
  -             javadoc documentation of these interfaces.
  -       </p>
  -       <p>
  -             Input modules are modelled after request parameters. The main
  -             difference is, that every method takes two additional arguments, the
  -             request object and a configuration object. The configuration object is
  -             used to allow arbitrarily complex instructions for the input module.
  -             Apart from that, input modules are more or less a drop-in replacement.
  -       </p>
  -       <p>
  -             Output modules are again very similar to using request
  -             attributes. Basically, they provide a method to set an attribute to a
  -             value. Again, a request and a configuration object is the only change
  -             to request attributes. A fundamental difference is, however, that
  -             output modules should exhibit transactional behaviour. Thus setting an
  -             attributes implicitly starts a transaction that must be ended by
  -             calling rollback or commit. Only if the transaction is completed by
  -             calling commit, the values set should be visible. This is needed
  -             e.g. by the database actions.
  -       </p>
  -       <p>
  -             Database modules, actually named AutoIncrementModule, contains
  -             configuration information how to retrieve a value for an auto increment
  -             column. It is possible to obtain the value before inserting a row,
  -             while inserting as part of the SQL or after successful insert. If the
  -             value is obtained before inserting, it can be generated
  -             externally. Currently, supported database management systems include
  -             HSQL, Informix, MySQL, and querying the database for the current max
  -             value. 
  -       </p>
  -     </s1>
  -     <s1 title="Using modules">
  -       <p>
  -             Using any of these modules requires a two step setup process. Step one
  -             has already been done for your for all modules that come with Apache
  -             Cocoon. Exception to this rule are the auto increment modules: only the
  -             HSQL module is already setup.
  -       </p>
  -       <s2 title="Step 1: Making a new module know to Apache Cocoon">
  -             <p>
  -               Like other core components of Apache Cocoon, modules are declared in
  -               <code>cocoon.xconf</code>. There are already too many to list here.
  -             </p>
  -             <source>
  +    <s1 title="Introduction">
  +      <p>
  +        Many sitemap components serve a purpose regardless how the input is
  +        obtained. Still, to provide a wide range of components to quickly get
  +        you up to speed, variants for different inputs exist. Modules allow to
  +        create generic components and plug-in input or output later.
  +      </p>
  +      <p>
  +        This document will explain how modules work and how to make use of
  +        them. If you plan on writing your own modules, it is highly recommended
  +        to read <fork
  +          href="http://jakarta.apache.org/avalon/developing/index.html";>
  +          Developing With Apache Avalon</fork>. It is a very good description
  +        of the underlying rationale and principles.
  +      </p>
  +    </s1>
  +    <s1 title="Types of Modules">
  +      <p>
  +        Currently, three different types of modules exist: Input modules
  +        provide means to enumerate parameters and to retrieve them, output
  +        modules allow storing of data and exhibit transaction like semantics,
  +        database modules encapsulate different mechanisms for auto increment
  +        columns of various database management systems. Please refer to the
  +        javadoc documentation of these interfaces.
  +      </p>
  +      <p>
  +        Input modules are modelled after request parameters. The main
  +        difference is, that every method takes two additional arguments, the
  +        request object and a configuration object. The configuration object is
  +        used to allow arbitrarily complex instructions for the input module.
  +        Apart from that, input modules are more or less a drop-in replacement.
  +      </p>
  +      <p>
  +        Output modules are again very similar to using request
  +        attributes. Basically, they provide a method to set an attribute to a
  +        value. Again, a request and a configuration object is the only change
  +        to request attributes. A fundamental difference is, however, that
  +        output modules should exhibit transactional behaviour. Thus setting an
  +        attributes implicitly starts a transaction that must be ended by
  +        calling rollback or commit. Only if the transaction is completed by
  +        calling commit, the values set should be visible. This is needed
  +        e.g. by the database actions.
  +      </p>
  +      <p>
  +        Database modules, actually named AutoIncrementModule, contains
  +        configuration information how to retrieve a value for an auto increment
  +        column. It is possible to obtain the value before inserting a row,
  +        while inserting as part of the SQL or after successful insert. If the
  +        value is obtained before inserting, it can be generated
  +        externally. Currently, supported database management systems include
  +        HSQL, Informix, MySQL, and querying the database for the current max
  +        value. 
  +      </p>
  +    </s1>
  +    <s1 title="Using modules">
  +      <p>
  +        Using any of these modules requires a two step setup process. Step one
  +        has already been done for your for all modules that come with Apache
  +        Cocoon. Exception to this rule are the auto increment modules: only the
  +        HSQL module is already setup.
  +      </p>
  +      <s2 title="Step 1: Making a new module know to Apache Cocoon">
  +        <p>
  +          Like other core components of Apache Cocoon, modules are declared in
  +          <code>cocoon.xconf</code>. There are already too many to list here.
  +        </p>
  +        <source>
   <![CDATA[
   <input-modules>
      <component-instance name="request"   
  @@ -97,11 +97,11 @@
         class="org.apache.cocoon.components.modules.input.DateInputModule"/>
      <component-instance name="defaults"  
         class="org.apache.cocoon.components.modules.input.DefaultsMetaModule">
  -      <input-module name="request"/>
  -      <values>
  -             <skin>defaultSkin</skin>
  -             <base-url>http://localhost:8080/cocoon</base-url>
  -      </values>
  +     <input-module name="request"/>
  +     <values>
  +        <skin>defaultSkin</skin>
  +        <base-url>http://localhost:8080/cocoon</base-url>
  +     </values>
      </component-instance>
   </input-modules>
   
  @@ -125,62 +125,90 @@
   -->
   </autoincrement-modules>
   ]]>
  -             </source>
  -             <p>
  -               The above snippet declares a number of modules. After this, the
  -               modules are accessible through the given name. Thus, when an
  -               <code>input-module</code> is expected, it is sufficient to give the
  -               name of a module, like <code>header</code>.
  -             </p>
  -             <p>
  -               For the auto increment modules only one is declared as the name
  -               <code>"auto"</code> has special meaning to the modular database
  -               actions. If more than one is needed at the same time, the
  -               configuration of the database actions needs to explicitly specify
  -               which one to use.
  -             </p>
  -       </s2>
  -       <s2 title="Step 2: Use it">
  -             <p>
  -               Two alternatives for using modules exist:
  -             </p>
  -             <s3 title="Step 2a: Use it as sitemap variable">
  -               <p>
  -                     Input modules can be used in a sitemap almost like a sitemap
  -                     variable. If the variable name contains a colon (":"), the
  -                     preceeding string is used as the name of the module to use and 
the
  -                     trailing string is passed to the module. The expression is 
replaced
  -                     with the string value returned from the module.
  -               </p>
  -               <source>
  +        </source>
  +        <p>
  +          The above snippet declares a number of modules. After this, the
  +          modules are accessible through the given name. Thus, when an
  +          <code>input-module</code> is expected, it is sufficient to give the
  +          name of a module, like <code>header</code>.
  +        </p>
  +        <p>
  +          For the auto increment modules only one is declared as the name
  +          <code>"auto"</code> has special meaning to the modular database
  +          actions. If more than one is needed at the same time, the
  +          configuration of the database actions needs to explicitly specify
  +          which one to use.
  +        </p>
  +      </s2>
  +      <s2 title="Step 2: Use it">
  +        <p>
  +          The following alternatives for using modules exist:
  +        </p>
  +        <s3 title="Step 2a: Use it as sitemap variable">
  +          <p>
  +            Input modules can be used in a sitemap almost like a sitemap
  +            variable. If the variable name contains a colon (":"), the
  +            preceeding string is used as the name of the module to use and the
  +            trailing string is passed to the module. The expression is replaced
  +            with the string value returned from the module.
  +          </p>
  +          <source>
   <![CDATA[
      <map:transform src="resources/stylesheets/{../skin}.xsl"/>
   ]]>
  -               </source>
  -               <p>
  -                     The above example uses the variable <code>skin</code> declared
  -                     e.g. by an action for the stylesheet to apply to the page. The
  -                     example below uses an input module instead. The way this 
module was
  -                     declared above allows to override the skin with a request 
parameter
  -                     named "skin".
  -               </p>
  -               <note>
  -                     The above sitemap syntax is only available with the 2.1-dev 
version
  -                     of Apache Cocoon.
  -               </note>
  -               <source>
  +          </source>
  +          <p>
  +            The above example uses the variable <code>skin</code> declared
  +            e.g. by an action for the stylesheet to apply to the page. The
  +            example below uses an input module instead. The way this module was
  +            declared above allows to override the skin with a request parameter
  +            named "skin".
  +          </p>
  +          <source>
   <![CDATA[
      <map:transform src="resources/stylesheets/{default:skin}.xsl"/>
   ]]>
  -               </source>
  -             </s3>
  -             <s3 title="Step 2b: Have sitemap components use a module">
  -               <p>
  -                     This depends on the component that is to be used. As an 
example the
  -                     <code>CachingWildcardMatcher</code> requires to set the
  -                     <code>input-module</code> on declaration.
  -               </p>
  -               <source>
  +          </source>
  +        </s3>
  +        <s3 title="Step 2b: Use it on an XSP">
  +          <p>
  +            The input logicsheet allows easy use of InputModules from an
  +            XSP. Currently, it provides tags for getting one value, an
  +            array of values, and an Iterator for a Collection of
  +            parameter names.
  +          </p>
  +          <source>
  +<![CDATA[
  +<?xml version="1.0" encoding="ISO-8859-1"?>
  +
  +<xsp:page language="java"
  +    xmlns:xsp="http://apache.org/xsp";  
  +    xmlns:input="http://apache.org/cocoon/xsp/input/1.0";>
  +
  +<page>
  +    
  +  <title>Testing InputModules</title>
  +
  +    <p>
  +      Parameter name=<input:get-parameter module="request-param"
  +                       as="string" name="module" default="John Doe"/>;
  +    </p>
  +    <p>
  +      Parameter cars=<input:get-parameter-values module="request-param" 
  +                       as="xml" name="car"/>;
  +    </p>
  +  </page>
  +</xsp:page>
  +]]>
  +          </source>
  +        </s3>
  +        <s3 title="Step 2c: Have sitemap components use a module">
  +          <p>
  +            This depends on the component that is to be used. As an example the
  +            <code>CachingWildcardMatcher</code> requires to set the
  +            <code>input-module</code> on declaration.
  +          </p>
  +          <source>
   <![CDATA[
   <map:matchers default="wildcard">
     <map:matcher name="cached-uri" 
  @@ -189,15 +217,15 @@
     </map:matcher>
   </map:matchers>
   ]]>
  -               </source>
  -               <p>
  -                     By replacing the input module name with any of the other 
declared
  -                     input modules, this matcher can be used to match e.g. on 
session
  -                     attributes, request headers or even dates!
  -               </p>
  -             </s3>
  -       </s2>
  -     </s1>
  +          </source>
  +          <p>
  +            By replacing the input module name with any of the other declared
  +            input modules, this matcher can be used to match e.g. on session
  +            attributes, request headers or even dates!
  +          </p>
  +        </s3>
  +      </s2>
  +    </s1>
   
   </body>
   </document>
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to