You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by aw...@apache.org on 2006/08/24 22:41:14 UTC

svn commit: r434517 [23/23] - in /incubator/openjpa/trunk: openjpa-kernel/src/main/java/org/apache/openjpa/meta/ openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ openjpa-project/src/doc/manual/

Modified: incubator/openjpa/trunk/openjpa-project/src/doc/manual/samples_guide.xml
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-project/src/doc/manual/samples_guide.xml?rev=434517&r1=434516&r2=434517&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-project/src/doc/manual/samples_guide.xml (original)
+++ incubator/openjpa/trunk/openjpa-project/src/doc/manual/samples_guide.xml Thu Aug 24 13:41:12 2006
@@ -1,137 +1,169 @@
-
-    <chapter id="samples_guide">
-      <title>OpenJPA Sample Code</title>
-      <para>
-  The OpenJPA distribution comes with a number of examples that
-  illustrate the usage of various features.
-  </para>
+<chapter id="samples_guide">
+    <title>
+        OpenJPA Sample Code
+    </title>
+    <para>
+The OpenJPA distribution comes with a number of examples that illustrate the
+usage of various features.
+    </para>
 <!--
-  This is information on the sample application. It will be included
-  in the documentation (see doc/openjpa/samples-guide.xml). It will also
-  automatically be converted into a README.txt file in this directory
-  in the "release.org.apache.openjpa.releasedocs" build target phase of the release.
+This is information on the sample application. It will be included
+in the documentation (see doc/openjpa/samples-guide.xml). It will also
+automatically be converted into a README.txt file in this directory
+in the "release.openjpa.releasedocs" build target phase of the release.
 -->
-      <section id="samples_guide_interop">
-        <title>JDO - JPA Persistence Interoperability</title>
-        <para>This sample demonstrates how to combine JDO and JPA in a single
-application. The <filename>MachineMain.java</filename> program uses both
-<classname>EntityManager</classname>s and <classname>PersistenceManager</classname>s 
-in a single transaction including persist, delete and query operations.</para>
-        <para>The sample includes both annotated persistent classes as well as JDOR 
-metadata information.  The application can switch to either system simply
-by changing the bootstrap mechanism.  Depending on which configuration
-system you use, OpenJPA will read the corresponding metadata format.  You can
-override some or all of this behavior using OpenJPA's configuration options, 
-such as <link linkend="openjpa.MetaDataFactory">openjpa.MetaDataFactory</link>.</para>
-        <para>To use this sample, you should ensure that either a <filename>jdo.properties</filename>
-or <filename>persistence.xml</filename> are in the <filename>META-INF</filename> directory 
-in your <envar>CLASSPATH</envar>. The rest of the files for this sample are located in the 
-<filename>samples/mixed</filename> directory of the OpenJPA installation.  This tutorial requires JDK 5.  
-To run this tutorial:</para>
+    <section id="samples_guide_interop">
+        <title>
+            JDO - JPA Persistence Interoperability
+        </title>
+        <para>
+This sample demonstrates how to combine JDO and JPA in a single application. The
+<filename>MachineMain.java</filename> program uses both <classname>
+EntityManager</classname>s and <classname>PersistenceManager</classname>s in a
+single transaction including persist, delete and query operations.
+        </para>
+        <para>
+The sample includes both annotated persistent classes as well as JDOR metadata
+information. The application can switch to either system simply by changing the
+bootstrap mechanism. Depending on which configuration system you use, OpenJPA
+will read the corresponding metadata format. You can override some or all of
+this behavior using OpenJPA's configuration options, such as
+<link linkend="openjpa.MetaDataFactory">openjpa.MetaDataFactory</link>.
+        </para>
+        <para>
+To use this sample, you should ensure that either a <filename>jdo.properties
+</filename> or <filename>persistence.xml</filename> are in the <filename>
+META-INF</filename> directory in your <envar>CLASSPATH</envar>. The rest of the
+files for this sample are located in the <filename>samples/mixed</filename>
+directory of the OpenJPA installation. This tutorial requires JDK 5. To run this
+tutorial:
+        </para>
         <itemizedlist>
-          <listitem>
-            <para>Ensure that your environment is set properly as described in the
-  README and that your current path is in the mixed sample directory.</para>
-          </listitem>
-          <listitem>
-            <para>
-  You may want to edit <literal>ConnectionURL</literal> to point to an absolute 
-    URL (e.g. <filename>C:/openjpa/mixed-sample-db</filename>) if using a file-based database like 
-  <literal>HSQL</literal>.</para>
-          </listitem>
-          <listitem>
-            <para>Include the list of persistent classes in your configuration file.  For
-  JPA, you will want to add the following lines to 
-  <filename>persistence.xml</filename> before the <literal>&lt;property&gt;</literal> lines:
-  </para>
-            <programlisting format="linespecific">
+            <listitem>
+                <para>
+Ensure that your environment is set properly as described in the README and that
+your current path is in the mixed sample directory.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+You may want to edit <literal>ConnectionURL</literal> to point to an absolute
+URL (e.g. <filename>C:/openjpa/mixed-sample-db</filename>) if using a
+file-based database like <literal>HSQL</literal>.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+Include the list of persistent classes in your configuration file. For JPA, you
+will want to add the following lines to <filename>persistence.xml</filename>
+before the <literal>&lt;property&gt;</literal> lines:
+                </para>
+<programlisting>
 &lt;class&gt;samples.mixed.Machine&lt;/class&gt;
 &lt;class&gt;samples.mixed.Crane&lt;/class&gt;
 &lt;class&gt;samples.mixed.Bulldozer&lt;/class&gt;
 &lt;class&gt;samples.mixed.Operator&lt;/class&gt;
 </programlisting>
-            <para>
-  If you are using JDO, point the metadata factory at the <filename>.jdo</filename>
-resource containing your persistent classes:
-  </para>
-            <programlisting format="linespecific">
+                <para>
+If you are using JDO, point the metadata factory at the <filename>.jdo
+</filename> resource containing your persistent classes:
+                </para>
+<programlisting>
 openjpa.MetaDataFactory: Resources=samples/mixed/package.jdo
 </programlisting>
-          </listitem>
-          <listitem>
-            <para>Compile the classes:
-  
-  </para>
-            <para>
-              <userinput>javac *.java</userinput>
-            </para>
-          </listitem>
-          <listitem>
-            <para>You should then proceed to pass in the configuration file you are using
-  to the enhancer:
-
-  </para>
-            <para>
-              <userinput>openjpac -p persistence.xml Machine.java Crane.java Bulldozer.java Operator.java</userinput>
-            </para>
-            <para>
-    or
-  </para>
-            <para>
-              <userinput>jdoc -p jdo.properties Machine.java Crane.java Bulldozer.java Operator.java</userinput>
-            </para>
-          </listitem>
-          <listitem>
-            <para>Similarly, you should pass in the same argument to <literal>mappingtool</literal>:
-
-  </para>
-            <para>
-              <userinput>mappingtool -p persistence.xml -a buildSchema Machine.java Crane.java Bulldozer.java Operator.java</userinput>
-            </para>
-            <para>
-    or
-  </para>
-            <para>
-              <userinput>mappingtool -p jdo.properties -a buildSchema Machine.java Crane.java Bulldozer.java Operator.java</userinput>
-            </para>
-          </listitem>
-          <listitem>
-            <para>You can now run the sample application.  The first argument is
-  which operation you want the program to run.  The second argument tells 
-  the application which bootstrap system to use:
-
-  </para>
-            <para>
-              <userinput>java samples.mixed.MachineMain &lt;create | delete&gt; &lt;jdo | jpa&gt;</userinput>
-            </para>
-          </listitem>
-        </itemizedlist>
-      </section>
-      <section id="samples_guide_ejbdiv">
-        <title>JPA</title>
-<!--
-  This is information on the sample application. It will be included
-  in the documentation (see doc/openjpa/samples-guide.xml). It will also
-  automatically be converted into a README.txt file in this directory
-  in the "release.jdo.releasedocs" build target phase of the release.
--->
-        <section id="samples_guide_model_humres_ejb">
-          <title>Sample Human Resources Model</title>
-          <para>The files for this sample are located in the <filename>samples/persistence/models/humres</filename> 
-directory of the OpenJPA installation.  This sample demonstrates the mapping of 
-an example "Human Resources" schema. The following concepts are illustrated
-in this sample:</para>
-          <itemizedlist>
+            </listitem>
+            <listitem>
+                <para>
+Compile the classes:
+                </para>
+                <para>
+<userinput>javac *.java</userinput>
+                </para>
+            </listitem>
             <listitem>
-              <para>Value Mappings</para>
+                <para>
+You should then proceed to pass in the configuration file you are using to the
+enhancer:
+                </para>
+                <para>
+<userinput>openjpac -p persistence.xml Machine.java Crane.java Bulldozer.java
+Operator.java</userinput>
+                </para>
+                <para>
+or
+                </para>
+                <para>
+<userinput>jdoc -p jdo.properties Machine.java Crane.java Bulldozer.java
+Operator.java</userinput>
+                </para>
             </listitem>
             <listitem>
-              <para>One to One Mappings</para>
+                <para>
+Similarly, you should pass in the same argument to <literal>mappingtool
+</literal>:
+                </para>
+                <para>
+<userinput>mappingtool -p persistence.xml -a buildSchema Machine.java
+Crane.java Bulldozer.java Operator.java</userinput>
+                </para>
+                <para>
+or
+                </para>
+                <para>
+<userinput>mappingtool -p jdo.properties -a buildSchema Machine.java Crane.java
+Bulldozer.java Operator.java</userinput>
+                </para>
             </listitem>
             <listitem>
-              <para>One to Many Mappings (with and without inverses)</para>
+                <para>
+You can now run the sample application. The first argument is which operation
+you want the program to run. The second argument tells the application which
+bootstrap system to use:
+                </para>
+                <para>
+<userinput>java samples.mixed.MachineMain &lt;create | delete&gt; &lt;jdo |
+jpa&gt;</userinput>
+                </para>
             </listitem>
-          </itemizedlist>
+        </itemizedlist>
+    </section>
+    <section id="samples_guide_jpadiv">
+        <title>
+            JPA
+        </title>
+<!--
+This is information on the sample application. It will be included
+in the documentation (see doc/openjpa/samples-guide.xml). It will also
+automatically be converted into a README.txt file in this directory
+in the "release.jdo.releasedocs" build target phase of the release.
+-->
+        <section id="samples_guide_model_humres_jpa">
+            <title>
+                Sample Human Resources Model
+            </title>
+            <para>
+The files for this sample are located in the <filename>
+samples/persistence/models/humres</filename> directory of the OpenJPA
+installation. This sample demonstrates the mapping of an example "Human
+Resources" schema. The following concepts are illustrated in this sample:
+            </para>
+            <itemizedlist>
+                <listitem>
+                    <para>
+Value Mappings
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+One to One Mappings
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+One to Many Mappings (with and without inverses)
+                    </para>
+                </listitem>
+            </itemizedlist>
         </section>
-      </section>
-    </chapter>
+    </section>
+</chapter>

Modified: incubator/openjpa/trunk/openjpa-project/src/doc/manual/supported_databases.xml
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-project/src/doc/manual/supported_databases.xml?rev=434517&r1=434516&r2=434517&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-project/src/doc/manual/supported_databases.xml (original)
+++ incubator/openjpa/trunk/openjpa-project/src/doc/manual/supported_databases.xml Thu Aug 24 13:41:12 2006
@@ -1,623 +1,928 @@
-
-  <appendix id="supported_databases">
-    <title>Supported Databases</title>
+<appendix id="supported_databases">
+    <title>
+        Supported Databases
+    </title>
     <para>
-  Following is a table of the database and JDBC driver
-  versions that are supported by OpenJPA <phrase>JPA</phrase>.
-  <table tocentry="1"><title>Supported Databases and JDBC Drivers</title><tgroup rowsep="1" colsep="1" align="left" cols="4"><colspec colname="dbname"/><colspec colname="dbversion"/><colspec colname="drivname"/><colspec colname="drivversion"/><thead><row><entry colname="dbname">Database Name</entry><entry colname="dbversion">Database Version</entry><entry colname="drivname">JDBC Driver Name</entry><entry colname="drivversion">JDBC Driver Version</entry></row></thead><tbody><row><entry colname="dbname">Apache Derby</entry><entry colname="dbversion">10.1.2.1</entry><entry colname="drivname">Apache Derby Embedded JDBC Driver</entry><entry colname="drivversion">10.1.2.1</entry></row><row><entry colname="dbname">Borland Interbase</entry><entry colname="dbversion">7.1.0.202</entry><entry colname="drivname">Interclient</entry><entry colname="drivversion">4.5.1</entry></row><row><entry colname="dbname">Borland JDataStore</entry><entry colname="dbversion">6.0</entry><entry colname="d
 rivname">
+Following is a table of the database and JDBC driver versions that are supported
+by OpenJPA <phrase>JPA</phrase>.
+    </para>
+    <table tocentry="1">
+        <title>
+            Supported Databases and JDBC Drivers
+        </title>
+        <tgroup rowsep="1" colsep="1" align="left" cols="4">
+            <colspec colname="dbname">
+            </colspec>
+            <colspec colname="dbversion">
+            </colspec>
+            <colspec colname="drivname">
+            </colspec>
+            <colspec colname="drivversion">
+            </colspec>
+            <thead>
+                <row>
+                    <entry colname="dbname">
+                        Database Name
+                    </entry>
+                    <entry colname="dbversion">
+                        Database Version
+                    </entry>
+                    <entry colname="drivname">
+                        JDBC Driver Name
+                    </entry>
+                    <entry colname="drivversion">
+                        JDBC Driver Version
+                    </entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry colname="dbname">
+                        Apache Derby
+                    </entry>
+                    <entry colname="dbversion">
+                        10.1.2.1
+                    </entry>
+                    <entry colname="drivname">
+                        Apache Derby Embedded JDBC Driver
+                    </entry>
+                    <entry colname="drivversion">
+                        10.1.2.1
+                    </entry>
+                </row>
+                <row>
+                    <entry colname="dbname">
+                        Borland Interbase
+                    </entry>
+                    <entry colname="dbversion">
+                        7.1.0.202
+                    </entry>
+                    <entry colname="drivname">
+                        Interclient
+                    </entry>
+                    <entry colname="drivversion">
+                        4.5.1
+                    </entry>
+                </row>
+                <row>
+                    <entry colname="dbname">
+                        Borland JDataStore
+                    </entry>
+                    <entry colname="dbversion">
+                        6.0
+                    </entry>
+                    <entry colname="drivname">
+                        
             Borland JDataStore
-          </entry><entry colname="drivversion">6.0</entry></row><row><entry colname="dbname">DB2</entry><entry colname="dbversion">8.1</entry><entry colname="drivname">
+          
+                    </entry>
+                    <entry colname="drivversion">
+                        6.0
+                    </entry>
+                </row>
+                <row>
+                    <entry colname="dbname">
+                        DB2
+                    </entry>
+                    <entry colname="dbversion">
+                        8.1
+                    </entry>
+                    <entry colname="drivname">
+                        
             IBM DB2 JDBC Universal Driver
-          </entry><entry colname="drivversion">1.0.581</entry></row><row><entry colname="dbname">Empress</entry><entry colname="dbversion">8.62</entry><entry colname="drivname">
+          
+                    </entry>
+                    <entry colname="drivversion">
+                        1.0.581
+                    </entry>
+                </row>
+                <row>
+                    <entry colname="dbname">
+                        Empress
+                    </entry>
+                    <entry colname="dbversion">
+                        8.62
+                    </entry>
+                    <entry colname="drivname">
+                        
             Empress Category 2 JDBC Driver
-          </entry><entry colname="drivversion">8.62</entry></row><row><entry colname="dbname">Firebird</entry><entry colname="dbversion">1.5</entry><entry colname="drivname">JayBird JCA/JDBC driver</entry><entry colname="drivversion">1.0.1</entry></row><row><entry colname="dbname">Hypersonic Database Engine</entry><entry colname="dbversion">1.8.0</entry><entry colname="drivname">Hypersonic</entry><entry colname="drivversion">1.8.0</entry></row><row><entry colname="dbname">Informix Dynamic Server</entry><entry colname="dbversion">9.30.UC10</entry><entry colname="drivname">Informix JDBC driver</entry><entry colname="drivversion">2.21.JC2</entry></row><row><entry colname="dbname">InterSystems Cache</entry><entry colname="dbversion">5.0</entry><entry colname="drivname">Cache JDBC Driver</entry><entry colname="drivversion">5.0</entry></row><row><entry colname="dbname">Microsoft Access</entry><entry colname="dbversion">9.0 (a.k.a. "2000")</entry><entry colname="drivname">
+          
+                    </entry>
+                    <entry colname="drivversion">
+                        8.62
+                    </entry>
+                </row>
+                <row>
+                    <entry colname="dbname">
+                        Firebird
+                    </entry>
+                    <entry colname="dbversion">
+                        1.5
+                    </entry>
+                    <entry colname="drivname">
+                        JayBird JCA/JDBC driver
+                    </entry>
+                    <entry colname="drivversion">
+                        1.0.1
+                    </entry>
+                </row>
+                <row>
+                    <entry colname="dbname">
+                        Hypersonic Database Engine
+                    </entry>
+                    <entry colname="dbversion">
+                        1.8.0
+                    </entry>
+                    <entry colname="drivname">
+                        Hypersonic
+                    </entry>
+                    <entry colname="drivversion">
+                        1.8.0
+                    </entry>
+                </row>
+                <row>
+                    <entry colname="dbname">
+                        Informix Dynamic Server
+                    </entry>
+                    <entry colname="dbversion">
+                        9.30.UC10
+                    </entry>
+                    <entry colname="drivname">
+                        Informix JDBC driver
+                    </entry>
+                    <entry colname="drivversion">
+                        2.21.JC2
+                    </entry>
+                </row>
+                <row>
+                    <entry colname="dbname">
+                        InterSystems Cache
+                    </entry>
+                    <entry colname="dbversion">
+                        5.0
+                    </entry>
+                    <entry colname="drivname">
+                        Cache JDBC Driver
+                    </entry>
+                    <entry colname="drivversion">
+                        5.0
+                    </entry>
+                </row>
+                <row>
+                    <entry colname="dbname">
+                        Microsoft Access
+                    </entry>
+                    <entry colname="dbversion">
+                        9.0 (a.k.a. "2000")
+                    </entry>
+                    <entry colname="drivname">
+                        
             DataDirect SequeLink
-          </entry><entry colname="drivversion">5.4.0038</entry></row><row><entry colname="dbname">Microsoft SQL Server</entry><entry colname="dbversion">
+          
+                    </entry>
+                    <entry colname="drivversion">
+                        5.4.0038
+                    </entry>
+                </row>
+                <row>
+                    <entry colname="dbname">
+                        Microsoft SQL Server
+                    </entry>
+                    <entry colname="dbversion">
+                        
             9.00.1399 (SQL Server 2005)
-          </entry><entry colname="drivname">SQLServer</entry><entry colname="drivversion">1.0.809.102</entry></row><row><entry colname="dbname">Microsoft Visual FoxPro</entry><entry colname="dbversion">7.0</entry><entry colname="drivname">
+          
+                    </entry>
+                    <entry colname="drivname">
+                        SQLServer
+                    </entry>
+                    <entry colname="drivversion">
+                        1.0.809.102
+                    </entry>
+                </row>
+                <row>
+                    <entry colname="dbname">
+                        Microsoft Visual FoxPro
+                    </entry>
+                    <entry colname="dbversion">
+                        7.0
+                    </entry>
+                    <entry colname="drivname">
+                        
             DataDirect SequeLink
-          </entry><entry colname="drivversion">5.4.0038</entry></row><row><entry colname="dbname">MySQL</entry><entry colname="dbversion">3.23.43-log</entry><entry colname="drivname">MySQL Driver</entry><entry colname="drivversion">3.0.14</entry></row><row><entry colname="dbname">Oracle</entry><entry colname="dbversion">8.1,9.2,10.1</entry><entry colname="drivname">Oracle JDBC driver</entry><entry colname="drivversion">10.2.0.1.0</entry></row><row><entry colname="dbname">Pointbase</entry><entry colname="dbversion">4.4</entry><entry colname="drivname">Pointbase JDBC driver</entry><entry colname="drivversion">4.4 (4.4) </entry></row><row><entry colname="dbname">PostgreSQL</entry><entry colname="dbversion">7.2.1</entry><entry colname="drivname">PostgreSQL Native Driver</entry><entry colname="drivversion">7.2 (7.2)</entry></row><row><entry colname="dbname">
+          
+                    </entry>
+                    <entry colname="drivversion">
+                        5.4.0038
+                    </entry>
+                </row>
+                <row>
+                    <entry colname="dbname">
+                        MySQL
+                    </entry>
+                    <entry colname="dbversion">
+                        3.23.43-log
+                    </entry>
+                    <entry colname="drivname">
+                        MySQL Driver
+                    </entry>
+                    <entry colname="drivversion">
+                        3.0.14
+                    </entry>
+                </row>
+                <row>
+                    <entry colname="dbname">
+                        Oracle
+                    </entry>
+                    <entry colname="dbversion">
+                        8.1,9.2,10.1
+                    </entry>
+                    <entry colname="drivname">
+                        Oracle JDBC driver
+                    </entry>
+                    <entry colname="drivversion">
+                        10.2.0.1.0
+                    </entry>
+                </row>
+                <row>
+                    <entry colname="dbname">
+                        Pointbase
+                    </entry>
+                    <entry colname="dbversion">
+                        4.4
+                    </entry>
+                    <entry colname="drivname">
+                        Pointbase JDBC driver
+                    </entry>
+                    <entry colname="drivversion">
+                        4.4 (4.4) 
+                    </entry>
+                </row>
+                <row>
+                    <entry colname="dbname">
+                        PostgreSQL
+                    </entry>
+                    <entry colname="dbversion">
+                        7.2.1
+                    </entry>
+                    <entry colname="drivname">
+                        PostgreSQL Native Driver
+                    </entry>
+                    <entry colname="drivversion">
+                        7.2 (7.2)
+                    </entry>
+                </row>
+                <row>
+                    <entry colname="dbname">
+                        
             Sybase Adaptive Server Enterprise
-          </entry><entry colname="dbversion">12.5</entry><entry colname="drivname">jConnect</entry><entry colname="drivversion">5.5 (5.5)</entry></row></tbody></tgroup></table>
-    </para>
+          
+                    </entry>
+                    <entry colname="dbversion">
+                        12.5
+                    </entry>
+                    <entry colname="drivname">
+                        jConnect
+                    </entry>
+                    <entry colname="drivversion">
+                        5.5 (5.5)
+                    </entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
     <section id="dbsupport_derby">
-      <title>Apache Derby</title>
-      <example id="example_props_derby">
-        <title>Example properties for Derby</title>
-        <programlisting format="linespecific">
+        <title>
+            Apache Derby
+        </title>
+        <example id="example_props_derby">
+            <title>
+                Example properties for Derby
+            </title>
+<programlisting>
 openjpa.ConnectionDriverName: org.apache.derby.jdbc.EmbeddedDriver
 openjpa.ConnectionURL: jdbc:derby:DB_NAME;create=true
 </programlisting>
-      </example>
+        </example>
     </section>
     <section id="dbsupport_interbase">
-      <title>Borland Interbase</title>
-      <example id="example_props_interbase">
-        <title>Example properties for Interbase</title>
-        <programlisting format="linespecific">
+        <title>
+            Borland Interbase
+        </title>
+        <example id="example_props_interbase">
+            <title>
+                Example properties for Interbase
+            </title>
+<programlisting>
 openjpa.ConnectionDriverName: interbase.interclient.Driver
 openjpa.ConnectionURL: jdbc:interbase://SERVER_NAME:SERVER_PORT/DB_PATH
 </programlisting>
-      </example>
-      <section id="dbsupport_interbase_issues">
-        <title>Known issues with Interbase</title>
-        <para>
-          <itemizedlist>
-            <listitem>
-              <para>
-            Interbase does not support record locking, so datastore
-            transactions cannot use the pessimistic lock manager.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            Interbase does not support the
-            <literal>LOWER</literal>, <literal>SUBSTRING</literal>,
-            or <literal>INSTR</literal> SQL functions,
-            which means that
-            <methodname>toLowerCase()</methodname>,
-            <methodname>indexOf()</methodname>,
-            and <methodname>substring()</methodname>
-            methods in <phrase>JPA</phrase>QL cannot be used.
-          </para>
-            </listitem>
-          </itemizedlist>
-        </para>
-      </section>
+        </example>
+        <section id="dbsupport_interbase_issues">
+            <title>
+                Known issues with Interbase
+            </title>
+            <para>
+<itemizedlist><listitem><para> Interbase does not support record locking, so
+datastore transactions cannot use the pessimistic lock manager.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Interbase does not support the <literal>LOWER</literal>, <literal>SUBSTRING
+</literal>, or <literal>INSTR</literal> SQL functions, which means that
+<methodname>toLowerCase()</methodname>, <methodname>indexOf()</methodname>, and
+<methodname>substring()</methodname> methods in <phrase>JPA</phrase> QL cannot
+be used.
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </section>
     </section>
     <section id="dbsupport_jdatastore">
-      <title>JDataStore</title>
-      <example id="example_props_jdatastore">
-        <title>Example properties for JDataStore</title>
-        <programlisting format="linespecific">
+        <title>
+            JDataStore
+        </title>
+        <example id="example_props_jdatastore">
+            <title>
+                Example properties for JDataStore
+            </title>
+<programlisting>
 openjpa.ConnectionDriverName: com.borland.datastore.jdbc.DataStoreDriver
 openjpa.ConnectionURL: jdbc:borland:dslocal:db-jdatastore.jds;create=true
 </programlisting>
-      </example>
+        </example>
     </section>
     <section id="dbsupport_db2">
-      <title>IBM DB2</title>
-      <example id="example_props_db2">
-        <title>Example properties for IBM DB2</title>
-        <programlisting format="linespecific">
+        <title>
+            IBM DB2
+        </title>
+        <example id="example_props_db2">
+            <title>
+                Example properties for IBM DB2
+            </title>
+<programlisting>
 openjpa.ConnectionDriverName: com.ibm.db2.jcc.DB2Driver
 openjpa.ConnectionURL: jdbc:db2://SERVER_NAME:SERVER_PORT/DB_NAME
 </programlisting>
-      </example>
-      <section id="dbsupport_db2_issues">
-        <title>Known issues with DB2</title>
-        <para>
-          <itemizedlist>
-            <listitem>
-              <para>Floats and doubles may lose precision when stored.</para>
-            </listitem>
-            <listitem>
-              <para>Empty char values are stored as NULL.</para>
-            </listitem>
-            <listitem>
-              <para>
-      Fields of type BLOB and CLOB are limited to 1M. This number can be 
-      increased by extending <classname>DB2Dictionary</classname>.
-      </para>
-            </listitem>
-          </itemizedlist>
-        </para>
-      </section>
+        </example>
+        <section id="dbsupport_db2_issues">
+            <title>
+                Known issues with DB2
+            </title>
+            <para>
+<itemizedlist><listitem><para>Floats and doubles may lose precision when
+stored.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Empty char values are stored as NULL.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Fields of type BLOB and CLOB are limited to 1M. This number can be increased by
+extending <classname>DB2Dictionary</classname>.
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </section>
     </section>
     <section id="dbsupport_empress">
-      <title>Empress</title>
-      <example id="example_props_empress">
-        <title>Example properties for Empress</title>
-        <programlisting format="linespecific">
+        <title>
+            Empress
+        </title>
+        <example id="example_props_empress">
+            <title>
+                Example properties for Empress
+            </title>
+<programlisting>
 openjpa.ConnectionDriverName: empress.jdbc.empressDriver
 openjpa.ConnectionURL: jdbc:empress://SERVER=yourserver;PORT=6322;DATABASE=yourdb
 </programlisting>
-      </example>
-      <section id="dbsupport_empress_issues">
-        <title>Known issues with Empress</title>
-        <para>
-          <itemizedlist>
-            <listitem>
-              <para>
-            Empress enforces pessimistic semantics (lock 
-            on read) when not using 
-            <literal>AllowConcurrentRead</literal> property
-            (which bypasses row locking) for 
-            <classname>EmpressDictionary</classname>.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            Only the category 2 non-local driver is supported.
-          </para>
-            </listitem>
-          </itemizedlist>
-        </para>
-      </section>
+        </example>
+        <section id="dbsupport_empress_issues">
+            <title>
+                Known issues with Empress
+            </title>
+            <para>
+<itemizedlist><listitem><para> Empress enforces pessimistic semantics (lock on
+read) when not using <literal>AllowConcurrentRead</literal> property (which
+bypasses row locking) for <classname>EmpressDictionary</classname>.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Only the category 2 non-local driver is supported.
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </section>
     </section>
     <section id="dbsupport_hypersonic">
-      <title>Hypersonic</title>
-      <example id="example_props_hypersonic">
-        <title>Example properties for Hypersonic</title>
-        <programlisting format="linespecific">
+        <title>
+            Hypersonic
+        </title>
+        <example id="example_props_hypersonic">
+            <title>
+                Example properties for Hypersonic
+            </title>
+<programlisting>
 openjpa.ConnectionDriverName: org.hsqldb.jdbcDriver
 openjpa.ConnectionURL: jdbc:hsqldb:DB_NAME
 </programlisting>
-      </example>
-      <section id="dbsupport_hypersonic_issues">
-        <title>Known issues with Hypersonic</title>
-        <para>
-          <itemizedlist>
-            <listitem>
-              <para>
-            Hypersonic does not properly support foreign key
-            constraints.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            Hypersonic does not support pessimistic locking,
-            so non-optimistic transactions will fail unless
-            the <literal>SimulateLocking</literal> property
-            is set for the <link linkend="openjpa.jdbc.DBDictionary">
-            openjpa.jdbc.DBDictionary</link>
-          </para>
-            </listitem>
-          </itemizedlist>
-        </para>
-      </section>
+        </example>
+        <section id="dbsupport_hypersonic_issues">
+            <title>
+                Known issues with Hypersonic
+            </title>
+            <para>
+<itemizedlist><listitem><para> Hypersonic does not properly support foreign key
+constraints.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Hypersonic does not support pessimistic locking, so non-optimistic transactions
+will fail unless the <literal>SimulateLocking</literal> property is set for the
+<link linkend="openjpa.jdbc.DBDictionary"> openjpa.jdbc.DBDictionary</link>
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </section>
     </section>
     <section id="dbsupport_firebird">
-      <title>Firebird</title>
-      <example id="example_props_firebird">
-        <title>Example properties for Firebird</title>
-        <programlisting format="linespecific">
+        <title>
+            Firebird
+        </title>
+        <example id="example_props_firebird">
+            <title>
+                Example properties for Firebird
+            </title>
+<programlisting>
 openjpa.ConnectionDriverName: org.firebirdsql.jdbc.FBDriver
 openjpa.ConnectionURL: jdbc:firebirdsql://SERVER_NAME:SERVER_PORT/DB_PATH
 </programlisting>
-      </example>
-      <section id="dbsupport_firebird_issues">
-        <title>Known issues with Firebird</title>
-        <para>
-          <itemizedlist>
-            <listitem>
-              <para>
-          The Firebird JDBC driver does not have proper support
-          for batch updates, so batch updates are disabled.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-          Firebird does not support auto-increment columns.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            Firebird does not support the
-            <literal>LOWER</literal>, <literal>SUBSTRING</literal>,
-            or <literal>INSTR</literal> SQL functions,
-            which means that
-            <methodname>toLowerCase()</methodname>,
-            <methodname>indexOf()</methodname>,
-            and <methodname>substring()</methodname>
-            methods in <phrase>JPA</phrase>QL cannot be used.
-          </para>
-            </listitem>
-          </itemizedlist>
-        </para>
-      </section>
+        </example>
+        <section id="dbsupport_firebird_issues">
+            <title>
+                Known issues with Firebird
+            </title>
+            <para>
+<itemizedlist><listitem><para> The Firebird JDBC driver does not have proper
+support for batch updates, so batch updates are disabled.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Firebird does not support auto-increment columns.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Firebird does not support the <literal>LOWER</literal>, <literal>SUBSTRING
+</literal>, or <literal>INSTR</literal> SQL functions, which means that
+<methodname>toLowerCase()</methodname>, <methodname>indexOf()</methodname>, and
+<methodname>substring()</methodname> methods in <phrase>JPA</phrase> QL cannot
+be used.
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </section>
     </section>
     <section id="dbsupport_informix">
-      <title>Informix</title>
-      <example id="example_props_informix">
-        <title>Example properties for Informix Dynamic Server</title>
-        <programlisting format="linespecific">
+        <title>
+            Informix
+        </title>
+        <example id="example_props_informix">
+            <title>
+                Example properties for Informix Dynamic Server
+            </title>
+<programlisting>
 openjpa.ConnectionDriverName: com.informix.jdbc.IfxDriver
 openjpa.ConnectionURL: \
   jdbc:informix-sqli://SERVER_NAME:SERVER_PORT/DB_NAME:INFORMIXSERVER=SERVER_ID
 </programlisting>
-      </example>
-      <section id="dbsupport_informix_issues">
-        <title>Known issues with Informix</title>
-        <para>
-          <itemizedlist>
-            <listitem>
-              <para>
-          none
-          </para>
-            </listitem>
-          </itemizedlist>
-        </para>
-      </section>
+        </example>
+        <section id="dbsupport_informix_issues">
+            <title>
+                Known issues with Informix
+            </title>
+            <para>
+<itemizedlist><listitem><para> none
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </section>
     </section>
     <section id="dbsupport_intersystems_cache">
-      <title>InterSystems Cache</title>
-      <example id="example_props_intersystems_cache">
-        <title>Example properties for InterSystems Cache</title>
-        <programlisting format="linespecific">
+        <title>
+            InterSystems Cache
+        </title>
+        <example id="example_props_intersystems_cache">
+            <title>
+                Example properties for InterSystems Cache
+            </title>
+<programlisting>
 openjpa.ConnectionDriverName: com.intersys.jdbc.CacheDriver
 openjpa.ConnectionURL: jdbc:Cache://SERVER_NAME:SERVER_PORT/DB_NAME
 </programlisting>
-      </example>
-      <section id="dbsupport_intersystems_cache_issues">
-        <title>Known issues with InterSystems Cache</title>
-        <para>
-          <itemizedlist>
-            <listitem>
-              <para>
-          Support for Cache is done via SQL access over JDBC, not
-          through their object database APIs.
-          </para>
-            </listitem>
-          </itemizedlist>
-        </para>
-      </section>
+        </example>
+        <section id="dbsupport_intersystems_cache_issues">
+            <title>
+                Known issues with InterSystems Cache
+            </title>
+            <para>
+<itemizedlist><listitem><para> Support for Cache is done via SQL access over
+JDBC, not through their object database APIs.
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </section>
     </section>
     <section id="dbsupport_access">
-      <title>Microsoft Access</title>
-      <example id="example_props_access">
-        <title>Example properties for Microsoft Access</title>
-        <programlisting format="linespecific">
+        <title>
+            Microsoft Access
+        </title>
+        <example id="example_props_access">
+            <title>
+                Example properties for Microsoft Access
+            </title>
+<programlisting>
 openjpa.ConnectionDriverName: com.ddtek.jdbc.sequelink.SequeLinkDriver
 openjpa.ConnectionURL: jdbc:sequelink://SERVER_NAME:SERVER_PORT
 </programlisting>
-      </example>
-      <section id="dbsupport_access_issues">
-        <title>Known issues with Microsoft Access</title>
-        <para>
-          <itemizedlist>
-            <listitem>
-              <para>Using the Sun JDBC-ODBC bridge to connect
-      is not supported.</para>
-            </listitem>
-          </itemizedlist>
-        </para>
-      </section>
+        </example>
+        <section id="dbsupport_access_issues">
+            <title>
+                Known issues with Microsoft Access
+            </title>
+            <para>
+<itemizedlist><listitem><para>Using the Sun JDBC-ODBC bridge to connect is not
+supported.
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </section>
     </section>
     <section id="dbsupport_sqlserver">
-      <title>Microsoft SQL Server</title>
-      <example id="example_props_sqlserver">
-        <title>Example properties for Microsoft SQLServer</title>
-        <programlisting format="linespecific">
+        <title>
+            Microsoft SQL Server
+        </title>
+        <example id="example_props_sqlserver">
+            <title>
+                Example properties for Microsoft SQLServer
+            </title>
+<programlisting>
 openjpa.ConnectionDriverName: com.microsoft.sqlserver.jdbc.SQLServerDriver
 openjpa.ConnectionURL: \
     jdbc:sqlserver://SERVER_NAME:1433;DatabaseName=DB_NAME;selectMethod=cursor;sendStringParametersAsUnicode=false
 </programlisting>
-      </example>
-      <section id="dbsupport_sqlserver_issues">
-        <title>Known issues with SQL Server</title>
-        <para>
-          <itemizedlist>
-            <listitem>
-              <para>
-            SQL Server date fields are accurate only to the
-            nearest 3 milliseconds, possibly resulting in
-            precision loss in stored dates.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            The ConnectionURL must always contain the
-            "<literal>selectMethod=cursor</literal>" string.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            Adding <literal>sendStringParametersAsUnicode=false
-            </literal> to the ConnectionURL may significantly 
-            increase performance.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            The Microsoft SQL Server driver only emulates
-            batch updates. The DataDirect JDBC driver has
-            true support for batch updates, and may result
-            in a significant performance gain.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            Floats and doubles may lose precision when stored.
-          </para>
-            </listitem>
-            <listitem>
-              <para><literal>TEXT</literal> columns cannot be used
-            in queries.
-          </para>
-            </listitem>
-          </itemizedlist>
-        </para>
-      </section>
+        </example>
+        <section id="dbsupport_sqlserver_issues">
+            <title>
+                Known issues with SQL Server
+            </title>
+            <para>
+<itemizedlist><listitem><para> SQL Server date fields are accurate only to the
+nearest 3 milliseconds, possibly resulting in precision loss in stored dates.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+The ConnectionURL must always contain the " <literal>selectMethod=cursor
+</literal> " string.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Adding <literal>sendStringParametersAsUnicode=false</literal> to the
+ConnectionURL may significantly increase performance.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+The Microsoft SQL Server driver only emulates batch updates. The DataDirect JDBC
+driver has true support for batch updates, and may result in a significant
+performance gain.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Floats and doubles may lose precision when stored.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+<literal>TEXT</literal> columns cannot be used in queries.
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </section>
     </section>
     <section id="dbsupport_foxpro">
-      <title>Microsoft FoxPro</title>
-      <example id="example_props_foxpro">
-        <title>Example properties for Microsoft FoxPro</title>
-        <programlisting format="linespecific">
+        <title>
+            Microsoft FoxPro
+        </title>
+        <example id="example_props_foxpro">
+            <title>
+                Example properties for Microsoft FoxPro
+            </title>
+<programlisting>
 openjpa.ConnectionDriverName: com.ddtek.jdbc.sequelink.SequeLinkDriver
 openjpa.ConnectionURL: jdbc:sequelink://SERVER_NAME:SERVER_PORT
 </programlisting>
-      </example>
-      <section id="dbsupport_foxpro_issues">
-        <title>Known issues with Microsoft FoxPro</title>
-        <para>
-          <itemizedlist>
-            <listitem>
-              <para>Using the Sun JDBC-ODBC bridge to connect
-      is not supported.</para>
-            </listitem>
-          </itemizedlist>
-        </para>
-      </section>
+        </example>
+        <section id="dbsupport_foxpro_issues">
+            <title>
+                Known issues with Microsoft FoxPro
+            </title>
+            <para>
+<itemizedlist><listitem><para>Using the Sun JDBC-ODBC bridge to connect is not
+supported.
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </section>
     </section>
     <section id="dbsupport_mysql">
-      <title>MySQL</title>
-      <example id="example_props_mysql">
-        <title>Example properties for MySQL</title>
-        <programlisting format="linespecific">
+        <title>
+            MySQL
+        </title>
+        <example id="example_props_mysql">
+            <title>
+                Example properties for MySQL
+            </title>
+<programlisting>
 openjpa.ConnectionDriverName: com.mysql.jdbc.Driver
 openjpa.ConnectionURL: jdbc:mysql://SERVER_NAME/DB_NAME
 </programlisting>
-      </example>
-      <section id="dbsupport_mysql_issues">
-        <title>Known issues with MySQL</title>
-        <para>
-          <itemizedlist>
-            <listitem>
-              <para>
-            The default table types that MySQL uses do not
-            support transactions, which will prevent OpenJPA from
-            being able to roll back transactions. Use the 
-            <literal>InnoDB</literal> table type
-            for any tables that OpenJPA will access.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            MySQL does not support sub-selects in versions
-            prior to 4.1, and are disabled by default. Some
-            operations (such as the <function>isEmpty()</function>
-            method in a query) will fail due to this. If
-            you are using MySQL 4.1 or later, you can lift
-            this restriction by setting the
-            <literal>SupportsSubselect=true</literal> parameter
-            of the <link linkend="openjpa.jdbc.DBDictionary">openjpa.jdbc.DBDictionary</link> property.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            Rollback due to database error or optimistic lock
-            violation is not supported unless the table type
-            is one of the MySQL transactional types. Explicit
-            calls to <function>rollback()</function> before a 
-            transaction has been committed, however, are
-            always supported.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            Floats and doubles may lose precision when stored
-            in some datastores.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            When storing a field of type
-            <classname>java.math.BigDecimal</classname>, some
-            datastores will add extraneous trailing 0 
-            characters, causing an equality mismatch between
-            the field that is stored and the field that is
-            retrieved.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            Some version of the MySQL JDBC driver have a bug
-            that prevents OpenJPA from being able to interrogate
-            the database for foreign keys. Version
-            3.0.14 (or higher) of the MySQL driver is required
-            in order to get around this bug.
-          </para>
-            </listitem>
-          </itemizedlist>
-        </para>
-      </section>
+        </example>
+        <section id="dbsupport_mysql_issues">
+            <title>
+                Known issues with MySQL
+            </title>
+            <para>
+<itemizedlist><listitem><para> The default table types that MySQL uses do not
+support transactions, which will prevent OpenJPA from being able to roll back
+transactions. Use the <literal>InnoDB</literal> table type for any tables that
+OpenJPA will access.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+MySQL does not support sub-selects in versions prior to 4.1, and are disabled by
+default. Some operations (such as the <function>isEmpty()</function> method in a
+query) will fail due to this. If you are using MySQL 4.1 or later, you can lift
+this restriction by setting the <literal>SupportsSubselect=true</literal>
+parameter of the <link linkend="openjpa.jdbc.DBDictionary">
+openjpa.jdbc.DBDictionary</link> property.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Rollback due to database error or optimistic lock violation is not supported
+unless the table type is one of the MySQL transactional types. Explicit calls to
+<function>rollback()</function> before a transaction has been committed,
+however, are always supported.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Floats and doubles may lose precision when stored in some datastores.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+When storing a field of type <classname>java.math.BigDecimal</classname>, some
+datastores will add extraneous trailing 0 characters, causing an equality
+mismatch between the field that is stored and the field that is retrieved.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Some version of the MySQL JDBC driver have a bug that prevents OpenJPA from
+being able to interrogate the database for foreign keys. Version 3.0.14 (or
+higher) of the MySQL driver is required in order to get around this bug.
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </section>
     </section>
     <section id="dbsupport_oracle">
-      <title>Oracle</title>
-      <example id="example_props_oracle">
-        <title>Example properties for Oracle</title>
-        <programlisting format="linespecific">
+        <title>
+            Oracle
+        </title>
+        <example id="example_props_oracle">
+            <title>
+                Example properties for Oracle
+            </title>
+<programlisting>
 openjpa.ConnectionDriverName: oracle.jdbc.driver.OracleDriver
 openjpa.ConnectionURL: jdbc:oracle:thin:@SERVER_NAME:1521:DB_NAME
 </programlisting>
-      </example>
-      <section id="dbsupport_oracle_query_hints">
-        <title>Using Query Hints with Oracle</title>
-        <para>
-      Oracle has support for "query hints", which are formatted
-      comments embedded in SQL that provide some hint for
-      how the query should be executed. These hints are usually
-      designed to provide suggestions to the Oracle query
-      optimizer for how to efficiently perform a certainly query,
-      and aren't typically needed for any but the most intensive
-      queries.
-      </para>
-        <example id="dbsupport_oracle_query_hints_ex">
-          <title>Using Oracle Hints</title>
-          <programlisting format="linespecific">
+        </example>
+        <section id="dbsupport_oracle_query_hints">
+            <title>
+                Using Query Hints with Oracle
+            </title>
+            <para>
+Oracle has support for "query hints", which are formatted comments embedded in
+SQL that provide some hint for how the query should be executed. These hints are
+usually designed to provide suggestions to the Oracle query optimizer for how to
+efficiently perform a certainly query, and aren't typically needed for any but
+the most intensive queries.
+            </para>
+            <example id="dbsupport_oracle_query_hints_ex">
+                <title>
+                    Using Oracle Hints
+                </title>
+<programlisting>
 Query query = pm.createQuery (...);
 query.addExtension (org.apache.openjpa.jdbc.sql.OracleDictionary.SELECT_HINT,
     "/*+ first_rows(100) */");
 List results = (List) query.execute ();
 </programlisting>
-          <programlisting format="linespecific">
+<programlisting>
 Query query = em.createQuery (...);
 query.setHint (org.apache.openjpa.jdbc.sql.OracleDictionary.SELECT_HINT,
     "/*+ first_rows(100) */");
 List results = query.getResultList ();
 </programlisting>
-        </example>
-      </section>
-      <section id="dbsupport_oracle_issues">
-        <title>Known issues with Oracle</title>
-        <para>
-          <itemizedlist>
-            <listitem>
-              <para>
-            The Oracle JDBC driver has significant differences
-            between different versions. It is important to
-            use the officially supported version of the driver
-            (10.2.0.1.0), which is backward compatible
-            with previous versions of the Oracle server.
-            It can be downloaded from 
-            <ulink url="http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc101040.html">http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc101040.html</ulink>.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            For VARCHAR fields, <literal>null</literal>
-            and a blank string are equivalent. This means that
-            an object that stores a null string field will
-            have it get read back as a blank string.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            Oracle corp's JDBC driver for Oracle has only limited
-            support for batch updates. The result for OpenJPA is
-            that in some cases, the exact object that failed an
-            optimistic lock check cannot be determined, and OpenJPA
-            will throw an <classname>OptimisticVerificationException</classname> with
-            more failed objects than actually failed.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            Oracle cannot store numbers with more than 38 digits
-            in numeric columns.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            Floats and doubles may lose precision when stored.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            CLOB columns cannot be used in queries.
-          </para>
-            </listitem>
-          </itemizedlist>
-        </para>
-      </section>
+            </example>
+        </section>
+        <section id="dbsupport_oracle_issues">
+            <title>
+                Known issues with Oracle
+            </title>
+            <para>
+<itemizedlist><listitem><para> The Oracle JDBC driver has significant
+differences between different versions. It is important to use the officially
+supported version of the driver (10.2.0.1.0), which is backward compatible with
+previous versions of the Oracle server. It can be downloaded from
+<ulink url="http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc101040.html">
+http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc101040.html
+</ulink>.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+For VARCHAR fields, <literal>null</literal> and a blank string are equivalent.
+This means that an object that stores a null string field will have it get read
+back as a blank string.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Oracle corp's JDBC driver for Oracle has only limited support for batch updates.
+The result for OpenJPA is that in some cases, the exact object that failed an
+optimistic lock check cannot be determined, and OpenJPA will throw an
+<classname>OptimisticVerificationException</classname> with more failed objects
+than actually failed.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Oracle cannot store numbers with more than 38 digits in numeric columns.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Floats and doubles may lose precision when stored.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+CLOB columns cannot be used in queries.
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </section>
     </section>
     <section id="dbsupport_pointbase">
-      <title>Pointbase</title>
-      <example id="example_props_pointbase">
-        <title>Example properties for Pointbase</title>
-        <programlisting format="linespecific">
+        <title>
+            Pointbase
+        </title>
+        <example id="example_props_pointbase">
+            <title>
+                Example properties for Pointbase
+            </title>
+<programlisting>
 openjpa.ConnectionDriverName: com.pointbase.jdbc.jdbcUniversalDriver
 openjpa.ConnectionURL: \
     jdbc:pointbase:DB_NAME,database.home=pointbasedb,create=true,cache.size=10000,database.pagesize=30720
 </programlisting>
-      </example>
-      <section id="dbsupport_pointbase_issues">
-        <title>Known issues with Pointbase</title>
-        <para>
-          <itemizedlist>
-            <listitem>
-              <para>
-      Fields of type BLOB and CLOB are limited to 1M. This number can be 
-      increased by extending <classname>PointbaseDictionary</classname>.
-      </para>
-            </listitem>
-          </itemizedlist>
-        </para>
-      </section>
+        </example>
+        <section id="dbsupport_pointbase_issues">
+            <title>
+                Known issues with Pointbase
+            </title>
+            <para>
+<itemizedlist><listitem><para> Fields of type BLOB and CLOB are limited to 1M.
+This number can be increased by extending <classname>PointbaseDictionary
+</classname>.
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </section>
     </section>
     <section id="dbsupport_postgresql">
-      <title>PostgreSQL</title>
-      <example id="example_props_postgresql">
-        <title>Example properties for PostgreSQL</title>
-        <programlisting format="linespecific">
+        <title>
+            PostgreSQL
+        </title>
+        <example id="example_props_postgresql">
+            <title>
+                Example properties for PostgreSQL
+            </title>
+<programlisting>
 openjpa.ConnectionDriverName: org.postgresql.Driver
 openjpa.ConnectionURL: jdbc:postgresql://SERVER_NAME:5432/DB_NAME
 </programlisting>
-      </example>
-      <section id="dbsupport_postgresql_issues">
-        <title>Known issues with PostgreSQL</title>
-        <para>
-          <itemizedlist>
-            <listitem>
-              <para>
-            Floats and doubles may lose precision when stored.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            PostgreSQL cannot store very low and very high dates.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            Empty string/char values are stored as NULL.
-          </para>
-            </listitem>
-          </itemizedlist>
-        </para>
-      </section>
+        </example>
+        <section id="dbsupport_postgresql_issues">
+            <title>
+                Known issues with PostgreSQL
+            </title>
+            <para>
+<itemizedlist><listitem><para> Floats and doubles may lose precision when
+stored.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+PostgreSQL cannot store very low and very high dates.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Empty string/char values are stored as NULL.
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </section>
     </section>
     <section id="dbsupport_sybase">
-      <title>Sybase Adaptive Server</title>
-      <example id="example_props_sybase">
-        <title>Example properties for Sybase</title>
-        <programlisting format="linespecific">
+        <title>
+            Sybase Adaptive Server
+        </title>
+        <example id="example_props_sybase">
+            <title>
+                Example properties for Sybase
+            </title>
+<programlisting>
 openjpa.ConnectionDriverName: com.sybase.jdbc2.jdbc.SybDriver
 openjpa.ConnectionURL: \
     jdbc:sybase:Tds:SERVER_NAME:4100/DB_NAME?ServiceName=DB_NAME&amp;BE_AS_JDBC_COMPLIANT_AS_POSSIBLE=true
 </programlisting>
-      </example>
-      <section id="dbsupport_sybase_issues">
-        <title>Known issues with Sybase</title>
-        <para>
-          <itemizedlist>
-            <listitem>
-              <para>
-            The "<literal>DYNAMIC_PREPARE</literal>" parameter
-            of the Sybase JDBC driver cannot be used with OpenJPA.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            Datastore locking cannot be used when manipulating
-            many-to-many relations using the default OpenJPA
-            schema created by the schematool,
-            unless an auto-increment primary key field is
-            manually added to the table.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            Persisting a zero-length string results in a
-            string with a single space characted being returned
-            from Sybase, Inc.'s JDBC driver.
-          </para>
-            </listitem>
-            <listitem>
-              <para>
-            The <literal>BE_AS_JDBC_COMPLIANT_AS_POSSIBLE</literal>
-            is required in order to use datastore (pessimistic)
-            locking. Failure to set this property may lead
-            to obscure errors like "<literal>FOR UPDATE can
-            not be used in a SELECT which is not part of
-            the declaration of a cursor or which is not
-            inside a stored procedure.</literal>".
-          </para>
-            </listitem>
-          </itemizedlist>
-        </para>
-      </section>
+        </example>
+        <section id="dbsupport_sybase_issues">
+            <title>
+                Known issues with Sybase
+            </title>
+            <para>
+<itemizedlist><listitem><para> The " <literal>DYNAMIC_PREPARE</literal> "
+parameter of the Sybase JDBC driver cannot be used with OpenJPA.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Datastore locking cannot be used when manipulating many-to-many relations using
+the default OpenJPA schema created by the schematool, unless an auto-increment
+primary key field is manually added to the table.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+Persisting a zero-length string results in a string with a single space
+characted being returned from Sybase, Inc.'s JDBC driver.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+The <literal>BE_AS_JDBC_COMPLIANT_AS_POSSIBLE</literal> is required in order to
+use datastore (pessimistic) locking. Failure to set this property may lead to
+obscure errors like " <literal>FOR UPDATE can not be used in a SELECT which is
+not part of the declaration of a cursor or which is not inside a stored
+procedure.</literal> ".
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </section>
     </section>
-  </appendix>
+</appendix>