/* * Copyright 2003-2004 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package org.apache.tools.ant.taskdefs.optional.sitraka; import java.io.File; import org.apache.tools.ant.Task; import org.apache.tools.ant.taskdefs.condition.Os; import org.apache.tools.ant.util.FileUtils; /** * Base class that deals with JProbe version incompatibilities. * * @since Ant 1.6 * */ public abstract class CovBase extends Task { private File home; private static FileUtils fu = FileUtils.newFileUtils(); private boolean isJProbe4 = false; private static boolean isDos = Os.isFamily("dos"); /** * The directory where JProbe is installed. */ public void setHome(File value) { this.home = value; } protected File getHome() { return home; } protected File findCoverageJar() { File loc = null; if (isJProbe4) { loc = fu.resolveFile(home, "lib/coverage.jar"); } else { loc = fu.resolveFile(home, "coverage/coverage.jar"); if (!loc.canRead()) { File newLoc = fu.resolveFile(home, "lib/coverage.jar"); if (newLoc.canRead()) { isJProbe4 = true; loc = newLoc; } } } return loc; } protected String findExecutable(String relativePath) { if (isDos) { relativePath += ".exe"; } File loc = null; if (isJProbe4) { loc = fu.resolveFile(home, "bin/" + relativePath); } else { loc = fu.resolveFile(home, relativePath); if (!loc.canRead()) { File newLoc = fu.resolveFile(home, "bin/" + relativePath); if (newLoc.canRead()) { isJProbe4 = true; loc = newLoc; } } } return loc.getAbsolutePath(); } protected File createTempFile(String prefix) { return fu.createTempFile(prefix, ".tmp", null); } protected String getParamFileArgument() { return "-" + (!isJProbe4 ? "jp_" : "") + "paramfile="; } /** * Are we running on a version of JProbe 4.x or higher? */ protected boolean isJProbe4Plus() { return isJProbe4; } }