<!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 Report Conversion Ant Task
    </title>
    <script language="JavaScript" src=
    "PLUGINS_ROOT/org.eclipse.help/livehelp.js" type=
    "text/javascript">

</script>
  </head>
  <body>
    <h1>
      API Use Migration Report Conversion Ant Task
    </h1>
    <h2>
      Purpose
    </h2>

    <p>
      This task converts the XML report created by the
      <code>apitooling.apimigration</code> Ant task into HTML
      files.
    </p>
    <h2>
      Usage
    </h2>
    <h3>
      Description
    </h3>

    <p>
      The name of the Ant task is:
      <code>apitooling.apimigration_reportconversion</code>. To be
      used, the jar file <code>apitooling-ant.jar</code> has to be
      on the Ant classpath.
    </p>
    <div class="c4">
      <pre class="c3">
<b><span class="c2">&lt;apitooling.apimigration_reportconversion
	xmlfiles=<span class="c1">"..."</span>
	htmlfiles=<span class="c1">"..."</span>
	xsltfile=<span class="c1">"..."</span>
	filterpatterns=<span class="c1">"..."</span>
	tofilterpatterns=<span class="c1">"..."</span>
	debug=<span class="c1">"..."</span>
 /&gt;</span></b>
</pre>
    </div>
    <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">
          xmlfiles
        </td>
        <td valign="top">
          This attribute specifies the location of the xml files to
          convert.<br />
          <br />

          The location is specified using an absolute path.
        </td>
        <td align="center" valign="top">
          Yes
        </td>
      </tr>
      <tr>
        <td valign="top">
          htmlfiles
        </td>

        <td valign="top">
          This attribute specifies the location of the html files
          to generate.<br />
          <br />
          The location is specified using an absolute path.
        </td>
        <td align="center" valign="top">
          Yes
        </td>
      </tr>

      <tr>
        <td valign="top">
          xsltfile
        </td>
        <td valign="top">
          This attribute specifies the location of an XSLT file to
          be used to generate the reference details pages in a
          desired ordering.<br />
          <br />
          A default XSLT file is available in the
          <code>apitooling-ant.jar</code> JAR file.<br />

          <br />
          The location is specified using an absolute path.
        </td>
        <td align="center" valign="top">
          No
        </td>
      </tr>
      <tr>
        <td valign="top">
          filterpatterns
        </td>

        <td valign="top">
          This attribute specifies a comma separated listing of
          regular expression patterns used to prune references
          <em>from</em> matching name patterns from the final
          report.<br />
          <br />
          The patterns 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">
          tofilterpatterns
        </td>
        <td valign="top">
          This attribute specifies a comma separated listing of
          regular expression patterns used to prune references
          <em>to</em> matching name patterns from the final
          report.<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">
          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_reportconversion
  xmlfiles=<span class="c1">"/eclipse/apimigration-both/XML"</span>
  htmlfiles=<span class=
"c1">"/eclipse/apimigration-both/HTML"</span>
  xsltfile=<span class="c1">"/eclipse/references.xsl"</span>
  debug=<span class="c1">"true"</span>

 /&gt;</span></b>
</pre>
    <p>
      This will run the task creating <code>*.html</code> files
      inside the folder
      <code>/eclipse/apimigration-both/HTML</code> corresponding to
      the folder structure of the XML file location
    </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="analysis-ant-task.htm">Analysis Ant Task</a><br />
      <a href="filegeneration-ant-task.htm">File Generation Ant
      Task</a><br />

      <a href="apiuse-ant-task.htm">API Use Ant Task</a><br />
      <a href="apiuse-reportconversion-ant-task.htm">API Use Report
      Conversion Ant Task</a><br />
      <a href="apimigration-ant-task.htm">API Use Migration Ant
      Task</a><br />
      <a href="apifreeze-ant-task.htm">API Freeze 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="analysis-reportconversion-ant-task.htm">Analysis
      Report Conversion Ant Task</a>
    </p>
  </body>
</html>
