Skip to main content

LionWeb Java Architecture Overview

Project Structure

LionWeb Java is organized into several modules, each with a specific responsibility:

Core Module

The core module implements the definition of nodes and languages. It provides:

  • Core data structures and interfaces
  • JSON serialization/deserialization
  • Basic validation and processing capabilities

Repository Client Module

The repository client module provides:

  • Client-side implementation of the LionWeb repository protocol
  • Support for delta protocol
  • Integration with LionWeb repositories

Extensions module

Capabilities that, while not required by the LionWeb specs, proved to be useful. For example, serialization and deserialization in ProtoBuf and FlatBuffers format.

EMF Module

The EMF module provides bidirectional conversion between:

  • LionCore ↔ Ecore
  • LionWeb ↔ EMF This enables integration with Eclipse Modeling Framework.

EMF Builtins Module

This module defines Ecore equivalents for LionCore's built-in elements that don't have direct Ecore representations.

Key Design Principles

We want to do boring stuff that works. This project is about providing the reliable, foundational capabilities for you to build interesting things.

Dependencies

  • Java 8+ (runtime)
  • Java 11+ (build)

Version Support

The project currently supports:

  • LionWeb 2023.1
  • LionWeb 2024.1

Future Considerations

The architecture is designed to accommodate:

  • New LionWeb specification versions
  • Additional integration points
  • Performance optimizations