| <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"> |
| <link rel=File-List href="FlexibleProjectConcepts_files/filelist.xml"> |
| <link rel=Edit-Time-Data href="FlexibleProjectConcepts_files/editdata.mso"> |
| <!--[if !mso]> |
| <style> |
| v\:* {behavior:url(#default#VML);} |
| o\:* {behavior:url(#default#VML);} |
| w\:* {behavior:url(#default#VML);} |
| .shape {behavior:url(#default#VML);} |
| </style> |
| <![endif]--> |
| <title>Problems that are obviously us:</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>Michael D. Elder</o:Author> |
| <o:LastAuthor>cbridgha</o:LastAuthor> |
| <o:Revision>2</o:Revision> |
| <o:TotalTime>6</o:TotalTime> |
| <o:LastPrinted>2004-11-11T16:27:00Z</o:LastPrinted> |
| <o:Created>2004-11-11T18:05:00Z</o:Created> |
| <o:LastSaved>2004-11-11T18:05:00Z</o:LastSaved> |
| <o:Pages>1</o:Pages> |
| <o:Words>1502</o:Words> |
| <o:Characters>8562</o:Characters> |
| <o:Company>IBM</o:Company> |
| <o:Lines>71</o:Lines> |
| <o:Paragraphs>20</o:Paragraphs> |
| <o:CharactersWithSpaces>10044</o:CharactersWithSpaces> |
| <o:Version>10.4219</o:Version> |
| </o:DocumentProperties> |
| </xml><![endif]--><!--[if gte mso 9]><xml> |
| <w:WordDocument> |
| <w:Compatibility> |
| <w:BreakWrappedTables/> |
| <w:SnapToGridInCell/> |
| <w:WrapTextWithPunct/> |
| <w:UseAsianBreakRules/> |
| </w:Compatibility> |
| <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> |
| </w:WordDocument> |
| </xml><![endif]--><!--[if !mso]><object |
| classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui></object> |
| <style> |
| st1\:*{behavior:url(#ieooui) } |
| </style> |
| <![endif]--> |
| <style> |
| <!-- |
| /* Font Definitions */ |
| @font-face |
| {font-family:Wingdings; |
| panose-1:5 0 0 0 0 0 0 0 0 0; |
| mso-font-charset:2; |
| mso-generic-font-family:auto; |
| mso-font-pitch:variable; |
| mso-font-signature:0 268435456 0 0 -2147483648 0;} |
| @font-face |
| {font-family:Tahoma; |
| panose-1:2 11 6 4 3 5 4 4 2 4; |
| mso-font-charset:0; |
| mso-generic-font-family:swiss; |
| mso-font-pitch:variable; |
| mso-font-signature:1627421319 -2147483648 8 0 66047 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:"Times New Roman";} |
| h3 |
| {mso-margin-top-alt:auto; |
| margin-right:0in; |
| mso-margin-bottom-alt:auto; |
| margin-left:0in; |
| mso-pagination:widow-orphan; |
| mso-outline-level:3; |
| font-size:13.5pt; |
| font-family:"Times New Roman";} |
| a:link, span.MsoHyperlink |
| {color:blue; |
| text-decoration:underline; |
| text-underline:single;} |
| a:visited, span.MsoHyperlinkFollowed |
| {color:purple; |
| text-decoration:underline; |
| text-underline:single;} |
| @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:132529151; |
| mso-list-type:hybrid; |
| mso-list-template-ids:1093442910 67698709 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} |
| @list l0:level1 |
| {mso-level-number-format:alpha-upper; |
| mso-level-tab-stop:.5in; |
| mso-level-number-position:left; |
| text-indent:-.25in;} |
| @list l0:level2 |
| {mso-level-number-format:alpha-lower; |
| mso-level-tab-stop:1.0in; |
| mso-level-number-position:left; |
| text-indent:-.25in;} |
| @list l0:level3 |
| {mso-level-number-format:roman-lower; |
| mso-level-tab-stop:1.5in; |
| mso-level-number-position:right; |
| text-indent:-9.0pt;} |
| @list l1 |
| {mso-list-id:288974159; |
| mso-list-type:hybrid; |
| mso-list-template-ids:1046108864 1111785440 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} |
| @list l1:level1 |
| {mso-level-start-at:0; |
| mso-level-number-format:bullet; |
| mso-level-text:-; |
| mso-level-tab-stop:.75in; |
| mso-level-number-position:left; |
| margin-left:.75in; |
| text-indent:-.25in; |
| font-family:"Times New Roman"; |
| mso-fareast-font-family:"Times New Roman";} |
| @list l2 |
| {mso-list-id:391659255; |
| mso-list-type:hybrid; |
| mso-list-template-ids:-1881621166 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} |
| @list l2:level1 |
| {mso-level-number-format:bullet; |
| mso-level-text:\F0B7; |
| mso-level-tab-stop:.5in; |
| mso-level-number-position:left; |
| text-indent:-.25in; |
| font-family:Symbol;} |
| @list l3 |
| {mso-list-id:859508517; |
| mso-list-type:hybrid; |
| mso-list-template-ids:2094045304 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} |
| @list l3:level1 |
| {mso-level-number-format:bullet; |
| mso-level-text:\F0B7; |
| mso-level-tab-stop:1.5in; |
| mso-level-number-position:left; |
| margin-left:1.5in; |
| text-indent:-.25in; |
| font-family:Symbol;} |
| @list l4 |
| {mso-list-id:1006594864; |
| mso-list-type:hybrid; |
| mso-list-template-ids:-794890384 668081380 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} |
| @list l4:level1 |
| {mso-level-start-at:0; |
| mso-level-number-format:bullet; |
| mso-level-text:\F06E; |
| mso-level-tab-stop:.75in; |
| mso-level-number-position:left; |
| margin-left:.75in; |
| text-indent:-.25in; |
| font-family:Wingdings; |
| mso-fareast-font-family:"Times New Roman"; |
| mso-bidi-font-family:"Times New Roman";} |
| @list l4:level2 |
| {mso-level-number-format:bullet; |
| mso-level-text:o; |
| mso-level-tab-stop:1.25in; |
| mso-level-number-position:left; |
| margin-left:1.25in; |
| text-indent:-.25in; |
| font-family:"Courier New";} |
| @list l5 |
| {mso-list-id:1402829190; |
| mso-list-type:hybrid; |
| mso-list-template-ids:-1531251734 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:1.0in; |
| mso-level-number-position:left; |
| margin-left:1.0in; |
| text-indent:-.25in; |
| font-family:Symbol;} |
| @list l6 |
| {mso-list-id:1457291202; |
| mso-list-type:hybrid; |
| mso-list-template-ids:-265669448 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} |
| @list l6:level1 |
| {mso-level-number-format:bullet; |
| mso-level-text:\F0B7; |
| mso-level-tab-stop:1.5in; |
| mso-level-number-position:left; |
| margin-left:1.5in; |
| text-indent:-.25in; |
| font-family:Symbol;} |
| @list l7 |
| {mso-list-id:1838376975; |
| mso-list-type:hybrid; |
| mso-list-template-ids:-1460776930 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} |
| @list l7: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;} |
| 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> |
| |
| <p class=MsoNormal>The J2EE Flexible Project Concepts Documentation</p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal>The goal of this document is to share some initial ideas |
| that will help shape the Eclipse Web Tools (WTP) J2EE project application model |
| and its implementation. We initially planned to pursue this effort as a formal |
| requirements gathering and documentation process. But once we began analyzing |
| the problem space it was clear that there is no common J2EE project model used |
| within the J2EE development community. Stated another way, all current J2EE |
| project models are ad hoc. At most, the J2EE application deployment model, |
| defined in the J2EE specification, is the only common reference structure and |
| it only specifies to the runtime archive form of valid J2EE applications. With |
| that as our starting point, we concluded that rather than attempt to draft a |
| conventional requirements document, it would be more beneficial to initiate a |
| discussion of ideas among the key WTP participants that can serve as the |
| catalyst for a J2EE application project requirements and subsequent |
| architecture and implementation.</p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal>The contents of this document are representative of the |
| future direction. However, some of this functionality described is |
| representative of our current state.</p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal><span lang=TR style='mso-ansi-language:TR'>There are several |
| use cases described in the Use Case Scenario Powerpoint Slides. Where relevant, |
| the relationship of the concepts described in this document and the scenario |
| slides are highlighted.</span><o:p></o:p></p> |
| |
| <p class=MsoNormal style='margin-left:.25in'><o:p> </o:p></p> |
| |
| <p class=MsoNormal><span lang=TR style='mso-ansi-language:TR'>A <b |
| style='mso-bidi-font-weight:normal'>project</b> is a type of resource which |
| groups resources into buildable, reusable units</span> - Java <span lang=TR |
| style='mso-ansi-language:TR'>project resource</span>s are defined<span lang=TR |
| style='mso-ansi-language:TR'> in terms of Java<span style='mso-spacerun:yes'> |
| </span>elements such as package fragments, types, methods and fields.<o:p></o:p></span></p> |
| |
| <p class=MsoNormal><span lang=TR style='mso-ansi-language:TR'><o:p> </o:p></span></p> |
| |
| <p class=MsoNormal><span lang=TR style='mso-ansi-language:TR'>The scenario |
| slides highlight the following types of use cases:<o:p></o:p></span></p> |
| |
| <p class=MsoNormal><span lang=TR style='mso-ansi-language:TR'><o:p> </o:p></span></p> |
| |
| <ul style='margin-top:0in' type=disc> |
| <li class=MsoNormal style='mso-list:l2 level1 lfo8;tab-stops:list .5in'><span |
| lang=TR style='mso-ansi-language:TR'>Simple Project (contains one module |
| and one Deploy Scheme)<o:p></o:p></span></li> |
| <li class=MsoNormal style='mso-list:l2 level1 lfo8;tab-stops:list .5in'><span |
| lang=TR style='mso-ansi-language:TR'>Simple Container Project (contains one |
| or more modules, possibly multiple Deploy Schemes)<o:p></o:p></span></li> |
| <li class=MsoNormal style='mso-list:l2 level1 lfo8;tab-stops:list .5in'><span |
| lang=TR style='mso-ansi-language:TR'>Application Project (application and |
| modules contained in the same<span style='mso-spacerun:yes'> |
| </span>Simple Container project)<o:p></o:p></span></li> |
| <li class=MsoNormal style='mso-list:l2 level1 lfo8;tab-stops:list .5in'><span |
| lang=TR style='mso-ansi-language:TR'>Application Project Variation (application |
| in one Simple Container Project modules may be in other Simple Container |
| projects)<o:p></o:p></span></li> |
| <li class=MsoNormal style='mso-list:l2 level1 lfo8;tab-stops:list .5in'><span |
| lang=TR style='mso-ansi-language:TR'>Composed Modules (stay tuned (bum bum |
| bum))<o:p></o:p></span></li> |
| </ul> |
| |
| <p class=MsoNormal><span lang=TR style='mso-ansi-language:TR'><o:p> </o:p></span></p> |
| |
| <p class=MsoNormal><span lang=TR style='mso-ansi-language:TR'>The J2EE module |
| definitions build on the use case concepts. As discussed in the use cases, a |
| module is a collection of files in a project. However, for the remainder of |
| this document, the term abstract module will refer to an intangible concept (to |
| be defined more explicitly later on). The abstract module concept represents |
| the abstraction of a physical module in terms that can be understood |
| programmatically. The specifics of how these projects<span |
| style='mso-spacerun:yes'> </span>are constructed is not important to the |
| discussion of modules.<o:p></o:p></span></p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal>A <b style='mso-bidi-font-weight:normal'>resource</b> is a |
| abstraction which contains model elements. A <b style='mso-bidi-font-weight: |
| normal'>resource set </b>is a collection of related persistent resources. The |
| resource set manages the collection of resources and produces notifications for |
| changes to that collection. A <b style='mso-bidi-font-weight:normal'>project resource |
| set </b>is a resource set defined at the project level, meaning the project |
| resource set manages the collection of resources for that project. There is |
| only one project resource set per project, ensuring each resource is only |
| loaded once within the workspace. Each resource contained in the project |
| resource set has a <b style='mso-bidi-font-weight:normal'>relative URI, </b>which<b |
| style='mso-bidi-font-weight:normal'> </b>is a partial URI with respect to or |
| relative to the project. A <b style='mso-bidi-font-weight:normal'>WTP project |
| resource set </b>is defined in terms of module resources, which contain |
| abstract module models (defined later).</p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal>A <b style='mso-bidi-font-weight:normal'>URI converter</b> |
| may be configured on a resource set to normalize relative URIs for comparison |
| and to monitor access to the backing store.<span style='mso-spacerun:yes'> |
| </span>The resource set will use this converter to produce an input or output |
| stream for a URI, during serialization or deserialization of a resource, and |
| during a load to check for a resource URI match to one of its known resources.</p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal>An <b style='mso-bidi-font-weight:normal'>abstract module</b> |
| is a logical, abstracted, first-class model of a deployable artifact. The |
| initial assumption will be that abstract modules must be contained within one |
| project and thus use one project resource set.<span style='mso-spacerun:yes'> |
| </span>However, a project and the associated project resource set may contain |
| more than one abstract module.</p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal style='line-height:12.0pt;tab-stops:.5in 1.0in 1.5in 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><span lang=TR style='color: |
| black;mso-ansi-language:TR'>A <b style='mso-bidi-font-weight:normal'>J2EE a</b></span><b |
| style='mso-bidi-font-weight:normal'><span lang=TR style='mso-ansi-language: |
| TR'>bstract m<span style='color:black'>odule </span></span></b><span lang=TR |
| style='color:black;mso-ansi-language:TR'>is a collection of one or more |
| components, organized by a standard layout, targeted for the same container |
| upon deployment</span><span style='color:black'>, and which can be archived |
| conforming to the J2EE specification. Modules always contain a set of files, |
| but all J2EE modules also contain specialized files called <b style='mso-bidi-font-weight: |
| normal'>deployment descriptors</b>. Deployment descriptors describe the |
| contents of deployment units and configure components and applications to their |
| environment. They also externalize the relationships between components, so those |
| relationships can be managed without writing or changing program code. There |
| are five core types of J2EE deployment descriptors, each of which corresponds |
| to a type of J2EE deployment unit: <o:p></o:p></span></p> |
| |
| <p class=MsoNormal style='line-height:12.0pt;tab-stops:.5in 1.0in 1.5in 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><span style='color:black'><o:p> </o:p></span></p> |
| |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: |
| 12.0pt;mso-list:l3 level1 lfo7;tab-stops:list 1.0in left 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> |
| </span></span></span><![endif]><span style='color:black'>Application<o:p></o:p></span></p> |
| |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: |
| 12.0pt;mso-list:l3 level1 lfo7;tab-stops:list 1.0in left 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> |
| </span></span></span><![endif]><span style='color:black'>Application Client <o:p></o:p></span></p> |
| |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: |
| 12.0pt;mso-list:l3 level1 lfo7;tab-stops:list 1.0in left 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> |
| </span></span></span><![endif]><span style='color:black'>EJB <o:p></o:p></span></p> |
| |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: |
| 12.0pt;mso-list:l3 level1 lfo7;tab-stops:list 1.0in left 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> |
| </span></span></span><![endif]><span style='color:black'>Web <o:p></o:p></span></p> |
| |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: |
| 12.0pt;mso-list:l3 level1 lfo7;tab-stops:list 1.0in left 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> |
| </span></span></span><![endif]><span style='color:black'>Resource Adapter for |
| Java Connector<o:p></o:p></span></p> |
| |
| <p class=MsoNormal style='line-height:12.0pt;tab-stops:.5in 1.0in 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><span style='color:black'><o:p> </o:p></span></p> |
| |
| <p class=MsoNormal style='line-height:12.0pt;tab-stops:.5in 1.0in 1.5in 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><span style='color:black'>Vendor-specific |
| deployment descriptors may be defined for different </span><st1:City><st1:place><span |
| style='color:black'>Enterprise</span></st1:place></st1:City><span |
| style='color:black'> application containers to provide additional information. <o:p></o:p></span></p> |
| |
| <p class=MsoNormal style='line-height:12.0pt;tab-stops:.5in 1.0in 1.5in 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><span style='color:black'><o:p> </o:p></span></p> |
| |
| <p class=MsoNormal style='line-height:12.0pt;tab-stops:.5in 1.0in 1.5in 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><span style='color:black'>Each |
| deployment descriptor describes a set of contained objects which are |
| represented through <b style='mso-bidi-font-weight:normal'>module models</b></span>.<span |
| style='mso-spacerun:yes'> </span>The root abstract module model object for the |
| deployment descriptor is the associated J2EE abstract module type object.</p> |
| |
| <p class=MsoNormal style='line-height:12.0pt;tab-stops:.5in 1.0in 1.5in 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><o:p> </o:p></p> |
| |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: |
| 12.0pt;mso-list:l6 level1 lfo6;tab-stops:.5in 1.0in list 1.5in left 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> |
| </span></span></span><![endif]><span style='color:black'>The <b |
| style='mso-bidi-font-weight:normal'>Application</b> is the root object for an EAR |
| module.<o:p></o:p></span></p> |
| |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: |
| 12.0pt;mso-list:l6 level1 lfo6;tab-stops:.5in 1.0in list 1.5in left 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> |
| </span></span></span><![endif]><span style='color:black'>The <b |
| style='mso-bidi-font-weight:normal'>EJBJar</b> is the root object for an EJB |
| module.<o:p></o:p></span></p> |
| |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: |
| 12.0pt;mso-list:l6 level1 lfo6;tab-stops:.5in 1.0in list 1.5in left 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> |
| </span></span></span><![endif]><span style='color:black'>The <b |
| style='mso-bidi-font-weight:normal'>WebApp</b> is the root object for a Web |
| module.<o:p></o:p></span></p> |
| |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: |
| 12.0pt;mso-list:l6 level1 lfo6;tab-stops:.5in 1.0in list 1.5in left 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> |
| </span></span></span><![endif]><span style='color:black'>The <b |
| style='mso-bidi-font-weight:normal'>ApplicationClient</b> is the root object |
| for an Application Client module.<o:p></o:p></span></p> |
| |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: |
| 12.0pt;mso-list:l6 level1 lfo6;tab-stops:.5in 1.0in list 1.5in left 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> |
| </span></span></span><![endif]><span style='color:black'>The <b |
| style='mso-bidi-font-weight:normal'>Connector</b> is the root object for a JCA |
| Connector module.<o:p></o:p></span></p> |
| |
| <p class=MsoNormal style='line-height:12.0pt;tab-stops:.5in 1.0in 2.0in 2.5in 3.0in; |
| mso-layout-grid-align:none;text-autospace:none'><span style='color:black'><span |
| style='mso-spacerun:yes'> </span></span></p> |
| |
| <p class=MsoNormal>Before proceeding, it should be noted that there are two |
| distinct metamodels in the tooling environment. First, J2EE abstract models |
| allow framework clients to understand the J2EE-specific deployment descriptors |
| and their third-party extensions. The tooling frameworks are built primarily to |
| modify and update these models. There is also a separate model for |
| understanding how modules and their contained resources can be constructed for |
| deploying to server environments, which is referred to as <b style='mso-bidi-font-weight: |
| normal'>ModuleCore</b>. </p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal><b style='mso-bidi-font-weight:normal'>ModuleCore</b> can be |
| used to acquire, create, and destroy <b style='mso-bidi-font-weight:normal'>abstract |
| module contexts</b>. An <b style='mso-bidi-font-weight:normal'>abstract module |
| context</b> is<b style='mso-bidi-font-weight:normal'> </b>used to manage |
| multiple abstract modules per project. In the first implementation, an abstract |
| module context will not span multiple projects. Each abstract module context identifies |
| a unique custom defined abstract module using a module handle (see Server |
| Tooling), server target type (see Server Tooling), an edit model (to be |
| discussed later). </p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal><o:p> </o:p></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=590 valign=top style='width:6.15in;border:solid windowtext 1.0pt; |
| mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'> |
| <p class=MsoNormal><!--[if mso & !supportInlineShapes & supportFields]><span |
| style='mso-element:field-begin;mso-field-lock:yes'></span><span |
| style='mso-spacerun:yes'> </span>SHAPE<span style='mso-spacerun:yes'> |
| </span>\* MERGEFORMAT <span style='mso-element:field-separator'></span><![endif]--><!--[if gte vml 1]><v:group |
| id="_x0000_s1067" editas="canvas" style='width:6in;height:198pt; |
| mso-position-horizontal-relative:char;mso-position-vertical-relative:line' |
| coordorigin="3960,10104" coordsize="7200,3394"> |
| <o:lock v:ext="edit" aspectratio="t"/> |
| <v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" |
| o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> |
| <v:stroke joinstyle="miter"/> |
| <v:formulas> |
| <v:f eqn="if lineDrawn pixelLineWidth 0"/> |
| <v:f eqn="sum @0 1 0"/> |
| <v:f eqn="sum 0 0 @1"/> |
| <v:f eqn="prod @2 1 2"/> |
| <v:f eqn="prod @3 21600 pixelWidth"/> |
| <v:f eqn="prod @3 21600 pixelHeight"/> |
| <v:f eqn="sum @0 0 1"/> |
| <v:f eqn="prod @6 1 2"/> |
| <v:f eqn="prod @7 21600 pixelWidth"/> |
| <v:f eqn="sum @8 21600 0"/> |
| <v:f eqn="prod @7 21600 pixelHeight"/> |
| <v:f eqn="sum @10 21600 0"/> |
| </v:formulas> |
| <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/> |
| <o:lock v:ext="edit" aspectratio="t"/> |
| </v:shapetype><v:shape id="_x0000_s1068" type="#_x0000_t75" style='position:absolute; |
| left:3960;top:10104;width:7200;height:3394' o:preferrelative="f"> |
| <v:fill o:detectmouseclick="t"/> |
| <v:path o:extrusionok="t" o:connecttype="none"/> |
| <o:lock v:ext="edit" text="t"/> |
| </v:shape><v:rect id="_x0000_s1069" style='position:absolute;left:4410; |
| top:10258;width:6300;height:3086'> |
| <v:textbox style='mso-next-textbox:#_x0000_s1069'> |
| <![if !mso]> |
| <table cellpadding=0 cellspacing=0 width="100%"> |
| <tr> |
| <td><![endif]> |
| <div> |
| <p class=MsoNormal>ModuleCore</p> |
| </div> |
| <![if !mso]></td> |
| </tr> |
| </table> |
| <![endif]></v:textbox> |
| </v:rect><v:rect id="_x0000_s1070" style='position:absolute;left:4560;top:10721; |
| width:2850;height:1080'> |
| <v:textbox style='mso-next-textbox:#_x0000_s1070'> |
| <![if !mso]> |
| <table cellpadding=0 cellspacing=0 width="100%"> |
| <tr> |
| <td><![endif]> |
| <div> |
| <p class=MsoNormal>ModuleContext</p> |
| </div> |
| <![if !mso]></td> |
| </tr> |
| </table> |
| <![endif]></v:textbox> |
| </v:rect><v:rect id="_x0000_s1071" style='position:absolute;left:7560;top:10721; |
| width:2850;height:1080'> |
| <v:textbox style='mso-next-textbox:#_x0000_s1071'> |
| <![if !mso]> |
| <table cellpadding=0 cellspacing=0 width="100%"> |
| <tr> |
| <td><![endif]> |
| <div> |
| <p class=MsoNormal>ModuleContext</p> |
| </div> |
| <![if !mso]></td> |
| </tr> |
| </table> |
| <![endif]></v:textbox> |
| </v:rect><v:rect id="_x0000_s1072" style='position:absolute;left:4560;top:11955; |
| width:2850;height:1080'> |
| <v:textbox style='mso-next-textbox:#_x0000_s1072'> |
| <![if !mso]> |
| <table cellpadding=0 cellspacing=0 width="100%"> |
| <tr> |
| <td><![endif]> |
| <div> |
| <p class=MsoNormal>ModuleContext</p> |
| </div> |
| <![if !mso]></td> |
| </tr> |
| </table> |
| <![endif]></v:textbox> |
| </v:rect><v:rect id="_x0000_s1073" style='position:absolute;left:7560;top:11955; |
| width:2850;height:1080'> |
| <v:textbox style='mso-next-textbox:#_x0000_s1073'> |
| <![if !mso]> |
| <table cellpadding=0 cellspacing=0 width="100%"> |
| <tr> |
| <td><![endif]> |
| <div> |
| <p class=MsoNormal>ModuleContext</p> |
| </div> |
| <![if !mso]></td> |
| </tr> |
| </table> |
| <![endif]></v:textbox> |
| </v:rect><v:rect id="_x0000_s1074" style='position:absolute;left:4710;top:11029; |
| width:1050;height:618'> |
| <v:textbox style='mso-next-textbox:#_x0000_s1074'> |
| <![if !mso]> |
| <table cellpadding=0 cellspacing=0 width="100%"> |
| <tr> |
| <td><![endif]> |
| <div> |
| <p class=MsoNormal>AbstractModule</p> |
| </div> |
| <![if !mso]></td> |
| </tr> |
| </table> |
| <![endif]></v:textbox> |
| </v:rect><v:rect id="_x0000_s1076" style='position:absolute;left:7710;top:11030; |
| width:1050;height:617'> |
| <v:textbox style='mso-next-textbox:#_x0000_s1076'> |
| <![if !mso]> |
| <table cellpadding=0 cellspacing=0 width="100%"> |
| <tr> |
| <td><![endif]> |
| <div> |
| <p class=MsoNormal>Abstract<span style='mso-spacerun:yes'> </span>Module</p> |
| </div> |
| <![if !mso]></td> |
| </tr> |
| </table> |
| <![endif]></v:textbox> |
| </v:rect><v:rect id="_x0000_s1077" style='position:absolute;left:8910;top:11029; |
| width:1050;height:618'> |
| <v:textbox style='mso-next-textbox:#_x0000_s1077'> |
| <![if !mso]> |
| <table cellpadding=0 cellspacing=0 width="100%"> |
| <tr> |
| <td><![endif]> |
| <div> |
| <p class=MsoNormal>Abstract<span style='mso-spacerun:yes'> </span>Module</p> |
| </div> |
| <![if !mso]></td> |
| </tr> |
| </table> |
| <![endif]></v:textbox> |
| </v:rect><v:rect id="_x0000_s1078" style='position:absolute;left:7710;top:12264; |
| width:1050;height:617'> |
| <v:textbox style='mso-next-textbox:#_x0000_s1078'> |
| <![if !mso]> |
| <table cellpadding=0 cellspacing=0 width="100%"> |
| <tr> |
| <td><![endif]> |
| <div> |
| <p class=MsoNormal>Abstract Module</p> |
| </div> |
| <![if !mso]></td> |
| </tr> |
| </table> |
| <![endif]></v:textbox> |
| </v:rect><v:rect id="_x0000_s1079" style='position:absolute;left:8910;top:12264; |
| width:1050;height:617'> |
| <v:textbox style='mso-next-textbox:#_x0000_s1079'> |
| <![if !mso]> |
| <table cellpadding=0 cellspacing=0 width="100%"> |
| <tr> |
| <td><![endif]> |
| <div> |
| <p class=MsoNormal>Abstract<span style='mso-spacerun:yes'> </span>Module</p> |
| </div> |
| <![if !mso]></td> |
| </tr> |
| </table> |
| <![endif]></v:textbox> |
| </v:rect><v:rect id="_x0000_s1080" style='position:absolute;left:4710;top:12264; |
| width:1050;height:617'> |
| <v:textbox style='mso-next-textbox:#_x0000_s1080'> |
| <![if !mso]> |
| <table cellpadding=0 cellspacing=0 width="100%"> |
| <tr> |
| <td><![endif]> |
| <div> |
| <p class=MsoNormal>Abstract Module</p> |
| </div> |
| <![if !mso]></td> |
| </tr> |
| </table> |
| <![endif]></v:textbox> |
| </v:rect><v:rect id="_x0000_s1081" style='position:absolute;left:5910;top:12264; |
| width:1050;height:617'> |
| <v:textbox style='mso-next-textbox:#_x0000_s1081'> |
| <![if !mso]> |
| <table cellpadding=0 cellspacing=0 width="100%"> |
| <tr> |
| <td><![endif]> |
| <div> |
| <p class=MsoNormal>Abstract Module</p> |
| </div> |
| <![if !mso]></td> |
| </tr> |
| </table> |
| <![endif]></v:textbox> |
| </v:rect><v:rect id="_x0000_s1156" style='position:absolute;left:5910;top:11030; |
| width:1050;height:618'> |
| <v:textbox style='mso-next-textbox:#_x0000_s1156'> |
| <![if !mso]> |
| <table cellpadding=0 cellspacing=0 width="100%"> |
| <tr> |
| <td><![endif]> |
| <div> |
| <p class=MsoNormal>AbstractModule</p> |
| </div> |
| <![if !mso]></td> |
| </tr> |
| </table> |
| <![endif]></v:textbox> |
| </v:rect><w:wrap type="none"/> |
| <w:anchorlock/> |
| </v:group><![endif]--><![if !vml]><img width=576 height=264 |
| src="FlexibleProjectConcepts_files/image001.gif" v:shapes="_x0000_s1067 _x0000_s1068 _x0000_s1069 _x0000_s1070 _x0000_s1071 _x0000_s1072 _x0000_s1073 _x0000_s1074 _x0000_s1076 _x0000_s1077 _x0000_s1078 _x0000_s1079 _x0000_s1080 _x0000_s1081 _x0000_s1156"><![endif]><!--[if mso & !supportInlineShapes & supportFields]><v:shape |
| id="_x0000_i1025" type="#_x0000_t75" style='width:6in;height:198pt'> |
| <v:imagedata croptop="-65520f" cropbottom="65520f"/> |
| </v:shape><span style='mso-element:field-end'></span><![endif]--></p> |
| </td> |
| </tr> |
| <tr style='mso-yfti-irow:1;mso-yfti-lastrow:yes'> |
| <td width=590 valign=top style='width:6.15in;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>Figure 1: Overview of ModuleCore, ModuleContext, and Abstract |
| Module relationships.</p> |
| </td> |
| </tr> |
| </table> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal>Meanwhile, <b style='mso-bidi-font-weight:normal'>edit |
| models</b> provide a shared, reference counted, read/write controlled amalgamation |
| of a related set of resources. Primarily, resources and Java working copies are |
| wrapped by an Edit Model in order to represent a coherent and consistent view |
| for clients. Managing these resources as a group, allows changes to be |
| committed or rolled back as a consistent unit of work. </p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal>Typically, specialized types of edit models have |
| aforementioned knowledge of their expected or required resources for a given |
| type of abstracted module. Not surprisingly, clients may wish to add |
| capabilities and additional known resources to existing edit model. The edit |
| model will attempt to load these resources so that they may be managed with the |
| existing, known resources. <o:p></o:p></p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal>Edit models are created via an extension which defines the <b |
| style='mso-bidi-font-weight:normal'>edit model factory</b>. The lifecycle of |
| how edit models are created and destroyed will be covered in the API Concepts |
| document.</p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal>Typically, J2EE components are built on a regular schedule |
| (e.g. daily) and packaged as Enterprise Archives (EARs). Collaboration between |
| teams and individual members is facilitated by these build artifacts which are |
| used to back current development. These are referred to as <b style='mso-bidi-font-weight: |
| normal'>target EARs</b>. Developers set up their development environments so |
| the components they are actively working on are loaded directly from a source |
| repository and the other components are loaded from the Target EARs.</p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal>The use of target EARs is analogous to self-hosting in |
| Eclipse. The idea is to only have abstract modules that are currently being |
| developed in the workspace. All other dependencies will be loaded from a target |
| EAR. Changing target EARs would simply be a matter of adjusting some abstract module |
| property (just like PDE).<span style='mso-spacerun:yes'> </span>Loading |
| projects from the repository, or deleting them from the workspace would change |
| where they were loaded from as well (also like PDE).<o:p></o:p></p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal>Rather than using target EARs, EAR files may be extracted to |
| a structure which represents its contained abstract modules.<span |
| style='mso-spacerun:yes'> </span>The remaining non-module jar archives are |
| called <b style='mso-bidi-font-weight:normal'>utility jars</b>. Utility jars |
| are regular jars which the various abstract modules can depend on.<span |
| style='mso-spacerun:yes'> </span>Utility jars may exist as jar files within |
| the EAR abstract module which is useful when a developer is not currently |
| working on the contents of the utility jar. <span |
| style='mso-spacerun:yes'> </span>All abstract module archives must (utility |
| jars have the option) be handled in separate abstract modules.<b |
| style='mso-bidi-font-weight:normal'><o:p></o:p></b></p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal>An <b style='mso-bidi-font-weight:normal'>extracted</b> <b |
| style='mso-bidi-font-weight:normal'>module</b> or <b style='mso-bidi-font-weight: |
| normal'>utility jar module</b> is simply a module containing the extracted |
| contents of the archive.<span style='mso-spacerun:yes'> </span>The benefit of |
| using extracted modules is all the artifacts can be modified.<span |
| style='mso-spacerun:yes'> </span>This would be useful if a developer did not |
| have access to the source repository.<span style='mso-spacerun:yes'> |
| </span>Typically, however, instead of using extracted modules, a developer |
| would connect to a source repository. Jars within WARs can be extracted as modules |
| within Eclipse projects (like utility jar modules) or can remain in the WAR in |
| binary form. </p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| <p class=MsoNormal>Document Concepts</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>Chuck<span style='mso-spacerun:yes'> </span>Bridgham</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><a href="mailto:cbridgha@us.ibm.com">cbridgha@us.ibm.com</a><o:p></o:p></p> |
| </td> |
| </tr> |
| <tr style='mso-yfti-irow:1'> |
| <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>Jialin C. Chen </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><a href="mailto:jialin@us.ibm.com">jialin@us.ibm.com</a></p> |
| </td> |
| </tr> |
| <tr style='mso-yfti-irow:2'> |
| <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>Michael D. Elder</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><a href="mailto:mdelder@us.ibm.com">mdelder@us.ibm.com</a></p> |
| </td> |
| </tr> |
| <tr style='mso-yfti-irow:3'> |
| <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>Derek Holt</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><a href="mailto:dfholt@us.ibm.com">dfholt@us.ibm.com</a></p> |
| </td> |
| </tr> |
| <tr style='mso-yfti-irow:4'> |
| <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>John Lanuti</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><a href="mailto:jlanuti@us.ibm.com">jlanuti@us.ibm.com</a></p> |
| </td> |
| </tr> |
| <tr style='mso-yfti-irow:5;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>Jason Sholl</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><a href="mailto:jsholl@us.ibm.com">jsholl@us.ibm.com</a></p> |
| </td> |
| </tr> |
| </table> |
| |
| <p class=MsoNormal><o:p> </o:p></p> |
| |
| </div> |
| |
| </body> |
| |
| </html> |