ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sbaill...@apache.org
Subject cvs commit: jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka Coverage.java CovMerge.java CovReport.java Filters.java ReportFilters.java Socket.java StringUtil.java Triggers.java XMLReport.java
Date Sun, 18 Nov 2001 11:41:06 GMT
sbailliez    01/11/18 03:41:06

  Modified:    src/main/org/apache/tools/ant/taskdefs/optional/sitraka
                        Coverage.java CovMerge.java CovReport.java
                        Filters.java ReportFilters.java Socket.java
                        StringUtil.java Triggers.java XMLReport.java
  Log:
  Removing tabs and cleaning up imports ( the layout feature of IntelliJ is great! )
  
  Revision  Changes    Path
  1.3       +333 -329  jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/Coverage.java
  
  Index: Coverage.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/Coverage.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Coverage.java	2001/10/28 21:30:23	1.2
  +++ Coverage.java	2001/11/18 11:41:06	1.3
  @@ -54,25 +54,25 @@
   
   package org.apache.tools.ant.taskdefs.optional.sitraka;
   
  -import java.io.PrintWriter;
  -import java.io.StringWriter;
  -import java.io.FileWriter;
   import java.io.File;
  -import java.io.OutputStream;
  +import java.io.FileWriter;
   import java.io.IOException;
  -import java.util.Vector;
  +import java.io.OutputStream;
  +import java.io.PrintWriter;
  +import java.io.StringWriter;
   import java.util.Random;
  +import java.util.Vector;
   
  +import org.apache.tools.ant.BuildException;
   import org.apache.tools.ant.Project;
   import org.apache.tools.ant.Task;
  -import org.apache.tools.ant.BuildException;
  -import org.apache.tools.ant.types.CommandlineJava;
  +import org.apache.tools.ant.taskdefs.Execute;
  +import org.apache.tools.ant.taskdefs.LogStreamHandler;
   import org.apache.tools.ant.types.Commandline;
  +import org.apache.tools.ant.types.CommandlineJava;
   import org.apache.tools.ant.types.EnumeratedAttribute;
  -import org.apache.tools.ant.types.Path;
   import org.apache.tools.ant.types.FileSet;
  -import org.apache.tools.ant.taskdefs.Execute;
  -import org.apache.tools.ant.taskdefs.LogStreamHandler;
  +import org.apache.tools.ant.types.Path;
   
   /**
    * Convenient task to run Sitraka JProbe Coverage from Ant.
  @@ -86,376 +86,380 @@
    */
   public class Coverage extends Task {
   
  -	protected File home;
  +    protected File home;
   
  -	protected Commandline cmdl = new Commandline();
  +    protected Commandline cmdl = new Commandline();
   
  -	protected CommandlineJava cmdlJava = new CommandlineJava();
  +    protected CommandlineJava cmdlJava = new CommandlineJava();
   
  -	protected String function = "coverage";
  +    protected String function = "coverage";
   
  -	protected String seedName;
  +    protected String seedName;
   
  -	protected File inputFile;
  +    protected File inputFile;
   
  -	protected File javaExe;
  +    protected File javaExe;
   
  -	protected String vm;
  +    protected String vm;
   
  -	protected boolean applet = false;
  +    protected boolean applet = false;
   
  -	/** this is a somewhat annoying thing, set it to never */
  -	protected String exitPrompt = "never";
  +    /** this is a somewhat annoying thing, set it to never */
  +    protected String exitPrompt = "never";
   
  -	protected Filters filters = new Filters();
  +    protected Filters filters = new Filters();
   
  -	protected Triggers triggers;
  +    protected Triggers triggers;
   
  -	protected String finalSnapshot = "coverage";
  +    protected String finalSnapshot = "coverage";
   
  -	protected String recordFromStart = "coverage";
  +    protected String recordFromStart = "coverage";
   
  -	protected File snapshotDir;
  +    protected File snapshotDir;
   
  -	protected File workingDir;
  +    protected File workingDir;
   
  -	protected boolean trackNatives = false;
  +    protected boolean trackNatives = false;
   
  -	protected Socket socket;
  +    protected Socket socket;
   
  -	protected int warnLevel = 0;
  +    protected int warnLevel = 0;
   
  -	protected Vector filesets = new Vector();
  +    protected Vector filesets = new Vector();
   
  -	//--------- setters used via reflection --
  +    //--------- setters used via reflection --
   
  -	/** set the coverage home directory where are libraries, jars and jplauncher */
  -	public void setHome(File value){
  -		home = value;
  -	}
  +    /** set the coverage home directory where are libraries, jars and jplauncher */
  +    public void setHome(File value) {
  +        home = value;
  +    }
   
  -	/** seed name for snapshot file. can be null, default to snap */
  -	public void setSeedname(String value){
  -		seedName = value;
  -	}
  +    /** seed name for snapshot file. can be null, default to snap */
  +    public void setSeedname(String value) {
  +        seedName = value;
  +    }
   
  -	public void setInputfile(File value){
  -		inputFile = value;
  -	}
  +    public void setInputfile(File value) {
  +        inputFile = value;
  +    }
   
  -	public void setJavaexe(File value){
  -		javaExe = value;
  -	}
  +    public void setJavaexe(File value) {
  +        javaExe = value;
  +    }
   
  -	public static class Javavm extends EnumeratedAttribute {
  -		public String[] getValues(){
  -			return new String[]{"java2", "jdk118", "jdk117"};
  -		}
  -	}
  -	/** jdk117, jdk118 or java2, can be null, default to java2 */
  -	public void setVm(Javavm value) {
  -		vm = value.getValue();
  -	}
  +    public static class Javavm extends EnumeratedAttribute {
  +        public String[] getValues() {
  +            return new String[]{"java2", "jdk118", "jdk117"};
  +        }
  +    }
   
  -	/** default to false unless file is htm or html */
  -	public void setApplet(boolean value){
  -		applet = value;
  -	}
  +    /** jdk117, jdk118 or java2, can be null, default to java2 */
  +    public void setVm(Javavm value) {
  +        vm = value.getValue();
  +    }
   
  -	/** always, error, never */
  -	public void setExitprompt(String value){
  -		exitPrompt = value;
  -	}
  +    /** default to false unless file is htm or html */
  +    public void setApplet(boolean value) {
  +        applet = value;
  +    }
   
  -	public Filters createFilters(){
  -		return filters;
  -	}
  +    /** always, error, never */
  +    public void setExitprompt(String value) {
  +        exitPrompt = value;
  +    }
   
  -	public Triggers createTriggers(){
  -		if (triggers == null) {
  -			triggers = new Triggers();
  -		}
  -		return triggers;
  -	}
  +    public Filters createFilters() {
  +        return filters;
  +    }
   
  -	public Socket createSocket(){
  -		if (socket == null ) {
  -			socket = new Socket();
  -		}
  -		return socket;
  -	}
  +    public Triggers createTriggers() {
  +        if (triggers == null) {
  +            triggers = new Triggers();
  +        }
  +        return triggers;
  +    }
   
  -	public static class Finalsnapshot extends EnumeratedAttribute {
  -		public String[] getValues(){
  -			return new String[]{"coverage", "none", "all"};
  -		}
  -	}
  +    public Socket createSocket() {
  +        if (socket == null) {
  +            socket = new Socket();
  +        }
  +        return socket;
  +    }
   
  -	/** none, coverage, all. can be null, default to none */
  -	public void setFinalsnapshot(String value){
  -		finalSnapshot = value;
  -	}
  +    public static class Finalsnapshot extends EnumeratedAttribute {
  +        public String[] getValues() {
  +            return new String[]{"coverage", "none", "all"};
  +        }
  +    }
   
  -	public static class Recordfromstart extends EnumeratedAttribute {
  -		public String[] getValues(){
  -			return new String[]{"coverage", "none", "all"};
  -		}
  -	}
  -	/** all, coverage, none */
  -	public void setRecordfromstart(Recordfromstart value) {
  -		recordFromStart = value.getValue();
  -	}
  +    /** none, coverage, all. can be null, default to none */
  +    public void setFinalsnapshot(String value) {
  +        finalSnapshot = value;
  +    }
   
  -	public void setWarnlevel(Integer value){
  -		warnLevel = value.intValue();
  -	}
  +    public static class Recordfromstart extends EnumeratedAttribute {
  +        public String[] getValues() {
  +            return new String[]{"coverage", "none", "all"};
  +        }
  +    }
   
  -	public void setSnapshotdir(File value){
  -		snapshotDir = value;
  -	}
  +    /** all, coverage, none */
  +    public void setRecordfromstart(Recordfromstart value) {
  +        recordFromStart = value.getValue();
  +    }
   
  -	public void setWorkingdir(File value){
  -		workingDir = value;
  -	}
  +    public void setWarnlevel(Integer value) {
  +        warnLevel = value.intValue();
  +    }
   
  -	public void setTracknatives(boolean value){
  -		trackNatives = value;
  -	}
  +    public void setSnapshotdir(File value) {
  +        snapshotDir = value;
  +    }
   
  -	//
  +    public void setWorkingdir(File value) {
  +        workingDir = value;
  +    }
   
  -	/** the jvm arguments */
  +    public void setTracknatives(boolean value) {
  +        trackNatives = value;
  +    }
  +
  +    //
  +
  +    /** the jvm arguments */
       public Commandline.Argument createJvmarg() {
           return cmdlJava.createVmArgument();
       }
   
  -	/** the command arguments */
  +    /** the command arguments */
       public Commandline.Argument createArg() {
           return cmdlJava.createArgument();
       }
   
  -	/** classpath to run the files */
  +    /** classpath to run the files */
       public Path createClasspath() {
           return cmdlJava.createClasspath(project).createPath();
       }
  +
  +    /** classname to run as standalone or runner for filesets */
  +    public void setClassname(String value) {
  +        cmdlJava.setClassname(value);
  +    }
  +
  +    /** the classnames to execute */
  +    public void addFileset(FileSet fs) {
  +        filesets.addElement(fs);
  +    }
  +
  +
  +    //---------------- the tedious job begins here
  +
  +    public Coverage() {
  +    }
  +
  +    /** execute the jplauncher by providing a parameter file */
  +    public void execute() throws BuildException {
  +        File paramfile = null;
  +        // if an input file is used, all other options are ignored...
  +        if (inputFile == null) {
  +            checkOptions();
  +            paramfile = createParamFile();
  +        } else {
  +            paramfile = inputFile;
  +        }
  +        try {
  +            // we need to run Coverage from his directory due to dll/jar issues
  +            cmdl.setExecutable(new File(home, "jplauncher").getAbsolutePath());
  +            cmdl.createArgument().setValue("-jp_input=" + paramfile.getAbsolutePath());
  +
  +            // use the custom handler for stdin issues
  +            LogStreamHandler handler = new CoverageStreamHandler(this);
  +            Execute exec = new Execute(handler);
  +            log(cmdl.toString(), Project.MSG_VERBOSE);
  +            exec.setCommandline(cmdl.getCommandline());
  +            int exitValue = exec.execute();
  +            if (exitValue != 0) {
  +                throw new BuildException("JProbe Coverage failed (" + exitValue + ")");
  +            }
  +        } catch (IOException e) {
  +            throw new BuildException("Failed to execute JProbe Coverage.", e);
  +        } finally {
  +            //@todo should be removed once switched to JDK1.2
  +            if (inputFile == null && paramfile != null) {
  +                paramfile.delete();
  +            }
  +        }
  +    }
  +
  +    /** wheck what is necessary to check, Coverage will do the job for us */
  +    protected void checkOptions() throws BuildException {
  +        // check coverage home
  +        if (home == null || !home.isDirectory()) {
  +            throw new BuildException("Invalid home directory. Must point to JProbe home directory");
  +        }
  +        home = new File(home, "Coverage");
  +        File jar = new File(home, "coverage.jar");
  +        if (!jar.exists()) {
  +            throw new BuildException("Cannot find Coverage directory: " + home);
  +        }
  +
  +        // make sure snapshot dir exists and is resolved
  +        if (snapshotDir == null) {
  +            snapshotDir = new File(".");
  +        }
  +        snapshotDir = project.resolveFile(snapshotDir.getPath());
  +        if (!snapshotDir.isDirectory() || !snapshotDir.exists()) {
  +            throw new BuildException("Snapshot directory does not exists :" + snapshotDir);
  +        }
  +        if (workingDir == null) {
  +            workingDir = new File(".");
  +        }
  +        workingDir = project.resolveFile(workingDir.getPath());
  +
  +        // check for info, do your best to select the java executable.
  +        // JProbe 3.0 fails if there is no javaexe option. So
  +        if (javaExe == null && (vm == null || "java2".equals(vm))) {
  +            String version = System.getProperty("java.version");
  +            // make we are using 1.2+, if it is, then do your best to
  +            // get a javaexe
  +            if (!version.startsWith("1.1")) {
  +                if (vm == null) {
  +                    vm = "java2";
  +                }
  +                // if we are here obviously it is java2
  +                String home = System.getProperty("java.home");
  +                boolean isUnix = File.separatorChar == '/';
  +                javaExe = isUnix ? new File(home, "bin/java") : new File(home, "/bin/java.exe");
  +            }
  +        }
  +    }
   
  -	/** classname to run as standalone or runner for filesets */
  -	public void setClassname(String value){
  -		cmdlJava.setClassname(value);
  -	}
  -
  -	/** the classnames to execute */
  -	public void addFileset(FileSet fs){
  -		filesets.addElement(fs);
  -	}
  -
  -
  -	//---------------- the tedious job begins here
  -
  -	public Coverage(){
  -	}
  -
  -	/** execute the jplauncher by providing a parameter file */
  -	public void execute() throws BuildException {
  -		File paramfile = null;	
  -		// if an input file is used, all other options are ignored...	
  -		if (inputFile == null){
  -			checkOptions();
  -			paramfile = createParamFile();
  -		} else {
  -			paramfile = inputFile;
  -		}
  -		try {
  -			// we need to run Coverage from his directory due to dll/jar issues
  -			cmdl.setExecutable( new File(home, "jplauncher").getAbsolutePath() );
  -			cmdl.createArgument().setValue("-jp_input=" + paramfile.getAbsolutePath());
  -			
  -			// use the custom handler for stdin issues
  -			LogStreamHandler handler = new CoverageStreamHandler(this);
  -			Execute exec = new Execute( handler );
  -			log(cmdl.toString(), Project.MSG_VERBOSE);
  -			exec.setCommandline(cmdl.getCommandline());
  -			int exitValue = exec.execute();
  -			if (exitValue != 0) {
  -				throw new BuildException("JProbe Coverage failed (" + exitValue + ")");
  -			}
  -		} catch (IOException e){
  -			throw new BuildException("Failed to execute JProbe Coverage.", e);
  -		} finally {
  -			//@todo should be removed once switched to JDK1.2
  -			if (inputFile == null && paramfile != null){
  -				paramfile.delete();
  -			}
  -		}
  -	}
  -
  -	/** wheck what is necessary to check, Coverage will do the job for us */
  -	protected void checkOptions() throws BuildException {
  -		// check coverage home
  -		if (home == null || !home.isDirectory() ) {
  -			throw new BuildException("Invalid home directory. Must point to JProbe home directory");
  -		}
  -		home = new File(home,"Coverage");
  -		File jar = new File(home, "coverage.jar");
  -		if (!jar.exists()) {
  -			throw new BuildException("Cannot find Coverage directory: " + home);
  -		}
  -
  -		// make sure snapshot dir exists and is resolved
  -		if (snapshotDir == null) {
  -			snapshotDir = new File(".");
  -		}
  -		snapshotDir = project.resolveFile(snapshotDir.getPath());
  -		if (!snapshotDir.isDirectory() || !snapshotDir.exists()) {
  -			throw new BuildException("Snapshot directory does not exists :" + snapshotDir);
  -		}
  -		if (workingDir == null) {
  -			workingDir = new File(".");
  -		}
  -		workingDir = project.resolveFile(workingDir.getPath());
  -
  -		// check for info, do your best to select the java executable.
  -		// JProbe 3.0 fails if there is no javaexe option. So
  -		if (javaExe == null && ( vm == null || "java2".equals(vm) ) ) {
  -			String version = System.getProperty("java.version");
  -			// make we are using 1.2+, if it is, then do your best to
  -			// get a javaexe
  -			if ( !version.startsWith("1.1") ){
  -				if (vm == null){
  -					vm = "java2";
  -				}
  -				// if we are here obviously it is java2
  -				String home = System.getProperty("java.home");
  -				boolean isUnix = File.separatorChar == '/';
  -				javaExe = isUnix ? new File(home, "bin/java") : new File(home,"/bin/java.exe");
  -			}			
  -		}		
  -	}
  -
  -	/**
  -	 * return the command line parameters. Parameters can either be passed
  -	 * to the command line and stored to a file (then use the -jp_input=<filename>)
  -	 * if they are too numerous.
  -	 */
  -	protected String[] getParameters(){
  -		Vector params = new Vector();
  -		params.addElement("-jp_function=" + function);
  -		if (vm != null) {
  -			params.addElement("-jp_vm=" + vm);
  -		}
  -		if (javaExe != null) {
  -			params.addElement("-jp_java_exe=" + project.resolveFile(javaExe.getPath()));
  -		}
  -		params.addElement("-jp_working_dir=" + workingDir.getPath() );
  -		params.addElement("-jp_snapshot_dir=" + snapshotDir.getPath() );
  -		params.addElement("-jp_record_from_start=" + recordFromStart);
  -		params.addElement("-jp_warn=" + warnLevel);
  -		if (seedName != null) {
  -			params.addElement("-jp_output_file=" + seedName);
  -		}
  -		params.addElement("-jp_filter=" + filters.toString() );
  -		if (triggers != null) {
  -			params.addElement("-jp_trigger=" + triggers.toString() );
  -		}
  -		if (finalSnapshot != null) {
  -			params.addElement("-jp_final_snapshot=" + finalSnapshot);
  -		}
  +    /**
  +     * return the command line parameters. Parameters can either be passed
  +     * to the command line and stored to a file (then use the -jp_input=<filename>)
  +     * if they are too numerous.
  +     */
  +    protected String[] getParameters() {
  +        Vector params = new Vector();
  +        params.addElement("-jp_function=" + function);
  +        if (vm != null) {
  +            params.addElement("-jp_vm=" + vm);
  +        }
  +        if (javaExe != null) {
  +            params.addElement("-jp_java_exe=" + project.resolveFile(javaExe.getPath()));
  +        }
  +        params.addElement("-jp_working_dir=" + workingDir.getPath());
  +        params.addElement("-jp_snapshot_dir=" + snapshotDir.getPath());
  +        params.addElement("-jp_record_from_start=" + recordFromStart);
  +        params.addElement("-jp_warn=" + warnLevel);
  +        if (seedName != null) {
  +            params.addElement("-jp_output_file=" + seedName);
  +        }
  +        params.addElement("-jp_filter=" + filters.toString());
  +        if (triggers != null) {
  +            params.addElement("-jp_trigger=" + triggers.toString());
  +        }
  +        if (finalSnapshot != null) {
  +            params.addElement("-jp_final_snapshot=" + finalSnapshot);
  +        }
           params.addElement("-jp_exit_prompt=" + exitPrompt);
  -		//params.addElement("-jp_append=" + append);
  -		params.addElement("-jp_track_natives=" + trackNatives);
  -		//.... now the jvm
  -		// arguments
  -		String[] vmargs = cmdlJava.getVmCommand().getArguments();
  -		for (int i = 0; i < vmargs.length; i++) {
  -			params.addElement(vmargs[i]);
  -		}
  -		// classpath
  -		Path classpath = cmdlJava.getClasspath();
  -		if (classpath != null && classpath.size() > 0) {
  -			params.addElement("-classpath " + classpath.toString());
  -		}
  -		// classname (runner or standalone)
  -		if (cmdlJava.getClassname() != null) {
  -			params.addElement(cmdlJava.getClassname());
  -		}
  -		// arguments for classname
  -		String[] args = cmdlJava.getJavaCommand().getArguments();
  -		for (int i = 0; i < args.length; i++) {
  -			params.addElement(args[i]);
  -		}
  -		
  -		String[] array = new String[params.size()];
  -		params.copyInto(array);
  -		return array;
  -	}
  -	
  -	
  -	/**
  -	 * create the parameter file from the given options. The file is
  -	 * created with a random name in the current directory.
  -	 * @return the file object where are written the configuration to run
  -	 * JProbe Coverage
  -	 * @throws BuildException thrown if something bad happens while writing
  -	 * the arguments to the file.
  -	 */
  -	protected File createParamFile() throws BuildException {
  -		//@todo change this when switching to JDK 1.2 and use File.createTmpFile()
  -		File file = createTmpFile();
  -		log("Creating parameter file: " + file, Project.MSG_VERBOSE);
  -		
  -		// options need to be one per line in the parameter file
  -		// so write them all in a single string
  -		StringWriter sw = new StringWriter();
  -		PrintWriter pw = new PrintWriter(sw);
  -		String[] params = getParameters();
  -		for (int i = 0; i < params.length; i++){
  -			pw.println(params[i]);
  -		}
  -		pw.flush();
  -		log("JProbe Coverage parameters:\n" + sw.toString(), Project.MSG_VERBOSE);
  -		
  -		// now write them to the file
  -		FileWriter fw = null;
  -		try {
  -			fw = new FileWriter(file);
  -			fw.write(sw.toString());
  -			fw.flush();
  -		} catch (IOException e){
  -			throw new BuildException("Could not write parameter file " + file, e);
  -		} finally {
  -			if (fw != null) {
  -				try {
  -					fw.close();
  -				} catch (IOException ignored){}
  -			}
  -		}
  -		return file;
  -	}
  -
  -	/** create a temporary file in the current dir (For JDK1.1 support) */
  -	protected File createTmpFile(){
  -		final long rand = (new Random(System.currentTimeMillis())).nextLong();
  -		File file = new File("jpcoverage" + rand + ".tmp");
  -		return file;
  -	}
  -
  -	/** specific pumper to avoid those nasty stdin issues */
  -	static class CoverageStreamHandler extends LogStreamHandler {
  -		CoverageStreamHandler(Task task){
  -			super(task, Project.MSG_INFO, Project.MSG_WARN);
  -		}
  -		/**
  -		 * there are some issues concerning all JProbe executable
  -		 * In our case a 'Press ENTER to close this window..." will
  -		 * be displayed in the current window waiting for enter.
  -		 * So I'm closing the stream right away to avoid problems.
  -		 */
  -	    public void setProcessInputStream(OutputStream os) {
  -	    	try {
  -	    		os.close();
  -	    	} catch (IOException ignored){
  -	    	}
  -	    }
  -	}
  +        //params.addElement("-jp_append=" + append);
  +        params.addElement("-jp_track_natives=" + trackNatives);
  +        //.... now the jvm
  +        // arguments
  +        String[] vmargs = cmdlJava.getVmCommand().getArguments();
  +        for (int i = 0; i < vmargs.length; i++) {
  +            params.addElement(vmargs[i]);
  +        }
  +        // classpath
  +        Path classpath = cmdlJava.getClasspath();
  +        if (classpath != null && classpath.size() > 0) {
  +            params.addElement("-classpath " + classpath.toString());
  +        }
  +        // classname (runner or standalone)
  +        if (cmdlJava.getClassname() != null) {
  +            params.addElement(cmdlJava.getClassname());
  +        }
  +        // arguments for classname
  +        String[] args = cmdlJava.getJavaCommand().getArguments();
  +        for (int i = 0; i < args.length; i++) {
  +            params.addElement(args[i]);
  +        }
  +
  +        String[] array = new String[params.size()];
  +        params.copyInto(array);
  +        return array;
  +    }
  +
  +
  +    /**
  +     * create the parameter file from the given options. The file is
  +     * created with a random name in the current directory.
  +     * @return the file object where are written the configuration to run
  +     * JProbe Coverage
  +     * @throws BuildException thrown if something bad happens while writing
  +     * the arguments to the file.
  +     */
  +    protected File createParamFile() throws BuildException {
  +        //@todo change this when switching to JDK 1.2 and use File.createTmpFile()
  +        File file = createTmpFile();
  +        log("Creating parameter file: " + file, Project.MSG_VERBOSE);
  +
  +        // options need to be one per line in the parameter file
  +        // so write them all in a single string
  +        StringWriter sw = new StringWriter();
  +        PrintWriter pw = new PrintWriter(sw);
  +        String[] params = getParameters();
  +        for (int i = 0; i < params.length; i++) {
  +            pw.println(params[i]);
  +        }
  +        pw.flush();
  +        log("JProbe Coverage parameters:\n" + sw.toString(), Project.MSG_VERBOSE);
  +
  +        // now write them to the file
  +        FileWriter fw = null;
  +        try {
  +            fw = new FileWriter(file);
  +            fw.write(sw.toString());
  +            fw.flush();
  +        } catch (IOException e) {
  +            throw new BuildException("Could not write parameter file " + file, e);
  +        } finally {
  +            if (fw != null) {
  +                try {
  +                    fw.close();
  +                } catch (IOException ignored) {
  +                }
  +            }
  +        }
  +        return file;
  +    }
  +
  +    /** create a temporary file in the current dir (For JDK1.1 support) */
  +    protected File createTmpFile() {
  +        final long rand = (new Random(System.currentTimeMillis())).nextLong();
  +        File file = new File("jpcoverage" + rand + ".tmp");
  +        return file;
  +    }
  +
  +    /** specific pumper to avoid those nasty stdin issues */
  +    static class CoverageStreamHandler extends LogStreamHandler {
  +        CoverageStreamHandler(Task task) {
  +            super(task, Project.MSG_INFO, Project.MSG_WARN);
  +        }
  +
  +        /**
  +         * there are some issues concerning all JProbe executable
  +         * In our case a 'Press ENTER to close this window..." will
  +         * be displayed in the current window waiting for enter.
  +         * So I'm closing the stream right away to avoid problems.
  +         */
  +        public void setProcessInputStream(OutputStream os) {
  +            try {
  +                os.close();
  +            } catch (IOException ignored) {
  +            }
  +        }
  +    }
   
   }
  
  
  
  1.4       +135 -137  jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/CovMerge.java
  
  Index: CovMerge.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/CovMerge.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- CovMerge.java	2001/11/16 22:25:59	1.3
  +++ CovMerge.java	2001/11/18 11:41:06	1.4
  @@ -54,23 +54,21 @@
   
   package org.apache.tools.ant.taskdefs.optional.sitraka;
   
  +import java.io.File;
  +import java.io.FileWriter;
  +import java.io.IOException;
  +import java.io.PrintWriter;
  +import java.util.Random;
  +import java.util.Vector;
  +
   import org.apache.tools.ant.BuildException;
  +import org.apache.tools.ant.DirectoryScanner;
   import org.apache.tools.ant.Project;
   import org.apache.tools.ant.Task;
  -import org.apache.tools.ant.taskdefs.LogStreamHandler;
   import org.apache.tools.ant.taskdefs.Execute;
  +import org.apache.tools.ant.taskdefs.LogStreamHandler;
   import org.apache.tools.ant.types.Commandline;
  -
  -
   import org.apache.tools.ant.types.FileSet;
  -import org.apache.tools.ant.DirectoryScanner;
  -import java.util.Vector;
  -import java.util.Random;
  -import java.io.File;
  -
  -import java.io.FileWriter;
  -import java.io.PrintWriter;
  -import java.io.IOException;
   
   /**
    * Convenient task to run the snapshot merge utility for JProbe Coverage.
  @@ -79,152 +77,152 @@
    */
   public class CovMerge extends Task {
   
  -	/** coverage home, it is mandatory */
  +    /** coverage home, it is mandatory */
       private File home = null;
  -    
  -	/** the name of the output snapshot */
  +
  +    /** the name of the output snapshot */
       private File tofile = null;
  -    
  -	/** the filesets that will get all snapshots to merge */
  +
  +    /** the filesets that will get all snapshots to merge */
       private Vector filesets = new Vector();
  -    
  -	private boolean verbose;
  +
  +    private boolean verbose;
   
  -	/**
  -	 * set the coverage home. it must point to JProbe coverage
  -	 * directories where are stored native librairies and jars
  -	 */
  +    /**
  +     * set the coverage home. it must point to JProbe coverage
  +     * directories where are stored native librairies and jars
  +     */
       public void setHome(File value) {
           this.home = value;
       }
   
  -	/**
  -	 * Set the output snapshot file
  -	 */
  +    /**
  +     * Set the output snapshot file
  +     */
       public void setTofile(File value) {
           this.tofile = value;
       }
   
  -	/** run the merging in verbose mode */
  -	public void setVerbose(boolean flag){
  -		this.verbose = flag;
  -	}
  +    /** run the merging in verbose mode */
  +    public void setVerbose(boolean flag) {
  +        this.verbose = flag;
  +    }
   
  -	/** add a fileset containing the snapshots to include/exclude */
  -	public void addFileset(FileSet fs){
  -		filesets.addElement(fs);
  -	}
  +    /** add a fileset containing the snapshots to include/exclude */
  +    public void addFileset(FileSet fs) {
  +        filesets.addElement(fs);
  +    }
   
  -	//---------------- the tedious job begins here
  +    //---------------- the tedious job begins here
   
  -	public CovMerge() {
  +    public CovMerge() {
       }
   
  -	/** execute the jpcovmerge by providing a parameter file */
  +    /** execute the jpcovmerge by providing a parameter file */
       public void execute() throws BuildException {
  -		checkOptions();
  +        checkOptions();
   
  -		File paramfile = createParamFile();
  -		try{
  -			Commandline cmdl = new Commandline();
  -			cmdl.setExecutable( new File(home, "jpcovmerge").getAbsolutePath() );
  -			if (verbose) {
  -				cmdl.createArgument().setValue("-v");
  -			}
  -			cmdl.createArgument().setValue("-jp_paramfile=" + paramfile.getAbsolutePath());
  -	
  -			LogStreamHandler handler = new LogStreamHandler(this,Project.MSG_INFO,Project.MSG_WARN);
  -			Execute exec = new Execute(handler);
  -			log(cmdl.toString(), Project.MSG_VERBOSE);
  -			exec.setCommandline(cmdl.getCommandline());
  -
  -			// JProbe process always return 0 so  we will not be
  -			// able to check for failure ! :-(
  -			int exitValue = exec.execute();
  -			if (exitValue!=0) {
  -				throw new BuildException("JProbe Coverage Merging failed (" + exitValue + ")");
  -			}
  +        File paramfile = createParamFile();
  +        try {
  +            Commandline cmdl = new Commandline();
  +            cmdl.setExecutable(new File(home, "jpcovmerge").getAbsolutePath());
  +            if (verbose) {
  +                cmdl.createArgument().setValue("-v");
  +            }
  +            cmdl.createArgument().setValue("-jp_paramfile=" + paramfile.getAbsolutePath());
  +
  +            LogStreamHandler handler = new LogStreamHandler(this, Project.MSG_INFO, Project.MSG_WARN);
  +            Execute exec = new Execute(handler);
  +            log(cmdl.toString(), Project.MSG_VERBOSE);
  +            exec.setCommandline(cmdl.getCommandline());
  +
  +            // JProbe process always return 0 so  we will not be
  +            // able to check for failure ! :-(
  +            int exitValue = exec.execute();
  +            if (exitValue != 0) {
  +                throw new BuildException("JProbe Coverage Merging failed (" + exitValue + ")");
  +            }
           } catch (IOException e) {
               throw new BuildException("Failed to run JProbe Coverage Merge: " + e);
           } finally {
  -			//@todo should be removed once switched to JDK1.2
  -			paramfile.delete();
  -		}
  -    }
  -
  -	/** check for mandatory options */
  -	protected void checkOptions() throws BuildException {
  -		if (tofile == null) {
  -			throw new BuildException("'tofile' attribute must be set.");
  -		}
  -
  -		// check coverage home
  -		if (home == null || !home.isDirectory() ) {
  -			throw new BuildException("Invalid home directory. Must point to JProbe home directory");
  -		}
  -		home = new File(home,"Coverage");
  -		File jar = new File(home, "coverage.jar");
  -		if (!jar.exists()) {
  -			throw new BuildException("Cannot find Coverage directory: " + home);
  -		}
  -	}
  -
  -	/** get the snapshots from the filesets */
  -	protected File[] getSnapshots() {
  -		Vector v = new Vector();
  -		final int size = filesets.size();
  -		for (int i = 0; i < size; i++) {
  -			FileSet fs = (FileSet) filesets.elementAt(i);
  -			DirectoryScanner ds = fs.getDirectoryScanner(getProject());
  -			ds.scan();
  -			String[] f = ds.getIncludedFiles();
  -			for (int j = 0; j < f.length; j++) {
  -				String pathname = f[j];
  -				File file = new File(ds.getBasedir(), pathname);
  -				file = project.resolveFile(file.getPath());
  -				v.addElement( file );
  -			}
  -		}
  -
  -		File[] files = new File[v.size()];
  -		v.copyInto(files);
  -		return files;
  -	}
  -
  -
  -	/**
  -	 * create the parameters file that contains all file to merge
  -	 * and the output filename.
  -	 */
  -	protected File createParamFile() throws BuildException {
  -		File[] snapshots = getSnapshots();
  -		File file = createTmpFile();
  -		FileWriter fw = null;
  -		try {
  -			fw = new FileWriter(file);
  -			PrintWriter pw = new PrintWriter(fw);
  -			for (int i = 0; i < snapshots.length; i++) {
  -				pw.println(snapshots[i].getAbsolutePath());
  -			}
  -			// last file is the output snapshot
  -			pw.println(project.resolveFile(tofile.getPath()));
  -			pw.flush();
  -			return file;
  -		} catch (IOException e){
  -			if (fw != null) {
  -				try {
  -					fw.close();
  -				} catch (IOException ignored){
  -				}
  -			}
  -			throw new BuildException("I/O error while writing to " + file, e);
  -		}
  -	}
  -
  -	/** create a temporary file in the current dir (For JDK1.1 support) */
  -	protected File createTmpFile(){
  -		final long rand = (new Random(System.currentTimeMillis())).nextLong();
  -		File file = new File("jpcovmerge" + rand + ".tmp");
  -		return file;
  -	}
  +            //@todo should be removed once switched to JDK1.2
  +            paramfile.delete();
  +        }
  +    }
  +
  +    /** check for mandatory options */
  +    protected void checkOptions() throws BuildException {
  +        if (tofile == null) {
  +            throw new BuildException("'tofile' attribute must be set.");
  +        }
  +
  +        // check coverage home
  +        if (home == null || !home.isDirectory()) {
  +            throw new BuildException("Invalid home directory. Must point to JProbe home directory");
  +        }
  +        home = new File(home, "Coverage");
  +        File jar = new File(home, "coverage.jar");
  +        if (!jar.exists()) {
  +            throw new BuildException("Cannot find Coverage directory: " + home);
  +        }
  +    }
  +
  +    /** get the snapshots from the filesets */
  +    protected File[] getSnapshots() {
  +        Vector v = new Vector();
  +        final int size = filesets.size();
  +        for (int i = 0; i < size; i++) {
  +            FileSet fs = (FileSet) filesets.elementAt(i);
  +            DirectoryScanner ds = fs.getDirectoryScanner(getProject());
  +            ds.scan();
  +            String[] f = ds.getIncludedFiles();
  +            for (int j = 0; j < f.length; j++) {
  +                String pathname = f[j];
  +                File file = new File(ds.getBasedir(), pathname);
  +                file = project.resolveFile(file.getPath());
  +                v.addElement(file);
  +            }
  +        }
  +
  +        File[] files = new File[v.size()];
  +        v.copyInto(files);
  +        return files;
  +    }
  +
  +
  +    /**
  +     * create the parameters file that contains all file to merge
  +     * and the output filename.
  +     */
  +    protected File createParamFile() throws BuildException {
  +        File[] snapshots = getSnapshots();
  +        File file = createTmpFile();
  +        FileWriter fw = null;
  +        try {
  +            fw = new FileWriter(file);
  +            PrintWriter pw = new PrintWriter(fw);
  +            for (int i = 0; i < snapshots.length; i++) {
  +                pw.println(snapshots[i].getAbsolutePath());
  +            }
  +            // last file is the output snapshot
  +            pw.println(project.resolveFile(tofile.getPath()));
  +            pw.flush();
  +            return file;
  +        } catch (IOException e) {
  +            if (fw != null) {
  +                try {
  +                    fw.close();
  +                } catch (IOException ignored) {
  +                }
  +            }
  +            throw new BuildException("I/O error while writing to " + file, e);
  +        }
  +    }
  +
  +    /** create a temporary file in the current dir (For JDK1.1 support) */
  +    protected File createTmpFile() {
  +        final long rand = (new Random(System.currentTimeMillis())).nextLong();
  +        File file = new File("jpcovmerge" + rand + ".tmp");
  +        return file;
  +    }
   }
  
  
  
  1.4       +50 -52    jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/CovReport.java
  
  Index: CovReport.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/CovReport.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- CovReport.java	2001/10/28 21:30:23	1.3
  +++ CovReport.java	2001/11/18 11:41:06	1.4
  @@ -54,35 +54,28 @@
   
   package org.apache.tools.ant.taskdefs.optional.sitraka;
   
  +import java.io.File;
  +import java.io.IOException;
  +import java.util.Vector;
  +import javax.xml.transform.OutputKeys;
  +import javax.xml.transform.Result;
  +import javax.xml.transform.Source;
  +import javax.xml.transform.Transformer;
  +import javax.xml.transform.TransformerFactory;
  +import javax.xml.transform.dom.DOMSource;
  +import javax.xml.transform.stream.StreamResult;
  +
   import org.apache.tools.ant.BuildException;
   import org.apache.tools.ant.Project;
   import org.apache.tools.ant.Task;
  -import org.apache.tools.ant.taskdefs.LogStreamHandler;
   import org.apache.tools.ant.taskdefs.Execute;
  +import org.apache.tools.ant.taskdefs.LogStreamHandler;
   import org.apache.tools.ant.types.Commandline;
  -
  -import org.apache.tools.ant.types.Path;
   import org.apache.tools.ant.types.EnumeratedAttribute;
  -
  -
  -import java.util.Vector;
  -import java.io.File;
  -
  -import java.io.IOException;
  -
  -import javax.xml.transform.TransformerFactory;
  -import javax.xml.transform.Transformer;
  -import javax.xml.transform.OutputKeys;
  -import javax.xml.transform.Source;
  -import javax.xml.transform.Result;
  -import javax.xml.transform.stream.StreamResult;
  -import javax.xml.transform.dom.DOMSource;
  +import org.apache.tools.ant.types.Path;
   import org.w3c.dom.Document;
   
   
  -
  -
  -
   /**
    * Convenient task to run the snapshot merge utility for JProbe Coverage 3.0.
    *
  @@ -138,7 +131,7 @@
         /*
   
         /** coverage home,  mandatory */
  -    private File home = null;
  +            private File home = null;
   
       /** format of generated report, optional */
       private String format = null;
  @@ -179,48 +172,50 @@
       }
   
       public static class ReportFormat extends EnumeratedAttribute {
  -        public String[] getValues(){
  +        public String[] getValues() {
               return new String[]{"html", "text", "xml"};
           }
       }
  +
       /** set the format of the report html|text|xml*/
  -    public void setFormat(ReportFormat value){
  +    public void setFormat(ReportFormat value) {
           this.format = value.getValue();
       }
   
       public static class ReportType extends EnumeratedAttribute {
  -        public String[] getValues(){
  +        public String[] getValues() {
               return new String[]{"executive", "summary", "detailed", "verydetailed"};
           }
       }
  +
       /** sets the report type executive|summary|detailed|verydetailed */
  -    public void setType(ReportType value){
  -        this.type =  value.getValue();
  +    public void setType(ReportType value) {
  +        this.type = value.getValue();
       }
   
       /** include source code lines. XML report only */
  -    public void setIncludesource(boolean value){
  +    public void setIncludesource(boolean value) {
           this.includeSource = value;
       }
   
       /** sets the threshold printing method 0-100*/
  -    public void setPercent(Integer value){
  +    public void setPercent(Integer value) {
           this.percent = value;
       }
   
       /** set the filters */
  -    public void setFilters(String values){
  +    public void setFilters(String values) {
           this.filters = values;
       }
   
  -    public Path createSourcepath(){
  +    public Path createSourcepath() {
           if (sourcePath == null) {
               sourcePath = new Path(project);
           }
           return sourcePath.createPath();
       }
   
  -    public void setSnapshot(File value){
  +    public void setSnapshot(File value) {
           this.snapshot = value;
       }
   
  @@ -232,15 +227,15 @@
       }
   
       //@todo to remove
  -    public Path createCoveragepath(){
  +            public Path createCoveragepath() {
           if (coveragePath == null) {
               coveragePath = new Path(project);
           }
           return coveragePath.createPath();
       }
   
  -    public Reference createReference(){
  -        if (reference == null){
  +    public Reference createReference() {
  +        if (reference == null) {
               reference = new Reference();
           }
           return reference;
  @@ -261,12 +256,12 @@
           if (home == null) {
               throw new BuildException("'home' attribute must be set to JProbe home directory");
           }
  -        home = new File(home,"Coverage");
  +        home = new File(home, "Coverage");
           File jar = new File(home, "coverage.jar");
           if (!jar.exists()) {
               throw new BuildException("Cannot find Coverage directory: " + home);
           }
  -        if (reference != null && !"xml".equals(format)){
  +        if (reference != null && !"xml".equals(format)) {
               log("Ignored reference. It cannot be used in non XML report.");
               reference = null; // nullify it so that there is no ambiguity
           }
  @@ -278,15 +273,15 @@
           try {
               Commandline cmdl = new Commandline();
               // we need to run Coverage from his directory due to dll/jar issues
  -            cmdl.setExecutable( new File(home, "jpcovreport").getAbsolutePath() );
  +            cmdl.setExecutable(new File(home, "jpcovreport").getAbsolutePath());
               String[] params = getParameters();
               for (int i = 0; i < params.length; i++) {
                   cmdl.createArgument().setValue(params[i]);
               }
   
               // use the custom handler for stdin issues
  -            LogStreamHandler handler = new LogStreamHandler(this,Project.MSG_INFO,Project.MSG_WARN);
  -            Execute exec = new Execute( handler );
  +            LogStreamHandler handler = new LogStreamHandler(this, Project.MSG_INFO, Project.MSG_WARN);
  +            Execute exec = new Execute(handler);
               log(cmdl.toString(), Project.MSG_VERBOSE);
               exec.setCommandline(cmdl.getCommandline());
               int exitValue = exec.execute();
  @@ -295,17 +290,17 @@
               }
               log("coveragePath: " + coveragePath, Project.MSG_VERBOSE);
               log("format: " + format, Project.MSG_VERBOSE);
  -            if (reference != null && "xml".equals(format)){
  +            if (reference != null && "xml".equals(format)) {
                   reference.createEnhancedXMLReport();
               }
   
  -        } catch (IOException e){
  +        } catch (IOException e) {
               throw new BuildException("Failed to execute JProbe Coverage Report.", e);
           }
       }
   
   
  -    protected String[] getParameters(){
  +    protected String[] getParameters() {
           Vector v = new Vector();
           if (format != null) {
               v.addElement("-format=" + format);
  @@ -341,49 +336,52 @@
       public class Reference {
           protected Path classPath;
           protected ReportFilters filters;
  -        public Path createClasspath(){
  +
  +        public Path createClasspath() {
               if (classPath == null) {
                   classPath = new Path(CovReport.this.project);
               }
               return classPath.createPath();
           }
  -        public ReportFilters createFilters(){
  -            if (filters == null){
  +
  +        public ReportFilters createFilters() {
  +            if (filters == null) {
                   filters = new ReportFilters();
               }
               return filters;
           }
  +
           protected void createEnhancedXMLReport() throws BuildException {
               // we need a classpath element
  -            if (classPath == null){
  +            if (classPath == null) {
                   throw new BuildException("Need a 'classpath' element.");
               }
               // and a valid one...
               String[] paths = classPath.list();
  -            if (paths.length == 0){
  +            if (paths.length == 0) {
                   throw new BuildException("Coverage path is invalid. It does not contain any existing path.");
               }
               // and we need at least one filter include/exclude.
  -            if (filters == null || filters.size() == 0){
  +            if (filters == null || filters.size() == 0) {
                   createFilters();
                   log("Adding default include filter to *.*()", Project.MSG_VERBOSE);
                   ReportFilters.Include include = new ReportFilters.Include();
  -                filters.addInclude( include );
  +                filters.addInclude(include);
               }
               try {
                   log("Creating enhanced XML report", Project.MSG_VERBOSE);
                   XMLReport report = new XMLReport(CovReport.this, tofile);
                   report.setReportFilters(filters);
  -                report.setJProbehome( new File(home.getParent()) );
  +                report.setJProbehome(new File(home.getParent()));
                   Document doc = report.createDocument(paths);
                   TransformerFactory tfactory = TransformerFactory.newInstance();
                   Transformer transformer = tfactory.newTransformer();
                   transformer.setOutputProperty(OutputKeys.INDENT, "yes");
                   transformer.setOutputProperty(OutputKeys.METHOD, "xml");
                   Source src = new DOMSource(doc);
  -                Result res = new StreamResult( "file:///" + tofile.toString() );
  +                Result res = new StreamResult("file:///" + tofile.toString());
                   transformer.transform(src, res);
  -            } catch (Exception e){
  +            } catch (Exception e) {
                   throw new BuildException("Error while performing enhanced XML report from file " + tofile, e);
               }
           }
  
  
  
  1.3       +18 -13    jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/Filters.java
  
  Index: Filters.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/Filters.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Filters.java	2001/10/28 21:30:23	1.2
  +++ Filters.java	2001/11/18 11:41:06	1.3
  @@ -72,22 +72,22 @@
       /** user defined filters */
       protected Vector filters = new Vector();
   
  -    public Filters(){
  +    public Filters() {
       }
   
  -    public void setDefaultExclude(boolean value){
  +    public void setDefaultExclude(boolean value) {
           defaultExclude = value;
       }
   
  -    public void addInclude(Include incl){
  +    public void addInclude(Include incl) {
           filters.addElement(incl);
       }
   
  -    public void addExclude(Exclude excl){
  +    public void addExclude(Exclude excl) {
           filters.addElement(excl);
       }
   
  -    public String toString(){
  +    public String toString() {
           StringBuffer buf = new StringBuffer();
           final int size = filters.size();
           if (defaultExclude) {
  @@ -98,7 +98,7 @@
           }
           for (int i = 0; i < size; i++) {
               buf.append(filters.elementAt(i).toString());
  -            if ( i < size - 1) {
  +            if (i < size - 1) {
                   buf.append(',');
               }
           }
  @@ -109,25 +109,30 @@
           protected String clazz;
           protected String method = "*"; // default is all methods
           protected boolean enabled = true; // default is enable
  -        public void setName(String value){ // this one is deprecated.
  +
  +        public void setName(String value) { // this one is deprecated.
               clazz = value;
           }
  -        public void setClass(String value){
  -            clazz  = value;
  +
  +        public void setClass(String value) {
  +            clazz = value;
           }
  -        public void setMethod(String value){
  +
  +        public void setMethod(String value) {
               method = value;
           }
  -        public void setEnabled(boolean value){
  +
  +        public void setEnabled(boolean value) {
               enabled = value;
           }
  -        public String toString(){
  +
  +        public String toString() {
               return clazz + "." + method + "()";
           }
       }
   
       public static class Include extends FilterElement {
  -        public String toString(){
  +        public String toString() {
               return super.toString() + ":I" + (enabled ? "" : "#");
           }
       }
  
  
  
  1.3       +96 -93    jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/ReportFilters.java
  
  Index: ReportFilters.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/ReportFilters.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ReportFilters.java	2001/10/28 21:30:23	1.2
  +++ ReportFilters.java	2001/11/18 11:41:06	1.3
  @@ -66,101 +66,104 @@
    */
   public class ReportFilters {
   
  -	/** user defined filters */
  -	protected Vector filters = new Vector();
  +    /** user defined filters */
  +    protected Vector filters = new Vector();
   
  -	/** cached matcher for each filter */
  -	protected Vector matchers = null;
  +    /** cached matcher for each filter */
  +    protected Vector matchers = null;
   
  -	public ReportFilters(){
  -	}
  +    public ReportFilters() {
  +    }
   
  -	public void addInclude(Include incl){
  -		filters.addElement(incl);
  -	}
  -
  -	public void addExclude(Exclude excl){
  -		filters.addElement(excl);
  -	}
  -
  -	public int size(){
  -		return filters.size();
  -	}
  -
  -	/**
  -	 * Check whether a given &lt;classname&gt;&lt;method&gt;() is accepted by the list
  -	 * of filters or not.
  -	 * @param methodname the full method name in the format &lt;classname&gt;&lt;method&gt;()
  -	 */
  -	public boolean accept(String methodname){
  -		// I'm deferring matcher instantiations at runtime to avoid computing
  -		// the filters at parsing time
  -		if (matchers == null){
  -			createMatchers();
  -		}
  -		boolean result = false;
  -		// assert filters.size() == matchers.size()
  -		final int size = filters.size();
  -		for (int i = 0; i < size; i++){
  -			FilterElement filter = (FilterElement)filters.elementAt(i);
  -			RegexpMatcher matcher = (RegexpMatcher)matchers.elementAt(i);
  -			if (filter instanceof Include){
  -				result = result || matcher.matches(methodname);
  -			} else if (filter instanceof Exclude){
  -				result = result && !matcher.matches(methodname);
  -			} else{
  -				//not possible
  -				throw new IllegalArgumentException("Invalid filter element: " + filter.getClass().getName());
  -			}
  -		}
  -		return result;
  -	}
  -
  -	/** should be called only once to cache matchers */
  -	protected void createMatchers(){
  -		RegexpMatcherFactory factory = new RegexpMatcherFactory();
  -		final int size = filters.size();
  -		matchers = new Vector();
  -		for (int i = 0; i < size; i++){
  -			FilterElement filter = (FilterElement)filters.elementAt(i);
  -			RegexpMatcher matcher = factory.newRegexpMatcher();
  -			String pattern = filter.getAsPattern();
  -			matcher.setPattern(pattern);
  -			matchers.addElement(matcher);
  -		}
  -	}
  -
  -
  -	/** default abstract filter element class */
  -	abstract public static class FilterElement {
  -		protected String clazz = "*"; // default is all classes
  -		protected String method = "*"; // default is all methods
  -
  -		public void setClass(String value){
  -			clazz  = value;
  -		}
  -		public void setMethod(String value){
  -			method = value;
  -		}
  -
  -		public String getAsPattern(){
  -			StringBuffer buf = new StringBuffer(toString());
  -			StringUtil.replace(buf, ".", "\\.");
  -			StringUtil.replace(buf, "*", ".*");
  -			StringUtil.replace(buf, "(", "\\(");
  -			StringUtil.replace(buf, ")", "\\)");
  -			return buf.toString();
  -		}
  -
  -		public String toString(){
  -			return clazz + "." + method + "()";
  -		}
  -	}
  -
  -	/** concrete include class */
  -	public static class Include extends FilterElement {}
  -
  -	/** concrete exclude class */
  -	public static class Exclude extends FilterElement {}
  +    public void addInclude(Include incl) {
  +        filters.addElement(incl);
  +    }
  +
  +    public void addExclude(Exclude excl) {
  +        filters.addElement(excl);
  +    }
  +
  +    public int size() {
  +        return filters.size();
  +    }
  +
  +    /**
  +     * Check whether a given &lt;classname&gt;&lt;method&gt;() is accepted by the list
  +     * of filters or not.
  +     * @param methodname the full method name in the format &lt;classname&gt;&lt;method&gt;()
  +     */
  +    public boolean accept(String methodname) {
  +        // I'm deferring matcher instantiations at runtime to avoid computing
  +        // the filters at parsing time
  +        if (matchers == null) {
  +            createMatchers();
  +        }
  +        boolean result = false;
  +        // assert filters.size() == matchers.size()
  +        final int size = filters.size();
  +        for (int i = 0; i < size; i++) {
  +            FilterElement filter = (FilterElement) filters.elementAt(i);
  +            RegexpMatcher matcher = (RegexpMatcher) matchers.elementAt(i);
  +            if (filter instanceof Include) {
  +                result = result || matcher.matches(methodname);
  +            } else if (filter instanceof Exclude) {
  +                result = result && !matcher.matches(methodname);
  +            } else {
  +                //not possible
  +                throw new IllegalArgumentException("Invalid filter element: " + filter.getClass().getName());
  +            }
  +        }
  +        return result;
  +    }
  +
  +    /** should be called only once to cache matchers */
  +    protected void createMatchers() {
  +        RegexpMatcherFactory factory = new RegexpMatcherFactory();
  +        final int size = filters.size();
  +        matchers = new Vector();
  +        for (int i = 0; i < size; i++) {
  +            FilterElement filter = (FilterElement) filters.elementAt(i);
  +            RegexpMatcher matcher = factory.newRegexpMatcher();
  +            String pattern = filter.getAsPattern();
  +            matcher.setPattern(pattern);
  +            matchers.addElement(matcher);
  +        }
  +    }
  +
  +
  +    /** default abstract filter element class */
  +    abstract public static class FilterElement {
  +        protected String clazz = "*"; // default is all classes
  +        protected String method = "*"; // default is all methods
  +
  +        public void setClass(String value) {
  +            clazz = value;
  +        }
  +
  +        public void setMethod(String value) {
  +            method = value;
  +        }
  +
  +        public String getAsPattern() {
  +            StringBuffer buf = new StringBuffer(toString());
  +            StringUtil.replace(buf, ".", "\\.");
  +            StringUtil.replace(buf, "*", ".*");
  +            StringUtil.replace(buf, "(", "\\(");
  +            StringUtil.replace(buf, ")", "\\)");
  +            return buf.toString();
  +        }
  +
  +        public String toString() {
  +            return clazz + "." + method + "()";
  +        }
  +    }
  +
  +    /** concrete include class */
  +    public static class Include extends FilterElement {
  +    }
  +
  +    /** concrete exclude class */
  +    public static class Exclude extends FilterElement {
  +    }
   }
   
  
  
  
  1.2       +14 -14    jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/Socket.java
  
  Index: Socket.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/Socket.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Socket.java	2001/07/31 08:40:12	1.1
  +++ Socket.java	2001/11/18 11:41:06	1.2
  @@ -64,22 +64,22 @@
    */
   public class Socket {
   
  -	/** default to localhost */
  -	private String host = "127.0.0.1";
  +    /** default to localhost */
  +    private String host = "127.0.0.1";
   
  -	/** default to 4444 */
  -	private int port = 4444;
  +    /** default to 4444 */
  +    private int port = 4444;
   
  -	public void setHost(String value){
  -		host = value;
  -	}
  +    public void setHost(String value) {
  +        host = value;
  +    }
   
  -	public void setPort(Integer value){
  -		port = value.intValue();
  -	}
  +    public void setPort(Integer value) {
  +        port = value.intValue();
  +    }
   
  -	/** if no host is set, returning ':<port>', will take localhost */
  -	public String toString(){
  -		return host + ":" + port;
  -	}
  +    /** if no host is set, returning ':<port>', will take localhost */
  +    public String toString() {
  +        return host + ":" + port;
  +    }
   }
  
  
  
  1.2       +22 -22    jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/StringUtil.java
  
  Index: StringUtil.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/StringUtil.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- StringUtil.java	2001/07/31 08:40:12	1.1
  +++ StringUtil.java	2001/11/18 11:41:06	1.2
  @@ -58,27 +58,27 @@
    * @author <a href="mailto:sbailliez@imediation.com">Stephane Bailliez</a>
    */
   public final class StringUtil {
  -	/** private constructor, it's a utility class */
  -	private StringUtil() {
  -	}
  +    /** private constructor, it's a utility class */
  +    private StringUtil() {
  +    }
   
  -	/**
  -	 * Replaces all occurences of <tt>find</tt> with <tt>replacement</tt> in the
  -	 * source StringBuffer.
  -	 * @param src the original string buffer to modify.
  -	 * @param find the string to be replaced.
  -	 * @param replacement the replacement string for <tt>find</tt> matches.
  -	 */
  -	public static void replace(StringBuffer src, String find, String replacement){
  -		int index = 0;
  -		while (index < src.length() ){
  -			index = src.toString().indexOf(find, index);
  -			if (index == -1){
  -				break;
  -			}
  -			src.delete(index, index + find.length());
  -			src.insert(index, replacement);
  -			index += replacement.length() + 1;
  -		}
  -	}
  +    /**
  +     * Replaces all occurences of <tt>find</tt> with <tt>replacement</tt> in the
  +     * source StringBuffer.
  +     * @param src the original string buffer to modify.
  +     * @param find the string to be replaced.
  +     * @param replacement the replacement string for <tt>find</tt> matches.
  +     */
  +    public static void replace(StringBuffer src, String find, String replacement) {
  +        int index = 0;
  +        while (index < src.length()) {
  +            index = src.toString().indexOf(find, index);
  +            if (index == -1) {
  +                break;
  +            }
  +            src.delete(index, index + find.length());
  +            src.insert(index, replacement);
  +            index += replacement.length() + 1;
  +        }
  +    }
   }
  
  
  
  1.2       +83 -78    jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/Triggers.java
  
  Index: Triggers.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/Triggers.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Triggers.java	2001/07/31 08:40:12	1.1
  +++ Triggers.java	2001/11/18 11:41:06	1.2
  @@ -54,8 +54,9 @@
   
   package org.apache.tools.ant.taskdefs.optional.sitraka;
   
  -import java.util.Vector;
   import java.util.Hashtable;
  +import java.util.Vector;
  +
   import org.apache.tools.ant.BuildException;
   
   /**
  @@ -65,83 +66,87 @@
    * @author <a href="mailto:sbailliez@imediation.com">Stephane Bailliez</a>
    */
   public class Triggers {
  +
  +    protected Vector triggers = new Vector();
  +
  +    public Triggers() {
  +    }
   
  -	protected Vector triggers = new Vector();
  -	
  -	public Triggers(){
  -	}
  -
  -	public void addMethod(Method method){
  -		triggers.addElement(method);
  -	}
  -
  -	// -jp_trigger=ClassName.*():E:S,ClassName.MethodName():X:X 
  -	public String toString(){
  -		StringBuffer buf = new StringBuffer();
  -		final int size = triggers.size();
  -		for(int i = 0; i < size;  i++) {
  -			buf.append( triggers.elementAt(i).toString() );
  -			if (i < size - 1) {
  -				buf.append(',');
  -			}
  -		}
  -		return buf.toString();
  -	}
  -
  -    
  -	public static class Method {
  -		protected String name;
  -		protected String event;
  -		protected String action;
  -		protected String param;
  -		public void setName(String value){
  -			name = value;
  -		}
  -		public void setEvent(String value){
  -			if (eventMap.get(value) == null) {
  -				throw new BuildException("Invalid event, must be one of " + eventMap);
  -			}
  -			event = value;
  -		}
  -		public void setAction(String value) throws BuildException {
  -			if (actionMap.get(value) == null) {
  -				throw new BuildException("Invalid action, must be one of " + actionMap);
  -			}
  -			action = value;
  -		}
  -		public void setParam(String value){
  -			param = value;
  -		}
  -
  -		// return <name>:<event>:<action>[:param]
  -		public String toString(){
  -			StringBuffer buf = new StringBuffer();
  -			buf.append(name).append(":"); //@todo name must not be null, check for it
  -			buf.append(eventMap.get(event)).append(":");
  -			buf.append(actionMap.get(action));
  -			if (param != null) {
  -				buf.append(":").append(param);
  -			}
  -			return buf.toString();
  -		}
  -	}
  -
  -	/** mapping of actions to cryptic command line mnemonics */
  -	private final static Hashtable actionMap = new Hashtable(3);
  -	
  -	/** mapping of events to cryptic command line mnemonics */
  -	private final static Hashtable eventMap = new Hashtable(3);
  -
  -	static {
  -		actionMap.put("enter", "E");
  -		actionMap.put("exit", "X");
  -		// clear|pause|resume|snapshot|suspend|exit
  -		eventMap.put("clear", "C");
  -		eventMap.put("pause", "P");
  -		eventMap.put("resume", "R");
  -		eventMap.put("snapshot", "S");
  -		eventMap.put("suspend", "A");
  -		eventMap.put("exit", "X");
  -	}
  +    public void addMethod(Method method) {
  +        triggers.addElement(method);
  +    }
  +
  +    // -jp_trigger=ClassName.*():E:S,ClassName.MethodName():X:X
  +            public String toString() {
  +        StringBuffer buf = new StringBuffer();
  +        final int size = triggers.size();
  +        for (int i = 0; i < size; i++) {
  +            buf.append(triggers.elementAt(i).toString());
  +            if (i < size - 1) {
  +                buf.append(',');
  +            }
  +        }
  +        return buf.toString();
  +    }
  +
  +
  +    public static class Method {
  +        protected String name;
  +        protected String event;
  +        protected String action;
  +        protected String param;
  +
  +        public void setName(String value) {
  +            name = value;
  +        }
  +
  +        public void setEvent(String value) {
  +            if (eventMap.get(value) == null) {
  +                throw new BuildException("Invalid event, must be one of " + eventMap);
  +            }
  +            event = value;
  +        }
  +
  +        public void setAction(String value) throws BuildException {
  +            if (actionMap.get(value) == null) {
  +                throw new BuildException("Invalid action, must be one of " + actionMap);
  +            }
  +            action = value;
  +        }
  +
  +        public void setParam(String value) {
  +            param = value;
  +        }
  +
  +        // return <name>:<event>:<action>[:param]
  +                public String toString() {
  +            StringBuffer buf = new StringBuffer();
  +            buf.append(name).append(":"); //@todo name must not be null, check for it
  +            buf.append(eventMap.get(event)).append(":");
  +            buf.append(actionMap.get(action));
  +            if (param != null) {
  +                buf.append(":").append(param);
  +            }
  +            return buf.toString();
  +        }
  +    }
  +
  +    /** mapping of actions to cryptic command line mnemonics */
  +    private final static Hashtable actionMap = new Hashtable(3);
  +
  +    /** mapping of events to cryptic command line mnemonics */
  +    private final static Hashtable eventMap = new Hashtable(3);
  +
  +    static {
  +        actionMap.put("enter", "E");
  +        actionMap.put("exit", "X");
  +        // clear|pause|resume|snapshot|suspend|exit
  +        eventMap.put("clear", "C");
  +        eventMap.put("pause", "P");
  +        eventMap.put("resume", "R");
  +        eventMap.put("snapshot", "S");
  +        eventMap.put("suspend", "A");
  +        eventMap.put("exit", "X");
  +    }
   
   }
  
  
  
  1.4       +9 -15     jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/XMLReport.java
  
  Index: XMLReport.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/XMLReport.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XMLReport.java	2001/11/18 00:45:51	1.3
  +++ XMLReport.java	2001/11/18 11:41:06	1.4
  @@ -53,6 +53,15 @@
    */
   package org.apache.tools.ant.taskdefs.optional.sitraka;
   
  +import java.io.File;
  +import java.io.FileInputStream;
  +import java.util.Enumeration;
  +import java.util.Hashtable;
  +import java.util.NoSuchElementException;
  +import java.util.Vector;
  +import javax.xml.parsers.DocumentBuilder;
  +import javax.xml.parsers.DocumentBuilderFactory;
  +
   import org.apache.tools.ant.Project;
   import org.apache.tools.ant.Task;
   import org.apache.tools.ant.taskdefs.optional.sitraka.bytecode.ClassFile;
  @@ -64,21 +73,6 @@
   import org.w3c.dom.Node;
   import org.w3c.dom.NodeList;
   import org.xml.sax.InputSource;
  -
  -import javax.xml.parsers.DocumentBuilder;
  -import javax.xml.parsers.DocumentBuilderFactory;
  -import javax.xml.transform.OutputKeys;
  -import javax.xml.transform.Transformer;
  -import javax.xml.transform.TransformerFactory;
  -import javax.xml.transform.dom.DOMSource;
  -import javax.xml.transform.stream.StreamResult;
  -import java.io.File;
  -import java.io.FileInputStream;
  -import java.io.FileOutputStream;
  -import java.util.Enumeration;
  -import java.util.Hashtable;
  -import java.util.NoSuchElementException;
  -import java.util.Vector;
   
   /**
    * Little hack to process XML report from JProbe. It will fix
  
  
  

--
To unsubscribe, e-mail:   <mailto:ant-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>


Mime
View raw message