v6.7.0 Release Notes

Dec 2, 2022 • Stefan Kapferer

Today we released version 6.7.0; with this release you can finally run Context Mapper with Java 17 😌

In addition, this minor release comes with some little language (CML) changes for bounded context canvas support and with additional PlantUML generator capabilities.

Context Mapper and Java 17

Many of you have reported it in the past months. Context Mapper only worked with Java 8 and 11. With this release we finally have a version that is built with target 11 and runs on 17 as well.

Therefore, we officially support (and tested) Java 11 and 17 for this release.

Bounded Context Canvas

We added the two new attributes businessModel and evolution to the Bounded Context in CML in order to support concepts from the bounded context canvas. This new features is documented here.

Many thanks to @boxleytw for the contribution! 🙏

PlantUML Generator Additions

The CML language now allows users to specify additional information about relations between domain objects (entities, value objects, etc.), such as multiplicity and custom labels, that are then used in the PlantUML generator.

See the examples in this CML model:

BoundedContext CustomerManagementContext {
  Aggregate Customers {
    Entity Customer {
      aggregateRoot
			
      - @Address address nullable
      - List<@City> cities
      - List<@City> towns size="min=1,max=4"
      - List<@Order> orders
      - @Thing thing -- "things"

      * void anotherMethod(@Name name);
      * @ReturnTypeEntity createReturnTypeEntity();

      -- "lives at" @Address
      -- "uses >" @Name
      -- "creates >" @ReturnTypeEntity
    }
		
    Entity Address {
      - @City city
      String name
    }

    ValueObject City {
      String name
    }

    ValueObject Name {
      String first
      String last
    }

    Entity ReturnTypeEntity {
      int i
    }

    Entity ManyToManyFirst {
      - List<@ManyToManySecond> seconds -- "interact"
    }

    Entity ManyToManySecond {
      - List<@ManyToManyFirst> firsts	-- "interact"
    }

    Entity Thing {
      int i
    }
  }

  Aggregate Orders {
    Entity Order {
      String something
    }
  }
}

This CML produces the following PlantUML output:

Additions to relations for PlantUML

This change was contributed by a PR of @StevenVanDijk. Many thanks for your contribution to Context Mapper! 🙏

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