Kernel Concepts And Services

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).
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 examlple, the kernel provides an interface to cope with different storage solutions, which itself uses to provide a file based storage solution based on the Eclipse workspace.

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 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 Introspection System Service

The documentation of the kernel services as well as an introspective interface is available in every running instance of a kernel-based tool.
The documentation of Kernel Introspection System Service provides more information.