? cvs commit Index: j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEActionProvider.java =================================================================== RCS file: /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEActionProvider.java,v retrieving revision 1.38 diff -u -r1.38 J2SEActionProvider.java --- j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEActionProvider.java 8 Feb 2005 13:31:22 -0000 1.38 +++ j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEActionProvider.java 10 Mar 2005 10:36:02 -0000 @@ -25,6 +25,7 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.apache.tools.ant.module.api.support.ActionUtils; +import org.netbeans.api.fileinfo.NonRecursiveFolder; import org.netbeans.api.java.classpath.ClassPath; import org.netbeans.api.java.project.JavaProjectConstants; import org.netbeans.api.project.ProjectManager; @@ -149,14 +150,15 @@ if ( command.equals( COMMAND_COMPILE_SINGLE ) ) { FileObject[] sourceRoots = project.getSourceRoots().getRoots(); FileObject[] files = findSourcesAndPackages( context, sourceRoots); + boolean recursive = (context.lookup(NonRecursiveFolder.class) == null); if (files != null) { - p.setProperty("javac.includes", ActionUtils.antIncludesList(files, getRoot(sourceRoots,files[0]))); // NOI18N + p.setProperty("javac.includes", ActionUtils.antIncludesList(files, getRoot(sourceRoots,files[0]), recursive)); // NOI18N targetNames = new String[] {"compile-single"}; // NOI18N } else { FileObject[] testRoots = project.getTestSourceRoots().getRoots(); files = findSourcesAndPackages(context, testRoots); - p.setProperty("javac.includes", ActionUtils.antIncludesList(files, getRoot(testRoots,files[0]))); // NOI18N + p.setProperty("javac.includes", ActionUtils.antIncludesList(files, getRoot(testRoots,files[0]), recursive)); // NOI18N targetNames = new String[] {"compile-test-single"}; // NOI18N } } Index: j2seproject/test/unit/src/org/netbeans/modules/java/j2seproject/J2SEActionProviderTest.java =================================================================== RCS file: /cvs/java/j2seproject/test/unit/src/org/netbeans/modules/java/j2seproject/J2SEActionProviderTest.java,v retrieving revision 1.8 diff -u -r1.8 J2SEActionProviderTest.java --- j2seproject/test/unit/src/org/netbeans/modules/java/j2seproject/J2SEActionProviderTest.java 25 Jan 2005 11:48:39 -0000 1.8 +++ j2seproject/test/unit/src/org/netbeans/modules/java/j2seproject/J2SEActionProviderTest.java 10 Mar 2005 10:36:03 -0000 @@ -16,6 +16,7 @@ import java.io.PrintWriter; import java.net.URL; import java.util.Properties; +import org.netbeans.api.fileinfo.NonRecursiveFolder; import org.netbeans.api.java.project.JavaProjectConstants; import org.netbeans.api.project.Project; import org.netbeans.api.project.ProjectManager; @@ -166,7 +167,7 @@ assertEquals("There must be one target for COMMAND_COMPILE_SINGLE", 1, targets.length); assertEquals("Unexpected target name", "compile-single", targets[0]); assertEquals("There must be one target parameter", 1, p.keySet().size()); - assertEquals("There must be be target parameter", "foo/", p.getProperty("javac.includes")); + assertEquals("There must be be target parameter", "foo/**", p.getProperty("javac.includes")); p = new Properties(); context = Lookups.fixed(new DataObject[] {sourcePkg1, sourcePkg2}); targets = actionProvider.getTargetNames(ActionProvider.COMMAND_COMPILE_SINGLE, context, p); @@ -174,7 +175,7 @@ assertEquals("There must be one target for COMMAND_COMPILE_SINGLE", 1, targets.length); assertEquals("Unexpected target name", "compile-single", targets[0]); assertEquals("There must be one target parameter", 1, p.keySet().size()); - assertEquals("There must be be target parameter", "foo/,foo2/", p.getProperty("javac.includes")); + assertEquals("There must be be target parameter", "foo/**,foo2/**", p.getProperty("javac.includes")); p = new Properties(); context = Lookups.fixed(new DataObject[] {DataFolder.findFolder(sources)}); targets = actionProvider.getTargetNames(ActionProvider.COMMAND_COMPILE_SINGLE, context, p); @@ -184,6 +185,31 @@ assertEquals("There must be one target parameter", 1, p.keySet().size()); assertEquals("There must be be target parameter", "**", p.getProperty("javac.includes")); + p = new Properties(); + context = Lookups.fixed(new Object[] {sourcePkg1, new NonRecursiveFolderImpl (sourcePkg1)}); + targets = actionProvider.getTargetNames(ActionProvider.COMMAND_COMPILE_SINGLE, context, p); + assertNotNull("Must found some targets for COMMAND_COMPILE_SINGLE", targets); + assertEquals("There must be one target for COMMAND_COMPILE_SINGLE", 1, targets.length); + assertEquals("Unexpected target name", "compile-single", targets[0]); + assertEquals("There must be one target parameter", 1, p.keySet().size()); + assertEquals("There must be be target parameter", "foo/*", p.getProperty("javac.includes")); + p = new Properties(); + context = Lookups.fixed(new Object[] {sourcePkg1, sourcePkg2, new NonRecursiveFolderImpl(sourcePkg1), new NonRecursiveFolderImpl(sourcePkg2)}); + targets = actionProvider.getTargetNames(ActionProvider.COMMAND_COMPILE_SINGLE, context, p); + assertNotNull("Must found some targets for COMMAND_COMPILE_SINGLE", targets); + assertEquals("There must be one target for COMMAND_COMPILE_SINGLE", 1, targets.length); + assertEquals("Unexpected target name", "compile-single", targets[0]); + assertEquals("There must be one target parameter", 1, p.keySet().size()); + assertEquals("There must be be target parameter", "foo/*,foo2/*", p.getProperty("javac.includes")); + p = new Properties(); + context = Lookups.fixed(new Object[] {DataFolder.findFolder(sources), new NonRecursiveFolderImpl(sources)}); + targets = actionProvider.getTargetNames(ActionProvider.COMMAND_COMPILE_SINGLE, context, p); + assertNotNull("Must found some targets for COMMAND_COMPILE_SINGLE", targets); + assertEquals("There must be one target for COMMAND_COMPILE_SINGLE", 1, targets.length); + assertEquals("Unexpected target name", "compile-single", targets[0]); + assertEquals("There must be one target parameter", 1, p.keySet().size()); + assertEquals("There must be be target parameter", "*", p.getProperty("javac.includes")); + // test COMMAND_TEST_SINGLE p = new Properties(); @@ -572,6 +598,26 @@ context = Lookups.fixed(new DataObject[] {someSource1, someTest1}); enabled = actionProvider.isActionEnabled(ActionProvider.COMMAND_DEBUG_SINGLE, context); assertFalse("COMMAND_DEBUG_SINGLE must be disabled on mixed multiple test files", enabled); + } + + + private static final class NonRecursiveFolderImpl implements NonRecursiveFolder { + + private FileObject fobj; + + public NonRecursiveFolderImpl (DataObject dobj) { + assert dobj != null; + this.fobj = dobj.getPrimaryFile(); + } + + public NonRecursiveFolderImpl (FileObject fobj) { + assert fobj != null; + this.fobj = fobj; + } + + public FileObject getFolder() { + return this.fobj; + } } }