Adding Project Structure concepts
diff --git a/development/miscdocuments/FlexibleProjectConcepts.htm b/development/miscdocuments/FlexibleProjectConcepts.htm new file mode 100644 index 0000000..31fb715 --- /dev/null +++ b/development/miscdocuments/FlexibleProjectConcepts.htm
@@ -0,0 +1,958 @@ +<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>
diff --git a/development/miscdocuments/FlexibleProjectConcepts_files/filelist.xml b/development/miscdocuments/FlexibleProjectConcepts_files/filelist.xml new file mode 100644 index 0000000..8cc6128 --- /dev/null +++ b/development/miscdocuments/FlexibleProjectConcepts_files/filelist.xml
@@ -0,0 +1,5 @@ +<xml xmlns:o="urn:schemas-microsoft-com:office:office"> + <o:MainFile HRef="../FlexibleProjectConcepts.htm"/> + <o:File HRef="image001.gif"/> + <o:File HRef="filelist.xml"/> +</xml> \ No newline at end of file
diff --git a/development/miscdocuments/FlexibleProjectConcepts_files/image001.gif b/development/miscdocuments/FlexibleProjectConcepts_files/image001.gif new file mode 100644 index 0000000..f2962db --- /dev/null +++ b/development/miscdocuments/FlexibleProjectConcepts_files/image001.gif Binary files differ
diff --git a/development/miscdocuments/Master - Flexible Project Restructure -- Concepts Document.doc b/development/miscdocuments/Master - Flexible Project Restructure -- Concepts Document.doc deleted file mode 100644 index 75933d1..0000000 --- a/development/miscdocuments/Master - Flexible Project Restructure -- Concepts Document.doc +++ /dev/null Binary files differ