We have property, wsdl, launch config, code generation, context menu ...etc in different places in the current service creation. I am hoping to have the service editor to mushup all functions related with service creation. That means, users can setup the code generation flags(such as namespace), endpoint address(defined in wsdl and code), policies(defined in wsdl), osgi bundles, assemble and deployment(defined in soas?) all within the one editor.
It is a multiple pages editor, which consists of following pages:
* service overview page (for service.xml file) * service policy page (for policy.xml file, or wsdl file) * service osgi page (for MANIFEST.MF file) * service assemble page (for service.assemble file) * service deploy.page (for service.deploy file)
Service Editor Design
Service Overview Page
The overview page is used to capture most attributes for one service, such as service name, name space, endpoint address, wsdl contract...etc. It will also hold service related shortcuts. For example, shortcut to start service component within eclipse for debugging.
We should define ServiceAttributesSection extension point to allow developers to add more attributes sections to the overview page. For example, the wsdl/endpoint address section is one extension provided by the sc.jaxws plugin
The policy editor is used to add/remove policy to a service. We have two policy editors in stp, the following design are based on the xef policy editor.
The xef policy editor defines a ISchemaProvider to allow users to register policy schema. In order to use the ISchemaProvider I/F, we need to define a SchemaProvider extension point in service creation, and we will provide DirSchemaProvider by default. Which will load all schemas from a working directory. Add/remove shema to/from the working directory can be done from policy preference page.
Also need to define a similar extension point to support policy snippets as well.
Policy Editor has multiple input files:
--- policy schema files --- policy snippets --- policy file or wsdl file --- service.policy (hold the mapping between the service name and policy file (/or wsdl file), thus we can setup to show the policy editor for this service )
The OSGI page is the place to configure OSGI dependencies and exports to support OSGI container. Those bundles are retrieved from user selected OSGI runtime.
We won's show the osgi page if the MANIFEST.MF file doesn't exists.
This page allow user to select folders and files to be included in the generated deployable package. Users can also add extra libraries to the deployable package.
The output of this editor page is a service.assemble file. SOAS will create configurable logical package based on this assemble information. Package constructor extensions should use the configurable logical package if exists
Save deployment information. User can deploy the service from this page in addition to the context menu.