You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2007/05/17 09:49:30 UTC
svn commit: r538822 - in /incubator/tuscany/java/das/samples/dbconfig: ./
src/main/java/org/apache/tuscany/das/rdb/dbconfig/ src/main/resources/
src/test/resources/
Author: lresende
Date: Thu May 17 00:49:29 2007
New Revision: 538822
URL: http://svn.apache.org/viewvc?view=rev&rev=538822
Log:
Updates to TUSCANY-863 from Amita's patch
Modified:
incubator/tuscany/java/das/samples/dbconfig/readme.html
incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBConnectionHelper.java
incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBDataHelper.java
incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBHelper.java
incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBInitializer.java
incubator/tuscany/java/das/samples/dbconfig/src/main/resources/CannedSampleDBConfig.xml
incubator/tuscany/java/das/samples/dbconfig/src/test/resources/dbConfig.xml
Modified: incubator/tuscany/java/das/samples/dbconfig/readme.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/samples/dbconfig/readme.html?view=diff&rev=538822&r1=538821&r2=538822
==============================================================================
--- incubator/tuscany/java/das/samples/dbconfig/readme.html (original)
+++ incubator/tuscany/java/das/samples/dbconfig/readme.html Thu May 17 00:49:29 2007
@@ -1,42 +1,48 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns:v="urn:schemas-microsoft-com:vml"
- 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">
+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 http-equiv="Content-Type"
- content="text/html; charset=windows-1252">
- <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>Tuscany RDB DAS Database Setup Utility/title></title>
- <o:smarttagtype
- namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="City"></o:smarttagtype>
- <o:smarttagtype
- namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="State"></o:smarttagtype><o:smarttagtype
- namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="place"></o:smarttagtype><!--[if gte mso 9]><xml>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<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>Tuscany RDB DAS Database Setup Utility/title></title>
+<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"/>
+<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>IBM_USER</o:Author>
- <o:LastAuthor>IBM_USER</o:LastAuthor>
- <o:Revision>5</o:Revision>
- <o:TotalTime>25</o:TotalTime>
+ <o:LastAuthor>IBM_User</o:LastAuthor>
+ <o:Revision>23</o:Revision>
+ <o:TotalTime>58</o:TotalTime>
<o:Created>2006-10-19T16:54:00Z</o:Created>
- <o:LastSaved>2006-10-24T16:41:00Z</o:LastSaved>
+ <o:LastSaved>2007-05-17T06:46:00Z</o:LastSaved>
<o:Pages>1</o:Pages>
- <o:Words>739</o:Words>
- <o:Characters>4216</o:Characters>
+ <o:Words>730</o:Words>
+ <o:Characters>4167</o:Characters>
<o:Company>IBM</o:Company>
- <o:Lines>35</o:Lines>
+ <o:Lines>34</o:Lines>
<o:Paragraphs>9</o:Paragraphs>
- <o:CharactersWithSpaces>4946</o:CharactersWithSpaces>
- <o:Version>10.6735</o:Version>
+ <o:CharactersWithSpaces>4888</o:CharactersWithSpaces>
+ <o:Version>10.3501</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
@@ -45,8 +51,24 @@
st1\:*{behavior:url(#ieooui) }
</style>
<![endif]-->
- <style>
+<style>
<!--
+ /* Font Definitions */
+ @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:"";
@@ -127,224 +149,9 @@
mso-paper-source:0;}
div.Section1
{page:Section1;}
- /* List Definitions */
- @list l0
- {mso-list-id:486359905;
- mso-list-template-ids:631539286;}
-@list l0:level1
- {mso-level-start-at:7;
- mso-level-tab-stop:.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l0:level2
- {mso-level-number-format:alpha-lower;
- mso-level-tab-stop:1.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l1
- {mso-list-id:621955822;
- mso-list-template-ids:-1687880648;}
-@list l2
- {mso-list-id:646667692;
- mso-list-type:hybrid;
- mso-list-template-ids:-728441462 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
-@list l2:level1
- {mso-level-number-format:bullet;
- mso-level-text:\F0B7;
- mso-level-tab-stop:.5in;
- mso-level-number-position:left;
- text-indent:-.25in;
- font-family:Symbol;}
-@list l2:level2
- {mso-level-tab-stop:1.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l2:level3
- {mso-level-tab-stop:1.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l2:level4
- {mso-level-tab-stop:2.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l2:level5
- {mso-level-tab-stop:2.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l2:level6
- {mso-level-tab-stop:3.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l2:level7
- {mso-level-tab-stop:3.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l2:level8
- {mso-level-tab-stop:4.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l2:level9
- {mso-level-tab-stop:4.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l3
- {mso-list-id:975526902;
- mso-list-type:hybrid;
- mso-list-template-ids:1435802096 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
-@list l3:level1
- {mso-level-tab-stop:.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l3:level2
- {mso-level-tab-stop:1.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l3:level3
- {mso-level-tab-stop:1.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l3:level4
- {mso-level-tab-stop:2.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l3:level5
- {mso-level-tab-stop:2.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l3:level6
- {mso-level-tab-stop:3.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l3:level7
- {mso-level-tab-stop:3.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l3:level8
- {mso-level-tab-stop:4.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l3:level9
- {mso-level-tab-stop:4.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l4
- {mso-list-id:1305811547;
- mso-list-type:hybrid;
- mso-list-template-ids:1677090400 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
-@list l4:level1
- {mso-level-tab-stop:.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l4:level2
- {mso-level-number-format:alpha-lower;
- mso-level-tab-stop:1.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l4:level3
- {mso-level-number-format:roman-lower;
- mso-level-tab-stop:1.5in;
- mso-level-number-position:right;
- text-indent:-9.0pt;}
-@list l4:level4
- {mso-level-tab-stop:2.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l4:level5
- {mso-level-tab-stop:2.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l4:level6
- {mso-level-tab-stop:3.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l4:level7
- {mso-level-tab-stop:3.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l4:level8
- {mso-level-tab-stop:4.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l4:level9
- {mso-level-tab-stop:4.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l5
- {mso-list-id:1502042143;
- mso-list-template-ids:-751028068;}
-@list l6
- {mso-list-id:1605966365;
- mso-list-type:hybrid;
- mso-list-template-ids:14685132 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
-@list l6:level1
- {mso-level-tab-stop:.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l6:level2
- {mso-level-tab-stop:1.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l6:level3
- {mso-level-tab-stop:1.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l6:level4
- {mso-level-tab-stop:2.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l6:level5
- {mso-level-tab-stop:2.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l6:level6
- {mso-level-tab-stop:3.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l6:level7
- {mso-level-tab-stop:3.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l6:level8
- {mso-level-tab-stop:4.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l6:level9
- {mso-level-tab-stop:4.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l7
- {mso-list-id:1898277882;
- mso-list-template-ids:822871964;}
-@list l7:level2
- {mso-level-number-format:alpha-lower;
- mso-level-tab-stop:1.0in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-@list l8
- {mso-list-id:2031451446;
- mso-list-template-ids:-2051742690;}
-@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 l9
- {mso-list-id:2084135049;
- mso-list-template-ids:2028617002;}
-@list l9:level1
- {mso-level-start-at:8;
- mso-level-tab-stop:.5in;
- mso-level-number-position:left;
- text-indent:-.25in;}
-ol
- {margin-bottom:0in;}
-ul
- {margin-bottom:0in;}
-->
- </style><!--[if gte mso 10]>
+</style>
+<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
@@ -365,14 +172,16 @@
<u1:idmap u2:ext="edit" data="1"/>
</u1:shapelayout>
</xml><![endif]--><!--[if gte mso 9]><xml>
- <o:shapedefaults v:ext="edit" spidmax="3074"/>
+ <o:shapedefaults v:ext="edit" spidmax="5122"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
</o:shapelayout></xml><![endif]-->
</head>
-<body lang="EN-US" link="blue" vlink="purple" style="">
-<div class="Section1"><!--
+
+<body lang=EN-US link=blue vlink=purple style='tab-interval:.5in'>
+
+<div class=Section1><!--
<p class=MsoNormal><span style="font-size: 9pt"> </span></p>
@@ -398,218 +207,391 @@
<o:p> </o:p></span></p>
-->
-<h1><st1:state><st1:place>Tuscany</st1:place></st1:state> RDB DAS
-Database Setup Utility<o:p></o:p></h1>
-<p class="MsoNormal"><u3:p> </u3:p></p>
-<p class="MsoNormal">This utility provides a jar file to be used by RDB
-DAS
-sample applications (web or standalone) to do database setup. <br>
-</p>
-<p class="MsoNormal"><br>
-So far the samples provided canned pre-created Derby database
-with tables and data.
- There was no convenient way to refresh
-table data during the samples execution. This
-utility supports Derby database at present.<o:p></o:p></p>
-<p class="MsoNormal"><u3:p> <br>
-The Database Setup Utility uses a config file to get the setup
-information and exposes following APIs:-<br>
-</u3:p></p>
-<h1><span style="font-size: 12pt; font-family: "Times New Roman";">public
-DBInitHelper(String ConfigFileLocation)<u3:p></u3:p></span></h1>
-<h1><span style="font-size: 12pt; font-family: "Times New Roman";">public
-DBInitHelper(InputStream ConfigFileStream)<u3:p></u3:p></span></h1>
-<h1><span style="font-size: 12pt; font-family: "Times New Roman";">public void initializeDB(boolean force) - Create database tables and fill data. If force=true, all tables will be dropped and recreated.<u3:p></u3:p>
-</span></h1>
-<h1><span style="font-size: 12pt; font-family: "Times New Roman";">public void
-createSchema(boolean force) - create database tables (with force=true,
-if a table pre-exists, it will be dropped and
-recreated)<u3:p></u3:p></span></h1>
-<h1><span style="font-size: 12pt; font-family: "Times New Roman";">public void
-boolean deleteSchema() - delete all database tables, returns false on failure <u3:p></u3:p></span></h1>
-<h1><span style="font-size: 12pt; font-family: "Times New Roman";">public void
-refreshData(boolean force) - populate tables data (with force=true, if
-data pre-exists, it will be deleted and fresh data will be inserted)<u3:p></u3:p></span></h1>
-<h1><span style="font-size: 12pt; font-family: "Times New Roman";">public
-boolean deleteData() - delete data from tables, return false on failure<u3:p></u3:p></span></h1>
-<h1><span style="font-size: 12pt; font-family: "Times New Roman";">public
-boolean isSchemaCreated() - will return
-true, if the tables exist in the database<u3:p></u3:p></span></h1>
-<h1><span style="font-size: 12pt; font-family: "Times New Roman";">public
-boolean isDataCreated() - will return
-true, if the tables have data<u3:p></u3:p></span></h1>
-<p class="MsoNormal"><u3:p><br>
+
+<h1><st1:state><st1:place>Tuscany</st1:place></st1:state> RDB DAS Database
+Setup Utility<o:p></o:p></h1>
+
+<p class=MsoNormal><u3:p> </u3:p></p>
+
+<p class=MsoNormal>This utility provides a jar file to be used by RDB DAS
+sample applications (web or standalone) to do database setup. </p>
+
+<p class=MsoNormal><br>
+So far the samples provided canned pre-created Derby database with tables
+and data. There was no convenient way to refresh table
+data during the samples execution. This utility<span
+class=GramE> supports</span> <st1:City><st1:place>Derby</st1:place></st1:City>
+database at present and uses a <span class=SpellE>config</span> file to get the
+setup information.</p>
+
+<p class=MsoNormal><br>
+<b>APIs</b></p>
+
+<div style='border:solid blue 1.0pt;mso-border-alt:solid blue .5pt;padding:
+1.0pt 4.0pt 1.0pt 4.0pt'>
+
+<h1 style='border:none;mso-border-alt:solid blue .5pt;padding:0in;mso-padding-alt:
+1.0pt 4.0pt 1.0pt 4.0pt'><span class=GramE><span style='font-size:12.0pt;
+font-family:"Times New Roman"'>public</span></span><span style='font-size:12.0pt;
+font-family:"Times New Roman"'> <span class=SpellE>DBInitializer</span>()<u3:p></u3:p>
+ uses default provided <span class=SpellE>ConfigFile</span> <span
+class=SpellE>CannedSampleDBConfig.xml</span><o:p></o:p></span></h1>
+
+<h1 style='border:none;mso-border-alt:solid blue .5pt;padding:0in;mso-padding-alt:
+1.0pt 4.0pt 1.0pt 4.0pt'><span class=GramE><span style='font-size:12.0pt;
+font-family:"Times New Roman"'>public</span></span><span style='font-size:12.0pt;
+font-family:"Times New Roman"'> <span class=SpellE>DBInitializer</span>(String <span
+class=SpellE>ConfigFileLocation</span>)<u3:p></u3:p></span></h1>
+
+<h1 style='border:none;mso-border-alt:solid blue .5pt;padding:0in;mso-padding-alt:
+1.0pt 4.0pt 1.0pt 4.0pt'><span class=GramE><span style='font-size:12.0pt;
+font-family:"Times New Roman"'>public</span></span><span style='font-size:12.0pt;
+font-family:"Times New Roman"'> <span class=SpellE>DBInitializer</span> (<span
+class=SpellE>InputStream</span> <span class=SpellE>ConfigFileStream</span>)<u3:p></u3:p></span></h1>
+
+<h1 style='border:none;mso-border-alt:solid blue .5pt;padding:0in;mso-padding-alt:
+1.0pt 4.0pt 1.0pt 4.0pt'><span class=GramE><span style='font-size:12.0pt;
+font-family:"Times New Roman"'>public</span></span><span style='font-size:12.0pt;
+font-family:"Times New Roman"'> void <span class=SpellE>initializeDatabase</span>(<span
+class=SpellE>boolean</span> clean) - Create database tables and fill data. If
+clean=true, all tables will be dropped and recreated.<u3:p></u3:p> </span></h1>
+
+<h1 style='border:none;mso-border-alt:solid blue .5pt;padding:0in;mso-padding-alt:
+1.0pt 4.0pt 1.0pt 4.0pt'><span class=GramE><span style='font-size:12.0pt;
+font-family:"Times New Roman"'>public</span></span><span style='font-size:12.0pt;
+font-family:"Times New Roman"'> void <span class=SpellE>initializeDatabaseData</span>(<span
+class=SpellE>boolean</span> clean) - create database data (with clean=true, if
+a table has pre-existing data, it will be deleted first)<u3:p></u3:p></span></h1>
+
+<h1 style='border:none;mso-border-alt:solid blue .5pt;padding:0in;mso-padding-alt:
+1.0pt 4.0pt 1.0pt 4.0pt'><span class=GramE><span style='font-size:12.0pt;
+font-family:"Times New Roman"'>public</span></span><span style='font-size:12.0pt;
+font-family:"Times New Roman"'> void <span class=SpellE>refreshDatabaseData</span>()
+ calls <span class=SpellE>initializeDatabase</span>(clean=true)</span></h1>
+
+<h1 style='border:none;mso-border-alt:solid blue .5pt;padding:0in;mso-padding-alt:
+1.0pt 4.0pt 1.0pt 4.0pt'><span class=GramE><span style='font-size:12.0pt;
+font-family:"Times New Roman"'>public</span></span><span style='font-size:12.0pt;
+font-family:"Times New Roman"'> <span class=SpellE>boolean</span> <span
+class=SpellE>isDatabaseReady</span>() - will return true, if the tables exist
+in the database<u3:p></u3:p></span></h1>
+
+<h1 style='border:none;mso-border-alt:solid blue .5pt;padding:0in;mso-padding-alt:
+1.0pt 4.0pt 1.0pt 4.0pt'><span class=GramE><span style='font-size:12.0pt;
+font-family:"Times New Roman"'>public</span></span><span style='font-size:12.0pt;
+font-family:"Times New Roman"'> boolean <span class=SpellE>isDatabasePopulated</span>()
+- will return true, if the tables have data<u3:p></u3:p></span><o:p></o:p></h1>
+
+</div>
+
+<p class=MsoNormal><u3:p><o:p> </o:p></p>
<h3>Assumptions:</h3>
-TableList elemenr lists tables in proper sequence, i.e. parent tables first and then child tables.
-This sequence will be used in create,insert,delete,drop <br>to take care of referential integrity.
-<br>
-<br>
-The config file required by utility supports the following features
-through different attributes and elements. Sample xml file will be
-shown later:-</u3:p></p>
-</u3:p></p>
-<h3>createOrImport</h3>
-This attribute can have one of the
-two values- create or import. If it is set to create, the hardcoded
-classes inside the utility jar <br>
-<p class="MsoNormal"><u3:p>like CompanyData, DepartmentData will be
-used. </u3:p>If
-it is set to import, user needs to supply <TablesData> element in
-the config and data in tables <br>
-<u3:p></u3:p></p>
-<p class="MsoNormal"><u3:p>will be populated based on the values
-specified in this element.
-</u3:p></p>
-<h3>ConnectionInfo</h3>
-This element provides connection
-specific information - like vendor specific database URL, user name,
-password etc. If the DataSource is
-<p class="MsoNormal"><u3:p>provided by the web container, user needs to
-only fill dataSource attribute in this. In case of standalone J2SE
-samples, user needs to fill ConnectionProperties <br>
-element inside ConnectionInfo. These two ways of connection
-specification are mutually exclusive.<br>
-</u3:p></p>
-<h3>TableList</h3>
- This element needs to specify the
-table names required by the sample. Only these tables will be
-considered for creation, data population. This
-<p class="MsoNormal"><u3:p>gives flexibility to the user to chose the
-required set of tables based on the sample's requirement.<br>
-</u3:p></p>
-<h3>TablesData</h3>
-This element is optional. It will be
-used only in case of createOrImport=import. In this, the table name,
-column names, data types and data
-<p class="MsoNormal"><u3:p>can be conveniently specified by the user
-(check the sample xml given below). Advantage of using import instead
-of create is flexibility over the set of data <br>
-</u3:p></p>
-<p class="MsoNormal"><u3:p>to be used for the tables.</u3:p></p>
-<p class="MsoNormal"><u3:p><br>
-</u3:p></p>
-<h3>Set Up</h3>
+
+<p class=MsoNormal><span style='mso-fareast-font-family:SimSun'><<span
+class=GramE>table</span>> element lists tables in proper sequence, i.e.
+parent tables first and then child tables. This sequence will be used in
+create,insert,delete,drop <br>
+to take care of referential integrity. <br>
<br>
-To use this utility, include its jar and required database driver's jar
-in the classpath. Provide the config file used by this utility ,
-similar to the example below, in the source folder of the sample.<br>
+The config file required by utility supports the following features through
+different attributes and elements. Sample xml file is shown at the end.<o:p></o:p></span></p>
+
+<h3><<span class=SpellE>ConnectionInfo</span>></h3>
+
+<p class=MsoNormal><span style='mso-fareast-font-family:SimSun'>This element
+provides connection specific information - like vendor specific database URL,
+user name, password etc. If the DataSource is <o:p></o:p></span></p>
+
+<p class=MsoNormal><u3:p>provided by the web container, user needs to only fill
+dataSource attribute in this. In case of standalone J2SE samples, user needs to
+fill ConnectionProperties <br>
+element inside ConnectionInfo. These two ways of connection specification are
+mutually exclusive.<br style='mso-special-character:line-break'>
+<![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'>
+<![endif]><o:p></o:p></p>
+
+<h3></u3:p><<span class=GramE>table</span>></h3>
+
+<p class=MsoNormal><span style='mso-fareast-font-family:SimSun'> This
+element needs to specify the table names required by the sample. Only these
+tables will be considered for creation, data population. This <o:p></o:p></span></p>
+
+<p class=MsoNormal><u3:p><span class=GramE>gives</span> flexibility to the user
+to chose the required set of tables based on the sample's requirement. It also
+needs to specify in the attributes, the Create SQL command used to create this
+table. <<span class=GramE>table</span>> has sequence element <row>
+which is used to provide the data to be populated in the table.<br
+style='mso-special-character:line-break'>
+<![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'>
+<![endif]><o:p></o:p></p>
+
+<h3></u3:p>Set Up</h3>
+
+<p class=MsoNormal><span style='mso-fareast-font-family:SimSun'><br>
+To use this utility, include its jar and required database driver's jar in the classpath.
+Provide the config file used by this utility , similar to the example below, in
+the source folder of the sample.<o:p></o:p></span></p>
+
<h3>DBConfig.xml example</h3>
-<br>
-<p class="MsoNormal"><u3:p></u3:p></p>
-<p class="MsoNormal"><u3:p></u3:p></p>
-<p class="MsoNormal"><u3:p><?xml version="1.0" encoding="ASCII"?><br>
-<!--<br>
- Licensed to the Apache Software Foundation (ASF) under one<br>
- or more contributor license agreements. See the NOTICE file<br>
- distributed with this work for additional information<br>
- regarding copyright ownership. The ASF licenses this file<br>
- to you under the Apache License, Version 2.0 (the<br>
- "License"); you may not use this file except in compliance<br>
- with the License. You may obtain a copy of the License at<br>
-<br>
- http://www.apache.org/licenses/LICENSE-2.0<br>
-<br>
- Unless required by applicable law or agreed to in writing,<br>
- software distributed under the License is distributed on an<br>
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY<br>
- KIND, either express or implied. See the License for the<br>
- specific language governing permissions and limitations<br>
- under the License.<br>
- --><br>
- <DBConfig
-xmlns="http:///org.apache.tuscany.das.rdb/DBConfig.xsd"
-createOrImport="create"> <br>
- <br>
- <!--Uncomment below for web container derby
-database setup--><br>
- <!--<ConnectionInfo
-dataSource="java:comp/env/jdbc/dastest"><br>
- </ConnectionInfo>--><br>
- <br>
- <!--Uncomment below for standalone derby database
-setup--> <br>
- <!--<ConnectionInfo dataSource=""><br>
- <ConnectionProperties<br>
-
-driverClass="org.apache.derby.jdbc.EmbeddedDriver"<br>
-
-databaseURL="jdbc:derby:c:/dastest; create = true"<br>
-
-loginTimeout="600000"/><br>
- </ConnectionInfo>--><br>
- <br>
- <!--Uncomment below for web container MySQL
-database setup--><br>
- <!--<ConnectionInfo
-dataSource="java:comp/env/jdbc/dastest"><br>
- </ConnectionInfo>--><br>
- <br>
- <!--Uncomment below for standalone MySQL database
-setup--> <br>
- <!--<ConnectionInfo dataSource=""><br>
- <ConnectionProperties<br>
-
-driverClass="com.mysql.jdbc.Driver"<br>
-
-databaseURL="jdbc:mysql:///dastest?createDatabaseIfNotExist=true"<br>
- userName="root"<br>
-
-password="mypwd"<br>
-
-loginTimeout="600000"/><br>
- </ConnectionInfo>--><br>
- <br>
- <!--Uncomment below for web container DB2
-database setup--><br>
- <!--<ConnectionInfo
-dataSource="java:comp/env/jdbc/dastest"><br>
- </ConnectionInfo>--><br>
- <br>
- <!--Uncomment below for standalone DB2 database
-setup--><br>
- <ConnectionInfo dataSource=""><br>
- <ConnectionProperties<br>
-
-driverClass="com.ibm.db2.jcc.DB2Driver"<br>
-
-databaseURL="jdbc:db2:DASTEST"<br>
-
-loginTimeout="600000"/><br>
- </ConnectionInfo><br>
- <br>
- <TableList><br>
-
-<TableName>COMPANY</TableName><br>
-
-<TableName>DEPARTMENT</TableName>
- <br>
- </TableList><br>
- <br>
- <TablesData><br>
- <TableData TableName="COMPANY"
-Columns="'NAME'" SqlTypes="Types.VARCHAR"><br>
-
-<TableRow>'ACME Publishing'</TableRow><br>
-
-<TableRow>'Do-rite plumbing'</TableRow><br>
-
-<TableRow>'MegaCorp'</TableRow><br>
- </TableData><br>
- <br>
- <TableData
-TableName="DEPARTMENT" Columns="'NAME', 'LOCATION', 'DEPNUMBER'"
-SqlTypes="Types.VARCHAR, Types.VARCHAR, Types.VARCHAR"><br>
-
-<TableRow>'Advanced Technologies', 'NY', '123'</TableRow><br>
-
-</TableData> <br>
- </TablesData><br>
-</DBConfig><br>
-<br>
-<br>
- <br>
-</u3:p></p>
+
+<p class=MsoNormal><span style='mso-fareast-font-family:SimSun'><o:p> </o:p></span></p>
+
+<div style='border:solid blue 1.0pt;mso-border-alt:solid blue .5pt;padding:
+1.0pt 4.0pt 1.0pt 4.0pt'>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><u3:p></u3:p><span
+class=GramE><u3:p></u3:p><u3:p><?xml</span> version="1.0"
+encoding="ASCII"?></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><!--</p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span>Licensed to the Apache Software Foundation
+(ASF) under one</p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span><span class=GramE>or</span> more contributor
+license agreements.<span style='mso-spacerun:yes'> </span>See the NOTICE file</p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span><span class=GramE>distributed</span> with
+this work for additional information</p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span><span class=GramE>regarding</span> copyright
+ownership.<span style='mso-spacerun:yes'> </span>The ASF licenses this file</p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span><span class=GramE>to</span> you under the
+Apache License, Version 2.0 (the</p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span>"License"); you may not use this
+file except in compliance</p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span><span class=GramE>with</span> the
+License.<span style='mso-spacerun:yes'> </span>You may obtain a copy of the
+License at</p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><o:p> </o:p></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span>http://www.apache.org/licenses/LICENSE-2.0</p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><o:p> </o:p></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span>Unless required by applicable law or agreed
+to in writing,</p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span><span class=GramE>software</span> distributed
+under the License is distributed on an</p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span>"AS IS" BASIS, WITHOUT WARRANTIES
+OR CONDITIONS OF ANY</p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span><span class=GramE>KIND, either express or
+implied.</span><span style='mso-spacerun:yes'> </span>See the License for the</p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span><span class=GramE>specific</span> language
+governing permissions and limitations</p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span><span class=GramE>under</span> the License.</p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span>--></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><<span class=SpellE>DBConfig</span>
+<span class=SpellE>xmlns</span>="http:///org.apache.tuscany.das.rdb/dbconfig.xsd"></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+1'> </span><<span class=SpellE>ConnectionInfo</span>></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+2'> </span><<span class=SpellE>ConnectionProperties</span>
+</p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+3'> </span><span class=SpellE><span
+class=GramE>driverClass</span></span>="<span class=SpellE>org.apache.derby.jdbc.EmbeddedDriver</span>"
+</p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+3'> </span><span class=SpellE><span
+class=GramE>databaseURL</span></span>="<span class=SpellE>jdbc:derby:target/dastest</span>;
+create = true" </p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+3'> </span><span class=SpellE><span
+class=GramE>loginTimeout</span></span>="600000"/></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+1'> </span></<span class=SpellE>ConnectionInfo</span>></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+1'> </span><Table name="COMPANY" </p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span><span
+style='mso-spacerun:yes'> </span><span class=SpellE>SQLCreate</span>="CREATE
+TABLE COMPANY (ID INT PRIMARY KEY NOT NULL, NAME <span class=GramE>VARCHAR(</span>30),
+EOTMID INTEGER)" ></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+2'> </span><<span class=GramE>row></span>51, 'ACME
+Publishing', 0</row></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+2'> </span><<span class=GramE>row></span>52,
+'Do-rite plumbing', 0</row></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+2'> </span><<span class=GramE>row></span>53, '<span
+class=SpellE>MegaCorp</span>', 0</row></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+1'> </span></Table></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+1'> </span><Table name="DEPARTMENT" </p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span><span class=SpellE>SQLCreate</span>="CREATE
+TABLE DEPARTMENT (ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY,
+NAME<span style='mso-spacerun:yes'> </span></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span><span class=GramE>VARCHAR(</span>30),LOCATION
+VARCHAR(30), DEPNUMBER VARCHAR(10),COMPANYID INT)" ><span
+style='mso-tab-count:1'> </span><span style='mso-tab-count:1'> </span></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+2'> </span><<span class=GramE>row</span>>'Advanced
+Technologies', 'NY', '123', 1</row></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+2'> </span><<span class=GramE>row</span>>'Default
+Name', '', '', 51</row></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+2'> </span><<span class=GramE>row</span>>'Default
+Name', '', '', 51</row></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+2'> </span><<span class=GramE>row</span>>'Default
+Name', '', '', 51</row></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+2'> </span><<span class=GramE>row</span>>'Default
+Name', '', '', 51</row></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+2'> </span><<span class=GramE>row</span>>'Default
+Name', '', '', 51</row></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+2'> </span><<span class=GramE>row</span>>'Default
+Name', '', '', 51</row></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+1'> </span></Table></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+1'> </span><Table name="EMPLOYEE" </p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span><span class=SpellE>SQLCreate</span>="CREATE
+TABLE EMPLOYEE (ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY<span
+class=GramE>,NAME</span> </p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
+style='mso-spacerun:yes'> </span><span class=GramE>VARCHAR(</span>30),SN
+VARCHAR(10), MANAGER SMALLINT, DEPARTMENTID INT)" ></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+2'> </span><<span class=GramE>row</span>>'John
+Jones','E0001',0,12</row></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+2'> </span><<span class=GramE>row</span>>'Mary
+Smith','E0002',1,null</row></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-tab-count:
+2'> </span><span lang=IT style='mso-ansi-language:IT'><row>'Jane
+Doe','E0003',0,12</row><o:p></o:p></span></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span lang=IT
+style='mso-ansi-language:IT'><span style='mso-tab-count:2'> </span><row>'Al
+Smith','E0004',1,12</row><o:p></o:p></span></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span lang=IT
+style='mso-ansi-language:IT'><span style='mso-tab-count:1'> </span></span></Table></p>
+
+<p class=MsoNormal style='border:none;mso-border-alt:solid blue .5pt;
+padding:0in;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'></<span class=SpellE>DBConfig</span>></p>
+
+</div>
+
</div>
+
</body>
+
</html>
Modified: incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBConnectionHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBConnectionHelper.java?view=diff&rev=538822&r1=538821&r2=538822
==============================================================================
--- incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBConnectionHelper.java (original)
+++ incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBConnectionHelper.java Thu May 17 00:49:29 2007
@@ -44,7 +44,7 @@
*
*/
public static Connection createConnection(ConnectionInfo connectionInfo) {
- logger.log(Level.DEBUG, "DBConnectionHelper.initializeDatasourceConnection(ConnectionInfo)");
+ logger.log(Level.DEBUG, "DBConnectionHelper.createConnection(ConnectionInfo)");
if (connectionInfo == null ||
(connectionInfo.getDataSource() == null && connectionInfo.getConnectionProperties() == null)) {
Modified: incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBDataHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBDataHelper.java?view=diff&rev=538822&r1=538821&r2=538822
==============================================================================
--- incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBDataHelper.java (original)
+++ incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBDataHelper.java Thu May 17 00:49:29 2007
@@ -21,9 +21,11 @@
import java.sql.Connection;
import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Iterator;
+import java.util.List;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
@@ -102,6 +104,37 @@
return isPopulated;
}
+ protected String generateInsertSQL(Connection dbConnection, String tableName, String rowValues) throws SQLException {
+ StringBuffer sqlBuffer = new StringBuffer(50);
+
+ Statement dbStatement = dbConnection.createStatement();
+ ResultSet dummyRS = dbStatement.executeQuery("SELECT * FROM "+tableName);
+ ResultSetMetaData rsMetaData = dummyRS.getMetaData();
+
+
+ sqlBuffer.append("INSERT INTO ").append(tableName).append(" ");
+
+ int numberOfColumns = rsMetaData.getColumnCount();
+ String columnName = null;
+ int i;
+ for (i = 1; i <= numberOfColumns -1; i++) {
+ //get the column's name.
+ columnName = rsMetaData.getColumnName(i);
+ if(!rsMetaData.isAutoIncrement(i)){
+ sqlBuffer.append(columnName).append(",");
+ }
+ else{
+ this.logger.log(Level.DEBUG, CLASS_NAME + ".initializeDatabaseData()=> auto increment column => " + i + " "+columnName);
+ }
+ }
+ sqlBuffer.append(rsMetaData.getColumnName(i)).append(") ");
+ sqlBuffer.append("VALUES (").append(rowValues).append(")");
+
+ this.logger.log(Level.DEBUG, CLASS_NAME + ".initializeDatabaseData()=> SQL Clause => " + sqlBuffer);
+
+ return sqlBuffer.toString();
+ }
+
public void initializeDatabaseData() {
Connection dbConnection = null;
Statement dbStatement = null;
@@ -113,22 +146,25 @@
Iterator tableIterator = dbConfig.getTable().iterator();
while (tableIterator.hasNext()) {
Table table = (Table) tableIterator.next();
-
+ this.logger.log(Level.DEBUG, CLASS_NAME + ".initializeDatabaseData()=> INSERT FOR TABLE => '" + table.getName() + "'");
+
+ //String columnClause = generateInsertSQL(dbConnection, table.getName());
+
+ String tableName = table.getName();
Iterator dataIterator = table.getRow().iterator();
while (dataIterator.hasNext()) {
- String tableRow = (String) dataIterator.next();
-
- String sqlString = "INSERT INTO " + table.getName() + " VALUES (" + tableRow + ")";
+ String tableRow = (String) dataIterator.next();
+ String sqlString = generateInsertSQL(dbConnection, tableName, tableRow);
this.logger.log(Level.DEBUG, CLASS_NAME + ".initializeDatabaseData()=> sqlString => '" + sqlString + "'");
try {
- dbStatement.executeQuery(sqlString);
+ dbStatement.executeUpdate(sqlString);
}catch(SQLException e){
+ //e.printStackTrace();
//ignore and jump to new table
this.logger.log(Level.DEBUG, CLASS_NAME + ".initializeDatabaseData() - Error inserting table data : " + e.getMessage(), e);
}
-
}
}
} catch (SQLException e) {
@@ -143,545 +179,38 @@
}
}
- // /**
- // *
- // * @return true, if data is present for all tables specified in Config, else
- // * return false.
- // */
- // protected boolean checkDataCreated(){
- // this.logger.log(Level.DEBUG, "DBDataHelper.checkDataCreated()");
- // if(this.dbInitHelper.tableNames != null){
- // for(int i=0; i<this.dbInitHelper.tableNames.size(); i++){
- // this.logger.log(Level.DEBUG, "DBDataHelper.checkDataCreated() calling checkDataExists() for "+
- // this.dbInitHelper.tableNames.get(i));
- // if(checkDataExists((String)this.dbInitHelper.tableNames.get(i)) == 0){
- // return false;
- // }
- // }
- // }
- // return true;
- // }
- //
- // /**
- // *Create data in table only in case it is empty, for all the tables
- // *specified in Config.
- // */
- // protected void checkCreateTablesData()throws Exception{
- // if(this.dbInitHelper.tableNames != null){
- // for(int i=0; i<this.dbInitHelper.tableNames.size(); i++){
- // String tableName = (String)this.dbInitHelper.tableNames.get(i);
- // if(checkDataExists(tableName) == 0){
- // if(this.dbInitHelper.createOrImport.equals("create")){
- // createTableData(tableName);
- // }
- // if(this.dbInitHelper.createOrImport.equals("import")){
- // importTableData(tableName);
- // }
- // }
- // }
- // }
- // }
- //
- // /**
- // *
- // * @param tableName
- // * @return Count of rows present in the table specified by tableName
- // */
- // protected int checkDataExists(String tableName){
- // Statement s = null;
- // try{
- // s = this.dbInitHelper.connection.createStatement();
- // String sqlString = "select count(*) from "+tableName;
- //
- // this.logger.log(Level.DEBUG, "DBDataHelper.checkDataExists()-> sqlString:"+sqlString);
- //
- // ResultSet rs = s.executeQuery(sqlString);
- // rs.next();
- //
- // if(rs != null){
- // this.logger.log(Level.DEBUG, "DBDataHelper.checkDataExists()-> pointer set");
- // }
- //
- // int cnt = rs.getInt(1);
- // this.logger.log(Level.DEBUG, "DBDataHelper.checkDataExists()-> "+tableName+" "+cnt);
- // return cnt;
- // }catch(SQLException e){
- // return 0;//table does not exist
- // }finally{
- // try{
- // s.close();
- // }catch(SQLException e1){
- // //ignore;
- // }
- // }
- // }
- //
- // /**
- // * Test utility to print COMPANY, DEPARTMENT data to given PrintStream
- // * @param stream
- // * @throws SQLException
- // */
- // protected void readDBstdout(PrintStream stream) throws SQLException {
- // try {
- // Statement s = this.dbInitHelper.connection.createStatement();
- // ResultSet rs = s.executeQuery("SELECT ID, NAME FROM COMPANY ORDER BY ID");
- // while (rs.next()) {
- // stream.print(rs.getString(1));
- // stream.print(" ");
- // stream.print(rs.getString(2));
- // stream.print(" ");
- // stream.println();
- // int id = rs.getInt(1);
- // Statement s1 = this.dbInitHelper.connection.createStatement();
- // ResultSet rs1 = s1.executeQuery("SELECT ID, NAME, LOCATION, DEPNUMBER FROM DEPARTMENT WHERE ID=" + id);
- // stream.println("====Company Departments");
- // while (rs1.next()) {
- // stream.print("\t");
- // stream.print(rs1.getString(1));
- // stream.print(" ");
- // stream.print(rs1.getString(2));
- // stream.print(" ");
- // stream.print(rs1.getString(3));
- // stream.print(" ");
- // stream.print(rs1.getString(4));
- // stream.println();
- // }
- // rs1.close();
- // s1.close();
- // stream.println();
- // }
- // rs.close();
- // s.close();
- // this.dbInitHelper.connection.commit();
- // } catch (Exception e) {
- // e.printStackTrace();
- // }
- // }
- //
- //
- // /**
- // * Test utility to print table data for tables like COMPANY, DEPARTMENT
- // * when logging is ON
- // */
- // protected void checkTableData(String tableName){
- // Statement s = null;
- // try{
- // s = this.dbInitHelper.connection.createStatement();
- // String sqlString = "select * from "+tableName;
- //
- // this.logger.log(Level.DEBUG, "DBDataHelper.checkTableData()-> sqlString:"+sqlString);
- //
- // ResultSet rs = s.executeQuery(sqlString);
- //
- // if(rs != null){
- // while(rs.next()){
- // if(tableName.equals("COMPANY")){
- // int ID = rs.getInt(1);
- // String NAME = rs.getString(2);
- // int EOTMID = rs.getInt(3);
- // this.logger.log(Level.DEBUG, "COMPANY:"+ ID+","+NAME+","+EOTMID);
- // }
- //
- // if(tableName.equals("DEPARTMENT")){
- // int ID = rs.getInt(1);
- // String NAME = rs.getString(2);
- // String LOCATION = rs.getString(3);
- // String DEPNUMBER = rs.getString(4);
- // int COMPANYID = rs.getInt(5);
- // this.logger.log(Level.DEBUG, "DEPARTMENT:"+ ID+","+NAME+","+LOCATION+","+DEPNUMBER+","+COMPANYID);
- // }
- // }
- // }
- //
- // }catch(SQLException e){
- // }finally{
- // try{
- // s.close();
- // }catch(SQLException e1){
- // //ignore;
- // }
- // }
- // }
- //
- // /**
- // * Delete data from all the tables specified in Config.
- // * Assumption:table names listed in Config are in parent first fashion
- // * @return true upon successful data deletion, false otherwise
- // */
- // protected boolean deleteData(){
- // try{
- // Statement s = this.dbInitHelper.connection.createStatement();
- //
- //
- // if(this.dbInitHelper.tableNames != null){
- // //can generalize as below based on assumption
- // String sqlString = "DELETE FROM ";
- // for(int i=this.dbInitHelper.tableNames.size()-1; i>-1; i--){
- // String tableName = (String)this.dbInitHelper.tableNames.get(i);
- // s.execute(sqlString+tableName);
- // this.logger.log(Level.DEBUG, "DBDataHelper.deleteData()->deleted "+tableName +" data");
- // }
- // }
- //
- // s.close();
- // this.logger.log(Level.DEBUG, "DBDataHelper.deleteData -> returning");
- // }catch(Exception e){
- // this.logger.log(Level.DEBUG, "DBDataHelper.deleteData ->encountered exception "+e.getMessage());
- // return false;
- // }
- // return true;
- // }
- //
- // /**
- // * Delete existing data and "create" hardcoded set of data for all tables
- // * specified in Config based on data in classes like CompanyData,
- // * DepartmentData...
- // * @throws SQLException
- // */
- // protected void createTablesData() throws SQLException{
- // if(this.dbInitHelper.tableNames != null){
- // this.logger.log(Level.DEBUG, "DBDataHelper.createTablesData()->calling deleteData()");
- //
- // //always force=true
- // deleteData();
- // for(int i=0; i<this.dbInitHelper.tableNames.size(); i++){
- // String tableName = (String)this.dbInitHelper.tableNames.get(i);
- //
- // this.logger.log(Level.DEBUG, "DBDataHelper.createTablesData()->calling createTableData() for "+tableName);
- // createTableData(tableName);
- // }
- // }
- // }
- //
-
- // /**
- // * "Import" data specified in Config into tables.
- // * @throws SQLException
- // */
- // protected void importTablesData() throws SQLException{
- // this.logger.log(Level.DEBUG, "DBDataHelper.importTablesData()");
- // String tableName=null;
- //
- // if(this.dbInitHelper.dbConfig.getTablesData() != null){
- // TablesData tablesData = this.dbInitHelper.dbConfig.getTablesData();
- //
- // List tableDataList = tablesData.getTableData();
- //
- // if(tableDataList != null){
- // for(int i=0; i<tableDataList.size(); i++){
- // TableData tableData = (TableData)tableDataList.get(i);
- // tableName = tableData.getTableName();
- // this.logger.log(Level.DEBUG, "DBDataHelper.importTablesData()->calling importTableData() for "+tableName);
- // importTableData(tableName);
- // }
- // }
- // }
- // }
- //
- // /**
- // * "Import" data specified in Config into table specified by tableName.
- // * @throws SQLException
- // */
- // protected void importTableData(String tableName) throws SQLException{
- // TestDataWithExplicitColumns testDataWithExplicitColumns = null;
- // String[] columns=null;
- // int[] sqlTypes=null;
- // Object[][] data=null;
- // TableData tableData = null;
- //
- // if(this.dbInitHelper.dbConfig.getTablesData() != null){
- // TablesData tablesData = this.dbInitHelper.dbConfig.getTablesData();
- //
- // List tableDataList = tablesData.getTableData();
- // if(tableDataList != null){
- // for(int i=0; i<tableDataList.size(); i++){
- // tableData = (TableData)tableDataList.get(i);
- // String curTableName = tableData.getTableName();
- // if(curTableName.equals(tableName)){
- // break;
- // }
- // }
- // }
- //
- // if(tableData != null){
- // this.logger.log(Level.DEBUG, "DBDataHelper.importTableData() got TableData for "+tableName);
- // //column names
- // columns = formColumnsArray(tableData.getColumns());
- //
- // this.logger.log(Level.DEBUG, "DBDataHelper.importTableData() formed columns");
- //
- // //sql data types
- // sqlTypes = formSqlTypesArray(tableData.getSqlTypes());
- // this.logger.log(Level.DEBUG, "DBDataHelper.importTableData() formed sqlTypes");
- //
- // List tableRows = tableData.getTableRow();
- // if(tableRows != null){
- // //actual data to be inserted
- // data = formData(tableRows);
- // this.logger.log(Level.DEBUG, "DBDataHelper.importTableData() formed data");
- // }
- //
- // testDataWithExplicitColumns =
- // new TestDataWithExplicitColumns(this.dbInitHelper.connection, tableName, data, columns, sqlTypes);
- //
- // testDataWithExplicitColumns.refresh();
- // this.logger.log(Level.DEBUG, "DBDataHelper.importTableData() - refreshed");
- // }
- // }
- // }
- //
- // /**
- // *
- // * @param columns comma separated list of column names
- // * @return array of colum names
- // */
- // protected String[] formColumnsArray(String columns){
- // Vector columnsVect = formValues(columns);
- //
- // //dump vector into array
- // String[] columnsArray = new String[columnsVect.size()];
- // for(int i=0; i<columnsVect.size(); i++){
- // columnsArray[i] = (String)columnsVect.get(i);
- // }
- // return columnsArray;
- // }
- //
- // /**
- // *
- // * @param curStr comma separated list of column names
- // * @return vector of column names
- // */
- // protected Vector formValues(String curStr){
- // Vector<String> resultVect = new Vector<String>();
- // int quoteIdx;
- // int nextQuoteIdx;
- //
- // while(curStr != null && curStr.length() != 0){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formValues():"+curStr);
- // quoteIdx = curStr.indexOf("'");
- // if(quoteIdx == -1) break;
- //
- // nextQuoteIdx = curStr.indexOf("'", quoteIdx+1);
- // if(nextQuoteIdx == -1) break;
- //
- // this.logger.log(Level.DEBUG, "DBDataHelper.formValues() got:"+curStr.substring(quoteIdx+1, nextQuoteIdx));
- //
- // resultVect.add(curStr.substring(quoteIdx+1, nextQuoteIdx));
- // if(curStr.length()>nextQuoteIdx+1){
- // curStr = curStr.substring(nextQuoteIdx+1);
- // }
- // else{
- // break;
- // }
- // }
- // this.logger.log(Level.DEBUG, "DBDataHelper.formValues(): returning");
- // return resultVect;
- // }
- //
- // /**
- // *
- // * @param sqlTypes comma separated list of sql types
- // * @return int array corresponding to columns' sql types
- // */
- // protected int[] formSqlTypesArray(String sqlTypes){
- // Vector<Integer> typesVect = new Vector<Integer>();
- // StringTokenizer strtok = new StringTokenizer(sqlTypes, ",");
- //
- // while(strtok.hasMoreTokens()){
- // String sqlTypeStr = strtok.nextToken();
- //
- // if(sqlTypeStr.trim().equals("Types.VARCHAR")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding varchar");
- // typesVect.add(new Integer(java.sql.Types.VARCHAR));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.INTEGER")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding int");
- // typesVect.add(new Integer(java.sql.Types.INTEGER));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.DATE")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding date");
- // typesVect.add(new Integer(java.sql.Types.DATE));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.FLOAT")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding float");
- // typesVect.add(new Integer(java.sql.Types.FLOAT));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.DOUBLE")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding double");
- // typesVect.add(new Integer(java.sql.Types.DOUBLE));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.DECIMAL")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding decimal");
- // typesVect.add(new Integer(java.sql.Types.DECIMAL));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.ARRAY")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding array");
- // typesVect.add(new Integer(java.sql.Types.ARRAY));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.BIGINT")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding bigint");
- // typesVect.add(new Integer(java.sql.Types.BIGINT));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.BINARY")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding binary");
- // typesVect.add(new Integer(java.sql.Types.BINARY));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.BIT")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding bit");
- // typesVect.add(new Integer(java.sql.Types.BIT));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.BLOB")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding blob");
- // typesVect.add(new Integer(java.sql.Types.BLOB));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.BOOLEAN")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding boolean");
- // typesVect.add(new Integer(java.sql.Types.BOOLEAN));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.CHAR")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding char");
- // typesVect.add(new Integer(java.sql.Types.CHAR));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.CLOB")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding clob");
- // typesVect.add(new Integer(java.sql.Types.CLOB));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.DATALINK")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding datalink");
- // typesVect.add(new Integer(java.sql.Types.DATALINK));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.DISTINCT")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding distinct");
- // typesVect.add(new Integer(java.sql.Types.DISTINCT));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.JAVA_OBJECT")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding java_object");
- // typesVect.add(new Integer(java.sql.Types.JAVA_OBJECT));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.LONGVARBINARY")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding longvarbinary");
- // typesVect.add(new Integer(java.sql.Types.LONGVARBINARY));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.LONGVARCHAR")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding longvarchar");
- // typesVect.add(new Integer(java.sql.Types.LONGVARCHAR));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.NULL")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding null");
- // typesVect.add(new Integer(java.sql.Types.NULL));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.NUMERIC")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding numeric");
- // typesVect.add(new Integer(java.sql.Types.NUMERIC));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.OTHER")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding other");
- // typesVect.add(new Integer(java.sql.Types.OTHER));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.REAL")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding real");
- // typesVect.add(new Integer(java.sql.Types.REAL));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.REF")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding ref");
- // typesVect.add(new Integer(java.sql.Types.REF));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.SMALLINT")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding smallint");
- // typesVect.add(new Integer(java.sql.Types.SMALLINT));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.STRUCT")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding struct");
- // typesVect.add(new Integer(java.sql.Types.STRUCT));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.TIME")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding time");
- // typesVect.add(new Integer(java.sql.Types.TIME));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.TIMESTAMP")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding timestamp");
- // typesVect.add(new Integer(java.sql.Types.TIMESTAMP));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.TINYINT")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding tinyint");
- // typesVect.add(new Integer(java.sql.Types.TINYINT));
- // }
- //
- // else if(sqlTypeStr.trim().equals("Types.VARBINARY")){
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): adding varbinary");
- // typesVect.add(new Integer(java.sql.Types.VARBINARY));
- // }
- // else{
- // throw new RuntimeException("Invalid SQL Type specified in TablesData in Config "+sqlTypeStr.trim());
- // }
- // }
- //
- // //dump vector into array
- // int[] typesArray = new int[typesVect.size()];
- // for(int i=0; i<typesVect.size(); i++){
- // typesArray[i] = ((Integer)typesVect.get(i)).intValue();
- // }
- //
- // this.logger.log(Level.DEBUG, "DBDataHelper.formSqlTypesArray(): returning");
- // return typesArray;
- // }
- //
- // /**
- // *
- // * @param tableRows list of string, where each string has comma separated values
- // * @return array of rows of the table
- // */
- // protected Object[][] formData(List tableRows){
- // Vector currentRow;
- // Vector <Vector>allRows = new Vector<Vector>();
- //
- // for(int i=0; i<tableRows.size(); i++){
- // String curRowStr = (String)tableRows.get(i);
- // currentRow = formValues(curRowStr);
- // this.logger.log(Level.DEBUG, "DBDataHelper.formData() adding in allRows");
- // allRows.add(currentRow);
- // }
- //
- // //form 2D array
- // Object[][]data = new Object[allRows.size()][];
- // for(int i=0; i<allRows.size(); i++){
- // data[i] = new Object[ ((Vector)allRows.get(i)).size()];
- //
- // for(int j=0; j<((Vector)allRows.get(i)).size(); j++){
- // data[i][j] = ((Vector)allRows.get(i)).get(j);
- // }
- // }
- //
- // this.logger.log(Level.DEBUG, "DBDataHelper.formData() returning");
- // return data;
- // }
- //
+ public void deleteDatabaseData() {
+ Connection dbConnection = null;
+ Statement dbStatement = null;
+
+ try {
+ dbConnection = DBConnectionHelper.createConnection(dbConfig.getConnectionInfo());
+ dbStatement = dbConnection.createStatement();
+ //inverse order - to take care of parent-child
+ List tables = dbConfig.getTable();
+ for(int i=tables.size()-1; i>-1; i-- ){
+ Table table = (Table) tables.get(i);
+ String sqlString = "DELETE FROM " + table.getName() ;
+
+ this.logger.log(Level.DEBUG, CLASS_NAME + ".deleteDatabaseData()=> sqlString => '" + sqlString + "'");
+
+ try {
+ dbStatement.executeQuery(sqlString);
+ }catch(SQLException e){
+ e.printStackTrace();
+ //ignore and jump to new table
+ this.logger.log(Level.DEBUG, CLASS_NAME + ".deleteDatabaseData() - Error inserting table data : " + e.getMessage(), e);
+ }
+ }
+ } catch (SQLException e) {
+ // ignore and return false
+ this.logger.log(Level.DEBUG, CLASS_NAME + ".initializeDatabaseData() - Internal error : " + e.getMessage(), e);
+ } finally {
+ try {
+ dbStatement.close();
+ } catch (SQLException e1) {
+ // ignore and return false
+ }
+ }
+ }
}
Modified: incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBHelper.java?view=diff&rev=538822&r1=538821&r2=538822
==============================================================================
--- incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBHelper.java (original)
+++ incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBHelper.java Thu May 17 00:49:29 2007
@@ -38,7 +38,7 @@
/**
* Constructor
*
- * @param dbInitHelper
+ * @param DBConfig
*/
protected DBHelper(DBConfig dbConfig) {
this.logger.log(Level.DEBUG, CLASS_NAME + "()");
@@ -53,7 +53,7 @@
protected boolean isDatabaseReady() {
boolean bResult = true;
- this.logger.log(Level.DEBUG, CLASS_NAME + "checkTablesCreated(DBConfig)");
+ this.logger.log(Level.DEBUG, CLASS_NAME + "isDatabaseReady()");
Connection dbConnection = null;
DatabaseMetaData dbMetaData = null;
@@ -82,7 +82,7 @@
}
}
- this.logger.log(Level.DEBUG, CLASS_NAME + "checkTablesCreated(DBConfig) exit");
+ this.logger.log(Level.DEBUG, CLASS_NAME + "isDatabaseReady() exit");
return bResult;
}
@@ -124,10 +124,10 @@
}
/**
- * Create the database tables based on dbConfig definition
+ * Drop the database tables based on dbConfig definition
*/
protected void dropDatabaseTables() {
- this.logger.log(Level.DEBUG, CLASS_NAME + "initializeDatabase()");
+ this.logger.log(Level.DEBUG, CLASS_NAME + "dropDatabaseTables()");
Connection dbConnection = null;
Statement dbStatement = null;
@@ -141,11 +141,12 @@
Table table = (Table) tableIterator.next();
if (table.getSQLCreate() != null && table.getSQLCreate().length() > 0) {
- this.logger.log(Level.DEBUG, "Creating table '" + table.getName() + "' => " + table.getSQLCreate());
+ this.logger.log(Level.DEBUG, "Dropping table '" + table.getName() );
try {
dbStatement.execute("DROP TABLE " + table.getName());
} catch (SQLException e) {
+ //ignore
this.logger.log(Level.DEBUG, "Error droping table '" + table.getName() + "'", e);
}
}
@@ -161,6 +162,6 @@
}
}
- this.logger.log(Level.DEBUG, CLASS_NAME + "initializeDatabase() exit");
+ this.logger.log(Level.DEBUG, CLASS_NAME + "dropDatabaseTables() exit");
}
}
Modified: incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBInitializer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBInitializer.java?view=diff&rev=538822&r1=538821&r2=538822
==============================================================================
--- incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBInitializer.java (original)
+++ incubator/tuscany/java/das/samples/dbconfig/src/main/java/org/apache/tuscany/das/rdb/dbconfig/DBInitializer.java Thu May 17 00:49:29 2007
@@ -140,9 +140,9 @@
*/
public void initializeDatabaseData(boolean clean) throws DatabaseInitializerException{
if (clean) {
- initializeDatabaseData(clean);
+ dbDataHelper.deleteDatabaseData();
}
-
+ dbDataHelper.initializeDatabaseData();
}
/**
Modified: incubator/tuscany/java/das/samples/dbconfig/src/main/resources/CannedSampleDBConfig.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/samples/dbconfig/src/main/resources/CannedSampleDBConfig.xml?view=diff&rev=538822&r1=538821&r2=538822
==============================================================================
--- incubator/tuscany/java/das/samples/dbconfig/src/main/resources/CannedSampleDBConfig.xml (original)
+++ incubator/tuscany/java/das/samples/dbconfig/src/main/resources/CannedSampleDBConfig.xml Thu May 17 00:49:29 2007
@@ -17,31 +17,31 @@
specific language governing permissions and limitations
under the License.
-->
-<DBConfig xmlns="http:///org.apache.tuscany.das.rdb/DBConfig.xsd">
+<DBConfig xmlns="http:///org.apache.tuscany.das.rdb/dbconfig.xsd">
<ConnectionInfo>
<ConnectionProperties
driverClass="org.apache.derby.jdbc.EmbeddedDriver"
databaseURL="jdbc:derby:c:/dastest; create = true"
loginTimeout="600000"/>
</ConnectionInfo>
- <Table name="COMPANY" SQLCreate="CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY , NAME VARCHAR(30))">
- <row>'51','ACME Publishing'</row>
- <row>'52','Do-rite plumbing'</row>
- <row>'53','MegaCorp'</row>
+ <Table name="COMPANY" SQLCreate="CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY , NAME VARCHAR(30))" >
+ <row>'ACME Publishing'</row>
+ <row>'Do-rite plumbing'</row>
+ <row>'MegaCorp'</row>
</Table>
<Table name="DEPARTMENT" SQLCreate="CREATE TABLE DEPARTMENT (ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY, NAME VARCHAR(30),LOCATION VARCHAR(30), DEPNUMBER VARCHAR(10),COMPANYID INT)">
- <row>'12','Advanced Technologies', 'NY', '123', '1'</row>
- <row>'73','Default Name', '', '', '51'</row>
- <row>'74','Default Name', '', '', '51'</row>
- <row>'75','Default Name', '', '', '51'</row>
- <row>'76','Default Name', '', '', '51'</row>
- <row>'77','Default Name', '', '', '51'</row>
- <row>'78','Default Name', '', '', '51'</row>
+ <row>'Advanced Technologies', 'NY', '123', 1</row>
+ <row>'Default Name', '', '', 51</row>
+ <row>'Default Name', '', '', 51</row>
+ <row>'Default Name', '', '', 51</row>
+ <row>'Default Name', '', '', 51</row>
+ <row>'Default Name', '', '', 51</row>
+ <row>'Default Name', '', '', 51</row>
</Table>
<Table name="EMPLOYEE" SQLCreate="CREATE TABLE EMPLOYEE (ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY,NAME VARCHAR(30),SN VARCHAR(10), MANAGER SMALLINT, DEPARTMENTID INT)">
- <row>'5','John Jones','E0001','0','12'</row>
- <row>'6','Mary Smith','E0002','1',''</row>
- <row>'7','Jane Doe','E0003','0','12'</row>
- <row>'8','Al Smith','E0004','1','12'</row>
+ <row>'John Jones','E0001',0,12</row>
+ <row>'Mary Smith','E0002',1,null</row>
+ <row>'Jane Doe','E0003',0,12</row>
+ <row>'Al Smith','E0004',1,12</row>
</Table>
-</DBConfig>
\ No newline at end of file
+</DBConfig>
Modified: incubator/tuscany/java/das/samples/dbconfig/src/test/resources/dbConfig.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/samples/dbconfig/src/test/resources/dbConfig.xml?view=diff&rev=538822&r1=538821&r2=538822
==============================================================================
--- incubator/tuscany/java/das/samples/dbconfig/src/test/resources/dbConfig.xml (original)
+++ incubator/tuscany/java/das/samples/dbconfig/src/test/resources/dbConfig.xml Thu May 17 00:49:29 2007
@@ -25,27 +25,23 @@
loginTimeout="600000"/>
</ConnectionInfo>
<Table name="COMPANY" SQLCreate="CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL, NAME VARCHAR(30), EOTMID INTEGER)">
- <row>51, "ACME Publishing", 0</row>
- <row>52, "Do-rite plumbing", 0</row>
- <row>53, "MegaCorp", 0</row>
+ <row>51, 'ACME Publishing', 0</row>
+ <row>52, 'Do-rite plumbing', 0</row>
+ <row>53, 'MegaCorp', 0</row>
</Table>
- <Table name="DEPARTMENT" SQLCreate="CREATE TABLE DEPARTMENT (ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY, NAME VARCHAR(30),LOCATION VARCHAR(30), DEPNUMBER VARCHAR(10),COMPANYID INT)">
- <!--
- <row>'12','Advanced Technologies', 'NY', '123', '1'</row>
- <row>'73','Default Name', '', '', '51'</row>
- <row>'74','Default Name', '', '', '51'</row>
- <row>'75','Default Name', '', '', '51'</row>
- <row>'76','Default Name', '', '', '51'</row>
- <row>'77','Default Name', '', '', '51'</row>
- <row>'78','Default Name', '', '', '51'</row>
- -->
+ <Table name="DEPARTMENT" SQLCreate="CREATE TABLE DEPARTMENT (ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY, NAME VARCHAR(30),LOCATION VARCHAR(30), DEPNUMBER VARCHAR(10),COMPANYID INT)">
+ <row>'Advanced Technologies', 'NY', '123', 1</row>
+ <row>'Default Name', '', '', 51</row>
+ <row>'Default Name', '', '', 51</row>
+ <row>'Default Name', '', '', 51</row>
+ <row>'Default Name', '', '', 51</row>
+ <row>'Default Name', '', '', 51</row>
+ <row>'Default Name', '', '', 51</row>
</Table>
<Table name="EMPLOYEE" SQLCreate="CREATE TABLE EMPLOYEE (ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY,NAME VARCHAR(30),SN VARCHAR(10), MANAGER SMALLINT, DEPARTMENTID INT)">
- <!--
- <row>'5','John Jones','E0001','0','12'</row>
- <row>'6','Mary Smith','E0002','1',''</row>
- <row>'7','Jane Doe','E0003','0','12'</row>
- <row>'8','Al Smith','E0004','1','12'</row>
- -->
+ <row>'John Jones','E0001',0,12</row>
+ <row>'Mary Smith','E0002',1,null</row>
+ <row>'Jane Doe','E0003',0,12</row>
+ <row>'Al Smith','E0004',1,12</row>
</Table>
-</DBConfig>
\ No newline at end of file
+</DBConfig>
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org