deegree3 developer meeting (2008-09-30)
Protocol by: MarkusSchneider
1. Status reports
SOAP and support for multipart requests are currently being added. Several SOAP-APIs have been inspected:
- SAAJ: Seems to require a DOM representation of the request. This is not acceptable for large requests.
- Axis2: Axis2 is based on AXIOM, and it's additional features seems mostly to address databinding (WSDL). However, this is not relevant to OGC services at the moment, as OGC-SOAP just uses encapsulated OGC XML requests/responses.
- AXIOM: Already used as XML tree API in deegree3, offers specialized OMElements for SOAP (SOAPEnvelope, SOAPBody, ...)
SOAP handling will be realized using AXIOM.
2. Versioning of services configuration files
The best approach for versioning the service configuration files has still to be decided. However, there seems to be a general agreement on the advantages/disadvantages of the two suggested approaches.
2.1. Approach A
The version of the configuration file format is determined by the namespace. If the format is changed, a new schema file and namespace has to be used.
- The namespace may also be used to identify (and load) the corresponding schema.
- deegree services can definitely determine if they can handle a given configuration file by looking at the namespace.
- Even little and uncritical changes imply that a new schema and JAXB parser have to be generated.
- For every new version, a user must update the config (at least adjust the namespace), although it would be perfectly parseable using the new parser.
2.2. Approach B
Several format versions may use the same namespace.
- For little changes (e.g. a new optional element), only the schema has to be adjusted and a new generator has to be generated. An existing configuration may be used with a new deegree version (that uses the new schema) right away.
- Confusion is possible: A user may find that a configuration file does not work on a deegree installation (because the configuration file was developed with a newer version). It is not possible (for deegree) to determine the problem on startup and give a definitive error message.