---------------------------------------------------------------			
If you have any questions and/or comments about this tool, 
please use the MoDisco newsgroup:

	news://news.eclipse.org/eclipse.modeling.gmt.modisco

---------------------------------------------------------------	

---------------
Prerequisites:
---------------
1) Install Eclipse with EMF + the ATL and AM3 plugins:

	--> To install ATL, follow the instructions of the "installation of ADT from source" Eclipse Wiki page 
		which is available from http://wiki.eclipse.org/index.php/ATL/How_Install_ATL_From_CVS/
	
	--> To install AM3, simply follow the same process (except that the repository path is "/cvsroot/technology"). 
		You just have to select the "org.eclipse.gmt/AM3" folder and to checkout the following plugins: 
			* org.eclipse.am3.core
    		* org.eclipse.am3.tools.tge
    		* org.eclipse.am3.ui
    		* org.eclipse.gmt.am3.dsls.km3
    		* org.eclipse.gmt.am3.tools.ant
    		
2) Import the "org.eclipse.modisco.tool.metricsvisualizationbuilder" project into your development workspace:

	--> see the README.TXT file from the "org.eclipse.modisco.tool.metricsvisualizationbuilder" project
		Download the project from: http://www.eclipse.org/gmt/modisco/toolBox/MetricsVisualizationBuilder/

2) Import the "org.eclipse.modisco.usecase.bugzillametrics" project into your development workspace:

	--> Right-click anywhere on the "Navigator" view and choose "Import...", the "Import" 
		wizard is now opened.
	
	--> Select "General/Existing Projects into Workspace" and click on "Next" button.
	
	--> Click on "Select archive file" and "Browse..." to open the 
		"org.eclipse.modisco.usecase.bugzillametrics-incubation.zip" archive file.
		
	--> Check that the "org.eclipse.modisco.usecase.bugzillametrics" project is selected and
		click on the "Finish" button.
		
	--> The "org.eclipse.modisco.usecase.bugzillametrics" project is now opened into your
		development workspace. 
	

-----------------------------------------
This project contains different folders:
-----------------------------------------

	--> "Input":			The input XML file has been automatically generated using the XML export 
							facility provided by the Eclipse Bugzilla.
							See: https://bugs.eclipse.org/bugs/query.cgi
							
	--> "Metamodels":		The metamodels, used within this use case, expressed in two different formats 
							(the KM3 language and the Ecore XMI format).
							
	--> "Outputs":			The sub-folders contain the generated intermediate models (you can delete these 
							models for regenerating them, but you CANNOT delete the sub-folders).
							The final output files are stored in the root (you can delete these files for 
							regenerating them).
							
	--> "Transformations:	The ATL transformations developped in order to implement the different steps 
							of the use case.

The different ANT scripts (i.e. build-XXX.xml files with their build-XXX.xml.launch configuration files), which 
allow executing the different steps of the use case, are stored in the root of the project.


---------------------------------------------------------------------
The use case has to be performed by executing the following actions:
---------------------------------------------------------------------

The complete execution of the use case requires the "ATL" perspective and the "AM3 Resource Navigator" view 
to be opened. The "AM3 Resource Navigator" view should be used instead of the standard "Navigator" view.

	1) 	Right-click on the "build-Discovery-Bugzilla.xml" file and "Run As" -> "Ant Build"
	
	2) 	Right-click on the "build-Understanding-Metrics.xml" file and "Run As" -> "Ant Build"
		 
	3) 	Right-click on the "build-Understanding-VisualizationsOfMetrics.xml" file and "Run As" -> "Ant Build"
							
IMPORTANT NOTE: It is possible to change the metrics which are generated by only modifying the 
				"Transformations/Bugzilla2Metrics.atl" ATL transformation...
				