MTJ architecture
This section provides information on the general architecture of MTJ.
MTJ overview
MTJ implementation is modularized into different Eclipse plug-ins. These
plug-ins are published by MTJ Core plug-in. Also, all the common MTJ classes
are assembled inside the MTJ Core plug-in. An MTJ functionality implementation
component (MTJ Extension) is therefore created as an Eclipse plug-in that
extends one or more MTJ extension points, and is dependent on the Core
plug-ins. The figure below illustrates MTJ implementation.

MTJ extension points can be divided by their functionality into three categories
:
- Extendable Frameworks extension points
- Service Extensions points
- Extended service extension points
MTJ Core’s defined extension points in layer categories and corresponding
Java interfaces are:
MTJ
Framework Plug-in Extension Points:
- Device Management: org.eclipse.mtj.core.deviceManagement
- GUI Builder Management: org.eclipse.mtj.core.guiBuilderManagement
- Build Management: org.eclipse.mtj.core.buildManagement
- Security Management: org.eclipse.mtj.core.securityManagement
- Deployment Management: org.eclipse.mtj.core.deploymentManagement
Eclipse-dependent Plug-in Extension Points:
- Build Provider: org.eclipse.mtj.core.buildProvider
- Device Platform Provider: org.eclipse.mtj.core.devicePlatformProvider
- Device Description Provider: org.eclipse.mtj.core.deviceDescriptionProvider
- GUI Builder Provider: org.eclipse.mtj.core.guiBuilderProvider
- Screen Engine Provider: org.eclipse.mtj.core.screenEngineProvider
- Admin GUI Provider: org.eclipse.mtj.core.adminGuiProvider
Standalone Plug-in Extension Points:
- Preprocessing Provider: org.eclipse.mtj.core.preprocessingProvider
- Obfuscation Provider: org.eclipse.mtj.core.obfuscationProvider
- Packaging Provider: org.eclipse.mtj.core.packagingProvider
- Signing Provider: org.eclipse.mtj.core.signingProvider
- Deployment Provider: org.eclipse.mtj.core.deploymentProvider
Dependencies between different extension implementations follow the three
layers that come from the categorization.
For
example, the Device Management extension, which belongs to Extendable
Frameworks extension points layer, uses the Device Platform Provider and
Device Description Provider extensions, which are Service Extension points
layer’s implementation.
All
the extension point definitions use MTJ’s common data structures. Implementation
of them is based on Eclipse Modeling Framework (EMF).
MTJ Core Model and enumerations
MTJ
common data model implementations are done with EMF. The detailed Rose
model of the implementation can be found in Eclipse CVS. The figure below
illustrates the locations of the model in the Eclipse CVS:
For
general Eclipse CVS directions, go to http://wiki.eclipse.org/index.php/CVS_Howto.
Valid
value-groups of different attribute types are defined as enumerations
inside the corresponding Java class. Current definitions for MTJ UML/EMF
enumerations are defined in the figure below.
Admin Gui Provider
MTJ
Development IDE depends on MTJ Core Plug-in. It also publishes a new extension
point, the Admin GUI Provider, that is used to add new functionalities
to MTJ Development IDE. All MTJ extension point implementers, like the
Device Platform Provider, that need Administration GUIs, must implement
the Admin GUI Provider extension point.

Runtime management framework
Build process framework
Package creation framework
Security management framework
Signing framework
Deployment framework

Checking out MTJ code from CVS

APIs for runtime management network
APIs for build process framework
APIs for package creation framework
APIs for security management framework
APIs for signing framework
APIs for deployment framework