| <html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><link type="text/css" href="../../../../..//default_style.css" rel="stylesheet"><link type="text/css" href="../../../../..//webtools/wtp.css" rel="stylesheet"><title>JST Web Services Design Documents</title></head><body><table border="0" cellpadding="2" cellspacing="5" width="100%"><tbody><tr><td align="left" width="60%"><font class="indextop">The Web Service and Web Service Client Creation Framework</font><br><font class="indexsub">JST Web Services Design Documents</font></td><td width="40%"><img src="../../../../..//webtools/images/wtplogosmall.jpg" align="middle" height="129" hspace="50" width="207" alt="WTP Logo" usemap="logomap"><map id="logomap" name="logomap"><area coords="0,0,207,129" href="/webtools/" alt="WTP Home"></map></td></tr></tbody></table><table border="0" cellpadding="2" cellspacing="5" width="100%"><col width="16"><col width="*"><tbody><tr><td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Credits</font></b></td></tr><tr><td align="right" valign="top"> |
| |
| </td><td valign="top"><table cellspacing="5" cellpadding="2" border="1"> |
| <tr valign="top"> |
| <td>Enhancements</td> |
| <td> |
| 108595<br> |
| 105325<br> |
| 105336<br> |
| </td> |
| </tr> |
| <tr valign="top"> |
| <td>Version</td> |
| <td>1.0 Draft</td> |
| </tr> |
| <tr valign="top"> |
| <td>Last Updated</td> |
| <td>2005.10.04</td> |
| </tr> |
| <tr valign="top"> |
| <td>Target Release</td> |
| <td>WTP 1.0</td> |
| </tr> |
| <tr valign="top"> |
| <td>Target Milestone</td> |
| <td>M9</td> |
| </tr> |
| <tr valign="top"> |
| <td>Contributors</td> |
| <td> |
| Gilbert Andrews<br> |
| Chris Brealey<br> |
| Kathy Chan<br> |
| Joan Haggarty<br> |
| Rupam Kuehner<br> |
| Peter Moogk<br> |
| Seng Phung-Lu<br> |
| </td> |
| </tr> |
| </table></td></tr><tr><td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Index</font></b></td></tr><tr><td align="right" valign="top"> |
| |
| </td><td valign="top"><ol> |
| <li><a href="#overview">Overview</a></li> |
| <li><a href="#requirements">Requirements</a></li> |
| <ol> |
| <li><a href="#r1">R1 - End to End Web Service and Web Service Client Creation</a></li> |
| <li><a href="#r2">R2 - Web Service Discovery Extensibility</a></li> |
| <li><a href="#r3">R3 - Web Service Runtime Extensibility</a></li> |
| <li><a href="#r4">R4 - Web Service and Web Service Client Implementation Extensibility</a></li> |
| <li><a href="#r5">R5 - Web Service Test Extensibility</a></li> |
| <li><a href="#r6">R6 - Web Service Publication extensibility</a></li> |
| </ol> |
| <li><a href="#concepts">Conceptual Design</a></li> |
| <li><a href="#details">Detailed Design</a></li> |
| </ol></td></tr><tr><td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica"><a name="overview"></a>1.0 - Overview</font></b></td></tr><tr><td align="right" valign="top"> |
| |
| </td><td valign="top"><p> |
| The Web service tools in the Web Tools Platform Project (WTP) provide extensible means for end users to |
| create Web services and Web service clients. |
| The goal of this |
| document is to present a high level design of this extensible Web service |
| and Web service client creation framework (called framework from here on) that is consistent with the proposed ProjectFacets |
| framework, the J2EE API, the Sever Tools API, and is as much |
| as possible not affected by the parallel effort to merge the Web Services and |
| J2EE command / operation frameworks. |
| </p></td></tr><tr><td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica"><a name="requirements"></a>2.0 - Requirements</font></b></td></tr><tr><td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td><a name="r1"></a>R1 - End to End Web Service and Web Service Client Creation</td></tr><tr><td align="right" valign="top"> |
| |
| </td><td valign="top"><p> |
| End users of WTP can discover Web services and develop, assemble, deploy, install, run, test, and announce |
| Web services and Web service clients. End users can optionally bypass the latter five |
| phases of deploy, install, run, test, and announce. |
| </p></td></tr><tr><td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td><a name="r2"></a>R2 - Web Service Discovery Extensibility</td></tr><tr><td align="right" valign="top"> |
| |
| </td><td valign="top"><p> |
| Extenders of WTP can contribute graphical user interface facilities to discover Web services. |
| The framework will respect the end user's preferred discovery facility. |
| </p></td></tr><tr><td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td><a name="r3"></a>R3 - Web Service Runtime Extensibility</td></tr><tr><td align="right" valign="top"> |
| |
| </td><td valign="top"><p> |
| Extenders of WTP can contribute Web service runtimes (e.g. Apache Axis 1.2) to the |
| framework, and in doing so provide all the tasks needed to develop, assemble, deploy, install, |
| run, and announce Web services and Web service clients. The extender can specify the scenarios |
| (e.g. bottom-up, top-down) and implementation types (e.g. Java bean, EJB) supported by |
| the Web service runtime, along with the project facets (e.g. web, ejb) required on projects |
| that will contain Web services or Web service clients created by this Web service runtime. |
| Container specific project facets can be used by extenders to target a Web service runtime to |
| a particular container. |
| </p></td></tr><tr><td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td><a name="r4"></a>R4 - Web Service and Web Service Client Implementation Extensibility</td></tr><tr><td align="right" valign="top"> |
| |
| </td><td valign="top"><p> |
| Extenders of WTP can contribute Web service and Web service client implementation types |
| to the framework along with graphical user interface widgets to aid the user |
| in locating artifacts of that implementation type |
| </p></td></tr><tr><td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td><a name="r5"></a>R5 - Web Service Test Extensibility</td></tr><tr><td align="right" valign="top"> |
| |
| </td><td valign="top"><p> |
| Extenders of WTP can contribute Web service and Web service client test |
| facilities. |
| </p></td></tr><tr><td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td><a name="r6"></a>R6 - Web Service Publication Extensibility</td></tr><tr><td align="right" valign="top"> |
| |
| </td><td valign="top"><p> |
| Extenders of WTP can contribute Web service publication facilities. |
| </p></td></tr><tr><td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica"><a name="concepts"></a>3.0 - Conceptual Design</font></b></td></tr><tr><td align="right" valign="top"> |
| |
| </td><td valign="top"><p> |
| The Web service and Web service client creation framework |
| divides the process of creating Web services and Web service clients into nine phases: |
| discover a Web service (if needed), develop, assemble, deploy, install, run, test, publish, and announce. |
| The activities performed in each of these phases can be further divided into |
| those that are common to all Web service runtimes (common activities) and |
| those that are specific to each Web service runtime (specific activities). The |
| framework performs the common activities and delegates to the Web service runtime |
| extension to perform the specific activities. Outlined below is a brief description |
| of each of the nine phases and examples of common and specific activities. |
| <br><br> |
| <ul> |
| <li><b>Discover:</b><br> |
| In top-down Web service creation or Web service client creation, locate a Web |
| service described via a WSDL service element. The framework provides a GUI |
| mechanism to to enter a URL or browse for WSDL files in the workspace. |
| Extenders can contribute more sophisticated discovery facilities. |
| Bottom-up Web service creation does not require discovery of Web services but |
| rather, selection of the implementation artifact, such as a Java bean or |
| stateless session EJB. Extenders can contribute the kinds of available artifacts |
| as well the GUI widgets needed to locate them. |
| </li> |
| <br> |
| <br> |
| <li><b>Develop:</b><br> |
| Develop the WSDL definition and implementation of the Web service. |
| Common activities include the creation of modules which will contain |
| the generated code. Web service runtime extensions should provide the |
| develop tasks specific to the extension. |
| </li> |
| <br> |
| <br> |
| <li><b>Assemble:</b> <br> |
| Depending on the target server, assembly may or may not be required. |
| If required, assemble and configure modules into a module, such as an EAR, that |
| is compatible with the target server type. Common |
| activities include the association of modules to EARs. Extenders should |
| perform tasks specific to the Web service runtime, such as any additional |
| modules that need to the created and configured and any module |
| dependencies that need to be established. |
| </li> |
| <br> |
| <br> |
| <li><b>Deploy:</b><br> |
| Generate the deploy artifacts. Framework delegates entirely to the |
| Web service runtime extension. |
| </li> |
| <br> |
| <br> |
| <li><b>Install:</b><br> |
| Install and configure the module on the target server. Installing the |
| module on the server is a common activity. Web service runtime |
| specific install tasks might include modifying the server configuration. |
| </li> |
| <br> |
| <br> |
| <li><b>Run:</b><br> |
| Start the Web service or Web service client by starting the server, which is a common activity. |
| Any additional tasks extenders would like to perform on the started server |
| can be done here. |
| </li> |
| <br> |
| <br> |
| <li><b>Test:</b><br> |
| Test the Web service or Web service client. The framework allows the user to choose from an |
| extensible list of test facilities. Existing examples are the Web services explorer |
| and the Generated JSPs. Future examples include Junit tests. |
| </li> |
| <br> |
| <br> |
| <li><b>Publish:</b><br> |
| Publish the Web service. Framework allows the user to choose from an |
| extensible list of publication facilities (e.g. Web services explorer). |
| </li> |
| <br> |
| <br> |
| |
| </ul> |
| |
| <hr WIDTH="100%"> |
| <br> |
| <b>3.1 WebServiceRuntime Extension Point</b> |
| <br> |
| <br> |
| A Web service runtime can be loosely defined as an engine which manages |
| Web services and Web service clients and also prescribes the manner in which they are to |
| be created (from the develop phase to the run phase). Web service runtime |
| characteristics can vary widely in terms of their supported specification levels |
| (e.g. Servlet, J2EE), Web servers (e.g. Tomcat, JBoss), implementations |
| (e.g. Java bean, EJB) and scenarios (e.g. bottom-up, top-down, client). An extender |
| of WTP can contribute new Web service implementations and runtimes to the framework with the following |
| XML (Please note: Element and attribute names are not final. They are for descriptive |
| purposes only.) |
| |
| |
| <P></P> |
| |
| |
| <p></p> |
| <p> |
| <ul> |
| |
| <li><b>org.eclipse.wst.ws.serviceImplementationTypes</b> - extend to contribute implementation types of |
| Web services. |
| <TABLE cellpadding="10"> |
| <TR> |
| <TD bgcolor="#C0C0C0"><FONT size="-1" face="Arial"> |
| <P><B> Extension XML for the Java Bean implementation type:</B></P> |
| </FONT> <FONT size="+0"><PRE> |
| <extension point="org.eclipse.wst.ws.serviceImplementationTypes"> |
| <serviceImplementationType |
| id="org.eclipse.jst.ws.wsImpl.java" |
| bottomUpLabel="%WEBSERVICETYPE_NAME_JAVA_BU" |
| bottomUpIcon="./icons/BottomUpJavaBean.gif" |
| bottomUpDescription="%WEBSERVICE_DESC_JAVA_BU" |
| <FONT size="+0">topDownLabel="%WEBSERVICETYPE_NAME_JAVA_TD" |
| topDownIcon="./icons/TopDownJavaBean.gif</FONT>" |
| topDownDescription="WEBSERVICE_DESC_JAVA_TD"> |
| <filter |
| objectClass="org.eclipse.core.resources.IFile" |
| nameFilter="*.java *.class"> |
| </filter> |
| <filter |
| objectClass="org.eclipse.jdt.core.IJavaElement"> |
| </filter> |
| </serviceImplementationType> |
| </extension> |
| </PRE></FONT></TD> |
| </TR> |
| </TABLE> |
| <ul> |
| <li>id: a unique identifier used to reference this Web service implementation type</li> |
| <li>bottomUpLabel: a translatable label which will be displayed to the user</li> |
| <li>bottomUpIcon: a relative path of an icon that can be displayed with the bottomUpLabel</li> |
| <li>bottomUpDescription: a short translatable description</li> |
| <li>topDownLabel: a translatable label which will be displayed to the user</li> |
| <li>topDownIcon: a relative path of an icon that can be displayed with the topDownLabel</li> |
| <li>topDownDescription: a short translatable description</li> |
| <li>filter: optional sub-element(s) that can be used by the framework to evaluate |
| whether an Object represents an artifact of this implementation type. This can be used by the framework to |
| intelligently default the implementation type based on the end user's initial selection.</li> |
| <ul> |
| <li>objectClass: the fully qualified name of the class or interface that Objects representing |
| artifacts of this type may subclass or implement</li> |
| <li>nameFilter: an optional wild card filter for the name that can be used as a further constraint. |
| The framework will respect this if objectClass implements or extends org.eclipse.core.resources.IResource.</li> |
| </ul> |
| </ul> |
| </li> |
| |
| <br> |
| |
| <li><b>org.eclipse.wst.ws.clientImplementationTypes</b> - extend to contribute implementation types |
| of Web service clients. |
| <TABLE cellpadding="10"> |
| <TR> |
| <TD bgcolor="#C0C0C0"><FONT size="-1" face="Arial"> |
| <P><B> Extension XML for the Java Bean Proxy type:</B></P> |
| </FONT> <FONT size="+0"><PRE> |
| <extension point="org.eclipse.wst.ws.clientImplementationTypes"> |
| <clientImplementationType |
| id="org.eclipse.jst.ws.client.type.java" |
| label="%WEBSERVICECLIENTTYPE_JAVA" |
| icon="./icons/JavaClient.gif" |
| description="%<FONT size="+0">WEBSERVICECLIENTTYPE_JAVA</FONT>_DESC" |
| /> |
| </extension> |
| </PRE></FONT></TD> |
| </TR> |
| </TABLE> |
| <ul> |
| <li>id: unique identifier used to reference this Web service client implementation type</li> |
| <li>label: a translatable label which will be displayed to the user</li> |
| <li>icon: a relative path of an icon that can be displayed with the label</li> |
| <li>description: a short translatable description</li> |
| </ul> |
| </li> |
| |
| <br> |
| |
| <li><b>org.eclipse.wst.ws.runtime</b> - extend to contribute a Web service runtime |
| <TABLE cellpadding="10"> |
| <TR> |
| <TD bgcolor="#C0C0C0"><FONT size="-1" face="Arial"> |
| <P><B> Extension XML for the Axis Category and Axis 1.2 Web service runtime:</B></P> |
| </FONT> <FONT size="+0"><PRE> |
| <extension point="org.eclipse.wst.ws.runtimes"> |
| <category |
| id="org.eclipse.jst.ws.axis.category" |
| label="%WEBSERVICERUNTIME_AXIS" |
| /> |
| </extension> |
| |
| <extension point="org.eclipse.wst.ws.runtimes"> |
| <runtime |
| id="org.eclipse.jst.ws.axis.axis12" |
| label="%WEBSERVICERUNTIME_AXIS12" |
| icon="./icons/axis12.gif" |
| description="<FONT size="+0">%WEBSERVICERUNTIME_AXIS12</FONT>_DESC" |
| category="<FONT size="+0">org.eclipse.jst.ws.axis.category</FONT>" |
| /> |
| </extension> |
| </PRE></FONT></TD> |
| </TR> |
| </TABLE> |
| <ul> |
| <li><b>category</b> |
| <ul> |
| <li>id: a unique identifier used to reference this category</li> |
| <li>label: a translatable label which will be displayed to the user</li> |
| <li>parentCategory: a slash delimited path ("/") of category ids to another category |
| if this category should be added as a child. </li> |
| </ul> |
| </li> |
| <li><b>runtime</b> |
| <ul> |
| <li>id: a unique identifier used to reference this Web service runtime</li> |
| <li>label: a translatable label which will be displayed to the user</li> |
| <li>icon: a relative path of an icon that can be displayed with the label</li> |
| <li>description: a short translatable description</li> |
| <li>category: a slash delimited path ("/") of category ids. Each token |
| in the path must represent a valid category id.</li> |
| </ul> |
| </li> |
| </ul> |
| |
| <ul> |
| |
| |
| </ul> |
| </li> |
| |
| <br> |
| |
| <li><b>org.eclipse.wst.ws.serviceRuntime</b> Extend to declare support for a combination of Web service implementation |
| type, runtime, and project facets. |
| <TABLE cellpadding="10"> |
| |
| <TR> |
| <TD bgcolor="#C0C0C0"><FONT size="-1" face="Arial"> |
| <P><B> Extension XML to declare that the Axis 1.2 Web service runtime supports creation of a Java bean Web service bottom-up and top-down:</B></P> |
| </FONT> <FONT size="+0"><PRE> |
| <extension point="org.eclipse.wst.ws.serviceRuntimes"> |
| <serviceRuntime |
| id="org.eclipse.jst.ws.java.axis12" |
| serviceImplementationTypeId="<FONT size="+0">org.eclipse.jst.ws.wsImpl.java</FONT>" |
| runtimeId="<FONT size="+0">org.eclipse.jst.ws.axis.axis12</FONT>" |
| bottomUp="true" |
| topDown="true" |
| class="org.eclipse.jst.axis.axis12.Axis12WebServiceRuntime"> |
| |
| <required-facet-version facet="org.eclipse.jst.ws.axis.web.facet" version="1.2"/> |
| |
| </serviceRuntime> |
| </extension> |
| |
| <extension point="org.eclipse.wst.common.project.facet.core.facets"> |
| <project-facet id="org.eclipse.jst.ws.axis.web.facet"> |
| <label>%LABEL_AXIS_WEB_FACET</label> |
| <description>%DESC_AXIS_WEB_FACET</description> |
| <icon>icons/axis-web.gif</icon> |
| </project-facet> |
| <project-facet-version facet="org.eclipse.jst.ws.axis.web.facet" version="1.2"> |
| <delegate type="install" class="org.eclipse.jst.ws.axis.AxisWebInstallDelegate"/> |
| <constraint> |
| <requires facet="java" version="1.3" allow-newer="true"/> |
| <requires facet="web" version="2.3" allow-newer="true"/> |
| </constraint> |
| </project-facet-version> |
| </extension> |
| </PRE></FONT></TD> |
| </TR> |
| </TABLE> |
| <ul> |
| <li>id: a unique identifier used to reference this serviceRuntime</li> |
| <li>serviceImplementationTypeId: id of the Web service implementation type</li> |
| <li>runtimeId: id of the Web service runtime</li> |
| <li>bottomUp: a flag that indicates if this serviceRuntime supports bottom-up web service creation. False if omitted.</li> |
| <li>topDown: a flag that indicates if this serviceRuntime supports top-down web service creation. False if omitted.</li> |
| <li>class: fully qualifed name of a class which extends AbstractWebServiceRuntime</li> |
| <li>required-facet-version (0 or more): a facet that this serviceRuntime requires on any module into which it will create a Web service. The framework will add the facet or update the version of the existing facet if needed.</li> |
| <ul> |
| <li>facet: the id of the required projectFacet</li> |
| <li>version: the version of the required projectFacet</li> |
| <li>allow-newer: true if a later version of the projectFacet is acceptable. (optional - defaults to false)</li> |
| </ul> |
| </ul> |
| <br> |
| Based on the Web service implementation type, Web service runtime, and module/module type selected |
| by the user, the framework will activate the corresponding serviceRuntime extension by |
| constructing the provided class. It will obtain an IWebService |
| from this class, on which it can call the various Web service life-cycle methods (e.g. develop, assemble, deploy, etc.) |
| to get the set of operations that need to be run for each of the phases. Web service specific data can be flow between framework and the |
| extender's operations via the WebServiceDescriptor. Other data can flow from the framework to the extender via a data model |
| that the framework will set on the extender's operations prior to executing them. This includes data such as: |
| <ul> |
| <li>Context: |
| <ul> |
| <li>Which phases of Web service creation the user has opted to complete (e.g. develop, assemble, deploy, etc.) </li> |
| <li>The selected scenario (e.g. bottomUp or topDown)</li> |
| <li>Resource context information (e.g. overwite files, create folders, etc)</li> |
| </ul> |
| </li> |
| <li>Initial selection, if available </li> |
| <li>An EAR selection, if available</li> |
| </ul> |
| |
| The relationships are illustrated in a diagram at the end of this section. |
| </li> |
| |
| <br> |
| <br> |
| |
| <li><b>org.eclipse.wst.ws.clientRuntime</b> Extend to declare support for a combination of Web service client implementation |
| type, runtime, and grouping of projectFacets. |
| <TABLE cellpadding="10"> |
| |
| <TR> |
| <TD bgcolor="#C0C0C0"><FONT size="-1" face="Arial"> |
| <P><B> Extension XML to declare that the Axis 1.2 Web service runtime |
| supports creation of a Java Web service client:</B></P> |
| </FONT> <FONT size="+0"><PRE> |
| <extension point="org.eclipse.wst.ws.clientRuntimes"> |
| <clientRuntime |
| id="<FONT size="+0">org.eclipse.jst.ws.client.type.java</FONT>.axis12" |
| clientImplementationTypeId="<FONT size="+0">org.eclipse.jst.ws.client.type.java</FONT>" |
| runtimeId="<FONT size="+0">org.eclipse.jst.ws.axis.axis12</FONT>" |
| class="org.eclipse.jst.axis.axis12.Axis12WebServiceClientRuntime"> |
| |
| <required-facet-version facet="org.eclipse.jst.ws.axis.facet" version="1.2"/> |
| |
| </clientRuntime> |
| </extension> |
| |
| <extension point="org.eclipse.wst.common.project.facet.core.facets"> |
| <project-facet id="org.eclipse.jst.ws.axis.facet"> |
| <label>%LABEL_AXIS_FACET</label> |
| <description>%DESC_AXIS_FACET</description> |
| <icon>icons/axis.gif</icon> |
| </project-facet> |
| <project-facet-version facet="org.eclipse.jst.ws.axis.facet" version="1.2"> |
| <delegate type="install" class="org.eclipse.jst.ws.axis.AxisInstallDelegate"/> |
| <constraint> |
| <requires facet="java" version="1.3" allow-newer="true"/> |
| </constraint> |
| </project-facet-version> |
| </extension> |
| </PRE></FONT></TD> |
| </TR> |
| </TABLE> |
| <ul> |
| <li>id: a unique identifier used to reference this clientRuntime</li> |
| <li>clientImplementationTypeId: id of the Web service client implementation type</li> |
| <li>runtimeId: id of the Web service runtime</li> |
| <li>class: fully qualifed name of a class which extends AbstractWebServiceClientRuntime</li> |
| <li>required-facet-version (0 or more): a facet that this clientRuntime requires on any module into which it will create a Web service client. The framework will add the facet or update the version of the existing facet if needed.</li> |
| <ul> |
| <li>facet: the id of the required facet</li> |
| <li>version: the version of the required facet</li> |
| <li>allow-newer: true if a later version of the projectFacet is acceptable. (optional - defaults to false)</li> |
| </ul> |
| |
| </ul> |
| <br> |
| Based on the Web service client implementation type, Web service runtime, and module/moduleType selected |
| by the user, the framework will activate the corresponding clientRuntime extension by |
| constructing the provided class. It will obtain an IWebServiceClient |
| from this class, on which it can call the various Web service client life-cycle methods. |
| The class hierarchy, relationships, and data flow parallel what is described for |
| IWebSerivceRuntime/IWebService. |
| </li> |
| |
| </ul> |
| <P><BR> |
| <BR> |
| <IMG border="0" src="108595/ws-classdiagram.jpeg" width="849" height="596"><BR> |
| <BR> |
| </P> |
| </p> |
| |
| <hr WIDTH="100%"> |
| <br> |
| <b>3.2 Object Selection Extension Point for Bottom-Up Web Service Creation</b> |
| <br> |
| <br> |
| In bottom-up Web service creation, once the user has chosen the implementation type, the framework requires |
| them to select a suitable artifact to begin creation of the |
| Web service. Extenders can contribute new Web service implementation |
| types through the org.eclipse.wst.ws.serviceImplementationTypes extension point. |
| The org.eclipse.wst.ws.ui.objectSelectionWidgets |
| extension point allows the contribution of GUI mechanisms to locate artifacts of a particular Web service |
| implementation type. |
| <p> |
| <TABLE cellpadding="10"> |
| |
| <TR> |
| <TD bgcolor="#C0C0C0"><FONT size="-1" face="Arial"> |
| <P><B> Extension XML for Java Bean Selection:</B></P> |
| </FONT> <FONT size="+0"><PRE> |
| <extension point="org.eclipse.wst.ws.ui.objectSelectionWidgets"> |
| <objectSelectionWidget |
| id="<FONT size="+0">org.eclipse.jst.ws.internal.consumption.ui.widgets.object.JavaBeanSelectionWidget</FONT>" |
| serviceImplementationTypeId="<FONT size="+0">org.eclipse.jst.ws.wsImpl.java</FONT>" |
| class="<FONT size="+0">org.eclipse.jst.ws.internal.consumption.ui.widgets.object.JavaBeanSelectionWidget</FONT>" |
| transformer="<FONT size="+0">org.eclipse.jst.ws.internal.consumption.ui.widgets.object.JavaBeanSelectionTransformer</FONT>" |
| /> |
| </extension> |
| </PRE></FONT></TD> |
| </TR> |
| </TABLE> |
| <ul> |
| <li>id: a unique identifier used to reference this selection widget</li> |
| <li>serviceImplementationTypeId: id of the Web service implementation type this selection widget facilitates the selection of </li> |
| <li>class: the fully qualified name of a class which extends AbstractObjectSelectionWidget (see class diagram below for deatils)</li> |
| <li>transformer: the fully qualified name of a class which implements Transformer. Extenders can use this to transform the user's |
| selection into an IStructuredSelection containing a String representation of the selection. The framework sets the implURL on |
| WebServiceDescriptor to the value of this String.</li> |
| </ul> |
| </p> |
| <P><BR> |
| <IMG border="0" src="108595/osw-classdiagram.jpeg" width="849" height="621"><BR> |
| <BR> |
| <BR> |
| </P> |
| |
| <hr WIDTH="100%"> |
| <b>3.3 Discovery Extension Point for Top-Down Web Service and Web Service Client Creation</b> |
| <br> |
| <br> |
| In top-down Web service creation or Web service client creation, the framework requires |
| the user to discover and select a Web serivce described via a WSDL service element. |
| Extenders can contribute new Web service discovery facilities through |
| the org.eclipse.wst.ws.ui.discoveryWidgets extension point. The framework will |
| display the user's preferred discovery facility. |
| |
| <p> |
| <TABLE cellpadding="10"> |
| |
| <TR> |
| <TD bgcolor="#C0C0C0"><FONT size="-1" face="Arial"> |
| <P><B> Extension XML for the WSDLSelectionWidget discovery facility:</B></P> |
| </FONT> <FONT size="+0"><PRE> |
| <extension point="org.eclipse.wst.ws.ui.discoveryWidgets"> |
| <discoveryWidget |
| id="<FONT size="+0">org.eclipse.jst.ws.internal.consumption.ui.widgets.object.WSDLSelectionWidget</FONT>" |
| label="<FONT size="+0">%LABEL_WSDL_SELECTION_WIDGET</FONT>" |
| icon="<FONT size="+0">./icons/WsdlSelectionWidget.gif</FONT>" |
| description="<FONT size="+0">%DESC_WSDL_SELECTION_WIDGET</FONT>" |
| class="<FONT size="+0">org.eclipse.jst.ws.internal.consumption.ui.widgets.object.WSDLSelectionWidget</FONT>" |
| transformer="<FONT size="+0">org.eclipse.jst.ws.internal.consumption.ui.widgets.object.WSDLSelectionTransformer</FONT>" |
| /> |
| </extension> |
| </PRE></FONT></TD> |
| </TR> |
| </TABLE> |
| <ul> |
| <li>id: a unique identifier used to reference this selection widget</li> |
| <li>label: a translatable label which will be displayed to the user</li> |
| <li>class: the fully qualified name of a class which extends AbstractObjectSelectionWidget (see class diagram below for deatils)</li> |
| <li>transformer: the fully qualified name of a class which implements Transformer. Extenders can use this to transform the user's |
| selection into an IStructuredSelection containing a String representation of the selection. The framework sets the implURL on |
| WebServiceInfo to the value of this String.</li> |
| </ul> |
| </p> |
| |
| |
| <hr WIDTH="100%"> |
| <br> |
| <b>3.4 Test Extension point</b> |
| <br> |
| <br> |
| See the <A href="110988.html">Web service test framework</A> design document. |
| <hr WIDTH="100%"> |
| <br> |
| <b>3.5 Publish Extension point</b> |
| <br> |
| <br> |
| See the <A href="110989.html">Web service publication framework</A> design document. |
| |
| </p></td></tr><tr><td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica"><a name="details"></a>4.0 - Detailed Design</font></b></td></tr></tbody></table></body></html> |