Skip to main content

Translating Mantis to Bugzilla using AMW and ATL - HowTo

This example is a complete scenario of tool interoperability that uses weaving models to capture the different kinds of heterogeneities between the Mantis and Bugzilla metamodels. The weaving model is used to generate an ATL transformation. This transformation translates a model conforming to the Mantis.ecore metamodel into a model conforming to the Bugzilla.ecore metamodel.


Loading the weaving model into AMW:

The weaving model (models/mw_mantis_bug.amw) can be loaded by double-clicking on the file (if using the latest release).

Executing the transformations

There is an Ant Script (scripts/executeAll.xml) that takes the models/mantis_model.ecore file, and automatically produces a Bugzilla_model.ecore file. It executes the following actions:

  • the weaving model (models/mw_mantis_bug.amw) contains links between the metamodels/Mantis.ecore metamodel and the metamodels/Bugzilla.ecore metamodel,
  • executes the ATL HOT (hot/AMWtoATLMantisBug.atl) that takes the weaving model mw_mantis_bug.amw as input and produces the ATL model (output/Mantis2Bug.ecore) conforming to the ATL metamodel,
  • extracts the ATL model into an ATL file (output/Mantis2Bug.atl),
  • executes the ATL transformation (Mantis2Bug.atl). This transformation takes the mantis_model.ecore model as input and produces the Bugzilla model (output/Bugzilla_model.ecore) as output,


  • The HOT and the Mantis2Bug transformations can be executed separatedly as well. Each transformartion has a predefined "launch configuration" file.
  • There is one Ant scripts to execute the the extraction of ATL models(ATLExtractor.xml). The files in the scripts/ folder are mandatory files to execute the Ant Scripts.
  • When the ATL model is extracted into Mantis2Bug.atl, the Mantis2Bug.asm file is generated by the ATL engine. It is possible that the executeAll.xml script tries to execute the transformation before it is extracted (in the first time the script is executed), causing an error. To solve this issue the script needs to be executed a second time.
  • This example was updated to be compatible with the latest releases and sources of ATL (ATL2006).

Back to the top