1402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll/******************************************************************************* 2402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * Copyright (c) 2009 IBM Corporation and others. 3402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * All rights reserved. This program and the accompanying materials 4402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * are made available under the terms of the Eclipse Public License v1.0 5402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * which accompanies this distribution, and is available at 6402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * http://www.eclipse.org/legal/epl-v10.html 7402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * 8402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * Contributors: 9402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * IBM Corporation - initial API and implementation 10402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *******************************************************************************/ 11402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollpackage org.eclipse.releng; 12402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 13402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.io.BufferedReader; 14402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.io.BufferedWriter; 15402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.io.FileReader; 16402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.io.FileWriter; 17402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.io.IOException; 18402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.util.ArrayList; 19402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.util.Iterator; 20402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 21402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport org.apache.tools.ant.BuildException; 22402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport org.apache.tools.ant.Task; 23402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 24402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollpublic class GenerateExcludeListTask extends Task { 25402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 26402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll private ArrayList a = new ArrayList(); 27402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll private String mapFile; 28402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll private String outputFile; 29402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 30402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll public GenerateExcludeListTask() { 31402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll super(); 32402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 33402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 34402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll public static void main(String[] args) { 35402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll GenerateExcludeListTask parser = new GenerateExcludeListTask(); 36402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll parser.setMapFile("c:\\temp\\orbit.map"); 37402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll parser.setOutputFile("c:\\temp\\orbit.map.new"); 38402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll parser.execute(); 39402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 40402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 41402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll public String getOutputFile() { 42402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll return outputFile; 43402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 44402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 45402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll public void setOutputFile(String outputFile) { 46402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll this.outputFile = outputFile; 47402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 48402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 49402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll public String getMapFile() { 50402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll return mapFile; 51402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 52402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 53402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll public void setMapFile(String mapFile) { 54402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll this.mapFile = mapFile; 55402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 56402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 57402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll public void execute() throws BuildException { 58402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll readMap(); 59402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll writeProp(); 60402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 61402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 62402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll // for old map file format // 63402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 64402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll /* private void readMap() { 65402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll try { 66402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll BufferedReader r = new BufferedReader(new FileReader(mapFile)); 67402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll String line; 68402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll while ((line = r.readLine()) != null) { 69402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll int start = line.lastIndexOf('/'); 70402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll int lastcomma = line.lastIndexOf(','); 71402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll int end = line.length(); 72402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if (lastcomma > start) { 73402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll end = lastcomma; 74402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 75402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll int lastzip = line.lastIndexOf(".zip"); 76402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if (lastzip > start) { 77402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll String rstring = line.substring(0, lastzip); 78402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll line = rstring + ".jar"; 79402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 80402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if ((start < end) && (start > 0)) { 81402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll String substr = line.substring(start + 1, end); 82402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll a.add(substr); 83402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 84402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 85402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll r.close(); 86402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } catch (IOException e) { 87402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll e.printStackTrace(); 88402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 89402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } */ 90402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 91402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll private void readMap() { 92402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll try { 93402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll BufferedReader r = new BufferedReader(new FileReader(mapFile)); 94402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll String line; 95402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll while ((line = r.readLine()) != null) { 96402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll int start = line.indexOf("plugin@") + 7; 97402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll int end = line.indexOf(","); 98402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll String plugin = ""; 99402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if ((start > 0) && (end > 0)) { 100402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll plugin = line.substring(start, end); 101402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 102402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll String version = ""; 103402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll int startv = line.indexOf("version=") + 8; 104402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll int endv = line.indexOf(",", startv); 105402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if ((startv > 0) && (endv > 0)) { 106402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll version = line.substring(startv, endv); 107402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 108402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if ((version != "") && (plugin != "")) { 109402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll String l = plugin + "_" + version + ".jar"; 110402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll a.add(l); 111402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 112402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 113402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll r.close(); 114402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } catch (IOException e) { 115402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll e.printStackTrace(); 116402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 117402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 118402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 119402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll private void writeProp() { 120402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 121402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll try { 122402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll BufferedWriter out = new BufferedWriter(new FileWriter(outputFile)); 123402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll for (Iterator iterator = a.iterator(); iterator.hasNext();) { 124402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll String s = iterator.next().toString(); 125402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if (iterator.hasNext()) { 126402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll out.write("plugins/" + s + ","); 127402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } else { 128402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll out.write("plugins/" + s); 129402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 130402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 131402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll out.close(); 132402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } catch (IOException e) { 133402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll e.printStackTrace(); 134402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 135402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 136402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 137402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll} 138