Tooling Kernel Concepts, Plugins and Services
Kernel Concepts
The kernel is organized as a set of services partitioned
into UI and non-UI services. Non-UI services are implemented
in the org.fortiss.tooling.kernel plugin, while UI services
can be found in org.fortiss.tooling.kernel.ui plugin.
In the following we will abbreviate the package name reducing
it to kernel or kernel.ui. In general the package
structure of the UI part is similar to that of the non-UI
part, so we will only state exceptions when necessary.
Each service is identified by a service interface, which provides
the public interface to the service (see kernel.service package,
e.g. IElementCompositorService). Most of the services are related
to an extension point and allow the application (built on top of
the kernel) to extend its functionality with specific implementations.
For example, the IElementCompositorService allows an application
to define model element compositions (i.e. which EMF objects can
be contained in other objects, e.g., a Component can contain
a StateAutomatonSpecification).
Extensions to the kernel services are realized by implementing a
handler interface provided by the kernel (see kernel.extension
package).
Within the communication between the kernel and its extensions
additional
data may be required (see kernel.extension.data) or exceptions may
be raised (see kernel.extension.exception package). The extension
point schemas for the kernel extensions can found in the schema
folder of the kernel and kernel.ui plugins.
Note that the kernel also provides abstract base implementations for
most
of the handler interfaces, which are located in the
kernel.extension.base
package.
Kernel Plugins
This section briefly describes the plugins of the Tooling Kernel 2.0.
org.fortiss.tooling.common
This plugin repackages several libraries (mostly Apache). This plugin
does not provide a meta-model.
org.fortiss.tooling.common.ui
This plugin repackages several user interface related libraries and
classes from different sources.
org.fortiss.tooling.kernel
This plugin provides the non-UI related kernel services: persistency,
element and connection compositors, transformations, prototypes,
constraints. The meta-model provides the core concepts of named and
ID labeled elements and project root elements.
org.fortiss.tooling.kernel.ui
This plugin provides the UI related kernel services: navigator,
element handling, editors, edit part factories, markers, context
menus and actions.
org.fortiss.tooling.base
This plugin provides the base implementation for hierarchical models
and graphical description techniques based on those. The meta-model
provides a generic hierarchical, graph-like base model extended with
model element specifications and references. It also provides the
layout information meta-model.
org.fortiss.tooling.base.ui
This plugin provides base implementation for graphical editors using
the Eclipse GEF framework (Version 3, not the renew Version 5+).
Kernel Introspection System Service (KISS)
The documentation of the kernel services as well as an introspective
interface is available in every running instance of a kernel-based
tool. This section describes this feature, which is called the
*Kernel
Introspection System Service*. The KISS is used to provide a
self-describing feature to the kernel services. It also provides
an introspection facility to most of the kernel services. For example,
all registered prototypes of the prototype service can be listed.
Accessing KISS
KISS is integrated into the running instance of the kernel-based tool.
You can access it by using the Quick Access menu.
Hit Ctrl-3 (Linux and Windows) or CMD-3 (MacOS X) and type
KISS.
This opens the KISS view in Your current Eclipse perspective.
Double-click the view header to enlarge it to the whole window.
Using KISS
KISS provides You with a list of all kernel services, which can be
introspected. When You select any service the details list to the
right is updated and the service description at the bottom is displayed.
Filter details lists
The list of detailed information can be searched by typing into the
search field at the to You should always use a search term that
begins with a star character to find any related information.
Copy class names with context menu
When one or more columns of the details information list displays a
class name, this string can be copied to Your clipboard using the
right-click context menu. This way You can easily switch back to Your
development instance and start a class lookup with the class name
pasted from Your clipboard.