You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by km...@apache.org on 2009/06/24 20:23:11 UTC

svn commit: r788105 - in /db/derby/code/trunk/java/demo: nserverdemo/NsSample.java nserverdemo/SimpleNetworkClientSample.java nserverdemo/nserverdemo.html nserverdemo/simpleserversample.html simple/SimpleApp.java simple/example.html

Author: kmarsden
Date: Wed Jun 24 18:23:11 2009
New Revision: 788105

URL: http://svn.apache.org/viewvc?rev=788105&view=rev
Log:
DERBY-4276  Update demo's to remove references to com.ibm.db2.jcc.DB2Driver

Contributed by Lily Wei (lilywei at yahoo dot com)


Modified:
    db/derby/code/trunk/java/demo/nserverdemo/NsSample.java
    db/derby/code/trunk/java/demo/nserverdemo/SimpleNetworkClientSample.java
    db/derby/code/trunk/java/demo/nserverdemo/nserverdemo.html
    db/derby/code/trunk/java/demo/nserverdemo/simpleserversample.html
    db/derby/code/trunk/java/demo/simple/SimpleApp.java
    db/derby/code/trunk/java/demo/simple/example.html

Modified: db/derby/code/trunk/java/demo/nserverdemo/NsSample.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/demo/nserverdemo/NsSample.java?rev=788105&r1=788104&r2=788105&view=diff
==============================================================================
--- db/derby/code/trunk/java/demo/nserverdemo/NsSample.java (original)
+++ db/derby/code/trunk/java/demo/nserverdemo/NsSample.java Wed Jun 24 18:23:11 2009
@@ -41,8 +41,7 @@
  The program:
 
  1.	starts the Derby Network Server
- 2.	loads the IBM DB2 JDBC Universal driver or derby client JDBC driver
-        (default is the derby client JDBC driver)
+ 2.	loads the derby client JDBC driver
  3. creates the database if not already created
  4. checks to see if the schema is already created, and if not,
  5. creates the schema which includes the table SAMPLETBL and corresponding indexes.
@@ -66,8 +65,7 @@
 
 public class NsSample {
 
-	public static final String DB2_JDBC_UNIVERSAL_DRIVER = new String("com.ibm.db2.jcc.DB2Driver");
-        public static final String DERBY_CLIENT_DRIVER = "org.apache.derby.jdbc.ClientDriver";
+	public static final String DERBY_CLIENT_DRIVER = "org.apache.derby.jdbc.ClientDriver";
 	public static int NUM_ROWS = 50; /* Number of rows to load initially */
 	public static int ITERATIONS = 10;  //Each client does these many iterations
 	public static int NUM_CLIENT_THREADS = 2;
@@ -82,7 +80,6 @@
 	// To connect to Derby Network Server
 	// This URL describes the target database for type 4 connectivity
 	// Notice that the properties may be established via the URL syntax
-	private static final String CS_NS_DBURL= "jdbc:derby:net://localhost:"+NETWORKSERVER_PORT+"/NSSampledb;create=true;retrieveMessagesFromServerOnGetMessage=true;deferPrepares=true;";
         // URL for the Derby client JDBC driver.
 	private static final String DERBY_CLIENT_URL= "jdbc:derby://localhost:"+NETWORKSERVER_PORT+"/NSSampledb;create=true;";
 
@@ -105,9 +102,6 @@
 
 	  try  {
 
-                // Determine which JDBC driver we are using with Derby
-                parseArguments(args);
-
 		pw = new PrintWriter(System.out,true);	// to print messages
 		pw.println("Using JDBC driver: " + jdbcDriver);
 
@@ -170,8 +164,8 @@
 		Properties properties = new java.util.Properties();
 
 		// The user and password properties are a must, required by JCC
-		properties.setProperty("user","cloud");
-		properties.setProperty("password","scape");
+		properties.setProperty("user","derbyuser");
+		properties.setProperty("password","pass");
 
 		// Get database connection via DriverManager api
 		try	{
@@ -231,33 +225,5 @@
       }
 	 }
 
-    /**
-     * Determine which jdbc driver to use by parsing the command line args.
-     *  Accepted values:
-     *  jccjdbclient   - The DB2 type 4 universal driver
-     *  derbyclient    - The Derby network driver (default).
-     *  Note: because this is just a sample, we only care about whether
-     *  the above values are specified.  If they are not, then we default
-     *  to the Derby network driver.
-     */
-    private void parseArguments(String[] args)
-    {
-        int length = args.length;
-
-        for (int index = 0; index < length; index++)
-        {
-            if (args[index].equalsIgnoreCase("jccjdbcclient"))
-            {
-                jdbcDriver = DB2_JDBC_UNIVERSAL_DRIVER;
-                url = CS_NS_DBURL;
-                break;
-            } else if (args[index].equalsIgnoreCase("derbyClient"))
-            {
-                jdbcDriver = DERBY_CLIENT_DRIVER;
-                url = DERBY_CLIENT_URL;
-                break;
-            }
-        }
-    }
 
 }

Modified: db/derby/code/trunk/java/demo/nserverdemo/SimpleNetworkClientSample.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/demo/nserverdemo/SimpleNetworkClientSample.java?rev=788105&r1=788104&r2=788105&view=diff
==============================================================================
--- db/derby/code/trunk/java/demo/nserverdemo/SimpleNetworkClientSample.java (original)
+++ db/derby/code/trunk/java/demo/nserverdemo/SimpleNetworkClientSample.java Wed Jun 24 18:23:11 2009
@@ -36,14 +36,14 @@
  * and interact with Derby Network Server
  *
  * In particular,this sample program
- * 1)   loads the DB2 Universal JDBC Driver or the Derby Network Client driver
+ * 1)   loads the Derby Network Client driver
    (default is the derby network client driver)
  * 2)	obtains a client connection using the Driver Manager
  * 3)	obtains a client connection using a DataSource
  * 4)	tests the database connections by executing a sample query
  * and then exits the program
  *
- * Before running this program, please make sure that Clouscape Network Server is up
+ * Before running this program, please make sure that Derby Network Server is up
  * and running.
  *  <P>
  *  Usage: java SimpleNetworkClientSample
@@ -63,11 +63,7 @@
 	 */
 	private static int NETWORKSERVER_PORT=1527;
 
-	/**
-	 * DB2 JDBC UNIVERSAL DRIVER class names
-	 */
-	private static final String DB2_JDBC_UNIVERSAL_DRIVER = "com.ibm.db2.jcc.DB2Driver";
-	private static final String DB2_JCC_DS = "com.ibm.db2.jcc.DB2SimpleDataSource";
+
 	/**
 	 * Derby Network Client Driver class names
 	 */
@@ -77,7 +73,6 @@
 
 	/**
 	 * This URL is used to connect to Derby Network Server using the DriverManager.
-	 * This URL is for the DB2 JDBC Universal Driver
 	 * Notice that the properties may be established via the URL syntax
 	 */
 	private static final String CS_NS_DBURL= "jdbc:derby:net://localhost:"+NETWORKSERVER_PORT+"/"+DBNAME+";retrieveMessagesFromServerOnGetMessage=true;deferPrepares=true;";
@@ -106,8 +101,6 @@
 		try
 		{
 			System.out.println("Starting Sample client program ");
-                        // Determine which JDBC driver to use
-                        parseArguments(args);
 
 			// load  the appropriate JDBC Driver
 			loadDriver();
@@ -205,15 +198,6 @@
 		args = new Object[] {new Integer(1527)};
 		portnumber.invoke(ds, args);
 
-                // The following is only applicable to the DB2 JDBC driver
-                if(jdbcDataSource.equals( DB2_JCC_DS))
-                {
-			// driver type must be 4 to access Derby Network Server
-			Method drivertype = nsDataSource.getMethod("setDriverType", methodParams);
-			args = new Object[] {new Integer(4)};
-			drivertype.invoke(ds, args);
-                }
-
 		return ds;
 
 	}
@@ -243,8 +227,8 @@
 		Properties properties = new java.util.Properties();
 
 		// The user and password properties are a must, required by JCC
-		properties.setProperty("user","cloud");
-		properties.setProperty("password","scape");
+		properties.setProperty("user","derbyuser");
+		properties.setProperty("password","pass");
 
 		// Get database connection  via DriverManager api
 		Connection conn = DriverManager.getConnection(url,properties); 
@@ -286,37 +270,6 @@
 		  	stmt.close();
  	  }
 	}
-   /**
-     * Determine which jdbc driver to use by parsing the command line args.
-     *  Accepted values:
-     *  jccjdbclient   - The DB2 type 4 universal driver
-     *  derbyclient    - The Derby network driver (default).
-     *  Note: because this is just a sample, we only care about whether
-     *  the above values are specified.  If they are not, then we default
-     *  to the Derby network driver.
-     */
-    private void parseArguments(String[] args)
-    {
-        int length = args.length;
-
-        for (int index = 0; index < length; index++)
-        {
-            if (args[index].equalsIgnoreCase("jccjdbcclient"))
-            {
-
-                jdbcDriver = DB2_JDBC_UNIVERSAL_DRIVER;
-                jdbcDataSource = DB2_JCC_DS;
-                url = CS_NS_DBURL;
-                break;
-            } else if (args[index].equalsIgnoreCase("derbyClient"))
-            {
-                jdbcDriver = DERBY_CLIENT_DRIVER;
-                jdbcDataSource = DERBY_CLIENT_DS;
-                url = DERBY_CLIENT_URL;
-                break;
-            }
-        }
-    }
 
 }
 

Modified: db/derby/code/trunk/java/demo/nserverdemo/nserverdemo.html
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/demo/nserverdemo/nserverdemo.html?rev=788105&r1=788104&r2=788105&view=diff
==============================================================================
--- db/derby/code/trunk/java/demo/nserverdemo/nserverdemo.html (original)
+++ db/derby/code/trunk/java/demo/nserverdemo/nserverdemo.html Wed Jun 24 18:23:11 2009
@@ -28,7 +28,7 @@
 <UL>
   <LI>starts the Derby Network Server 
   <LI>checks if the Derby Network Server is running 
-  <LI>loads the DB2 JDBC Universal Driver or the Derby Client Network JDBC Driver
+  <LI>loads the Derby Client Network JDBC Driver
   <LI>creates the database '<tt>NsSampledb</tt>' if not already created 
   <LI>checks to see if the schema is already created, and if not, 
   creates the schema which includes the <tt>SAMPLETBL</tt> table and corresponding 
@@ -83,7 +83,6 @@
 <UL>
     <LI><tt>NsSample.class</tt></li> 
     <LI><tt>NsSampleClientThread.class</tt></li> 
-    <LI><tt>NsSampleWork.class</tt></li> 
     <LI><tt>NetworkServerUtil.class</tt></li> 
 </UL>
 </li>
@@ -97,20 +96,15 @@
   class=italic>%DERBY_INSTALL%</SPAN><tt>\demo\programs\</tt> directory, where <SPAN 
   class=italic>%DERBY_INSTALL%</SPAN> is the directory where you installed Derby. 
   <LI>Set the CLASSPATH to the current directory (".") and also include the following 
-  jar files in order to use the Derby Network Server and the DB2 JDBC Universal Driver or the Derby Client Network JDBC Driver.
+  jar files in order to use the Derby Network Server and the Derby Client Network JDBC Driver.
 <ul>
 <li><tt>derbynet.jar</tt><br>The Network Server jar file. It must be in your CLASSPATH to use any of the Derby Network 
 Server functions.</li>
 <li><tt>derbyclient.jar</tt><br>This jar file must be in your CLASSPATH to use the Derby Client Network JDBC Driver.</li>
-<li><tt>db2jcc.jar</tt><br>This jar file must be in your CLASSPATH to use the 
-DB2 JDBC Universal Driver.</li>
-<li><tt>db2jcc_license_c.jar</tt><br>This jar file is the license file for the Universal 
-Driver.</li>
 <li><tt>derby.jar</tt><br>The Derby database engine jar file.</li>
 </ul>
 </LI>
-<li>Test the CLASSPATH settings by running the following java command:<pre>java org.apache.derby.tools.sysinfo</pre>This command will show the Derby jar files that are in the CLASSPATH as well as 
-the DB2 JDBC Universal Driver along with their respective versions.</li>
+<li>Test the CLASSPATH settings by running the following java command:<pre>java org.apache.derby.tools.sysinfo</pre>This command will show the Derby jar files that are in the CLASSPATH along with their respective versions.</li>
 <li>Once you have set up your environment correctly, execute the application from the <br> <SPAN 
   class=italic>%DERBY_INSTALL%</SPAN><tt>\demo\programs\</tt> directory:<br>
 <pre>java nserverdemo.NsSample [driverType]</pre>
@@ -118,7 +112,6 @@
 <li>Where the possible values for driverType are:
 <ul>
 <li>derbyClient (default)
-<li>jccjdbcclient
 </ul>
 </ul>
 </li>

Modified: db/derby/code/trunk/java/demo/nserverdemo/simpleserversample.html
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/demo/nserverdemo/simpleserversample.html?rev=788105&r1=788104&r2=788105&view=diff
==============================================================================
--- db/derby/code/trunk/java/demo/nserverdemo/simpleserversample.html (original)
+++ db/derby/code/trunk/java/demo/nserverdemo/simpleserversample.html Wed Jun 24 18:23:11 2009
@@ -145,7 +145,7 @@
 <p>This program:</p>
 
 <ul>
- <li>loads the DB2 JDBC Universal Driver or the Derby Network Client JDBC Driver</li>
+ <li>loads the Derby Network Client JDBC Driver</li>
  <li>obtains a client connection using the Driver Manager</li>
  <li>obtains a client connection using a DataSource</li>
  <li>tests the database connections by executing a sample query</li>
@@ -169,8 +169,6 @@
   <li>the current directory (".")</li>
 <li><tt>derbyclient.jar</tt><br>This jar file must be in your CLASSPATH to use t
 he Derby Client Network JDBC Driver.</li>
-  <li><tt>db2jcc.jar</tt><br>This jar file must be in your CLASSPATH to use the DB2 JDBC Universal Driver.</li>
-  <li><tt>db2jcc_license_c.jar</tt><br>This jar file is the license file for the Universal Driver for Derby.</li>
  </ul></li>
 <li>Once you have set up your environment correctly, execute the
 application from the <br><span class=italic>%DERBY_INSTALL%</span><tt>\demo\programs\nserverdemo\</tt> directory:
@@ -179,7 +177,6 @@
 <li>Where the possible values for driverType are:
 <ul>
 <li>derbyClient (default)
-<li>jccjdbcclient
 </ul>
 </ul>
 </li>

Modified: db/derby/code/trunk/java/demo/simple/SimpleApp.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/demo/simple/SimpleApp.java?rev=788105&r1=788104&r2=788105&view=diff
==============================================================================
--- db/derby/code/trunk/java/demo/simple/SimpleApp.java (original)
+++ db/derby/code/trunk/java/demo/simple/SimpleApp.java Wed Jun 24 18:23:11 2009
@@ -72,9 +72,6 @@
      *    <li><code>derbyclient</code> - will use the Derby client driver to
      *        access the Derby Network Server. This driver is included in the
      *        derbyclient.jar file.</li>
-     *    <li><code>jccjdbcclient</code> - will use the DB2 Universal JDBC
-     *        network client driver, also known as JCC, to access the Network
-     *        Server. This driver is not part of the Derby distribution.</li>
      *  </ul>
      * <p>
      * When you are using a client/server framework, the network server must
@@ -101,14 +98,14 @@
      * <p>
      * Starts the actual demo activities. This includes loading the correct
      * JDBC driver, creating a database by making a connection to Derby,
-     * creating a table in the database, and inserting, updating and retreiving
-     * some data. Some of the retreived data is then verified (compared) against
+     * creating a table in the database, and inserting, updating and retrieving
+     * some data. Some of the retrieved data is then verified (compared) against
      * the expected results. Finally, the table is deleted and, if the embedded
      * framework is used, the database is shut down.</p>
      * <p>
      * Generally, when using a client/server framework, other clients may be
      * (or want to be) connected to the database, so you should be careful about
-     * doing shutdown unless you know that noone else needs to access the
+     * doing shutdown unless you know that no one else needs to access the
      * database until it is rebooted. That is why this demo will not shut down
      * the database unless it is running Derby embedded.</p>
      *
@@ -254,7 +251,7 @@
              * comprehend, so we use a different pattern.
              */
 
-            int number; // street number retreived from the database
+            int number; // street number retrieved from the database
             boolean failure = false;
             if (!rs.next())
             {
@@ -329,7 +326,7 @@
                     // the shutdown=true attribute shuts down Derby
                     DriverManager.getConnection("jdbc:derby:;shutdown=true");
 
-                    // To shut down a specific database only, but keeep the
+                    // To shut down a specific database only, but keep the
                     // engine running (for example for connecting to other
                     // databases), specify a database in the connection URL:
                     //DriverManager.getConnection("jdbc:derby:" + dbName + ";shutdown=true");
@@ -472,20 +469,13 @@
      * If the argument is "embedded" or invalid, this method will not change
      * anything, meaning that the default values will be used.</p>
      * <p>
-     * @param args JDBC connection framework, either "embedded", "derbyclient"
-     *        or "jccjdbcclient". Only the first argument will be considered,
-     *        the rest will be ignored.
+     * @param args JDBC connection framework, either "embedded", "derbyclient".
+     * Only the first argument will be considered, the rest will be ignored.
      */
     private void parseArguments(String[] args)
     {
         if (args.length > 0) {
-            if (args[0].equalsIgnoreCase("jccjdbcclient"))
-            {
-                framework = "jccjdbc";
-                driver = "com.ibm.db2.jcc.DB2Driver";
-                protocol = "jdbc:derby:net://localhost:1527/";
-            }
-            else if (args[0].equalsIgnoreCase("derbyclient"))
+            if (args[0].equalsIgnoreCase("derbyclient"))
             {
                 framework = "derbyclient";
                 driver = "org.apache.derby.jdbc.ClientDriver";

Modified: db/derby/code/trunk/java/demo/simple/example.html
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/demo/simple/example.html?rev=788105&r1=788104&r2=788105&view=diff
==============================================================================
--- db/derby/code/trunk/java/demo/simple/example.html (original)
+++ db/derby/code/trunk/java/demo/simple/example.html Wed Jun 24 18:23:11 2009
@@ -36,7 +36,6 @@
   <ul class="SubList">
     <li class="ChapterToc"><a href="#server">Starting the Network Server</a>
     <li class="ChapterToc"><a href="#derbyclient">Using the Derby client driver</a>
-    <li class="ChapterToc"><a href="#jcc">Using the IBM DB2 Universal JDBC driver</a>
   </ul>
 </ul>
 
@@ -71,7 +70,7 @@
   at a time.
 </p>
 <p>In a client/server environment, the application demonstrates the
-use of the Derby network client driver or the IBM DB2 JDBC Universal Driver by
+use of the Derby network client driver by
 connecting to the Network Server and running the demo. Note that the client
 drivers allow multiple instances of the application to run at the same time.
 However, the SQL operations performed by this demo will cause failures when
@@ -349,8 +348,7 @@
 <p>You will need to set up both the client process and the server
 process to run the demo application as a client connecting to the Network server.
 The Network Server needs to be running before you can connect using a client
-driver. This demo includes support for both the Derby client driver and the IBM
-DB2 Universal JDBC driver.
+driver. This demo includes support for the Derby client driver.
 </p>
 <p>You must start the Network Server before trying to run the
 demo application in one of the client modes.
@@ -516,98 +514,6 @@
     </p>
 </ol>
 
-<!-- ##########  HOW TO RUN - DB2 UNIVERSAL (JCC) DRIVER  ########## -->
-<h3><a id="jcc" name="jcc">Using the IBM DB2 JDBC Universal Driver (<var class="command">jccjdbcclient</var>)</a></h3>
-<p>
-  In version 10.0 of Derby, the IBM DB2 JDBC Universal Driver (also known as
-  JCC) was the only client driver that could communicate with the Derby Network
-  Server. This driver is not licensed under the
-  <a href="http://www.apache.org/licenses/">Apache License, Version 2.0</a> used
-  by Apache Derby, but can be downloaded from the IBM developerWorks website
-  (see: <a href="http://www-106.ibm.com/developerworks/db2/downloads/jcc/" target="_new">IBM
-  DB2 JDBC Universal Driver for Apache Derby Network Server</a> for more
-  information).
-</p>
-<table class="listing">
-  <tr>
-    <td class="listItem">Class name:</td>
-    <td class="listItem"><em class="javaObject">com.ibm.db2.jcc.DB2Driver</em></td>
-  </tr>
-  <tr>
-    <td class="listItem">Libraries:</td>
-    <td class="listItem"><em class="fileName">db2jcc.jar</em></td>
-  <tr>
-    <td class="listItem"></td>
-    <td class="listItem"><em class="fileName">db2jcc_license_c.jar</em></td>
-  </tr>
-</table>
-<p>
-  Newer versions of Derby include <a href="#derbyclient">Derby's own network
-  client driver</a>, which is the recommended client driver for most applications.
-  The DB2 Universal Driver is still supported and can be utilized with the
-  SimpleApp demo as follows (these instructions assume you have unzipped the
-  Universal Driver libraries into the <em class="fileName">lib</em> directory of
-  <var class="envVar">DERBY_HOME</var>):
-</p>
-<ol class="decimal">
-  <li class="Normal">Open a command window
-  <li class="Normal">If you haven't set it already on a system-wide basis, set
-  the <var class="envVar">DERBY_HOME</var> environment variable to the location
-  of this Derby installation. This is not strictly required to run the demo, but
-  this environment variable will be used later on this page to refer to the
-  required Derby resources, files, etc. Examples:
-    <p class="BodyRelative">UNIX (ksh/bash):</p>
-    <p class="commandLine">export DERBY_HOME=/home/user/derby/db-derby-10.x.y.z-bin</p>
-    <p class="BodyRelative">Windows:</p>
-    <p class="commandLine">set DERBY_HOME=c:\programs\derby\db-derby-10.x.y.z-bin</p>
-  <li class="Normal">Change directories to the <em class="fileName">$DERBY_HOME/demo/programs/simple</em> directory.
-  <li class="Normal">In the jcc client command window, set the CLASSPATH to include the
-  current directory (the location of <em class="fileName">SimpleApp.class</em>)
-  and the JCC libraries (<em class="fileName">db2jcc.jar</em> and
-  <em class="fileName">db2jcc_license_c.jar</em>).
-  (You may skip this step and provide the classpath as an option to the JVM
-  launch command instead, refer to your JVM's documentation for details).
-    <p class="BodyRelative">This may be done as follows:</p>
-    <p class="BodyRelative">UNIX (ksh/bash):</p>
-    <p class="commandLine">
-      export CLASSPATH=.:${DERBY_HOME}/lib/db2jcc.jar:${DERBY_HOME}/lib/db2jcc_license_c.jar
-    </p>
-    <p class="BodyRelative">WINDOWS:</p>
-    <p class="commandLine">
-      set CLASSPATH=.;%DERBY_HOME%\lib\db2jcc.jar;%DERBY_HOME%\lib\db2jcc_license_c.jar
-    </p>
-    <p class="BodyRelative">
-      It is assumed that you installed the IBM DB2 JDBC Universal Driver jars in
-      the <em class="fileName">lib</em> subdirectory of this Derby installation
-      (<var class="envVar">DERBY_HOME</var>).
-    </p>
-  <li class="Normal">Start the Derby Network Server in a different command
-    window, as described <a href="#server">here</a>
-  <li class="Normal">Start the SimpleApp demo in JCC client mode:
-    <p class="commandLine">
-      java SimpleApp jccjdbcclient
-    </p>
-    <p class="BodyRelative">The <var class="command">jccjdbcclient</var> argument
-      tells the program to use the IBM DB2 JDBC Universal driver (JCC) instead
-      of its default driver (the embedded driver).
-    </p>
-    <p class="BodyRelative">A successful run produces the following output:</p>
-    <pre class="Output">
-SimpleApp starting in jccjdbc mode
-Loaded the appropriate driver
-Connected to and created database derbyDB
-Created table location
-Inserted 1956 Webster
-Inserted 1910 Union
-Updated 1956 Webster to 180 Grand
-Updated 180 Grand to 300 Lakeshore
-Verified the rows
-Dropped table location
-Committed the transaction
-SimpleApp finished
-    </pre>
- </ol>
-
 <!-- ##########  FOOTER (VERSION INFO)  ########## -->
 <hr>
 <p class=NavBarVersion>Last updated for Apache Derby Version 10.3.2</p>