Skip to content

Releases: ContextMapper/context-mapper-dsl

v4.1.2

05 Sep 12:54
Compare
Choose a tag to compare

With this release we introduced hover texts for the strategic DDD patterns in our CML editor. The following keywords show a short description if the user moves the mouse over the keyword or presses F2 while having the cursor on the keyword: ContextMap, BoundedContext, U, D, S, C, P, SK, OHS, PL, ACL, CF, Aggregate, Domain, Subdomain

v4.1.1

21 May 20:53
Compare
Choose a tag to compare

Bugfix release:

  • AR-6: Merge Aggregates:
    • Ensure that resulting aggregate contains only one aggregate root.

v4.1.0

20 May 11:07
Compare
Choose a tag to compare

Features & Bugfixes in v4.1.0:

  • MDSL generator supports service (tactic DDD Service pattern) methods now (operations used for endpoints: aggregate root methods & service methods)
  • MDSL generator: improved generated comments according to user feedback
  • Bugfix: PlantUML class diagram generator can handle methods without return values now (no exception)
  • CML language: 'def' and 'void' are proper keywords now and cannot be used for names anymore

v4.0.0

19 May 13:04
Compare
Choose a tag to compare

New features and improvements in v4.0.0:

  • CML semantic validator: An aggregate can only contain one entity which is aggregate root (breaking change if you modeled aggregates with multiple roots)
  • General plugin changes:
    • Generator menu entry order has changed: 1. MDSL, 2. PlantUML, 3. ServiceCutter
    • Generators are now also available in the editors context menu (right click -> Context Mapper)
  • MDSL generator changes:
    • Support of primitive data types directly used in parameters or return values (CML primitive types map to corresponding MDSL types)
      • CML Date maps to MDSL V<string> since there is no date in MDSL
    • Bugfix: Generator no longer produces StackOverflowException if you model cyclic reference (recursion stops and references abstract data type)
    • If an operation has no parameters, we use MDSL's V<void>
    • Introduced name extensions for aggregates (*Aggregate), providers (*Provider) and clients (*Client)
    • Improved error messages for cases in which input is missing
    • If the relationship's implementation technology is not specified, we generate "tbd" and a comment as protocol
    • Generator creates comment if an endpoint has no operations due to missing entity methods
  • Architectural Refactoring (AR) improvements:
    • AR-4: Extract Aggregates by Volatility:
      • User can only select likelihood for change values which actually occur in the selected bounded context, since other selections do not change anything.
      • If the user selects another value, an error message appears in the dialog.
    • AR-5: Extract Aggregates by Cohesion:
      • The selection dialog shows a warning message if the user selects all aggregates.
      • Extracting all aggregates from a bounded context does not make much sense. You could also just rename the existing bounded context.
      • However, we just produce a warning. It's still possible to do it.
    • AR-6: Merge Aggregates:
      • The AR can no longer be executed if the merge would lead to a duplicate entity error within the new aggregate.
      • A message box informs the user about this problem now.
    • AR-6: Merge Aggregates & AR-7: Merge Bounded Contexts:
      • Both merge AR's provide a checkbox now with which the user can specify that attributes which cannot be merged should be taken from the second aggregate/bounded context. By default we take attributes which cannot be merged from the first aggregate/bounded context.
      • List attributes are always merged.
      • The bounded context attribute implementationTechnology is merged as well (comma-separated string list)
  • PlantUML generator change:
    • Improved error message in case a class diagram cannot be generated (no entities available)

v3.4.0

15 May 02:16
Compare
Choose a tag to compare

New features in v3.4.0:

  • PlantUML class diagram generator creates methods for corresponding CML operations now (methods on entities, value objects, etc.)
  • PlantUML class diagram generator creates classes and corresponding methods for service classes (tactic DDD services)
  • MDSL generator produces parameter trees if parameters and/or return types are specified in CML (entities, value objects, etc.)
  • MDSL generator uses * cardinality if data type in CML is a collection (list, set, etc.)

v3.3.2

10 May 15:46
Compare
Choose a tag to compare

Bugfix Release:

  • Register TacticDSL (Sculptor) in plugin.xml separately

v3.3.1

09 May 08:19
Compare
Choose a tag to compare

Bugfix release:

  • MDSL generator fix: do not generate duplicate endpoints

v3.3.0

08 May 22:46
Compare
Choose a tag to compare

New features and bugfixes in v3.3.0:

  • Bugfix: Context maps and especially exposed aggregates are now respected by all Architectural Refactorings (ARs). All ARs should now result in error-free context maps.
  • Bugfix: PlantUML component generator produces unique interface names now (even if there are multiple relationships between the same two bounded contexts).
  • Renamed AR 'Extract Aggregates by NFR' to 'Extract Aggregates by Cohesion'
  • Changes to AR 'Extract Aggregates which are Likely to Change':
    • Renamed to 'Extract Aggregates by Volatility'
    • likelihoodForChange (RARELY, NORMAL, OFTEN) can now be chosen in a dialog. Thereby you can extract aggregates by all three values and not only OFTEN, as before.
  • AR 'Split Bounded Context by Duplicate Entity Name' has been removed.
  • New AR 'Merge Aggregates' has been added.
  • A first version of the MDSL (https://socadk.github.io/MDSL/) generator has been added to produce (micro-) service contracts out of the context maps (proof of concept).

v3.2.1

23 Apr 14:13
Compare
Choose a tag to compare

Bugfix release:

  • AR 'Split Aggregate by Entities': Generate 'aggregateRoot' property within entities of newly generated aggregates

v3.2.0

22 Apr 14:14
Compare
Choose a tag to compare

New features in v3.2.0:

  • Property likelihoodForChange on aggregate to specify structural volatility; options: RARELY, NORMAL, OFTEN
  • Architectural Refactorings (ARs):
    • Extract Aggregates which are Likely for Change
    • Extract Aggregates by NFR (Manual Selection)
    • Merge Bounded Contexts

Note: A list with all ARs and corresponding CML examples can be found in the examples repository now: https://github.com/ContextMapper/context-mapper-examples/tree/master/src/main/resources/architectural-refactorings

AR documentation: The documentation of the ARs can be found here: https://contextmapper.github.io/docs/architectural-refactorings/