USEFUL INFORMATION TO USE AND RUN THIS SAMPLE JAVA REFACTORING WORKFLOW
----------------------------------------------------------------------------------------

MoDisco, ATL & Acceleo have to be previously installed. This can be done via a dedicated 
wizard named "Install Modeling Components", as available from the workbench icon bar.
Note that the org.eclipse.gmt.modisco.java.generation project also has to be checkout or
imported into your workspace from:
	- https://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.modisco/plugins/trunk/
	(use the "anonymous" repository login, no password required)

To directly test the proposed sample refactoring workflow, you then just have to checkout 
or import in your workspace the following source project:
	- org.eclipse.persistence.example.jpa.20.employee.annotations
	- location: http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/trunk/examples
	(use the "anonymous" repository login, no password required)

To play with the workflow and its different refactoring transformations, you can:
	1) Modify the sources of the JPA project indicated above:
		- Comment some getter/setter methods;
		- Add some new "deprecated" methods;
		- Etc.
	2) Use a different JPA project as input of the workflow
		- some launch configurations have to be updated accordingly
	3) Modify the proposed transformations, add new ones, etc.
