diff --git a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractDirResourceCollection$DirectoryFilter.class b/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractDirResourceCollection$DirectoryFilter.class deleted file mode 100644 index 335fb77f1..000000000 Binary files a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractDirResourceCollection$DirectoryFilter.class and /dev/null differ diff --git a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractDirResourceCollection$NonDirectoryFilter.class b/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractDirResourceCollection$NonDirectoryFilter.class deleted file mode 100644 index 7cc264cf5..000000000 Binary files a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractDirResourceCollection$NonDirectoryFilter.class and /dev/null differ diff --git a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractDirResourceCollection.class b/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractDirResourceCollection.class deleted file mode 100644 index 110cd05a7..000000000 Binary files a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractDirResourceCollection.class and /dev/null differ diff --git a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractWrappedFileSet.class b/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractWrappedFileSet.class new file mode 100644 index 000000000..4ea4b5a3c Binary files /dev/null and b/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractWrappedFileSet.class differ diff --git a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceFileSet.class b/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceFileSet.class new file mode 100644 index 000000000..3e5d6e3b3 Binary files /dev/null and b/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceFileSet.class differ diff --git a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection$DirectoryFilter.class b/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection$DirectoryFilter.class deleted file mode 100644 index 610bbcfa7..000000000 Binary files a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection$DirectoryFilter.class and /dev/null differ diff --git a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection$NonDirectoryFilter.class b/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection$NonDirectoryFilter.class deleted file mode 100644 index b9537fcc5..000000000 Binary files a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection$NonDirectoryFilter.class and /dev/null differ diff --git a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection.class b/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection.class deleted file mode 100644 index 5d648d452..000000000 Binary files a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection.class and /dev/null differ diff --git a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/OptionalDirResourceCollection.class b/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/OptionalDirResourceCollection.class deleted file mode 100644 index ebb0030ed..000000000 Binary files a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/OptionalDirResourceCollection.class and /dev/null differ diff --git a/utilities/anttasks/src/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractDirResourceCollection.java b/utilities/anttasks/src/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractDirResourceCollection.java deleted file mode 100644 index 058912f46..000000000 --- a/utilities/anttasks/src/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractDirResourceCollection.java +++ /dev/null @@ -1,125 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -package edu.cornell.mannlib.vitro.utilities.anttasks; - -import java.io.File; -import java.io.FileFilter; -import java.util.Iterator; -import java.util.List; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.types.DataType; -import org.apache.tools.ant.types.Resource; -import org.apache.tools.ant.types.ResourceCollection; -import org.apache.tools.ant.types.resources.FileResource; - -/** - * Include all files that are in the primary directory, but do not have matching - * files in the blocking directory. - */ -public abstract class AbstractDirResourceCollection extends DataType implements - ResourceCollection { - protected List files = null; - protected File primaryDir; - - @Override - public boolean isFilesystemOnly() { - return true; - } - - /** - * Insure that the list has been filled and return an iterator to the list. - */ - @Override - public Iterator iterator() { - fillFilesList(); - return files.iterator(); - } - - /** - * Insure that the list has been filled and return the size of the list. - */ - @Override - public int size() { - fillFilesList(); - return files.size(); - } - - public void setPrimary(File primaryDir) { - this.primaryDir = primaryDir; - } - - protected abstract void fillFilesList(); - - /** - * The directory path must be provided, and unless the optional flag is set, - * must point to an existing, readable directory. - */ - protected void confirmValidDirectory(File dir, String label, - boolean optional) { - if (dir == null) { - throw new BuildException(label + " directory not specified."); - } - if (!dir.exists()) { - if (optional) { - return; - } else { - throw new BuildException(label + " directory '" + dir.getPath() - + "' does not exist."); - } - } - if (!dir.isDirectory()) { - throw new BuildException(label + " directory '" + dir.getPath() - + "' is not a directory."); - } - if (!dir.canRead()) { - throw new BuildException(label + " directory '" + dir.getPath() - + "' is not readable."); - } - } - - protected void includeAllFiles(File primary) { - for (File file : primary.listFiles(new NonDirectoryFilter())) { - files.add(buildResource(file)); - } - for (File primarySubDir : primary.listFiles(new DirectoryFilter())) { - includeAllFiles(primarySubDir); - } - } - - /** - * All file resources are based on the original primary directory. - */ - protected FileResource buildResource(File file) { - String primaryBasePath = primaryDir.getAbsolutePath(); - String filePath = file.getAbsolutePath(); - if (!filePath.startsWith(primaryBasePath)) { - throw new IllegalStateException("File is not a descendant " - + "of the primary directory: file='" + file - + "', primary='" + primaryDir + "'"); - } - - String pathPart = filePath.substring(primaryBasePath.length()); - if (pathPart.startsWith(File.separator)) { - pathPart = pathPart.substring(1); - } - - // System.out.println("Resource: b='" + primaryDir + "', name='" + - // pathPart + "'"); - return new FileResource(primaryDir, pathPart); - } - - public class DirectoryFilter implements FileFilter { - @Override - public boolean accept(File file) { - return file.isDirectory(); - } - } - - public class NonDirectoryFilter implements FileFilter { - @Override - public boolean accept(File file) { - return !file.isDirectory(); - } - } -} diff --git a/utilities/anttasks/src/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractWrappedFileSet.java b/utilities/anttasks/src/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractWrappedFileSet.java new file mode 100644 index 000000000..9b9e80b18 --- /dev/null +++ b/utilities/anttasks/src/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractWrappedFileSet.java @@ -0,0 +1,72 @@ +/* $This file is distributed under the terms of the license in /doc/license.txt$ */ + +package edu.cornell.mannlib.vitro.utilities.anttasks; + +import java.io.File; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.Project; +import org.apache.tools.ant.types.FileSet; +import org.apache.tools.ant.types.Resource; +import org.apache.tools.ant.types.ResourceCollection; +import org.apache.tools.ant.types.resources.FileResource; + +/** + * A base class for our custom-made FileSet extensions. + */ +public abstract class AbstractWrappedFileSet implements ResourceCollection { + protected List files; + + private Project p; + private File dir; + + private FileSet fileSet; + + public void setProject(Project p) { + this.p = p; + } + + public void setDir(File dir) { + this.dir = dir; + } + + @Override + public Object clone() { + throw new BuildException(this.getClass().getSimpleName() + + " does not support cloning."); + } + + @Override + public boolean isFilesystemOnly() { + return true; + } + + @Override + public Iterator iterator() { + fillFileList(); + return files.iterator(); + } + + @Override + public int size() { + fillFileList(); + return files.size(); + } + + protected abstract void fillFileList(); + + protected FileSet getInternalFileSet() { + if (fileSet != null) { + return fileSet; + } + + fileSet = new FileSet(); + fileSet.setProject(p); + fileSet.setDir(dir); + return fileSet; + } + +} diff --git a/utilities/anttasks/src/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceFileSet.java b/utilities/anttasks/src/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceFileSet.java new file mode 100644 index 000000000..2ebd9bb19 --- /dev/null +++ b/utilities/anttasks/src/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceFileSet.java @@ -0,0 +1,57 @@ +/* $This file is distributed under the terms of the license in /doc/license.txt$ */ + +package edu.cornell.mannlib.vitro.utilities.anttasks; + +import java.io.File; +import java.util.ArrayList; +import java.util.Iterator; + +import org.apache.tools.ant.types.FileSet; +import org.apache.tools.ant.types.Path; +import org.apache.tools.ant.types.resources.FileResource; + +/** + * TODO + */ +public class DirDifferenceFileSet extends AbstractWrappedFileSet { + private Path blockingPath; + + @SuppressWarnings("hiding") + public void addConfiguredPath(Path blockingPath) { + this.blockingPath = blockingPath; + } + + @Override + protected void fillFileList() { + if (files != null) { + return; + } + + FileSet fs = getInternalFileSet(); + + @SuppressWarnings("unchecked") + Iterator iter = fs.iterator(); + + files = new ArrayList(); + while (iter.hasNext()) { + FileResource fr = iter.next(); + if (!isBlocked(fr)) { + files.add(fr); + } + } + } + + /** + * Check to see whether this same file exists in any of the blocking + * directories. + */ + private boolean isBlocked(FileResource fr) { + for (String blockingDir : blockingPath.list()) { + File f = new File(blockingDir + File.separator + fr.getName()); + if (f.exists()) { + return true; + } + } + return false; + } +} diff --git a/utilities/anttasks/src/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection.java b/utilities/anttasks/src/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection.java deleted file mode 100644 index bd2da2425..000000000 --- a/utilities/anttasks/src/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection.java +++ /dev/null @@ -1,92 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -package edu.cornell.mannlib.vitro.utilities.anttasks; - -import java.io.File; -import java.util.ArrayList; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.types.ResourceCollection; -import org.apache.tools.ant.types.resources.FileResource; - -/** - * Include all files that are in the primary directory, but do not have matching - * files in the blocking directory. - */ -public class DirDifferenceResourceCollection extends - AbstractDirResourceCollection implements ResourceCollection { - private File blockingDir; - private boolean blockingOptional; - - public void setBlocking(File blockingDir) { - this.blockingDir = blockingDir; - } - - public void setBlockingOptional(boolean blockingOptional) { - this.blockingOptional = blockingOptional; - } - - /** - * If the list hasn't already been filled, fill it with all files in the - * primary directory that are not blocked by files with the same path under - * the blocking directory. - */ - @Override - protected void fillFilesList() { - if (files != null) { - return; - } - - confirmValidDirectory(primaryDir, "Primary", false); - confirmValidDirectory(blockingDir, "Blocking", blockingOptional); - - files = new ArrayList(); - includeUnblockedFiles(primaryDir, blockingDir); - } - - /** - * Include any file from the primary directory that does not match a file in - * the blocking directory. - * - * Include all files from any subdirectory that has no matching subdirectory - * in the blocking directory. - * - * Include all unblocked files from any subdirectory that has a matching - * subdirectory in the blocking directory. - * - * NOTE: if a file is matched by a subdirectory, the file is blocked. If a - * subdirectory is matched by a file, an exception is thrown. - */ - private void includeUnblockedFiles(File primary, File blocking) { - for (File file : primary.listFiles(new NonDirectoryFilter())) { - if (!isBlocked(file, blocking)) { - files.add(buildResource(file)); - } - } - for (File primarySubDir : primary.listFiles(new DirectoryFilter())) { - File blockingSubDir = findMatchingDir(primarySubDir, blocking); - if (blockingSubDir == null) { - includeAllFiles(primarySubDir); - } else { - includeUnblockedFiles(primarySubDir, blockingSubDir); - } - } - } - - private boolean isBlocked(File file, File blocking) { - return new File(blocking, file.getName()).exists(); - } - - private File findMatchingDir(File primary, File blockingParent) { - File dir = new File(blockingParent, primary.getName()); - if (!dir.exists()) { - return null; - } - if (!dir.isDirectory()) { - throw new BuildException("Directory '" + primary - + "' is blocked by a non-directory '" + dir.getPath() + "'"); - } - return dir; - } - -} diff --git a/utilities/anttasks/src/edu/cornell/mannlib/vitro/utilities/anttasks/OptionalDirResourceCollection.java b/utilities/anttasks/src/edu/cornell/mannlib/vitro/utilities/anttasks/OptionalDirResourceCollection.java deleted file mode 100644 index 65daae2b3..000000000 --- a/utilities/anttasks/src/edu/cornell/mannlib/vitro/utilities/anttasks/OptionalDirResourceCollection.java +++ /dev/null @@ -1,35 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -package edu.cornell.mannlib.vitro.utilities.anttasks; - -import java.util.ArrayList; - -import org.apache.tools.ant.types.ResourceCollection; -import org.apache.tools.ant.types.resources.FileResource; - -/** - * If the primary directory exists, include all files that are descendent from - * it. Otherwise, don't complain but act as a collection of zero files. - */ -public class OptionalDirResourceCollection extends - AbstractDirResourceCollection implements ResourceCollection { - - /** - * If the list hasn't already been filled, fill it with all files in the - * primary directory that are not blocked by files with the same path under - * the blocking directory. - */ - @Override - protected void fillFilesList() { - if (files != null) { - return; - } - files = new ArrayList(); - - confirmValidDirectory(primaryDir, "The", true); - - if (primaryDir.exists()) { - includeAllFiles(primaryDir); - } - } -} diff --git a/webapp/product-build.xml b/webapp/product-build.xml index 15ad66502..89ec1acb5 100644 --- a/webapp/product-build.xml +++ b/webapp/product-build.xml @@ -40,10 +40,7 @@ custom Ant types - - - - - - - - - - - - - - - - - --> -