Eclipse Gecko

Wednesday, October 9, 2024 - 05:03 by Mark Hoffmann
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Community Review
Background

The GitHub organization https://github.com/geckoprojects-org is an incubator for Open Source projects around OSGi and / or the Eclipse Modeling Framework. Data In Motion is a contributor of these projects, heavily using them in their own and their customers' applications. We have been using OSGi for over 10 years and participating in the OSGi Working Group. We are also using  EMF for many other purposes in our projects. As a result, we brought these two worlds together: dynamic and modular systems that are model based.

Over the years, we made the Eclipse Modeling Framework OSGi service-based. In addition to that, we developed a lot of extensions to bring these two worlds together. We started spreading these projects into the world. With SensiNact, there is already another Eclipse project integrating our Gecko EMF OSGi. We also have a distributed version of the EMF package registry, that we call Gecko Model Atlas. This component builds upon EMF, OSGi and Jakarta RESTful Web Services and is used in research projects, Urban Data Platforms and can be used with Eclipse sensiNact.

Further extensions already exist in geckoprojects, that are based upon the EMF OSGi technology stack. We would like to move them all to the Eclipse foundation. As an example, we want to provide a codec layer as a serialization / de-serialization framework for EMF. On top of that, we already have a pluggable persistence framework, provided as OSGi services. All this constitutes a toolkit around the technologies EMF / OCL / QVT and OSGi.

Scope

Eclipse Gecko transforms EMF functionalities into an OSGi service compliant version. It further provides EMF extensions in an OSGi way and creates adapters for EMF to other frameworks. Additional service components furthermore extend EMF (e.g. serialization) in an OSGi way or make other components like Jakarta EE work with EMF in an OSGi service environment.

Description

We see Eclipse Gecko as incubator and space for any EMF and OSGi related projects. Over the years we have massively used these two technologies in our projects. 

We put some extensions to EMF to make it work in an optimal OSGi manner. Based on that we build additional components for existing OSGi specifications like the Whiteboard for Jakarta Restful Web Services that are able to serialize and de-serialze EMF Instances. 

We build a lot of other frameworks on top of that, like a Serializer / De-Serializer frameowrk to be capabile to save load EMF with the same configuration in different formats like MongoDB, JPA, Lucene, Json / Yaml.

We needed all this components to use EMF end-to-end in an application.

  • EMF OSGi - EMF Framework as OSGi Service, Code Generator for these components

  • EMF-Util - Extensions based on EMF OSGi to customizer serialzing, Jakarta RS extension to work with EMF

  • Model-Atlas - Distributed EMF Model Registry

  • EMF- Codec - Serializer, De-serializer framework for EMF in an OSGi based way

  • EMF Persistence - Persistence extension for EMF in an OSGi environment

  • Mapping Layer (‘QVT Transformation in an OSGi way)

  • Privacy layer - Framework to analyze model and/or model instances for privacy related information

Why Here?

For us the Eclipse Foundation is a perfect home for these components. OSGi has already moved to the Eclipse Foundation and EMF is an Eclipse base technology for our projects. As a logical consequence, we want to enlarge the existing ecosystem around these technologies and bridge a gap between OSGi and EMF. As we have other Eclipse projects that want to use our EMF OSGi components, moving our projects to Eclipse Gecko is the best way of streamlining this process, to be in the same community and to take benefit from each other.

Eclipse Gecko would join the partner projects Eclipse Daanse and Eclipse SensiNact at the Eclipse Foundation. Since the technology also has privacy-sensitive components, our network as member company of the Eclipse Models4Privacy interest group would also help to ensure the project quality in terms of privacy innovations and compliance.

With its steady spread outside of the Realm of Data In Motion, the different Projects started attracting new Contributors. The Eclipse foundation would provide the solid and stable governing framework, right from the start.

Nearly all of the contained projects will become part of a bigger community project for an urban data platform, which is publicly funded. By the statute of the governing german body, the result of this community projects must become open source. Our Components will become the core of this project together with other parts of the Eclipse Modelling World. Together with Eclipse daanse and sensiNact, we hope that we can make a strong case to the community, so the resulting platform can become real open source, when most of their parts already are.

Future Work

Gecko EMF Codec (Serializer/deserializer Framework)

Gecko EMF Persistence (Mongo, JPA, Lucene) based on EMF Codec 

Mapping Layer (QVT Transformation in an OSGi way)

Model Privacy Layer - ML Analyis for Ecore Models

Semantic Layer (RDF)

Project Scheduling

Q4 /2024 - starting with clean, new and empty repos

Q4 /2024 - Initial contribution Gecko EMF OSGi and Gecko EMF Utils

Q1 /2025 - initial contribution Gecko Model Atlas,

Q1 /2025 - stabilize SNAPSHOT releases

Q2 /2025 - BETA releases first Gecko EMF OSGi and Gecko EMF Util release

Q3 /2025 - STABLE releases

Mentors
Interested Parties
  • City of Jena

  • Data In Motion Consulting GmbH

  • Civitas Connect e.V.

  • OSGi Working Group

  • Interest Group Models 4 Privacy

  • Eclipse EMF / EMF Technology

  • Eclipse sensiNact

  • Eclipse Daanse

  • M2M QVT / OCL

Initial Contribution

None. We want to start with empty repos and integrate code commit by commit, starting with: 

https://github.com/geckoprojects-org/org.gecko.emf

 

Source Repository Type