? woproject/tests/wo/lib Index: woproject/src/java/org/objectstyle/woproject/ant/AppFormat.java =================================================================== RCS file: /cvsroot/woproject/woproject/projects/woproject/src/java/org/objectstyle/woproject/ant/AppFormat.java,v retrieving revision 1.3 diff -C3 -r1.3 AppFormat.java *** woproject/src/java/org/objectstyle/woproject/ant/AppFormat.java 5 Sep 2003 12:18:15 -0000 1.3 --- woproject/src/java/org/objectstyle/woproject/ant/AppFormat.java 13 Nov 2003 16:24:58 -0000 *************** *** 212,267 **** // track included jar files to avoid double entries Vector jarSet = new Vector(); ! for (int i = 0; i < frameworkSets.size(); i++) { ! FrameworkSet fs = null; ! DirectoryScanner ds = null; ! String[] dirs = null; ! try { ! fs = (FrameworkSet) frameworkSets.get(i); ! // Don't bother checking if it's embedded. ! if (!fs.isReference()) { ! log( ! "fs.createPatternSet().getIncludePatterns(project) " ! + fs.createPatternSet().getIncludePatterns(project), ! Project.MSG_VERBOSE); ! log( ! "fs.createPatternSet().getExcludePatterns(project) " ! + fs.createPatternSet().getExcludePatterns(project), ! Project.MSG_VERBOSE); ! } ! if (fs.getEmbed()) { ! continue; ! } ! ds = fs.getDirectoryScanner(project); ! dirs = ds.getIncludedDirectories(); ! for (int j = 0; j < dirs.length; j++) { ! File[] jars = fs.findJars(dirs[j]); ! if (jars == null || jars.length == 0) { ! log( ! "No Jars in " + dirs[j] + ", ignoring.", ! Project.MSG_VERBOSE); ! continue; ! } ! ! int jsize = jars.length; ! for (int k = 0; k < jsize; k++) { ! if (!jarSet.contains(jars[k])) ! jarSet.add(jars[k]); ! } ! } ! } catch (Exception anException) { ! // directory doesn't exist or is not readable ! log(anException.getMessage(), Project.MSG_WARN); ! } finally { ! fs = null; ! ds = null; ! dirs = null; ! } ! } File aFile = null; try { for (int i = 0; i < jarSet.size(); i++) { --- 212,268 ---- // track included jar files to avoid double entries Vector jarSet = new Vector(); + HashSet processedFrameworks = new HashSet(); ! int size = frameworkSets.size(); ! for (int i = 0; i < size; i++) { ! FrameworkSet fs = (FrameworkSet) frameworkSets.get(i); ! HashSet frameworksToSkip = new HashSet(); ! try { ! String[] frameworks = fs.getFrameworks(); ! if (!fs.isReference()) { ! log( ! "fs.createPatternSet().getIncludePatterns(project) " ! + fs.createPatternSet().getIncludePatterns(project), ! Project.MSG_VERBOSE); ! log( ! "fs.createPatternSet().getExcludePatterns(project) " ! + fs.createPatternSet().getExcludePatterns(project), ! Project.MSG_VERBOSE); ! } ! if (fs.getEmbed()) { ! continue; ! } ! for (int j = 0; j < frameworks.length; j++) { ! String frameworkName = frameworks[j]; ! File[] jars = fs.findJars(frameworkName); ! if (jars == null || jars.length == 0) { ! log("No Jars in " + fs.getDir(project).getPath() + "/" + frameworkName + ", ignoring.", ! Project.MSG_VERBOSE); ! continue; ! } ! if(!processedFrameworks.contains(frameworkName)) { ! int jsize = jars.length; ! for (int k = 0; k < jsize; k++) { ! if (!jarSet.contains(jars[k])) { ! jarSet.add(jars[k]); ! } else { ! log("Skipped " + jars[k].getPath(), Project.MSG_VERBOSE); ! } ! } ! } ! processedFrameworks.add(frameworkName); ! } ! } catch (BuildException be) { ! // directory doesn't exist or is not readable ! log(be.getMessage(), Project.MSG_WARN); ! } finally { ! fs = null; ! } ! } File aFile = null; try { for (int i = 0; i < jarSet.size(); i++) { Index: woproject/src/java/org/objectstyle/woproject/ant/FrameworkSet.java =================================================================== RCS file: /cvsroot/woproject/woproject/projects/woproject/src/java/org/objectstyle/woproject/ant/FrameworkSet.java,v retrieving revision 1.1 diff -C3 -r1.1 FrameworkSet.java *** woproject/src/java/org/objectstyle/woproject/ant/FrameworkSet.java 31 Aug 2003 11:44:18 -0000 1.1 --- woproject/src/java/org/objectstyle/woproject/ant/FrameworkSet.java 13 Nov 2003 16:24:58 -0000 *************** *** 61,66 **** --- 61,67 ---- import org.apache.tools.ant.BuildException; import org.apache.tools.ant.ProjectHelper; import org.apache.tools.ant.types.FileSet; + import org.apache.tools.ant.DirectoryScanner; /** * Customized subclass of FileSet used to locate frameworks. *************** *** 130,136 **** return getProject().getProperty(string) != null; } ! public File[] findJars(String frameworkDir) { if (!testIfCondition()) return new File[] { }; --- 131,142 ---- return getProject().getProperty(string) != null; } ! public String[] getFrameworks() { ! String[] files = getDirectoryScanner(getProject()).getIncludedDirectories(); ! return files; ! } ! ! public File[] findJars(String frameworkDir) { if (!testIfCondition()) return new File[] { }; Index: woproject/src/java/org/objectstyle/woproject/ant/WOCompile.java =================================================================== RCS file: /cvsroot/woproject/woproject/projects/woproject/src/java/org/objectstyle/woproject/ant/WOCompile.java,v retrieving revision 1.1 diff -C3 -r1.1 WOCompile.java *** woproject/src/java/org/objectstyle/woproject/ant/WOCompile.java 31 Aug 2003 11:44:18 -0000 1.1 --- woproject/src/java/org/objectstyle/woproject/ant/WOCompile.java 13 Nov 2003 16:24:58 -0000 *************** *** 56,62 **** --- 56,64 ---- package org.objectstyle.woproject.ant; import java.io.File; + import java.util.Iterator; import java.util.ArrayList; + import java.util.HashSet; import java.util.Vector; import org.apache.tools.ant.BuildException; *************** *** 83,112 **** Project project = getProject(); // track included jar files to avoid double entries ! Vector jarSet = new Vector(); int size = frameworkSets.size(); for (int i = 0; i < size; i++) { FrameworkSet fs = (FrameworkSet) frameworkSets.get(i); try { ! DirectoryScanner ds = fs.getDirectoryScanner(project); ! String[] dirs = ds.getIncludedDirectories(); ! for (int j = 0; j < dirs.length; j++) { ! File[] jars = fs.findJars(dirs[j]); if (jars == null || jars.length == 0) { ! log("No Jars in " + dirs[j] + ", ignoring.", Project.MSG_VERBOSE); continue; } ! int jsize = jars.length; ! for (int k = 0; k < jsize; k++) { ! if(!jarSet.contains(jars[k])) ! jarSet.add(jars[k]); } } } catch (BuildException be) { // directory doesn't exist or is not readable --- 85,122 ---- Project project = getProject(); // track included jar files to avoid double entries ! Vector jarSet = new Vector(); ! HashSet processedFrameworks = new HashSet(); int size = frameworkSets.size(); for (int i = 0; i < size; i++) { FrameworkSet fs = (FrameworkSet) frameworkSets.get(i); + HashSet frameworksToSkip = new HashSet(); try { ! String[] frameworks = fs.getFrameworks(); ! for (int j = 0; j < frameworks.length; j++) { ! String frameworkName = frameworks[j]; ! File[] jars = fs.findJars(frameworkName); if (jars == null || jars.length == 0) { ! log("No Jars in " + fs.getDir(project).getPath() + "/" + frameworkName + ", ignoring.", Project.MSG_VERBOSE); continue; } ! if(!processedFrameworks.contains(frameworkName)) { ! int jsize = jars.length; ! for (int k = 0; k < jsize; k++) { ! if (!jarSet.contains(jars[k])) { ! jarSet.add(jars[k]); ! } else { ! log("Skipped " + jars[k].getPath(), Project.MSG_VERBOSE); ! } ! } } + processedFrameworks.add(frameworkName); } } catch (BuildException be) { // directory doesn't exist or is not readable