db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lance J. Andersen" <Lance.Ander...@Sun.COM>
Subject Re: Availability of Derby client ...
Date Wed, 13 Apr 2005 23:04:24 GMT
+1

Can we get an early access binary build posted so users can experiment 
without having to actually built it themselves?

Regards
Lance

Satheesh Bandaram wrote:

> As Kathy Saunders announced in February, IBM is contributing attached 
> Derby client to Apache Derby project. Derby client is a type 4 JDBC 
> client driver that is designed to work with Derby Network Server.
>
> I am attaching:
>
>    1. High-level functional specification of Derby client. This
>       document covers functionality, driver and datasource properties,
>       setting up CLASSPATH, tracing support, security mechanism and
>       testing support.
>    2. Patch with changes to Derby build. (DerbyClientPatch.txt)
>    3. Since Derby client code base was too large to for an attachment,
>       it can be downloaded from: DerbyClientSource.jar
>       <http://people.apache.org/%7Ekmarsden/DerbyClientSource.jar>
>
> To build Derby client,
> (Below  ${derby.source} refers to the root of your derby source)
>
>     * Apply the patch DerbyClientPatch.txt.
>     * Unjar DerbyClientSource.jar into ${derby.source}/java directory.
>       This should create a 'client' directory under
>       ${derby.source}/java, with org.apache.derby.jdbc and
>       org.apache.derby.client packages and a total of 116 java files
>       under the client directory.
>     * The client code is built as part of the standard derby build,
>       and the buildjars target will also create derbyclient.jar.
>
>     To perform a clean jar build, go to ${derby.source} and then
>     ant clobber
>     ant
>     ant buildjars
>
>     * After this,  derbyclient.jar would be placed under 'sane' or
>       'insane' sub-directories of ${derby.source}/jars depending on
>       your SANE property value.
>
> I call for a vote to accept Derby client by end of next week. (April 22nd)
>
> I am very excited to have this submission!!! I vote +1 to accept this 
> as part of Derby.
>
> Satheesh
> ------------------------------------------------------------------------
>
>
>     Derby Network Client
>
> ------------------------------------------------------------------------
>
> Last update: 4/11/05
>
> ------------------------------------------------------------------------
>
>
>       Contents
>
>    *
>
>
>     * Overview <#overview> Functionality <#function>
>     * JDBC Driver and DataSource names <#jdbc>
>     * Ways to Connect using the Derby Client Driver <#ways_connect>
>     * Data Source properties <#data_source_props>
>     * Tracing <#tracing>
>           o ClientDataSource Tracing Examples <#datasource_examples>
>           o DriverManager Tracing Examples <#drivermgr_examples>
>           o Changing the Default Trace Level <#changing_level>
>     * Security <#security>
>     * Packaging, Distribution and Versioning <#packaging>
>     * Comparision and/or differences with the Derby Embedded Driver
>       <#compareEmbed>
>     * Effects to existing documentation <#effects>
>     * Miscellaneous <#misc>
>
> ------------------------------------------------------------------------
>
>
>       Overview
>
> The Derby network client provides network connectivity to the Derby 
> Network Server. It is distributed as an additional jar file, 
> derbyclient.jar, with an entirely independent code base from the 
> embedded driver.
>
> The Derby network client is a type 4, JDBC compliant Driver, which 
> attempts to match the Derby Embedded JDBC driver as much as possible. 
> Initially, it will have some differences from the embedded driver, for 
> example, some SQL States will remain null and error messages will not 
> be localized in the initial offering. Hopefully, over time the 
> functionality of the two drivers will converge.
>
> ------------------------------------------------------------------------
>
>
>       Functionality
>
> All functionality for the Derby network client is packaged in the 
> derbyclient.jar file which will be added to the Derby distribution. 
> The client application needs only to include the new jar and 
> application classes in its classpath. derbyclient.jar has no 
> dependencies on the tools, server, or derby database engine classes, 
> nor do those classes depend on derbyclient.jar. Some new client 
> classes are in the same package as the embedded driver, such as 
> org.apache.derby.jdbc.ClientDriver, but the actual classes are 
> contained only in the client jar file.
>
> The Derby network client allows connections via JDBC URL using 
> DriverManager by its implementations of JDBC20 data sources, 
> javax.sql.DataSource, javax.sql.ConnectionPoolDataSource. An 
> implementation of javax.sql.XADataSource is also provided for network 
> XA Support. The Derby network client provides a tracing facility to 
> collect JDBC trace information and view protocol flows for debugging. 
> Security mechanisms are also provided for user and password 
> encryption. DataSource properties and connection attributes can be 
> used to enable tracing, as well as security settings.
>
> Tools support for ij and dblook as well as test harness support is 
> provided.
>
> The sections that follow will describe the functionality and provide 
> examples of using each characteristic mentioned here.
>
> ------------------------------------------------------------------------
>
>
>       JDBC Driver and DataSource names
>
> The Derby network client classes and JDBC interfaces they implement 
> are listed below.
>
> JDBC Interface 	  	Derby network client class
> java.sql.Driver 	  	org.apache.derby.jdbc.ClientDriver
> javax.sql.DataSource 	  	org.apache.derby.jdbc.ClientDataSource
> javax.sql.XADataSource 	  	org.apache.derby.jdbc.ClientXADataSource
> javax.sql.ConnectionPoolDataSource 	  
> org.apache.derby.jdbc.ClientConnectionPoolDataSource
>
>
>         Connection URL Format
>
> The protocol for the client URL is jdbc:derby://. The embedded and 
> client attributes are specified the same way. The embedded driver has 
> been changed to reject URL's with a // following derby:
>
> Derby network client URL Format
>
> jdbc:derby://server[:port]/databaseName[;attributeKey=value]..
>
> An example of using this URL to connect to the Derby network server 
> running on the localhost at port 1527 in ij is:
>
> ij> connect 
> `jdbc:derby://localhost:1527/sample;create=true;user=user1;password=secret4me'; 
>
>
> ------------------------------------------------------------------------
>
>
>       Ways to Connect using the Derby Client Driver
>
>
>         Client CLASSPATH
>
> Prior to using the Derby network client, the derbyclient.jar file 
> needs to be added to the classpath on the client. On Windows, to add 
> the derbyclient.jar file to your classpath, use the following command:
>
> set CLASSPATH=%CLASSPATH%;%DERBY_INSTALL%\lib\derbyclient.jar;
>
> When using the Derby client driver to connect to the Derby database, 
> there are two general methodologies used to connect. The first method 
> is to use the DriverManager. The second way to connect is to use one 
> of the three DataSource classes listed above.
>
> To use the DriverManager, the first step is to load the ClientDriver.
>
> Loading the driver:
>
>     port java.sql.* ; ... try {
>     Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
>     } catch (ClassNotFoundException e) { e.printStackTrace(); }
>     catch(java.lang.InstantiationException instant) {
>     instant.printStackTrace(); }
>     catch(java.lang.IllegalAccessException illegal) {
>     illegal.printStackTrace(); } ... 
>
> Now a connection can be made with the DriverManager.
>
> Connecting with the DriverManager:
>
>     String url =
>     "jdbc:derby://myhost.mydomain.com:1527/mydb;create=true;user=user1;password=secret4me";
>
>     connection = DriverManager.getConnection(url); 
>
> Connecting with the ClientDataSource:
>
>
>     import java.sql.*; import javax.sql.*; import
>     org.apache.derby.jdbc.ClientDataSource; ... ClientDataSource
>     ds=new ClientDataSource(); ds.setDatabaseName("sample");
>     ds.setServerName("localhost"); // host with listening network
>     server. ds.setPortNumber(1527); // port of listening network
>     server. ds.setUser("user1"); // Assign the user ID
>     ds.setPassword("secret4me"); // Assign the password Connection
>     con= ds.getConnection(); // Create a Connection object 
>
>
>
>  
>
> ------------------------------------------------------------------------
>
>
>       Data Source properties
>
> The following data source properties are available on the 
> ClientDataSource, ClientConnectionPoolDataSource and the 
> ClientXADataSource classes.
>
>     Standard JDBC Data Source Properties
>     Property 	Type 	Description 	Default 	Req'd 	Url Attr
>     databaseName* 	String 	name of database 	  	X 	 
>     dataSourceName* 	String 	a data source name 	  	  	 
>     description* 	String 	a description of this data source 	  	  	 
>     user* 	String 	user's account name 	APP 	  	user
>     password* 	String 	user's database password 	  	  	password
>     serverName 	String 	host name or TCP/IP address where the server
>     is listening for requests 	localhost 	  	 
>     portNumber 	int 	port number where the server is listening for
>     requests 	1527 	  	 
>     Client Specific Data Source Properties
>     traceFile 	String 	filename for tracing output. Setting this
>     property turns on tracing. (See Tracing) 	  	  	traceFile
>     traceDirectory 	String 	directory for tracing output. Each
>     connection will output to a separate file. Setting this property
>     turns on tracing. (See Tracing) 	  	  	traceDirectory
>     traceLevel 	int 	level of client tracing if traceFile or
>     traceDirectory are set 	TRACE_ALL 	  	traceLevel
>     traceFileAppend 	boolean 	true if tracing output should append to
>     the existing trace file. 	false 	  	traceFileAppend
>     securityMechanism 	int 	security mechanism (See Security)
>     USER_ONLY_SECURITY 	  	securityMechanism
>     retrieveMessageText 	boolean 	retrieve message text from server. A
>     stored procedure is called to retrieve the message text with each
>     SQLException and may start a new unit of work. Set to false if you
>     do not want the performance impact or encounter issues with a new
>     unit of work being started. 	true 	  	retrieveMessageText
>     Server Specific Data Source Properties
>     These properties are translated into server specific URL
>     attributes which are passed to the Derby embedded driver by
>     appending them to the databaseName. For example, calling
>     setDatabaseName("mydb") followed by
>     setConnectionAttributes("create=true") will cause the string
>     mydb;create=true to be sent to the server as the database name .
>     The URL to connect to the database will therefore include these
>     attributes.
>     connectionAttributes* 	String 	set to the list of Derby embedded
>     connection attributes separated by semi-colons. E.g., to specify
>     an encryption bootPassword of "x8hhk2adf", and set upgrade to
>     true, do the following:
>     ds.setConnectionAttributes("bootPassword=x8hhk2adf;upgrade=true");
>       	  	various. See Derby Documentation for a full list.
>
>     * This property is also available on the EmbeddedDataSource. All
>     other data source properties are supplemental to the
>     ClientDataSources.
>
>     Note: setAttributesAsPassword , which is available for the
>     embedded data sources is not available for the client data source.
>     It is not clear how to communicate it to the server.
>
> ------------------------------------------------------------------------
>
>
>       Tracing
>
> The Derby network client provides a tracing facility to collect JDBC 
> trace information and view protocol flows. Listed below are various 
> ways to obtain trace output. However, the easiest way to turn on 
> tracing is to use the traceFile attribute on the url in ij. The 
> example below shows all tracing going to the file trace.out from an ij 
> session.
>
>     ij>connect
>     'jdbc:derby://localhost:1527/mydb;create=true;traceFile=trace.out;user=user1;password=secret4me';
>
>
>
>         ClientDataSource Tracing
>
> Three methods can be used to collect tracing data if obtaining 
> connections from the ClientDataSource.
>
>    1. Use the setLogWriter(java.io.PrintWriter) method of
>       ClientDataSource and set the PrintWriter to a non null value.
>    2. Use the setTraceFile(String filename) method of ClientDataSource.
>    3. Use the setTraceDirectory(String dirname) method of
>       ClientDataSource to trace each connection flow in its own file
>       for programs that have multiple connections.
>
>
>         DriverManager Tracing
>
> If the DriverManager is used to obtain connections, two ways are 
> available to enable and collect tracing information.
>
>     * Use the setLogWriter(java.io.PrintWriter) method of
>       DriverManager and set the PrintWriter to a non null value.
>     * Use the URL attributes traceFile or traceDirectory to set these
>       properties prior to creating the connection with the
>       DriverManager.getConnection() method.
>
>
>         ClientDataSource Tracing Examples
>
> Shown below are examples of each tracing type for the ClientDataSource 
> Tracing.
>
>    1. Use the setLogWriter(java.io.PrintWriter) method of
>       ClientDataSource and set the PrintWriter to a non null value.
>
>
>/**
>*  Example to show how to set /enable tracing  when using DataSource
>*  - using the setLogWriter method on the datasource
>*/
>private static void sampleConnectUsingSimpleDataSource()
> throws Exception
>{
>java.sql.Connection conn = null;
> try
> {
>javax.sql.DataSource ds =
>new org.apache.derby.jdbc.ClientDataSource();
>((org.apache.derby.jdbc.ClientDataSource) ds).setServerName("localhost");
>((org.apache.derby.jdbc.ClientDataSource) ds).setPortNumber(1527);
>((org.apache.derby.jdbc.ClientDataSource) ds).setDatabaseName("sampleDB;create=true");
>System.out.println("---------------------------------------------------------------");
>System.out.println("[TraceWithSetLogWriter]  Setting setLogWriter to trace.log.");
>System.out.println("Traces will be written into trace.log");
>java.io.PrintWriter pw = new PrintWriter(new FileOutputStream("trace.log"),true);
>ds.setLogWriter(pw);
> 
> 
>// Refine the level of tracing detail
>((org.apache.derby.jdbc.ClientDataSource) ds).
>setTraceLevel(org.apache.derby.jdbc.ClientDataSource.TRACE_CONNECTS |
>org.apache.derby.jdbc.ClientDataSource.TRACE_PROTOCOL_FLOWS);
> 
>// This connection request is traced using trace level
>// TRACE_CONNECTS | TRACE_PROTOCOL_FLOWS
>conn = ds.getConnection("user1", "secretPassword");
>  java.sql.Statement s = conn.createStatement();
>try
>{
> s.executeUpdate("DROP TABLE sampleTable");
>  }
>  catch(Exception e)
>  {
>  // ignore drop of table error
>}
> 
>s.executeUpdate("CREATE TABLE sampleTable( sampleColumn int)");
>PreparedStatement ps = conn.prepareStatement("insert into sampleTable values(?)");
> 
>  // do some inserts
>conn.setAutoCommit(false);
>ps.setInt(1,1);
>ps.setInt(1,2);
>ps.executeUpdate();
>conn.commit();
> 
>// cleanup resources
>s.close();
>ps.close();
>conn.close();
>pw.flush();
>pw.close();
>}
>catch(java.sql.SQLException e)
>{
>e.printStackTrace();
>}
>}
>
>      
>
>    2. Use the setTraceFile(String filename) method of ClientDataSource.
>
>
>/**
>*  Example to show how to set /enable tracing when obtaining connections from DataSource
>*  - using the setTraceFile method on the datasource
>*/
>private static void sampleConnectUsingSimpleDataSource()
> throws Exception
>{
>java.sql.Connection conn = null;
> 
> try
> {
>javax.sql.DataSource ds =
>new org.apache.derby.jdbc.ClientDataSource();
>((org.apache.derby.jdbc.ClientDataSource) ds).setServerName("localhost");
>((org.apache.derby.jdbc.ClientDataSource) ds).setPortNumber(1527);
>((org.apache.derby.jdbc.ClientDataSource) ds).setDatabaseName("sampleDB;create=true");
>System.out.println("---------------------------------------------------------------");
>System.out.println("[TraceWithSetTraceFile]  Setting setTraceFile to trace.log.");
>System.out.println("Traces will be written into trace.log");
>((org.apache.derby.jdbc.ClientDataSource) ds).setTraceFile("trace.log");
> 
> 
>// Refine the level of tracing detail
>((org.apache.derby.jdbc.ClientDataSource) ds).
>setTraceLevel(org.apache.derby.jdbc.ClientDataSource.TRACE_CONNECTS |
>org.apache.derby.jdbc.ClientDataSource.TRACE_PROTOCOL_FLOWS);
> 
>// This connection request is traced using trace level
>// TRACE_CONNECTS | TRACE_PROTOCOL_FLOWS
>conn = ds.getConnection("user1", "secretPassword");
>   java.sql.Statement s1 = conn.createStatement();
>try
>{
> s1.executeUpdate("DROP TABLE sampleTable");
>  }
>  catch(Exception e)
>  {
>  // ignore drop of table error
>}
> 
>s1.executeUpdate("CREATE TABLE sampleTable( sampleColumn int)");
>PreparedStatement ps = conn.prepareStatement("insert into sampleTable values (?)");
> 
>conn.setAutoCommit(false);
>ps.setInt(1,1);
>ps.executeUpdate();
>conn.commit();
> 
>// cleanup resources
>s1.close();
>ps.close();
>conn.close();
>}
>catch(java.sql.SQLException e) {
>e.printStackTrace();
>}
>}
>
>
>      
>
>    3. Use the setTraceDirectory(String dirname) method of
>       ClientDataSource to trace each connection flow in its own file
>       for programs that have multiple connections.
>
> Call the setTraceDirectory(String directoryName) method on the 
> ClientDataSource or use the URL attribute traceDirectory=<directory> 
> to specify a directory for trace output. The directory must already 
> exist. If the traceDirectory property is enabled, then tracing of 
> multiple connections on the same datasource will be directed to 
> separate files under the specified directory.
>
> When tracing to a directory, each connection will be traced to a 
> separate file named traceFile_origination_n, where origination 
> indicates the origination of the log writer in use and can be "xads", 
> "cpds", "ds", or "driver", and n represents the nth connection against 
> the datasource. The log writer origination indicator in the file name 
> maps to the log writer as follows:
>
>     * ds - ClientXADataSource
>     * cpds - ClientConnectionPoolDataSource
>     * ds - ClientDataSource
>     * driver - ClientDriver
>
> 
>/**
>*  Example to show how to set /enable tracing when obtaining connections from DataSource
>*  - using the setTraceDirectory method on the DataSource
>*/
>private static void sampleConnectUsingSimpleDataSource()
> throws Exception
>{
>java.sql.Connection conn = null;
> 
>try {
>javax.sql.DataSource ds =
>new org.apache.derby.jdbc.ClientDataSource();
>((org.apache.derby.jdbc.ClientDataSource) ds).setServerName("localhost");
>((org.apache.derby.jdbc.ClientDataSource) ds).setPortNumber(1527);
>((org.apache.derby.jdbc.ClientDataSource) ds).setDatabaseName("sampleDB;create=true");
>((org.apache.derby.jdbc.ClientDataSource) ds).setTraceDirectory("myTraceDir");
> 
>conn = ds.getConnection("user1", "secretPassword");
>   java.sql.Statement s1 = conn.createStatement();
>try
>{
> s1.executeUpdate("DROP TABLE sampleTable");
>  }
>  catch(Exception e)
>  {
>	  System.out.println("First time, expected exception in drop table as table not yet created in database" +e.getMessage());
>}
> 
>s1.executeUpdate("CREATE TABLE sampleTable( sampleColumn int)");
>PreparedStatement ps = conn.prepareStatement("insert into sampleTable values (?)");
> 
>conn.setAutoCommit(false);
>ps.setInt(1,1);
>ps.executeUpdate();
>conn.commit();
> 
>// cleanup resources
>s1.close();
>ps.close();
>conn.close();
> 
>  // Each connection trace will be in a file of its own prefixed
>  // by name set using the setTraceFile
>  // example : traceFile_origination_n. n is the nth connection against the datasource.
>  // origination indicates the origination of the logwriter in use and can be
>  // cpds, xads, ds, driver
>Connection conn2 = ds.getConnection("user2","password2");
>conn2.close();
>}
>catch(java.sql.SQLException e) {
>e.printStackTrace();
>}
>}
>
>      
>
>       ------------------------------------------------------------------------
>
>
>               DriverManager Tracing Examples
>
>       Shown below is an example of enabling tracing when obtaining
>       connections using the DriverManager API.
>
>          1. Use the setLogWriter(java.io.PrintWriter) method of
>             DriverManager and set the PrintWriter to a non null value.
>
>
>/**
>*  Example to show how to set /enable tracing when obtaining connections from
>*  java.sql.DriverManager api.
>*  - using the setLogWriter method on the DriverManager api
>*/
>
>import java.sql.*;
>import javax.sql.*;       
>import org.apache.derby.jdbc.ClientDataSource;
>import java.io.PrintWriter;
>import java.io.FileOutputStream;
>
>...
>private static void sampleConnectWithURLUsingDriverManager()
>throws Exception
>{
>java.sql.Connection conn = null;
> 
>try
>{
>Class.forName("org.apache.derby.jdbc.ClientDriver");
>}
>catch(ClassNotFoundException e)
>{
>System.out.println("[TraceWithSetLogWriter] Derby Client driver is not in the classpath.Check if derbyclient.jar is in your classpath!");
>return;
>}
>try
>{
> System.out.println("---------------------------------------------------------------------");
> System.out.println("Setting logging/tracing using setLogWriter on DriverManager to trace1.log");
> java.sql.DriverManager.setLogWriter(new java.io.PrintWriter(new FileOutputStream("trace1.log")));
>}
>catch(Exception e)
>{
>System.out.println("[TraceWithSetLogWriter] Unable to set tracing/logging PrintWriter to trace.log");
>}
> 
>// The traceLevel property is established through the URL syntax,
>// and driver tracing is directed to file "trace1.log"
>String databaseURL =
>"jdbc:derby://localhost:1527" +
>"/sampleDB;create=true;traceLevel=" +
>(org.apache.derby.jdbc.ClientDataSource.TRACE_PROTOCOL_FLOWS|org.apache.derby.jdbc.ClientDataSource.TRACE_CONNECTS);
> 
>// Set other properties
>java.util.Properties properties = new java.util.Properties();
>properties.setProperty("user", "myname");
>properties.setProperty("password", "mypass");
>try
>{
>// This connection request is traced using trace level
>// TRACE_CONNECTS | TRACE_PROTOCOL_FLOWS
>conn = java.sql.DriverManager.getConnection(databaseURL, properties);
> 
>  java.sql.Statement s = conn.createStatement();
>try
>{
> s.executeUpdate("DROP TABLE sampleTable");
>  }
>  catch(Exception e)
>  {
>	  System.out.println("First time, expected exception in drop table as table not yet created in database" +e.getMessage());
>}
> 
>s.executeUpdate("CREATE TABLE sampleTable( sampleColumn int)");
>PreparedStatement ps = conn.prepareStatement("insert into sampleTable values(?)");
> 
>  // do some inserts
>conn.setAutoCommit(false);
>ps.setInt(1,1);
>ps.setInt(1,2);
>ps.executeUpdate();
>conn.commit();
> 
>// cleanup resources
>s.close();
>ps.close();
>conn.close();
>}
>catch(java.sql.SQLException e)
>{
>e.printStackTrace();
>}
>}
>
>       ------------------------------------------------------------------------
>
>
>               Changing the Default Trace Level
>
>       The trace level defaults to ClientDataSource.TRACE_ALL. The
>       tracing can be changed by calling the setTraceLevel(int level)
>       method or setting the URL attribute traceLevel, as shown below.
>
>
>String url = "jdbc:derby://myhost.mydomain.com:1528/mydb" +
> ";traceFile=/u/user1/trace.out" +
> ";traceLevel=" +
> org.apache.derby.jdbc.ClientDataSource.TRACE_PROTOCOL_FLOWS;
>DriverManager.getConnection(url,"user1","secret4me");
>
>      
>
>       This table lists the available tracing levels and values.
>
>       Trace Level 	Value
>       org.apache.derby.jdbc.ClientDataSource.TRACE_NONE 	0x0
>       org.apache.derby.jdbc.ClientDataSource.TRACE_CONNECTION_CALLS 	0x1
>       org.apache.derby.jdbc.ClientDataSource.TRACE_STATEMENT_CALLS 	0x2
>       org.apache.derby.jdbc.ClientDataSource.TRACE_RESULT_SET_CALLS 	0x4
>       org.apache.derby.jdbc.ClientDataSource.TRACE_DRIVER_CONFIGURATION
>       	0x10
>       org.apache.derby.jdbc.ClientDataSource.TRACE_CONNECTS 	0x20
>       org.apache.derby.jdbc.ClientDataSource.TRACE_PROTOCOL_FLOWS 	0x40
>       org.apache.derby.jdbc.ClientDataSource.TRACE_RESULT_SET_META_DATA
>       	0x80
>       org.apache.derby.jdbc.ClientDataSource.TRACE_PARAMETER_META_DATA
>       0x100
>       org.apache.derby.jdbc.ClientDataSource.TRACE_DIAGNOSTICS 	0x200
>       org.apache.derby.jdbc.ClientDataSource.TRACE_XA_CALLS 	0x800
>       org.apache.derby.jdbc.ClientDataSource.TRACE_ALL 	0xFFFFFFFF;
>
>       To specify more than one trace , use one of these techniques:
>
>           o Use bitwise OR (|) operators with two or more trace
>             values. For example, to trace PROTOCOL flows and
>             connection calls, specify this value for traceLevel:
>             TRACE_PROTOCOL_FLOWS|TRACE_CONNECTION_CALLS
>           o Use a bitwise complement ( ~ ) operator with a trace value
>             to specify all except a certain trace. For example, to
>             trace everything except PROTOCOL flows, specify this value
>             for traceLevel:
>             ~TRACE_PROTOCOL_FLOWS
>       ------------------------------------------------------------------------
>
>
>             Security
>
>       Derby network client allows you to select a security mechanism
>       by specifying a value for the securityMechanism property. You
>       can set this property in one of the following ways:
>
>           o When using the DriverManager interface, set
>             securityMechanism in a java.util.Properties object before
>             you invoke the form of the getConnection method which
>             includes the java.util.Properties parameter.
>           o When using the DataSource interface, and you are creating
>             and deploying your own DataSource objects, invoke the
>             DataSource.setSecurityMechanism method after you create a
>             DataSource object.
>
>       The table below lists the security mechanisms the Derby network
>       client supports, and the corresponding property value to specify
>       to obtain this securityMechanism. The default security mechanism
>       is the user ID only if no password is set and User ID and
>       password if password is set. The default user, if none is
>       specified is APP.
>
>           Security mechanisms supported by the Derby network client
>           Security mechanism 	securityMechanism property value 	Comments
>           User ID and password
>           ClientDataSource.CLEAR_TEXT_PASSWORD_SECURITY (0x03)
>           Default if password is set
>           User ID only 	ClientDataSource.USER_ONLY_SECURITY (0x04)
>           Default if password is not set
>           Encrypted user ID and encrypted password
>           ClientDataSource.ENCRYPTED_USER_AND_PASSWORD_SECURITY
>           (0x09) 	Encryption requires a JCE Implementation that
>           supports Diffie-Helman algorithm with a prime of 32 bytes
>
>       ------------------------------------------------------------------------
>
>
>             Packaging, Distribution and Versioning
>
>       The Derby network client will assume the version of the Derby
>       release in which it is offered (currently thought to be 10.1).
>
>       A new jar file, derbyclient.jar, needs to be added to the
>       distribution, which will contain the client classes. The client
>       classpath will require only derbyclient.jar to access the
>       server. Demo programs and server framework batch files and
>       scripts will need to be changed to use the Derby network client.
>
>       ------------------------------------------------------------------------
>
>
>             Comparision and/or differences with the Derby Embedded Driver
>
>       The following known differences exist between the embedded
>       driver and the network client driver. Many of these are already
>       documented as Network Server differences at
>       http://incubator.apache.org/derby/manuals/admin/hubprnt19.html#HDRSII-APPS-.
>       Three differences that are listed in the server guide are not
>       relevant with the network client. XA is supported, error
>       messages are retrieved by default and user/password are not
>       required. Below is a summary of the differences.
>
>           o Error messages and SQLStates are sometimes different and
>             are sometimes null on the client, particularly for data
>             conversion errors.
>           o Multiple SQL Exceptions and Warnings will only return a
>             single Exception on the client. It will have the SQLState
>             of the first exception and in the text will have the text
>             of the additional Exceptions appended.
>           o There are no localized error messages for the client.
>           o The client driver has not been tested under security manager.
>           o The client driver fully materializes LOBS when the row is
>             retrieved.
>           o Scrollable cursors (ResultSet.TYPE_SCROLL_SENSITIVE or
>             ResultSet.TYPE_SCROLL_INSENSITIVE) are not supported if
>             the resultset contains LOB data. TYPE_FORWARD_ONLY must be
>             specified for result sets containing LOB data.
>           o To use encrypted user id and password, you need to have
>             IBM JCE (Java Cryptography Extension) 1.2.1 or later.
>             (DERBY-65)
>       ------------------------------------------------------------------------
>
>
>             Effects to existing documentation
>
>       The following Derby Manuals should be updated to include the new
>       client driver. The Server Guide, Tools and Getting Started
>       guides at least will be affected. Currently they document using
>       the network server with the IBM DB2 Universal JDBC Driver. In
>       general, the current documentation is relevant to the new driver
>       except for the items listed below.
>
>           URL
>           Derby Network Client URL 	Documented URL
>           jdbc:derby://server[:port]/databaseName[;attributeKey=value]..
>           	jdbc:derby:net//server[:port]/databaseName[;embeddedAttributeKey=value]..:clientAttributeKey=value;.
>
>
>           Driver and DataSource Names
>           JDBC Interface 	Derby Network Client 	Documented Class Name
>           java.sql.Driver 	org.apache.derby.jdbc.ClientDriver
>           com.ibm.db2.jcc.DB2Driver
>           javax.sql.DataSource
>           org.apache.derby.jdbc.ClientDataSource
>           com.ibm.db2.jcc.DB2DataSource
>           javax.sql.XADataSource
>           org.apache.derby.jdbc.ClientXADataSource
>           com.ibm.db2.jcc.DB2XADataSource
>           javax.sql.ConnectionPoolDataSource
>           org.apache.derby.jdbc.ClientConnectionPoolDataSource
>           com.ibm.db2.jcc.DB2ConnectionPoolDataSource
>
>           Miscellaneous Changes
>             	Derby Network Client 	Documented
>           jar file name 	derbyclient.jar 	db2jcc.jar,
>           db2jcc_licence_c.jar
>           attribute to retrieve message text* 	retrieveMessageText
>           (default true) 	retrieveMessagesFromServerOnGetMessage
>           (default false)
>           required datasource property settings 	databaseName only
>           required property 	requires databaseName,
>           serverName,driverType, user, password
>
>           *Note: The retrieveMessageText attribute should not be
>           included in most of the examples as it now defaults to true.
>
>           Client data source properties, tracing and security needs to
>           be documented as described above.
>
>       ------------------------------------------------------------------------
>
>
>             Miscellaneous
>
>
>               Tools
>
>       ij will recognize the new URL and load the driver automatically.
>       dblook will accept the client URL. sysinfo has been changed to
>       locate the new jar file.
>
>
>               Testing
>
>       You can run the client regression tests by running the suite
>       derbynetclientmats. You can run individual tests with the client
>       framework by setting the framework system property to
>       DerbyNetClient. An example of this is shown below.
>
>       java -Dframework=DerbyNetClient
>       org.apache.derbyTesting.functionTests.harness.RunTest
>       lang/supersimple.sql
>
>       You can run the Derby network client test suite as follows:
>
>       java org.apache.derbyTesting.functionTests.harness.RunSuite
>       derbynetclientmats
>
>       ------------------------------------------------------------------------
>
>------------------------------------------------------------------------
>
>Index: tools/ant/properties/dirs.properties
>===================================================================
>--- tools/ant/properties/dirs.properties	(revision 161156)
>+++ tools/ant/properties/dirs.properties	(working copy)
>@@ -34,6 +34,7 @@
> 
> derby.engine.src.dir=${derbysrc.dir}/engine
> derby.drda.src.dir=${derbysrc.dir}/drda
>+derby.client.src.dir=${derbysrc.dir}/client
> derby.tools.src.dir=${derbysrc.dir}/tools
> derby.build.src.dir=${derbysrc.dir}/build
> derby.demo.src.dir=${derbysrc.dir}/demo
>@@ -42,6 +43,7 @@
> 
> derby.engine.dir=${derby.engine.src.dir}/${derby.dir}
> derby.drda.dir=${derby.drda.src.dir}/${derby.dir}
>+derby.client.dir=${derby.client.src.dir}/{derby.dir}
> derby.tools.dir=${derby.tools.src.dir}/${derby.dir}
> derby.build.dir=${derby.build.src.dir}/org/apache/derbyBuild
> derby.locales.dir=${derby.engine.dir}/loc
>Index: java/testing/README.htm
>===================================================================
>--- java/testing/README.htm	(revision 161156)
>+++ java/testing/README.htm	(working copy)
>@@ -1,1189 +1,2159 @@
> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
>-<html>
>+<html xmlns:o="urn:schemas-microsoft-com:office:office"
>+xmlns:w="urn:schemas-microsoft-com:office:word"
>+xmlns:st1="urn:schemas-microsoft-com:office:smarttags"
>+xmlns="http://www.w3.org/TR/REC-html40">
>+
> <head>
>-  <meta content="text/html; charset=ISO-8859-1"
>- http-equiv="content-type">
>-  <title>readme.htm</title>
>+<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
>+<meta name=ProgId content=Word.Document>
>+<meta name=Generator content="Microsoft Word 10">
>+<meta name=Originator content="Microsoft Word 10">
>+<link rel=File-List href="README_files/filelist.xml">
>+<title>readme.htm</title>
>+<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
>+ name="date"/>
>+<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
>+ name="City"/>
>+<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
>+ name="State"/>
>+<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
>+ name="place"/>
>+<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
>+ name="time"/>
>+<!--[if gte mso 9]><xml>
>+ <o:DocumentProperties>
>+  <o:Author>IBM_User</o:Author>
>+  <o:LastAuthor>IBM_User</o:LastAuthor>
>+  <o:Revision>2</o:Revision>
>+  <o:TotalTime>4</o:TotalTime>
>+  <o:Created>2005-04-07T04:38:00Z</o:Created>
>+  <o:LastSaved>2005-04-07T04:42:00Z</o:LastSaved>
>+  <o:Pages>1</o:Pages>
>+  <o:Words>4678</o:Words>
>+  <o:Characters>26668</o:Characters>
>+  <o:Company>IBM</o:Company>
>+  <o:Lines>222</o:Lines>
>+  <o:Paragraphs>62</o:Paragraphs>
>+  <o:CharactersWithSpaces>31284</o:CharactersWithSpaces>
>+  <o:Version>10.6714</o:Version>
>+ </o:DocumentProperties>
>+</xml><![endif]--><!--[if gte mso 9]><xml>
>+ <w:WordDocument>
>+  <w:SpellingState>Clean</w:SpellingState>
>+  <w:GrammarState>Clean</w:GrammarState>
>+  <w:Compatibility>
>+   <w:ApplyBreakingRules/>
>+   <w:UseFELayout/>
>+  </w:Compatibility>
>+  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
>+ </w:WordDocument>
>+</xml><![endif]--><!--[if !mso]><object
>+ classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui></object>
>+<style>
>+st1\:*{behavior:url(#ieooui) }
>+</style>
>+<![endif]-->
>+<style>
>+<!--
>+ /* Font Definitions */
>+ @font-face
>+	{font-family:Wingdings;
>+	panose-1:5 0 0 0 0 0 0 0 0 0;
>+	mso-font-charset:2;
>+	mso-generic-font-family:auto;
>+	mso-font-pitch:variable;
>+	mso-font-signature:0 268435456 0 0 -2147483648 0;}
>+@font-face
>+	{font-family:SimSun;
>+	panose-1:2 1 6 0 3 1 1 1 1 1;
>+	mso-font-alt:\5B8B\4F53;
>+	mso-font-charset:134;
>+	mso-generic-font-family:auto;
>+	mso-font-pitch:variable;
>+	mso-font-signature:3 135135232 16 0 262145 0;}
>+@font-face
>+	{font-family:"\@SimSun";
>+	panose-1:2 1 6 0 3 1 1 1 1 1;
>+	mso-font-charset:134;
>+	mso-generic-font-family:auto;
>+	mso-font-pitch:variable;
>+	mso-font-signature:3 135135232 16 0 262145 0;}
>+ /* Style Definitions */
>+ p.MsoNormal, li.MsoNormal, div.MsoNormal
>+	{mso-style-parent:"";
>+	margin:0in;
>+	margin-bottom:.0001pt;
>+	mso-pagination:widow-orphan;
>+	font-size:12.0pt;
>+	font-family:"Times New Roman";
>+	mso-fareast-font-family:SimSun;}
>+h1
>+	{mso-margin-top-alt:auto;
>+	margin-right:0in;
>+	mso-margin-bottom-alt:auto;
>+	margin-left:0in;
>+	mso-pagination:widow-orphan;
>+	mso-outline-level:1;
>+	font-size:24.0pt;
>+	font-family:"Times New Roman";
>+	font-weight:bold;}
>+h2
>+	{mso-margin-top-alt:auto;
>+	margin-right:0in;
>+	mso-margin-bottom-alt:auto;
>+	margin-left:0in;
>+	mso-pagination:widow-orphan;
>+	mso-outline-level:2;
>+	font-size:18.0pt;
>+	font-family:"Times New Roman";
>+	font-weight:bold;}
>+h3
>+	{mso-margin-top-alt:auto;
>+	margin-right:0in;
>+	mso-margin-bottom-alt:auto;
>+	margin-left:0in;
>+	mso-pagination:widow-orphan;
>+	mso-outline-level:3;
>+	font-size:13.5pt;
>+	font-family:"Times New Roman";
>+	font-weight:bold;}
>+p
>+	{mso-margin-top-alt:auto;
>+	margin-right:0in;
>+	mso-margin-bottom-alt:auto;
>+	margin-left:0in;
>+	mso-pagination:widow-orphan;
>+	font-size:12.0pt;
>+	font-family:"Times New Roman";
>+	mso-fareast-font-family:SimSun;}
>+span.SpellE
>+	{mso-style-name:"";
>+	mso-spl-e:yes;}
>+span.GramE
>+	{mso-style-name:"";
>+	mso-gram-e:yes;}
>+@page Section1
>+	{size:8.5in 11.0in;
>+	margin:1.0in 1.25in 1.0in 1.25in;
>+	mso-header-margin:.5in;
>+	mso-footer-margin:.5in;
>+	mso-paper-source:0;}
>+div.Section1
>+	{page:Section1;}
>+ /* List Definitions */
>+ @list l0
>+	{mso-list-id:1251028;
>+	mso-list-template-ids:27700226;}
>+@list l0:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:.5in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Symbol;}
>+@list l0:level2
>+	{mso-level-number-format:bullet;
>+	mso-level-text:o;
>+	mso-level-tab-stop:1.0in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:"Courier New";
>+	mso-bidi-font-family:"Times New Roman";}
>+@list l1
>+	{mso-list-id:122038099;
>+	mso-list-template-ids:-1433876078;}
>+@list l1:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:.5in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Symbol;}
>+@list l2
>+	{mso-list-id:169027477;
>+	mso-list-template-ids:-1973884710;}
>+@list l3
>+	{mso-list-id:175727143;
>+	mso-list-template-ids:-2134076004;}
>+@list l3:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:.5in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Symbol;}
>+@list l4
>+	{mso-list-id:260646577;
>+	mso-list-type:hybrid;
>+	mso-list-template-ids:47117188 67698691 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
>+@list l4:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:o;
>+	mso-level-tab-stop:1.0in;
>+	mso-level-number-position:left;
>+	margin-left:1.0in;
>+	text-indent:-.25in;
>+	font-family:"Courier New";}
>+@list l5
>+	{mso-list-id:300963081;
>+	mso-list-template-ids:2101672862;}
>+@list l5:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0A7;
>+	mso-level-tab-stop:1.5in;
>+	mso-level-number-position:left;
>+	margin-left:1.5in;
>+	text-indent:-.25in;
>+	font-family:Wingdings;}
>+@list l5:level2
>+	{mso-level-number-format:bullet;
>+	mso-level-text:o;
>+	mso-level-tab-stop:2.0in;
>+	mso-level-number-position:left;
>+	margin-left:2.0in;
>+	text-indent:-.25in;
>+	font-family:"Courier New";}
>+@list l5:level3
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0A7;
>+	mso-level-tab-stop:2.5in;
>+	mso-level-number-position:left;
>+	margin-left:2.5in;
>+	text-indent:-.25in;
>+	font-family:Wingdings;}
>+@list l5:level4
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:3.0in;
>+	mso-level-number-position:left;
>+	margin-left:3.0in;
>+	text-indent:-.25in;
>+	font-family:Symbol;}
>+@list l5:level5
>+	{mso-level-number-format:bullet;
>+	mso-level-text:o;
>+	mso-level-tab-stop:3.5in;
>+	mso-level-number-position:left;
>+	margin-left:3.5in;
>+	text-indent:-.25in;
>+	font-family:"Courier New";}
>+@list l5:level6
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0A7;
>+	mso-level-tab-stop:4.0in;
>+	mso-level-number-position:left;
>+	margin-left:4.0in;
>+	text-indent:-.25in;
>+	font-family:Wingdings;}
>+@list l5:level7
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:4.5in;
>+	mso-level-number-position:left;
>+	margin-left:4.5in;
>+	text-indent:-.25in;
>+	font-family:Symbol;}
>+@list l5:level8
>+	{mso-level-number-format:bullet;
>+	mso-level-text:o;
>+	mso-level-tab-stop:5.0in;
>+	mso-level-number-position:left;
>+	margin-left:5.0in;
>+	text-indent:-.25in;
>+	font-family:"Courier New";}
>+@list l5:level9
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0A7;
>+	mso-level-tab-stop:5.5in;
>+	mso-level-number-position:left;
>+	margin-left:5.5in;
>+	text-indent:-.25in;
>+	font-family:Wingdings;}
>+@list l6
>+	{mso-list-id:303386825;
>+	mso-list-template-ids:47117188;}
>+@list l6:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:o;
>+	mso-level-tab-stop:1.0in;
>+	mso-level-number-position:left;
>+	margin-left:1.0in;
>+	text-indent:-.25in;
>+	font-family:"Courier New";}
>+@list l6:level2
>+	{mso-level-number-format:bullet;
>+	mso-level-text:o;
>+	mso-level-tab-stop:1.5in;
>+	mso-level-number-position:left;
>+	margin-left:1.5in;
>+	text-indent:-.25in;
>+	font-family:"Courier New";}
>+@list l6:level3
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0A7;
>+	mso-level-tab-stop:2.0in;
>+	mso-level-number-position:left;
>+	margin-left:2.0in;
>+	text-indent:-.25in;
>+	font-family:Wingdings;}
>+@list l6:level4
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:2.5in;
>+	mso-level-number-position:left;
>+	margin-left:2.5in;
>+	text-indent:-.25in;
>+	font-family:Symbol;}
>+@list l6:level5
>+	{mso-level-number-format:bullet;
>+	mso-level-text:o;
>+	mso-level-tab-stop:3.0in;
>+	mso-level-number-position:left;
>+	margin-left:3.0in;
>+	text-indent:-.25in;
>+	font-family:"Courier New";}
>+@list l6:level6
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0A7;
>+	mso-level-tab-stop:3.5in;
>+	mso-level-number-position:left;
>+	margin-left:3.5in;
>+	text-indent:-.25in;
>+	font-family:Wingdings;}
>+@list l6:level7
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:4.0in;
>+	mso-level-number-position:left;
>+	margin-left:4.0in;
>+	text-indent:-.25in;
>+	font-family:Symbol;}
>+@list l6:level8
>+	{mso-level-number-format:bullet;
>+	mso-level-text:o;
>+	mso-level-tab-stop:4.5in;
>+	mso-level-number-position:left;
>+	margin-left:4.5in;
>+	text-indent:-.25in;
>+	font-family:"Courier New";}
>+@list l6:level9
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0A7;
>+	mso-level-tab-stop:5.0in;
>+	mso-level-number-position:left;
>+	margin-left:5.0in;
>+	text-indent:-.25in;
>+	font-family:Wingdings;}
>+@list l7
>+	{mso-list-id:321079697;
>+	mso-list-template-ids:285398786;}
>+@list l7:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:.5in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Symbol;}
>+@list l8
>+	{mso-list-id:332493851;
>+	mso-list-template-ids:421552426;}
>+@list l8:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:.5in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Symbol;}
>+@list l8:level2
>+	{mso-level-number-format:bullet;
>+	mso-level-text:o;
>+	mso-level-tab-stop:1.0in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:"Courier New";
>+	mso-bidi-font-family:"Times New Roman";}
>+@list l8:level3
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0A7;
>+	mso-level-tab-stop:1.5in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Wingdings;}
>+@list l8:level4
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0A7;
>+	mso-level-tab-stop:2.0in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Wingdings;}
>+@list l9
>+	{mso-list-id:377556322;
>+	mso-list-template-ids:575036220;}
>+@list l9:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:.5in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Symbol;}
>+@list l10
>+	{mso-list-id:439029018;
>+	mso-list-template-ids:-1131543626;}
>+@list l10:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:.5in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Symbol;}
>+@list l11
>+	{mso-list-id:461465900;
>+	mso-list-template-ids:658283634;}
>+@list l11:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:.5in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Symbol;}
>+@list l12
>+	{mso-list-id:481192588;
>+	mso-list-type:hybrid;
>+	mso-list-template-ids:2101672862 67698693 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
>+@list l12:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0A7;
>+	mso-level-tab-stop:1.5in;
>+	mso-level-number-position:left;
>+	margin-left:1.5in;
>+	text-indent:-.25in;
>+	font-family:Wingdings;}
>+@list l13
>+	{mso-list-id:691029681;
>+	mso-list-template-ids:1587728578;}
>+@list l13:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:.5in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Symbol;}
>+@list l14
>+	{mso-list-id:816066815;
>+	mso-list-template-ids:-1552284938;}
>+@list l14:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:.5in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Symbol;}
>+@list l14:level2
>+	{mso-level-number-format:bullet;
>+	mso-level-text:o;
>+	mso-level-tab-stop:1.0in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:"Courier New";
>+	mso-bidi-font-family:"Times New Roman";}
>+@list l15
>+	{mso-list-id:869486718;
>+	mso-list-template-ids:2129824680;}
>+@list l15:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:.5in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Symbol;}
>+@list l16
>+	{mso-list-id:1290086840;
>+	mso-list-template-ids:1978430556;}
>+@list l16:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:.5in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Symbol;}
>+@list l17
>+	{mso-list-id:1347486083;
>+	mso-list-template-ids:1712613156;}
>+@list l17:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:.5in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Symbol;}
>+@list l18
>+	{mso-list-id:1476600082;
>+	mso-list-template-ids:-521917396;}
>+@list l18:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:.5in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Symbol;}
>+@list l19
>+	{mso-list-id:1806464445;
>+	mso-list-template-ids:1589904280;}
>+@list l19:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:.5in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Symbol;}
>+@list l19:level2
>+	{mso-level-number-format:bullet;
>+	mso-level-text:o;
>+	mso-level-tab-stop:1.0in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:"Courier New";
>+	mso-bidi-font-family:"Times New Roman";}
>+@list l20
>+	{mso-list-id:1884713887;
>+	mso-list-template-ids:-176255094;}
>+@list l20:level1
>+	{mso-level-number-format:bullet;
>+	mso-level-text:\F0B7;
>+	mso-level-tab-stop:.5in;
>+	mso-level-number-position:left;
>+	text-indent:-.25in;
>+	mso-ansi-font-size:10.0pt;
>+	font-family:Symbol;}
>+ol
>+	{margin-bottom:0in;}
>+ul
>+	{margin-bottom:0in;}
>+-->
>+</style>
>+<!--[if gte mso 10]>
>+<style>
>+ /* Style Definitions */
>+ table.MsoNormalTable
>+	{mso-style-name:"Table Normal";
>+	mso-tstyle-rowband-size:0;
>+	mso-tstyle-colband-size:0;
>+	mso-style-noshow:yes;
>+	mso-style-parent:"";
>+	mso-padding-alt:0in 5.4pt 0in 5.4pt;
>+	mso-para-margin:0in;
>+	mso-para-margin-bottom:.0001pt;
>+	mso-pagination:widow-orphan;
>+	font-size:10.0pt;
>+	font-family:"Times New Roman";}
>+</style>
>+<![endif]-->
> </head>
>-<body>
>-<h1><a class="mozTocH1" name="mozTocId934928"></a>Derby Functional Tests<br>
>-</h1>
>-<h2><a class="mozTocH2" name="mozTocId504000"></a>Package:
>-org.apache.derbyTesting<!--mozToc h1 1 h2 2 h3 3 h4 4 h5 5 h6 6--><br>
>-</h2>
>-<p>
>-<small>created by myrna@golux.com<br>
>-last updated on 12/02/2004 by: myrna@golux.com<br>
>-</small>
>-</p>
>-<ul>
>-  <li><a href="#intro">1. Introduction</a></li>
>-  <li><a href="#quickstart">2. Quickstart</a></li>
>-  <li style="margin-left: 40px;"><a
>- href="#2.1_running_with_derby_classes_">2.1 running tests<br>
>-    </a></li>
>-  <li style="margin-left: 40px;"><a
>- href="#building_derbyTesting__running_with">2.2 building
>-derbyTesting package</a><br>
>-  </li>
>-  <li><a href="#run">3. More details on running the derby functional
>-tests</a></li>
>-  <li style="margin-left: 40px;"><a href="#run1">3.1 Running 1 test</a></li>
>-  <li style="margin-left: 40px;"><a href="#run2">3.2 Running suites of
>-tests</a></li>
>-  <li><a href="#overview">4. Harness internals for developers</a> </li>
>-  <li style="margin-left: 40px;"><a href="#ov1">4.1 Test types</a></li>
>-  <li style="margin-left: 40px;"><a href="#ov2">4.2 Supporting files
>-for tests</a></li>
>-  <li style="margin-left: 40px;"><a href="#ov3">4.3
>-&lt;testname&gt;_app.properties</a></li>
>-  <li style="margin-left: 40px;"><a href="#ov4">4.4
>-&lt;testname&gt;_derby.properties</a></li>
>-  <li style="margin-left: 40px;"><a href="#ov5">4.5 tmp files, out
>-files, master files, and canons</a></li>
>-  <li style="margin-left: 40px;"><a href="#ov6">4.6 Masking and
>-comparing</a></li>
>-  <li style="margin-left: 40px;"><a href="#Adding_a_new_test">4.7
>-Adding a new test</a></li>
>-  <li style="margin-left: 40px;"><a
>- href="#4.8_Suites_and_Adding_a_new_suite">4.8 Suites and adding a
>-new suite</a></li>
>-  <li style="margin-left: 40px;"><a href="#ov9">4.9 Running with a new
>-jvm</a></li>
>-  <li style="margin-left: 40px;"><a href="#skipping">4.10 Skipping a
>-test</a></li>
>-  <li style="margin-left: 40px;"><a href="#frameworks">4.11 Frameworks</a></li>
>-  <li style="margin-left: 40px;"><a href="#props">4.12 Some test
>-harness properties</a> </li>
>+
>+<body lang=EN-US link=blue vlink=blue style='tab-interval:.5in'>
>+
>+<div class=Section1>
>+
>+<h1><a name=mozTocId934928></a><st1:City><st1:place>Derby</st1:place></st1:City>
>+Functional Tests</h1>
>+
>+<h2><a name=mozTocId504000></a>Package: <span class=SpellE>org.apache.derbyTesting</span><!--mozToc h1 1 h2 2 h3 3 h4 4 h5 5 h6 6--></h2>
>+
>+<p><span class=GramE><span style='font-size:10.0pt'>created</span></span><span
>+style='font-size:10.0pt'> by myrna@golux.com<br>
>+last updated on </span><st1:date Year="2004" Day="2" Month="12"><span
>+ style='font-size:10.0pt'>12/02/2004</span></st1:date><span style='font-size:
>+10.0pt'> by: myrna@golux.com</span></p>
>+
>+<ul type=disc>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l10 level1 lfo1;tab-stops:list .5in'><a href="#intro">1.
>+     Introduction</a></li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l10 level1 lfo1;tab-stops:list .5in'><a href="#quickstart">2. <span
>+     class=SpellE>Quickstart</span></a></li>
> </ul>
>-<br>
>-<h2>1. <a name="intro"></a>Introduction</h2>
>-<p>
>-This document describes functionality of the derby
>-functional testing package org.apache.derbyTesting. This package is
>-based on the functional tests in use at IBM for testing the Cloudscape
>-product before its contribution to ASF.</p>
>-<p>In the following, instructions are geared towards a unix
>-environment. For other environments, some details may need to be
>-adjusted. For instance, the document may
>-refer to $ANT_HOME, for DOS, this would be %ANT_HOME%.<br>
>-</p>
>-<p>In the following the top
>-directory under which the subversion tree is placed is referred to as
>-${derby.source} - see also the
>-derby <a href="http://incubator.apache.org/derby/BUILDING.html">BUILDING.txt</a>.<br>
>-</p>
>-<p>The version of the classes and supporting files of the derbyTesting
>-package have to match the version of the classes of the derby package.
>-Thus you either need to build all jars yourself, or get all jar files
>-from the incubator site at the same time when available. <br>
>-<br>
>-</p>
>-<span style="font-weight: bold;">
>-</span>
>-<h2><a class="mozTocH2" name="mozTocId191589"></a>2. <a
>- name="quickstart"></a>QuickStart<br>
>-</h2>
>+
>+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+margin-left:71.1pt;text-indent:-.25in;mso-list:l10 level1 lfo1;tab-stops:list .5in'><![if !supportLists]><span
>+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
>+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
>+style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>+</span></span></span><![endif]><span dir=LTR><a
>+href="#2.1_running_with_derby_classes_">2.1 running tests<br>
>+</a></span></p>
>+
>+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+margin-left:71.1pt;text-indent:-.25in;mso-list:l10 level1 lfo1;tab-stops:list .5in'><![if !supportLists]><span
>+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
>+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
>+style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>+</span></span></span><![endif]><span dir=LTR><a
>+href="#building_derbyTesting__running_with">2.2 building <span class=SpellE>derbyTesting</span>
>+package</a></span></p>
>+
>+<ul type=disc>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l10 level1 lfo1;tab-stops:list .5in'><a href="#run">3. More
>+     details on running the derby functional tests</a></li>
>+</ul>
>+
>+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+margin-left:71.1pt;text-indent:-.25in;mso-list:l10 level1 lfo1;tab-stops:list .5in'><![if !supportLists]><span
>+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
>+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
>+style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>+</span></span></span><![endif]><span dir=LTR><a href="#run1">3.1 Running 1 test</a></span></p>
>+
>+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+margin-left:71.1pt;text-indent:-.25in;mso-list:l10 level1 lfo1;tab-stops:list .5in'><![if !supportLists]><span
>+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
>+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
>+style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>+</span></span></span><![endif]><span dir=LTR><a href="#run2">3.2 Running suites
>+of tests</a></span></p>
>+
>+<ul type=disc>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l10 level1 lfo1;tab-stops:list .5in'><a href="#overview">4.
>+     Harness internals for developers</a> </li>
>+</ul>
>+
>+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+margin-left:71.1pt;text-indent:-.25in;mso-list:l10 level1 lfo1;tab-stops:list .5in'><![if !supportLists]><span
>+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
>+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
>+style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>+</span></span></span><![endif]><span dir=LTR><a href="#ov1">4.1 Test types</a></span></p>
>+
>+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+margin-left:71.1pt;text-indent:-.25in;mso-list:l10 level1 lfo1;tab-stops:list .5in'><![if !supportLists]><span
>+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
>+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
>+style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>+</span></span></span><![endif]><span dir=LTR><a href="#ov2">4.2 Supporting
>+files for tests</a></span></p>
>+
>+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+margin-left:71.1pt;text-indent:-.25in;mso-list:l10 level1 lfo1;tab-stops:list .5in'><![if !supportLists]><span
>+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
>+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
>+style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>+</span></span></span><![endif]><span dir=LTR><a href="#ov3">4.3 &lt;<span
>+class=SpellE>testname</span>&gt;_<span class=SpellE>app.properties</span></a></span></p>
>+
>+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+margin-left:71.1pt;text-indent:-.25in;mso-list:l10 level1 lfo1;tab-stops:list .5in'><![if !supportLists]><span
>+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
>+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
>+style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>+</span></span></span><![endif]><span dir=LTR><a href="#ov4">4.4 &lt;<span
>+class=SpellE>testname</span>&gt;_<span class=SpellE>derby.properties</span></a></span></p>
>+
>+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+margin-left:71.1pt;text-indent:-.25in;mso-list:l10 level1 lfo1;tab-stops:list .5in'><![if !supportLists]><span
>+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
>+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
>+style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>+</span></span></span><![endif]><span dir=LTR><a href="#ov5">4.5 <span
>+class=SpellE>tmp</span> files, out files, master files, and canons</a></span></p>
>+
>+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+margin-left:71.1pt;text-indent:-.25in;mso-list:l10 level1 lfo1;tab-stops:list .5in'><![if !supportLists]><span
>+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
>+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
>+style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>+</span></span></span><![endif]><span dir=LTR><a href="#ov6">4.6 Masking and
>+comparing</a></span></p>
>+
>+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+margin-left:71.1pt;text-indent:-.25in;mso-list:l10 level1 lfo1;tab-stops:list .5in'><![if !supportLists]><span
>+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
>+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
>+style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>+</span></span></span><![endif]><span dir=LTR><a href="#Adding_a_new_test">4.7
>+Adding a new test</a></span></p>
>+
>+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+margin-left:71.1pt;text-indent:-.25in;mso-list:l10 level1 lfo1;tab-stops:list .5in'><![if !supportLists]><span
>+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
>+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
>+style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>+</span></span></span><![endif]><span dir=LTR><a
>+href="#4.8_Suites_and_Adding_a_new_suite">4.8 Suites and adding a new suite</a></span></p>
>+
>+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+margin-left:71.1pt;text-indent:-.25in;mso-list:l10 level1 lfo1;tab-stops:list .5in'><![if !supportLists]><span
>+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
>+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
>+style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>+</span></span></span><![endif]><span dir=LTR><a href="#ov9">4.9 Running with a
>+new <span class=SpellE>jvm</span></a></span></p>
>+
>+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+margin-left:71.1pt;text-indent:-.25in;mso-list:l10 level1 lfo1;tab-stops:list .5in'><![if !supportLists]><span
>+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
>+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
>+style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>+</span></span></span><![endif]><span dir=LTR><a href="#skipping">4.10 Skipping
>+a test</a></span></p>
>+
>+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+margin-left:71.1pt;text-indent:-.25in;mso-list:l10 level1 lfo1;tab-stops:list .5in'><![if !supportLists]><span
>+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
>+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
>+style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>+</span></span></span><![endif]><span dir=LTR><a href="#frameworks">4.11
>+Frameworks</a></span></p>
>+
>+<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+margin-left:71.1pt;text-indent:-.25in;mso-list:l10 level1 lfo1;tab-stops:list .5in'><![if !supportLists]><span
>+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
>+mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
>+style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>+</span></span></span><![endif]><span dir=LTR><a href="#props">4.12 Some test
>+harness properties</a> </span></p>
>+
>+<p class=MsoNormal><o:p>&nbsp;</o:p></p>
>+
>+<h2>1. <a name=intro></a>Introduction</h2>
>+
>+<p>This document describes functionality of the derby functional testing
>+package <span class=SpellE>org.apache.derbyTesting</span>. This package is based
>+on the functional tests in use at IBM for testing the Cloudscape product before
>+its contribution to ASF.</p>
>+
>+<p>In the following, instructions are geared towards a <span class=SpellE><span
>+class=GramE>unix</span></span> environment. For other environments, some
>+details may need to be adjusted. For instance, the document may refer to
>+$ANT_HOME, for DOS, this would be %ANT_HOME%.</p>
>+
>+<p>In the following the top directory under which the subversion tree is placed
>+is referred to as ${<span class=SpellE>derby.source</span>} - see also the
>+derby <a href="http://incubator.apache.org/derby/BUILDING.html">BUILDING.txt</a>.</p>
>+
>+<p style='margin-bottom:12.0pt'>The <span class=GramE>version of the classes
>+and supporting files of the <span class=SpellE>derbyTesting</span> package have</span>
>+to match the version of the classes of the derby package. Thus you either need
>+to build all jars yourself, or get all jar files from the incubator site at the
>+same time when available. </p>
>+
>+<h2><a name=mozTocId191589></a>2. <a name=quickstart></a><span class=SpellE>QuickStart</span></h2>
>+
> <h3><a name="2.1_running_with_derby_classes_"></a>2.1 running tests</h3>
>-<p>
>-The derbyTesting package enables you to run 1 test or a suite of tests.
>-Before you can run, you need to setup your environment:<br>
>-</p>
>-<ul>
>-  <li>Obtain a jdk or jre (based on jdk 1.3.1 specification or higher).
>-Add the bin directory to your $PATH. Currently supported are:<br>
>-  </li>
>+
>+<p>The <span class=SpellE>derbyTesting</span> package enables you to run 1 test
>+or a suite of tests. Before you can run, you need to setup your environment:</p>
>+
>+<ul type=disc>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l16 level1 lfo2;tab-stops:list .5in'>Obtain a <span class=SpellE>jdk</span>
>+     or <span class=SpellE>jre</span> (based on <span class=SpellE>jdk</span>
>+     1.3.1 specification or higher). Add the bin directory to your $PATH.
>+     Currently supported are:</li>
> </ul>
>-<table
>- style="text-align: left; width: 497px; height: 32px; margin-left: 40px;"
>- border="1" cellpadding="2" cellspacing="2">
>-  <tbody>
>-    <tr>
>-      <td style="vertical-align: top;"><small>&nbsp;&nbsp;&nbsp; jdk131
>-- Sun
>-HotSpot jdk1.3.1</small><br>
>-      <small>&nbsp;&nbsp;&nbsp; jdk141 - Sun HotSpot jdk1.4.1</small><br>
>-      <small>&nbsp;&nbsp;&nbsp; jdk142 - Sun HotSpot jdk1.4.2</small><br>
>-      <small>&nbsp;&nbsp;&nbsp; jdk15 - Sun HotSpot jdk1.5</small><br>
>-      <small>&nbsp;&nbsp;&nbsp; ibm131 - IBM Classic jdk1.3.1</small><br>
>-      <small>&nbsp;&nbsp;&nbsp; ibm141 - IBM Classic jdk1.4.1</small><br>
>-      <small>&nbsp;&nbsp;&nbsp; ibm142 - IBM Classic jdk1.4.2</small><br>
>-      <small>&nbsp;&nbsp;&nbsp; j9_13 - WCTME jvm (available with IBM
>-Websphere Client Technology Micro Edition) <br>
>-      </small></td>
>-    </tr>
>-  </tbody>
>+
>+<table class=MsoNormalTable border=1 cellpadding=0 width=582 style='width:436.4pt;
>+ mso-cellspacing:1.5pt;margin-left:35.1pt;mso-padding-alt:1.5pt 1.5pt 1.5pt 1.5pt'>
>+ <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
>+  <td valign=top style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
>+  <p class=MsoNormal><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; jdk131 -
>+  Sun <span class=SpellE>HotSpot</span> jdk1.3.1</span><br>
>+  <span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; jdk141 - Sun <span
>+  class=SpellE>HotSpot</span> jdk1.4.1</span><br>
>+  <span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; jdk142 - Sun <span
>+  class=SpellE>HotSpot</span> jdk1.4.2</span><br>
>+  <span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; jdk15 - Sun <span
>+  class=SpellE>HotSpot</span> jdk1.5</span><br>
>+  <span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; ibm131 - IBM Classic
>+  jdk1.3.1</span><br>
>+  <span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; ibm141 - IBM Classic
>+  jdk1.4.1</span><br>
>+  <span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; ibm142 - IBM Classic
>+  jdk1.4.2</span><br>
>+  <span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; j9_13 - WCTME <span
>+  class=SpellE>jvm</span> (available with IBM <span class=SpellE>Websphere</span>
>+  Client Technology Micro Edition) </span></p>
>+  </td>
>+ </tr>
> </table>
>-<ul>
>-  <li>set $CLASSPATH to include the following jars:</li>
>-  <ul>
>-    <li><small>jakarta-oro-2.0.8.jar</small></li>
>-    <small>&nbsp;&nbsp;&nbsp; oromatcher, obtain from <a
>- href="http://jakarta.apache.org/oro/index.html">http://jakarta.apache.org/oro/index.html</a>,
>+
>+<ul type=disc>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l14 level1 lfo3;tab-stops:list .5in'>set $CLASSPATH to include
>+     the following jars:</li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l14 level2 lfo3;tab-stops:list 1.0in'><span
>+      style='font-size:10.0pt'>jakarta-oro-2.0.8.jar</span></li>
>+ </ul>
>+</ul>
>+
>+<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp;
>+<span class=SpellE><span class=GramE>oromatcher</span></span>, obtain from <a
>+href="http://jakarta.apache.org/oro/index.html">http://jakarta.apache.org/oro/index.html</a>,
> or follow this link for <a
>- href="http://apache.roweboat.net/jakarta/oro/source/jakarta-oro-2.0.8.zip">zip</a>
>+href="http://apache.roweboat.net/jakarta/oro/source/jakarta-oro-2.0.8.zip">zip</a>
> file, or <a
>- href="http://apache.roweboat.net/jakarta/oro/source/jakarta-oro-2.0.8.tar.gz">tar</a>.gz)</small><li><small>derbyTesting.jar<br>
>-      </small></li>
>-  </ul>
>-  <ul>
>-    <small>&nbsp;&nbsp;&nbsp;&nbsp; test files and classes</small><li><small>derby.jar<br>
>-      </small></li>
>-    <small>&nbsp;&nbsp;&nbsp; main derby package classes</small><li><small>derbytools.jar<br>
>-      </small></li>
>-    <small>&nbsp;&nbsp;&nbsp; derby tools classes for tools like ij
>-and dblook</small><li><small>derbynet.jar<br>
>-      </small></li>
>-    <small>&nbsp;&nbsp;&nbsp; derby network server classes</small><li><small>db2jcc.jar
>-and db2jcc_license_c.jar <br>
>-      </small></li>
>-    <small>&nbsp;&nbsp;&nbsp; IBM Universal JDBC Driver classes. (See
>-IBM <a href="http://www-106.ibm.com/developerworks/db2/downloads/jcc/">developerworks</a>
>-for download)</small><br>
>-    <li><small>derbyLocale_*.jar</small></li>
>-    <small>&nbsp;&nbsp;&nbsp; locale files holding translated messages.</small><br>
>-  </ul>
>+href="http://apache.roweboat.net/jakarta/oro/source/jakarta-oro-2.0.8.tar.gz"><span
>+class=SpellE>tar</span></a><span class=SpellE>.gz</span>)</span></p>
>+
>+<ul type=disc>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l14 level2 lfo3;tab-stops:list 1.0in'><span class=SpellE><span
>+      style='font-size:10.0pt'>derbyTesting.jar</span></span></li>
>+ </ul>
> </ul>
>-<small></small>
>-<ul>
>-  <ul>
>-  </ul>
>+
>+<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;
>+<span class=GramE>test</span> files and classes</span></p>
>+
>+<ul type=disc>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l14 level2 lfo3;tab-stops:list 1.0in'><span class=SpellE><span
>+      style='font-size:10.0pt'>derby.jar</span></span></li>
>+ </ul>
> </ul>
>-<p>
>-For example:<br>
>-</p>
>-<div style="margin-left: 40px;">
>-<table style="text-align: left; width: 484px; height: 32px;" border="1"
>- cellpadding="2" cellspacing="2">
>-  <tbody>
>-    <tr>
>-      <td style="vertical-align: top;"><small>(note that $jardir is
>-only a convenience variable and that the command below has carriage
>-returns for formatting reasons):<br>
>-      </small><small>set jardir=/local/derbyjar<br>
>-set
>-CLASSPATH="$jardir/derby.jar:$jardir/derbytools.jar:$jardir/derbynet.jar:$jardir/db2jcc.jar:<br>
>-$jardir/db2jcc_license_c.jar:$jardir/derbyTesting.jar:/local/derby/tools/java/jakarta-oro-2.0.8.jar:<br>
>-$jardir/derbyLocale_de_DE.jar:$jardir/derbyLocale_es.jar:$jardir/derbyLocale_fr.jar:<br>
>-$jardir/derbyLocale_it.jar:$jardir/derbyLocale_ja_JP.jar:$jardir/derbyLocale_ko_KR.jar:<br>
>-$jardir/derbyLocale_pt_BR.jar:$jardir/derbyLocale_zh_CN.jar:$jardir/derbyLocale_zh_TW.jar:<br>
>-$CLASSPATH</small><br>
>-      <small>set PATH=/local/jdk141/bin:$PATH</small><br>
>-      </td>
>-    </tr>
>-  </tbody>
>+
>+<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp;
>+<span class=GramE>main</span> derby package classes</span></p>
>+
>+<ul type=disc>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l14 level2 lfo3;tab-stops:list 1.0in'><span class=SpellE><span
>+      style='font-size:10.0pt'>derbytools.jar</span></span></li>
>+ </ul>
>+</ul>
>+
>+<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp;
>+<span class=GramE>derby</span> tools classes for tools like <span class=SpellE>ij</span>
>+and <span class=SpellE>dblook</span></span></p>
>+
>+<ul type=disc>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l14 level2 lfo3;tab-stops:list 1.0in'><span class=SpellE><span
>+      style='font-size:10.0pt'>derbynet.jar</span></span></li>
>+ </ul>
>+</ul>
>+
>+<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp;
>+<span class=GramE>derby</span> network server classes<o:p></o:p></span></p>
>+
>+<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt'><o:p>&nbsp;</o:p></span></p>
>+
>+<ul type=disc>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l14 level2 lfo3;tab-stops:list 1.0in'><span
>+      style='font-size:10.0pt'>derbyclient.jar </span></li>
>+ </ul>
>+</ul>
>+
>+<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp;
>+<span class=GramE>derby</span> derby client classes<o:p></o:p></span></p>
>+
>+<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt'><o:p>&nbsp;</o:p></span></p>
>+
>+<ul type=disc>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l14 level2 lfo3;tab-stops:list 1.0in'><span
>+      style='font-size:10.0pt'>db2jcc.jar and db2jcc_license_c.jar </span></li>
>+ </ul>
>+</ul>
>+
>+<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp;
>+<span class=GramE>IBM Universal JDBC Driver classes.</span> (See IBM <a
>+href="http://www-106.ibm.com/developerworks/db2/downloads/jcc/"><span
>+class=SpellE>developerworks</span></a> for download)</span></p>
>+
>+<ul type=disc>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l14 level2 lfo3;tab-stops:list 1.0in'><span class=SpellE><span
>+      style='font-size:10.0pt'>derbyLocale</span></span><span style='font-size:
>+      10.0pt'>_*.jar</span></li>
>+ </ul>
>+</ul>
>+
>+<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp;
>+<span class=GramE>locale</span> files holding translated messages.</span></p>
>+
>+<p>For example:</p>
>+
>+<div style='margin-left:35.1pt'>
>+
>+<table class=MsoNormalTable border=1 cellpadding=0 width=567 style='width:425.0pt;
>+ mso-cellspacing:1.5pt;mso-padding-alt:1.5pt 1.5pt 1.5pt 1.5pt'>
>+ <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
>+  <td valign=top style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
>+  <p class=MsoNormal><span style='font-size:10.0pt'>(note that $<span
>+  class=SpellE>jardir</span> is only a convenience variable and that the
>+  command below has carriage returns for formatting reasons):<br>
>+  set <span class=SpellE>jardir</span>=/local/<span class=SpellE>derbyjar</span><br>
>+  set CLASSPATH=&quot;$jardir/derby.jar:$jardir/derbytools.jar:$jardir/derbynet.jar:$jardir/derbyclient.jar:$jardir/db2jcc.jar:<br>
>+  $jardir/db2jcc_license_c.jar:$jardir/derbyTesting.jar:/local/derby/tools/java/jakarta-oro-2.0.8.jar:<br>
>+  $jardir/derbyLocale_de_DE.jar:$jardir/derbyLocale_es.jar:$jardir/derbyLocale_fr.jar:<br>
>+  $jardir/derbyLocale_it.jar:$jardir/derbyLocale_ja_JP.jar:$jardir/derbyLocale_ko_KR.jar:<br>
>+  $jardir/derbyLocale_pt_BR.jar:$jardir/derbyLocale_zh_CN.jar:$jardir/derbyLocale_zh_TW.jar:<br>
>+  $CLASSPATH</span><br>
>+  <span style='font-size:10.0pt'>set PATH=/local/jdk141/bin:$PATH</span></p>
>+  </td>
>+ </tr>
> </table>
>+
> </div>
>-<p>
>-To run 1 test:
>-</p>
>-<table
>- style="text-align: left; width: 514px; height: 32px; margin-left: 40px;"
>- border="1" cellpadding="2" cellspacing="2">
>-  <tbody>
>-    <tr>
>-      <td style="vertical-align: top;">syntax:<br>
>-&nbsp;&nbsp;&nbsp; <small>java
>--D&lt;testproperty&gt;
>-org.apache.derbyTesting.functionTests.harness.RunTest
>-&lt;testdir&gt;/&lt;testname&gt;</small><br>
>-      <small>where <br>
>-      </small>
>-      <ul>
>-        <li><small>&nbsp;&nbsp; &lt;testproperty&gt; are test specific
>-properties, such as
>-'framework' for the RunTest class. </small></li>
>-        <li><small>&nbsp;&nbsp; &lt;testdir&gt; is one of the
>-directories under
>-functionTests/tests where the actual test is located</small></li>
>-        <li><small>&nbsp;&nbsp; &lt;testname&gt; is the actual name of
>-the test</small></li>
>-      </ul>
>-      <small>examples:<br>
>-to run the test supersimple against the embedded driver:<br>
>-      </small>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <small>java
>-org.apache.derbyTesting.functionTests.harness.RunTest
>-lang/supersimple.sql<br>
>-      <br>
>-To run a test with network server, add -Dframework=DerbyNet to the run.
>-The test harness will to start
>-network server at port 1527 or connect to a running one, run the test,
>-and stop network server thereafter.<br>
>-for example:<br>
>-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; java </small><small>-Dframework=DerbyNet
>-      </small><small>org.apache.derbyTesting.functionTests.harness.RunTest
>-lang/supersimple.sql<br>
>-      </small><small> </small></td>
>-    </tr>
>-  </tbody>
>+
>+<p>To run 1 test: </p>
>+
>+<table class=MsoNormalTable border=1 cellpadding=0 width=602 style='width:451.3pt;
>+ mso-cellspacing:1.5pt;margin-left:35.1pt;mso-padding-alt:1.5pt 1.5pt 1.5pt 1.5pt'>
>+ <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
>+  <td valign=top style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
>+  <p class=MsoNormal>syntax:<br>
>+  &nbsp;&nbsp;&nbsp; <span style='font-size:10.0pt'>java -D&lt;<span
>+  class=SpellE>testproperty</span>&gt; <span class=SpellE>org.apache.derbyTesting.functionTests.harness.RunTest</span>
>+  &lt;<span class=SpellE>testdir</span>&gt;/&lt;<span class=SpellE>testname</span>&gt;</span><br>
>+  <span style='font-size:10.0pt'>where </span></p>
>+  <ul type=disc>
>+   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+       auto;mso-list:l9 level1 lfo5;tab-stops:list .5in'><span
>+       style='font-size:10.0pt'>&nbsp;&nbsp; &lt;<span class=SpellE><span
>+       class=GramE>testproperty</span></span>&gt; are test specific properties,
>+       such as 'framework' for the <span class=SpellE>RunTest</span> class. </span></li>
>+   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+       auto;mso-list:l9 level1 lfo5;tab-stops:list .5in'><span
>+       style='font-size:10.0pt'>&nbsp;&nbsp; &lt;<span class=SpellE>testdir</span>&gt;
>+       is one of the directories under <span class=SpellE>functionTests</span>/tests
>+       where the actual test is located</span></li>
>+   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+       auto;mso-list:l9 level1 lfo5;tab-stops:list .5in'><span
>+       style='font-size:10.0pt'>&nbsp;&nbsp; &lt;<span class=SpellE>testname</span>&gt;
>+       is the actual name of the test</span></li>
>+  </ul>
>+  <p class=MsoNormal><span class=GramE><span style='font-size:10.0pt'>examples</span></span><span
>+  style='font-size:10.0pt'>:<br>
>+  to run the test <span class=SpellE>supersimple</span> against the embedded
>+  driver:<br>
>+  </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style='font-size:10.0pt'>java <span
>+  class=SpellE>org.apache.derbyTesting.functionTests.harness.RunTest</span> <span
>+  class=SpellE>lang/supersimple.sql</span><br>
>+  <br>
>+  To run a test with network server, add -<span class=SpellE>Dframework</span>=<span
>+  class=SpellE>DerbyNet</span> to the run. The test harness will to start
>+  network server at port 1527 or connect to a running one, run the test, and
>+  stop network server thereafter.<br>
>+  for example:<br>
>+  &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; java -<span class=SpellE>Dframework</span>=<span
>+  class=SpellE>DerbyNet</span> <span class=SpellE>org.apache.derbyTesting.functionTests.harness.RunTest</span>
>+  <span class=SpellE>lang/supersimple.sql</span></span></p>
>+  </td>
>+ </tr>
> </table>
>-<p>
>-A successful run will have a .pass file, and the output to the
>-console will show no difference between expected and actual test
>-result. A failed test run will have at least a .fail file and the
>-output to the console will show the difference between expected and
>-actual result.<br>
>-</p>
>-<p>
>-To run a suite:
>-</p>
>-<table
>- style="text-align: left; width: 546px; height: 32px; margin-left: 40px;"
>- border="1" cellpadding="2" cellspacing="2">
>-  <tbody>
>-    <tr>
>-      <td style="vertical-align: top;">syntax:<br>
>-&nbsp; <small>java
>--D&lt;testproperty&gt;
>-org.apache.derbyTesting.functionTests.harness.RunSuite&nbsp;
>-&lt;testsuite&gt;</small><br>
>-      <small>where <br>
>-      </small>
>-      <ul>
>-        <li><small>&nbsp;&nbsp; &lt;testproperty&gt; are test specific
>-properties, such as
>-'verbose' for the RunSuite class. </small></li>
>-        <li><small>&nbsp;&nbsp; &lt;testsuite&gt; is one of the suites
>-under
>-org/apache/derbyTesting/suites</small></li>
>-      </ul>
>-      <small>for example for running&nbsp; the suite derbylang:<br>
>-      </small><small>&nbsp;&nbsp; java -Dverbose=true
>-org.apache.derbyTesting.functionTests.harness.RunSuite derbylang</small><br>
>-      </td>
>-    </tr>
>-  </tbody>
>+
>+<p>A successful run will have a .pass file, and the output to the console will
>+show no difference between expected and actual test result. A failed test run
>+will have at least a .fail file and the output to the console will show the
>+difference between expected and actual result.</p>
>+
>+<p>To run a suite: </p>
>+
>+<table class=MsoNormalTable border=1 cellpadding=0 width=639 style='width:479.4pt;
>+ mso-cellspacing:1.5pt;margin-left:35.1pt;mso-padding-alt:1.5pt 1.5pt 1.5pt 1.5pt'>
>+ <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
>+  <td valign=top style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
>+  <p class=MsoNormal>syntax:<br>
>+  &nbsp; <span style='font-size:10.0pt'>java -D&lt;<span class=SpellE>testproperty</span>&gt;
>+  <span class=SpellE>org.apache.derbyTesting.functionTests.harness.RunSuite</span>&nbsp;
>+  &lt;<span class=SpellE>testsuite</span>&gt;</span><br>
>+  <span style='font-size:10.0pt'>where </span></p>
>+  <ul type=disc>
>+   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+       auto;mso-list:l15 level1 lfo6;tab-stops:list .5in'><span
>+       style='font-size:10.0pt'>&nbsp;&nbsp; &lt;<span class=SpellE><span
>+       class=GramE>testproperty</span></span>&gt; are test specific properties,
>+       such as 'verbose' for the <span class=SpellE>RunSuite</span> class. </span></li>
>+   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+       auto;mso-list:l15 level1 lfo6;tab-stops:list .5in'><span
>+       style='font-size:10.0pt'>&nbsp;&nbsp; &lt;<span class=SpellE>testsuite</span>&gt;
>+       is one of the suites under org/apache/<span class=SpellE>derbyTesting</span>/suites</span></li>
>+  </ul>
>+  <p class=MsoNormal><span style='font-size:10.0pt'>for example for
>+  running&nbsp; the suite <span class=SpellE>derbylang</span>:<br>
>+  &nbsp;&nbsp; java -<span class=SpellE>Dverbose</span>=true <span
>+  class=SpellE>org.apache.derbyTesting.functionTests.harness.RunSuite</span> <span
>+  class=SpellE>derbylang</span></span></p>
>+  </td>
>+ </tr>
> </table>
>-<p>
>-Each suite run should be started in a clean directory. The test
>-output directory will not be emptied out before testing is
>-begun, although individual test files and result files will be cleaned
>-out and overwritten.&nbsp;
>-</p>
>-<p>
>-The suites provided are:
>-</p>
>-<ul>
>-  <li>derbylang: <br>
>-  </li>
>-  <ul>
>-    <li>basic functionality of&nbsp;
>-language implementation in derby. <br>
>-    </li>
>-    <li>Mostly .sql type tests. <br>
>-    </li>
>-    <li>tested on a variety of hardware takes from 1.15m to 2.00 hours<br>
>-    </li>
>+
>+<p>Each suite run should be started in a clean directory. The test output
>+directory will not be emptied out before testing is begun, although individual
>+test files and result files will be cleaned out and overwritten.&nbsp; </p>
>+
>+<p>The suites provided are: </p>
>+
>+<ul type=disc>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'><span class=SpellE>derbylang</span>:
>+     </li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'><span class=GramE>basic</span>
>+      functionality of&nbsp; language implementation in derby. </li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>Mostly .<span
>+      class=SpellE>sql</span> type tests. </li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>tested on a variety of
>+      hardware takes from 1.15m to 2.00 hours</li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'><span class=SpellE>derbynetclientmats</span></li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'><span class=GramE>basic</span>
>+      derby network server tests using derby client</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>variety of tests,
>+      including some from <span class=SpellE>derbylang</span> suite</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>tested on a variety of
>+      hardware takes from 15 to 30 minutes</li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'><span class=SpellE>derbynetmats</span></li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'><span class=GramE>basic</span>
>+      network server tests using IBM JDBC driver</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>variety of tests,
>+      including some from <span class=SpellE>derbylang</span> suite</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>tested on a variety of
>+      hardware takes from 15 to 30 minutes</li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'><span class=SpellE>derbynetautostart</span></li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>tests <span
>+      class=SpellE>networkserver</span> functionality without requiring <span
>+      class=SpellE>networkserver</span> framework</li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'><span class=SpellE>propertyinfo</span></li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>runs test to get
>+      property information</li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'><span class=SpellE>storeall</span></li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>tests for storage area</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>includes:</li>
>+  <ul type=square>
>+   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+       auto;mso-list:l8 level3 lfo7;tab-stops:list 1.5in'><span class=SpellE><span
>+       class=GramE>storemats</span></span>: most basic quick verification
>+       tests.</li>
>+   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+       auto;mso-list:l8 level3 lfo7;tab-stops:list 1.5in'><span class=SpellE>storemore</span>:
>+       more extensive storage tests</li>
>+   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+       auto;mso-list:l8 level3 lfo7;tab-stops:list 1.5in'><span class=SpellE>storetests</span>:
>+       set of store tests grouped together because they do not each need to
>+       create a new database</li>
>   </ul>
>-  <li>derbynetmats</li>
>-  <ul>
>-    <li>basic network server tests.</li>
>-    <li>variety of tests, including some from derbylang suite</li>
>-    <li>tested on a variety of hardware takes from 15 to 30 minutes</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>tested on a variety of
>+      hardware takes from 25 to 50 minutes</li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'><span class=SpellE>xa</span></li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'><span class=GramE>tests</span>
>+      the <span class=SpellE>xa</span> implementation. There is both a storage
>+      and language element to these tests</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>tested on a variety of
>+      hardware takes from <st1:time Minute="0" Hour="14">2</st1:time> to 4
>+      minutes</li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'><span class=SpellE>storeunit</span></li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'><span class=GramE>tests</span>
>+      store-related unit tests. Runs from <st1:time Minute="0" Hour="8">8</st1:time>
>+      to 15 minutes</li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'>unit </li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'><span class=GramE>tests</span>
>+      4 general functionality unit tests. runs from <st1:time Minute="0"
>+      Hour="17">5</st1:time> to 10 minutes</li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'><span class=SpellE>jdbcapi</span></li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'><span class=GramE>tests</span>
>+      implementation of <span class=SpellE>jdbc</span> <span class=SpellE>api</span>
>+      such as Connection class implementation, Metadata etc.</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>takes from 20 to 40
>+      minutes</li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'>jdbc20</li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>tests implementation
>+      of features from the <span class=SpellE>jdbc</span> 20 specification</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>takes 2 to 5 minutes</li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'>jdk14</li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>tests implementation
>+      of features from the jdk14 specification</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>takes 2 to 5 minutes</li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'>demo, <span class=SpellE>simpledemo</span></li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>tests the <span
>+      class=SpellE>SimpleApp</span> example </li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'><span class=SpellE><span
>+      class=GramE>simpledemo</span></span> runs <span class=SpellE>SimpleApp</span>
>+      itself - and thus has a different default resource package name (namely,
>+      no package) than all the other tests. Hence it needed its own <span
>+      class=SpellE>suite.properties</span> file.</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>takes 30 to 1 minute</li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'><span class=SpellE>nist</span></li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>test obtained from the
>+      NIST SQL suite v 6.0</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>takes 5 to 10 minutes</li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'><span class=SpellE>encryptionAll</span>
>+     </li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>takes 30 to 55 minutes</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>runs a few encryption
>+      tests plus the following encryption tests suites</li>
>+  <ul type=square>
>+   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+       auto;mso-list:l8 level3 lfo7;tab-stops:list 1.5in'>encryption</li>
>+   <ul type=square>
>+    <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+        auto;mso-list:l8 level4 lfo7;tab-stops:list 2.0in'>runs the <span
>+        class=SpellE>storemats</span>, <span class=SpellE>sysinfo</span> and
>+        multi suites in encryption scheme <span class=SpellE>DESede</span></li>
>+    <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+        auto;mso-list:l8 level4 lfo7;tab-stops:list 2.0in'>takes 25 to 40
>+        minutes</li>
>+   </ul>
>+   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+       auto;mso-list:l8 level3 lfo7;tab-stops:list 1.5in'><span class=SpellE>encryptionAES</span>
>+       - tests AES encryption scheme</li>
>+   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+       auto;mso-list:l8 level3 lfo7;tab-stops:list 1.5in'><span class=SpellE>encryptionBlowfish</span>
>+       - tests Blowfish encryption scheme</li>
>+   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+       auto;mso-list:l8 level3 lfo7;tab-stops:list 1.5in'><span class=SpellE>encryptionCFB</span>
>+       - tests CFB encryption scheme</li>
>+   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+       auto;mso-list:l8 level3 lfo7;tab-stops:list 1.5in'><span class=SpellE>encryptionDES</span>
>+       - tests DES encryption scheme</li>
>+   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+       auto;mso-list:l8 level3 lfo7;tab-stops:list 1.5in'><span class=SpellE>encryptionECB</span>
>+       - tests ECB encryption scheme</li>
>+   <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+       auto;mso-list:l8 level3 lfo7;tab-stops:list 1.5in'><span class=SpellE>encryptionOFB</span>
>+       - tests OFB encryption scheme</li>
>   </ul>
>-  <li>derbynetautostart</li>
>-  <ul>
>-    <li>tests networkserver functionality without requiring
>-networkserver framework<br>
>-    </li>
>-  </ul>
>-  <li>propertyinfo</li>
>-  <ul>
>-    <li>runs test to get property information<br>
>-    </li>
>-  </ul>
>-  <li>storeall</li>
>-  <ul>
>-    <li>tests for storage area</li>
>-    <li>includes:</li>
>-    <ul>
>-      <li>storemats: most basic quick verification tests.<br>
>-      </li>
>-      <li>storemore: more extensive storage tests</li>
>-      <li>storetests: set of store tests grouped together because they
>-do not each need to create a new database</li>
>-    </ul>
>-    <li>tested on a variety of hardware takes from 25 to 50 minutes<br>
>-    </li>
>-  </ul>
>-  <li>xa</li>
>-  <ul>
>-    <li>tests the xa implementation. There is both a storage and
>-language element to these tests</li>
>-    <li>tested on a variety of hardware takes from 2 to 4 minutes<br>
>-    </li>
>-  </ul>
>-  <li>storeunit</li>
>-  <ul>
>-    <li>tests store-related unit tests. Runs from 8 to 15 minutes<br>
>-    </li>
>-  </ul>
>-  <li>unit <br>
>-  </li>
>-  <ul>
>-    <li>tests 4 general functionality unit tests. runs from 5 to 10
>-minutes<br>
>-    </li>
>-  </ul>
>-  <li>jdbcapi</li>
>-  <ul>
>-    <li>tests implementation of jdbc api such as Connection class
>-implementation, Metadata etc.</li>
>-    <li>takes from 20 to 40 minutes<br>
>-    </li>
>-  </ul>
>-  <li>jdbc20<br>
>-  </li>
>-  <ul>
>-    <li>tests implementation of features from the jdbc 20 specification</li>
>-    <li>takes 2 to 5 minutes<br>
>-    </li>
>-  </ul>
>-  <li>jdk14</li>
>-  <ul>
>-    <li>tests implementation of features from the jdk14 specification</li>
>-    <li>takes 2 to 5 minutes<br>
>-    </li>
>-  </ul>
>-  <li>demo, simpledemo<br>
>-  </li>
>-  <ul>
>-    <li>tests the SimpleApp example <br>
>-    </li>
>-    <li>simpledemo runs SimpleApp itself - and thus has a different
>-default resource package name (namely, no package) than all the other
>-tests. Hence it needed its own suite.properties file.</li>
>-    <li>takes 30 to 1 minute</li>
>-  </ul>
>-  <li>nist</li>
>-  <ul>
>-    <li>test obtained from the NIST SQL suite v 6.0</li>
>-    <li>takes 5 to 10 minutes<br>
>-    </li>
>-  </ul>
>-  <li>encryptionAll <br>
>-  </li>
>-  <ul>
>-    <li>takes 30 to 55 minutes</li>
>-    <li>runs a few encryption tests plus the following encryption tests
>-suites<br>
>-    </li>
>-  </ul>
>-  <ul>
>-    <ul>
>-      <li>encryption</li>
>-    </ul>
>-    <ul>
>-      <ul>
>-        <li>runs the storemats, sysinfo and multi suites in encryption
>-scheme DESede<br>
>-        </li>
>-      </ul>
>-      <ul>
>-        <li>takes 25 to 40 minutes</li>
>-      </ul>
>-    </ul>
>-    <ul>
>-      <li>encryptionAES - tests AES encryption scheme<br>
>-      </li>
>-    </ul>
>-    <ul>
>-      <li>encryptionBlowfish - tests Blowfish encryption scheme<br>
>-      </li>
>-    </ul>
>-    <ul>
>-      <li>encryptionCFB - tests CFB encryption scheme<br>
>-      </li>
>-    </ul>
>-    <ul>
>-      <li>encryptionDES - tests DES encryption scheme<br>
>-      </li>
>-    </ul>
>-    <ul>
>-      <li>encryptionECB - tests ECB encryption scheme<br>
>-      </li>
>-    </ul>
>-    <ul>
>-      <li>encryptionOFB - tests OFB encryption scheme</li>
>-    </ul>
>-  </ul>
>-  <ul>
>-  </ul>
>-  <li>multi</li>
>-  <ul>
>-    <li>runs a simple test case with 10 threads</li>
>-    <li>runs for 10 minutes, then shuts down all threads<br>
>-    </li>
>-  </ul>
>-  <li>derbytools<br>
>-  </li>
>-  <ul>
>-    <li>tests for dblook, ij, and import/export utilities</li>
>-    <li>takes 5 to 10 minutes<br>
>-    </li>
>-  </ul>
>-  <li>i18nTest</li>
>-  <ul>
>-    <li>tests that characters outside simple ascii scope do not result in errors.
>-    <li>takes 5 to 10 minutes<br>
>-    </li>
>-  </ul>
>-  <li>derbyall</li>
>-  <ul>
>-    <li>contains all suites typically run by all developers<br>
>-    </li>
>-  </ul>
>-  <ul>
>-    <li>tested on a variety of hardware takes from 3.00 - 6.00 hours </li>
>-  </ul>
>-  <li><a href="#Note1:"><small>See Note1</small></a><br>
>-  </li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'>multi</li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>runs a simple test
>+      case with 10 threads</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>runs for 10 minutes,
>+      then shuts down all threads</li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'><span class=SpellE>derbytools</span></li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>tests for <span
>+      class=SpellE>dblook</span>, <span class=SpellE>ij</span>, and
>+      import/export utilities</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>takes 5 to 10 minutes</li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'>i18nTest</li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'><span class=GramE>tests</span>
>+      that characters outside simple <span class=SpellE>ascii</span> scope do
>+      not result in errors. </li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>takes 5 to 10 minutes</li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'><span class=SpellE>derbyall</span></li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>contains all suites
>+      typically run by all developers</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l8 level2 lfo7;tab-stops:list 1.0in'>tested on a variety of
>+      hardware takes from 3.00 - 6.00 hours </li>
>+ </ul>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l8 level1 lfo7;tab-stops:list .5in'><a href="#Note1:"><span
>+     style='font-size:10.0pt'>See Note1</span></a></li>
> </ul>
>-<p>
>-A successful run with all tests passing will have no *.fail files
>-created, the &lt;testsuite&gt;_fail.txt file will be empty, and the
>-&lt;testsuite&gt;_report.txt file will show no failures in the Summary
>-results section.
>-</p>
>-<table
>- style="text-align: left; width: 556px; height: 32px; margin-left: 40px;"
>- border="1" cellpadding="2" cellspacing="2">
>-  <tbody>
>-    <tr>
>-      <td style="vertical-align: top;"><small>-------snippet from
>-derbylang_report.txt -----<br>
>------------------------------------------------------------<br>
>-Summary results:<br>
>-      <br>
>-Test Run Started: 2004-11-10 11:27:55.0<br>
>-Test Run Duration: 00:04:09<br>
>-      <br>
>-129 Tests Run<br>
>-100% Pass (129 tests passed)<br>
>-&nbsp;0% Fail (0 tests failed)<br>
>-0 Suites skipped</small><br>
>-      </td>
>-    </tr>
>-  </tbody>
>+
>+<p>A successful run with all tests passing will have no *.fail files created,
>+the &lt;<span class=SpellE>testsuite</span>&gt;_fail.txt file will be empty,
>+and the &lt;<span class=SpellE>testsuite</span>&gt;_report.txt file will show
>+no failures in the Summary results section. </p>
>+
>+<table class=MsoNormalTable border=1 cellpadding=0 width=651 style='width:488.2pt;
>+ mso-cellspacing:1.5pt;margin-left:35.1pt;mso-padding-alt:1.5pt 1.5pt 1.5pt 1.5pt'>
>+ <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
>+  <td valign=top style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
>+  <p class=MsoNormal><span style='font-size:10.0pt'>-------snippet from
>+  derbylang_report.txt -----<br>
>+  -----------------------------------------------------------<br>
>+  Summary results:<br>
>+  <br>
>+  Test Run Started: 2004-11-10 11:27:55.0<br>
>+  Test Run Duration: </span><st1:time Minute="4" Hour="0"><span
>+   style='font-size:10.0pt'>00:04:09</span></st1:time><span style='font-size:
>+  10.0pt'><br>
>+  <br>
>+  129 Tests Run<br>
>+  100% Pass (129 tests passed)<br>
>+  &nbsp;0% Fail (0 tests failed)<br>
>+  0 Suites skipped</span></p>
>+  </td>
>+ </tr>
> </table>
>-<br>
>-<h3><a name="building_derbyTesting__running_with"></a>2.2 building
>-derbyTesting package<br>
>-</h3>
>-<p>
>-To build the derbyTesting package:<br>
>-</p>
>-<ul>
>-  <li>follow all the steps in the derby <a
>- href="http://incubator.apache.org/derby/BUILDING.html">BUILDING.txt</a>.</li>
>+
>+<p class=MsoNormal><o:p>&nbsp;</o:p></p>
>+
>+<h3><a name="building_derbyTesting__running_with"></a>2.2 building <span
>+class=SpellE>derbyTesting</span> package</h3>
>+
>+<p>To build the <span class=SpellE>derbyTesting</span> package:</p>
>+
>+<ul type=disc>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l20 level1 lfo8;tab-stops:list .5in'><span class=GramE>follow</span>
>+     all the steps in the derby <a
>+     href="http://incubator.apache.org/derby/BUILDING.html">BUILDING.txt</a>.</li>
> </ul>
>-<p>This is some typical
>-output for the ant build process.<br>
>-</p>
>-<table
>- style="text-align: left; width: 516px; height: 32px; margin-left: 40px;"
>- border="1" cellpadding="2" cellspacing="2">
>-  <tbody>
>-    <tr>
>-      <td style="vertical-align: top;"><small>&gt; cd
>-/local/derby/java/testing<br>
>-&gt; ant.ksh<br>
>-Searching for build.xml ...<br>
>-Buildfile: /local/derby/java/testing/build.xml<br>
>-      <br>
>-compile:<br>
>-&nbsp;&nbsp;&nbsp; [javac] Compiling 30 source files to
>-/local/derby/classes<br>
>-...<br>
>-&nbsp;&nbsp;&nbsp;&nbsp; [copy] Copying 1 file to
>-/local/derby/classes/org/apache/derbyTesting/funct<br>
>-ionTests<br>
>-      <br>
>-BUILD SUCCESSFUL<br>
>-Total time: 10 minutes 3 seconds</small></td>
>-    </tr>
>-  </tbody>
>+
>+<p>This is some typical output for the ant build process.</p>
>+
>+<table class=MsoNormalTable border=1 cellpadding=0 width=604 style='width:453.05pt;
>+ mso-cellspacing:1.5pt;margin-left:35.1pt;mso-padding-alt:1.5pt 1.5pt 1.5pt 1.5pt'>
>+ <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
>+  <td valign=top style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
>+  <p class=MsoNormal><span style='font-size:10.0pt'>&gt; <span class=SpellE>cd</span>
>+  /local/derby/java/testing<br>
>+  &gt; <span class=SpellE>ant.ksh</span><br>
>+  Searching for <span class=SpellE>build.xml</span> ...<br>
>+  <span class=SpellE>Buildfile</span>: /local/derby/java/testing/<span
>+  class=SpellE>build.xml</span><br>
>+  <br>
>+  compile:<br>
>+  &nbsp;&nbsp;&nbsp; [<span class=SpellE>javac</span>] Compiling 30 source
>+  files to /local/derby/classes<br>
>+  ...<br>
>+  &nbsp;&nbsp;&nbsp;&nbsp; [copy] Copying 1 file to
>+  /local/derby/classes/org/apache/<span class=SpellE>derbyTesting/funct</span><br>
>+  <span class=SpellE>ionTests</span><br>
>+  <br>
>+  BUILD SUCCESSFUL<br>
>+  Total time: 10 minutes 3 seconds</span></p>
>+  </td>
>+ </tr>
> </table>
>-<p>Once you have built the derbyTesting package built, you can make a
>-derbyTesting.jar use the jar build target at the ${derby.source}level.
>+
>+<p>Once you have built the <span class=SpellE>derbyTesting</span> package
>+built, you can make a <span class=SpellE>derbyTesting.jar</span> use the jar
>+build target at the ${<span class=SpellE>derby.source</span><span class=GramE>}level</span>.
> </p>
>-<p>
>-This will look something like:
>-</p>
>-<table
>- style="text-align: left; width: 528px; height: 32px; margin-left: 40px;"
>- border="1" cellpadding="2" cellspacing="2">
>-  <tbody>
>-    <tr>
>-      <td style="vertical-align: top;"><small>c:&gt; ant derbytestingjar<br>
>-Searching for build.xml ...<br>
>-Buildfile: C:\derby\build.xml<br>
>-      <br>
>-initjars:<br>
>-&nbsp;&nbsp;&nbsp; [mkdir] Created dir: C:\derby\jars\<br>
>-&nbsp;&nbsp;&nbsp; [mkdir] Created dir: C:\derby\jars\lists<br>
>-&nbsp;&nbsp;&nbsp;&nbsp; [echo] Revision number set to exported<br>
>-&nbsp;&nbsp;&nbsp;&nbsp; [echo] .<br>
>-      <br>
>-derbytestingjar:<br>
>-&nbsp;&nbsp;&nbsp;&nbsp; [echo] Beginning derbytesting.jar build<br>
>-.....<br>
>-BUILD SUCCESSFULL<br>
>-      </small></td>
>-    </tr>
>-  </tbody>
>+
>+<p>This will look something like: </p>
>+
>+<table class=MsoNormalTable border=1 cellpadding=0 width=618 style='width:463.6pt;
>+ mso-cellspacing:1.5pt;margin-left:35.1pt;mso-padding-alt:1.5pt 1.5pt 1.5pt 1.5pt'>
>+ <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
>+  <td valign=top style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
>+  <p class=MsoNormal><span class=GramE><span style='font-size:10.0pt'>c:</span></span><span
>+  style='font-size:10.0pt'>&gt; ant <span class=SpellE>derbytestingjar</span><br>
>+  Searching for <span class=SpellE>build.xml</span> ...<br>
>+  <span class=SpellE>Buildfile</span>: C:\derby\build.xml<br>
>+  <br>
>+  <span class=SpellE>initjars</span>:<br>
>+  &nbsp;&nbsp;&nbsp; [<span class=SpellE>mkdir</span>] Created dir:
>+  C:\derby\jars\<br>
>+  &nbsp;&nbsp;&nbsp; [<span class=SpellE>mkdir</span>] Created dir:
>+  C:\derby\jars\lists<br>
>+  &nbsp;&nbsp;&nbsp;&nbsp; [echo] Revision number set to exported<br>
>+  &nbsp;&nbsp;&nbsp;&nbsp; [echo] .<br>
>+  <br>
>+  <span class=SpellE><span class=GramE>derbytestingjar</span></span>:<br>
>+  &nbsp;&nbsp;&nbsp;&nbsp; [echo] Beginning <span class=SpellE>derbytesting.jar</span>
>+  build<br>
>+  .....<br>
>+  BUILD SUCCESSFULL</span></p>
>+  </td>
>+ </tr>
> </table>
>-<br>
>-<br>
>-<h2><a class="mozTocH2" name="mozTocId582299"></a>3. <a name="run"></a>More
>-details on running the derby functional tests</h2>
>-<p>
>-The functional tests are run using a class called 'RunTest'. This class
>-calls a number of other classes. A group of tests, called a 'suite' is
>-executed using a class called 'RunSuite'.<br>
>-</p>
>-<h3><a class="mozTocH3" name="mozTocId595945"></a>3.1 <a name="run1"></a>Running
>-1 test</h3>
>-<p>See section 2.1 for the basic steps to run 1 test.
>-</p>
>-<p>To pass on system level properties to the test harness, use the test
>-harness property -DtestSpecialFlags. For
>-example, to run a test forcing
>-the message text to be retrieved from the network server:
>-</p>
>-<table
>- style="text-align: left; width: 558px; height: 32px; margin-left: 40px;"
>- border="1" cellpadding="2" cellspacing="2">
>-  <tbody>
>-    <tr>
>-      <td style="vertical-align: top;"> <small>java
>--Dframework=DerbyNet
>--DtestSpecialFlags=RetrieveMessagesFromServerOnGetMessage=true&nbsp;
>-org.apache.derbyTesting.functionTests.harness.RunTest
>-lang/supersimple.sql</small></td>
>-    </tr>
>-  </tbody>
>+
>+<p class=MsoNormal style='margin-bottom:12.0pt'><o:p>&nbsp;</o:p></p>
>+
>+<h2><a name=mozTocId582299></a>3. <a name=run></a>More details on running the
>+derby functional tests</h2>
>+
>+<p>The functional tests are run using a class called '<span class=SpellE>RunTest</span>'.
>+This class calls a number of other classes. A group of tests, called a 'suite'
>+is executed using a class called '<span class=SpellE>RunSuite</span>'.</p>
>+
>+<h3><a name=mozTocId595945></a>3.1 <a name=run1></a>Running 1 test</h3>
>+
>+<p>See section 2.1 for the basic steps to run 1 test. </p>
>+
>+<p>To pass on system level properties to the test harness, use the test harness
>+property -<span class=SpellE>DtestSpecialFlags</span>. For example, to run a
>+test forcing the message text to be retrieved from the network server: </p>
>+
>+<table class=MsoNormalTable border=1 cellpadding=0 width=653 style='width:489.95pt;
>+ mso-cellspacing:1.5pt;margin-left:35.1pt;mso-padding-alt:1.5pt 1.5pt 1.5pt 1.5pt'>
>+ <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
>+  <td valign=top style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
>+  <p class=MsoNormal><span style='font-size:10.0pt'>java -<span class=SpellE>Dframework</span>=<span
>+  class=SpellE>DerbyNet</span> -<span class=SpellE>DtestSpecialFlags</span>=<span
>+  class=SpellE>RetrieveMessagesFromServerOnGetMessage</span>=true&nbsp; <span
>+  class=SpellE>org.apache.derbyTesting.functionTests.harness.RunTest</span> <span
>+  class=SpellE>lang/supersimple.sql</span></span></p>
>+  </td>
>+ </tr>
> </table>
>+
> <p><br>
>-Tests will be executed in the current directory. When
>-running a test
>-using the network server, i.e. -Dframework=DerbyNet, the test will run
>-in a subdirectory (automatically created) 'DerbyNet'. <small> <br>
>-<a href="#Note2:">See Note2</a>.<br>
>-</small></p>
>-<p>
>-The test will normally create the following:<br>
>-</p>
>-<ul>
>-  <li>a database. The default name is 'wombat'. However, the name may
>-be different depending on certain properties passed in to the test
>-harness.</li>
>-  <li>a .out file: the final result file</li>
>-  <li>a .tmp file; the initial result file, before any modification to
>-prevent irrelevant differences has been applied (before 'masking').</li>
>-  <li>a .diff file; the differences between the .out and the master
>-file with expected output it is compared to.</li>
>-  <li>a .pass or .fail file. This file lists the test if it passes
>-under .pass, and under .fail if the output in .out is different from
>-the expected output in the master.</li>
>+Tests will be executed in the current directory. When running a test using the
>+network server, i.e. -<span class=SpellE>Dframework</span>=<span class=SpellE>DerbyNet</span>,
>+the test will run in a subdirectory (automatically created) '<span
>+class=SpellE>DerbyNet</span>'. <span style='font-size:10.0pt'><br>
>+<a href="#Note2:">See Note2</a>.</span></p>
>+
>+<p>The test will normally create the following:</p>
>+
>+<ul type=disc>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l3 level1 lfo9;tab-stops:list .5in'><span class=GramE>a</span>
>+     database. The default name is 'wombat'. However, the name may be different
>+     depending on certain properties passed in to the test harness.</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l3 level1 lfo9;tab-stops:list .5in'>a .out file: the final result
>+     file</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l3 level1 lfo9;tab-stops:list .5in'><span class=GramE>a</span> .<span
>+     class=SpellE>tmp</span> file; the initial result file, before any
>+     modification to prevent irrelevant differences has been applied (before
>+     'masking').</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l3 level1 lfo9;tab-stops:list .5in'><span class=GramE>a</span>
>+     .diff file; the differences between the .out and the master file with
>+     expected output it is compared to.</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l3 level1 lfo9;tab-stops:list .5in'><span class=GramE>a</span>
>+     .pass or .fail file. This file lists the test if it passes under .<span
>+     class=GramE>pass,</span> and under .fail if the output in .out is
>+     different from the expected output in the master.</li>
> </ul>
>-<p>
>-possibly created:<br>
>-</p>
>-<ul>
>-  <li>additional files used in a specific test may get copied over to
>-the test directory. These normally do not get cleaned up.</li>
>-  <li>.tmpstr file is created for network server tests and is a
>-possibly
>-massaged copy of the master file the output needs to be compared with.</li>
>-  <li>.err and .out files in network server database files for any
>-additional error output.</li>
>+
>+<p><span class=GramE>possibly</span> created:</p>
>+
>+<ul type=disc>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l1 level1 lfo10;tab-stops:list .5in'><span class=GramE>additional</span>
>+     files used in a specific test may get copied over to the test directory.
>+     These normally do not get cleaned up.</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l1 level1 lfo10;tab-stops:list .5in'>.<span class=SpellE>tmpstr</span>
>+     file is created for network server tests and is a possibly massaged copy
>+     of the master file the output needs to be compared with.</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l1 level1 lfo10;tab-stops:list .5in'>.err and .out files in
>+     network server database files for any additional error output.</li>
> </ul>
>-<p>
>-When the test is successful, cleanup will occur unless the test harness
>-property -Dkeepfiles=true is used. Cleanup will attempt to cleanup all
>-files except for .pass. <small><br>
>-<a href="#Note3:_">See Note3.</a></small>
>-</p>
>-<p>
>-A successful run (this example is from a dos environment) would
>-look for instance like:
>-</p>
>-<table
>- style="text-align: left; width: 414px; height: 45px; margin-left: 80px;"
>- border="1" cellpadding="2" cellspacing="2">
>-  <tbody>
>-    <tr>
>-      <td style="vertical-align: top;"><small>c:&gt;
>-derbyTesting.functionTests.harness.RunTest lang/supersimple.sql<br>
>-C:\derby\run2<br>
>-supersimple<br>
>--- listing properties --<br>
>-derby.locks.deadlockTimeout=3<br>
>-derby.locks.waitTimeout=3<br>
>-*** Start: supersimple jdk1.4.2_03 2004-11-10 16:51:02 ***<br>
>-The test should be running...<br>
>-MasterFileName = master/supersimple.out<br>
>-*** End:&nbsp;&nbsp; supersimple jdk1.4.2_03 2004-11-10 16:51:25 ***<br>
>-      </small></td>
>-    </tr>
>-  </tbody>
>+
>+<p>When the test is successful, cleanup will occur unless the test harness
>+property -<span class=SpellE>Dkeepfiles</span>=true is used. Cleanup will attempt
>+to cleanup all files except for .pass. <span style='font-size:10.0pt'><br>
>+<a href="#Note3:_">See Note3.</a></span> </p>
>+
>+<p>A successful run (this example is from a dos environment) would look for
>+instance like: </p>
>+
>+<table class=MsoNormalTable border=1 cellpadding=0 width=485 style='width:363.5pt;
>+ mso-cellspacing:1.5pt;margin-left:70.25pt;mso-padding-alt:1.5pt 1.5pt 1.5pt 1.5pt'>
>+ <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
>+  <td valign=top style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
>+  <p class=MsoNormal><span class=GramE><span style='font-size:10.0pt'>c:</span></span><span
>+  style='font-size:10.0pt'>&gt; <span class=SpellE>derbyTesting.functionTests.harness.RunTest</span>
>+  <span class=SpellE>lang/supersimple.sql</span><br>
>+  C:\derby\run2<br>
>+  <span class=SpellE>supersimple</span><br>
>+  -- listing properties --<br>
>+  <span class=SpellE>derby.locks.deadlockTimeout</span>=3<br>
>+  <span class=SpellE>derby.locks.waitTimeout</span>=3<br>
>+  *** Start: <span class=SpellE>supersimple</span> jdk1.4.2_03 2004-11-10 </span><st1:time
>+  Minute="51" Hour="16"><span style='font-size:10.0pt'>16:51:02</span></st1:time><span
>+  style='font-size:10.0pt'> ***<br>
>+  The test should be running...<br>
>+  <span class=SpellE>MasterFileName</span> = master/<span class=SpellE>supersimple.out</span><br>
>+  *** End:&nbsp;&nbsp; <span class=SpellE>supersimple</span> jdk1.4.2_03
>+  2004-11-10 </span><st1:time Minute="51" Hour="16"><span style='font-size:
>+   10.0pt'>16:51:25</span></st1:time><span style='font-size:10.0pt'> ***</span></p>
>+  </td>
>+ </tr>
> </table>
>-<br>
>-<p>A Test Failure shows the diff, creates a .fail file, does not create
>-a .pass file, and does not cleanup any files upon completion. The
>-output might look like this:<br>
>-</p>
>-<table
>- style="text-align: left; width: 442px; height: 32px; margin-left: 80px;"
>- border="1" cellpadding="2" cellspacing="2">
>-  <tbody>
>-    <tr>
>-      <td style="vertical-align: top;"><small>&nbsp;</small><small>c:&gt;
>-derbyTesting.functionTests.harness.RunTest lang/supersimple.sql<br>
>-C:\derby\run2</small><small><br>
>-supersimple<br>
>--- listing properties --<br>
>-derby.locks.deadlockTimeout=3<br>
>-derby.locks.waitTimeout=3<br>
>-*** Start: supersimple jdk1.4.2_03 2004-11-10 16:54:39 ***<br>
>-The test should be running...<br>
>-MasterFileName = master/supersimple.out<br>
>-10 del<br>
>-&lt; 10<br>
>-10a10<br>
>-&gt; 1<br>
>-Test Failed.<br>
>-*** End:&nbsp;&nbsp; supersimple jdk1.4.2_03 2004-11-10 16:55:02 ***</small><br>
>-      </td>
>-    </tr>
>-  </tbody>
>+
>+<p class=MsoNormal><o:p>&nbsp;</o:p></p>
>+
>+<p>A Test Failure shows the diff, creates a .fail file, does not create a .pass
>+<span class=GramE>file,</span> and does not cleanup any files upon completion.
>+The output might look like this:</p>
>+
>+<table class=MsoNormalTable border=1 cellpadding=0 width=517 style='width:388.1pt;
>+ mso-cellspacing:1.5pt;margin-left:70.25pt;mso-padding-alt:1.5pt 1.5pt 1.5pt 1.5pt'>
>+ <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
>+  <td valign=top style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
>+  <p class=MsoNormal><span style='font-size:10.0pt'>&nbsp;<span class=GramE>c:</span>&gt;
>+  <span class=SpellE>derbyTesting.functionTests.harness.RunTest</span> <span
>+  class=SpellE>lang/supersimple.sql</span><br>
>+  C:\derby\run2<br>
>+  <span class=SpellE>supersimple</span><br>
>+  -- listing properties --<br>
>+  <span class=SpellE>derby.locks.deadlockTimeout</span>=3<br>
>+  <span class=SpellE>derby.locks.waitTimeout</span>=3<br>
>+  *** Start: <span class=SpellE>supersimple</span> jdk1.4.2_03 2004-11-10 </span><st1:time
>+  Minute="54" Hour="16"><span style='font-size:10.0pt'>16:54:39</span></st1:time><span
>+  style='font-size:10.0pt'> ***<br>
>+  The test should be running...<br>
>+  <span class=SpellE>MasterFileName</span> = master/<span class=SpellE>supersimple.out</span><br>
>+  10 </span><st1:State><st1:place><span style='font-size:10.0pt'>del</span></st1:place></st1:State><span
>+  style='font-size:10.0pt'><br>
>+  &lt; 10<br>
>+  10a10<br>
>+  &gt; 1<br>
>+  Test Failed.<br>
>+  *** End:&nbsp;&nbsp; <span class=SpellE>supersimple</span> jdk1.4.2_03
>+  2004-11-10 </span><st1:time Minute="55" Hour="16"><span style='font-size:
>+   10.0pt'>16:55:02</span></st1:time><span style='font-size:10.0pt'> ***</span></p>
>+  </td>
>+ </tr>
> </table>
>-<br>
>-<h3><a class="mozTocH3" name="mozTocId368566"></a>3.2 <a name="run2"></a>Running
>-a suite of tests</h3>
>-<p>
>-See section 2.1 for a basic explanation on how to run a suite of tests.<br>
>-</p>
>-<p>
>-Tests will be run in a subdirectory with the name of the test
>-suite under the current directory. Eg. for derbylang suite, a directory
>-derbylang will be created. While the tests are run, information about
>-the run is inserted into a &lt;testsuite&gt;.sum file. When all tests
>-have completed summary files are created &lt;testsuite&gt;_pass.txt,
>-_fail.txt, and _diff.txt files are created as well as a
>-&lt;testsuite&gt;_report.txt
>-with additional details. Some of the information is duplicate. Also, a
>-.skip file will be created holding a list of the tests that were
>-skipped (for more details on this, see the section on <a
>- href="#skipping">skipping tests</a>).
>-</p>
>-<p>
>-RunSuite does not empty the top level directory before running. Thus,
>-if another suite was run in the same directory at an earlier time, the
>-resulting summary files might contain results for more than the current
>-run. Therefore it is important to run each suite in a clean directory.
>-</p>
>-<p>Sample output from RunSuite:<br>
>-</p>
>-<table
>- style="text-align: left; width: 471px; height: 32px; margin-left: 80px;"
>- border="1" cellpadding="2" cellspacing="2">
>-  <tbody>
>-    <tr>
>-      <td style="vertical-align: top;"><small><small>c:&gt; $ java
>-org.apache.derbyTesting.functionTests.harness.RunSuite derbylang<br>
>-Top suite: derbylang<br>
>-Suite to run: derbylang:derbylang<br>
>-Now do RunList<br>
>-Now run the suite's tests<br>
>-Run the tests...<br>
>-Execute command: java -DjavaCmd=java
>--Doutputdir=C:\derbyt1\derbylang\derbylang
>--Dtopsuitedir=C:\derbyt1\derbylang -Dtoprepo<br>
>-rtdir=C:\derbyt1\derbylang -Drundir=C:\derbyt1
>--Dsuitename=derbylang:derbylang -Dtopsuitename=derbylang
>-org.apache.derbyTesting.functionTests.harness.RunTest
>-lang/altertable.sql<br>
>-Execute command: java -DjavaCmd=java
>--Doutputdir=C:\derbyt1\derbylang\derbylang
>--Dtopsuitedir=C:\derbyt1\derbylang -Dtopreportdir=C:\derbyt1\derbylang
>--Drundir=C:\derbyt1 -Dsuitename=derbylang:derbylang
>--Dtopsuitename=derbylang
>-org.apache.derbyTesting.functionTests.harness.RunTest
>-lang/arithmetic.sql<br>
>-...(.more tests)....<br>
>-Generated report: derbylang_report.txt</small></small><small><br>
>-      </small></td>
>-    </tr>
>-  </tbody>
>+
>+<p class=MsoNormal><o:p>&nbsp;</o:p></p>
>+
>+<h3><a name=mozTocId368566></a>3.2 <a name=run2></a>Running a suite of tests</h3>
>+
>+<p><span class=GramE>See section 2.1 for a basic explanation on how to run a
>+suite of tests.</span></p>
>+
>+<p>Tests will be run in a subdirectory with the name of the test suite under
>+the current directory. <span class=SpellE><span class=GramE>Eg</span></span><span
>+class=GramE>.</span> <span class=GramE>for</span> <span class=SpellE>derbylang</span>
>+suite, a directory <span class=SpellE>derbylang</span> will be created. While
>+the tests are run, information about the run is inserted into a &lt;<span
>+class=SpellE>testsuite</span>&gt;.sum file. When all tests have completed
>+summary files are created &lt;<span class=SpellE>testsuite</span>&gt;_pass.txt,
>+_fail.txt, and _diff.txt files are created as well as a &lt;<span class=SpellE>testsuite</span>&gt;_report.txt
>+with additional details. Some of the information is <span class=GramE>duplicate</span>.
>+Also, a .skip file will be created holding a list of the tests that were
>+skipped (for more details on this, see the section on <a href="#skipping">skipping
>+tests</a>). </p>
>+
>+<p><span class=SpellE>RunSuite</span> does not empty the top level directory
>+before running. Thus, if another suite was run in the same directory at an
>+earlier time, the resulting summary files might contain results for more than
>+the current run. Therefore it is important to run each suite in a clean
>+directory. </p>
>+
>+<p>Sample output from <span class=SpellE>RunSuite</span>:</p>
>+
>+<table class=MsoNormalTable border=1 cellpadding=0 width=551 style='width:413.55pt;
>+ mso-cellspacing:1.5pt;margin-left:70.25pt;mso-padding-alt:1.5pt 1.5pt 1.5pt 1.5pt'>
>+ <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
>+  <td valign=top style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
>+  <p class=MsoNormal><span class=GramE><span style='font-size:7.5pt'>c:</span></span><span
>+  style='font-size:7.5pt'>&gt; $ java <span class=SpellE>org.apache.derbyTesting.functionTests.harness.RunSuite</span>
>+  <span class=SpellE>derbylang</span><br>
>+  Top suite: <span class=SpellE>derbylang</span><br>
>+  Suite to run: <span class=SpellE>derbylang:derbylang</span><br>
>+  Now do <span class=SpellE>RunList</span><br>
>+  Now run the suite's tests<br>
>+  Run the tests...<br>
>+  Execute command: java -<span class=SpellE>DjavaCmd</span>=java -<span
>+  class=SpellE>Doutputdir</span>=C:\derbyt1\derbylang\derbylang -<span
>+  class=SpellE>Dtopsuitedir</span>=C:\derbyt1\derbylang -<span class=SpellE>Dtoprepo</span><br>
>+  <span class=SpellE>rtdir</span>=C:\derbyt1\derbylang -<span class=SpellE>Drundir</span>=C:\derbyt1
>+  -<span class=SpellE>Dsuitename</span>=<span class=SpellE>derbylang:derbylang</span>
>+  -<span class=SpellE>Dtopsuitename</span>=<span class=SpellE>derbylang</span> <span
>+  class=SpellE>org.apache.derbyTesting.functionTests.harness.RunTest</span> <span
>+  class=SpellE>lang/altertable.sql</span><br>
>+  Execute command: java -<span class=SpellE>DjavaCmd</span>=java -<span
>+  class=SpellE>Doutputdir</span>=C:\derbyt1\derbylang\derbylang -<span
>+  class=SpellE>Dtopsuitedir</span>=C:\derbyt1\derbylang -<span class=SpellE>Dtopreportdir</span>=C:\derbyt1\derbylang
>+  -<span class=SpellE>Drundir</span>=C:\derbyt1 -<span class=SpellE>Dsuitename</span>=<span
>+  class=SpellE>derbylang:derbylang</span> -<span class=SpellE>Dtopsuitename</span>=<span
>+  class=SpellE>derbylang</span> <span class=SpellE>org.apache.derbyTesting.functionTests.harness.RunTest</span>
>+  <span class=SpellE>lang/arithmetic.sql</span><br>
>+  ...(.more tests)....<br>
>+  Generated report: derbylang_report.txt</span></p>
>+  </td>
>+ </tr>
> </table>
>-<p>
>-This output does not show whether the tests passed or failed. The
>-Summary section in &lt;testsuite&gt;_report.txt shows the statistics of
>-the passed vs. failed tests, the summary &lt;testsuite&gt;_*.txt files
>-list the tests that passed and failed.
>-</p>
>-<br>
>-<h2><a class="mozTocH2" name="mozTocId635355"></a>4. <a name="overview"></a>
>-Harness internals for developers<br>
>-</h2>
>-<p>
>-The following is intended for people who have the subversion tree
>-available and want to add or modify tests.
>-</p>
>-<p>
>-The test harness executing one test basically does the following in
>-sequence:
>-</p>
>-<ul>
>-  <li>identify test to run</li>
>-  <li>identify properties to run with</li>
>-  <li>copy needed support files</li>
>-  <li>find the expected output</li>
>-  <li>if network server, start network server</li>
>-  <li>run the test, creating the database</li>
>-  <li>if network server, shutdown the server</li>
>-  <li>modify the output based on Sed class and _sed.properties file for
>-the test</li>
>-  <li>compare expected output with actual output</li>
>-  <li>if pass, cleanup.</li>
>+
>+<p>This output does not show whether the tests passed or failed. The Summary
>+section in &lt;<span class=SpellE>testsuite</span>&gt;_report.txt shows the
>+statistics of the passed vs. failed tests, the summary &lt;<span class=SpellE>testsuite</span>&gt;_*.txt
>+files list the tests that passed and failed. </p>
>+
>+<p class=MsoNormal><o:p>&nbsp;</o:p></p>
>+
>+<h2><a name=mozTocId635355></a>4. <a name=overview></a>Harness internals for
>+developers</h2>
>+
>+<p>The following is intended for people who have the subversion tree available
>+and want to add or modify tests. </p>
>+
>+<p>The test harness executing one test basically does the following in
>+sequence: </p>
>+
>+<ul type=disc>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l17 level1 lfo11;tab-stops:list .5in'>identify test to run</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l17 level1 lfo11;tab-stops:list .5in'>identify properties to run
>+     with</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l17 level1 lfo11;tab-stops:list .5in'>copy needed support files</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l17 level1 lfo11;tab-stops:list .5in'>find the expected output</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l17 level1 lfo11;tab-stops:list .5in'>if network server, start
>+     network server</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l17 level1 lfo11;tab-stops:list .5in'>run the test, creating the
>+     database</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l17 level1 lfo11;tab-stops:list .5in'>if network server, shutdown
>+     the server</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l17 level1 lfo11;tab-stops:list .5in'>modify the output based on <span
>+     class=SpellE>Sed</span> class and _<span class=SpellE>sed.properties</span>
>+     file for the test</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l17 level1 lfo11;tab-stops:list .5in'>compare expected output
>+     with actual output</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l17 level1 lfo11;tab-stops:list .5in'><span class=GramE>if</span>
>+     pass, cleanup.</li>
> </ul>
>-<br>
>-<h3><a class="mozTocH3" name="mozTocId344499"></a>4.1 <a name="ov1"></a>Test
>-types</h3>
>-<p>
>-The test harness recognizes, or will recognize tests with the following
>-extensions:<br>
>-</p>
>-<ul>
>-  <li>&nbsp;.java&nbsp;&nbsp;&nbsp; tests that run in a separate jvm.</li>
>-  <li>&nbsp;.sql &nbsp;&nbsp;&nbsp; tests that run using ij</li>
>-  <li>&nbsp;.sql2 &nbsp;&nbsp;&nbsp; related to .sql</li>
>-  <li>&nbsp;.multi &nbsp;&nbsp;&nbsp; multi threaded tests. There is
>-currently only 1 test being run. The multi test functions a little
>-differently from .java and .sql* tests in that RunTest starts a
>-separate harness class called MultiTest to control the details of the
>-run. Also, the actual test files live under
>-org/apache/derbyTesting/functionTests/multiTests, rather than
>-org/apache/derbyTesting/functionTests/tests. <br>
>-  </li>
>-  <li>&nbsp;.unit &nbsp;&nbsp;&nbsp; unit tests. The unit tests
>-actually refer to &lt;testname&gt;_derby.properties files under
>-org/apache/derbyTesting/functionTests/tests/unit that activate the
>-actual unit test harness and tests under
>-org/apache/derbyTesting/unitTests. These tests test more underlying
>-functionality than the (rest of the) functionTests, which are more
>-geared toward how end-users might use functionality.<br>
>-  </li>
>+
>+<p class=MsoNormal><o:p>&nbsp;</o:p></p>
>+
>+<h3><a name=mozTocId344499></a>4.1 <a name=ov1></a>Test types</h3>
>+
>+<p>The test harness recognizes, or will recognize tests with the following
>+extensions:</p>
>+
>+<ul type=disc>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l11 level1 lfo12;tab-stops:list .5in'>&nbsp;.java&nbsp;&nbsp;&nbsp;
>+     tests that run in a separate <span class=SpellE>jvm</span>.</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l11 level1 lfo12;tab-stops:list .5in'>&nbsp;.<span class=SpellE>sql</span>
>+     &nbsp;&nbsp;&nbsp; tests that run using <span class=SpellE>ij</span></li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l11 level1 lfo12;tab-stops:list .5in'>&nbsp;.sql2
>+     &nbsp;&nbsp;&nbsp; related to .<span class=SpellE>sql</span></li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l11 level1 lfo12;tab-stops:list .5in'>&nbsp;.multi
>+     &nbsp;&nbsp;&nbsp; multi threaded tests. There is currently only 1 test
>+     being run. The multi test functions a little differently from .java and .<span
>+     class=SpellE>sql</span>* tests in that <span class=SpellE>RunTest</span>
>+     starts a separate harness class called <span class=SpellE>MultiTest</span>
>+     to control the details of the run. Also, the actual test files live under
>+     org/apache/<span class=SpellE>derbyTesting/functionTests/multiTests</span>,
>+     rather than org/apache/<span class=SpellE>derbyTesting/functionTests/tests</span>.
>+     </li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l11 level1 lfo12;tab-stops:list .5in'>&nbsp;.unit
>+     &nbsp;&nbsp;&nbsp; unit tests. The unit tests actually refer to &lt;<span
>+     class=SpellE>testname</span>&gt;_<span class=SpellE>derby.properties</span>
>+     files under org/apache/<span class=SpellE>derbyTesting/functionTests/tests/unit</span>
>+     that activate the actual unit test harness and tests under org/apache/<span
>+     class=SpellE>derbyTesting/unitTests</span>. These tests test more
>+     underlying functionality than the (rest of the) <span class=SpellE>functionTests</span>,
>+     which are more geared toward how end-users might use functionality.</li>
> </ul>
>-<br>
>-<h3><a class="mozTocH3" name="mozTocId809770"></a>4.2 <a name="ov2"></a>Supporting
>-files for tests</h3>
>-<p>
>-Various additional files may be used by a test, for instance, to create
>-large data values, to test using of jar files and the like. Any files
>-that need to be accessed by a particular test that are not accessed
>-from the classpath need to be listed under supportfiles= in the
>-&lt;testname&gt;_app.properties file.<br>
>-Tests can refer to classes without being in the classpath, and sql
>-tests can use the ij command 'run resource ' to execute additional .sql
>-files without changes to the _app.properties files.
>-</p>
>-<p>For example, in the file
>-(org/apache/derbyTesting/functionTests/tests/)tools/dblook_test_app.properties:<br>
>-<small>&nbsp;&nbsp;&nbsp;
>-supportfiles=tools/dblook_makeDB.sql,tools/dblook_test.jar</small><br>
>-</p>
>-<h3><a class="mozTocH3" name="mozTocId427577"></a>4.3 <a name="ov3"></a>&lt;testname&gt;_app.properties</h3>
>-<p>
>-Every test directory has a default_app.properties. This file is for
>-system level properties generic to all the tests in that test
>+
>+<p class=MsoNormal><o:p>&nbsp;</o:p></p>
>+
>+<h3><a name=mozTocId809770></a>4.2 <a name=ov2></a>Supporting files for tests</h3>
>+
>+<p>Various additional files may be used by a test, for instance, to create
>+large data values, to test using of jar files and the like. Any files that need
>+to be accessed by a particular test that are not accessed from the <span
>+class=SpellE>classpath</span> need to be listed under <span class=SpellE>supportfiles</span>=
>+in the &lt;<span class=SpellE>testname</span>&gt;_<span class=SpellE>app.properties</span>
>+file.<br>
>+Tests can refer to classes without being in the <span class=SpellE>classpath</span>,
>+and <span class=SpellE>sql</span> tests can use the <span class=SpellE>ij</span>
>+command 'run resource ' to execute additional .<span class=SpellE>sql</span>
>+files without changes to the _<span class=SpellE>app.properties</span> files. </p>
>+
>+<p>For example, in the file (org/apache/<span class=SpellE>derbyTesting/functionTests/tests</span>/<span
>+class=GramE>)tools</span>/<span class=SpellE>dblook_test_app.properties</span>:<br>
>+<span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; <span class=SpellE>supportfiles</span>=tools/<span
>+class=SpellE>dblook_makeDB.sql,tools/dblook_test.jar</span></span></p>
>+
>+<h3><a name=mozTocId427577></a>4.3 <a name=ov3></a>&lt;<span class=SpellE>testname</span>&gt;_<span
>+class=SpellE>app.properties</span></h3>
>+
>+<p>Every test directory has a <span class=SpellE>default_app.properties</span>.
>+This file is for system level properties generic to all the tests in that test
> directory. </p>
>-<p>
>-If a test requires different system level properties, a test specific
>-properties file can be created to overwrite the defaults. The test
>-specific properties file needs to have a name starting with the
>-test file name, followed with _app.properties</p>
>-<p>For example, for the test tools/dblook_test.java, there is a
>-properties file called tools/dblook_test_app.properties<br>
>-</p>
>-<h3><a class="mozTocH3" name="mozTocId715566"></a>4.4 <a name="ov4"></a>&lt;testname&gt;_derby.properties</h3>
>-<p>
>-Every test directory has a default_derby.properties. This file is for
>-derby specific properties common to all the tests in that test
>+
>+<p>If a test requires different system level properties, a test specific
>+properties file can be created to overwrite the defaults. The test specific
>+properties file needs to have a name starting with the test file name, followed
>+with _<span class=SpellE>app.properties</span></p>
>+
>+<p>For example, for the test tools/<span class=SpellE>dblook_test.java</span>,
>+there is a properties file called tools/<span class=SpellE>dblook_test_app.properties</span></p>
>+
>+<h3><a name=mozTocId715566></a>4.4 <a name=ov4></a>&lt;<span class=SpellE>testname</span>&gt;_<span
>+class=SpellE>derby.properties</span></h3>
>+
>+<p style='margin-bottom:12.0pt'>Every test directory has a <span class=SpellE>default_derby.properties</span>.
>+This file is for derby specific properties common to all the tests in that test
> directory.<br>
>-If a test requires different derby properties, a test specific
>-properties file can be created to overwrite the defaults. The test
>-specific properties file needs to have a name starting with the
>-test file name, followed with _derby.properties<br>
>-<br>
>-</p>
>-<h3><a class="mozTocH3" name="mozTocId874096"></a>4.5 <a name="ov5"></a>tmp
>+If a test requires different derby properties, a test specific properties file
>+can be created to overwrite the defaults. The test specific properties file
>+needs to have a name starting with the test file name, followed with _<span
>+class=SpellE>derby.properties</span></p>
>+
>+<h3><a name=mozTocId874096></a>4.5 <a name=ov5></a><span class=SpellE>tmp</span>
> files, out files, master files, and canons</h3>
>-<p>
>-The test's output will be put into a file testname.tmp. Then the output
>-is modified if masking is required and the result is put into a .out
>-file.<br>
>-The expected output is found by examining the following directories,
>-based on certain input<br>
>-</p>
>-<ul>
>-  <li>functionTests/master/framework/jcc_version/jvmcode</li>
>-  <li>functionTests/master/framework/jcc_version/earlier_jvmcode</li>
>-  <li>functionTests/master/framework/jcc_version</li>
>-  <li>functionTests/master/framework/jvmcode</li>
>-  <li>functionTests/master/framework/earlier_jvmcode</li>
>-  <li>functionTests/master/jvmcode</li>
>-  <li>functionTests/master</li>
>+
>+<p>The test's output will be put into a file <span class=SpellE>testname.tmp</span>.
>+Then the output is modified if masking is required and the result is put into <span
>+class=GramE>a</span> .out file.<br>
>+The expected output is found by examining the following directories, based on
>+certain input</p>
>+
>+<ul type=disc>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l13 level1 lfo13;tab-stops:list .5in'><span class=SpellE>functionTests/master/framework/jcc_version/jvmcode</span></li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l13 level1 lfo13;tab-stops:list .5in'><span class=SpellE>functionTests/master/framework/jcc_version/earlier_jvmcode</span></li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l13 level1 lfo13;tab-stops:list .5in'><span class=SpellE>functionTests/master/framework/jcc_version</span></li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l13 level1 lfo13;tab-stops:list .5in'><span class=SpellE>functionTests/master/framework/jvmcode</span></li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l13 level1 lfo13;tab-stops:list .5in'><span class=SpellE>functionTests/master/framework/earlier_jvmcode</span></li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l13 level1 lfo13;tab-stops:list .5in'><span class=SpellE>functionTests/master/jvmcode</span></li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l13 level1 lfo13;tab-stops:list .5in'><span class=SpellE>functionTests</span>/master</li>
> </ul>
>-<p>
>-For example, if we are running a test and the flag -Dframework=DerbyNet
>-is used and the jvm we are
>-using is Sun's jdk 142, and the jcc version is 2.4 (not available at
>-time of writing) then the search for the master to compare with
>-starts in the functionTests/derbynet/jcc2.4/jdk14 directory. If a .out
>-file with the same name as the test is found in that directory, that
>-master is taken. If there is no such file in that directory, search
>-continues in the directory functionTests/derbynet/jcc2.4/jdk13 if it
>-exists.</p>
>-<p>If there is no file there, nor for any other jcc directory, it will
>-continue to derbynet/jdk14, and the search is continued for earlier jvm
>-versions.<br>
>-If we are not running network server, the DerbyNet and
>-jcc_version directories are not traversed.<br>
>-</p>
>-<p>The version details do not go into the subversion level, i.e.
>-running
>-with jdk141 or jdk142 is expected to have the same behavior.
>-</p>
>-<p>
>-This functionality supports dealing with minor differences in behavior
>-caused by minor differences in behavior in the underlying jvms, jcc
>-versions, differences between results returned through network server
>-vs. embedded and minor differences between a debug and non debug (jar)
>-build. </p>
>-<p>
>-However, having a large number of these files means a maintenance
>-problem. Every time test output changes due to modifications to derby
>-or to the test, all output files in all directories need to be updated
>-accordingly. If at all possible, irrelevant differences should be
>-masked out, or the test should be written so that the output does not
>-reflect such items. </p>
>-<p>
>-Suggestions to minimize canons:
>-</p>
>-<ul>
>-  <li>create test specific masking</li>
>-  <li>ensure test data has a specific correct returned order; or an
>-order by should be added to a query</li>
>-  <li>when writing java tests, ensure only pertinent output is
>-reflected.</li>
>+
>+<p>For example, if we are running a test and the flag -<span class=SpellE>Dframework</span>=<span
>+class=SpellE>DerbyNet</span> is used and the <span class=SpellE>jvm</span> we
>+are using is Sun's <span class=SpellE>jdk</span> 142, and the <span
>+class=SpellE>jcc</span> version is 2.4 (not available at time of writing) then
>+the search for the master to compare with starts in the
>+functionTests/derbynet/jcc2.4/jdk14 directory. If <span class=GramE>a</span>
>+.out file with the same name as the test is found in that directory, that
>+master is taken. If there is no such file in that directory, search continues
>+in the directory functionTests/derbynet/jcc2.4/jdk13 if it exists.</p>
>+
>+<p>If there is no file there, <span class=GramE>nor</span> for any other <span
>+class=SpellE>jcc</span> directory, it will continue to derbynet/jdk14, and the
>+search is continued for earlier <span class=SpellE>jvm</span> versions.<br>
>+If we are not running network server, the <span class=SpellE>DerbyNet</span>
>+and <span class=SpellE>jcc_version</span> directories are not traversed.</p>
>+
>+<p>The version details do not go into the subversion level, i.e. running with
>+jdk141 or jdk142 is expected to have the same behavior. </p>
>+
>+<p>This functionality supports dealing with minor differences in behavior
>+caused by minor differences in behavior in the underlying <span class=SpellE>jvms</span>,
>+<span class=SpellE>jcc</span> versions, differences between results returned
>+through network server vs. embedded and minor differences between a debug and
>+non debug (jar) build. </p>
>+
>+<p>However, having a large number of these files means a maintenance problem.
>+Every time test output changes due to modifications to derby or to the test,
>+all output files in all directories need to be updated accordingly. If at all
>+possible, irrelevant differences should be masked out, or the test should be
>+written so that the output does not reflect such items. </p>
>+
>+<p>Suggestions to minimize canons: </p>
>+
>+<ul type=disc>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l7 level1 lfo14;tab-stops:list .5in'>create test specific masking</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l7 level1 lfo14;tab-stops:list .5in'>ensure test data has a
>+     specific correct returned order; or an order by should be added to a query</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l7 level1 lfo14;tab-stops:list .5in'><span class=GramE>when</span>
>+     writing java tests, ensure only pertinent output is reflected.</li>
> </ul>
>-<br>
>-<h3><a class="mozTocH3" name="mozTocId68107"></a>4.6 <a name="ov6"></a>Masking
>-and comparing</h3>
>-<p>
>-Tests often fail because of unimportant differences, such as process
>-ids, statement ids, timestamps. The derby functional test harness
>-provides for masking of these differences at 2 levels:<br>
>-</p>
>-<ol>
>-  <li>overall level. Masking required in all, or many tests can be
>-achieved using the class Sed in the test harness directory. This class
>-can either delete a reference present in the .tmp file from the .out
>-file, or replace it with a generic string. </li>
>-  <li>test specific level. To make masking for only one test, a
>-(testname)_sed.properties file can be created which allows to either
>-remove a string from the output or to replace it.</li>
>+
>+<p class=MsoNormal><o:p>&nbsp;</o:p></p>
>+
>+<h3><a name=mozTocId68107></a>4.6 <a name=ov6></a>Masking and comparing</h3>
>+
>+<p>Tests often fail because of unimportant differences, such as process ids,
>+statement ids, timestamps. The derby functional test harness provides for
>+masking of these differences at 2 levels:</p>
>+
>+<ol start=1 type=1>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l2 level1 lfo15;tab-stops:list .5in'><span class=GramE>overall</span>
>+     level. Masking required in all, or many tests can be achieved using the
>+     class <span class=SpellE>Sed</span> in the test harness directory. This
>+     class can either delete a reference present in the .<span class=SpellE>tmp</span>
>+     file from the .out file, or replace it with a generic string. </li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l2 level1 lfo15;tab-stops:list .5in'><span class=GramE>test</span>
>+     specific level. To make masking for only one test, a (<span class=SpellE>testname</span><span
>+     class=GramE>)_</span><span class=SpellE>sed.properties</span> file can be
>+     created which allows to either remove a string from the output or to
>+     replace it.</li>
> </ol>
>-<p>
>-The diff is executed between the final resulting output and the master
>-file found.<br>
>-<br>
>-</p>
>-<h3><a name="Adding_a_new_test"></a>4.7<span style="font-weight: bold;">&nbsp;
>-</span>Adding
>-a new test</h3>
>-<p>
>-To add a new test:
>-</p>
>-<ul>
>-  <li>create the test file (e.g. newfunctest.java or newfunctest.sql)
>-in the appropriate tests subdirectory</li>
>-  <li>list any files needed that are not .sql or .java files in a
>-supportfiles entry in a test specific _app.properties file. e.g.
>-newfunctest_app.properties:&nbsp; supportfiles=xyz.jar<br>
>-  </li>
>-  <li>list any specific derby properties in a test specific
>-_derby.properties file.</li>
>-  <li>add the properties files to the copyfiles.ant file in the test
>-specific directory</li>
>-  <li>run the test. The first time around, the test will fail because
>-no master file will be found. </li>
>-  <li>if the output is correct, copy it to the master directory. Note
>-that there is no copyfiles.ant file needed for the master directory,
>-all .out files are automatically copied.</li>
>-  <li>run the test again. Investigate if any differences need to be
>-masked out using a test specific sed.properties file (e.g.
>-newfunctest_sed.properties). If so, ensure this is added to
>-copyfiles.ant.</li>
>-  <li>add the test to a specific suites/*.xml file, maintaining proper
>-xml syntax. </li>
>-  <li>run the suite, and correct any problems found.</li>
>+
>+<p style='margin-bottom:12.0pt'>The diff is executed between the final
>+resulting output and the master file found.</p>
>+
>+<h3><a name="Adding_a_new_test"></a>4.7<span class=GramE>&nbsp; Adding</span> a
>+new test</h3>
>+
>+<p>To add a new test: </p>
>+
>+<ul type=disc>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l18 level1 lfo16;tab-stops:list .5in'>create the test file (e.g. <span
>+     class=SpellE>newfunctest.java</span> or <span class=SpellE>newfunctest.sql</span>)
>+     in the appropriate tests subdirectory</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l18 level1 lfo16;tab-stops:list .5in'><span class=GramE>list</span>
>+     any files needed that are not .<span class=SpellE>sql</span> or .java
>+     files in a <span class=SpellE>supportfiles</span> entry in a test specific
>+     _<span class=SpellE>app.properties</span> file. e.g. <span class=SpellE>newfunctest_app.properties</span>:&nbsp;
>+     <span class=SpellE>supportfiles</span>=<span class=SpellE>xyz.jar</span></li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l18 level1 lfo16;tab-stops:list .5in'><span class=GramE>list</span>
>+     any specific derby properties in a test specific _<span class=SpellE>derby.properties</span>
>+     file.</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l18 level1 lfo16;tab-stops:list .5in'>add the properties files to
>+     the <span class=SpellE>copyfiles.ant</span> file in the test specific
>+     directory</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l18 level1 lfo16;tab-stops:list .5in'><span class=GramE>run</span>
>+     the test. The first time around, the test will fail because no master file
>+     will be found. </li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l18 level1 lfo16;tab-stops:list .5in'><span class=GramE>if</span>
>+     the output is correct, copy it to the master directory. Note that there is
>+     no <span class=SpellE>copyfiles.ant</span> file needed for the master
>+     directory, all .out files are automatically copied.</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l18 level1 lfo16;tab-stops:list .5in'><span class=GramE>run</span>
>+     the test again. Investigate if any differences need to be masked out using
>+     a test specific <span class=SpellE>sed.properties</span> file (e.g. <span
>+     class=SpellE>newfunctest_sed.properties</span>). If so, ensure this is
>+     added to <span class=SpellE>copyfiles.ant</span>.</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l18 level1 lfo16;tab-stops:list .5in'><span class=GramE>add</span>
>+     the test to a specific suites/*.xml file, maintaining proper xml syntax. </li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l18 level1 lfo16;tab-stops:list .5in'><span class=GramE>run</span>
>+     the suite, and correct any problems found.</li>
> </ul>
>-<br>
>-<h3><a name="4.8_Suites_and_Adding_a_new_suite"></a>4.8 Suites and
>-Adding a new suite</h3>
>-<p>
>-A suite constitutes of a &lt;suitename&gt;.properties file and/or a
>-&lt;suitename&gt;.runall file in the
>-org/apache/derbyTesting/functionTests/suites directory. The .properties
>-files hold references to other .properties files, or .runall files, the
>-.runall files are the actual lists of tests.
>-</p>
>-<p>
>-The lowest level suite always needs to have a .runall file.
>-</p>
>-<p>
>-For example, the derbyall suite is only a derbyall.properties file that
>-refers to other suites in the 'suites' property:
>-</p>
>-<table
>- style="text-align: left; width: 527px; height: 32px; margin-left: 40px;"
>- border="1" cellpadding="2" cellspacing="2">
>-  <tbody>
>-    <tr>
>-      <td style="vertical-align: top;"><small>-----------------------derbyall.properties---------------<br>
>-suites=derbylang derbynetmats storeall xa derbytools<br>
>-derby.debug.true=enableBtreeConsistencyCheck<br>
>-derby.stream.error.logSeverityLevel=0<br>
>-      </small></td>
>-    </tr>
>-  </tbody>
>+
>+<p class=MsoNormal><o:p>&nbsp;</o:p></p>
>+
>+<h3><a name="4.8_Suites_and_Adding_a_new_suite"></a>4.8 Suites and Adding a new
>+suite</h3>
>+
>+<p>A suite constitutes of a &lt;<span class=SpellE>suitename</span>&gt;.properties
>+file and/or a &lt;<span class=SpellE>suitename</span>&gt;.<span class=SpellE>runall</span>
>+file in the org/apache/<span class=SpellE>derbyTesting/functionTests/suites</span>
>+directory. The .properties files hold references to other .properties files, or
>+.<span class=SpellE>runall</span> files, the .<span class=SpellE>runall</span>
>+files are the actual lists of tests. </p>
>+
>+<p>The lowest level suite always needs to have a .<span class=SpellE>runall</span>
>+file. </p>
>+
>+<p>For example, the <span class=SpellE>derbyall</span> suite is only a <span
>+class=SpellE>derbyall.properties</span> file that refers to other suites in the
>+'suites' property: </p>
>+
>+<table class=MsoNormalTable border=1 cellpadding=0 width=617 style='width:462.75pt;
>+ mso-cellspacing:1.5pt;margin-left:35.1pt;mso-padding-alt:1.5pt 1.5pt 1.5pt 1.5pt'>
>+ <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
>+  <td valign=top style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
>+  <p class=MsoNormal><span style='font-size:10.0pt'>-----------------------<span
>+  class=SpellE>derbyall.properties</span>---------------<br>
>+  suites=<span class=SpellE>derbylang</span> <span class=SpellE>derbynetmats</span>
>+  <span class=SpellE>storeall</span> <span class=SpellE>xa</span> <span
>+  class=SpellE>derbytools</span><br>
>+  <span class=SpellE>derby.debug.true</span>=<span class=SpellE>enableBtreeConsistencyCheck</span><br>
>+  <span class=SpellE>derby.stream.error.logSeverityLevel</span>=0</span></p>
>+  </td>
>+ </tr>
> </table>
>-<p>
>-The derbylang suite is only a derbylang.runall, which lists the tests.
>-The derbynetmats suite has both a .runall and a .properties file, so
>-some additional properties can be specified that are true for all tests
>-in that suite. </p>
>-<table
>- style="text-align: left; width: 521px; height: 32px; margin-left: 40px;"
>- border="1" cellpadding="2" cellspacing="2">
>-  <tbody>
>-    <tr>
>-      <td style="vertical-align: top;"><small>------------------derbynetmats.properties-----------------<br>
>-framework=DerbyNet<br>
>-suites=derbynetmats<br>
>-jdk12test=true<br>
>-runwithj9=false<br>
>-timeout=60<br>
>-      </small></td>
>-    </tr>
>-  </tbody>
>+
>+<p>The <span class=SpellE>derbylang</span> suite is only a <span class=SpellE>derbylang.runall</span>,
>+which lists the tests. The <span class=SpellE>derbynetmats</span> suite has
>+both a .<span class=SpellE>runall</span> and a .properties file, so some
>+additional properties can be specified that are true for all tests in that
>+suite. </p>
>+
>+<table class=MsoNormalTable border=1 cellpadding=0 width=610 style='width:457.45pt;
>+ mso-cellspacing:1.5pt;margin-left:35.1pt;mso-padding-alt:1.5pt 1.5pt 1.5pt 1.5pt'>
>+ <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
>+  <td valign=top style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
>+  <p class=MsoNormal><span style='font-size:10.0pt'>------------------<span
>+  class=SpellE>derbynetmats.properties</span>-----------------<br>
>+  framework=<span class=SpellE>DerbyNet</span><br>
>+  suites=<span class=SpellE>derbynetmats</span><br>
>+  jdk12test=true<br>
>+  runwithj9=false<br>
>+  timeout=60</span></p>
>+  </td>
>+ </tr>
> </table>
>-<p>
>-To add a suite, you need to create at least a &lt;suite&gt;.runall
>-file, which lists the actual tests, or a properties file that refers to
>-other suites that do have a .runall file. The suite should be added
>-into the directory
>-${derby.source}/java/testing/org/apache/derbyTesting/functionTests/suites.<br>
>-<br>
>-</p>
>-<h3><a name="4.9_Running_with_a_new_jvm_"></a> <a name="ov9"></a>4.9
>-Running
>-with a new jvm<br>
>-</h3>
>-<p>Currently, the supported jvms are:
>-</p>
>-<table style="text-align: left; width: 497px; height: 32px;" border="1"
>- cellpadding="2" cellspacing="2">
>-  <tbody>
>-    <tr>
>-      <td style="vertical-align: top;"><small>&nbsp;&nbsp;&nbsp; jdk131
>-- Sun
>-HotSpot jdk1.3.1 - class: jdk13</small><br>
>-      <small>&nbsp;&nbsp;&nbsp; jdk141 - Sun HotSpot jdk1.4.1 - class
>-jdk14</small><br>
>-      <small>&nbsp;&nbsp;&nbsp; jdk142 - Sun HotSpot jdk1.4.2 - class
>-jdk14</small><br>
>-      <small>&nbsp;&nbsp;&nbsp; jdk15 - Sun HotSpot jdk1.5 - class jdk15</small><br>
>-      <small>&nbsp;&nbsp;&nbsp; ibm131 - IBM Classic jdk1.3.1&nbsp; -
>-class ibm13</small><br>
>-      <small>&nbsp;&nbsp;&nbsp; ibm141 - IBM Classic jdk1.4.1 - class
>-ibm14</small><br>
>-      <small>&nbsp;&nbsp;&nbsp; ibm142 - IBM Classic jdk1.4.1 - class
>-ibm14</small><br>
>-      <small>&nbsp;&nbsp;&nbsp; j9_13 - WCTME jvm (available with IBM
>-Websphere Client Technology Micro Edition) - class j9_13<br>
>-      </small></td>
>-    </tr>
>-  </tbody>
>+
>+<p style='margin-bottom:12.0pt'>To add a suite, you need to create at least a
>+&lt;suite&gt;.<span class=SpellE>runall</span> file, which lists the actual
>+tests, or a properties file that refers to other suites that do have a .<span
>+class=SpellE>runall</span> file. The suite should be added into the directory
>+${<span class=SpellE>derby.source</span>}/java/testing/org/apache/<span
>+class=SpellE>derbyTesting/functionTests/suites</span>.</p>
>+
>+<h3><a name="4.9_Running_with_a_new_jvm_"></a><a name=ov9></a>4.9 Running with
>+a new <span class=SpellE>jvm</span></h3>
>+
>+<p>Currently, the supported <span class=SpellE>jvms</span> are: </p>
>+
>+<table class=MsoNormalTable border=1 cellpadding=0 width=582 style='width:436.4pt;
>+ mso-cellspacing:1.5pt;mso-padding-alt:1.5pt 1.5pt 1.5pt 1.5pt'>
>+ <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
>+  <td valign=top style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
>+  <p class=MsoNormal><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; jdk131 -
>+  Sun <span class=SpellE>HotSpot</span> jdk1.3.1 - class: jdk13</span><br>
>+  <span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; jdk141 - Sun <span
>+  class=SpellE>HotSpot</span> jdk1.4.1 - class jdk14</span><br>
>+  <span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; jdk142 - Sun <span
>+  class=SpellE>HotSpot</span> jdk1.4.2 - class jdk14</span><br>
>+  <span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; jdk15 - Sun <span
>+  class=SpellE>HotSpot</span> jdk1.5 - class jdk15</span><br>
>+  <span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; ibm131 - IBM Classic
>+  jdk1.3.1&nbsp; - class ibm13</span><br>
>+  <span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; ibm141 - IBM Classic
>+  jdk1.4.1 - class ibm14</span><br>
>+  <span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; ibm142 - IBM Classic
>+  jdk1.4.1 - class ibm14</span><br>
>+  <span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; j9_13 - WCTME <span
>+  class=SpellE>jvm</span> (available with IBM <span class=SpellE>Websphere</span>
>+  Client Technology Micro Edition) - class j9_13</span></p>
>+  </td>
>+ </tr>
> </table>
>-<p>The classes above are subclasses of
>-org.apache.derbyTesting.functionTests.harness.jvm. The name at the
>-front is just a convention.<br>
>-</p>
>-<p>To run a test with a jvm that does not have a matching class under
>-org.apache.derbyTesting.functionTests.harness, do the following:<br>
>-</p>
>-<ul>
>-  <li>just run the tests as if there is a jvm class. The harness will
>-default to using
>-the jdk14 class. Unlikely, but possibly there are no differences<br>
>-  </li>
>-  <li>if there are failures showing that cannot be explained any other
>-way but genuine, acceptable jvm differences, do the following:</li>
>-  <ul>
>-    <li>create a subclass of
>-org.apache.derbyTesting.functionTests.harness.jvm. In this class,
>-specify any jvm specific property settings required </li>
>-    <li>compile the new jvm class and run the tests</li>
>-    <li>create a new canon directory for any additional canons that
>-need to be created.</li>
>-    <li>in rare occasions, other harness changes may be required</li>
>-    <li>for any tests that should not run with this environment, add a
>-line in the testname_app.properties file indicating this. For instance
>-to add a line for a jvm called jdk29, it would be like this:
>-runwithjdk29=false. Note that the versioning does not currently extend
>-past 2 digits.</li>
>-    <li>Add code in RunTest.java to switch to the new jvm based on
>-values for system and vendor properties</li>
>-  </ul>
>+
>+<p>The classes above are subclasses of <span class=SpellE>org.apache.derbyTesting.functionTests.harness.jvm</span>.
>+The name at the front is just a convention.</p>
>+
>+<p>To run a test with a <span class=SpellE>jvm</span> that does not have a
>+matching class under <span class=SpellE>org.apache.derbyTesting.functionTests.harness</span>,
>+do the following:</p>
>+
>+<ul type=disc>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l0 level1 lfo17;tab-stops:list .5in'><span class=GramE>just</span>
>+     run the tests as if there is a <span class=SpellE>jvm</span> class. The
>+     harness will default to using the jdk14 class. Unlikely, but possibly
>+     there are no differences</li>
>+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
>+     mso-list:l0 level1 lfo17;tab-stops:list .5in'>if there are failures
>+     showing that cannot be explained any other way but genuine, acceptable <span
>+     class=SpellE>jvm</span> differences, do the following:</li>
>+ <ul type=circle>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l0 level2 lfo17;tab-stops:list 1.0in'><span class=GramE>create</span>
>+      a subclass of <span class=SpellE>org.apache.derbyTesting.functionTests.harness.jvm</span>.
>+      In this class, specify any <span class=SpellE>jvm</span> specific
>+      property settings required </li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l0 level2 lfo17;tab-stops:list 1.0in'>compile the new <span
>+      class=SpellE>jvm</span> class and run the tests</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l0 level2 lfo17;tab-stops:list 1.0in'><span class=GramE>create</span>
>+      a new canon directory for any additional canons that need to be created.</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l0 level2 lfo17;tab-stops:list 1.0in'>in rare occasions,
>+      other harness changes may be required</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l0 level2 lfo17;tab-stops:list 1.0in'><span class=GramE>for</span>
>+      any tests that should not run with this environment, add a line in the <span
>+      class=SpellE>testname_app.properties</span> file indicating this. For
>+      instance to add a line for a <span class=SpellE>jvm</span> called jdk29,
>+      it would be like this: runwithjdk29=false. Note that the versioning does
>+      not currently extend past 2 digits.</li>
>+  <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
>+      auto;mso-list:l0 level2 lfo17;tab-stops:list 1.0in'>Add code in <span
>+      class=SpellE>RunTest.java</span> to switch to the new <span class=SpellE>jvm</span>
>+      based on values for system and vendor properties</li>
>+ </ul>
> </ul>
>-<br>
>-<h3><a name="skipping"></a>4.10 Skipping a test</h3>
>-<p>There are 2 skipping mechanisms in place for different kinds of
>-skipping of a test.<br>
>-</p>
>-<p>Some tests are written to test specific functionality only available
>-with for instance certain jvms, or, with network server, certain
>-versions of the IBM Universal Driver. To control this, properties can
>-be set for each test, for instance, if a test should not be run when
>-using an ibm jvm, set runwithibmjvm=false. If a test should be run with
>-Sun Hotspot jvm version 14, then set runwithjdk14=true.<br>
>-The skip setting does not go into the subversion level, i.e. setting
>-runwithjdk141=false has no effect, and setting runwithjdk14 affects
>-runs with jdk141 as well as jdk142.<br>
>-Other skip reasons are encryption protocols specific to a certain jvm. <br>
>-</p>
>-<p>Another skipping mechanism works on entire 'frameworks'. Currently
>-there are only 3 supported in the harness, embedded, NetworkServer with
>-the IBM Universal JDBC Driver ('DerbyNet') and NetworkServer with the
>-not yet available new driver ('DerbyNetClient'). In the suites
>-directory there are .exclude files for each of the frameworks - if for
>-some reason an exclude file were not there, you would see a warning
>-message show up for every test run. In this 'framework'.exclude file
>-tests can be placed that for some reason need to be excluded from
>-running with that framework. This mechanism enables adding of suites to
>-a framework run even if a few of the tests are not appropriate for that
>-particular framework.</p>
>-<p>Note that at this time, only skipped suites show up in the .skip
>-result file. This still needs to be corrected.</p>
>-<br>
>-<h3><a name="frameworks"></a>4.11 Frameworks</h3>
>-<p>
>-Currently, the only framework used is DerbyNet for network server. <br>
>-Setting framework property setting will invoke the test harness class
>-NetServer, which currently has configuration for connecting to DB2 via
>-jcc (the IBM Universal Driver), and via the older db2 driver. But there
>-are currently no tests to exercise these settings.<br>
>-Setting this framework also causes the search for expected output to
>-include DerbyNet and jcc version specific subdirectories under master.<br>
>-</p>
>-<br>
>-<h3><a name="props"></a>4.12 Some test harness properties</h3>
>-<p>
>-For a complete set, refer to comments in RunTest.java, but here are
>-some valuable test properties which can be passed to the RunTest class:
>-</p>
>-<table
>- style="text-align: left; margin-left: 40px; width: 601px; height: 252px;"
>- border="1" cellpadding="2" cellspacing="2">
>-  <tbody>
>-    <tr>
>-      <td style="vertical-align: top;">runwith&lt;jvm&gt;<br>
>-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; See above
>-section <a href="#skipping">4.10</a><br>
>-framework<br>
>-&nbsp;&nbsp;&nbsp; specifies which framework to run with. For example:<br>
>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java -Dframework=DerbyNet
>-org.apache.derbyTesting.functionTests.RunTest <br>
>-lang/supersimple.sql<br>
>-verbose<br>
>-&nbsp;&nbsp;&nbsp; Shows more detailed output. For example:<br>
>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java -Dverbose=true
>-org.apache.derbyTesting.functionTests.RunTest lang/arithmetic.sql<br>
>-keepfiles<br>
>-&nbsp; &nbsp; Indicates to not clean up any of the files if the test
>-passed.<br>
>-&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; java -Dkeepfiles=true
>-org.apache.derbyTesting.functionTests.RunTest lang/arithmetic.sql<br>
>-TestSpecialFlags<br>
>-&nbsp;&nbsp;&nbsp; sets additional properties.<br>
>-&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; java
>--D=TestSpecialFlags=derby.infolog.append=true
>-org.apache.derbyTesting.functionTests.RunTest lang/arithmetic.sql</td>
>-    </tr>
>-  </tbody>
>+
>+<p class=MsoNormal><o:p>&nbsp;</o:p></p>
>+
>+<h3><a name=skipping></a>4.10 Skipping a test</h3>
>+
>+<p>There are 2 skipping mechanisms in place for different kinds of skipping of
>+a test.</p>
>+
>+<p>Some tests are written to test specific functionality only available with
>+for instance certain <span class=SpellE>jvms</span>, or, with network server,
>+certain versions of the IBM Universal Driver. To control this, properties can
>+be set for each test, for instance, if a test should not be run when using an <span
>+class=SpellE><span class=GramE>ibm</span></span> <span class=SpellE>jvm</span>,
>+set <span class=SpellE>runwithibmjvm</span>=false. If a test should be run with
>+Sun Hotspot <span class=SpellE>jvm</span> version 14, then set
>+runwithjdk14=true.<br>
>+The skip setting does not go into the subversion level, i.e. setting runwithjdk141=false
>+has no effect, and setting runwithjdk14 affects runs with jdk141 as well as
>+jdk142.<br>
>+Other skip reasons are encryption protocols specific to a certain <span
>+class=SpellE>jvm</span>. </p>
>+
>+<p>Another skipping mechanism works on entire 'frameworks'. Currently there are
>+only 3 supported in the harness, embedded, <span class=SpellE>NetworkServer</span>
>+with the IBM Universal JDBC Driver ('<span class=SpellE>DerbyNet</span>') and <span
>+class=SpellE>NetworkServer</span> with the not yet available new driver ('<span
>+class=SpellE>DerbyNetClient</span>'). In the suites directory there are
>+.exclude files for each of the frameworks - if for some reason an exclude file
>+were not there, you would see a warning message show up for every test run. In
>+this '<span class=SpellE>framework'.exclude</span> file tests can be placed
>+that for some reason need to be excluded from running with that framework. This
>+mechanism enables adding of suites to a framework run even if a few of the
>+tests are not appropriate for that particular framework.</p>
>+
>+<p>Note that at this time, only skipped suites show up in the .skip result
>+file. This still needs to be corrected.</p>
>+
>+<p class=MsoNormal><o:p>&nbsp;</o:p></p>
>+
>+<h3><a name=frameworks></a>4.11 Frameworks</h3>
>+
>+<p>Currently, there are <span class=GramE>two <span
>+style='mso-spacerun:yes'> </span>frameworks</span> <span
>+style='mso-spacerun:yes'> </span><span style='mso-spacerun:yes'> </span>for
>+network server, which are <span style='mso-spacerun:yes'> </span><span
>+class=SpellE>DerbyNet</span> and <span class=SpellE>DerbyNetClient</span>.<br>
>+Setting framework property setting to <span class=SpellE>DerbyNet</span> <span
>+style='mso-spacerun:yes'> </span>will invoke the test harness class <span
>+class=SpellE>NetServer</span>, which currently has configuration for connecting
>+to DB2 via <span class=SpellE>jcc</span> (the IBM Universal Driver), and via
>+the older db2 driver. But there are currently no tests to exercise these
>+settings.<br>
>+Setting this framework also causes the search for expected output to include <span
>+class=SpellE>DerbyNet</span> and <span class=SpellE>jcc</span> version specific
>+subdirectories under master.</p>
>+
>+<p>Setting the framework to <span class=SpellE>DerbyNetClient</span> will
>+invoke the test harness to use the configuration for the Derby Client.<span
>+style='mso-spacerun:yes'>  </span>An example is </p>
>+
>+<p><span class=GramE>java</span> &#8211;<span class=SpellE>Dframework</span>=<span
>+class=SpellE>DerbyNetClient</span> <span class=SpellE>org.apache.derbyTesting.functionTests.harness.RunSuite</span>
>+<span class=SpellE>derbynetclientmats</span></p>
>+
>+<p class=MsoNormal><o:p>&nbsp;</o:p></p>
>+
>+<h3><a name=props></a>4.12 Some test harness properties</h3>
>+
>+<p>For a complete set, refer to comments in <span class=SpellE>RunTest.java</span>,
>+but here are some valuable test properties which can be passed to the <span
>+class=SpellE>RunTest</span> class: </p>
>+
>+<table class=MsoNormalTable border=1 cellpadding=0 width=704 style='width:527.7pt;
>+ mso-cellspacing:1.5pt;margin-left:35.1pt;mso-padding-alt:1.5pt 1.5pt 1.5pt 1.5pt'>
>+ <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
>+  <td valign=top style='padding:1.5pt 1.5pt 1.5pt 1.5pt'>
>+  <p class=MsoNormal><span class=SpellE><span class=GramE>runwith</span></span><span
>+  class=GramE>&lt;</span><span class=SpellE>jvm</span>&gt;<br>
>+  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; See above section <a href="#skipping">4.10</a><br>
>+  framework<br>
>+  &nbsp;&nbsp;&nbsp; specifies which framework to run with. For example:<br>
>+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java -<span class=SpellE>Dframework</span>=<span
>+  class=SpellE>DerbyNet</span> <span class=SpellE>org.apache.derbyTesting.functionTests.RunTest</span>
>+  <br>
>+  <span class=SpellE>lang/supersimple.sql</span><br>
>+  verbose<br>
>+  &nbsp;&nbsp;&nbsp; Shows more detailed output. For example:<br>
>+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java -<span class=SpellE>Dverbose</span>=true
>+  <span class=SpellE>org.apache.derbyTesting.functionTests.RunTest</span> <span
>+  class=SpellE>lang/arithmetic.sql</span><br>
>+  <span class=SpellE>keepfiles</span><br>
>+  &nbsp; &nbsp; Indicates to not clean up any of the files if the test passed.<br>
>+  &nbsp;&nbsp; &nbsp; &nbsp;&nbsp; <span class=GramE>java</span> -<span
>+  class=SpellE>Dkeepfiles</span>=true <span class=SpellE>org.apache.derbyTesting.functionTests.RunTest</span>
>+  <span class=SpellE>lang/arithmetic.sql</span><br>
>+  <span class=SpellE>TestSpecialFlags</span><br>
>+  &nbsp;&nbsp;&nbsp; sets additional properties.<br>
>+  &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; java -D=<span class=SpellE>TestSpecialFlags</span>=<span
>+  class=SpellE>derby.infolog.append</span>=true <span class=SpellE>org.apache.derbyTesting.functionTests.RunTest</span>
>+  <span class=SpellE>lang/arithmetic.sql</span></p>
>+  </td>
>+ </tr>
> </table>
>-<br>
>-<br>
>-<h3><br>
>-</h3>
>-<br>
>-<br>
>+
>+<p class=MsoNormal style='margin-bottom:12.0pt'><o:p>&nbsp;</o:p></p>
>+
>+<h3><o:p>&nbsp;</o:p></h3>
>+
>+<p class=MsoNormal style='margin-bottom:12.0pt'><o:p>&nbsp;</o:p></p>
>+
> <h2>Notes</h2>
>-<small><a name="Note1:"></a> Note1:<br>
>-</small>
>-<div style="margin-left: 40px;"><small>There is one more suite
>-included: the j9derbynetmats
>-suite is a modification of the derbynetmats suite. It is available to
>-test
>-the network server with the jvm available with IBM's WCTME (Workplace
>-Client Technology, Micro Edition; formerly WSDD), and will be run at IBM</small><small>.
>-Note that the setup for running the j9derbynetmats
>-tests is very specific to the test harness, not even using the WCTME
>-files in their normal location.</small><small> <br>
>-The j9derbynetmats suite is included to serve as an
>-example of splitting the network server process to run with a different
>-jvm than the test client. The j9derbynetmats suite will run with
>-another
>-jvm
>-as client (as defined in the suite properties), but start up
>-network server with the 'j9' jvm files (the reference to 'j9' is based
>-on the executable, j9.exe), based on the property 'serverJvm'. Running
>-this suite requires providing the property&nbsp; bootcp,
>-which is&nbsp; interpreted from the test harness class j9_13. See also
>-section on adding a new <a href="#ov9%22">jvm setup</a>.
>-<br>
>-Another suite is derbynetclientmats. This suite is for testing the
>-networkserver with a yet to be contributed open source client. IBM
>-staff is working on contributing this. In essence it is the same as the
>-derbynetmats suite.&nbsp; At this time, it can only be run by the IBM
>-staff working on this driver.<br>
>-</small></div>
>-<br>
>-<small><a name="Note2:"></a>Note2:<br>
>-</small>
>-<div style="margin-left: 40px;"><small>setting
>-RetrieveMessagesFromServerOnGetMessage to true
>-for the test harness is purely for
>-illustration, the test harness actually forces
>-RetrieveMessagesFromServerOnGetMessage to true for the tests so the
>-output is always as expected.</small><br>
>+
>+<p class=MsoNormal><a name="Note1:"></a><span style='font-size:10.0pt'>Note1:</span></p>
>+
>+<div style='margin-left:35.1pt'>
>+
>+<p class=MsoNormal><span style='font-size:10.0pt'>There is one more suite
>+included: the j9derbynetmats suite is a modification of the <span class=SpellE>derbynetmats</span>
>+suite. It is available to test the network server with the <span class=SpellE>jvm</span>
>+available with IBM's WCTME (Workplace Client Technology, Micro Edition;
>+formerly WSDD), and will be run at IBM. Note that the setup for running the j9derbynetmats
>+tests is very specific to the test harness, not even using the WCTME files in
>+their normal location. <br>
>+The j9derbynetmats suite is included to serve as an example of splitting the
>+network server process to run with a different <span class=SpellE>jvm</span>
>+than the test client. The j9derbynetmats suite will run with another <span
>+class=SpellE>jvm</span> as client (as defined in the suite properties), but
>+start up network server with the 'j9' <span class=SpellE>jvm</span> files (the
>+reference to 'j9' is based on the executable, j9.exe), based on the property '<span
>+class=SpellE>serverJvm</span>'. Running this suite requires providing the
>+property<span class=GramE>&nbsp; <span class=SpellE>bootcp</span></span>, which
>+is&nbsp; interpreted from the test harness class j9_13. See also section on
>+adding a new <a href="#ov9%22"><span class=SpellE>jvm</span> setup</a>. <br>
>+
> </div>
>-<br>
>-<small><a name="Note3:_"></a>Note3: <br>
>-</small>
>-<div style="margin-left: 40px;"><small>occasionally, cleanup is
>-unsuccessful. This does not
>-constitute a problem in any way, as the harness starts with a clean
>-database, and clean copies of all files. However, you will see
>-something like this in the output:</small><br>
>-<small>Warning: Cleanup failed on baseDir:
>-/local/myrun1/DerbyNet/supersimple</small><br>
>+
>+<p class=MsoNormal><br>
>+<a name="Note2:"></a><span style='font-size:10.0pt'>Note2:</span></p>
>+
>+<div style='margin-left:35.1pt'>
>+
>+<p class=MsoNormal><span class=GramE><span style='font-size:10.0pt'>setting</span></span><span
>+style='font-size:10.0pt'> <span class=SpellE>RetrieveMessagesFromServerOnGetMessage</span>
>+to true for the test harness is purely for illustration, the test harness
>+actually forces <span class=SpellE>RetrieveMessagesFromServerOnGetMessage</span>
>+to true for the tests so the output is always as expected.</span></p>
>+
> </div>
>-<br>
>+
>+<p class=MsoNormal><br>
>+<a name="Note3:_"></a><span style='font-size:10.0pt'>Note3: </span></p>
>+
>+<div style='margin-left:35.1pt'>
>+
>+<p class=MsoNormal><span class=GramE><span style='font-size:10.0pt'>occasionally</span></span><span
>+style='font-size:10.0pt'>, cleanup is unsuccessful. This does not constitute a
>+problem in any way, as the harness starts with a clean database, and clean
>+copies of all files. However, you will see something like this in the output<span
>+class=GramE>:</span></span><br>
>+<span style='font-size:10.0pt'>Warning: Cleanup failed on <span class=SpellE>baseDir</span>:
>+/local/myrun1/DerbyNet/supersimple</span></p>
>+
>+</div>
>+
>+<p class=MsoNormal><o:p>&nbsp;</o:p></p>
>+
>+</div>
>+
> </body>
>+
> </html>
>Index: BUILDING.txt
>===================================================================
>--- BUILDING.txt	(revision 161156)
>+++ BUILDING.txt	(working copy)
>@@ -367,6 +367,7 @@
>     - derbytools.jar (utilities: sysinfo, dblook, ij) 
>     - derbynet.jar (network server).
>     - derbyLocale_*.jar (9 jar files with locale support).
>+    - derbyclient.jar (derby network client)
>     If the tests were built, the following jar file will also be built:
>     - derbyTesting.jar (the test framework and related files)
> 
>@@ -377,6 +378,7 @@
>     - command "ant derbynetjar" to build derbynet.jar
>     - command "ant derbylocalejars" to build the derby locale jar files.
>     - command "ant derbytestingjar" to build derbyTesting.jar
>+    - command "ant derbyclientjar" to build derbyclient.jar
> 
> Notes: 
> (1) The estimated total time for build completion is ~5-10 minutes.
>Index: build.xml
>===================================================================
>--- build.xml	(revision 161156)
>+++ build.xml	(working copy)
>@@ -21,7 +21,7 @@
> 
> <!-- Targets -->
> 
>-  <target name="buildsource" depends="init,engine,tools,drda,build,versioninfo,localeinfo"/>
>+  <target name="buildsource" depends="init,engine,tools,drda,client,build,versioninfo,localeinfo"/>
>   <target name="all" depends="buildsource,demo,testing"/>
> 
> <!-- ==================================================================== -->
>@@ -74,6 +74,7 @@
>         <available file="${out.dir}/org/apache/derby/info/DBMS.properties"/>
>         <available file="${out.dir}/org/apache/derby/info/tools.properties"/>
>         <available file="${out.dir}/org/apache/derby/info/net.properties"/>
>+        <available file="${out.dir}/org/apache/derby/info/dnc.properties"/>
>       </and>
>     </condition>
>   </target>
>@@ -102,12 +103,20 @@
>       <param name="info.productfile" value="codeline"/>
>       <param name="info.file" value="${out.dir}/org/apache/derby/info/net.properties"/>
>     </antcall>
>+    <antcall target="infowriter">
>+      <param name="info.buildnumber" value="1"/>
>+      <param name="info.iname" value="Apache Derby Network Client"/>
>+      <param name="info.ename" value="Apache Derby"/>
>+      <param name="info.productfile" value="codeline"/>
>+      <param name="info.file" value="${out.dir}/org/apache/derby/info/dnc.properties"/>
>+    </antcall>
>   </target>
> 
>   <target name="cleanversion">
>     <delete file="${out.dir}/org/apache/derby/info/DBMS.properties"/>
>     <delete file="${out.dir}/org/apache/derby/info/tools.properties"/>
>     <delete file="${out.dir}/org/apache/derby/info/net.properties"/>
>+    <delete file="${out.dir}/org/apache/derby/info/dnc.properties"/>
>   </target>
> <!-- ==================================================================== -->
> <!--                         Info writer build target                     -->
>@@ -267,6 +276,10 @@
>     <ant dir="${derby.drda.src.dir}"/>
>   </target>
> 
>+  <target name="client" depends="engine,init">
>+    <ant dir="${derby.client.src.dir}"/>
>+  </target>
>+
>   <target name="build">
>     <ant dir="${derby.build.src.dir}"/>
>   </target>
>@@ -493,6 +506,7 @@
>       <fileset dir="${derby.drda.src.dir}"
>                includesfile="${javadoctools.dir}/publishedapi.ant"/>
>     </copy>
>+
> 	
>     <!-- engine files -->
>     <copy todir="${out.javadoc.dir}/sourcedir">
>@@ -634,8 +648,8 @@
> <!--                               Jar targets                           -->
> <!-- =================================================================== -->
> 
>-  <target name="buildjarsclean" depends="cleanjars,initjars,derbyjar,derbytoolsjar,derbynetjar,derbywar,derbylocalejars,derbytestingjar"/>
>-  <target name="buildjars" depends="initjars,derbyjar,derbytoolsjar,derbynetjar,derbywar,derbylocalejars,derbytestingjar"/>
>+  <target name="buildjarsclean" depends="cleanjars,initjars,derbyjar,derbytoolsjar,derbynetjar,derbyclientjar,derbywar,derbylocalejars,derbytestingjar"/>
>+  <target name="buildjars" depends="initjars,derbyjar,derbytoolsjar,derbynetjar,derbyclientjar,derbywar,derbylocalejars,derbytestingjar"/>
> 
>   <target name="initjars" depends="setsanityname,getsvnversion">
>     <property name="derby.jar.dir" value="${basedir}/jars/${sanity.name}"/>
>@@ -887,6 +901,45 @@
> 
>   </target>
> 
>+<!-- - - - - - - - - - - - - - derbyclient.jar target - - - - - - - - -->
>+
>+ <target name="derbyclientjar" depends="setsanityname,initjars">
>+
>+    <echo message="Beginning derbyclient.jar ${sanity.name} build"/>
>+
>+    <echo message=" creating new dnc.properties file "/>
>+
>+    <mkdir dir="${out.dir}/org/apache/derby/info/"/>
>+    <antcall target="infowriter">
>+      <param name="info.buildnumber" value="${changenumber}"/>
>+      <param name="info.iname" value="Apache Derby Network Client"/>
>+      <param name="info.ename" value="Apache Derby"/>
>+      <param name="info.productfile" value="codeline"/>
>+      <param name="info.file" value="${out.dir}/org/apache/derby/info/dnc.properties"/>
>+    </antcall>
>+
>+    <!-- copy license file to lists dir for inclusion in derbyclient.jar -->
>+
>+    <mkdir dir="${derby.jar.dir}/lists/META-INF"/>
>+    <copy todir="${derby.jar.dir}/lists/META-INF">
>+      <fileset dir="${basedir}" includes="LICENSE*,NOTICE*,COPYRIGHT*"/>
>+    </copy>
>+   
>+    <delete file="${derby.jar.dir}/derbyclient.jar"/>
>+
>+    <jar destfile="${derby.jar.dir}/derbyclient.jar"
>+         compress="true"
>+         filesonly="true"
>+         update="true">
>+      <fileset dir="${out.dir}"
>+               includes="org/apache/derby/client/**,
>+			org/apache/derby/client/jdbc/Client**,org/apache/derby/jdbc/Client**,org/apache/derby/iapi/services/info/**
>+                         org/apache/derby/info/dnc.properties"/>
>+      <fileset dir="${derby.jar.dir}/lists"
>+               includes="META-INF/**"/>
>+    </jar>
>+  </target>
>+
> <!-- - - - - - - - - - - - - - derby.war target - - - - - - - - - - - -->
> 
>  <target name="derbywar" depends="initjars">
>      
>

Mime
View raw message