| <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> </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> </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"'> |
| </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"'> |
| </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"'> |
| </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"'> |
| </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> </o:p></b></p> |
| |
| <p class=MsoNormal><o:p> </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> </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> </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> </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> </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> </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> </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> </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> </o:p></p> |
| |
| <p class=MsoNormal>Plug-ins used:</p> |
| |
| <p class=MsoNormal><o:p> </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> </o:p></p> |
| |
| <p class=MsoNormal>Here are two typical scenarios for creating a new database |
| vendor:</p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal><b>Scenario one: Altering the SQLModel definition<o:p></o:p></b></p> |
| |
| <p class=MsoNormal><o:p> </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> </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"'> |
| </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"'> |
| </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"'> |
| </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"'> |
| </span></span></span><![endif]>Continue with step one of Scenario two.</p> |
| |
| <p class=MsoNormal style='margin-left:.25in'><o:p> </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> </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> </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"'> |
| </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> </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"'> </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> </o:p></p> |
| |
| <p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt; |
| background:white;mso-highlight:white'><?xml version="1.0" |
| encoding="UTF-8"?></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'><?eclipse version="3.0"?></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'><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'>"</span> |
| <span style='font-size:10.0pt;color:green'>org.eclipse.datatools.connectivity.dbdefinition.derby<span |
| style='background:white;mso-highlight:white'>"</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'>"%pluginName"</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'>"1.0.0"</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'>"Eclipse"</span><span |
| style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>></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> </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'><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'>"</span> |
| <span style='font-size:10.0pt;color:green'>org.eclipse.datatools.connectivity.core<span |
| style='background:white;mso-highlight:white'>.databaseDefinition"</span></span><span |
| style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>></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'><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'>"10.0"</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'>"</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'>"</span><span |
| style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>></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'></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'></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'><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'><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'>"org.eclipse.emf.ecore.uri_mapping"</span><span |
| style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>></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'><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'>"Derby_10.0.xmi"</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'>"runtime/vendors/Derby_10.0/Derby_10.0.xmi"</span><span |
| style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>></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'></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'></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:navy;background:white;mso-highlight:white'></plugin></span><span |
| style='font-size:10.0pt'><o:p></o:p></span></p> |
| |
| <p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p> |
| |
| <p class=MsoNormal style='margin-left:.5in'>Important notes:</p> |
| |
| <p class=MsoNormal style='margin-left:.5in'><o:p> </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"'> |
| </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"'> |
| </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> </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> </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> </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> </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> </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> </o:p></p> |
| |
| <p class=MsoNormal>Your plugin.xml file should look like this:</p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt; |
| background:white;mso-highlight:white'><?xml version="1.0" |
| encoding="UTF-8"?></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'><?eclipse version="3.0"?></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'><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'>" |
| </span><span style='font-size:10.0pt;color:green'>org.eclipse.datatools.connectivity<span |
| style='background:white;mso-highlight:white'>.derby"</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'>"Cloudscape |
| Plug-in"</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'>"1.0.0"</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'>"Eclipse"</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'>"</span> |
| <span style='font-size:10.0pt;color:green'>org.eclipse.datatools.connectivity<span |
| style='background:white;mso-highlight:white'>.derby.DerbyPlugin"</span></span><span |
| style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>></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 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'><runtime></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'><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'>"derbyPlugin.jar"</span><span |
| style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>></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'><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'>"*"</span><span |
| style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>/></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'></library></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'></runtime></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'><requires></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'><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'>"org.eclipse.emf.ecore"</span><span |
| style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>/></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'><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'>"org.eclipse.core.runtime"</span><span |
| style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>/></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'><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'>"org.eclipse.core.resources"</span><span |
| style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>/></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'><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'>"</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"</span><span |
| style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>/></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'><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'>"</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"</span><span |
| style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>/></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'><<span style='color:navy'>import</span><span |
| style='color:black'> </span><span style='color:navy'>plugin</span> =<span |
| style='color:green'>"</span></span><span style='font-size:10.0pt; |
| color:green'>org.eclipse.datatools.connectivity<span style='background:white; |
| mso-highlight:white'>..core"</span></span><span style='font-size:10.0pt; |
| background:white;mso-highlight:white'>/></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'></requires></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 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'><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'>"</span><span |
| style='font-size:10.0pt;color:green'> org.eclipse.datatools.connectivity<span |
| style='background:white;mso-highlight:white'>.core.catalog"</span></span><span |
| style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>></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'><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'>"10.0"</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'>"</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'>"</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'>" |
| </span><span style='font-size:10.0pt;color:green'>org.eclipse.datatools.connectivity<span |
| style='background:white;mso-highlight:white'>.derby.catalog.DerbyCatalogProvider"</span></span><span |
| style='font-size:10.0pt;color:navy;background:white;mso-highlight:white'>></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'></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'></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'><o:p> </o:p></span></p> |
| |
| <p class=MsoNormal><o:p> </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> </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> </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> </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> </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'><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'>"org.eclipse.datatools.connectivity.core.ddlParser"</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:1'> </span></span><span |
| style='font-size:10.0pt;background:white;mso-highlight:white'><</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'>"10.0"</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'>"</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'>"</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><!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 |
| --></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'>"org.eclipse.datatools.connectivity.derby.ddl.DerbyDdlParser"</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:1'> </span></span><span |
| style='font-size:10.0pt;background:white;mso-highlight:white'></parser></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'></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'>
.<o:p></o:p></span></p> |
| |
| <p class=MsoNormal>The DerbyDdlEngineeringProvider class implements the following |
| interface.</p> |
| |
| <p class=MsoNormal><o:p> </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> </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> </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'><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'><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'>"org.eclipse.datatools.connectitivy.core.ddlGeneration"</span>></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'><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'>"</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'>"</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'>"10.0"</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'><!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 |
| --></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'>"org.eclipse.datatools.connectivity.derby.ddl.DerbyDdlGenerator"</span>></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'></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><span style='font-size:10.0pt; |
| background:white;mso-highlight:white'></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'>
.<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> </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> </o:p></span></p> |
| |
| </div> |
| |
| </body> |
| |
| </html> |