1 package nbbuild.misc.bugcompare; 2 3 21 import java.util.*; 22 import java.net.*; 23 import java.io.*; 24 import org.xml.sax.*; 25 26 31 public class Compare_1 { 32 Map release32; 33 Map dev; 34 35 public Map fillTable(String name) { 36 Map map = new TreeMap(); 37 try { 38 ChangelogRecognizer.parse(new InputSource(name), new ChangelogHandlerImpl(map), new ChangelogParslet()); 39 } 40 catch (Exception exc) { 41 exc.printStackTrace(); 42 } 43 return map; 44 } 45 46 public List compare(Map source, Map dest) { 47 List result = new ArrayList(); 48 Iterator it = source.keySet().iterator(); 49 while (it.hasNext()) { 50 Integer key = (Integer ) it.next(); 51 if (!dest.containsKey(key)) { 52 result.add(key); 53 } 54 } 55 return result; 56 } 57 58 public void start() { 59 System.out.println("Filling release32"); 60 release32 = fillTable("d:\\petr\\bugs\\release32.xml"); 61 System.out.println("Filling dev"); 62 dev = fillTable("d:\\petr\\bugs\\dev.xml"); 63 System.out.println("Comparing"); 64 List notInDev = compare(release32, dev); 65 output("d:\\petr\\bugs\\bugs.html", notInDev); 66 } 67 68 public void output(String name, List list) { 69 try { 70 PrintWriter writer = new PrintWriter(new FileWriter(name)); 71 writer.println("<html>"); 72 writer.println("<body>"); 73 writer.println("Found "+list.size()+" differences"); 74 75 writer.println("<table border=\"1\" width=\"100%\">"); 76 77 Iterator it = list.iterator(); 78 while (it.hasNext()) { 79 Integer number = (Integer ) it.next(); 80 System.out.println("bug:"+number); 81 writer.println("<tr>"); 82 writer.println("<td width=\"10%\"><a HREF=\"http://www.netbeans.org/issues/show_bug.cgi?id="+number+"\">"+number+"</a></td>"); 83 writer.println("<td width=\"10%\">"+moduleName(number.intValue())+"</td>"); 84 writer.println("<td width=\"80%\">"+release32.get(number)+"</td>"); 85 writer.println("</tr>"); 86 } 87 writer.println("</table>"); 88 writer.println("</body>"); 89 writer.println("</html>"); 90 writer.close(); 91 } 92 catch (Exception exc) { 93 exc.printStackTrace(); 94 } 95 } 96 97 String moduleName(int bugnumber) throws Exception { 98 URLConnection con = new URL("http://www.netbeans.org/issues/show_bug.cgi?id="+bugnumber).openConnection(); 99 BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream())); 100 int i = 0; 101 for (;;) { 102 String line = reader.readLine(); 103 if (line == null) 104 break; 105 if (i == 0) { 106 if (line.indexOf("<TD ALIGN=RIGHT><B>Product:</B></TD>") > 0) { 107 i = 1; 108 } 109 } 110 else if (i == 1) { 111 int index = line.indexOf("<OPTION SELECTED VALUE=\""); 112 if (index > 0) { 113 String module = line.substring(index + 24); 114 module = module.substring(0, module.indexOf('\"')); 115 reader.close(); 116 return module; 117 } 118 } 119 } 120 reader.close(); 121 return ""; 122 } 123 124 127 public static void main (String args[]) throws Exception { 128 new Compare().start(); 129 } 130 } 131 | Popular Tags |