Bug 412809 - Add support for the include task
Non-uniform buildfile-path-retrieval (caused issues if run on windows)
unified + fix for performance test (os-dependend treshold added).
Change-Id: I1ef6488843e26fea106bd53f657a46034889f102
Signed-off-by: Alexander Blaas <olaf.dev17@gmail.com>
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AntUtilTests.java b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AntUtilTests.java
index c8a1e6a..b9f4de0 100644
--- a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AntUtilTests.java
+++ b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AntUtilTests.java
@@ -34,6 +34,9 @@
public class AntUtilTests extends AbstractAntUITest {
+ private static final long EXECUTION_THRESHOLD_INCLUDE_TASK = 7500;
+ private static final long WINDOWS_EXECUTION_THRESHOLD_INCLUDE_TASK = 15000;
+
public AntUtilTests(String name) {
super(name);
}
@@ -203,10 +206,16 @@
long endTime = System.currentTimeMillis();
Assert.assertNotNull(project);
- // Parsing the file-hierarchy should not take longer than 7.5s
+ /*
+ * Parsing the file-hierarchy should not take longer than:
+ *
+ * - 15s on windows (seems to be a general performance issue on windows)
+ *
+ * - 7.s elsewhere
+ */
long duration = endTime - startTime;
// Change this value if it does not fit the performance needs
- long maxDuration = 7500;
+ long maxDuration = this.getExecutionTresholdIncludeTask();
Assert.assertTrue("Expecting a duration < " + maxDuration + ", but we have " + duration + "ms", duration < maxDuration); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// Test the rest
@@ -222,6 +231,17 @@
}
}
+ private long getExecutionTresholdIncludeTask() {
+ if (this.runsOnWindows()) {
+ return WINDOWS_EXECUTION_THRESHOLD_INCLUDE_TASK;
+ }
+ return EXECUTION_THRESHOLD_INCLUDE_TASK;
+ }
+
+ private boolean runsOnWindows() {
+ return System.getProperty("os.name").toLowerCase().contains("win"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
private AntTargetNode[] getAntTargetNodesOfBuildFile(String buildFileName) {
File buildFile = getBuildFile(buildFileName + ".xml"); //$NON-NLS-1$
AntTargetNode[] targets = AntUtil.getTargets(buildFile.getAbsolutePath());
diff --git a/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/utils/ProjectHelper.java b/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/utils/ProjectHelper.java
index 05fc02a..3bb65b1 100644
--- a/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/utils/ProjectHelper.java
+++ b/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/utils/ProjectHelper.java
@@ -314,7 +314,7 @@
* @return The key as string
*/
private static String getBuildFileKey(IFile buildFile) {
- return buildFile.getLocationURI().getPath();
+ return buildFile.getLocation().toFile().getAbsolutePath();
}
/**
@@ -392,7 +392,7 @@
String currentProjectName = context.getCurrentProjectName();
// just an additional check if the name is non-empty
if (this.isCurrentProjectNameValid(currentProjectName)) {
- String buildFilePath = context.getBuildFile().getPath();
+ String buildFilePath = context.getBuildFile().getAbsolutePath();
storeParsedProjectName(buildFilePath, currentProjectName);
}
}