Constructors are not recorded in the adopter usage reports
diff --git a/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/.cvsignore b/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/.cvsignore
index 2aa93fb..a9c4073 100644
--- a/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/.cvsignore
+++ b/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/.cvsignore
@@ -2,3 +2,4 @@
 @dot
 build.xml
 org.eclipse.wtp.releng.tools.component.core_1.0.0.jar
+javaCompiler...args
\ No newline at end of file
diff --git a/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/adopters/MethodRef.java b/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/adopters/MethodRef.java
index 8c26a04..968b426 100644
--- a/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/adopters/MethodRef.java
+++ b/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/adopters/MethodRef.java
@@ -17,7 +17,7 @@
   {
     StringBuffer sb = new StringBuffer();
     sb.append("<method name=\"");
-    sb.append(getName());
+    sb.append(encode(getName()));
     sb.append("\" desc=\"");
     sb.append(getDescriptor());
     sb.append("\" ref=\"");
diff --git a/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/adopters/NamedRef.java b/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/adopters/NamedRef.java
index d502b7d..048e5fd 100644
--- a/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/adopters/NamedRef.java
+++ b/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/adopters/NamedRef.java
@@ -35,4 +35,40 @@
   {
     this.name = name;
   }
+
+  protected String encode(String s)
+  {
+    int index = s.indexOf('<');
+    if (index != -1)
+    {
+      StringBuffer sb = new StringBuffer(s);
+      while (index != -1)
+      {
+        sb.deleteCharAt(index);
+        sb.insert(index, new char[] {'&', 'l', 't', ';'}, 0, 4);
+        index = sb.toString().indexOf('<');
+      }
+      return sb.toString();
+    }
+    else
+      return s;
+  }
+
+  protected String decode(String s)
+  {
+    int index = s.indexOf("&lt;");
+    if (index != -1)
+    {
+      StringBuffer sb = new StringBuffer(s);
+      while (index != -1)
+      {
+        sb.delete(index, index + 4);
+        sb.insert(index, '<');
+        index = sb.toString().indexOf("&lt;");
+      }
+      return sb.toString();
+    }
+    else
+      return s;
+  }
 }
\ No newline at end of file
diff --git a/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/adopters/References.java b/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/adopters/References.java
index 5d34629..d65a1de 100644
--- a/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/adopters/References.java
+++ b/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/adopters/References.java
@@ -13,6 +13,7 @@
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -169,6 +170,49 @@
     return sb.toString();
   }
 
+  public void write(OutputStream os) throws IOException
+  {
+    try
+    {
+      os.write("<references name=\"".getBytes());
+      String s = getName();
+      if (s != null)
+        os.write(s.getBytes());
+      os.write("\" contactInfo=\"".getBytes());
+      s = getContactInfo();
+      if (s != null)
+        os.write(s.getBytes());
+      os.write("\" refBuildId=\"".getBytes());
+      s = getRefBuildId();
+      if (s != null)
+        os.write(s.getBytes());
+      os.write("\" includes=\"".getBytes());
+      s = getIncludes();
+      if (s != null)
+        os.write(s.getBytes());
+      os.write("\" excludes=\"".getBytes());
+      s = getExcludes();
+      if (s != null)
+        os.write(s.getBytes());
+      os.write("\" includePlugins=\"".getBytes());
+      s = getIncludePlugins();
+      if (s != null)
+        os.write(s.getBytes());
+      os.write("\" excludePlugins=\"".getBytes());
+      s = getExcludePlugins();
+      if (s != null)
+        os.write(s.getBytes());
+      os.write("\">".getBytes());
+      for (Iterator it = getPluginRefs().iterator(); it.hasNext();)
+        os.write(it.next().toString().getBytes());
+      os.write("</references>".getBytes());
+    }
+    finally
+    {
+      os.close();
+    }
+  }
+
   private class ReferencesHandler extends DefaultHandler
   {
     private PluginRef pluginRef;
diff --git a/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/adopters/SimpleClass2Reference.java b/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/adopters/SimpleClass2Reference.java
index 6657afc..b0a4b41 100644
--- a/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/adopters/SimpleClass2Reference.java
+++ b/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/adopters/SimpleClass2Reference.java
@@ -186,8 +186,6 @@
     try
     {
       save();
-      if (html != null)
-        genHTML();
     }
     catch (IOException e)
     {
@@ -200,17 +198,19 @@
     File file = new File(output);
     file.getParentFile().mkdirs();
     FileOutputStream fos = new FileOutputStream(file);
-    fos.write(refs.toString().getBytes());
+    refs.write(fos);
     fos.close();
+    if (html != null)
+      genHTML(file);
   }
 
-  private void genHTML()
+  private void genHTML(File f)
   {
     try
     {
       int i = html.replace('\\', '/').lastIndexOf("/");
       String htmlDir = i != -1 ? html.substring(0, i + 1) : html;
-      XSLUtil.transform(Platform.getBundle("org.eclipse.wtp.releng.tools.component.core").getResource("org/eclipse/wtp/releng/tools/component/xsl/api-ref-compatibility.xsl").openStream(), new ByteArrayInputStream(refs.toString().getBytes()), new FileOutputStream(html), htmlDir);
+      XSLUtil.transform(Platform.getBundle("org.eclipse.wtp.releng.tools.component.core").getResource("org/eclipse/wtp/releng/tools/component/xsl/api-ref-compatibility.xsl").openStream(), f, new FileOutputStream(html), htmlDir);
     }
     catch (Throwable e)
     {
@@ -266,16 +266,18 @@
       {
         String methodName = methodRef.getMethodName();
         String methodDesc = methodRef.getMethodDescriptor();
+        ClassRef classRef = getClassRef(refClassName);
         if (methodRef.isConstructor())
         {
           // use: instantiate
-          getClassRef(refClassName).incInstantiateCount();
+          classRef.incInstantiateCount();
         }
         else
         {
           // use: reference
-          getMethodRef(getClassRef(refClassName), methodName, methodDesc).incRefCount();
+          classRef.incRefCount();
         }
+        getMethodRef(classRef, methodName, methodDesc).incRefCount();
       }
     }
     methodRefs = null;
@@ -732,6 +734,6 @@
     System.out.println("\t-excludes\t<excludes>\tspace seperated packages to exclude");
     System.out.println("\t-includePlugins\t<includePlugins>\tspace seperated plugins to include");
     System.out.println("\t-excludePlugins\t<excludePlugins>\tspace seperated plugins to exclude");
-    System.out.println("\t-genHTML\t\t\t\tgenerate HTML output");
+    System.out.println("\t-html\t\t\t\t<html>\toutput HTML file");
   }
 }
\ No newline at end of file
diff --git a/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/xsl/XSLUtil.java b/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/xsl/XSLUtil.java
index 7bd4fd3..54d87e7 100644
--- a/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/xsl/XSLUtil.java
+++ b/archive/releng.builder/tools/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/xsl/XSLUtil.java
@@ -11,6 +11,8 @@
 
 package org.eclipse.wtp.releng.tools.component.xsl;
 
+import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -23,6 +25,11 @@
 
 public class XSLUtil
 {
+  public static void transform(InputStream xsl, File f, OutputStream os, String userDir) throws TransformerException, TransformerConfigurationException, IOException
+  {
+    transform(xsl, new FileInputStream(f), os, userDir);
+  }
+
   public static void transform(InputStream xsl, InputStream data, OutputStream os, String userDir) throws TransformerException, TransformerConfigurationException, IOException
   {
     String user_dir = "user.dir";
@@ -32,6 +39,11 @@
     System.setProperty(user_dir, currUserDir);
   }
 
+  public static void transform(InputStream xsl, File f, OutputStream os) throws TransformerException, TransformerConfigurationException, IOException
+  {
+    transform(xsl, new FileInputStream(f), os);
+  }
+
   public static void transform(InputStream xsl, InputStream data, OutputStream os) throws TransformerException, TransformerConfigurationException, IOException
   {
     TransformerFactory factory = TransformerFactory.newInstance();