Releases: ContextMapper/context-mapper-dsl
v4.1.2
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
v4.1.0
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
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
- Support of primitive data types directly used in parameters or return values (CML primitive types map to corresponding MDSL types)
- 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)
- AR-4: Extract Aggregates by Volatility:
- PlantUML generator change:
- Improved error message in case a class diagram cannot be generated (no entities available)
v3.4.0
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
v3.3.1
v3.3.0
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
v3.2.0
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/