greenrd 00/11/07 14:35:43
Modified: xdocs connection-pool.xml fptaglib.xml sqltaglib.xml
Log:
made docs less wide for smaller screens, thanks to Ovidiu Predescu
Revision Changes Path
1.5 +30 -30 xml-cocoon/xdocs/connection-pool.xml
Index: connection-pool.xml
===================================================================
RCS file: /home/cvs/xml-cocoon/xdocs/connection-pool.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- connection-pool.xml 2000/09/22 22:56:51 1.4
+++ connection-pool.xml 2000/11/07 22:35:30 1.5
@@ -56,42 +56,42 @@
for help or try on your own. It is quite easy to add support for
your favorite
database.</p>
<source>
- # These are your database settings, look in the
- # org.apache.turbine.util.db.pool.* package for more information.
-
processor.xsp.pool.database.default.driver=oracle.jdbc.driver.OracleDriver
-
processor.xsp.pool.database.default.url=jdbc:oracle:thin:@localhost:1521:ORCL
- processor.xsp.pool.database.default.username=dbUser
- processor.xsp.pool.database.default.password=dbPass
- processor.xsp.pool.database.default.maxConnections=3
- processor.xsp.pool.database.default.expiryTime=3600000
- # These are the supported jdbc-drivers and their adaptors.
- # These properties are used by the DBFactory.
-
processor.xsp.pool.database.adaptor=DBWeblogic,DBOracle,DBInstantDB,DBPostgres,DBSybase,DBInformix
-
processor.xsp.pool.database.adaptor.DBWeblogic=weblogic.jdbc.pool.Driver
-
processor.xsp.pool.database.adaptor.DBOracle=oracle.jdbc.driver.OracleDriver
-
processor.xsp.pool.database.adaptor.DBInstantDB=org.enhydra.instantdb.jdbc.idbDriver
- processor.xsp.pool.database.adaptor.DBPostgres=postgresql.Driver
-
processor.xsp.pool.database.adaptor.DBInformix=com.informix.jdbc.IfxDriver
-
processor.xsp.pool.database.adaptor.DBSybase=com.sybase.jdbc.SybDriver
- # The full path name to a pool log file
- # if not given, commands to log events using
org.apache.turbine.util.Log will be ignored.
- # This file must already exist and be writable.
- # Default: none
- #
- processor.xsp.pool.logfile=/opt/apache/var/log/dbPool.log
- </source>
+# These are your database settings, look in the
+# org.apache.turbine.util.db.pool.* package for more information.
+processor.xsp.pool.database.default.driver=oracle.jdbc.driver.OracleDriver
+processor.xsp.pool.database.default.url=jdbc:oracle:thin:@localhost:1521:ORCL
+processor.xsp.pool.database.default.username=dbUser
+processor.xsp.pool.database.default.password=dbPass
+processor.xsp.pool.database.default.maxConnections=3
+processor.xsp.pool.database.default.expiryTime=3600000
+# These are the supported jdbc-drivers and their adaptors.
+# These properties are used by the DBFactory.
+processor.xsp.pool.database.adaptor=DBWeblogic,DBOracle,DBInstantDB,DBPostgres,DBSybase,DBInformix
+processor.xsp.pool.database.adaptor.DBWeblogic=weblogic.jdbc.pool.Driver
+processor.xsp.pool.database.adaptor.DBOracle=oracle.jdbc.driver.OracleDriver
+processor.xsp.pool.database.adaptor.DBInstantDB=org.enhydra.instantdb.jdbc.idbDriver
+processor.xsp.pool.database.adaptor.DBPostgres=postgresql.Driver
+processor.xsp.pool.database.adaptor.DBInformix=com.informix.jdbc.IfxDriver
+processor.xsp.pool.database.adaptor.DBSybase=com.sybase.jdbc.SybDriver
+# The full path name to a pool log file
+# if not given, commands to log events using org.apache.turbine.util.Log
will be ignored.
+# This file must already exist and be writable.
+# Default: none
+#
+processor.xsp.pool.logfile=/opt/apache/var/log/dbPool.log
+</source>
<p> The <strong>default</strong> is by convention the default
connection used
by the Turbine Connection Pool. To define a Named connection, add
new entries
with the word "default" replaced with the name you want. Here is
an example
for defining a connection to an Oracle database called
"helpdesk":</p>
<source>
-
processor.xsp.pool.database.helpdesk.driver=oracle.jdbc.driver.OracleDriver
-
processor.xsp.pool.database.helpdesk.url=jdbc:oracle:thin:@localhost:1521:ORCL
- processor.xsp.pool.database.helpdesk.username=dbUser
- processor.xsp.pool.database.helpdesk.password=dbPass
- processor.xsp.pool.database.helpdesk.maxConnections=3
- processor.xsp.pool.database.helpdesk.expiryTime=3600000
+processor.xsp.pool.database.helpdesk.driver=oracle.jdbc.driver.OracleDriver
+processor.xsp.pool.database.helpdesk.url=jdbc:oracle:thin:@localhost:1521:ORCL
+processor.xsp.pool.database.helpdesk.username=dbUser
+processor.xsp.pool.database.helpdesk.password=dbPass
+processor.xsp.pool.database.helpdesk.maxConnections=3
+processor.xsp.pool.database.helpdesk.expiryTime=3600000
</source>
<p>The maxConnections setting is the maximum number
1.4 +23 -23 xml-cocoon/xdocs/fptaglib.xml
Index: fptaglib.xml
===================================================================
RCS file: /home/cvs/xml-cocoon/xdocs/fptaglib.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- fptaglib.xml 2000/09/27 23:31:10 1.3
+++ fptaglib.xml 2000/11/07 22:35:31 1.4
@@ -115,12 +115,12 @@
<p>This is how to set up a file resource that you want to
modify.</p>
<source><![CDATA[
- <fp:resource id="external-item">
- <fp:resource-file>../index.xml</fp:resource-file>
- <fp:resource-node>item[position()=<request:get-parameter
name="item"/>]</fp:resource-node>
- <fp:default-mode>insert-before</fp:default-mode>
- </fp:resource>
- ]]></source>
+<fp:resource id="external-item">
+ <fp:resource-file>../index.xml</fp:resource-file>
+ <fp:resource-node>item[position()=<request:get-parameter
name="item"/>]</fp:resource-node>
+ <fp:default-mode>insert-before</fp:default-mode>
+</fp:resource>
+]]></source>
<p>We are nesting an element from the Request TagLib inside an
FP element to build an XPath on the fly from the "item" request parameter. Now
you can use <code>fp:read</code> and <code>fp:write</code> elements to read
and/or write to this file, inserting a new "item" Node before the current one,
from text in a Form field.</p>
@@ -131,10 +131,10 @@
<p>Here, I want to get the Title of all onf the Items, to build
a Menu.</p>
<source><![CDATA[
- <menu action="item-add.xml?item=">
- <fp:read select="../item/title" from="external-item" as="node"/>
- </menu>
- ]]></source>
+<menu action="item-add.xml?item=">
+ <fp:read select="../item/title" from="external-item" as="node"/>
+</menu>
+]]></source>
<p>The <code>fp:read</code> element is replaced by the contents
of the read.</p>
<p>The <code>from</code> attribute is the name of the resource
you want to read.</p>
@@ -155,19 +155,19 @@
<p>Here we make a Form <code>input</code> Field, so the name is
important, but it does not need to relate to the name of the location where the
data is to be stored. The parent deos not have to be <code>input</code>, use
whatever you want.</p>
<source><![CDATA[
- <input name="title">
- <xsp:attribute name="label"><fp:read select="title/label"
from="default-item"/></xsp:attribute>
- <fp:if-post>
- <fp:write to="external-item" select="title">
- <request:get-parameter name="title"/>
- </fp:write>
- <fp:read select="title" from="external-item"/>
- </fp:if-post>
- <fp:if-get>
- <fp:read select="title/value" from="default-item"/>
- </fp:if-get>
- </input>
- ]]></source>
+<input name="title">
+ <xsp:attribute name="label"><fp:read select="title/label"
from="default-item"/></xsp:attribute>
+ <fp:if-post>
+ <fp:write to="external-item" select="title">
+ <request:get-parameter name="title"/>
+ </fp:write>
+ <fp:read select="title" from="external-item"/>
+ </fp:if-post>
+ <fp:if-get>
+ <fp:read select="title/value" from="default-item"/>
+ </fp:if-get>
+</input>
+]]></source>
<p>I create a <code>label</code> attribute in the
<code>input</code> element, using XSP, but the content comes from reading Text
from the defaults file (I would have had to set this file up previously as a
<code>fp:resource</code>). The default value for the <code>as</code> attribute
is "string", so I am leaving it out. I understand Xerces prefers you to write
attributes before elements.</p>
<p>Next I write, only if someone is POSTing a Form.</p>
1.11 +42 -42 xml-cocoon/xdocs/sqltaglib.xml
Index: sqltaglib.xml
===================================================================
RCS file: /home/cvs/xml-cocoon/xdocs/sqltaglib.xml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- sqltaglib.xml 2000/09/19 23:01:45 1.10
+++ sqltaglib.xml 2000/11/07 22:35:33 1.11
@@ -94,53 +94,53 @@
<p>Let's step through an example of using a connection defined to be
"helpdesk"
that uses oracle. In the cocoon.properties have something simular
to this:</p>
<source>
- #### ORACLE
-
processor.xsp.pool.database.helpdesk.driver=oracle.jdbc.driver.OracleDriver
-
processor.xsp.pool.database.helpdesk.url=jdbc:oracle:thin:@localhost:1521:dldf
- processor.xsp.pool.database.helpdesk.username=dnUser
- processor.xsp.pool.database.helpdesk.password=dbPass
- # The number of database connections to cache in the
ConnectionPool.
- processor.xsp.pool.database.helpdesk.maxConnections=3
+#### ORACLE
+processor.xsp.pool.database.helpdesk.driver=oracle.jdbc.driver.OracleDriver
+processor.xsp.pool.database.helpdesk.url=jdbc:oracle:thin:@localhost:1521:dldf
+processor.xsp.pool.database.helpdesk.username=dnUser
+processor.xsp.pool.database.helpdesk.password=dbPass
+# The number of database connections to cache in the ConnectionPool.
+processor.xsp.pool.database.helpdesk.maxConnections=3
</source>
<p>then in my xml file, I would use the connection pool name
"helpdesk" as:</p>
<source><![CDATA[
- <sql:execute-query>
- <sql:use-connection>helpdesk</sql:use-connection>
- <sql:skip-rows>0</sql:skip-rows>
- <sql:max-rows>50</sql:max-rows>
- <sql:null-indicator>y</sql:null-indicator>
- <sql:count-attribute>BOB</sql:count-attribute>
- <sql:doc-element>ROWSET</sql:doc-element>
- <sql:row-element>ROW</sql:row-element>
- <sql:tag-case>preserve</sql:tag-case>
- <sql:id-attribute>ID</sql:id-attribute>
- <sql:query>
- SELECT last_name, first_name, initials
- FROM EMPLOYEE
- </sql:query>
- </sql:execute-query>
- ]]></source>
+<sql:execute-query>
+ <sql:use-connection>helpdesk</sql:use-connection>
+ <sql:skip-rows>0</sql:skip-rows>
+ <sql:max-rows>50</sql:max-rows>
+ <sql:null-indicator>y</sql:null-indicator>
+ <sql:count-attribute>BOB</sql:count-attribute>
+ <sql:doc-element>ROWSET</sql:doc-element>
+ <sql:row-element>ROW</sql:row-element>
+ <sql:tag-case>preserve</sql:tag-case>
+ <sql:id-attribute>ID</sql:id-attribute>
+ <sql:query>
+ SELECT last_name, first_name, initials
+ FROM EMPLOYEE
+ </sql:query>
+</sql:execute-query>
+]]></source>
<p>Notice that for the connection pool, you do <strong>not</strong> use
the <strong>driver</strong>,
<strong>dburl</strong>, <strong>username</strong>,
nor <strong>password</strong> tags.
Lets look at an example that does not use the connection pool:</p>
<source><![CDATA[
- <sql:execute-query>
- <sql:driver>com.informix.jdbc.IfxDriver</sql:driver>
-
<sql:dburl>jdbc:informix-sqli://localhost:1526/database:informixserver=server</sql:dburl>
- <sql:username>dbUser</sql:username>
- <sql:password>dbPass</sql:password>
- <sql:skip-rows>0</sql:skip-rows>
- <sql:max-rows>50</sql:max-rows>
- <sql:tag-case>preserve</sql:tag-case>
- <sql:count-attribute>count</sql:count-attribute>
- <sql:doc-element>ROWSET</sql:doc-element>
- <sql:row-element>ROW</sql:row-element>
- <sql:null-indicator>omit</sql:null-indicator>
- <sql:id-attribute>ID</sql:id-attribute>
- <sql:query>SELECT * FROM CUSTOMER;</sql:query>
- </sql:execute-query>
- ]]></source>
+<sql:execute-query>
+ <sql:driver>com.informix.jdbc.IfxDriver</sql:driver>
+
<sql:dburl>jdbc:informix-sqli://localhost:1526/database:informixserver=server</sql:dburl>
+ <sql:username>dbUser</sql:username>
+ <sql:password>dbPass</sql:password>
+ <sql:skip-rows>0</sql:skip-rows>
+ <sql:max-rows>50</sql:max-rows>
+ <sql:tag-case>preserve</sql:tag-case>
+ <sql:count-attribute>count</sql:count-attribute>
+ <sql:doc-element>ROWSET</sql:doc-element>
+ <sql:row-element>ROW</sql:row-element>
+ <sql:null-indicator>omit</sql:null-indicator>
+ <sql:id-attribute>ID</sql:id-attribute>
+ <sql:query>SELECT * FROM CUSTOMER;</sql:query>
+</sql:execute-query>
+]]></source>
</s1>
<s1 title="Column Names and Formatting">
@@ -159,9 +159,9 @@
<p>For each sql:column-format element, a new instance of the
Format subclass specified by the sql:class element is constructed using the
construction parameters specified by the sql:parameter elements. The
constructor must accept only Strings as parameters; if other datatypes are
required for a class you wish to use, you must provide your own decorator
wrapper for that class. Values from the named column are formatting using the
format method. Here is an example:</p>
<source><![CDATA[
<sql:column-format>
- <sql:name>my_date</sql:name>
- <sql:class>java.text.SimpleDateFormat</sql:class>
- <sql:parameter>MM/dd/yyyy</sql:parameter>
+ <sql:name>my_date</sql:name>
+ <sql:class>java.text.SimpleDateFormat</sql:class>
+ <sql:parameter>MM/dd/yyyy</sql:parameter>
</sql:column-format>
]]></source>
</s1>