*** empty log message ***
diff --git a/development/miscdocuments/ServerToolsUseCases.html b/development/miscdocuments/ServerToolsUseCases.html
index 3e8fb49..4b81287 100644
--- a/development/miscdocuments/ServerToolsUseCases.html
+++ b/development/miscdocuments/ServerToolsUseCases.html
@@ -20,7 +20,7 @@
</TD>
- <font class="indexsub"> </font></td>
+</td>
<!-- <td width="19%" rowspan="2"><img src="images/Idea.jpg" height=86 width=120></td> -->
@@ -55,10 +55,8 @@
use cases which can be used to define SPI's. </p>
</td>
</tr>
-<tr>
-
- <td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Use Cases</font></b></td>
-
+<tr>
+ <td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">End User Use Cases</font></b></td>
</tr>
<tr>
<td>
@@ -67,21 +65,18 @@
<tr>
<th style="width: 108px">Name</th>
<th style="width: 60px">Priority</th>
- <th style="width: 78px">User</th>
<th style="width: 360px">Description</th>
</tr>
<tr>
- <td style="width: 108px">Install a Server</td>
- <td style="width: 60px">2</td>
- <td style="width: 78px">End-user</td>
- <td style="width: 360px">From an update site, user can install a
+ <td>Install a Server</td>
+ <td>2</td>
+ <td>From an update site, user can install a
server (using Eclipse standard update manager functions).</td>
</tr>
<tr>
- <td style="width: 108px">Configure a Jakarta-tomcat</td>
- <td style="width: 60px">1</td>
- <td style="width: 78px">End-User</td>
- <td style="width: 360px">Given a Jakarta-tomcat server (V5) installed
+ <td>Configure a Jakarta-tomcat</td>
+ <td>1</td>
+ <td>Given a Jakarta-tomcat server (V5) installed
on local file system, user can "install" a server to WTP by
selecting from a list of available server adapters, selecting the one
for Jakarta-tomcat server, and specifying location of server's
@@ -96,19 +91,22 @@
</table>
</td>
</tr>
+
<tr>
- <td style="width: 108px">get list of server adapters</td>
- <td style="width: 60px">1</td>
- <td style="width: 78px">client programs (unit test)</td>
- <td style="width: 360px">programmatically get list of known
- Jakarta-tomcat servers adapters and their associated information
- (name, version, whether installed or not, etc)</td>
+ <td>Export ANT build scripts for modules</td>
+ <td>1</td>
+ <td>User exports ANT build script that compiles and packages a module in for use outside the Eclipse, possibly for automated builds. </td>
</tr>
<tr>
- <td style="width: 108px">run on J2EE server</td>
- <td style="width: 60px">1</td>
- <td style="width: 78px">End-user</td>
- <td style="width: 360px">user can select a JSP and "run on
+ <td>Drag a module/artifact to a server to publish it</td>
+ <td>3</td>
+ <td>Users drags a module or a artifact in it into a server, which would mean the same action as "Run on Server" .</td>
+ </tr>
+
+ <tr>
+ <td>run on J2EE server</td>
+ <td>1</td>
+ <td>user can select a JSP and "run on
server", meaning it will be displayed in Eclipse web browser.
<table border="1">
<tbody>
@@ -139,57 +137,184 @@
</table>
</td>
</tr>
- <TR>
- <TD style="width: 108px">run on HTTP server</TD>
- <TD style="width: 60px">1</TD>
- <TD style="width: 78px">End-user</TD>
- <TD style="width: 360px">User can select an HTML file, and "run on server". This use case can be performed with WST only. (This use case has not gotten a lot of discussion, but support for "static projects" is mentioned in WTP/WST vision statement, and is a good case to make sure the architecture and design is correct). </TD>
- </TR>
- <tr>
- <td style="width: 108px">get list of installed servers</td>
- <td style="width: 60px">1</td>
- <td style="width: 78px">client programs (unit test)</td>
- <td style="width: 360px">programmatically get list of installed
+ <TR>
+ <TD>run on HTTP server</TD>
+ <TD></TD>
+ <TD>User can select an HTML file, and "run on server". This use case can be performed with WST only. (This use case has not gotten a lot of discussion, but support for "static projects" is mentioned in WTP/WST vision statement, and is a good case to make sure the architecture and design is correct). </TD>
+ </TR>
+
+ <tr>
+ <td>Adapt to existing project/module layout<i>(I am not sure, this is may be a use case for project layout)</i></td>
+ <td>1</td>
+ <td>User describes the current project layout even if it is not a known layout of any kind. </td>
+ </tr>
+
+ <tr>
+ <td>Add runtime</td>
+ <td>1</td>
+ <td>Add a new server runtime environment that exists on the user's machine. (Pick runtime from list. Enter name, location. Enter runtime specific information.)</td>
+ </tr>
+
+ <tr>
+ <td>Edit or remove runtime</td>
+ <td>1</td>
+ <td>Modify runtime attributes or remove.</td>
+ </tr>
+
+ <tr>
+ <td>Target project</td>
+ <td>1</td>
+ <td>Target a project to a specific runtime. This is optional and a project may only be targetted to one runtime at a time. (Some project types do
+ not need a target, some projects do need a target)</td>
+ </tr>
+
+ <tr>
+ <td>Add server</td>
+ <td>1</td>
+ <td>Add (install) a new server. Enter name & hostname, pick a server type from a list, and enter server specific information. (Some server types may only support local, not remote. Some local servers may require a runtime.)</td>
+ </tr>
+
+ <tr>
+ <td>Edit or remove server</td>
+ <td>1</td>
+ <td>Modify server attributes or remove.</td>
+ </tr>
+
+ <tr>
+ <td>Start/Stop/Restart</td>
+ <td>1</td>
+ <td>Each server type may support some/all/none of these state changes. Each server type has an initial state (may be unknown), and must keep the state in sync once it is loaded.
+ Some of the state changes (start/stop) are not available unless the server is in the correct state. Console/Debug view, etc. should be sync'ed up or used as it makes sense
+ for the server type. Starting may be done in the regular Eclipse launch modes, e.g. Run, Debug, Profile, ... depending on what the server supports. Launch Configurations are
+ created and used as applicable.</td>
+ </tr>
+
+ <tr>
+ <td>Add project</td>
+ <td>1</td>
+ <td>Add a module to a server. User is presented with a list of modules that are available to be added to the server, as well as a list of modules from the workspace that are
+ already on the server. In some cases, the server may present additional modules in the second list that are not from the workspace/user. User can move modules around and
+ when they are done, the module is configured on (and possibly published to) the server.</td>
+ </tr>
+
+ <tr>
+ <td>Remove project</td>
+ <td>1</td>
+ <td>Same as above</td>
+ </tr>
+
+ <tr>
+ <td>Publish/Sync</td>
+ <td>1</td>
+ <td>One way publish of all modules to a particular server. Syncs the module content - could be a delta or a full refresh depending on the implementation.</td>
+ </tr>
+
+ <tr>
+ <td>Restart module</td>
+ <td>1</td>
+ <td>Optional based on server type support. Restart/refresh/remove cache for a particular module on the server to allow the newly published content to be served.</td>
+ </tr>
+
+ <tr>
+ <td>Change notification</td>
+ <td>1</td>
+ <td>User makes a change to a module (e.g. edit a file). User should be notified of the impact to any running servers and what they need to do to get the change
+ propogated to the server. (e.g. nothing, republish, restart module, restart server) </td>
+ </tr>
+
+ <tr>
+ <td>Auto update</td>
+ <td>2</td>
+ <td>Automatically or via a single click, do the above use case to keep server in sync at all times.</td>
+ </tr>
+
+ <tr>
+ <td>Run/Debug/Profile on Server</td>
+ <td>1</td>
+ <td>From any artifact (UI selection, editor input, etc.), determine which module it belongs to, prompt to choose or create a server if necessary, publish/sync the module on the server, and display an
+ appropriate client to access (run) that artifact on the server.</td>
+ </tr>
+
+<!-- <tr>
+ <td></td>
+ <td>1</td>
+ <td></td>
+ </tr>-->
+
+ </tbody>
+</table>
+</td></tr>
+
+<tr>
+ <td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">API Use Cases</font></b></td>
+ </tr>
+
+
+<tr><td>
+ <table width="95%" border="1" cellpadding="1" cellspacing="1">
+ <tbody>
+ <tr>
+ <th style="width: 108px">Name</th>
+ <th style="width: 60px">Priority</th>
+ <th style="width: 360px">Description</th>
+ </tr>
+
+ <tr>
+ <td>Create module type(s)</td>
+ <td>1</td>
+ <td>Define a new type of module (interface and id) so that other SPI providers can provide instances of these module or servers that support them.</td>
+ </tr>
+
+ <tr>
+ <td>Provide module factory</td>
+ <td>1</td>
+ <td>Define a new module factory for creating/discovering the modules of an existing type. (.modules file?)</td>
+ </tr>
+
+ <tr>
+ <td>Define runtime type</td>
+ <td>1</td>
+ <td>Define a new runtime type, along with the module types that it supports. Define what it means to target a project to this runtime.</td>
+ </tr>
+
+ <tr>
+ <td>Define server type</td>
+ <td>1</td>
+ <td>Define a new server type, along with the module types this it supports. Provide implementations for add/remove modules, publishing, start/stop, etc.</td>
+ </tr>
+
+ <tr>
+ <td>get list of server adapters</td>
+ <td>1</td>
+ <td>programmatically get list of known
+ Jakarta-tomcat servers adapters and their associated information
+ (name, version, whether installed or not, etc)</td>
+ </tr>
+ <tr>
+ <td>get list of installed servers</td>
+ <td>1</td>
+ <td>programmatically get list of installed
servers and their associated information (name, etc)</td>
</tr>
<tr>
- <td style="width: 108px">import/export server configuration</td>
- <td style="width: 60px">2</td>
- <td style="width: 78px">client programs</td>
- <td style="width: 360px">Can import or export server configuration
+ <td>import/export server configuration</td>
+ <td>2</td>
+ <td>Can import or export server configuration
files, such as to give to another member of team. This file may best
be in XML format.</td>
</tr>
<tr>
- <td style="width: 108px">Server Providers can provide discoverable adapter</td>
- <td style="width: 60px">1</td>
- <td style="width: 78px">Service Providers</td>
- <td style="width: 360px">The information needed to be listed as potential server adapter can be found completely in plugin.xml (not Java code, which would require activation of plugin). </td>
+ <td>Server Providers can provide discoverable adapter</td>
+ <td>1 - SPI</td>
+ <td>The information needed to be listed as potential server adapter can be found completely in plugin.xml (not Java code, which would require activation of plugin). </td>
</tr>
+
<tr>
- <td style="width: 108px">Export ANT build scripts for modules</td>
- <td style="width: 60px">1</td>
- <td style="width: 78px">End-User</td>
- <td style="width: 360px">User exports ANT build script that compiles and packages a module in for use outside the Eclipse, possibly for automated builds. </td>
+ <td>Provide classloader behavior</td>
+ <td>1</td>
+ <td>A client, a jsp/ejb compiler for example, learns the classloader behavior to mimic the server runtime environment</td>
</tr>
- <tr>
- <td style="width: 108px">Drag a module/artifact to a server to publish it</td>
- <td style="width: 60px">3</td>
- <td style="width: 78px">End-User</td>
- <td style="width: 360px">Users drags a module or a artifact in it into a server, which would mean the same action as "Run on Server" .</td>
- </tr>
- <tr>
- <td style="width: 108px">Provide classloader behavior</td>
- <td style="width: 60px">1</td>
- <td style="width: 78px">client programs</td>
- <td style="width: 360px">A client, a jsp/ejb compiler for example, learns the classloader behavior to mimic the server runtime environment</td>
- </tr>
- <tr>
- <td style="width: 108px">Adapt to existing project/module layout<i>(I am not sure, this is may be a use case for project layout)</i></td>
- <td style="width: 60px">1</td>
- <td style="width: 78px">End-User</td>
- <td style="width: 360px">User describes the current project layout even if it is not a known layout of any kind. </td>
- </tr>
+
</tbody>
</table>
</td>