git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@591425 13f79535-47bb-0310-9956-ffa450edef68master
@@ -52,14 +52,22 @@ import org.apache.tools.ant.types.EnumeratedAttribute; | |||
* @ant.task category="control" | |||
*/ | |||
public class WaitFor extends ConditionBase { | |||
/** a millisecond */ | |||
public static final long ONE_MILLISECOND = 1L; | |||
/** a second in milliseconds */ | |||
public static final long ONE_SECOND = 1000L; | |||
/** a minute in milliseconds */ | |||
public static final long ONE_MINUTE = ONE_SECOND * 60L; | |||
/** an hour in milliseconds */ | |||
public static final long ONE_HOUR = ONE_MINUTE * 60L; | |||
/** a day in milliseconds */ | |||
public static final long ONE_DAY = ONE_HOUR * 24L; | |||
/** a week in milliseconds */ | |||
public static final long ONE_WEEK = ONE_DAY * 7L; | |||
/** default wait time */ | |||
public static final long DEFAULT_MAX_WAIT_MILLIS = ONE_MINUTE * 3L; | |||
/** default check time */ | |||
public static final long DEFAULT_CHECK_MILLIS = 500L; | |||
/** default max wait time in the current unit*/ | |||
@@ -1080,7 +1080,8 @@ public class JUnitTask extends Task { | |||
* @return true if the run should be withoutput and error | |||
*/ | |||
private boolean equalsWithOutAndErr(String summaryOption) { | |||
return summaryOption != null && "withoutanderr".equals(summaryOption.toLowerCase(Locale.ENGLISH)); | |||
return summaryOption != null && "withoutanderr".equals( | |||
summaryOption.toLowerCase(Locale.ENGLISH)); | |||
} | |||
private void checkIncludeSummary(CommandlineJava cmd) { | |||
@@ -1,9 +1,10 @@ | |||
/* | |||
* Copyright 2007 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 | |||
* Licensed to the Apache Software Foundation (ASF) under one or more | |||
* contributor license agreements. See the NOTICE file distributed with | |||
* this work for additional information regarding copyright ownership. | |||
* The ASF licenses this file to You 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 | |||
* | |||
@@ -38,7 +39,7 @@ public class BlockFor extends WaitFor { | |||
*/ | |||
public BlockFor() { | |||
super("blockfor"); | |||
text=getTaskName()+" timed out"; | |||
text = getTaskName() + " timed out"; | |||
} | |||
/** | |||
@@ -1,9 +1,10 @@ | |||
/* | |||
* Copyright 2007 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 | |||
* Licensed to the Apache Software Foundation (ASF) under one or more | |||
* contributor license agreements. See the NOTICE file distributed with | |||
* this work for additional information regarding copyright ownership. | |||
* The ASF licenses this file to You 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 | |||
* | |||
@@ -14,6 +15,7 @@ | |||
* limitations under the License. | |||
* | |||
*/ | |||
package org.apache.tools.ant.taskdefs.optional.testing; | |||
import org.apache.tools.ant.BuildException; | |||
@@ -1,9 +1,10 @@ | |||
/* | |||
* Copyright 2007 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 | |||
* Licensed to the Apache Software Foundation (ASF) under one or more | |||
* contributor license agreements. See the NOTICE file distributed with | |||
* this work for additional information regarding copyright ownership. | |||
* The ASF licenses this file to You 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 | |||
* | |||
@@ -38,14 +39,19 @@ import org.apache.tools.ant.taskdefs.WaitFor; | |||
* <li>A reporting sequence that runs after the tests have finished</li> | |||
* <li>A "teardown" clause that runs after the rest.</li> | |||
* <li>Automated termination of the program it executes, if a timeout is not met</li> | |||
* <li>Checking of a failure property and automatic raising of a fault (with the text in failureText) | |||
* <li>Checking of a failure property and automatic raising of a fault | |||
* (with the text in failureText) | |||
* if test shutdown and reporting succeeded</li> | |||
* </ul> | |||
* | |||
* The task is designed to be framework neutral; it will work with JUnit, TestNG and other test frameworks That can be | |||
* executed from Ant. It bears a resemblance to the FunctionalTest task from SmartFrog, as the attribute names were | |||
* chosen to make migration easier. However, this task benefits from the ability to tweak Ant's internals, and so | |||
* simplify the workflow, and from the experience of using the SmartFrog task. No code has been shared. | |||
* The task is designed to be framework neutral; it will work with JUnit, | |||
* TestNG and other test frameworks That can be | |||
* executed from Ant. It bears a resemblance to the FunctionalTest task from | |||
* SmartFrog, as the attribute names were | |||
* chosen to make migration easier. However, this task benefits from the | |||
* ability to tweak Ant's internals, and so | |||
* simplify the workflow, and from the experience of using the SmartFrog task. | |||
* No code has been shared. | |||
* | |||
* @since Ant 1.8 | |||
*/ | |||
@@ -53,7 +59,8 @@ import org.apache.tools.ant.taskdefs.WaitFor; | |||
public class Funtest extends Task { | |||
/** | |||
* A condition that must be true before the tests are run. This makes it easier to define complex tests that only | |||
* A condition that must be true before the tests are run. This makes it | |||
* easier to define complex tests that only | |||
* run if certain conditions are met, such as OS or network state. | |||
*/ | |||
private Condition condition; | |||
@@ -65,7 +72,8 @@ public class Funtest extends Task { | |||
private Parallel timedTests; | |||
/** | |||
* Setup runs if the condition is met. Once setup is complete, teardown will be run when the task finishes | |||
* Setup runs if the condition is met. Once setup is complete, teardown | |||
* will be run when the task finishes | |||
*/ | |||
private Sequential setup; | |||
@@ -85,7 +93,8 @@ public class Funtest extends Task { | |||
private Sequential tests; | |||
/** | |||
* Reporting only runs if the tests were executed. If the block stopped them, reporting is skipped. | |||
* Reporting only runs if the tests were executed. If the block stopped | |||
* them, reporting is skipped. | |||
*/ | |||
private Sequential reporting; | |||
@@ -99,12 +108,12 @@ public class Funtest extends Task { | |||
*/ | |||
private long timeout; | |||
private long timeoutUnitMultiplier= WaitFor.ONE_MILLISECOND; | |||
private long timeoutUnitMultiplier = WaitFor.ONE_MILLISECOND; | |||
/** | |||
* time for the execution to time out. | |||
*/ | |||
private long shutdownTime = 10*WaitFor.ONE_SECOND; | |||
private long shutdownTime = 10 * WaitFor.ONE_SECOND; | |||
private long shutdownUnitMultiplier = WaitFor.ONE_MILLISECOND; | |||
@@ -116,7 +125,7 @@ public class Funtest extends Task { | |||
/** | |||
* Message to send when tests failed | |||
*/ | |||
private String failureMessage="Tests failed"; | |||
private String failureMessage = "Tests failed"; | |||
/** | |||
* Flag to set to true if you don't care about any shutdown errors. | |||
@@ -125,7 +134,7 @@ public class Funtest extends Task { | |||
* turned into BuildFault events. Similar to catching and ignoring | |||
* <code>finally {}</code> clauses in Java/ | |||
*/ | |||
private boolean failOnTeardownErrors=true; | |||
private boolean failOnTeardownErrors = true; | |||
/** | |||
@@ -153,7 +162,9 @@ public class Funtest extends Task { | |||
public static final String APPLICATION_FORCIBLY_SHUT_DOWN = "Application forcibly shut down"; | |||
/** {@value} */ | |||
public static final String SHUTDOWN_INTERRUPTED = "Shutdown interrupted"; | |||
public static final String SKIPPING_TESTS = "Condition failed -skipping tests"; | |||
/** {@value} */ | |||
public static final String SKIPPING_TESTS | |||
= "Condition failed -skipping tests"; | |||
/** | |||
* Log if the definition is overriding something | |||
@@ -224,7 +235,7 @@ public class Funtest extends Task { | |||
} | |||
public void setTimeoutUnit(WaitFor.Unit unit) { | |||
timeoutUnitMultiplier=unit.getMultiplier(); | |||
timeoutUnitMultiplier = unit.getMultiplier(); | |||
} | |||
public void setShutdownUnit(WaitFor.Unit unit) { | |||
@@ -263,7 +274,7 @@ public class Funtest extends Task { | |||
* @return a bound and initialised parallel instance. | |||
*/ | |||
private Parallel newParallel(long parallelTimeout) { | |||
Parallel par=new Parallel(); | |||
Parallel par = new Parallel(); | |||
bind(par); | |||
par.setFailOnAny(true); | |||
par.setTimeout(parallelTimeout); | |||
@@ -275,7 +286,7 @@ public class Funtest extends Task { | |||
* @param parallelTimeout timeout | |||
* @return a bound and initialised parallel instance. | |||
*/ | |||
private Parallel newParallel(long parallelTimeout,Task child) { | |||
private Parallel newParallel(long parallelTimeout, Task child) { | |||
Parallel par = newParallel(parallelTimeout); | |||
par.addTask(child); | |||
return par; | |||
@@ -443,7 +454,7 @@ public class Funtest extends Task { | |||
&& getProject().getProperty(failureProperty) != null) { | |||
//we've failed | |||
log(failureMessage); | |||
if(taskException == null) { | |||
if (taskException == null) { | |||
taskException = new BuildException(failureMessage); | |||
} | |||
} | |||
@@ -209,7 +209,7 @@ public abstract class DefaultRmicAdapter implements RmicAdapter { | |||
cmd.createArgument().setValue("-classpath"); | |||
cmd.createArgument().setPath(classpath); | |||
String stubOption=addStubVersionOptions(); | |||
String stubOption = addStubVersionOptions(); | |||
if (stubOption != null) { | |||
//set the non-null stubOption | |||
cmd.createArgument().setValue(stubOption); | |||
@@ -19,8 +19,6 @@ | |||
package org.apache.tools.ant.taskdefs.rmic; | |||
import java.lang.reflect.Method; | |||
import java.util.List; | |||
import java.util.ArrayList; | |||
import org.apache.tools.ant.AntClassLoader; | |||
import org.apache.tools.ant.BuildException; | |||
@@ -51,6 +49,7 @@ public class WLRmic extends DefaultRmicAdapter { | |||
public static final String WL_RMI_STUB_SUFFIX = "_WLStub"; | |||
/** The skeleton suffix */ | |||
public static final String WL_RMI_SKEL_SUFFIX = "_WLSkel"; | |||
/** upsupported error message */ | |||
public static final String UNSUPPORTED_STUB_OPTION = "Unsupported stub option: "; | |||
/** | |||
@@ -128,7 +127,8 @@ public class WLRmic extends DefaultRmicAdapter { | |||
//handle the many different stub options. | |||
String stubVersion = getRmic().getStubVersion(); | |||
if (null != stubVersion) { | |||
getRmic().log(UNSUPPORTED_STUB_OPTION + stubVersion,Project.MSG_WARN); | |||
getRmic().log(UNSUPPORTED_STUB_OPTION + stubVersion, | |||
Project.MSG_WARN); | |||
} | |||
return null; | |||
} | |||
@@ -1,9 +1,10 @@ | |||
/* | |||
* Copyright 2007 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 | |||
* Licensed to the Apache Software Foundation (ASF) under one or more | |||
* contributor license agreements. See the NOTICE file distributed with | |||
* this work for additional information regarding copyright ownership. | |||
* The ASF licenses this file to You 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 | |||
* | |||
@@ -14,6 +15,7 @@ | |||
* limitations under the License. | |||
* | |||
*/ | |||
package org.apache.tools.ant.util; | |||
import org.apache.tools.ant.Task; | |||
@@ -35,7 +37,7 @@ public class WorkerAnt extends Thread { | |||
private Task task; | |||
private Object notify; | |||
private volatile boolean finished=false; | |||
private volatile boolean finished = false; | |||
private volatile BuildException buildException; | |||
private volatile Throwable exception; | |||
@@ -64,12 +66,13 @@ public class WorkerAnt extends Thread { | |||
* @param task the task | |||
*/ | |||
public WorkerAnt(Task task) { | |||
this(task,null); | |||
this(task, null); | |||
} | |||
/** | |||
* Get any build exception. | |||
* This would seem to be oversynchronised, but know that Java pre-1.5 can reorder volatile access. | |||
* This would seem to be oversynchronised, but know that Java pre-1.5 can | |||
* reorder volatile access. | |||
* The synchronized attribute is to force an ordering. | |||
* | |||
* @return the exception or null | |||
@@ -81,7 +84,7 @@ public class WorkerAnt extends Thread { | |||
/** | |||
* Get whatever was thrown, which may or may not be a buildException. | |||
* Assertion: getException() instanceof BuildException <=> getBuildException()==getException() | |||
* @return | |||
* @return the exception. | |||
*/ | |||
public synchronized Throwable getException() { | |||
return exception; | |||
@@ -99,7 +102,8 @@ public class WorkerAnt extends Thread { | |||
/** | |||
* Query the task/thread for being finished. | |||
* This would seem to be oversynchronised, but know that Java pre-1.5 can reorder volatile access. | |||
* This would seem to be oversynchronised, but know that Java pre-1.5 can | |||
* reorder volatile access. | |||
* The synchronized attribute is to force an ordering. | |||
* @return true if the task is finished. | |||
*/ | |||
@@ -113,8 +117,8 @@ public class WorkerAnt extends Thread { | |||
* @throws InterruptedException if the execution was interrupted | |||
*/ | |||
public void waitUntilFinished(long timeout) throws InterruptedException { | |||
synchronized(notify) { | |||
if(!finished) { | |||
synchronized (notify) { | |||
if (!finished) { | |||
notify.wait(timeout); | |||
} | |||
} | |||
@@ -140,9 +144,9 @@ public class WorkerAnt extends Thread { | |||
*/ | |||
private synchronized void caught(Throwable thrown) { | |||
exception = thrown; | |||
buildException = (thrown instanceof BuildException)? | |||
(BuildException)thrown | |||
:new BuildException(thrown); | |||
buildException = (thrown instanceof BuildException) | |||
? (BuildException) thrown | |||
: new BuildException(thrown); | |||
} | |||
/** | |||
@@ -158,7 +162,7 @@ public class WorkerAnt extends Thread { | |||
caught(thrown); | |||
} finally { | |||
synchronized (notify) { | |||
finished=true; | |||
finished = true; | |||
//reset the task. | |||
//wake up our owner, if it is waiting | |||
notify.notifyAll(); | |||