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

Difference between revisions of "Sphinx/architecture"

(Top-level features)
(Top-level features)
Line 67: Line 67:
 
== Top-level features ==
 
== Top-level features ==
  
The top-level features include and can be used to pull all other features and the plug-ins of the Sphinx platform. They are also subdivided and named according to the conventions provided above:
+
The top-level features are the primary deliverables of Sphinx and can be used to pull all other Sphinx features and the plug-ins. They are also subdivided and named according to the conventions provided above:
  
 
* org.eclipse.sphinx
 
* org.eclipse.sphinx

Revision as of 16:58, 21 June 2011

Sphinx heavily uses and extends other Eclipse (modeling) components. Adopters may not require all of those in their applications or even might be constraint to not using some of them. Sphinx is therefore based on an architecture that makes the dependencies wrt to required Eclipse components transparent. At the same time, it delivers the structure for the features which group the Sphinx plug-ins physically together and make it happen that the individual parts of Sphinx to be used independently of each other.

The following sections are dedicated to providing the details about this architecture and feature structure.

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.

SphinxArchitecture.png

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
  • Eclipse Platform
  • EMF
  • EMF Transaction
T.b.c. ...

Feature Structure

Naming conventions

ToDo: Say something about content of following table and naming template.

Feature type Description Naming template
Runtime Binaries without source code org.eclipse.sphinx.<componentName>(.<technologyName>)
Sources Source code for runtime binaries org.eclipse.sphinx.<componentName>(.<technologyName>).source
Documentation Help content (Developer Guide, etc.) org.eclipse.sphinx.<componentName>(.<technologyName>).doc
SDK Runtime + sources + documentation (but not examples) org.eclipse.sphinx.<componentName>(.<technologyName>).sdk
Examples Example plug-ins including sources org.eclipse.sphinx.<componentName>(.<technologyName>).examples
Test Utilities Utilities and support for JUnit-based unit and integration tests org.eclipse.sphinx.<componentName>(.<technologyName>).testutils

Note: All components do not necessarily provide all of above mentioned feature types.

Top-level features

The top-level features are the primary deliverables of Sphinx and can be used to pull all other Sphinx features and the plug-ins. They are also subdivided and named according to the conventions provided above:

  • org.eclipse.sphinx
  • org.eclipse.sphinx.sdk
  • org.eclipse.sphinx.examples
  • org.eclipse.sphinx.testutils

Component features (layers and slices)

The structure of Sphinx component features is basically a one-to-one representation of the architecture detailed above.

  • Core components:
    • Eclipse Platform Extensions
    • EMF Runtime Extensions
    • Workspace Management
  • Vertial components:
    • Navigator & Editor Sockets
      • Common Navigator Explorer Support
      • Form Editor Socket
      • GMF Editor Socket
      • Graphiti Editor Socket
    • Validation Runtime Extensions
    • Compare & Merge Integration
    • M2x Integration
      • Xtend/Xpand Integration

Back to the top