Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Servus API

This document details Servus' API. First, we give an overview of the plugins implemented by Servus, and then we detail the important abstractions of the plugins.

Plugins

Servus plugins use the base package org.eclipse.emf.servus. We will omit this part of the package names for brevity. The exception is the core package, which has exactly this signature, and will be therefore referenced by Core. This list contains the plugins already created in the CVS. Additional plugins must be created to complete the tool support, such as additional transformations and integration with the Eclipse IDE to drive the transformations.

Main Plugins

  1. metamodel - defines the Servus meta-model as an Ecore model.
  2. Core - defines the API for all transformations and the data structures used by the transformation, as well as utility classes. Also defines extension points to be implemented by transformations.

Support Plugins

  1. app - implements command line applications to run the transformations.
  2. app.tests - implements simple tests to drive the command line applications.
  3. samples - a container for sample artifacts used to test the applications. Contains WSDL documents, Servus models, Ecore models and so on.
  4. rule - a simple rule framework that allows transformations to be defined as AST traversals and typed rules.

WSDLv1 Plugins

  1. wsdlv1 - implements the extension points related to WSDL version 1, which defines transformations between WSDLv1 and Servus models.
  2. wsdlv1.wsdl2servus - uses the rule framework to implement the transformation from WSDL to Servus.
  3. wsdlv1.servus2wsdl - uses the rule framework to implement the transformation from Servus to WSDL.

JAX-WS Plugins

  1. jaxws - implements the extension point related to JAX-WS, i.e,. implements a Servus to JAX-WS-based Java source code.

GUI Plugins

  1. metamodel.edit - edit functionality for the Servus meta-model.
  2. metamodel.editor - a simple editor for the Servus meta-model.

Profile Plugins

  1. profile - implements the extension point related to the Profile, which defines transformations between Servus models and profiled Ecore models.
  2. profile.servus2ecore - uses the rule framework to implement the transformation from Servus to Ecore.

Plugin Dependencies

The following diagram sketches the dependencies between the plugins. Dependencies are transitive.

Plugins.jpg

The Core Plugin

Containers

Transforms

Helpers

Back to the top