diff --git a/apisupport.project/src/org/netbeans/modules/apisupport/project/NbModuleProject.java b/apisupport.project/src/org/netbeans/modules/apisupport/project/NbModuleProject.java --- a/apisupport.project/src/org/netbeans/modules/apisupport/project/NbModuleProject.java +++ b/apisupport.project/src/org/netbeans/modules/apisupport/project/NbModuleProject.java @@ -65,6 +65,7 @@ import org.netbeans.api.project.Project; import org.netbeans.api.project.ProjectManager; import org.netbeans.api.project.ProjectInformation; +import org.netbeans.api.project.Sources; import org.netbeans.modules.apisupport.project.spi.NbModuleProvider.NbModuleType; import org.netbeans.modules.apisupport.project.queries.ModuleProjectClassPathExtender; import org.netbeans.modules.apisupport.project.ui.customizer.CustomizerProviderImpl; @@ -174,7 +175,7 @@ List to = new ArrayList(); from.add("${src.dir}/*.java"); // NOI18N to.add("${build.classes.dir}/*.class"); // NOI18N - for (String type : supportedTestTypes()) { + for (String type : supportedTestTypes(false)) { from.add("${test." + type + ".src.dir}/*.java"); // NOI18N to.add("${build.test." + type + ".classes.dir}/*.class"); // NOI18N } @@ -185,14 +186,18 @@ // difficult to predict statically exactly what they are! // XXX would be good to mark at least the module JAR as owned by this project // (currently FOQ/SH do not support that) - sourcesHelper.addPrincipalSourceRoot("${src.dir}", NbBundle.getMessage(NbModuleProject.class, "LBL_source_packages"), null, null); // #56457 - for (String type : supportedTestTypes()) { - sourcesHelper.addPrincipalSourceRoot("${test." + type + ".src.dir}", NbBundle.getMessage(NbModuleProject.class, "LBL_" + type + "_test_packages"), null, null); // #68727 + sourcesHelper.addPrincipalSourceRoot("${src.dir}", JavaProjectConstants.SOURCES_HINT_MAIN, + NbBundle.getMessage(NbModuleProject.class, "LBL_source_packages"), null, null); // #56457 + for (String type : supportedTestTypes(false)) { + sourcesHelper.addPrincipalSourceRoot("${test." + type + ".src.dir}", JavaProjectConstants.SOURCES_HINT_TEST, + NbBundle.getMessage(NbModuleProject.class, "LBL_" + type + "_test_packages"), null, null); // #68727 } - sourcesHelper.addTypedSourceRoot("${src.dir}", JavaProjectConstants.SOURCES_TYPE_JAVA, NbBundle.getMessage(NbModuleProject.class, "LBL_source_packages"), null, null); + sourcesHelper.addTypedSourceRoot("${src.dir}", JavaProjectConstants.SOURCES_TYPE_JAVA, JavaProjectConstants.SOURCES_HINT_MAIN, + NbBundle.getMessage(NbModuleProject.class, "LBL_source_packages"), null, null); // XXX other principal source roots, as needed... - for (String type : supportedTestTypes()) { - sourcesHelper.addTypedSourceRoot("${test." + type + ".src.dir}", JavaProjectConstants.SOURCES_TYPE_JAVA, NbBundle.getMessage(NbModuleProject.class, "LBL_" + type + "_test_packages"), null, null); + for (String type : supportedTestTypes(false)) { + sourcesHelper.addTypedSourceRoot("${test." + type + ".src.dir}", JavaProjectConstants.SOURCES_TYPE_JAVA, JavaProjectConstants.SOURCES_HINT_TEST, + NbBundle.getMessage(NbModuleProject.class, "LBL_" + type + "_test_packages"), null, null); } if (helper.resolveFileObject("javahelp/manifest.mf") == null) { // NOI18N // Special hack for core - ignore core/javahelp @@ -251,7 +256,9 @@ // currently these are hardcoded "build", // NOI18N })); - ic.add(sourcesHelper.createSources()); + Sources srcs = sourcesHelper.createSources(); + ic.add(srcs); + ic.add(sourcesHelper.createSourceGroupModifierImplementation(srcs)); // XXX only for unit tests, will need custom impl for qa-functional ic.add(new AntArtifactProviderImpl(this, helper, evaluator())); ic.add(new CustomizerProviderImpl(this, getHelper(), evaluator())); ic.add(typeProvider); @@ -333,7 +340,7 @@ public String getSourceDirectoryPath() { return evaluator().getProperty("src.dir"); // NOI18N } - + private NbModuleProvider.NbModuleType getModuleType() { Element data = getPrimaryConfigurationData(); if (Util.findElement(data, "suite-component", NbModuleProjectType.NAMESPACE_SHARED) != null) { // NOI18N @@ -383,6 +390,12 @@ public FileObject getTestSourceDirectory(String type) { return getDir("test." + type + ".src.dir"); // NOI18N + } + + // XXX not needed, delete + private File getTestSourceDirectoryFile(String type) { + String dir = evaluator().getProperty("test." + type + ".src.dir"); // NOI18N + return dir != null ? helper.resolveFile(dir) : null; } public File getClassesDirectory() { @@ -572,9 +585,15 @@ } public List supportedTestTypes() { + return supportedTestTypes(true); + } + + public List supportedTestTypes(boolean mustExist) { List types = new ArrayList(); for (String type : COMMON_TEST_TYPES) { - if (getTestSourceDirectory(type) != null && !Boolean.parseBoolean(evaluator().getProperty("disable." + type + ".tests"))) { + if (((mustExist && getTestSourceDirectory(type) != null) + || (! mustExist && getTestSourceDirectoryFile(type) != null)) + && !Boolean.parseBoolean(evaluator().getProperty("disable." + type + ".tests"))) { types.add(type); } } diff --git a/apisupport.project/src/org/netbeans/modules/apisupport/project/queries/UnitTestForSourceQueryImpl.java b/apisupport.project/src/org/netbeans/modules/apisupport/project/queries/UnitTestForSourceQueryImpl.java --- a/apisupport.project/src/org/netbeans/modules/apisupport/project/queries/UnitTestForSourceQueryImpl.java +++ b/apisupport.project/src/org/netbeans/modules/apisupport/project/queries/UnitTestForSourceQueryImpl.java @@ -84,12 +84,7 @@ String path = helper.resolvePath(val); try { File f = helper.resolveFile(path); - if (!f.exists()) { - return null; - } - else { - return new URL[] {f.toURI().normalize().toURL()}; - } + return new URL[] {f.toURI().normalize().toURL()}; } catch (MalformedURLException e) { throw new AssertionError(e); }