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)