Skip to main content

Repository Overview

OpenCGMES is a single Git repository that ships three independent products — CIMXML, CIMVocabCheck, and CIMNotebook — built from a mix of Maven, npm, and Gradle modules. This page maps the repository layout and shows how the modules depend on one another, so you know where each piece lives before you start building.

The three products

ProductWhat it isWhere it livesBuild tool
CIMXMLIEC 61970-552 CIMXML parser library (Apache Jena)cimxml/Maven
CIMVocabCheckStatic SPARQL/SHACL validation: library, CLI, and the CIMLangServer LSPcimvocabcheck/core, cimvocabcheck/cli, cimvocabcheck/lspMaven
CIMNotebookEditor integrations: a VS Code extension and an IntelliJ plugincimnotebook/vscode, cimnotebook/intellijnpm / Gradle

The products are layered: CIMVocabCheck builds on CIMXML's profile-aware RDF foundation, and CIMNotebook bundles the CIMVocabCheck language server (cimvocabcheck-lsp.jar) inside each editor integration.

Module and dependency graph

The root pom.xml is an aggregator-only reactor: its <modules> are cimxml and cimvocabcheck (which in turn aggregates core, cli, and lsp). It exists purely so a developer can build everything from the repository root with one command. The child modules deliberately do not declare the root as their Maven <parent> — each module keeps its own version, dependencies, and release profile, so the per-module release workflows that invoke mvn -f cimxml/pom.xml ... keep working unchanged.

CIMNotebook is not in the Maven reactor

The VS Code extension (npm) and IntelliJ plugin (Gradle) are not Maven modules, so mvn install at the root does not build them. They are built separately and each bundles the LSP fat JAR — see Building.

Top-level directory map

PathContains
pom.xmlAggregator reactor pom (opencgmes-reactor); also hosts the CycloneDX/license plugin config used by the SBOM scripts
cimxml/CIMXML parser library (Maven module cimxml)
cimvocabcheck/CIMVocabCheck reactor + shared lint config (google_checks.xml, intellij-java-google-style.xml, spotbugs-excludes.xml)
cimvocabcheck/core/Validation library (cimvocabcheck-core); the ENTSO-E submodule lives under core/testing/entsoe/
cimvocabcheck/cli/Command-line tool (cimvocabcheck-cli, shaded fat JAR)
cimvocabcheck/lsp/CIMLangServer LSP 3.17 server (cimvocabcheck-lsp, fat JAR)
cimvocabcheck/sbom/Committed Maven SBOM + THIRD-PARTY attribution
cimnotebook/vscode/VS Code extension (TypeScript / npm)
cimnotebook/intellij/IntelliJ plugin (Kotlin / Gradle)
cimnotebook/sbom/Committed VS Code + IntelliJ SBOMs + attribution
scripts/Versioning (compute-version.sh, set-versions.sh), supply-chain (generate-sbom.sh, check-sbom-licenses.py), and license-header (license-headers.sh) scripts
.github/workflows/Eight workflows: one -ci and one -release per product, plus the reusable docker-publish.yml and the docs site's deploy-docs.yml — see CI & releases
docs/This Docusaurus documentation site
QueryAndValidationUI/The upcoming web application — in development, not yet public; see its README.md for a description and current screenshots
LICENSE / CONTRIBUTING.mdApache 2.0 license; contribution guide

Where to go next

  • Building — prerequisites, the submodule, and how to build each artifact.
  • Testing — running tests and the ENTSO-E integration suite.
  • CI & releases — the three independent CI/release trains.
  • Contributing — fork/branch/PR workflow.