git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271507 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -0,0 +1,82 @@ | |||||
| <html> | |||||
| <head> | |||||
| <meta http-equiv="Content-Language" content="en-us"> | |||||
| <title>Echoproperties Task</title> | |||||
| </head> | |||||
| <body> | |||||
| <h2><a name="echoproperties">echoproperties</a></h2> | |||||
| <h3>Description</h3> | |||||
| <p>Displays all the current properties in the project. The output can be | |||||
| sent to a file if desired. You can also specify a subset of properties | |||||
| to save by naming a prefix: only properties starting with this | |||||
| prefix will be saved. This task can be used as a somewhat contrived | |||||
| means of returning data from an <tt><ant></tt> invocation, | |||||
| but is really for debugging build files.</p> | |||||
| <h3>Parameters</h3> | |||||
| <table border="1" cellpadding="2" cellspacing="0"> | |||||
| <tr> | |||||
| <td valign="top"><b>Attribute</b></td> | |||||
| <td valign="top"><b>Description</b></td> | |||||
| <td align="center" valign="top"><b>Required</b></td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">destfile</td> | |||||
| <td valign="top">If specified, the value indicates the name of the | |||||
| file to send the output of the statement to. The generated output file | |||||
| is compatible for loading by any Java application as a property file. | |||||
| If not specified, then the output will go to the Ant log.</td> | |||||
| <td valign="top" align="center">No</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">prefix</td> | |||||
| <td valign="top"> | |||||
| a prefix which is used to filter the properties | |||||
| only those properties starting with this prefix will be echoed. | |||||
| <P> | |||||
| </td> | |||||
| <td valign="top" align="center">No</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">failonerror</td> | |||||
| <td valign="top">By default, the "failonerror" attribute is enabled. | |||||
| If an error occurs while writing the properties to a file, and this | |||||
| attribute is enabled, then a BuildException will be thrown, causing the | |||||
| build to fail. If disabled, then IO errors will be reported as a log | |||||
| statement, and the build will continue without failure from this task.</td> | |||||
| <td valign="top" align="center">No</td> | |||||
| </tr> | |||||
| </table> | |||||
| <h3>Examples</h3> | |||||
| <blockquote><pre> | |||||
| <echoproperties /> | |||||
| </pre></blockquote> | |||||
| <p>Report the current properties to the log.</p> | |||||
| <blockquote><pre> | |||||
| <echoproperties destfile="my.properties" /> | |||||
| </pre></blockquote> | |||||
| <p>Report the current properties to the file "my.properties", and will | |||||
| fail the build if the file could not be created or written to.</p> | |||||
| <blockquote><pre> | |||||
| <echoproperties destfile="my.properties" failonerror="false" /> | |||||
| </pre></blockquote> | |||||
| <p>Report the current properties to the file "my.properties", and will | |||||
| log a message if the file could not be created or written to, but will still | |||||
| allow the build to continue.</p> | |||||
| <blockquote><pre> | |||||
| <echoproperties prefix="java."/> | |||||
| </pre></blockquote> | |||||
| <p>List all properties beginning with "java."</p> | |||||
| <hr> | |||||
| <p align="center">Copyright © 2002 Apache Software Foundation. All rights | |||||
| Reserved.</p> | |||||
| </body> | |||||
| </html> | |||||
| @@ -20,6 +20,7 @@ | |||||
| <a href="OptionalTasks/ccm.html">Continuus/Synergy Tasks</a><br> | <a href="OptionalTasks/ccm.html">Continuus/Synergy Tasks</a><br> | ||||
| <a href="OptionalTasks/depend.html">Depend</a><br> | <a href="OptionalTasks/depend.html">Depend</a><br> | ||||
| <a href="OptionalTasks/ejb.html">EJB Tasks</a><br> | <a href="OptionalTasks/ejb.html">EJB Tasks</a><br> | ||||
| <a href="OptionalTasks/echoproperties.html">Echoproperties</a><br> | |||||
| <a href="OptionalTasks/ftp.html">FTP</a><br> | <a href="OptionalTasks/ftp.html">FTP</a><br> | ||||
| <a href="OptionalTasks/icontract.html">IContract</a><br> | <a href="OptionalTasks/icontract.html">IContract</a><br> | ||||
| <a href="OptionalTasks/javacc.html">JavaCC</a><br> | <a href="OptionalTasks/javacc.html">JavaCC</a><br> | ||||
| @@ -820,6 +820,13 @@ documentation.</p> | |||||
| generalization of <a href="CoreTasks/available.html">Available</a> and | generalization of <a href="CoreTasks/available.html">Available</a> and | ||||
| <a href="CoreTasks/uptodate.html">Uptodate</a>.</p></td> | <a href="CoreTasks/uptodate.html">Uptodate</a>.</p></td> | ||||
| </tr> | </tr> | ||||
| <tr valign="top"> | |||||
| <td nowrap> | |||||
| <a href="OptionalTasks/echoproperties.html">Echoproperties</a><br> | |||||
| </td> | |||||
| <td><p>Lists the current properties</p></td> | |||||
| </tr> | |||||
| <tr valign="top"> | <tr valign="top"> | ||||
| <td nowrap><a href="CoreTasks/loadfile.html">LoadFile</a></td> | <td nowrap><a href="CoreTasks/loadfile.html">LoadFile</a></td> | ||||
| @@ -0,0 +1,49 @@ | |||||
| <project name="test" default="def" basedir="."> | |||||
| <target name="def"> | |||||
| </target> | |||||
| <target name="setup"> | |||||
| <property name="a.set" value="true" /> | |||||
| <property name="b.set" value="false" /> | |||||
| </target> | |||||
| <target name="testEchoToLog" depends="setup"> | |||||
| <echoproperties /> | |||||
| </target> | |||||
| <target name="testEchoToBadFile" depends="setup"> | |||||
| <echoproperties destfile="." /> | |||||
| </target> | |||||
| <target name="testEchoToBadFileFail" depends="setup"> | |||||
| <echoproperties destfile="." failonerror="yes" /> | |||||
| </target> | |||||
| <target name="testEchoToBadFileNoFail" depends="setup"> | |||||
| <echoproperties destfile="." failonerror="no" /> | |||||
| </target> | |||||
| <target name="testEchoToGoodFile" depends="setup"> | |||||
| <echoproperties destfile="test.properties" /> | |||||
| </target> | |||||
| <target name="testEchoToGoodFileFail" depends="setup"> | |||||
| <echoproperties destfile="test.properties" failonerror="yes" /> | |||||
| </target> | |||||
| <target name="testEchoToGoodFileNoFail" depends="setup"> | |||||
| <echoproperties destfile="test.properties" failonerror="no" /> | |||||
| </target> | |||||
| <target name="testEchoPrefix" depends="setup"> | |||||
| <echoproperties destfile="test-prefix.properties" prefix="a." /> | |||||
| </target> | |||||
| <target name="cleanup"> | |||||
| <delete file="test.properties" failonerror="no" /> | |||||
| <delete file="test-prefix.properties" failonerror="no" /> | |||||
| </target> | |||||
| </project> | |||||
| @@ -139,6 +139,7 @@ sosget=org.apache.tools.ant.taskdefs.optional.sos.SOSGet | |||||
| soscheckin=org.apache.tools.ant.taskdefs.optional.sos.SOSCheckin | soscheckin=org.apache.tools.ant.taskdefs.optional.sos.SOSCheckin | ||||
| soscheckout=org.apache.tools.ant.taskdefs.optional.sos.SOSCheckout | soscheckout=org.apache.tools.ant.taskdefs.optional.sos.SOSCheckout | ||||
| soslabel=org.apache.tools.ant.taskdefs.optional.sos.SOSLabel | soslabel=org.apache.tools.ant.taskdefs.optional.sos.SOSLabel | ||||
| echoproperties=org.apache.tools.ant.taskdefs.optional.EchoProperties | |||||
| # deprecated ant tasks (kept for back compatibility) | # deprecated ant tasks (kept for back compatibility) | ||||
| starteam=org.apache.tools.ant.taskdefs.optional.scm.AntStarTeamCheckOut | starteam=org.apache.tools.ant.taskdefs.optional.scm.AntStarTeamCheckOut | ||||
| @@ -0,0 +1,209 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2000 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.taskdefs.optional; | |||||
| import org.apache.tools.ant.Project; | |||||
| import org.apache.tools.ant.Task; | |||||
| import org.apache.tools.ant.BuildException; | |||||
| import java.util.Properties; | |||||
| import java.util.Hashtable; | |||||
| import java.util.Enumeration; | |||||
| import java.io.ByteArrayOutputStream; | |||||
| import java.io.OutputStream; | |||||
| import java.io.File; | |||||
| import java.io.IOException; | |||||
| import java.io.FileOutputStream; | |||||
| /** | |||||
| * Displays all the current properties in the build. The output can be sent to | |||||
| * a file if desired. <P> | |||||
| * | |||||
| * Attribute "destfile" defines a file to send the properties to. This can be | |||||
| * processed as a standard property file later. <P> | |||||
| * | |||||
| * Attribute "prefix" defines a prefix which is used to filter the properties | |||||
| * only those properties starting with this prefix will be echoed. <P> | |||||
| * | |||||
| * By default, the "failonerror" attribute is enabled. If an error occurs while | |||||
| * writing the properties to a file, and this attribute is enabled, then a | |||||
| * BuildException will be thrown. If disabled, then IO errors will be reported | |||||
| * as a log statement, but no error will be thrown. <P> | |||||
| * | |||||
| * Examples: <pre> | |||||
| * <echoproperties /> | |||||
| * </pre> Report the current properties to the log. <P> | |||||
| * | |||||
| * <pre> | |||||
| * <echoproperties destfile="my.properties" /> | |||||
| * </pre> Report the current properties to the file "my.properties", and will | |||||
| * fail the build if the file could not be created or written to. <P> | |||||
| * | |||||
| * <pre> | |||||
| * <echoproperties destfile="my.properties" failonerror="false" | |||||
| * prefix="ant" /> | |||||
| * </pre> Report all properties beginning with 'ant' to the file | |||||
| * "my.properties", and will log a message if the file could not be created or | |||||
| * written to, but will still allow the build to continue. | |||||
| * | |||||
| *@author Matt Albrecht <a href="mailto:groboclown@users.sourceforge.net"> | |||||
| * groboclown@users.sourceforge.net</a> | |||||
| *@created 17-Jan-2002 | |||||
| *@since Ant 1.5 | |||||
| */ | |||||
| public class EchoProperties extends Task { | |||||
| /** | |||||
| * File object pointing to the output file. If this is null, then we output | |||||
| * to the project log, not to a file. | |||||
| */ | |||||
| private File destfile = null; | |||||
| /** | |||||
| * If this is true, then errors generated during file output will become | |||||
| * build errors, and if false, then such errors will be logged, but not | |||||
| * thrown. | |||||
| */ | |||||
| private boolean failonerror = true; | |||||
| /** | |||||
| * prefix string controls which properties to save | |||||
| */ | |||||
| private String prefix = null; | |||||
| /** | |||||
| * set a file to use for the output | |||||
| */ | |||||
| public void setDestfile(File destfile) { | |||||
| this.destfile = destfile; | |||||
| } | |||||
| /** | |||||
| *@param failonerror <tt>true</tt> if IO exceptions are reported as build | |||||
| * exceptions, or <tt>false</tt> if IO exceptions are ignored. | |||||
| */ | |||||
| public void setFailOnError(boolean failonerror) { | |||||
| this.failonerror = failonerror; | |||||
| } | |||||
| /** | |||||
| *@param prefix The new prefix value | |||||
| */ | |||||
| public void setPrefix(String prefix) { | |||||
| this.prefix = prefix; | |||||
| } | |||||
| /** | |||||
| * Run the task. | |||||
| * | |||||
| *@exception BuildException trouble, probably file IO | |||||
| */ | |||||
| public void execute() throws BuildException { | |||||
| //copy the properties file | |||||
| Hashtable allProps = project.getProperties(); | |||||
| try { | |||||
| if (destfile == null) { | |||||
| ByteArrayOutputStream baos = new ByteArrayOutputStream(); | |||||
| saveProperties(allProps, baos); | |||||
| log(baos.toString(), Project.MSG_INFO); | |||||
| } else { | |||||
| OutputStream os = new FileOutputStream(this.destfile); | |||||
| saveProperties(allProps, os); | |||||
| } | |||||
| } catch (IOException ioe) { | |||||
| String message = | |||||
| "Destfile " + destfile + " could not be written to."; | |||||
| if (failonerror) { | |||||
| throw new BuildException(message, ioe, | |||||
| location); | |||||
| } else { | |||||
| log(message, Project.MSG_INFO); | |||||
| } | |||||
| } | |||||
| } | |||||
| /** | |||||
| * Send the key/value pairs in the hashtable to the given output stream. | |||||
| * The output stream will be closed when this method returns. | |||||
| * | |||||
| *@param allProps propfile to save | |||||
| *@param os output stream | |||||
| *@exception IOException trouble | |||||
| */ | |||||
| protected void saveProperties(Hashtable allProps, OutputStream os) | |||||
| throws IOException { | |||||
| Properties props = new Properties(); | |||||
| Enumeration enum = allProps.keys(); | |||||
| while (enum.hasMoreElements()) { | |||||
| String name = (String) enum.nextElement(); | |||||
| String value = (String) allProps.get(name); | |||||
| if (prefix == null || name.indexOf(prefix) == 0 ) { | |||||
| props.setProperty(name, value); | |||||
| } | |||||
| } | |||||
| try { | |||||
| props.store(os, "Ant properties"); | |||||
| } finally { | |||||
| os.close(); | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,206 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2000-2002 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.taskdefs.optional; | |||||
| import org.apache.tools.ant.BuildFileTest; | |||||
| import java.io.*; | |||||
| import java.util.Properties; | |||||
| /** | |||||
| * Tests the EchoProperties task. | |||||
| * | |||||
| * @author Matt Albrecht <a href="mailto:groboclown@users.sourceforge.net">groboclown@users.sourceforge.net</a> | |||||
| * @created 17-Jan-2002 | |||||
| * @since Ant 1.5 | |||||
| */ | |||||
| public class EchoPropertiesTest extends BuildFileTest { | |||||
| private final static String TASKDEFS_DIR = "src/etc/testcases/taskdefs/optional/"; | |||||
| private static final String GOOD_OUTFILE = "test.properties"; | |||||
| private static final String PREFIX_OUTFILE = "test-prefix.properties"; | |||||
| private static final String BAD_OUTFILE = "."; | |||||
| public EchoPropertiesTest(String name) { | |||||
| super(name); | |||||
| } | |||||
| public void setUp() { | |||||
| configureProject(TASKDEFS_DIR + "echoproperties.xml"); | |||||
| project.setProperty( "test.property", "is set" ); | |||||
| } | |||||
| public void tearDown() { | |||||
| executeTarget("cleanup"); | |||||
| } | |||||
| public void testEchoToLog() { | |||||
| executeTarget( "testEchoToLog" ); | |||||
| String out = getLog(); | |||||
| assertTrue( | |||||
| "Did not output testEchoToLog.", | |||||
| out.indexOf( "test.property=is set" ) >= 0 ); | |||||
| } | |||||
| public void testEchoToBadFile() { | |||||
| expectBuildExceptionContaining( "testEchoToBadFile", | |||||
| "outfile is not writeable", | |||||
| "Destfile "+toAbsolute(BAD_OUTFILE)+" could not be written to." ); | |||||
| } | |||||
| public void testEchoToBadFileFail() { | |||||
| expectBuildExceptionContaining( "testEchoToBadFileFail", | |||||
| "outfile is not writeable", | |||||
| "Destfile "+toAbsolute(BAD_OUTFILE)+" could not be written to." ); | |||||
| } | |||||
| public void testEchoToBadFileNoFail() { | |||||
| expectLog( "testEchoToBadFileNoFail", | |||||
| "Destfile "+toAbsolute(BAD_OUTFILE)+" could not be written to." ); | |||||
| } | |||||
| public void testEchoToGoodFile() throws Exception { | |||||
| executeTarget( "testEchoToGoodFile" ); | |||||
| assertGoodFile(); | |||||
| } | |||||
| public void testEchoToGoodFileFail() throws Exception { | |||||
| executeTarget( "testEchoToGoodFileFail" ); | |||||
| assertGoodFile(); | |||||
| } | |||||
| public void testEchoToGoodFileNoFail() throws Exception { | |||||
| executeTarget( "testEchoToGoodFileNoFail" ); | |||||
| assertGoodFile(); | |||||
| } | |||||
| public void testEchoPrefix() throws Exception { | |||||
| executeTarget( "testEchoPrefix" ); | |||||
| Properties props=loadPropFile(PREFIX_OUTFILE); | |||||
| // props.list(System.out); | |||||
| assertEquals("prefix didn't include 'a.set' property","true",props.getProperty("a.set")); | |||||
| assertNull("prefix failed to filter out property 'b.set'", | |||||
| props.getProperty("b.set")); | |||||
| } | |||||
| protected Properties loadPropFile(String relativeFilename) | |||||
| throws IOException { | |||||
| File f = createRelativeFile( relativeFilename ); | |||||
| Properties props=new Properties(); | |||||
| InputStream in=null; | |||||
| try { | |||||
| in=new BufferedInputStream(new FileInputStream(f)); | |||||
| props.load(in); | |||||
| } finally { | |||||
| if(in!=null) { | |||||
| try { in.close(); } catch(IOException e) {} | |||||
| } | |||||
| } | |||||
| return props; | |||||
| } | |||||
| protected void assertGoodFile() throws Exception { | |||||
| File f = createRelativeFile( GOOD_OUTFILE ); | |||||
| assertTrue( | |||||
| "Did not create "+f.getAbsolutePath(), | |||||
| f.exists() ); | |||||
| Properties props=loadPropFile(GOOD_OUTFILE); | |||||
| props.list(System.out); | |||||
| assertEquals("test property not found ", | |||||
| "is set",props.getProperty("test.property")); | |||||
| /* | |||||
| // read in the file | |||||
| FileReader fr = new FileReader( f ); | |||||
| try { | |||||
| BufferedReader br = new BufferedReader( fr ); | |||||
| String read = null; | |||||
| while ( (read = br.readLine()) != null) | |||||
| { | |||||
| if (read.indexOf("test.property=is set") >= 0) | |||||
| { | |||||
| // found the property we set - it's good. | |||||
| return; | |||||
| } | |||||
| } | |||||
| fail( "did not encounter set property in generated file." ); | |||||
| } finally { | |||||
| try { fr.close(); } catch(IOException e) {} | |||||
| } | |||||
| */ | |||||
| } | |||||
| protected String toAbsolute( String filename ) { | |||||
| return createRelativeFile( filename ).getAbsolutePath(); | |||||
| } | |||||
| protected File createRelativeFile( String filename ) { | |||||
| if (filename.equals( "." )) { | |||||
| return getProjectDir(); | |||||
| } | |||||
| // else | |||||
| return new File( getProjectDir(), filename ); | |||||
| } | |||||
| } | |||||