1402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll/******************************************************************************* 2402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * Copyright (c) 2000, 2006 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 org.apache.tools.ant.Task; 14402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport org.apache.tools.ant.BuildException; 15402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.io.File; 16402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 17402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll/* 18402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * A class that strips version numbers off built plugin directory names. This 19402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * is helpful when prebuilt plugins are used in generating javadoc (on the 20402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * classpath). 21402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll */ 22402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 23402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollpublic class VersionNumberStripper extends Task { 24402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 25402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll //the directory containing the directories and files from which to remove version information 26402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll private String directory; 27402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 28402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll public VersionNumberStripper() { 29402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll super(); 30402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 31402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 32402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll public void setDirectory(String dir){directory=dir;} 33402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 34402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll public String getDirectory(){return directory;} 35402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 36402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll public void execute() throws BuildException { 37402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll setDirectory(directory); 38402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll stripVersions(); 39402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 40402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 41402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll public static void main(String[] args) { 42402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll new VersionNumberStripper().execute(); 43402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 44402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 45402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll private void stripVersions(){ 46402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll /* rename directories by removing anything from an underscore onward, 47402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * assuming that anything following the first 48402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * occurence of an underscore is a version number 49402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll */ 50402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 51402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll File file=new File(directory); 52402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 53402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll File [] files = file.listFiles(); 54402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 55402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll for (int i=0; i<files.length; i++){ 56402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll String absolutePath = files[i].getAbsolutePath(); 57402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll String path = absolutePath.substring(0, absolutePath.length() 58402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll - files[i].getName().length()); 59402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 60402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll int underScorePos = files[i].getName().indexOf("_"); 61402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll int jarExtPos = files[i].getName().indexOf(".jar"); 62402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if (underScorePos != -1) { 63402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll String targetPath; 64402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if (jarExtPos != -1) { 65402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll targetPath =path 66402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll + files[i].getName().substring(0, underScorePos) 67402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll + ".jar"; 68402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } else { 69402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll targetPath = path 70402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll + files[i].getName().substring(0, underScorePos); 71402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 72402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll files[i].renameTo(new File(targetPath)); 73402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 74402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 75402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 76402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll } 77402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll} 78402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 79