Skip to content
CAI
Software that uses CAICheck a score

ContextMapper/context-mapper-dsl

55.6

Adequate · 22 September 2026

21.3k

lines of production code

Java

primary language

7

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a Domain-Driven Design modeling tool that provides a comprehensive IDE and language server for editing, validating, and transforming domain models. It supports multiple DSLs, including a Context Mapping Language (CML) and a Tactic DDD language, enabling users to define architectural patterns and service configurations. The system offers extensive code generation capabilities, producing diagrams (PlantUML, Context Maps), API contracts (MDSL), and code templates (JHipster, Freemarker). Additionally, it facilitates architectural refactoring, allowing users to split, merge, and extract bounded contexts and aggregates directly within the editor.

How it got here

2018 — DSL and IDE expansion

32 changes.

This period focused on significantly expanding the Context Mapper platform by introducing new domain-specific languages for Tactic DDD and ServiceCutter configuration. The team also enhanced the Eclipse IDE integration, providing comprehensive support for editing, validation, and code generation across all DSLs, while standardizing the build system with Gradle and updating dependencies.

2019–2024 — IDE and generator expansion

46 changes.

This period focused on significantly expanding the Context Mapper DSL's capabilities by introducing new code generators for MDSL, PlantUML, Sketch Miner, and Freemarker templates. The team also built out a comprehensive IDE integration, adding refactoring commands, quick-fixes, and hover support via the Language Server Protocol. Extensive test coverage was added to validate these new features and ensure the stability of the model resolution and serialization logic.

Features

Add Markdown templates for Full Report and Glossary outputs

Added new FreeMarker templates to generate Markdown-based reports and glossaries. The Full Report template now includes a Design Part that lists Bounded Contexts, Context Maps, and Teams, utilizing a renamed helper function \filterStructuralBoundedContexts\ (previously \filterBoundedContexts\) to correctly filter context types. The Glossary template similarly structures Analysis and Design concepts, while supporting detailed and simple views of Bounded Contexts, including their Aggregates, Services, and Application Layer components (Services, Events, Commands, and Flows).

org.contextmapper.dsl.ui/samples/freemarker/markdown-templates · high confidence

Add Maven Wrapper for consistent builds

The project now includes the Maven Wrapper, allowing developers to build the project without pre-installing Maven. The wrapper downloads and uses a specific Maven version (3.8.6) to ensure consistent build environments across all users.

.mvn · high confidence

Add Sketch Miner integration for generating BPMN diagrams

Users can now generate visual BPMN diagrams for flows and coordination models using the Sketch Miner tool. This change introduces a new generator in the \sketchminer\ package that converts Context Mapper DSL elements (such as \Flow\ and \Coordination\) into Sketch Miner compatible text. The implementation includes a local copy of the \LZString\ compression utility, model classes for tasks and sequences, and a FreeMarker template to format the output. This allows users to visualize their architectural decisions directly in Sketch Miner.

org.contextmapper.dsl/src/org/contextmapper/dsl/generator/sketchminer · high confidence

Add UI support for the Tactic DDD language

New Eclipse IDE integration files are added for the Tactic DDD language, including the UI module, content assist, label providers, outline tree, and quickfix provider. This enables IDE features such as code completion, syntax highlighting, and navigation for the DSL.

org.contextmapper.dsl.ui/src/org/contextmapper/tactic · high confidence

Add build tool wrappers and IDE configuration files

The repository now includes Gradle and Maven wrapper scripts (gradlew, mvnw) to ensure consistent build tool versions across environments. Additionally, Eclipse project configuration (.project) and Java version specification (.java-version) are added to support local development, while the .gitignore is updated to exclude IDE-specific files and build artifacts.

(repo-wide) · high confidence

Add hover text support for CML keywords

Users can now see descriptive hover text for CML keywords and enum literals in the IDE. This change introduces a new \CMLHoverService\ and supporting provider classes (\CMLHoverTextProvider\, \AbstractCMLHoverTextProvider\, \HTMLHoverTextProvider4CML\, and \MarkdownHoverTextProvider4CML\) to display formatted help text for terms like 'BoundedContext', 'ContextMap', 'U' (Upstream), 'D' (Downstream), 'S' (Supplier), 'C' (Customer), 'OHS', 'PL', 'ACL', 'CF', 'Aggregate', 'Domain', 'Subdomain', 'P', and 'SK' (Shared Kernel).

org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/hover, org.contextmapper.dsl/src/org/contextmapper/dsl/hover · high confidence

Added Eclipse IDE project configuration files for org.contextmapper.dsl.ide

The Eclipse IDE project metadata files (.classpath, .project, and build.properties) were added to the org.contextmapper.dsl.ide module. This change configures the Java build path to include source directories (src, src-gen, xtend-gen) and sets the Java runtime to Java SE 11, ensuring the project builds correctly within the Eclipse development environment.

org.contextmapper.dsl.ide · high confidence

Added Eclipse update site for Context Mapper DSL Editor

The Context Mapper DSL Editor is now available as an Eclipse update site, allowing users to install the tool directly from the Eclipse Marketplace or via the Eclipse IDE's install new software feature. This change introduces the necessary project structure and metadata (feature.xml, build.properties, .project) to support the Eclipse P2 repository format, making the DSL editor accessible as a standard Eclipse plugin.

org.contextmapper.dsl.feature · high confidence

Added IDE support for ServiceCutter Configuration DSL

New Xtext IDE module and setup classes have been introduced for the ServiceCutter Configuration DSL, enabling language server protocol (LSP) support and IDE integration for this domain-specific language.

org.contextmapper.dsl.ide/src/org/contextmapper/servicecutter · medium confidence

Added IDE support for the Tactic DDD language

New Xtext IDE module and setup classes have been added to the org.contextmapper.tactic.dsl.ide package. These files register the necessary IDE components and configure the Guice injector to include both the runtime and IDE modules, enabling language server functionality for the Tactic DDD language.

org.contextmapper.dsl.ide/src/org/contextmapper/tactic · high confidence

Added ServiceCutter configuration DSL and supporting infrastructure

A new ServiceCutter configuration DSL has been introduced, allowing users to define use cases, aggregates, entities, and various compatibility characteristics (such as availability, consistency, and security criticality) in a structured, human-readable format. This change includes the grammar definition (ServiceCutterConfigurationDSL.xtext), runtime and standalone setup modules for Xtext, a custom formatter for consistent code styling, a scope provider for reference resolution, and a Java wrapper (SCLResourceContainer) to safely load and validate SCL model resources. This enables users to configure ServiceCutter behavior through a dedicated configuration file rather than manual tool invocation.

org.contextmapper.dsl/src/org/contextmapper/servicecutter · high confidence

Added Tactic DDD and ServiceCutter Configuration DSLs to Context Mapper

The Context Mapper plugin now includes support for two new domain-specific languages: a Tactic DDD language and a ServiceCutter Configuration language. These additions extend the platform's capabilities for domain-driven design and service decomposition, allowing users to define and generate code for these specific architectural patterns alongside the existing Context Mapper functionality.

org.contextmapper.dsl · medium confidence

Centralized code action and quick-fix registry for IDE refactoring and transformations

The IDE now uses a centralized \CMLActionRegistry\ to manage and expose all refactoring, transformation, and quick-fix commands. This new registry unifies the registration of code actions (such as splitting or merging bounded contexts and aggregates) and quick-fixes (such as splitting user stories or opening flows in Sketch Miner), making them available through the language server's code action API. Users will see these refactoring and transformation options appear in the editor's quick-fix menu and code action list.

org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/actions · high confidence

Initial Eclipse plugin configuration for Context Mapper DSL UI

Added the foundational Eclipse plugin configuration files (.classpath, .project, about.ini, build.properties, plugin.xml) for the org.contextmapper.dsl.ui module. This establishes the build environment, defines the ContextMappingDSL and ServiceCutterConfigurationDSL editors, and registers standard Xtext editor handlers and menu contributions, enabling the UI component to function within the Eclipse IDE.

org.contextmapper.dsl.ui · high confidence

Introduce CML model resolution and import handling infrastructure

A new set of utility classes has been added to the CML package to manage model resolution and imports. This includes CMLImportResolver for resolving imported CML resources, CMLModelDomainAndSubdomainResolver for resolving subdomains and domains across the root and imported models, and CMLModelObjectsResolvingHelper for resolving various CML model objects. Additionally, supporting classes like CMLResource, CMLTypeChecker, and XtextIdHelper have been introduced to support these operations.

org.contextmapper.dsl/src/org/contextmapper/dsl/cml · high confidence

Introduce UI support for Service Cutter Configuration DSL

Adds the Eclipse IDE integration layer for the Service Cutter Configuration DSL, including the editor, menu actions, content assist, outline tree, and quickfix providers. This enables users to edit, navigate, and interact with Service Cutter configuration files directly within the IDE.

org.contextmapper.dsl.ui/src/org/contextmapper/servicecutter · high confidence

New Eclipse UI integration for Context Mapper refactoring and generation tools

The Eclipse plugin now provides a unified interface for all refactoring and generation tools. A new \CMLEditor\ integrates \GeneratorsActionGroup\ and \RefactoringActionGroup\ to populate the editor's context menu with commands for generating context maps, PlantUML, Sketch Miner, MDSL, and XMI outputs, as well as executing architectural refactoring rules. The \ContextMappingDSLUiModule\ registers the necessary hover providers and text edit composers, while helper classes like \XtextEditorHelper\ and \AbstractGenerationHandler\ manage the execution of these commands within the IDE.

org.contextmapper.dsl.ui/src/org/contextmapper/dsl · medium confidence

New Freemarker templates for exporting stakeholders and value registers to CSV

Added two new Freemarker templates that enable exporting domain data to CSV files: one for stakeholders (including groups and individual stakeholders with their context, description, influence, and interest) and one for value registers (including value clusters and individual values with their core values, demonstrators, related/opposing values, and stakeholder elicitation details). These templates provide structured CSV outputs for stakeholder and value register data.

org.contextmapper.dsl.ui/samples/freemarker/csv-files · high confidence

New Freemarker-based code generation infrastructure and helper methods

The system now supports generating text output using Freemarker templates, introducing a new \FreemarkerTextGenerator\ that maps context mapping model elements (such as bounded contexts, domains, and stakeholders) to template data. This update adds several helper methods for templates: \instanceOf\ and \getType\ for type checking and resolution, plus filtering utilities \filterBoundedContexts\ (which excludes 'TEAM' type contexts), \filterStructuralBoundedContexts\ (an alias for the above), and \filterTeams\ (which selects only 'TEAM' type contexts). These changes enable more flexible and structured code or text generation from the DSL model.

org.contextmapper.dsl/src/org/contextmapper/dsl/generator/freemarker · high confidence

New IDE actions for domain model refactoring

The IDE now supports a comprehensive set of refactoring actions for the Context Mapping Language (CML), including splitting and merging bounded contexts and aggregates, deriving contexts from subdomains, and managing stakeholder values. These new \CMLCodeAction\ implementations enable users to perform operations such as splitting a bounded context by features or owner, extracting shared kernels, and moving stakeholders to new groups directly from the editor.

org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/actions/impl · high confidence

New IDE generation commands for multiple output formats

The IDE now provides dedicated generation commands for multiple output formats, including Context Maps, MDSL service contracts, PlantUML diagrams, Sketch Miner text, and generic Freemarker-based text files. These new command implementations allow users to generate these artifacts directly from the language server, with the Context Map command supporting additional configuration options such as label spacing, team clustering, and dimension fixes.

org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/commands/impl/generation · high confidence

New JHipster JDL templates for microservices, monoliths, and gateways

Added three new FreeMarker templates that generate JHipster JDL files for different architectural styles. The JHipster-Microservices.jdl.ftl template configures each bounded context as a microservice with a React client, PostgreSQL database, and Swagger codegen. The JHipster-Monolith.jdl.ftl template generates a single monolithic application with the same stack. Both templates map domain entities and value objects to JDL entities, collect relationships (OneToMany/OneToOne), and include DTO and service generation options. A shared JDL.ftl template provides the core logic for entity and reference collection, while a mapAttributeType function maps DSL types to JDL types.

org.contextmapper.dsl.ui/samples/freemarker/jhipster · high confidence

New LSP command infrastructure for Context Mapper refactoring and generation

The IDE module now exposes a comprehensive set of refactoring and generation commands through the Language Server Protocol (LSP). This includes architectural refactoring actions such as splitting bounded contexts by features or owner, splitting aggregates by entities, deriving subdomains, merging contexts, and extracting shared kernels. Additionally, it provides generation commands for Context Maps, PlantUML, MDSL, and generic text files, alongside quickfixes like splitting user stories by verb. These capabilities are now accessible via the LSP command service, enabling IDEs and tools to trigger these operations programmatically.

org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/commands · high confidence

New PlantUML diagram generators for class, component, state, and stakeholder maps

The Context Mapper now provides a comprehensive set of new PlantUML diagram generators, introducing support for class diagrams (aggregates, bounded contexts, modules, subdomains), component diagrams, state diagrams (for aggregates and flows), and stakeholder mind maps. These additions enable users to automatically generate visual representations of their domain models, architecture, and stakeholder maps directly from their DSL models.

org.contextmapper.dsl/src/org/contextmapper/dsl/generator/plantuml · high confidence

New Sketch Miner converters for coordination and flow

Added new Java classes (Coordination2SketchMinerConverter, Flow2SketchMinerConverter, SimplifiedCoordinationStep, SimplifiedFlowStep) that convert Context Mapper DSL coordination and flow models into Sketch Miner model representations. This enables the generation of interaction diagrams from context mapping models, supporting both sequential coordination and complex flow patterns including parallel and alternative execution paths.

org.contextmapper.dsl/src/org/contextmapper/dsl/generator/sketchminer/converter · high confidence

New Tactic DDD language grammar and runtime support

The Tactic DDD language grammar (TacticDDDLanguage.xtext) and its associated runtime components (runtime module, standalone setup, value converters, and scoping providers) have been added. This introduces the core syntax definitions for modeling Tactic DDD patterns, including services, resources, consumers, and domain objects, enabling users to write and parse Tactic DDD DSL files.

org.contextmapper.dsl/src/org/contextmapper/tactic/dsl · high confidence

New Tactic DDL language formatter for consistent code style

A new \TacticDDDLanguageFormatter\ has been added to the \org.contextmapper.dsl\ project, introducing a dedicated formatting engine for the Tactic DDL DSL. This change ensures that generated or parsed DDL files are consistently formatted, with specific rules for entities, domain events, command events, value objects, enums, attributes, references, and operations. This improves the readability and maintainability of the DSL output.

org.contextmapper.dsl/src/org/contextmapper/tactic/dsl/formatting2 · high confidence

New Value Impact Map generator for PlantUML mindmaps

A new Value Impact Map generator has been added to the DSL, producing a PlantUML mindmap that visualizes a system's stakeholders, their elicited values, and the associated consequences and mitigation actions. The implementation introduces a model layer (Stakeholder, SystemOfInterest, Value, MitigationAction, ConsequenceOnValue) and a Freemarker template to render the diagram, allowing users to see how value impacts are distributed across stakeholders and what positive, negative, or neutral consequences each value carries.

_org.contextmapper.dsl/src/org/contextmapper/dsl/generator/plantuml/value\_impact\mapping · high confidence

New code generators for Context Maps, MDSL contracts, Sketch Miner, and XMI export

The generator package now includes several new output formats. Users can generate XMI files for Henshin transformation experiments via XMIGenerator. MDSL contracts are generated for all Bounded Contexts using MDSLContractsGenerator. A new SketchMiner generator produces .sketch\_miner files for application layer flows and coordinations. Additionally, a GenericContentGenerator allows generating arbitrary text files from a CML Context Map using a Freemarker template. The existing ContextMapGenerator now supports configurable output formats (PNG, SVG, DOT) and additional labels. The PlantUMLGenerator has been expanded to support sequence diagrams for use case interactions, state diagrams for aggregates and flows, and stakeholder/value impact maps.

org.contextmapper.dsl/src/org/contextmapper/dsl/generator · high confidence

New context-mapping DSL formatter for consistent code style

A new \ContextMappingDSLFormatter\ has been added to the \org.contextmapper.dsl.formatting2\ package. This formatter enforces a consistent code style for Context Mapping Language (CML) files, applying specific indentation, line breaks, and spacing rules to elements such as bounded contexts, domains, user requirements, and application flows. This change ensures that all CML documents are formatted uniformly, improving readability and maintainability.

org.contextmapper.dsl/src/org/contextmapper/dsl/formatting2 · high confidence

New quick-fixes for missing contexts, story splitting, and value object extraction

Added a new CMLQuickFix interface and several implementations to the DSL quick-fixes package. Users can now automatically create a missing Bounded Context, split a user story by verb/operation, and extract an identifier attribute into a new Value Object. These quick-fixes provide automated refactoring and model correction options directly from the editor.

org.contextmapper.dsl/src/org/contextmapper/dsl/quickfixes · high confidence

New refactoring commands for CML model transformations

The IDE now exposes a comprehensive set of architectural refactoring commands via the language server protocol, enabling users to transform their CML models directly in the editor. This change adds command handlers for splitting bounded contexts by features or owners, splitting aggregates by entities, extracting shared kernels, merging aggregates and bounded contexts, deriving subsystems and subdomains, and managing stakeholder and value relationships. These new commands allow users to apply structural changes to their domain models through the IDE's quick-fix and command palette interfaces.

org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/commands/impl/refactoring · high confidence

New refactoring infrastructure for Context Mapper DSL

The refactoring package now includes a new base class AbstractRefactoring that handles resource resolution, modification tracking, and serialization dry-runs before persisting changes. Additionally, new abstract classes AbstractExtractSymmetricRelationshipRefactoring and AbstractToggleSymmetricRelationshipRefactoring provide reusable logic for extracting new bounded contexts from symmetric relationships and toggling between partnership and shared kernel relationship types.

org.contextmapper.dsl/src/org/contextmapper/dsl/refactoring · high confidence

New sample models for Freemarker templates

Added two new sample models, OnlineShopScenario.cml and TacticDDDModelSkeleton.cml, to demonstrate the use of Freemarker templates. The OnlineShopScenario.cml provides a complete example of an e-commerce domain, while the TacticDDDModelSkeleton.cml serves as a blueprint for tactical DDD modeling, including application/process layer definitions and context map structures.

org.contextmapper.dsl.ui/samples/freemarker/sample-models · high confidence

New standalone API for programmatic Context Mapper usage

A new standalone API is introduced in the \org.contextmapper.dsl.standalone\ package, providing a \StandaloneContextMapper\ and its \StandaloneContextMapperAPI\ interface. This allows developers to load, create, and refactor CML models programmatically, as well as invoke code generators with customizable output directories via a \FileSystemHelper\ utility.

org.contextmapper.dsl/src/org/contextmapper/dsl/standalone · high confidence

Behavioural changes

Added Eclipse p2 update site metadata and build configuration

The Eclipse update site for Context Mapper has been restructured with new project and category configuration files. The update site now includes metadata for the Context Map generator alongside the main DSL features, and the build process has been updated to support composite repository generation for release management.

org.contextmapper.dsl.repository · medium confidence

Context Map generator now supports name and implementation technology labels on relationships

The Context Map generator has been updated to include relationship name and implementation technology labels in the generated output. This change ensures that when generating context maps, the visual representation will now display the specific names and implementation technologies associated with each relationship, providing more detailed architectural information in the generated diagrams.

org.contextmapper.dsl/src/org/contextmapper/dsl/generator/contextmap · medium confidence

Enables IDE support for CML commands, code actions, and hover text

The IDE module now registers the CML command service, code action service, and hover service, enabling users to execute commands, access code actions, and view hover text within the editor.

org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide · high confidence

Enforce cross-context reference restrictions

The Context Mapper DSL now prevents domain objects in a Bounded Context from referencing domain objects in a different Bounded Context, and vice versa. This new scoping rule ensures that references between domain objects are strictly contained within their respective contexts, improving modularity and reducing coupling between different contexts.

org.contextmapper.dsl/src/org/contextmapper/dsl/scoping · medium confidence

Enforce naming conventions and structural rules for Tactic DSL models

The Tactic DSL now validates that service, repository, and domain object names start with an uppercase letter, while attributes, references, and parameters must start with a lowercase letter. It also prevents reserved keywords from being used as identifiers, flags duplicate names, and enforces logical consistency such as disallowing properties that are both required and not changeable, or keys that are required. These checks provide immediate feedback on model correctness and style.

org.contextmapper.dsl/src/org/contextmapper/tactic/dsl/validation · high confidence

Enforce semantic validation rules for CML models

The CML validation framework now includes comprehensive semantic checks across multiple domains: aggregates must have exactly one root and one state enum; context map relationships must not be self-referential or link to undefined contexts; commands and operations must be defined within the same bounded context; and all names (aggregates, domains, modules, services, etc.) must be unique within their respective scopes. Additionally, coordination steps are validated to ensure referenced contexts, services, and operations exist and are reachable, while organizational maps are checked for team consistency.

org.contextmapper.dsl/src/org/contextmapper/dsl/validation · high confidence

Improved error handling for refactoring serialization

Refactoring operations that fail during serialization now throw a specific RefactoringSerializationException containing the error message, rather than failing silently or producing empty CML files. This ensures that users are informed about serialization issues during architectural spike operations in Eclipse and LSP environments.

org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/edit · medium confidence

Improved error handling for refactoring serialization failures

The application now provides more specific and user-friendly error messages when a refactoring cannot be applied due to serialization issues, such as ambiguous domain object names. A new \RefactoringSerializationException\ captures detailed error conditions, ensuring that users receive clear feedback about why a refactoring failed rather than encountering a generic exception.

org.contextmapper.dsl/src/org/contextmapper/dsl/exception · medium confidence

MDSL generator: new implementation for API description generation

The MDSL generator has been refactored with a new implementation for generating API descriptions. This introduces dedicated creators for API descriptions, data types, and the core model, alongside helper classes for name encoding, pattern matching, and protected region management. The generator now supports generating usage contexts (PUBLIC\_API, COMMUNITY\_API), handles primitive and complex data types including enums, and manages protected regions for data types, endpoints, providers, and clients to preserve user modifications.

org.contextmapper.dsl/src/org/contextmapper/dsl/generator/mdsl · high confidence

New exception types for MDSL generator validation

Added four new exception classes to the MDSL generator: GeneratorInputException, InputNotYetSupportedException, NoContextMapDefinedException, and NoContextMappingModelDefinedException. These provide specific error handling for invalid or unsupported inputs during code generation, such as missing context maps or unsupported input types.

org.contextmapper.dsl/src/org/contextmapper/dsl/generator/exception · medium confidence

Updated Context Mapper DSL bundle to version 6.12.1 with expanded package exports and new dependencies

The org.contextmapper.dsl bundle has been updated to version 6.12.1, introducing a comprehensive set of new package exports including generator modules for Context Map, MDSL, PlantUML, Sketch Miner, and Stakeholders/Value Registers, alongside refactoring and validation packages. The bundle's dependencies have been updated to include org.apache.commons.exec (1.3.0), guru.nidi.com.kitfox.svgSalamander (1.1.2), org.freemarker.freemarker (2.3.30), com.fasterxml.jackson.core (annotations and core), and org.yaml.snakeyaml (1.14.0), while requiring Java SE 11 and specific versions of Eclipse Xtext, EMF, and Apache Commons libraries.

org.contextmapper.dsl/META-INF · medium confidence

Updated Context Mapper IDE bundle manifest

The MANIFEST.MF for the org.contextmapper.dsl.ide bundle has been updated to version 6.12.1. This update refreshes the bundle metadata and declares dependencies on Eclipse Xtext, LSP4J, and Apache Commons libraries, ensuring the IDE plugin correctly resolves its required execution environment and exported packages.

org.contextmapper.dsl.ide/META-INF · high confidence

Updated Eclipse and Xtext runtime dependencies

The target platform definition has been updated to include Eclipse 2023-03, Xtext 2.32.0, and MWE2 2.15.0, alongside specific library versions such as Gson 2.10.1 and JUnit 4.13.2. This ensures the project builds against the correct set of Eclipse and modeling tools for the current development environment.

org.contextmapper.dsl.target · high confidence

Updated Eclipse launch configurations for Context Mapper

Added new Eclipse launch configurations for generating Context Mapping DSL infrastructure and launching the runtime Eclipse environment. The runtime configuration now targets Java 11 (JavaSE-11) and includes environment variables to disable DMA-BUF rendering in WebKit, ensuring compatibility with the project's build and runtime environment.

org.contextmapper.dsl/.launch · medium confidence

Updated Gradle wrapper to version 7.4.2

The project's Gradle wrapper has been updated to version 7.4.2, ensuring that builds use a consistent and modern version of the Gradle build tool.

gradle · high confidence

Fixes

Fix CML parsing errors caused by root element ordering

The Context Mapper Language (CML) parser now correctly handles the order of root elements (ContextMap, BoundedContext, Domain, etc.) in CML files. Previously, refactoring operations could produce CML files that failed to parse due to strict ordering constraints. This change ensures that the generated CML is always valid and parseable, preventing data loss or errors when using refactoring tools or saving files.

org.contextmapper.dsl/src/org/contextmapper/dsl · high confidence

Test coverage

Add integration test fixtures for PlantUML diagram generation; Add test coverage for NoEObjectDescriptionException; Added Eclipse project configuration files for org.contextmapper.dsl.ui.tests; Added Eclipse project configuration for Context Mapper DSL tests; Added MANIFEST.MF for the Context Mapper DSL tests bundle; Added OSGi manifest for UI tests bundle; Added base test class for CML language server; Added integration test cases for Sketch Miner; Added integration test files for Context Map generator; Added integration test fixtures for MDSL generation; Added integration test fixtures for PlantUML diagram generation; Added integration test fixtures for Service Cutter; Added integration tests for Freemarker template generation; Added integration tests for quickfixes; Added integration tests for subdomain resolution with imported files; Added standalone DSL test fixtures for context mapping; Added test bundle manifest for Context Mapper IDE tests; Added test fixture for bounded context resolving; Added test project configuration files for org.contextmapper.dsl.ide.tests; Added tests for CML generator commands; Added tests for CML language server code actions; Added tests for CML language server refactoring commands; Added tests for CML parsing and validation; Added tests for hover text support in the CML IDE; Added tests for new quick-fixes and command mappers; Expanded test coverage for domain modeling refactorings.

Dependencies

Migrate build system to Gradle with Xtext 2.32.0

The project has been migrated from a Maven-only build to a hybrid Gradle and Maven build system. The root \pom.xml\ and individual module \pom.xml\ files are retained for Eclipse Tycho and Maven-specific tasks, but new \build.gradle\ files are introduced for the core DSL, IDE, and test modules. This migration upgrades the Xtext framework to version 2.32.0 and updates the MWE2 version to 2.15.0. The build configuration now enforces Java 11 compatibility and integrates JaCoCo for test coverage reporting.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 51 → 56 (+4.2)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 87 → 91 (+4.0)
  • Architecture 100 → 100 (+0.1)
  • Maturity 53 → 55 (+2.8)
  • Readiness 49 → 46 (-3.7)
  • Security 42 → 56 (+13.9)

Resolved (68)

  • Change coupling: CMLActionRegistry.java ↔ CMLCommandRegistry.java (org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/actions/CMLActionRegistry.java)
  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (10 lines × 2) (org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/actions/GeneratorsActionGroup.java)
  • Duplicated block (10 lines × 2) (org.contextmapper.dsl/src/org/contextmapper/dsl/refactoring/AbstractExtractSymmetricRelationshipRefactoring.java)
  • Duplicated block (10 lines × 2) (org.contextmapper.dsl/src/org/contextmapper/dsl/validation/ApplicationCoordinationSemanticsValidator.java)
  • Duplicated block (11 lines × 2) (org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/handler/SplitBoundedContextByOwnerRefactoringHandler.java)
  • Duplicated block (11 lines × 2) (org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/handler/wizard/pages/AggregateSelectionWizardPage.java)
  • Duplicated block (11 lines × 2) (org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/handler/wizard/pages/DeriveBackendFrontendSystemsFromFeatureWizardPage.java)
  • Duplicated block (14 lines × 3) (org.contextmapper.dsl/src/org/contextmapper/dsl/generator/sketchminer/LZString.java)
  • Duplicated block (5 lines × 2) (org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/actions/impl/ExtractSharedKernelAction.java)
  • Duplicated block (5 lines × 2) (org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/actions/impl/SuspendPartnershipAction.java)
  • Duplicated block (5 lines × 2) (org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/quickfix/impl/OpenCoordinationInSketchMinerCommandMapper.java)
  • Duplicated block (5 lines × 2) (org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/handler/AbstractGenerationHandler.java)
  • Duplicated block (5 lines × 2) (org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/handler/AbstractRefactoringHandler.java)
  • Duplicated block (5 lines × 2) (org.contextmapper.dsl/src/org/contextmapper/dsl/scoping/CMLScopingHelper.java)
  • Duplicated block (5 lines × 3) (org.contextmapper.dsl/src/org/contextmapper/dsl/generator/mdsl/MDSLModelCreator.java)
  • Duplicated block (6 lines × 2) (org.contextmapper.dsl/src/org/contextmapper/dsl/generator/mdsl/MDSLModelCreator.java)
  • Duplicated block (6 lines × 2) (org.contextmapper.dsl/src/org/contextmapper/dsl/refactoring/DeriveFrontendAndBackendSystemsFromFeature.java)
  • Duplicated block (7 lines × 2) (org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/actions/impl/SplitBoundedContextByFeaturesAction.java)
  • …and 48 more

New (107)

  • Boundary-crossing change coupling: CMLActionRegistry.java ↔ ValidationMessages.java (org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/actions/CMLActionRegistry.java)
  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Duplicated block (10 lines × 2) (org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/handler/SplitBoundedContextByOwnerRefactoringHandler.java)
  • Duplicated block (10 lines × 2) (org.contextmapper.dsl/src/org/contextmapper/dsl/refactoring/DeriveFrontendAndBackendSystemsFromFeature.java)
  • Duplicated block (10 lines × 7) (org.contextmapper.dsl/src/org/contextmapper/dsl/generator/sketchminer/LZString.java)
  • Duplicated block (11 lines × 2) (org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/handler/stakeholders/CreateValue4StakeholderHandler.java)
  • Duplicated block (11 lines × 2) (org.contextmapper.dsl/src/org/contextmapper/dsl/refactoring/ExtractPartnershipRefactoring.java)
  • Duplicated block (11 lines × 2) (org.contextmapper.dsl/src/org/contextmapper/dsl/validation/ApplicationCoordinationSemanticsValidator.java)
  • Duplicated block (11 lines × 2) (org.contextmapper.dsl/src/org/contextmapper/dsl/validation/ApplicationCoordinationSemanticsValidator.java)
  • Duplicated block (11 lines × 3) (org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/actions/GeneratorsActionGroup.java)
  • Duplicated block (12 lines × 2) (org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/handler/ExtractSharedKernelRefactoringHandler.java)
  • Duplicated block (12 lines × 2) (org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/handler/SuspendPartnershipRefactoringHandler.java)
  • Duplicated block (13 lines × 3) (org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/actions/GeneratorsActionGroup.java)
  • Duplicated block (15 lines × 2) (org.contextmapper.dsl/src/org/contextmapper/dsl/refactoring/AbstractExtractSymmetricRelationshipRefactoring.java)
  • Duplicated block (16 lines × 2) (org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/handler/wizard/pages/DeriveBackendFrontendSystemsFromFeatureWizardPage.java)
  • Duplicated block (19 lines × 2) (org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/handler/wizard/pages/AggregateSelectionWizardPage.java)
  • Duplicated block (21 lines × 2) (org.contextmapper.dsl/src/org/contextmapper/dsl/generator/sketchminer/LZString.java)
  • Duplicated block (23 lines × 2) (org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/actions/GeneratorsActionGroup.java)
  • Duplicated block (28 lines × 2) (org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/actions/impl/CreateValue4StakeholderAction.java)
  • Duplicated block (2–5 lines × 6) (org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/handler/AbstractGenerationHandler.java)
  • …and 87 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

ContextMapper/context-mapper-dsl was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 22 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 995f486a9cdecb6946257d5c7b6d98ada2978124 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-90d5d2fe38ee.