View on GitHub

Eiffel REMReM Semantics

Download this project as a .zip file Download this project as a tar.gz file

How to use semantics

To import the project user need to add to pom.xml

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>
<dependency>
    <groupId>com.github.Ericsson</groupId>
    <artifactId>eiffel-remrem-semantics</artifactId>
    <version>x.x.x</version>
</dependency>

Or import the project to pom.xml

repositories {
    ...
    maven { url 'https://jitpack.io' }
}
dependencies {
   compile("com.github.Ericsson:eiffel-remrem-semantics:x.x.x")
}

Eiffel REMReM Semantics contains implementation of Eiffel REMReM Protocol Interface. All methods of interface MsgService are implemented by SemanticsService class: generateMsg, getEventId, getEventType, getSupportedEventTypes, getEventTemplate, getServiceName, validateMsg, generateRoutingKey. Also in this class could be implemented more methods depending on the needs of developer.

The main task of Eiffel Semantics is to check a correctness of Eiffel message. Project contains JSON schemas for each Eiffel type of event. If you need to create new event type, you need to define the JSON schema for this event.

Each of Eiffel data types, for example links, gav, etc have its implementation in schema. If you need to extend event with some custom field, the JSON schema for this field and serializer should be created for it. Also event JSON schema need to be updated.

During the verification process input JSON for SemanticsService is updated with the protocol related fields, for example id.

All Eiffel events consist of 3 logical JSON objects: meta, data and links. The meta object contains meta-information describing the event: when it was created, where it came from, its type et cetera. The data object contains all fields specific to the event type – the payload of the event – including trace links to non-Eiffel entities. It is described in detail per event type. The links object is an array of trace links to other Eiffel events.

Messages Table

Below is a table of current official Eiffel2.0 events along with their templates.

Templates for Eiffel events to be used with REMReM Generate are found below.
Template can be downloaded and all fields labelled as required are to be mandatorily filled.
The JSON file can be used with Eiffel REMReM Generate as described here.

Note¹: templates are avaialable from eiffel-remrem-semantics-0.2.5 version

Note²: templates are in full JSON syntax and filenames are in lowercase from eiffel-remrem-semantics-0.3.5 version

Choose Eiffel REMReM Semantics version: