Home | History | Annotate | Download | only in releng
      1 /*******************************************************************************
      2  * Copyright (c) 2009 IBM Corporation and others.
      3  * All rights reserved. This program and the accompanying materials
      4  * are made available under the terms of the Eclipse Public License v1.0
      5  * which accompanies this distribution, and is available at
      6  * http://www.eclipse.org/legal/epl-v10.html
      7  *
      8  * Contributors:
      9  *     IBM Corporation - initial API and implementation
     10  *******************************************************************************/
     11 package org.eclipse.releng;
     12 
     13 import java.io.BufferedReader;
     14 import java.io.BufferedWriter;
     15 import java.io.FileReader;
     16 import java.io.FileWriter;
     17 import java.io.IOException;
     18 import java.util.ArrayList;
     19 import java.util.Iterator;
     20 
     21 import org.apache.tools.ant.BuildException;
     22 import org.apache.tools.ant.Task;
     23 
     24 public class GenerateExcludeListTask extends Task {
     25 
     26 	private ArrayList a = new ArrayList();
     27 	private String mapFile;
     28 	private String outputFile;
     29 
     30 	public GenerateExcludeListTask() {
     31 		super();
     32 	}
     33 
     34 	public static void main(String[] args) {
     35 		GenerateExcludeListTask parser = new GenerateExcludeListTask();
     36 		parser.setMapFile("c:\\temp\\orbit.map");
     37 		parser.setOutputFile("c:\\temp\\orbit.map.new");
     38 		parser.execute();
     39 	}
     40 
     41 	public String getOutputFile() {
     42 		return outputFile;
     43 	}
     44 
     45 	public void setOutputFile(String outputFile) {
     46 		this.outputFile = outputFile;
     47 	}
     48 
     49 	public String getMapFile() {
     50 		return mapFile;
     51 	}
     52 
     53 	public void setMapFile(String mapFile) {
     54 		this.mapFile = mapFile;
     55 	}
     56 
     57 	public void execute() throws BuildException {
     58 		readMap();
     59 		writeProp();
     60 	}
     61 
     62 	// for old map file format //
     63 
     64 	/* private void readMap() {
     65 		try {
     66 			BufferedReader r = new BufferedReader(new FileReader(mapFile));
     67 			String line;
     68 			while ((line = r.readLine()) != null) {
     69 				int start = line.lastIndexOf('/');
     70 				int lastcomma = line.lastIndexOf(',');
     71 				int end = line.length();
     72 				if (lastcomma > start) {
     73 					end = lastcomma;
     74 				}
     75 				int lastzip = line.lastIndexOf(".zip");
     76 				if (lastzip > start) {
     77 					String rstring = line.substring(0, lastzip);
     78 					line = rstring + ".jar";
     79 				}
     80 				if ((start < end) && (start > 0)) {
     81 					String substr = line.substring(start + 1, end);
     82 					a.add(substr);
     83 				}
     84 			}
     85 			r.close();
     86 		} catch (IOException e) {
     87 			e.printStackTrace();
     88 		}
     89 	} */
     90 
     91 	private void readMap() {
     92 		try {
     93 			BufferedReader r = new BufferedReader(new FileReader(mapFile));
     94 			String line;
     95 			while ((line = r.readLine()) != null) {
     96 				int start = line.indexOf("plugin@") + 7;
     97 				int end = line.indexOf(",");
     98 				String plugin = "";
     99 				if ((start > 0) && (end > 0)) {
    100 					plugin = line.substring(start, end);
    101 				}
    102 				String version = "";
    103 				int startv = line.indexOf("version=") + 8;
    104 				int endv = line.indexOf(",", startv);
    105 				if ((startv > 0) && (endv > 0)) {
    106 					version = line.substring(startv, endv);
    107 				}
    108 				if ((version != "") && (plugin != "")) {
    109 				String l = plugin + "_" + version + ".jar";
    110 				a.add(l);
    111 				}
    112 			}
    113 			r.close();
    114 		} catch (IOException e) {
    115 			e.printStackTrace();
    116 		}
    117 	}
    118 
    119 	private void writeProp() {
    120 
    121 		try {
    122 			BufferedWriter out = new BufferedWriter(new FileWriter(outputFile));
    123 			for (Iterator iterator = a.iterator(); iterator.hasNext();) {
    124 				String s = iterator.next().toString();
    125 				if (iterator.hasNext()) {
    126 					out.write("plugins/" + s + ",");
    127 				} else {
    128 					out.write("plugins/" + s);
    129 				}
    130 			}
    131 			out.close();
    132 		} catch (IOException e) {
    133 			e.printStackTrace();
    134 		}
    135 	}
    136 
    137 }
    138