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 2aa93fbf116ee06ce92f704f1fd4da5547ab1a4f..a9c40735bc43bf3b44ae1aa9af162f53f3789759 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 @@ bin @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 8c26a0452d629389825724f7345c7271bd72748e..968b426aa7e0fb6c5c99ded60cc556770139145c 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 @@ public class MethodRef extends NamedRef { 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 d502b7d42c12f532528c242f648445b259a5a389..048e5fd40057ed3dfb37e015002f433093bebd00 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 @@ public class NamedRef extends Ref { 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("<"); + if (index != -1) + { + StringBuffer sb = new StringBuffer(s); + while (index != -1) + { + sb.delete(index, index + 4); + sb.insert(index, '<'); + index = sb.toString().indexOf("<"); + } + 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 5d34629cb41afc78ff228a5dd6b244ced82d40ed..d65a1de38ebbe05280f8bd25e5fae7c94431bb72 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 @@ package org.eclipse.wtp.releng.tools.component.adopters; 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 @@ public class References 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 6657afc7cc3545e8d6a134de8dc57140c1f40bad..b0a4b41be3edd824da29a82d1d18aca4baa0fd2f 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 @@ public class SimpleClass2Reference implements IPlatformRunnable, IClassVisitor try { save(); - if (html != null) - genHTML(); } catch (IOException e) { @@ -200,17 +198,19 @@ public class SimpleClass2Reference implements IPlatformRunnable, IClassVisitor 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 @@ public class SimpleClass2Reference implements IPlatformRunnable, IClassVisitor { 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 @@ public class SimpleClass2Reference implements IPlatformRunnable, IClassVisitor 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 7bd4fd39a4caf5bcbbd62ad29ae70f060664dd55..54d87e770993c3f0c0371efdb71b0ae5aad71e03 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 @@ import javax.xml.transform.stream.StreamSource; 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 @@ public class XSLUtil 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();