@@ -1,7 +1,7 @@
/*
/*
* The Apache Software License, Version 1.1
* The Apache Software License, Version 1.1
*
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* Copyright (c) 2001-2002 The Apache Software Foundation. All rights
* reserved.
* reserved.
*
*
* Redistribution and use in source and binary forms, with or without
* Redistribution and use in source and binary forms, with or without
@@ -179,6 +179,8 @@ public class DependSet extends MatchingTask {
// Grab all the target files specified via filesets
// Grab all the target files specified via filesets
//
//
Vector allTargets = new Vector();
Vector allTargets = new Vector();
long oldestTargetTime = 0;
File oldestTarget = null;
Enumeration enumTargetSets = targetFileSets.elements();
Enumeration enumTargetSets = targetFileSets.elements();
while (enumTargetSets.hasMoreElements()) {
while (enumTargetSets.hasMoreElements()) {
@@ -195,6 +197,12 @@ public class DependSet extends MatchingTask {
log("Warning: "+targetFiles[i]+" modified in the future.",
log("Warning: "+targetFiles[i]+" modified in the future.",
Project.MSG_WARN);
Project.MSG_WARN);
}
}
if (oldestTarget == null ||
dest.lastModified() < oldestTargetTime) {
oldestTargetTime = dest.lastModified();
oldestTarget = dest;
}
}
}
}
}
@@ -223,81 +231,80 @@ public class DependSet extends MatchingTask {
log("Warning: "+targetFiles[i]+" modified in the future.",
log("Warning: "+targetFiles[i]+" modified in the future.",
Project.MSG_WARN);
Project.MSG_WARN);
}
}
if (oldestTarget == null ||
dest.lastModified() < oldestTargetTime) {
oldestTargetTime = dest.lastModified();
oldestTarget = dest;
}
}
}
}
}
if (oldestTarget != null) {
log(oldestTarget + " is oldest target file", Project.MSG_VERBOSE);
} else {
// no target files, then we cannot remove any target files and
// skip the following tests right away
upToDate = false;
}
//
//
// Check targets vs source files specified via filesets
// Check targets vs source files specified via fileli sts
//
//
if (upToDate) {
if (upToDate) {
Enumeration enumSourceSets = sourceFileSets.elements();
while (upToDate && enumSourceSets.hasMoreElements()) {
Enumeration enumSourceLists = sourceFileLis ts.elements();
while (upToDate && enumSourceLis ts.hasMoreElements()) {
FileSet sourceFS = (FileSet) enumSourceSets.nextElement();
DirectoryScanner sourceDS = sourceFS.getDirectoryScanner(project);
String[] sourceFiles = sourceDS.getIncludedFiles();
FileList sourceFL = (FileList) enumSourceLists.nextElement();
String[] sourceFiles = sourceFL.getFiles(project);
for (int i=0; upToDate && i < sourceFiles.length; i++) {
File src = new File(sourceFS.getDir(project), sourceFiles[i]);
int i = 0;
do {
File src = new File(sourceFL.getDir(project), sourceFiles[i]);
if (src.lastModified() > now) {
if (src.lastModified() > now) {
log("Warning: "+sourceFiles[i]+" modified in the future.",
log("Warning: "+sourceFiles[i]+" modified in the future.",
Project.MSG_WARN);
Project.MSG_WARN);
}
}
Enumeration enumTargets = allTargets.elements();
while (upToDate && enumTargets.hasMoreElements()) {
File dest = (File)enumTargets.nextElement();
if (src.lastModified() > dest.lastModified()) {
log(dest.getPath() + " is out of date with respect to " +
sourceFiles[i], Project.MSG_VERBOSE);
upToDate = false;
if (!src.exists()) {
log(sourceFiles[i]+ " does not exist.", Project.MSG_VERBOSE);
upToDate = false;
break;
}
}
if (src.lastModified() > oldestTargetTime) {
upToDate = false;
log(oldestTarget + " is out of date with respect to " +
sourceFiles[i], Project.MSG_VERBOSE);
}
}
}
} while (upToDate && (++i < sourceFiles.length) );
}
}
}
}
//
//
// Check targets vs source files specified via fileli sts
// Check targets vs source files specified via filese ts
//
//
if (upToDate) {
if (upToDate) {
Enumeration enumSourceLists = sourceFileLis ts.elements();
while (upToDate && enumSourceLis ts.hasMoreElements()) {
Enumeration enumSourceSets = sourceFileSe ts.elements();
while (upToDate && enumSourceSe ts.hasMoreElements()) {
FileList sourceFL = (FileList) enumSourceLists.nextElement();
String[] sourceFiles = sourceFL.getFiles(project);
FileSet sourceFS = (FileSet) enumSourceSets.nextElement();
DirectoryScanner sourceDS = sourceFS.getDirectoryScanner(project);
String[] sourceFiles = sourceDS.getIncludedFiles();
int i = 0;
do {
File src = new File(sourceFL.getDir(project), sourceFiles[i]);
for (int i=0; upToDate && i < sourceFiles.length; i++) {
File src = new File(sourceFS.getDir(project), sourceFiles[i]);
if (src.lastModified() > now) {
if (src.lastModified() > now) {
log("Warning: "+sourceFiles[i]+" modified in the future.",
log("Warning: "+sourceFiles[i]+" modified in the future.",
Project.MSG_WARN);
Project.MSG_WARN);
}
}
if (!src.exists()) {
log(sourceFiles[i]+ " does not exist.", Project.MSG_VERBOSE);
if (src.lastModified() > oldestTargetTime) {
upToDate = false;
upToDate = false;
break;
log(oldestTarget + " is out of date with respect to " +
sourceFiles[i], Project.MSG_VERBOSE);
}
}
Enumeration enumTargets = allTargets.elements();
while (upToDate && enumTargets.hasMoreElements()) {
File dest = (File)enumTargets.nextElement();
if (src.lastModified() > dest.lastModified()) {
log(dest.getPath() + " is out of date with respect to " +
sourceFiles[i], Project.MSG_VERBOSE);
upToDate = false;
}
}
} while (upToDate && (++i < sourceFiles.length) );
}
}
}
}
}