blob: 0b9d57a518292248be366f5139516e804ba373ff [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta name="copyright" content=
"Copyright (c) IBM Corporation and others 2009, 2011. 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=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link rel="stylesheet" href="../../../apache_style.css" type=
"text/css" />
<title>
API Use Migration Ant Task
</title>
<script language="JavaScript" src=
"PLUGINS_ROOT/org.eclipse.help/livehelp.js" type=
"text/javascript">
</script>
</head>
<body>
<h1>
API Use Migration Ant Task
</h1>
<h2>
Purpose
</h2>
<p>
This task takes a given API use scan and tries to re-resolve
it within a given candidate product release and reports any
unresolved references.
</p>
<h2>
Usage
</h2>
<h3>
Description
</h3>
<p>
The name of the Ant task is:
<code>apitooling.apimigration</code>. To be used, the jar
file <code>apitooling-ant.jar</code> has to be on the Ant
classpath.
</p>
<pre class="c3">
<b><span class="c2">&lt;apitooling.apimigration
candidate=<span class="c1">"..."</span>
usescan=<span class="c1">"..."</span>
scopepattern=<span class="c1">"..."</span>
referencepattern=<span class="c1">"..."</span>
excludelist=<span class="c1">"..."</span>
includelist=<span class="c1">"..."</span>
report=<span class="c1">"..."</span>
debug=<span class="c1">"..."</span>
/&gt;</span></b>
</pre>
<h3>
Parameters
</h3>
<table border="1" cellpadding="2" cellspacing="0">
<tr>
<td valign="top">
<b>Attribute</b>
</td>
<td valign="top">
<b>Description</b>
</td>
<td align="center" valign="top">
<b>Required</b>
</td>
</tr>
<tr>
<td valign="top">
candidate
</td>
<td valign="top">
This attribute specifies the product you want to use as
the migration candidate.
<p>
It can be a .zip, .jar, .tgz, .tar.gz file, or a
directory that corresponds to the Eclipse installation
folder. This is the directory is which you can find the
Eclipse executable.
</p>
</td>
<td align="center" valign="top">
Yes
</td>
</tr>
<tr>
<td valign="top">
usescan
</td>
<td valign="top">
This attribute specifies the product use scan you want to
compare to the migration candidate.<br />
<br />
The usescan is specified using an absolute path to the
root of the use scan.
</td>
<td align="center" valign="top">
Yes
</td>
</tr>
<tr>
<td valign="top">
scopepattern
</td>
<td valign="top">
This attribute specifies the regular expression pattern
used to build the scope of elements to search for
references from in the product location.<br />
<br />
The pattern must be a well-formatted regular expression
as defined <a href=
"https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Pattern.html">
here</a>.
</td>
<td align="center" valign="top">
No
</td>
</tr>
<tr>
<td valign="top">
referencepattern
</td>
<td valign="top">
Set the regular expression pattern used to build the
scope of elements to search for references to in the
product location.<br />
<br />
The pattern must be a well-formatted regular expression
as defined <a href=
"https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Pattern.html">
here</a>.
</td>
<td align="center" valign="top">
No
</td>
</tr>
<tr>
<td valign="top">
excludelist
</td>
<td valign="top">
Set the exclude list location.<br />
<br />
The exclude list location specifies a text file listing
bundles to be excluded from the analysis. By default all
bundles in the profile are analyzed. The include and
exclude list attributes can be used to selectively
include and exclude bundles. The include list seeds the
set of bundles to be analyzed (when omitted, all bundles
are included), and the exclude list is then applied. Each
line of the file specifies one of:
<ul>
<li>a specific bundle name
</li>
<li>a regular expression to match against bundle names
(lines being with "R:")
</li>
<li>a comment (lines being with '#')
</li>
</ul><br />
The location is specified using an absolute path.<br />
Following is an example exclude list:
<pre>
# EXCLUDED BUNDLES
R:org\.eclipse\..*\.doc\..*
...
</pre>
</td>
<td align="center" valign="top">
No
</td>
</tr>
<tr>
<td valign="top">
includelist
</td>
<td valign="top">
Set the include list location.<br />
<br />
The include list location specifies a text file listing
bundles to be included in the analysis. By default all
bundles in the profile are analyzed. The include and
exclude list attributes can be used to selectively
include and exclude bundles. The include list seeds the
set of bundles to be analyzed (when omitted, all bundles
are included), and the exclude list is then applied. Each
line of the file specifies one of:
<ul>
<li>a specific bundle name
</li>
<li>a regular expression to match against bundle names
(lines being with "R:")
</li>
<li>a comment (lines being with '#')
</li>
</ul><br />
The location is specified using an absolute path.<br />
Following is an example include list:
<pre>
# INCLUDED BUNDLES
R:org\.eclipse\..*
...
</pre>
</td>
<td align="center" valign="top">
No
</td>
</tr>
<tr>
<td valign="top">
report
</td>
<td valign="top">
Set the output location where the reports will be
generated.<br />
<br />
Once the task is completed, reports are available in this
directory using a hierarchical structure. A sub-folder is
created for each component that has another bundle that
references it. Each sub-folder contains a file called
"[bundlename].xml". Within this folder is another
sub-folder (named "[referencing bundle name].xml") for
each bundle that references the bundle of the containing
folder. Inside the referencing bundle folder is one of
three sub-folders (API, PRIVATE or OTHER) which contain
type, method or field references of that kind.<br />
<br />
Two other special files are written into the report
directory, which are "not_searched.xml" and
"no_apidescription.xml" and they contain information
about bundles from the baseline that were not search for
usage information and those that did not have an
.api_description files in them, respectively.<br />
<br />
The location is specified using an absolute path.<br />
<br />
For example:
<pre>
root
|
+-- "not_searched.xml"
+-- "no_apidescription.xml"
+-- bundle name with usage
|
+--referencing bundle name
|
+-- [API or PRIVATE or OTHER]
|
+--[type_ or method_ or field_]references.xml
</pre>
</td>
<td align="center" valign="top">
Yes
</td>
</tr>
<tr>
<td valign="top">
debug
</td>
<td valign="top">
Set the debug value.<br />
<br />
The possible values are: <code>true</code>,
<code>false</code><br />
Default is <code>false</code>.
</td>
<td align="center" valign="top">
No
</td>
</tr>
</table>
<h3>
Examples
</h3>
<pre>
<b><span class="c2">&lt;apitooling.apimigration
candidate=<span class="c1">"/eclipse/sdk3.5"</span>
usescan=<span class="c1">"/eclipse/scans/sdk3.4"</span>
scopepattern=<span class="c1">".*"</span>
referencepattern=<span class="c1">"org\.eclipse.*"</span>
excludelist=<span class=
"c1">"D:\exclude_list_external.txt"</span>
report=<span class="c1">"/eclipse/apimigration/xml"</span>
debug=<span class="c1">"true"</span>
/&gt;</span></b>
</pre>
<p>
This will run the task creating <code>*.xml</code> files
inside the folder <code>/eclipse/apimigration/xml</code>. The
task will re-resolve all references in the
<code>usescan</code> location - defined by the regular
expression <code>.*</code> - against the candidate product
whose identifier begins with org.eclipse (defined by the
<code>org\.eclipse.*</code> regular expression). It will use
the exclude list file located in
<code>D:\exclude_list_external.txt</code> to reduce the
number of problems to report.
</p>
<p>
If debug is enabled, some debug tracing will show up in the
Ant console.
</p>
<p>
<img src="../../../images/ngrelr.png" alt="Related reference"
border="0" />
</p>
<p>
<a href="apifreeze-ant-task.htm">API Freeze Ant
Task</a><br />
<a href="filegeneration-ant-task.htm">File Generation Ant
Task</a><br />
<a href="analysis-reportconversion-ant-task.htm">Analysis
Report Conversion Ant Task</a><br />
<a href="apifreeze-reportconversion-ant-task.htm">API Freeze
Report Conversion Ant Task</a><br />
<a href="deprecation-ant-task.htm">API Deprecation Ant
Task</a><br />
<a href="deprecation-reportconversion-ant-task.htm">API
Deprecation Report Conversion Ant Task</a><br />
<a href="apiuse-reportconversion-ant-task.htm">API Use Report
Conversion Ant Task</a><br />
<a href="apimigration-reportconversion-ant-task.htm">API Use
Migration Report Conversion Ant Task</a>
</p>
</body>
</html>