v5.13.0 Release Notes

Jun 24, 2020 • Stefan Kapferer

Today we released Context Mapper 5.13.0. This is a minor release containing the following changes:

  • A Quickfix allows users to create Value Objects (VO) for ID attributes (in case you have attribute like String customerId, the Quickfix suggests to extract a VO).
    • We will implement more Quickfixes in future releases (this was a first architectural spike).
  • Grammar change: Subdomains can refer the features (use cases or user stories) they support. Example:

    /* Syntax example for Subdomain that supports specific user requirements: */
    Domain Insurance {
      domainVisionStatement = "Insurance domain vision statement ..."
      Subdomain CustomerManagementDomain supports CreateCustomers, CreateCustomerAddresses {
        type = CORE_DOMAIN
        domainVisionStatement = "Subdomain managing everything customer-related."
        Entity Customer {
          String firstname
          String familyname
    UserStory CreateCustomers {
      As an "Insurance Employee"
        I want to "create" a "Customer" with its "firstname", "lastname"
      so that "I am able to manage the customers data and offer them insurance contracts."
    UserStory CreateCustomerAddresses {
      As an "Insurance Employee"
        I want to "create" an "Address" for a "Customer"
        I want to "update" an "Address" for a "Customer"
      so that "I am able to manage the customers addresses."
    • The grammar documentation for Subdomains can be found here.
    • This feature allowed us to improve the OOAD transformations, since we can now backtrack which features a Subdomain or Bounded Context implements.
  • The OOAD transformation for Step 3 (derive Bounded Context from Subdomain) has been improved:
    • Parameter and return types actually include the entities are not abstract types.
    • We generate Value Objects for IDs now.
  • The following OOAD transformations can now be applied multiple times without producing an error or empty file:
    • Derive Frontend and Backend Systems
    • Split System Context Into Subsystems
  • The graphical Context Map generator user interface in Eclipse persists the configuration of the user (so that the dialog shows the same values at next generation).
  • The generic text file generator (based on Freemarker) suggests an ouput filename on the dialog in Eclipse (so that you have to change the file extension only).
  • Change in MDSL generator: The generator produces contracts for all Bounded Contexts now, even if they are not an upstream context in an upstream-downstream relationship.
    • Sometimes you just want to generate the contract without specifying the client Bounded Contexts (downstreams).
  • The following Architectural Refactorings (ARs) are now supported in Visual Studio Code:
  • The JDL template to generate Microservice applications with JHipster has been changed so that API-first development with Open API specifications is enabled for all generated microservices.
  • Changes in MDSL generator:
    • The “Aggregate” suffix is no longer added to the endpoint names.
    • The “IPA” keyword at the end of the contracts is no longer generated (is optional in MDSL).
    • The latest MAP decorators supported by MDSL are respected by the generator.

As always, if you have any issues or other feedback, please let us know.