ATL 3.1.0 New and Noteworthy
The ATL Toolkit is now compatible with Eclipse Helios (Eclipse 3.6, EMF 2.6). ATL is still compatible with Eclipse 3.5, 3.4, 3.3 and 3.2.
ATL Editor improvements
- Hover informations: when hovering code parts into an atl file, a yellow popup displays informations about the element type if available.
- Open declaration (both available with F3 and Ctrl-click): this feature eases the navigation inside of an ATL file, by opening the corresponding declaration of the selected element. When selecting a ModelElement the action opens the metamodel (.ecore file) and highlights the selected element.
- Content assist: now content assist is more powerful and works inside of complex OCL expressions
- Occurences highlighting: when selecting an element, all references to the same one are highlighted.
Output Model selection
A miss in the ATL syntax has just been corrected: the in keyword is now available for both input and output patterns. It mainly allow to specify in which model you want to create elements, when the old semantics forbade the use of several output models conforming to the same metamodel declaration. The workaround wasn't very intuitive as it consists on declaring the same metamodel with different names...
Here is a sample transformation header:
create OUT1 : MM_B, OUT2 : MM_B from ... ;
Below is an output pattern which creates elements in the OUT2 model:
to o : MM_B!Class2 in OUT2
Debugging & Profiling
Until ATL 3.0, the debugger was part of the Regular ATL VM only. EMF-specific VM didn't provide debugging facilities. Now the debugger (UI plus debugging protocol, ADWP) has been extracted from the Regular VM and refactored to be more generic. Finally a debugging protocol support has been added to the EMF-specific VM. So now the debugger can work with both VMs.
The debugger also had some small enhancements, like variables presentation, breakpoints available in the ATL editor.
The ATL plugin wizard is a new feature which helps achieving an ATL programmatic launch. This utility first will ask for transformation parameters (metamodels, libraries paths, transformation modules paths):
Then a new plug-in will be generated, embedding:
- the transformation modules and libraries
- a propery file containing URIs, atl file paths
- a Java class which allow to programmatically launch the ATL transformation
Finally you will be able to launch the transformation using the generated main, or integrating the launcher class into an existing application. To use the transformation as a standalone app, you can use Eclipse Java export options:
This will product a .jar containing all the required ATL, Eclipse and EMF libraries.