deegree3 Developer Meeting Minutes
Date: 2008/05/13 Recorded by: A. Poth Participants: R. Bezema, C. Kiehle, A. Poth, A. Schmitz, M. Schneider, O. Tonnhofer Topics: - deegree: Formal Aspects of Development and Reporting - Handling of Identifiers and Identifiable Objects - Location of GeoTransformer Classes / Packages - Implementation Strategy for deegree3 (Milestones) - Processing: Status of Implementation - XMLAdapter: Status of Implementation - Miscellaneous
- deegree: Formal aspects of development and reporting Each new package, fundamental change to an existing package and/or introduction or change of configurations must be planned and reported. Packages and classes will be modelled utilizing UML, configurations use XML Schema. Dissemination of these models and XML Schemas is to be discussed. Furthermore changes and extensions of deegree3 have to be coordinated with the deegree project management. Topics that affect strategic parts of deegree and those directly effecting user interaction will have to be coordinated with the deegree Project Steering Committee (PSC). deegree3 developer meeting must be documented (in english) and will be published through the deegree wiki.
- Handling of Identifier and Identifiable objects deegree3 will have an Identifiable interface that extends Comparable and defines a method of return type String, named getAsFormattedString() (name may change in the future). Implementing classes must override equals() and hashCode() of java.lang.Object. Objects that have more than one identifier shall use an implementation of Identifiable interface that is a collection of Identifiable.
Location of GeoTransformer Classes / Packages In deegree 2 the GeoTransformer class is used for all transformations (features, geometries, raster, points). For deegree 3 the class will be splitted into different classes for each type. The transformer classes will reside within the specific package of the specific data type and is responsible for transformation of this data type only (eg. org.deegree.model.geometry.GeometryTransformer for all geometries). All transformer classes should extend the abstract class org.deegree.model.crs.Transformer.
- Implementation strategy for deegree3 (Milestones) The priority of service implementations will be based on the requirements of projects. Most probably the first services to be implemented are WPS (already started), WFS, WCS and SOS. Next deliverables within these projects are due in autumn 2008. The requirement of a WMS implementation within 2008 will have to be evaluated. Optimizations of the deegree rendering engine have to be taken into account. Possible approaches include: - use OpenGL if available on the specific hardware (requires configuration of the rendering engine) - only use simple Java AWT functions and implement complex rendering algorithms in-house - evaluate alternative rendering frameworks (other than AWT)
Processing: Status of implementation First working implementation of deegree3 processing package is available. It is based on Quartz Enterprise Job Scheduler (http://www.opensymphony.com/quartz/). Command processing is already implemented for synchronous and asynchronous jobs. Future tasks will be the implementation of status information and persistable commands.
- XMLAdapter: Status of implementation XMLAdapter (deegree commons module) will replace deegree2 XMLFragment and XMLTools. It is based on StaX/Axiom instead of DOM and performs XML parsing (unmarshalling) as well as XML exporting (marshalling). A key concept is that each extension of XMLAdapter is a 1:1 representation of a document class that is defined by a certain XML schema (for example WFS-1.1.0-Capabilities documents). Another important aspect is that the XMLAdapter class hierarchy should respect the schema hierarchy -- this allows the reuse of parse() and export() functions for XML elements / java beans. The current set of methods in XMLAdapter will be extended by a method named validate(). This enables future implementations to perform XML validation as well.
- Miscellaneous deegree3 will use ANT as a build tool.