You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by fu...@apache.org on 2005/01/29 01:33:17 UTC
svn commit: r148965 - in incubator/derby/code/branches/10.0/java: testing/org/apache/derbyTesting/functionTests/master testing/org/apache/derbyTesting/functionTests/tests/derbynet testing/org/apache/derbyTesting/functionTests/tests/tools tools/org/apache/derby/impl/tools/dblook tools/org/apache/derby/tools
Author: fuzzylogic
Date: Fri Jan 28 16:33:16 2005
New Revision: 148965
URL: http://svn.apache.org/viewcvs?view=rev&rev=148965
Log:
Merge revision 111185 to 10.0 branch.
Added:
incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_makeDB_2.sql
- copied unchanged from r111185, incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_makeDB_2.sql
incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test_sed.properties
- copied unchanged from r111185, incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test_sed.properties
Modified:
incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/master/dblook_test.out
incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/dblook_test_net.java
incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/copyfiles.ant
incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test.java
incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test_app.properties
incubator/derby/code/branches/10.0/java/tools/org/apache/derby/impl/tools/dblook/DB_Jar.java
incubator/derby/code/branches/10.0/java/tools/org/apache/derby/impl/tools/dblook/Logs.java
incubator/derby/code/branches/10.0/java/tools/org/apache/derby/tools/dblook.java
Modified: incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/master/dblook_test.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/master/dblook_test.out?view=diff&rev=148965&p1=incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/master/dblook_test.out&r1=148964&p2=incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/master/dblook_test.out&r2=148965
==============================================================================
--- incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/master/dblook_test.out (original)
+++ incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/master/dblook_test.out Fri Jan 28 16:33:16 2005
@@ -1,4 +1,4 @@
--= Start Test. =-
+-= Start dblook Functional Tests. =-
Creating database 'wombat' from ddl script 'dblook_makeDB.sql'
Dumping system tables for 'wombat'
----------------=================---------------
@@ -4628,7 +4628,11 @@
Dumping DDL w/ invalid url, and writing
error to the log:
*******************************************
-File dblook.log was NOT empty; refer to that file (in the test directory) to see its contents.
+File dblook.log was NOT empty. Contents are:
+############## Begin File Contents ################
+java.sql.SQLException: No suitable driver
+-- **--> DEBUG: No suitable driver
+############## End File Contents ################
Creating database 'wombat_new' from ddl script 'wombat.sql'
Dumping system tables for 'wombat_new'
----------------=================---------------
@@ -4655,4 +4659,205 @@
========== SYSTRIGGERS ==========
========== SYSVIEWS ==========
Database 'wombat_new' deleted.
+-= Start dblook Message Tests =-
+Database 'wombat' deleted.
+Creating database 'wombat' from ddl script 'dblook_makeDB_2.sql'
+************
+Msg Test 1
+************
+--
+*******************************************
+Dumping full schema for 'wombat'
+to file 'wombat.sql':
+*******************************************
+File wombat.sql was NOT empty. Contents are:
+############## Begin File Contents ################
+-- ============================
+-- This file was created using Derby's dblook utility.
+-- Timestamp: xxxxxxFILTERED-TIMESTAMPxxxxx
+-- Source database is: <dbPath>
+-- Connection URL is: <dbURL>
+-- appendLogs: false
+-- ----------------------------------------------
+-- DDL Statements for schemas
+-- ----------------------------------------------
+CREATE SCHEMA "BAR"
+-- ----------------------------------------------
+-- DDL Statements for jars
+-- **** NOTE **** In order for jar files to be loaded correctly,
+-- you must either 1) ensure that the DBJARS directory (created
+-- automatically by dblook) exists where it was created (i.e. at
+-- the path shown in the statements below), or else 2) change the
+-- path in the statements below to reflect the current location of
+-- DBJARS. If the DBJARS directory does not exist, or if it
+-- has been moved and the path is not correct, the following DDL
+-- statements will throw errors, and the jar files will NOT be
+-- loaded.
+-- ----------------------------------------------
+CALL SQLJ.INSTALL_JAR(<maskedOutJarDesc>)
+-- ----------------------------------------------
+-- DDL Statements for stored procedures
+-- ----------------------------------------------
+CREATE PROCEDURE "APP"."PROC1" (INOUT A CHAR(10),IN B INTEGER) LANGUAGE JAVA PARAMETER STYLE JAVA CONTAINS SQL DYNAMIC RESULT SETS 4 EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.inoutparams3'
+-- ----------------------------------------------
+-- DDL Statements for tables
+-- ----------------------------------------------
+CREATE TABLE "BAR"."T1" ("C" CHAR(5) NOT NULL, "I" INTEGER, "VC" VARCHAR(10), "FKCHAR" CHAR(5))
+-- ----------------------------------------------
+-- DDL Statements for indexes
+-- ----------------------------------------------
+CREATE INDEX "BAR"."IX1" ON "BAR"."T1" ("I" DESC)
+-- ----------------------------------------------
+-- DDL Statements for keys
+-- ----------------------------------------------
+-- primary/unique
+ALTER TABLE "BAR"."T1" ADD CONSTRAINT "xxxxGENERATED-IDxxxx" PRIMARY KEY ("C")
+-- foreign
+ALTER TABLE "BAR"."T1" ADD CONSTRAINT "xxxxGENERATED-IDxxxx" FOREIGN KEY ("FKCHAR") REFERENCES "BAR"."T1" ("C") ON DELETE NO ACTION ON UPDATE NO ACTION
+-- ----------------------------------------------
+-- DDL Statements for checks
+-- ----------------------------------------------
+ALTER TABLE "BAR"."T1" ADD CONSTRAINT "NOTEVIL" CHECK (vc != 'evil')
+-- ----------------------------------------------
+-- DDL Statements for views
+-- ----------------------------------------------
+SET SCHEMA "APP"
+create view v1 (dum, dee, dokie) as select a.c, a.i, a.vc from bar.t1 as a
+-- Reverting back to default schema 'APP'
+SET SCHEMA "APP"
+-- ----------------------------------------------
+-- DDL Statements for triggers
+-- ----------------------------------------------
+CREATE TRIGGER "APP"."TRIGONE" AFTER INSERT ON "BAR"."T1" FOR EACH ROW MODE DB2SQL update bar.t1 set i = 4 where i = 2
+############## End File Contents ################
+File dblook.log was empty.
+************
+Msg Test 2
+************
+File wombat.sql was NOT empty. Contents are:
+############## Begin File Contents ################
+-- ============================
+-- This file was created using Derby's dblook utility.
+-- Timestamp: xxxxxxFILTERED-TIMESTAMPxxxxx
+-- Source database is: <dbPath>
+-- Connection URL is: <dbURL>
+-- The dblook utility will consider only specified tables.
+-- Specified schema is: bar
+-- appendLogs: false
+-- ----------------------------------------------
+-- DDL Statements for schemas
+-- ----------------------------------------------
+CREATE SCHEMA "BAR";
+-- ----------------------------------------------
+-- DDL Statements for tables
+-- ----------------------------------------------
+CREATE TABLE "BAR"."T1" ("C" CHAR(5) NOT NULL, "I" INTEGER, "VC" VARCHAR(10), "FKCHAR" CHAR(5));
+-- ----------------------------------------------
+-- DDL Statements for indexes
+-- ----------------------------------------------
+CREATE INDEX "BAR"."IX1" ON "BAR"."T1" ("I" DESC);
+-- ----------------------------------------------
+-- DDL Statements for keys
+-- ----------------------------------------------
+-- primary/unique
+ALTER TABLE "BAR"."T1" ADD CONSTRAINT "xxxxGENERATED-IDxxxx" PRIMARY KEY ("C");
+-- foreign
+ALTER TABLE "BAR"."T1" ADD CONSTRAINT "xxxxGENERATED-IDxxxx" FOREIGN KEY ("FKCHAR") REFERENCES "BAR"."T1" ("C") ON DELETE NO ACTION ON UPDATE NO ACTION;
+-- ----------------------------------------------
+-- DDL Statements for checks
+-- ----------------------------------------------
+ALTER TABLE "BAR"."T1" ADD CONSTRAINT "NOTEVIL" CHECK (vc != 'evil');
+############## End File Contents ################
+File dblook.log was empty.
+************
+Msg Test 3
+************
+ USAGE:
+ java org.apache.derby.tools.dblook -d <sourceDBUrl> [OPTIONS]
+ where the source URL is the full URL, including the connection protocol
+ and any connection attributes that might apply. For example, use
+ 'jdbc:derby:myDB', or 'jdbc:derby:net://localhost:1527/myDB:user=usr;'.
+ options include:
+ -z <schemaName> to specify a schema to which the DDL generation
+ should be limited. Only database objects with that schema will have
+ their DDL generated.
+ -t <tableOne> <tableTwo> ... to specify a list of tables for which
+ the DDL will be generated; any tables not in the list will be ignored.
+ -td <value> to specify what should be appended to the end
+ of each DDL statement.
+ This defaults to ';'.
+ -noview to prevent the generation of DDL for views.
+ -append to keep from overwriting the output files.
+ -verbose to have error messages printed to the console (in addition
+ to the log file). If not specified, errors will only be printed to the
+ log file.
+ -o <filename> to specify the file name to which the generated DDL
+ will be written.
+ If not specified, default is the console.
+************
+Msg Test 4
+************
+-- Timestamp: xxxxxxFILTERED-TIMESTAMPxxxxx
+-- Source database is: <dbPath>
+-- Connection URL is: <dbURL>
+-- appendLogs: false
+-- ----------------------------------------------
+-- DDL Statements for schemas
+-- ----------------------------------------------
+CREATE SCHEMA "BAR" #
+-- ----------------------------------------------
+-- DDL Statements for jars
+-- **** NOTE **** In order for jar files to be loaded correctly,
+-- you must either 1) ensure that the DBJARS directory (created
+-- automatically by dblook) exists where it was created (i.e. at
+-- the path shown in the statements below), or else 2) change the
+-- path in the statements below to reflect the current location of
+-- DBJARS. If the DBJARS directory does not exist, or if it
+-- has been moved and the path is not correct, the following DDL
+-- statements will throw errors, and the jar files will NOT be
+-- loaded.
+-- ----------------------------------------------
+CALL SQLJ.INSTALL_JAR(<maskedOutJarDesc>)
+-- ----------------------------------------------
+-- DDL Statements for stored procedures
+-- ----------------------------------------------
+CREATE PROCEDURE "APP"."PROC1" (INOUT A CHAR(10),IN B INTEGER) LANGUAGE JAVA PARAMETER STYLE JAVA CONTAINS SQL DYNAMIC RESULT SETS 4 EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.inoutparams3' #
+-- ----------------------------------------------
+-- DDL Statements for tables
+-- ----------------------------------------------
+CREATE TABLE "BAR"."T1" ("C" CHAR(5) NOT NULL, "I" INTEGER, "VC" VARCHAR(10), "FKCHAR" CHAR(5)) #
+-- ----------------------------------------------
+-- DDL Statements for indexes
+-- ----------------------------------------------
+CREATE INDEX "BAR"."IX1" ON "BAR"."T1" ("I" DESC) #
+-- ----------------------------------------------
+-- DDL Statements for keys
+-- ----------------------------------------------
+-- primary/unique
+ALTER TABLE "BAR"."T1" ADD CONSTRAINT "xxxxGENERATED-IDxxxx" PRIMARY KEY ("C") #
+-- foreign
+ALTER TABLE "BAR"."T1" ADD CONSTRAINT "xxxxGENERATED-IDxxxx" FOREIGN KEY ("FKCHAR") REFERENCES "BAR"."T1" ("C") ON DELETE NO ACTION ON UPDATE NO ACTION #
+-- ----------------------------------------------
+-- DDL Statements for checks
+-- ----------------------------------------------
+ALTER TABLE "BAR"."T1" ADD CONSTRAINT "NOTEVIL" CHECK (vc != 'evil') #
+-- ----------------------------------------------
+-- DDL Statements for views
+-- ----------------------------------------------
+SET SCHEMA "APP" #
+create view v1 (dum, dee, dokie) as select a.c, a.i, a.vc from bar.t1 as a #
+-- Reverting back to default schema 'APP'
+SET SCHEMA "APP" #
+-- ----------------------------------------------
+-- DDL Statements for triggers
+-- ----------------------------------------------
+CREATE TRIGGER "APP"."TRIGONE" AFTER INSERT ON "BAR"."T1" FOR EACH ROW MODE DB2SQL update bar.t1 set i = 4 where i = 2 #
+************
+Msg Test 5
+************
+File dblook.log was NOT empty. Contents are:
+############## Begin File Contents ################
+-- **--> DEBUG: Failed to load jar file <jarFilePath>
+java.io.FileNotFoundException: <filePath>
+############## End File Contents ################
[ Done. ]
Modified: incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/dblook_test_net.java
Url: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/dblook_test_net.java?view=diff&rev=148965&p1=incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/dblook_test_net.java&r1=148964&p2=incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/dblook_test_net.java&r2=148965
==============================================================================
--- incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/dblook_test_net.java (original)
+++ incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/dblook_test_net.java Fri Jan 28 16:33:16 2005
@@ -47,7 +47,7 @@
try {
- createTestDatabase();
+ createTestDatabase(dbCreationScript_1);
// Don't let error stream ruin the diff.
System.err.close();
Modified: incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/copyfiles.ant
Url: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/copyfiles.ant?view=diff&rev=148965&p1=incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/copyfiles.ant&r1=148964&p2=incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/copyfiles.ant&r2=148965
==============================================================================
--- incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/copyfiles.ant (original)
+++ incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/copyfiles.ant Fri Jan 28 16:33:16 2005
@@ -1,5 +1,7 @@
default_app.properties
default_derby.properties
dblook_makeDB.sql
+dblook_makeDB_2.sql
dblook_test.jar
dblook_test_app.properties
+dblook_test_sed.properties
Copied: incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_makeDB_2.sql (from r111185, incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_makeDB_2.sql)
Url: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_makeDB_2.sql?view=diff&rev=148965&p1=incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_makeDB_2.sql&r1=111185&p2=incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_makeDB_2.sql&r2=148965
==============================================================================
Modified: incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test.java
Url: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test.java?view=diff&rev=148965&p1=incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test.java&r1=148964&p2=incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test.java&r2=148965
==============================================================================
--- incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test.java (original)
+++ incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test.java Fri Jan 28 16:33:16 2005
@@ -53,7 +53,8 @@
private static final int FRONT = -1;
private static final int REAR = 1;
- private static final String testDBCreationScript = "dblook_makeDB.sql";
+ protected static final String dbCreationScript_1 = "dblook_makeDB.sql";
+ protected static final String dbCreationScript_2 = "dblook_makeDB_2.sql";
private static final char TEST_DELIMITER='#';
protected static String testDirectory = "dblook_test/";
@@ -72,7 +73,6 @@
public static void main (String[] args) {
- System.out.println("\n-= Start Test. =-");
separator = System.getProperty("file.separator");
new dblook_test().doTest();
System.out.println("\n[ Done. ]\n");
@@ -88,23 +88,30 @@
try {
- createTestDatabase();
- runCSLook(testDBName);
+ // Test full dblook functionality.
+ System.out.println("\n-= Start dblook Functional Tests. =-");
+ createTestDatabase(dbCreationScript_1);
+ runDBLook(testDBName);
+
+ // Test dblook messages.
+ System.out.println("\n-= Start dblook Message Tests =-");
+ createTestDatabase(dbCreationScript_2);
+ runMessageCheckTest(testDBName);
} catch (SQLException se) {
System.out.println("FAILED: to complete the test:");
- se.printStackTrace();
+ se.printStackTrace(System.out);
for (se = se.getNextException(); se != null;
se = se.getNextException())
{
- se.printStackTrace();
+ se.printStackTrace(System.out);
}
} catch (Exception e) {
System.out.println("FAILED: to complete the test:");
- e.printStackTrace();
+ e.printStackTrace(System.out);
}
@@ -116,18 +123,28 @@
* the test package, create the database that
* will be used as the basis for all dblook
* tests.
+ * @param scriptName The name of the sql script
+ * to use for creating the test database.
* @return The test database has been created
* in the current test directory, which is
* "./dblook/" (as created by the harness).
****/
- protected void createTestDatabase()
+ protected void createTestDatabase(String scriptName)
throws Exception
{
+ // Delete existing database, if it exists.
+ try {
+ deleteDB(testDBName);
+ } catch (Exception e) {
+ System.out.println("** Warning: failed to delete " +
+ "old test db before creating a new one...");
+ }
+
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
jdbcProtocol = "jdbc:derby:";
- createDBFromDDL(testDBName, testDBCreationScript);
+ createDBFromDDL(testDBName, scriptName);
// Figure out where our database directory is (abs path).
dbPath = (new File(testDirectory)).getAbsolutePath();
@@ -136,7 +153,7 @@
}
/* **********************************************
- * runCSLook:
+ * runDBLook:
* Runs a series of tests using dblook on
* the received database.
* @param dbName The name of the database on which to
@@ -146,7 +163,7 @@
* has been run.
****/
- private void runCSLook(String dbName)
+ private void runDBLook(String dbName)
throws Exception
{
@@ -169,7 +186,6 @@
lookOne(dbName);
dumpFileToSysOut("dblook.log");
-
// Now, create new db from the DDL that
// was generated by dblook.
String newDBName = dbName + "_new";
@@ -273,17 +289,17 @@
} catch (SQLException e) {
System.out.println("FAILED: Test # : " + whichTest);
- System.out.println(e.getMessage());
+ e.printStackTrace(System.out);
for (e = e.getNextException(); e != null;
e = e.getNextException())
{
- System.out.println(e.getMessage());
+ e.printStackTrace(System.out);
}
} catch (Exception e) {
System.out.println("FAILED: Test # : " + whichTest);
- System.out.println(e.getMessage());
+ e.printStackTrace(System.out);
}
@@ -382,18 +398,17 @@
} catch (SQLException e) {}
// Run the test.
+ try {
- dblook looker = new dblook(new String[] {
- "-d", sourceDBUrl,
- "-o", dbName + ".sql",
- "-td", "" }
- );
+ new dblook(new String[] {
+ "-d", sourceDBUrl,
+ "-o", dbName + ".sql",
+ "-td", "" }
+ );
- try {
- looker.go(sourceDBUrl, dbPath + separator + dbName);
} catch (Exception e) {
System.out.println("FAILED: ");
- e.printStackTrace();
+ e.printStackTrace(System.out);
}
return;
@@ -483,15 +498,10 @@
"writing\nerror to the log:\n");
// Url is intentionally incorrect; it will cause an error.
- dblook looker = new dblook(new String[] {
+ new dblook(new String[] {
"-o", dbName + ".sql",
"-d", dbName }
);
- try {
- looker.go(dbName, dbName);
- } catch (Exception e) {
- // we expect it to go wrong.
- }
}
@@ -540,19 +550,129 @@
String sourceDBUrl = jdbcProtocol + dbPath +
separator + dbName;
- String [] fullArgs = new String[args.length+3];
+ String [] fullArgs = new String[args.length+2];
fullArgs[0] = "-d";
fullArgs[1] = sourceDBUrl;
- fullArgs[2] = "-append";
- for (int i = 3; i < fullArgs.length; i++)
- fullArgs[i] = args[i-3];
+ for (int i = 2; i < fullArgs.length; i++)
+ fullArgs[i] = args[i-2];
- dblook looker = new dblook(fullArgs);
try {
- looker.go(sourceDBUrl, dbPath + separator + dbName);
+ new dblook(fullArgs);
} catch (Exception e) {
- System.out.println("FAILED: ");
- e.printStackTrace();
+ System.out.println("FAILED: to run dblook: ");
+ e.printStackTrace(System.out);
+ }
+
+ }
+
+ /* **********************************************
+ * runMessageCheckTest
+ * Run dblook and verify that all of the dblook
+ * messages are correctly displayed.
+ * @param dbName The name of the source database (i.e.
+ * the database for which the DDL is generated).
+ * @return The DDL for a simple database, plus all
+ * dblook messages, have been generated and written
+ * to System.out.
+ ****/
+ private void runMessageCheckTest(String dbName)
+ throws Exception
+ {
+
+ // #1: First, run DB look standard to check for
+ // all of the "header" messages that are printed
+ // out along with DDL.
+ System.out.println("\n************\n" +
+ "Msg Test 1\n" +
+ "************\n");
+ lookOne(dbName);
+ dumpFileToSysOut(dbName + ".sql");
+ dumpFileToSysOut("dblook.log");
+
+ // Now, we have to run some additional dblook commands
+ // to get the "non-standard" messages.
+
+ // #2: Specify a target table and target schema, to
+ // make sure they are echoed correctly. Also, specify
+ // an output file to make sure the file creation header
+ // is printed in the file.
+ System.out.println(
+ "\n************\n" +
+ "Msg Test 2\n" +
+ "************\n");
+ go(dbName, new String [] {
+ "-t", "t1",
+ "-z", "bar",
+ "-o", dbName + ".sql"
+ });
+ dumpFileToSysOut(dbName + ".sql");
+ dumpFileToSysOut("dblook.log");
+
+ // #3: Run without specifying a database, to make
+ // sure the usage message is printed to System.out
+ System.out.println(
+ "\n************\n" +
+ "Msg Test 3\n" +
+ "************\n");
+ try {
+ new dblook(new String[] { "-verbose" });
+ } catch (Exception e) {
+ System.out.println("FAILED: to run dblook: ");
+ e.printStackTrace(System.out);
+ }
+
+ // #4: Just to confirm, try once with a statement
+ // delimiter, to make sure it's actually working
+ // correctly (this isn't a "message" per se, but
+ // still, it's worth verifying).
+ System.out.println(
+ "\n************\n" +
+ "Msg Test 4\n" +
+ "************\n");
+ go(dbName, new String [] {
+ "-td", " " + TEST_DELIMITER
+ });
+
+ // #5: Intentionally create an error while loading
+ // a jar file, to make sure the resultant message is
+ // printed correctly.
+ System.out.println(
+ "\n************\n" +
+ "Msg Test 5\n" +
+ "************\n");
+
+ // We'll cause the error by going in and deleting
+ // the jar file from the test database. First,
+ // get the jar path.
+ String jarPath = (new
+ File(dbPath + separator + dbName)).getAbsolutePath();
+
+ // Have to shut db down before we can mess with it.
+ try {
+ Connection conn =
+ DriverManager.getConnection("jdbc:derby:" +
+ jarPath + ";shutdown=true");
+ conn.close();
+ } catch (SQLException se) {
+ // shutdown exception.
+ }
+
+ jarPath = jarPath + separator + "jar";
+ deleteFile(new File(jarPath));
+
+ // Now that we've deleted the jar file, run dblook
+ // and check the error.
+ go(dbName, new String [] {
+ "-verbose",
+ "-o", dbName + ".sql"
+ });
+ dumpFileToSysOut("dblook.log");
+
+ // Clean up.
+ try {
+ deleteFile(new File(dbName + ".sql"));
+ } catch (Exception e) {
+ // not too big of a deal if we fail; just ignore...
}
}
@@ -1388,19 +1508,30 @@
try {
- BufferedReader logFile =
+ BufferedReader dumpFile =
new BufferedReader(new FileReader(fName));
- if (logFile.readLine() != null)
+ String line = dumpFile.readLine();
+ if (line != null) {
System.out.println("File " + fName + " was NOT " +
- "empty; refer to that file (in the test " +
- "directory) to see its contents.");
+ "empty. Contents are:\n" +
+ "############## Begin File Contents ################\n");
+ do {
+ System.out.println(line);
+ line = dumpFile.readLine();
+ } while (line != null);
+ System.out.println(
+ "############## End File Contents ################");
+ }
else
System.out.println("File " + fName + " was empty.");
+ // Close the file.
+ dumpFile.close();
+
} catch (Exception e) {
- System.out.println("FAILED: to dump log file.");
- e.printStackTrace();
+ System.out.println("FAILED: to dump file '" + fName + "'");
+ e.printStackTrace(System.out);
}
return;
Modified: incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test_app.properties
Url: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test_app.properties?view=diff&rev=148965&p1=incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test_app.properties&r1=148964&p2=incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test_app.properties&r2=148965
==============================================================================
--- incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test_app.properties (original)
+++ incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test_app.properties Fri Jan 28 16:33:16 2005
@@ -1 +1 @@
-supportfiles=tests/tools/dblook_makeDB.sql,tests/tools/dblook_test.jar
+supportfiles=tests/tools/dblook_makeDB.sql,tests/tools/dblook_makeDB_2.sql,tests/tools/dblook_test.jar
Copied: incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test_sed.properties (from r111185, incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test_sed.properties)
Url: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test_sed.properties?view=diff&rev=148965&p1=incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test_sed.properties&r1=111185&p2=incubator/derby/code/branches/10.0/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_test_sed.properties&r2=148965
==============================================================================
Modified: incubator/derby/code/branches/10.0/java/tools/org/apache/derby/impl/tools/dblook/DB_Jar.java
Url: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.0/java/tools/org/apache/derby/impl/tools/dblook/DB_Jar.java?view=diff&rev=148965&p1=incubator/derby/code/branches/10.0/java/tools/org/apache/derby/impl/tools/dblook/DB_Jar.java&r1=148964&p2=incubator/derby/code/branches/10.0/java/tools/org/apache/derby/impl/tools/dblook/DB_Jar.java&r2=148965
==============================================================================
--- incubator/derby/code/branches/10.0/java/tools/org/apache/derby/impl/tools/dblook/DB_Jar.java (original)
+++ incubator/derby/code/branches/10.0/java/tools/org/apache/derby/impl/tools/dblook/DB_Jar.java Fri Jan 28 16:33:16 2005
@@ -89,13 +89,13 @@
oldJarPath.append(schemaWithoutQuotes);
oldJarPath.append(jarFullName);
- // Copy jar file to CSJARS directory.
+ // Copy jar file to DBJARS directory.
String absJarDir = null;
try {
- // Create the CSJARS directory.
+ // Create the DBJARS directory.
File jarDir = new File(System.getProperty("user.dir") +
- separator + "CSJARS" + separator + schemaWithoutQuotes);
+ separator + "DBJARS" + separator + schemaWithoutQuotes);
absJarDir = jarDir.getAbsolutePath();
jarDir.mkdirs();
@@ -126,7 +126,7 @@
continue;
}
- // Now, add the DDL to read the jar from CSJARS.
+ // Now, add the DDL to read the jar from DBJARS.
StringBuffer loadJarString = new StringBuffer();
loadJarString.append("CALL SQLJ.INSTALL_JAR('file:");
loadJarString.append(absJarDir);
Modified: incubator/derby/code/branches/10.0/java/tools/org/apache/derby/impl/tools/dblook/Logs.java
Url: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.0/java/tools/org/apache/derby/impl/tools/dblook/Logs.java?view=diff&rev=148965&p1=incubator/derby/code/branches/10.0/java/tools/org/apache/derby/impl/tools/dblook/Logs.java&r1=148964&p2=incubator/derby/code/branches/10.0/java/tools/org/apache/derby/impl/tools/dblook/Logs.java&r2=148965
==============================================================================
--- incubator/derby/code/branches/10.0/java/tools/org/apache/derby/impl/tools/dblook/Logs.java (original)
+++ incubator/derby/code/branches/10.0/java/tools/org/apache/derby/impl/tools/dblook/Logs.java Fri Jan 28 16:33:16 2005
@@ -64,8 +64,8 @@
try {
logFile = new PrintWriter(new FileOutputStream(logFileName, appendLogs));
- if (ddlFileName != null)
- ddlFile = new PrintWriter(new FileOutputStream(ddlFileName, appendLogs));
+ ddlFile = (ddlFileName == null) ? null
+ : new PrintWriter(new FileOutputStream(ddlFileName, appendLogs));
verbose = doVerbose;
stmtEnd = endOfStmt;
atLeastOneDebug = false;
Modified: incubator/derby/code/branches/10.0/java/tools/org/apache/derby/tools/dblook.java
Url: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.0/java/tools/org/apache/derby/tools/dblook.java?view=diff&rev=148965&p1=incubator/derby/code/branches/10.0/java/tools/org/apache/derby/tools/dblook.java&r1=148964&p2=incubator/derby/code/branches/10.0/java/tools/org/apache/derby/tools/dblook.java&r2=148965
==============================================================================
--- incubator/derby/code/branches/10.0/java/tools/org/apache/derby/tools/dblook.java (original)
+++ incubator/derby/code/branches/10.0/java/tools/org/apache/derby/tools/dblook.java Fri Jan 28 16:33:16 2005
@@ -89,12 +89,14 @@
public static void main(String[] args) {
- dblook looker = new dblook(args);
try {
- looker.go(sourceDBUrl, sourceDBName);
+ new dblook(args);
} catch (Exception e) {
- // Errors are logged and printed to console according
- // to command line arguments, so just ignore here.
+ // All "normal" errors are logged and printed to
+ // console according to command line arguments,
+ // so if we get here, something unexpected must
+ // have happened; print to error stream.
+ e.printStackTrace();
}
}
@@ -103,11 +105,10 @@
* Constructor:
* Parse the command line, initialize logs, echo program variables,
* and load the Derby driver.
- * @param args args[0] is the database URL. All other command-line
- * parameters are read as system properties.
+ * @param args Array of dblook command-line arguments.
* ****/
- public dblook(String[] args) {
+ public dblook(String[] args) throws Exception {
// Adjust the application in accordance with derby.ui.locale
// and derby.ui.codeset
@@ -119,13 +120,13 @@
// Parse the command line.
if (!parseArgs(args)) {
System.out.println(lookupMessage("DBLOOK_Usage"));
- System.exit(1);
+ return;
}
showVariables();
if (!loadDriver()) {
- // Failed when loading the driver. We already printed
+ // Failed when loading the driver. We already logged
// the exception, so just return.
return;
}
@@ -133,6 +134,9 @@
schemaMap = new HashMap();
tableIdToNameMap = new HashMap();
+ // Now run the utility.
+ go();
+
}
/* ************************************************
@@ -158,9 +162,7 @@
/* ************************************************
* parseArgs:
- * Parse the command-line arguments. There is only one
- * actual argument (database url); the rest of the parameters
- * are read in as System properties.
+ * Parse the command-line arguments.
* @param args args[0] is the url for the source database.
* @return true if all parameters were loaded and the output
* files were successfully created; false otherwise.
@@ -258,10 +260,11 @@
// list of tables.
return extractTableNamesFromList(args, start+1);
return -1;
+
case 'o':
if (!haveVal)
return -1;
- if ((args[start].length() == 2) && (args[start+1].length() > 0)){
+ if ((args[start].length() == 2) && (args[start+1].length() > 0)) {
ddlFileName = args[++start];
return start;
}
@@ -492,18 +495,12 @@
* line), then we enforce that here.
* @precondition all user-specified parameters have
* been loaded.
- * @param srcUrl The full url of the database, as obtained
- * from parseArgs().
- * @param srcName The name of the database (as opposed to
- * the URL), as obtained from parseArgs(). This is
- * needed for locating any jar files that might'
- * exist in the source database.
* @return DDL for the source database has been
* generated and printed to output, subject to
* user-specified restrictions.
* ****/
- public void go(String srcUrl, String srcName)
+ private void go()
throws Exception
{
@@ -512,20 +509,8 @@
// Connect to the database, prepare statements,
// and load id-to-name mappings.
- this.conn = DriverManager.getConnection(srcUrl);
- try {
- prepForDump();
- } catch (SQLException sqlE) {
- Logs.debug(sqlE);
- Logs.debug(Logs.unRollExceptions(sqlE), (String)null);
- Logs.cleanup();
- return;
- }
- catch (Exception e) {
- Logs.debug(e);
- Logs.cleanup();
- return;
- }
+ this.conn = DriverManager.getConnection(sourceDBUrl);
+ prepForDump();
// Generate DDL.
@@ -536,7 +521,7 @@
if (tableList == null) {
// Don't do these if user just wants table-related objects.
- DB_Jar.doJars(srcName, this.conn);
+ DB_Jar.doJars(sourceDBName, this.conn);
DB_StoredProcedure.doStoredProcedures(this.conn);
}
@@ -561,18 +546,20 @@
Logs.debug(sqlE);
Logs.debug(Logs.unRollExceptions(sqlE), (String)null);
Logs.cleanup();
- throw sqlE;
+ return;
}
catch (Exception e)
{
Logs.debug(e);
Logs.cleanup();
- throw e;
+ return;
}
finally {
// Close our connection.
- conn.commit();
- conn.close();
+ if (conn != null) {
+ conn.commit();
+ conn.close();
+ }
}
}
@@ -757,11 +744,15 @@
if (quotedName == null)
return null;
- if ((quotedName.indexOf("\"") == -1) &&
- (quotedName.indexOf("'") == -1))
- // nothing to do.
+ if (!(quotedName.startsWith("'") || quotedName.startsWith("\"")))
+ // name doesn't _start_ with a quote, so we do nothing.
+ return quotedName;
+
+ if (!(quotedName.endsWith("'") || quotedName.endsWith("\"")))
+ // name doesn't _end_ with a quote, so we do nothing.
return quotedName;
+ // Remove starting and ending quotes.
return quotedName.substring(1, quotedName.length() - 1);
}
@@ -1127,7 +1118,7 @@
} catch (Exception e) {
// if something went wrong, just return the string as is--
// worst case is that the generated DDL is correct, it just
- // can't be run in a DB2 CLP script (because of the newline
+ // can't be run in some SQL script apps (because of the newline
// characters).
return str;
}