Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Sphinx/architecture"
(→Component features) |
(→Root features) |
||
Line 53: | Line 53: | ||
|Test utilities | |Test utilities | ||
|for JUnit-based unit and integration tests | |for JUnit-based unit and integration tests | ||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
Revision as of 06:49, 29 June 2011
Sphinx provides a relatively large set of services and uses or extends a wide set of other Eclipse (modeling) components. Adopters may not need all of these services or required Eclipse components in their applications. Sometimes they even might be constraint to not using some of them. Sphinx is therefore based on an architecture that makes the dependencies wrt required Eclipse components transparent and keeps them separated as much as possible. This architecture is at the same time the basis for the structure of the features in which Sphinx plug-ins are bundled up and delivered. The resulting features thus have well-defined and limited dependencies to other Eclipse components and make it happen that individual parts of Sphinx can be used independently of each other.
Architecture
The following picture depicts the Sphinx architecture. It is constituted of 3 horizontal layers that form together the Sphinx core and several vertical slices on top of that. The core components provide essential modeling platform services that are commonly required and used by all other Sphinx components. They depend on a minimal set of existing Eclipse components. The vertical components provide individual modeling platform services that are independent of each other and typically based on specific additional exisiting Eclipse components.
Dependencies
The following table lists the dependencies of Sphinx components wrt existing Eclipse (modeling) components. Only directly required Eclipse components are listed (but not the Eclipse components being required by the directly required Eclipse components).
Component | Dependencies |
---|---|
Core |
|
T.b.c. | ... |
Feature Structure
The structure of Sphinx features is basically a one-to-one representation of the architecture detailed above. For each component, Sphinx provides a set of features that contain the different pieces of a component, i.e., runtime, sources, documentation, examples, etc. Component features are hierarchically bundled up in container and root features. Adopters can freely choose which of these features they want to refer to and thus have full control over the Sphinx components and pieces that get included in their applications.
Root features
Root features are the primary deliverables of Sphinx and can be used to pull all Sphinx components at once. They are included in both Sphinx Update Site and Sphinx Downloads. The following root features are provided:
Feature | Description | Comment |
---|---|---|
org.eclipse.sphinx | Runtime | i.e., binaries without sources and documentation |
org.eclipse.sphinx.sdk | Runtime + sources + documentation | no examples included |
org.eclipse.sphinx.examples | Examples | sources included |
org.eclipse.sphinx.testutils | Test utilities | for JUnit-based unit and integration tests |
Component features
Component features enable adopters to select and include individual Sphinx components in their applications. Their IDs always include the name of the principal required Eclipse component that they are based on or extend. If necessary, they also indicate the name of the Sphinx component that they represent. The table below lists the component features that Sphinx offers for each of its components.
Top-level service | Sub services | Features |
---|---|---|
Navigator & Editor Sockets | Common Navigator Sockets |
|
Form Editor Sockets |
| |
GMF Editor Sockets |
| |
Graphiti Editor Sockets |
| |
Validation Runtime Extensions |
| |
Compare & Merge Integration | Compare & Merge Engine & Editor |
|
Subversive Team Support |
| |
M2x Integration | Xtend/Xpand Integration |
|
Core | Workspace Management |
|
EMF Runtime Extensions | ||
Eclipse Platform Extensions |