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"

(Root features)
(Component features)
Line 59: Line 59:
  
 
The table below lists the component features offered by Sphinx. They enable individual Sphinx components to be selected and included in applications. For the sake of keeping things easier to oversee, only the runtime features are indicated.
 
The table below lists the component features offered by Sphinx. They enable individual Sphinx components to be selected and included in applications. For the sake of keeping things easier to oversee, only the runtime features are indicated.
 
 
Vertikal components:
 
** Navigator & Editor Sockets
 
***
 
*** Form Editor Socket
 
***
 
 
  
  
 
{|cellpadding="5" cellspacing="0" border="1"
 
{|cellpadding="5" cellspacing="0" border="1"
!Component
+
!Top-level service
 +
!Sub services
 
!Features
 
!Features
 
|-
 
|-
 +
|rowspan="4"|Navigator & Editor Sockets
 +
|Common Navigator Sockets
 
|
 
|
|
+
* org.eclipse.sphinx.emf.navigators
 +
* org.eclipse.sphinx.emf.navigators.sdk
 
|-
 
|-
 +
|Form Editor Sockets
 
|
 
|
|
+
* org.eclipse.sphinx.emf.editors.forms
 +
* org.eclipse.sphinx.emf.editors.forms.sdk
 
|-
 
|-
|Common Navigator Explorer Support
+
|GMF Editor Sockets
 
|
 
|
 +
* org.eclipse.sphinx.gmf.editors
 +
* org.eclipse.sphinx.gmf.editors.sdk
 
|-
 
|-
|Form Editor Socket
+
|Graphiti Editor Sockets
 
|
 
|
 +
* org.eclipse.sphinx.graphiti.editors
 +
* org.eclipse.sphinx.graphiti.editors.sdk
 
|-
 
|-
|GMF Editor Socket
+
| Validation Runtime Extensions
 
|
 
|
|-
 
|Graphiti Editor Socket
 
 
|
 
|
|-
+
* org.eclipse.sphinx.emf.validation
|Validation Runtime Extensions
+
* org.eclipse.sphinx.emf.validation.sdk
|
+
|-
+
|Compare & Merge Integration
+
|
+
* org.eclipse.sphinx.emf.compare
+
* org.eclipse.sphinx.emf.compare.team.subversive
+
|-
+
|Xtend/Xpand Integration
+
|org.eclipse.sphinx.m2x.xtendxpand
+
|-
+
|Workspace Management
+
|org.eclipse.sphinx.emf.workspace
+
|-
+
|EMF Runtime Extensions
+
|org.eclipse.sphinx.emf
+
|-
+
|Eclipse Platform Extensions
+
|org.eclipse.sphinx.platform
+
 
|}
 
|}

Revision as of 16:36, 28 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 to required Eclipse components transparent and keeps them separated as much as possible. This architecture is also the basis for the structure of the features in which Sphinx plug-ins are delivered. Together, they make it happen that the individual parts of Sphinx to 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.

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

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

The 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 id Description
org.eclipse.sphinx Runtime
(i.e., binaries without sources)
org.eclipse.sphinx.doc Documentation
(i.e., Developer Guide, etc.)
org.eclipse.sphinx.sdk Runtime + sources + documentation
(but not examples)
org.eclipse.sphinx.examples Examples
(including sources)
org.eclipse.sphinx.testutils Test utilities
(for JUnit-based unit and integration tests)
org.eclipse.sphinx.thirdparty Required Orbit plug-ins

Component features

The table below lists the component features offered by Sphinx. They enable individual Sphinx components to be selected and included in applications. For the sake of keeping things easier to oversee, only the runtime features are indicated.


Top-level service Sub services Features
Navigator & Editor Sockets Common Navigator Sockets
  • org.eclipse.sphinx.emf.navigators
  • org.eclipse.sphinx.emf.navigators.sdk
Form Editor Sockets
  • org.eclipse.sphinx.emf.editors.forms
  • org.eclipse.sphinx.emf.editors.forms.sdk
GMF Editor Sockets
  • org.eclipse.sphinx.gmf.editors
  • org.eclipse.sphinx.gmf.editors.sdk
Graphiti Editor Sockets
  • org.eclipse.sphinx.graphiti.editors
  • org.eclipse.sphinx.graphiti.editors.sdk
Validation Runtime Extensions
  • org.eclipse.sphinx.emf.validation
  • org.eclipse.sphinx.emf.validation.sdk

Back to the top