blob: cf4de98ca869b86fdab758c301cf33f3ecd18d82 [file] [log] [blame]
<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">
<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">
<title>Data Tools Open Source Overview for Eclipse database Developer</title>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="place"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="City"/>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>Der Ping Chou</o:Author>
<o:LastAuthor>Der Ping Chou</o:LastAuthor>
<o:Revision>2</o:Revision>
<o:TotalTime>38</o:TotalTime>
<o:Created>2005-10-13T02:19:00Z</o:Created>
<o:LastSaved>2005-10-13T02:19:00Z</o:LastSaved>
<o:Pages>1</o:Pages>
<o:Words>1568</o:Words>
<o:Characters>8939</o:Characters>
<o:Company>IBM</o:Company>
<o:Lines>74</o:Lines>
<o:Paragraphs>20</o:Paragraphs>
<o:CharactersWithSpaces>10487</o:CharactersWithSpaces>
<o:Version>10.2625</o:Version>
</o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:UseFELayout/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><!--[if !mso]><object
classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui></object>
<style>
st1\:*{behavior:url(#ieooui) }
</style>
<![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Courier;
panose-1:2 7 4 9 2 2 5 2 4 4;
mso-font-charset:0;
mso-generic-font-family:modern;
mso-font-format:other;
mso-font-pitch:fixed;
mso-font-signature:3 0 0 0 1 0;}
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-charset:2;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
{font-family:PMingLiU;
panose-1:2 1 6 1 0 1 1 1 1 1;
mso-font-alt:"Arial Unicode MS";
mso-font-charset:136;
mso-generic-font-family:auto;
mso-font-format:other;
mso-font-pitch:variable;
mso-font-signature:1 134742016 16 0 1048576 0;}
@font-face
{font-family:Times;
panose-1:0 0 0 0 0 0 0 0 0 0;
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-format:other;
mso-font-pitch:variable;
mso-font-signature:3 0 0 0 1 0;}
@font-face
{font-family:"\@PMingLiU";
panose-1:0 0 0 0 0 0 0 0 0 0;
mso-font-charset:136;
mso-generic-font-family:auto;
mso-font-format:other;
mso-font-pitch:variable;
mso-font-signature:1 134742016 16 0 1048576 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:PMingLiU;}
h1
{mso-style-next:Normal;
margin-top:12.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:1;
font-size:16.0pt;
font-family:Arial;
mso-font-kerning:16.0pt;}
h2
{mso-style-next:Normal;
margin-top:12.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:2;
font-size:14.0pt;
font-family:Arial;
font-style:italic;}
h3
{mso-style-link:"Heading 3 Char";
mso-style-next:Normal;
margin-top:12.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:3;
font-size:13.0pt;
font-family:Arial;}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;
text-underline:single;}
span.Heading3Char
{mso-style-name:"Heading 3 Char";
mso-style-link:"Heading 3";
mso-ansi-font-size:13.0pt;
mso-bidi-font-size:13.0pt;
font-family:Arial;
mso-ascii-font-family:Arial;
mso-fareast-font-family:PMingLiU;
mso-hansi-font-family:Arial;
mso-bidi-font-family:Arial;
mso-ansi-language:EN-US;
mso-fareast-language:ZH-TW;
mso-bidi-language:AR-SA;
font-weight:bold;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:108399230;
mso-list-type:hybrid;
mso-list-template-ids:2123811270 1050436332 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-tab-stop:.75in;
mso-level-number-position:left;
margin-left:.75in;
text-indent:-.5in;}
@list l1
{mso-list-id:139032311;
mso-list-type:hybrid;
mso-list-template-ids:1353321884 67698713 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2
{mso-list-id:375350766;
mso-list-type:hybrid;
mso-list-template-ids:898505128 67698689 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l2:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:.75in;
mso-level-number-position:left;
margin-left:.75in;
text-indent:-.25in;
font-family:Symbol;}
@list l2:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:1.25in;
mso-level-number-position:left;
margin-left:1.25in;
text-indent:-.25in;}
@list l3
{mso-list-id:423109522;
mso-list-type:hybrid;
mso-list-template-ids:2075950012 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l3:level1
{mso-level-tab-stop:.25in;
mso-level-number-position:left;
margin-left:.25in;
text-indent:-.25in;}
@list l4
{mso-list-id:423258523;
mso-list-type:hybrid;
mso-list-template-ids:1126210270 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 l5
{mso-list-id:441266234;
mso-list-type:hybrid;
mso-list-template-ids:-700155090 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l5: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 l6
{mso-list-id:510027661;
mso-list-type:hybrid;
mso-list-template-ids:-730529844 67698713 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l6:level1
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l7
{mso-list-id:638417239;
mso-list-type:hybrid;
mso-list-template-ids:-1125845370 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l7:level1
{mso-level-text:"%1\)";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l8
{mso-list-id:639506106;
mso-list-type:hybrid;
mso-list-template-ids:222350942 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l8:level1
{mso-level-text:"%1\)";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l9
{mso-list-id:687413151;
mso-list-type:hybrid;
mso-list-template-ids:-1253031156 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l9:level1
{mso-level-text:"%1\)";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l10
{mso-list-id:735514007;
mso-list-type:hybrid;
mso-list-template-ids:1030158856 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l10:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
margin-left:1.0in;
text-indent:-.25in;
font-family:Symbol;}
@list l11
{mso-list-id:892693764;
mso-list-type:hybrid;
mso-list-template-ids:-108789376 67698689 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l11:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l12
{mso-list-id:1159004659;
mso-list-type:hybrid;
mso-list-template-ids:-1806386 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l12:level1
{mso-level-text:"%1\)";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l13
{mso-list-id:1182429379;
mso-list-type:hybrid;
mso-list-template-ids:1340362444 67698689 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l13:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l14
{mso-list-id:1235240865;
mso-list-type:hybrid;
mso-list-template-ids:1377453496 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l14:level1
{mso-level-text:"%1\)";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l15
{mso-list-id:1241216893;
mso-list-type:hybrid;
mso-list-template-ids:-1229825886 67698713 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l15:level1
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l16
{mso-list-id:1375619746;
mso-list-type:hybrid;
mso-list-template-ids:-143879158 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l16:level1
{mso-level-text:"%1\)";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l17
{mso-list-id:1442720828;
mso-list-type:hybrid;
mso-list-template-ids:-1594691816 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l17:level1
{mso-level-tab-stop:.75in;
mso-level-number-position:left;
margin-left:.75in;
text-indent:-.25in;}
@list l18
{mso-list-id:1547109863;
mso-list-type:hybrid;
mso-list-template-ids:421450982 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l18:level1
{mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l19
{mso-list-id:1561673796;
mso-list-type:hybrid;
mso-list-template-ids:1196978820 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l19:level1
{mso-level-text:"%1\)";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l20
{mso-list-id:1578901567;
mso-list-type:hybrid;
mso-list-template-ids:1484678962 67698705 1050436332 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l20:level1
{mso-level-text:"%1\)";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-weight:normal;}
@list l20:level2
{mso-level-tab-stop:1.25in;
mso-level-number-position:left;
margin-left:1.25in;
text-indent:-.5in;
mso-ansi-font-weight:normal;}
@list l21
{mso-list-id:1621063900;
mso-list-type:hybrid;
mso-list-template-ids:-1145554148 67698713 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l21:level1
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l22
{mso-list-id:1644239630;
mso-list-type:hybrid;
mso-list-template-ids:526444066 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l22: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 l23
{mso-list-id:1665888116;
mso-list-type:hybrid;
mso-list-template-ids:721345754 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l23:level1
{mso-level-text:"%1\)";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l24
{mso-list-id:1755281499;
mso-list-type:hybrid;
mso-list-template-ids:27065034 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l24:level1
{mso-level-text:"%1\)";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l25
{mso-list-id:1775586773;
mso-list-type:hybrid;
mso-list-template-ids:537418268 67698689 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l25:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:.75in;
mso-level-number-position:left;
margin-left:.75in;
text-indent:-.25in;
font-family:Symbol;}
@list l26
{mso-list-id:2008902624;
mso-list-type:hybrid;
mso-list-template-ids:-1983607976 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l26:level1
{mso-level-text:"%1\)";
mso-level-tab-stop:.25in;
mso-level-number-position:left;
margin-left:.25in;
text-indent:-.25in;}
@list l27
{mso-list-id:2042196200;
mso-list-type:hybrid;
mso-list-template-ids:-1854100446 67698713 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l27:level1
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:.25in;
mso-level-number-position:left;
margin-left:.25in;
text-indent:-.25in;}
@list l28
{mso-list-id:2074424627;
mso-list-type:hybrid;
mso-list-template-ids:960013868 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l28:level1
{mso-level-tab-stop:.75in;
mso-level-number-position:left;
margin-left:.75in;
text-indent:-.25in;}
@list l28:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:1.25in;
mso-level-number-position:left;
margin-left:1.25in;
text-indent:-.25in;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
</style>
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";}
table.MsoTableGrid
{mso-style-name:"Table Grid";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
border:solid windowtext 1.0pt;
mso-border-alt:solid windowtext .5pt;
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-border-insideh:.5pt solid windowtext;
mso-border-insidev:.5pt solid windowtext;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="2050"/>
</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='tab-interval:.5in'>
<div class=Section1>
<h1>Data Tools Open Source Overview for Eclipse Database Developer</h1>
<p class=MsoNormal align=center style='text-align:center'><b style='mso-bidi-font-weight:
normal'><o:p>&nbsp;</o:p></b></p>
<p class=MsoNormal>Before you read this paper, you should already be familiar
with the features and plug-ins in the org.eclipse.datatools.connectivity.*
(Connectivity sub-project), org.eclipse.datatools.modelbase.sql (Modelbase
sub-project) and org.eclipse.datatools.sqltools.* (SQL Tools sub-project) open source
contribution in DTP. At a minimum, you should go through the tutorial that is posted
on the Eclipse Web site. This document is intends to provide an overview for a database
tool developer that describes how to use and extend the Data Tools open source contribution.</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'>Topics covered:<o:p></o:p></b></p>
<p class=MsoNormal style='margin-left:.5in'><a href="#_Background">Background</a><o:p></o:p></p>
<p class=MsoNormal style='margin-left:.5in'><a
href="#_Features_of_the_Data Tools open sou">Features of Data Tools</a><o:p></o:p></p>
<p class=MsoNormal style='margin-left:.5in'><a
href="#_Supporting_new_database_types">Supporting new database types</a><o:p></o:p></p>
<p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;mso-list:l24 level1 lfo28;
tab-stops:list 1.0in'><![if !supportLists]><span style='mso-fareast-font-family:
"Times New Roman"'><span style='mso-list:Ignore'>1)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><a href="#_Creating_a_new_database vendor">Creating
a new database vendor</a><o:p></o:p></p>
<p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;mso-list:l24 level1 lfo28;
tab-stops:list 1.0in'><![if !supportLists]><span style='mso-fareast-font-family:
"Times New Roman"'><span style='mso-list:Ignore'>2)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><a href="#_Extending_the_catalog_loader">Extending
the catalog loader</a></p>
<p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;mso-list:l24 level1 lfo28;
tab-stops:list 1.0in'><![if !supportLists]><span style='mso-fareast-font-family:
"Times New Roman"'><span style='mso-list:Ignore'>3)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><a href="#_Extension_point_for_the SQL parser">Extension
point for SQL parser</a></p>
<p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;mso-list:l24 level1 lfo28;
tab-stops:list 1.0in'><![if !supportLists]><span style='mso-fareast-font-family:
"Times New Roman"'><span style='mso-list:Ignore'>4)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><a href="#_Extension_point_for_DDL Code genera">Extension
point for DDL code generation</a><o:p></o:p></p>
<p class=MsoNormal style='margin-left:.5in'><b style='mso-bidi-font-weight:
normal'><o:p>&nbsp;</o:p></b></p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>This is the first step in our open source offering and we do
encourage public contribution to new features through the extension of <b
style='mso-bidi-font-weight:normal'>SQL Scrapbook</b>, <b style='mso-bidi-font-weight:
normal'>Database Explorer</b> and <b style='mso-bidi-font-weight:normal'>Browse/extract/load
Data</b>. </p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<h2><a name="_Background"></a><span class=Heading3Char><span style='font-size:
13.0pt;font-style:normal'>Background</span></span><span style='font-style:normal'><o:p></o:p></span></h2>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>What are <b style='mso-bidi-font-weight:normal'>SQLModel</b>
<a href="SQLModelWebPub/SQLModel.htm">link</a> and <b style='mso-bidi-font-weight:
normal'>Database definition model <a href="dbModelWebPub/dbModel.htm">link</a></b>?</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'>SQLModel</b> is a
meta-model based on the SQL 99/2003 specification, which in turn defines all
database elements for the industry standard. A <b style='mso-bidi-font-weight:
normal'>Database definition model</b> <i style='mso-bidi-font-style:normal'>derives</i>
from SQLModel, which implements all detailed database model elements. For
example: tables; columns; user defined data types; relationships and constraints;
stored procedures and their detailed parameters. </p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>The <b style='mso-bidi-font-weight:normal'>Database
definition model</b> is then used as the base to set up a database-specific
vendor document (XMI file). This vendor document is used as the source to define
details about the database. For example, it can specify whether a database
supports stored procedures or views. In addition, all data type support is also
recorded in the vendor document. See the section below called <b
style='mso-bidi-font-weight:normal'>Creating a new database vendor</b> for
details on how to create a vendor document for a new database vendor.</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<h1><a name="_Features_of_the_Data Tools open sou"></a>Features of the Data
Tools open source contribution<o:p></o:p></h1>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<h1><a name="_Creating_a_new_database vendor"></a><a
name="_Supporting_new_database_types"></a>Supporting new database types<i><o:p></o:p></i></h1>
<p class=MsoNormal>Using the <st1:City><st1:place>Derby</st1:place></st1:City>
open source database as our example plug-in, we will show you step by step how
to extend the open source framework.<i><o:p></o:p></i></p>
<h2><span style='font-style:normal'><o:p>&nbsp;</o:p></span></h2>
<h2><span style='font-style:normal'>Creating a new database vendor<o:p></o:p></span></h2>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>Plug-ins used:</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<ul style='margin-top:0in' type=disc>
<li class=MsoNormal style='mso-list:l5 level1 lfo9;tab-stops:list .5in'><span
style='mso-bidi-font-weight:bold'>org.eclipse.datatools.modelbase.sql </span>(SQLModel)</li>
<li class=MsoNormal style='mso-list:l5 level1 lfo9;tab-stops:list .5in'><span
style='mso-bidi-font-weight:bold'>org.eclipse.datatools.modelbase.dbdefinition
(</span>Database Definition Model)</li>
</ul>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>Here are two typical scenarios for creating a new database
vendor:</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal><b>Scenario one: Altering the SQLModel definition<o:p></o:p></b></p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>Typically, you would not need to alter the definition for
SQLModel. However, if you do need to add new model definition to the SQLModel,
then complete the following steps: </p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in;mso-list:l28 level1 lfo2;
tab-stops:list .75in'><![if !supportLists]><span style='mso-fareast-font-family:
"Times New Roman"'><span style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>Change the SQLModel (Rose UML model) file to add
your database element.</p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in;mso-list:l28 level1 lfo2;
tab-stops:list .75in'><![if !supportLists]><span style='mso-fareast-font-family:
"Times New Roman"'><span style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>Use the Eclipse framework to generate a new EMF
model.</p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in;mso-list:l28 level1 lfo2;
tab-stops:list .75in'><![if !supportLists]><span style='mso-fareast-font-family:
"Times New Roman"'><span style='mso-list:Ignore'>3.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>Generate code to create a new Database
Definition Model.</p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in;mso-list:l28 level1 lfo2;
tab-stops:list .75in'><![if !supportLists]><span style='mso-fareast-font-family:
"Times New Roman"'><span style='mso-list:Ignore'>4.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>Continue with step one of Scenario two.</p>
<p class=MsoNormal style='margin-left:.25in'><o:p>&nbsp;</o:p></p>
<p class=MsoNormal><b>Scenario two: Adding a new database that is SQL99
compliant<o:p></o:p></b></p>
<p class=MsoNormal><b><o:p>&nbsp;</o:p></b></p>
<p class=MsoNormal>An example of this scenario is adding the <st1:City><st1:place>Derby</st1:place></st1:City>
open source database. This example is not realistic, because the Database
Definition Model for <st1:City><st1:place>Derby</st1:place></st1:City> has
already been provided as part of the open source contribution, but you can
follow these same steps to add other database vendors.<o:p></o:p></p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in;mso-list:l17 level1 lfo13;
tab-stops:list .75in'><![if !supportLists]><span style='mso-fareast-font-family:
"Times New Roman"'><span style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>Generate a vendor document for the <st1:City><st1:place>Derby</st1:place></st1:City>
database. Use the attached Java program to create a new database vendor (XMI) document.
The Java class uses the database definition model (org.eclipse.datatools.modelbase.dbdefinition)
as a base, then walks through and sets each single model element (for example: column;
view; trigger; constraint; and sequence). See the code snippet below for
details. When it is finished, it will create a XMI document as your database
vendor documentation. You should modify the content of this Java class to match
features that your target database supports. For example, you would probably
want to set the schema support to a value of ‘false’, if you are working on a MySQL
database.</p>
<p class=MsoNormal style='margin-left:.75in'><a
href="sampleZip/ExampleForVendorPrimitiveWrite.java">Java Class file for
generating Vendor Primitive document</a><o:p></o:p></p>
<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><o:p>&nbsp;</o:p></p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in;mso-list:l17 level1 lfo13;
tab-stops:list .75in;mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span
style='mso-fareast-font-family:"Times New Roman"'><span style='mso-list:Ignore'>2.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><![endif]>Create
a plug-in for the <st1:City><st1:place>Derby</st1:place></st1:City> database
definition. You can use the <span style='mso-bidi-font-weight:bold'>org.eclipse.wst.rdb.dbdefinition.derby</span>
plug-in as an example. In the <span style='mso-spacerun:yes'> </span>plugin.xml
file, you will need to include two extension points, <b style='mso-bidi-font-weight:
normal'>databaseDefinition</b> and <b style='mso-bidi-font-weight:normal'>uri_mapping</b>,
as follows:</p>
<p class=MsoNormal style='margin-left:.25in;mso-layout-grid-align:none;
text-autospace:none'><o:p>&nbsp;</o:p></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
background:white;mso-highlight:white'>&lt;?xml version=&quot;1.0&quot;
encoding=&quot;UTF-8&quot;?&gt;</span><span style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
background:white;mso-highlight:white'>&lt;?eclipse version=&quot;3.0&quot;?&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;plugin</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>id=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;</span>
<span style='font-size:10.0pt;color:green'>org.eclipse.datatools.connectivity.dbdefinition.derby<span
style='background:white;mso-highlight:white'>&quot;</span></span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>name=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;%pluginName&quot;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>version=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;1.0.0&quot;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>provider-name=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;Eclipse&quot;</span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt'><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;extension</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>         </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>point=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;</span>
<span style='font-size:10.0pt;color:green'>org.eclipse.datatools.connectivity.core<span
style='background:white;mso-highlight:white'>.databaseDefinition&quot;</span></span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>      </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;definition</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>            </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>version=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;10.0&quot;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>            </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>product=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;</span><st1:City><st1:place><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>Derby</span></st1:place></st1:City><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;</span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>      </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;/definition&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;/extension&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt'><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;extension</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>         </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>point=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;org.eclipse.emf.ecore.uri_mapping&quot;</span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>      </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;mapping</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>            </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>source=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;Derby_10.0.xmi&quot;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>            </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>target=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;runtime/vendors/Derby_10.0/Derby_10.0.xmi&quot;</span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>      </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;/mapping&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;/extension&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;/plugin&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><o:p>&nbsp;</o:p></p>
<p class=MsoNormal style='margin-left:.5in'>Important notes:</p>
<p class=MsoNormal style='margin-left:.5in'><o:p>&nbsp;</o:p></p>
<p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;mso-list:l10 level1 lfo14;
tab-stops:list 1.0in'><![if !supportLists]><span style='font-family:Symbol;
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>The version number and product name are required
in the databaseDefinition extension point.</p>
<p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;mso-list:l10 level1 lfo14;
tab-stops:list 1.0in'><![if !supportLists]><span style='font-family:Symbol;
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>The 2<sup>nd</sup> extension point uri_mapping
is dependant on the vendor document file, which is formed by concatenating the product
name and version name with an underscore. For example, <u><span
style='font-size:10.0pt;font-family:Courier;mso-bidi-font-family:"Courier New";
color:green;background:white;mso-highlight:white'>Derby_10.0.xmi</span></u>. Therefore,
you must save<span style='mso-spacerun:yes'>  </span>your vendor document in
the <span style='mso-spacerun:yes'> </span><span style='font-size:10.0pt;
font-family:Courier;mso-bidi-font-family:"Courier New"'>runtime/vendors/Derby_10.0/Derby_10.0.xmi
</span>folder of the org.eclipse.datatools.connectivity.dbdefinition.derby<span
style='background:white;mso-highlight:white'>.</span>derby plug-in.</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<h2><a name="_Extending_the_catalog_loader"></a><span style='font-style:normal'>Extending
the catalog loader<o:p></o:p></span></h2>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>The catalog loader provides native JDBC catalog loading for
all databases in the open source contribution. This means that a fixed set of
database elements, such as schemas, tables, views, and relationships are loaded
by querying the JDBC metadata. You can enhance the default catalog loader to
process additional model elements that your target database supports. A common
approach for this is to execute a specific query on the database server to
retrieve preparatory information from the database system catalog.</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>To develop a catalog loader plug-in for <st1:City><st1:place>Derby</st1:place></st1:City>
(org.eclipse.datatools.connectivity.derby), you would implement a catalog
provider plug-in with following three required plug-ins:</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal style='text-indent:.5in'>org.eclipse.datatools.modelbase<span
style='background:white;mso-highlight:white'>.sql<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:.5in'>org.eclipse.datatools.modelbase<span
style='background:white;mso-highlight:white'>.dbdefinition</span></p>
<p class=MsoNormal style='text-indent:.5in'>org.eclipse.datatools.connectivity<span
style='background:white;mso-highlight:white'>.</span>core<o:p></o:p></p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>Extension points:</p>
<table class=MsoTableGrid border=1 cellspacing=0 cellpadding=0
style='border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
mso-yfti-tbllook:480;mso-padding-alt:0in 5.4pt 0in 5.4pt;mso-border-insideh:
.5pt solid windowtext;mso-border-insidev:.5pt solid windowtext'>
<tr style='mso-yfti-irow:0'>
<td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt;
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
style='font-size:10.0pt;font-family:Times'>org.eclipse.datatools.connectivity.core.catalog</span></b><span
style='font-size:10.0pt'><o:p></o:p></span></p>
</td>
<td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt;
border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:
solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Times'>for
catalog loading</span><span style='font-size:10.0pt'><o:p></o:p></span></p>
</td>
</tr>
<tr style='mso-yfti-irow:1;mso-yfti-lastrow:yes'>
<td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt;
border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
style='font-size:10.0pt'>org.eclipse.datatools.connectivity.server.ui.ServerExplorerInitializationProvider</span></b><span
style='font-size:10.0pt'><o:p></o:p></span></p>
</td>
<td width=295 valign=top style='width:221.4pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal><span style='font-size:10.0pt'>Contribute a new JDBC Driver
for </span><st1:City><st1:place><span style='font-size:10.0pt'>Derby</span></st1:place></st1:City><span
style='font-size:10.0pt'><o:p></o:p></span></p>
</td>
</tr>
</table>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>Your plugin.xml file should look like this:</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
background:white;mso-highlight:white'>&lt;?xml version=&quot;1.0&quot;
encoding=&quot;UTF-8&quot;?&gt;</span><span style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
background:white;mso-highlight:white'>&lt;?eclipse version=&quot;3.0&quot;?&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;plugin</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>id=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;
</span><span style='font-size:10.0pt;color:green'>org.eclipse.datatools.connectivity<span
style='background:white;mso-highlight:white'>.derby&quot;</span></span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>name=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;Cloudscape
Plug-in&quot;</span><span style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>version=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;1.0.0&quot;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>provider-name=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;Eclipse&quot;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>class=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;</span>
<span style='font-size:10.0pt;color:green'>org.eclipse.datatools.connectivity<span
style='background:white;mso-highlight:white'>.derby.DerbyPlugin&quot;</span></span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;runtime&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>      </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;library</span><span
style='font-size:10.0pt;color:black;background:white;mso-highlight:white'> </span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>name=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;derbyPlugin.jar&quot;</span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>         </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;export</span><span
style='font-size:10.0pt;color:black;background:white;mso-highlight:white'> </span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>name=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;*&quot;</span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>/&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>      </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;/library&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;/runtime&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;requires&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>      </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;import</span><span
style='font-size:10.0pt;color:black;background:white;mso-highlight:white'> </span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>plugin=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;org.eclipse.emf.ecore&quot;</span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>/&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>      </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;import</span><span
style='font-size:10.0pt;color:black;background:white;mso-highlight:white'> </span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>plugin=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;org.eclipse.core.runtime&quot;</span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>/&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>      </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;import</span><span
style='font-size:10.0pt;color:black;background:white;mso-highlight:white'> </span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>plugin=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;org.eclipse.core.resources&quot;</span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>/&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.25in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>      </span><span
style='mso-spacerun:yes'>       </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;import</span><span
style='font-size:10.0pt;color:black;background:white;mso-highlight:white'> </span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>plugin=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;</span>
<span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;color:green'>org.eclipse.datatools.modelbase</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>.dbdefinition&quot;</span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>/&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.25in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>     </span><span
style='mso-spacerun:yes'>       </span><span style='mso-spacerun:yes'> </span></span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>&lt;import</span><span
style='font-size:10.0pt;color:black;background:white;mso-highlight:white'> </span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>plugin=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;</span>
<span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;color:green'>org.eclipse.datatools.modelbase</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>.sql&quot;</span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>/&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;color:black;background:white;
mso-highlight:white'><span style='mso-spacerun:yes'>         </span><span
style='mso-spacerun:yes'>           </span></span><span style='font-size:10.0pt;
background:white;mso-highlight:white'>&lt;<span style='color:navy'>import</span><span
style='color:black'> </span><span style='color:navy'>plugin</span> =<span
style='color:green'>&quot;</span></span><span style='font-size:10.0pt;
color:green'>org.eclipse.datatools.connectivity<span style='background:white;
mso-highlight:white'>..core&quot;</span></span><span style='font-size:10.0pt;
background:white;mso-highlight:white'>/&gt;</span><span style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;/requires&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;extension</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>         </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>point=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;</span><span
style='font-size:10.0pt;color:green'> org.eclipse.datatools.connectivity<span
style='background:white;mso-highlight:white'>.core.catalog&quot;</span></span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>      </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;catalog</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>            </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>version=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;10.0&quot;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>            </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>product=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;</span><st1:City><st1:place><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>Derby</span></st1:place></st1:City><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>            </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>provider=</span><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;
</span><span style='font-size:10.0pt;color:green'>org.eclipse.datatools.connectivity<span
style='background:white;mso-highlight:white'>.derby.catalog.DerbyCatalogProvider&quot;</span></span><span
style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>      </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;/catalog&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>   </span></span><span style='font-size:10.0pt;
color:navy;background:white;mso-highlight:white'>&lt;/extension&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>Finally, you can follow the JDBC provider implementation in
the <span style='mso-spacerun:yes'> </span><b style='mso-bidi-font-weight:normal'>org.eclipse.datatools.connectivity.core</b>
plug-in (in the <u><span style='font-family:Times'>\src\org\eclipse\datatools\connectivity\internal\core\rte\jdbc</span></u>
package, all JDBC* classes such as JDBCDatabase, JDBCTable, JDBCView, and JDBCSchema)
to implement the catalog loader for <st1:City><st1:place>Derby</st1:place></st1:City>.
Or refer to the classes in org.eclipse.datatools.connectivity.derby plug-in,
catalog package.</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<h2><a name="_Extension_point_for_the SQL parser"></a><span style='font-style:
normal'>Extension point for the SQL parser<o:p></o:p></span></h2>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>The extension point to implement a SQL Parser for reverse
engineering or catalog loading from the DDL Script is defined in the org.eclipse.datatools.connectivity.core
plug-in, in the schema folder ddlParser.exsd.</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Courier;
mso-bidi-font-family:"Courier New";background:silver;mso-highlight:silver'>org.eclipse.datatools.connectivity.core.ddlParser</span><span
style='font-family:Courier'><o:p></o:p></span></p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>Sample plugin.xml:</p>
<p class=MsoNormal><span style='mso-tab-count:1'>            </span>……</p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
background:white;mso-highlight:white'>&lt;extension</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in;text-indent:.5in'><span
style='font-size:10.0pt;background:white;mso-highlight:white'>point=<span
style='color:green'>&quot;org.eclipse.datatools.connectivity.core.ddlParser&quot;</span>&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>      </span><span style='mso-tab-count:1'>          </span></span><span
style='font-size:10.0pt;background:white;mso-highlight:white'>&lt;</span><span
style='font-size:10.0pt'>parser<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>            </span><span style='mso-tab-count:2'>                    </span></span><span
style='font-size:10.0pt;background:white;mso-highlight:white'>version=<span
style='color:green'>&quot;10.0&quot;</span></span><span style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>            </span><span style='mso-tab-count:2'>                    </span></span><span
style='font-size:10.0pt;background:white;mso-highlight:white'>product=<span
style='color:green'>&quot;</span></span><st1:City><st1:place><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>Derby</span></st1:place></st1:City><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;color:maroon;background:white;
mso-highlight:white'><span style='mso-spacerun:yes'>           </span><span
style='mso-tab-count:3'>                                     </span>&lt;!—You
need to add this class to </span><st1:City><st1:place><span style='font-size:
10.0pt;color:maroon;background:white;mso-highlight:white'>Derby</span></st1:place></st1:City><span
style='font-size:10.0pt;color:maroon;background:white;mso-highlight:white'> plug-in
--&gt;</span><span style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
background:white;mso-highlight:white'>class=<span style='color:green'>&quot;org.eclipse.datatools.connectivity.derby.ddl.DerbyDdlParser&quot;</span>&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
color:black;background:white;mso-highlight:white'><span
style='mso-spacerun:yes'>      </span><span style='mso-tab-count:1'>          </span></span><span
style='font-size:10.0pt;background:white;mso-highlight:white'>&lt;/parser&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
background:white;mso-highlight:white'>&lt;/extension&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>…….<o:p></o:p></span></p>
<p class=MsoNormal>The DerbyDdlEngineeringProvider class implements the following
interface.</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal><span style='font-size:10.0pt'>public interface DDLParser {<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt'><span style='mso-tab-count:
1'>                </span>public Database[] parse(String fileName,
IProgressMonitor progressMonitor);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt'>}<o:p></o:p></span></p>
<h2><a name="_Contributing_a_new_JDBC driver for "></a><a
name="_Contributing_a_new_JDBC driver"></a><a
name="_Extension_point_for_DDL Code genera"></a><span style='font-style:normal'>Extension
point for DDL Code generation<o:p></o:p></span></h2>
<p class=MsoNormal>The extension point to implement DDL Code Generation (for
forward engineering) is defined in the org.eclipse.datatools.connectivity.core
plug-in, in the schema folder ddlGeneration.exsd.</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Courier;
mso-bidi-font-family:"Courier New";background:silver;mso-highlight:silver'>org.eclipse.datatools.connectivity.core.DDLGeneration</span><span
style='font-family:Courier'><o:p></o:p></span></p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>Sample plugin.xml:</p>
<p class=MsoNormal><span style='mso-tab-count:1'>            </span>……</p>
<p class=MsoNormal><span style='font-size:10.0pt;color:black;background:white;
mso-highlight:white'><span style='mso-spacerun:yes'>   </span><span
style='mso-tab-count:1'>             </span></span><span style='font-size:10.0pt;
background:white;mso-highlight:white'>&lt;extension</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal><span style='color:black;background:white;mso-highlight:
white'><span style='mso-spacerun:yes'>   </span><span style='mso-tab-count:
2'>                     </span></span><span style='font-size:10.0pt;background:
white;mso-highlight:white'>&lt;extension</span><span style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;color:black;background:white;
mso-highlight:white'><span style='mso-spacerun:yes'>         </span><span
style='mso-tab-count:1'>       </span><span style='mso-tab-count:2'>                                </span></span><span
style='font-size:10.0pt;background:white;mso-highlight:white'>point=<span
style='color:green'>&quot;org.eclipse.datatools.connectitivy.core.ddlGeneration&quot;</span>&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;color:black;background:white;
mso-highlight:white'><span style='mso-spacerun:yes'>      </span><span
style='mso-tab-count:1'>          </span><span style='mso-tab-count:1'>                </span></span><span
style='font-size:10.0pt;background:white;mso-highlight:white'>&lt;generator</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;color:black;background:white;
mso-highlight:white'><span style='mso-spacerun:yes'>            </span><span
style='mso-tab-count:1'>    </span><span style='mso-tab-count:2'>                                </span></span><span
style='font-size:10.0pt;background:white;mso-highlight:white'>product=<span
style='color:green'>&quot;</span></span><st1:City><st1:place><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>Derby</span></st1:place></st1:City><span
style='font-size:10.0pt;color:green;background:white;mso-highlight:white'>&quot;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;color:black;background:white;
mso-highlight:white'><span style='mso-spacerun:yes'>   </span><span
style='mso-spacerun:yes'>         </span><span style='mso-tab-count:1'>    </span><span
style='mso-tab-count:2'>                                </span></span><span
style='font-size:10.0pt;background:white;mso-highlight:white'>version=<span
style='color:green'>&quot;10.0&quot;</span></span><span style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:1.0in;text-indent:.5in'><span
style='font-size:10.0pt;color:maroon;background:white;mso-highlight:white'>&lt;!—You
need to add this to </span><st1:City><st1:place><span style='font-size:10.0pt;
color:maroon;background:white;mso-highlight:white'>Derby</span></st1:place></st1:City><span
style='font-size:10.0pt;color:maroon;background:white;mso-highlight:white'> plug-in
--&gt;</span><span style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;color:black;background:white;
mso-highlight:white'><span style='mso-spacerun:yes'>            </span><span
style='mso-tab-count:3'>                                    </span></span><span
style='font-size:10.0pt;background:white;mso-highlight:white'>class=<span
style='color:green'>&quot;org.eclipse.datatools.connectivity.derby.ddl.DerbyDdlGenerator&quot;</span>&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;color:black;background:white;
mso-highlight:white'><span style='mso-spacerun:yes'>      </span><span
style='mso-tab-count:1'>          </span><span style='mso-tab-count:1'>                </span></span><span
style='font-size:10.0pt;background:white;mso-highlight:white'>&lt;/generator&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;color:black;background:white;
mso-highlight:white'><span style='mso-spacerun:yes'>   </span><span
style='mso-tab-count:1'>             </span></span><span style='font-size:10.0pt;
background:white;mso-highlight:white'>&lt;/extension&gt;</span><span
style='font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>…….<o:p></o:p></span></p>
<p class=MsoNormal>The <span style='background:white;mso-highlight:white'>DerbyDdlGenerator</span>
class implements the following interface.</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal><span style='font-size:10.0pt'>public interface DDLGenerator
{<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:.5in'><span style='font-size:10.0pt'>public
String[] generateDDL(SQLObject[] elements, IProgressMonitor progressMonitor);<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>public
String[] createSQLObjects(SQLObject[] elements, boolean quoteIdentifiers,
boolean <span style='mso-spacerun:yes'>                 </span><o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:.5in'><span style='font-size:10.0pt'>qualifyNames,
IProgressMonitor progressMonitor);<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>public
String[] dropSQLObjects(SQLObject[] elements, boolean quoteIdentifiers, boolean
qualifyNames, IProgressMonitor progressMonitor);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt'><span style='mso-tab-count:
1'>                </span>public EngineeringOption[] getOptions();<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:.5in'><span style='font-size:10.0pt'>public
EngineeringOptionCategory[] getOptionCategories(); <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:9.0pt'><span style='font-size:10.0pt'>}<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt'><o:p>&nbsp;</o:p></span></p>
</div>
</body>
</html>