<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta name="copyright" content="Copyright (c) IBM Corporation and others 2006, 2012. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel=File-List href="Version%20Compare%20Tool%20Manual_files/filelist.xml">
<link rel=Edit-Time-Data href="Version%20Compare%20Tool%20Manual_files/editdata.mso">
<title>Version Compare Tool</title>
</head>

<body>

<h1>Version Compare Tool</h1>

<p>The version compare tool is developed to verify Eclipse
feature versions and plug-in versions. The full name of this plug-in tool is 'org.eclipse.pde.tools.versioning'. </p>

<h2>Feature Version, Plug-in Version, and Java Class</h2>

<p>Figure 1 shows the hierarchy of feature, plug-in and Java
Class. From the hierarchy, it is easy to understand that updates on Java
classes will cause plug-in update; plug-in, feature updates will cause feature
updates. Therefore, if we want to verify if a feature is correct, we need to
verify versions of its included features and plug-ins; to verify the version of
a plug-in, we need to check updates on the Java classes it contains. </p>

<p></p>

<p>Anyone, who has some experience on Eclipse, must knows there
are a bunch of features and plug-ins under an Eclipse installation. Thus, it is
difficult to manually check whether the new versions of features and plug-ins
have been updated correctly. This tool will help people to verify the new
feature versions and plug-in versions.</p>

<p>
	<IMG SRC="Version Compare Tool Manual_files/image001.jpg">
</p>


<h2>How to use this tool?</h2>

<p>We provide two approaches to use this tool. It can be executed as an Eclipse plug-in which provides GUI to select input information:</p>


<p>
	<IMG SRC="Version Compare Tool Manual_files/image002.jpg">
</p>

<ul>
<li>In the <b>Feature Select Option</b> area, you need to select if the features you are going to compare are under the
<code>/features</code> directory under an Eclipse installation directory, or included in the Eclipse configuration file
(usually it is the <code>\configuration\org.eclipse.updateplatform.xml</code> file under an Eclipse installation directory).</li>

<li>In the <b>Plugin Compare Option</b> area, you can choose if you want to compare plug-ins as
objects. If you choose this option, all classes denoted by <b>Bundle-ClassPath</b> in a plug-in manifest file will be compared.</li>

<li>In the <b>Information Option</b> area, you can choose what kinds of messages you want to see in the compare result.</li>

<li>In the file selection area, you can choose:</p>
	<ul>
	<li><b>New</b>, directory or configuration file which includes new version of features</li>
	<li><b>Old</b>, directory or configuration file which includes old version of features</li>
	<li><b>Option File</b>, a property file which contains inclusion and exclusion information</li>
	<li><b>Output File</b>, a XML file to which the compare messages will be written</li>
	</ul>
</li>
<li>In the button bar,
	<ul>
	<li>Button <b>Verify</b> is pressed to do compare</li>
	<li>Button <b>Filter Result</b> is pressed to show interested messages; this function is combined with the selections in <b>Information Option</b> area</li>
	<li>Button <b>Close</b> is pressed to terminate the application</li>
	</ul>
</li>
</ul>
 
 <p>It can be executed in command line as an Eclipse application. The usage is:</p>
<p>java -cp startup.jar org.eclipse.core.launcher.Main -application org.eclipse.pde.tools.versioning.VersionVerifier -new [path] -old [path] -option [path] -output [path] [-pluginCompare] [-consoleOutput]</p>
<ul>
	<li>-new: path of new configuration file or features directory</p>
	<li>-old: path of old configuration file or features directory</p>
	<li>-option: path of compare option file (optional)</p>
	<li>-output: path of result XML file</p>
	<li>-pluginCompare: if need to compare plug-ins as objects (optional)</p>
	<li>-consoleOutput: print results to the system console (optional)</p>
</ul>

</body>
</html>
