Difference between revisions of "ATL 2.0.0 New and Noteworthy"

From Eclipsepedia

Jump to: navigation, search
(New page: ==Eclipse Ganymede compatibility== The ATL Toolkit is now compatible with Eclipse Ganymede (Eclipse 3.4, EMF 2.4). ==ANTLR 3.0 support== The ATL Toolkit is now using ANTLR 3.0. ANTLR 3....)
 
(Content assist)
(12 intermediate revisions by one user not shown)
Line 1: Line 1:
==Eclipse Ganymede compatibility==
+
==Ganymede Release==
  
The ATL Toolkit is now compatible with Eclipse Ganymede (Eclipse 3.4, EMF 2.4).
+
The ATL Toolkit is now compatible with Eclipse Ganymede (Eclipse 3.4, EMF 2.4). ATL is still compatible with Eclipse 3.3 and 3.2.
  
==ANTLR 3.0 support==
+
===Content assist===
  
The ATL Toolkit is now using ANTLR 3.0. ANTLR 3.0 Runtime has been approved by Eclipse Foundation (see IPzilla CQ 1548, in which this was approved).
+
To make model elements completion available, you have to put some information on the top of the file :
ANTLR 2.X dependency has been removed and ANTLR 3.0 is externalized in a plugin, installed from an [http://www.eclipse.org/orbit/  Orbit] package. From user point of view, this simplifies ATL installation.
+
* '''-- @nsURI''' : the nsURI for a given metamodel, if you want to load a metamodel from the EMF registry,
 +
* '''-- @path''' : the path of a given metamodel, if you want to dynamically load a metamodel from an ecore file.
 +
Only EMF metamodels are supported. You must specify the relative path of the file into the workspace.
  
==Language Improvement==
+
Here is the top of an UML2AnyMM transformation :
 +
-- @path AnyMM=/AnyProject/AnyFolder/AnyMM.ecore
 +
-- @nsURI UML=http://www.eclipse.org/uml2/2.1.0/UML
 +
 +
module Class2Relational;
 +
create OUT : AnyMM from IN : UML;
 +
 +
-- ...transformation helpers and rules
  
* Support for specification of source model(s) to match a source element in.
+
Completion is triggered with the Ctrl + space keys, or when typing a space in a context where some content assist is available.
* It is possible now to define attribute helpers in ATL libraries.
+
* allInstances return value has been changed from Set to OrderedSet.
+
* A new feature is available : ATL Superimposition. Superimposition allows you to load an ATL transformation module on top of another in your "Run..." configuration. It allows for the superimposing module to import and override matched rules from the module it is superimposed upon. More details are available here: http://wiki.eclipse.org/ATL_Superimposition
+
  
==IDE Improvement==
+
[[Image:ATL_content_assist.JPG]]
  
* Added shortcut to comment/uncomment in the ATL Editor
+
===EMFVM integration===
[[Image:ATLEditor_shortcut.PNG|frame|right|ATL Editor shorcut]]
+
* Added option to disable attribute helper cache
+
* New execution options are available:
+
  * added option to disable attribute helper cache
+
  * added notice about stopwatch available only in run mode
+
* Added a stopwatch that prints execution times of transformations (see advanced tab)
+
* A new launch configuration UI is available (contributed by Mikael Barbero). When the ATL file is selected, the launch configuration is pre-filled in. This avoids errors with ATL header section.
+
[[Image:ATLIDE_LaunchConfig1.PNG|ATL Launch Configuration - Main tab]]
+
[[Image:ATLIDE_LaunchConfig2.PNG|ATL Launch Configuration - Advanced tab]]
+
  
==Developer Improvement==
+
A new ATL VM dedicated to EMF has been included in this release, which strongly increase performances. There is still missing features, so there is a page for watch and report developments around the EMFVM : [http://wiki.eclipse.org/ATL_VM_Testing EMFVM testing].
 +
This page show the results of the new ATL regression test, which checks the validity of old transformation by reusing the [http://www.eclipse.org/m2m/atl/atlTransformations/ ATL Transformation Zoo]. The resulting models are compared using [http://wiki.eclipse.org/EMF_Compare EMFCompare].
 +
Non regression is evaluated for parsing, compilation, execution.
  
* An extension point was created, which enables the invocation of other ATL Virtual Machines from the launch configuration or ATL ant tasks. The list of ATL VM available is located in the advanced tab
+
===ANTLR 3.0 support===
* Added accessor to ATL resourceSet (may, for instance, be used by other tools to access ATL-registered metamodels)
+
 
* Added a Problem target model to the ATL compiler so that it may report problems more appropriately
+
The ATL Toolkit is now using ANTLR 3.0. ANTLR 3.0 Runtime has been approved by Eclipse Foundation (see IPzilla CQ 1548, in which this was approved).
* Added location as comment after each bytecode
+
ANTLR 2.X dependency has been removed and ANTLR 3.0 is externalized in a plugin, installed from an [http://www.eclipse.org/orbit/  Orbit] package. From user point of view, this simplifies ATL installation.
* Deprecated the old injector and extractor methods
+
  
==Various enhancements==
+
==Previous New and Noteworthy==
  
* Added support for libraries in OclQueries
+
This [http://wiki.eclipse.org/ATL_2_beta_notes page] shows the ATL improvements when ATL was included in Eclipse as a M2M component.
* Set saved model as derived
+
* Added/modified synchronized blocks to get thread safety at low (parallel) performance impact
+
* Added usage of EMFModelLoader (i.e., old command-line API) in order for ASMString.inject(...) to work
+
* No longer try to load metamodel-by-uri before loading instance model
+
* Disabled execution time print out for debug mode (it would take into account the time during which the VM is stopped)
+
* Use ASMModel cache (models are parsed several times to build dialog)
+
* Refactored common code out of the compilers. Added a stand-alone version of the compiler that must not use the Eclipse platform API. This version can then run outside Eclipse, too.
+
* Added a main operation to libraries with registration of attribute helpers
+
* Added injector extension point to engine plugin, so that these injectors can be used with String.inject(...); because there is already an injector extension point in AM3, this should probably be simplified in the future
+
* Updated ATL metamodel
+

Revision as of 08:56, 18 June 2008

Contents

Ganymede Release

The ATL Toolkit is now compatible with Eclipse Ganymede (Eclipse 3.4, EMF 2.4). ATL is still compatible with Eclipse 3.3 and 3.2.

Content assist

To make model elements completion available, you have to put some information on the top of the file :

  • -- @nsURI : the nsURI for a given metamodel, if you want to load a metamodel from the EMF registry,
  • -- @path : the path of a given metamodel, if you want to dynamically load a metamodel from an ecore file.

Only EMF metamodels are supported. You must specify the relative path of the file into the workspace.

Here is the top of an UML2AnyMM transformation :

-- @path AnyMM=/AnyProject/AnyFolder/AnyMM.ecore
-- @nsURI UML=http://www.eclipse.org/uml2/2.1.0/UML

module Class2Relational;
create OUT : AnyMM from IN : UML;

-- ...transformation helpers and rules

Completion is triggered with the Ctrl + space keys, or when typing a space in a context where some content assist is available.

ATL content assist.JPG

EMFVM integration

A new ATL VM dedicated to EMF has been included in this release, which strongly increase performances. There is still missing features, so there is a page for watch and report developments around the EMFVM : EMFVM testing. This page show the results of the new ATL regression test, which checks the validity of old transformation by reusing the ATL Transformation Zoo. The resulting models are compared using EMFCompare. Non regression is evaluated for parsing, compilation, execution.

ANTLR 3.0 support

The ATL Toolkit is now using ANTLR 3.0. ANTLR 3.0 Runtime has been approved by Eclipse Foundation (see IPzilla CQ 1548, in which this was approved). ANTLR 2.X dependency has been removed and ANTLR 3.0 is externalized in a plugin, installed from an Orbit package. From user point of view, this simplifies ATL installation.

Previous New and Noteworthy

This page shows the ATL improvements when ATL was included in Eclipse as a M2M component.