? 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 11:56:54 -0000 *************** *** 212,218 **** // track included jar files to avoid double entries Vector jarSet = new Vector(); ! for (int i = 0; i < frameworkSets.size(); i++) { FrameworkSet fs = null; --- 212,218 ---- // track included jar files to avoid double entries Vector jarSet = new Vector(); ! HashSet loadedFrameworks = new HashSet(); for (int i = 0; i < frameworkSets.size(); i++) { FrameworkSet fs = null; *************** *** 220,226 **** 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) " --- 220,236 ---- String[] dirs = null; try { fs = (FrameworkSet) frameworkSets.get(i); ! HashSet frameworksToSkip = new HashSet(); ! ! String[] frameworks = fs.getFrameworks(); ! ! for (int k = 0; k < frameworks.length; k++) { ! String frameworkName = frameworks[k]; ! if(loadedFrameworks.contains(frameworkName)) ! frameworksToSkip.add(frameworkName); ! loadedFrameworks.add(frameworkName); ! } ! // Don't bother checking if it's embedded. if (!fs.isReference()) { log( "fs.createPatternSet().getIncludePatterns(project) " *************** *** 249,256 **** int jsize = jars.length; for (int k = 0; k < jsize; k++) { ! if (!jarSet.contains(jars[k])) ! jarSet.add(jars[k]); } } } catch (Exception anException) { --- 259,278 ---- int jsize = jars.length; for (int k = 0; k < jsize; k++) { ! if (!jarSet.contains(jars[k])) { ! boolean skip = false; ! for (Iterator names = frameworksToSkip.iterator(); names.hasNext();) { ! String frameworkName = (String)names.next(); ! if(jars[k].getPath().indexOf(frameworkName)> 0) { ! skip = true; ! break; ! } ! } ! if(!skip) ! jarSet.add(jars[k]); ! else ! log("Skipped " + jars[k].getPath(), Project.MSG_VERBOSE); ! } } } } catch (Exception anException) { 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 11:56:54 -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 11:56:54 -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,94 **** 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(); --- 85,107 ---- 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(); + String[] frameworks = fs.getFrameworks(); + + for (int k = 0; k < frameworks.length; k++) { + String frameworkName = frameworks[k]; + if(processedFrameworks.contains(frameworkName)) + frameworksToSkip.add(frameworkName); + processedFrameworks.add(frameworkName); + } + try { DirectoryScanner ds = fs.getDirectoryScanner(project); String[] dirs = ds.getIncludedDirectories(); *************** *** 104,111 **** int jsize = jars.length; for (int k = 0; k < jsize; k++) { ! if(!jarSet.contains(jars[k])) ! jarSet.add(jars[k]); } } } catch (BuildException be) { --- 117,136 ---- int jsize = jars.length; for (int k = 0; k < jsize; k++) { ! if (!jarSet.contains(jars[k])) { ! boolean skip = false; ! for (Iterator names = frameworksToSkip.iterator(); names.hasNext();) { ! String frameworkName = (String)names.next(); ! if(jars[k].getPath().indexOf(frameworkName)> 0) { ! skip = true; ! break; ! } ! } ! if(!skip) ! jarSet.add(jars[k]); ! else ! log("Skipped " + jars[k].getPath(), Project.MSG_VERBOSE); ! } } } } catch (BuildException be) {