Merging of duplicate extend instantiations broken

Issue #433 resolved
Matthias Schoettle created an issue

When weaving a concern or building an application, in the first step, the model extensions (currently known as instantiations) are woven first. After each weaving step, duplicate instantiations, that might be existent after copying over the extensions from the woven in aspect, are merged.

However, the current implementation is broken in that it only merges the first duplicate it finds.

For example, building the workflow and choosing all available features results in Woven_Workflow (empty) with instantiations for each feature:

  • Output
  • ParallelExecution
  • Conditional Execution
  • Synchronization
  • Conditional Synchronization
  • Workflow
  • Input

Output itself extends Workflow and Input. When Output is woven in first (based by rank) the intermediary result extends Workflow and Input a second time.

The mergeInstantiations(Aspect) method then merges the two Workflow instantiations but stops, which leads to two Input instantiations being left. This results into Input being woven twice.

Comments (2)

  1. Log in to comment