Lines 55-60
Link Here
|
55 |
import java.util.ArrayList; |
55 |
import java.util.ArrayList; |
56 |
import java.util.Collection; |
56 |
import java.util.Collection; |
57 |
import java.util.Collections; |
57 |
import java.util.Collections; |
|
|
58 |
import java.util.EnumSet; |
58 |
import java.util.HashMap; |
59 |
import java.util.HashMap; |
59 |
import java.util.HashSet; |
60 |
import java.util.HashSet; |
60 |
import java.util.LinkedList; |
61 |
import java.util.LinkedList; |
Lines 121-126
Link Here
|
121 |
import static org.netbeans.api.java.classpath.ClassPath.SOURCE; |
122 |
import static org.netbeans.api.java.classpath.ClassPath.SOURCE; |
122 |
import static org.netbeans.api.java.classpath.ClassPath.COMPILE; |
123 |
import static org.netbeans.api.java.classpath.ClassPath.COMPILE; |
123 |
import static org.netbeans.api.java.project.JavaProjectConstants.SOURCES_TYPE_JAVA; |
124 |
import static org.netbeans.api.java.project.JavaProjectConstants.SOURCES_TYPE_JAVA; |
|
|
125 |
import org.netbeans.api.java.source.ClassIndex; |
126 |
import org.netbeans.api.java.source.ClassIndex.SearchScope; |
124 |
import org.netbeans.modules.gsf.testrunner.api.UnitTestsUsage; |
127 |
import org.netbeans.modules.gsf.testrunner.api.UnitTestsUsage; |
125 |
import org.netbeans.modules.java.testrunner.GuiUtils; |
128 |
import org.netbeans.modules.java.testrunner.GuiUtils; |
126 |
import static org.openide.ErrorManager.ERROR; |
129 |
import static org.openide.ErrorManager.ERROR; |
Lines 317-322
Link Here
|
317 |
false); |
320 |
false); |
318 |
} |
321 |
} |
319 |
|
322 |
|
|
|
323 |
|
320 |
/** |
324 |
/** |
321 |
* |
325 |
* |
322 |
*/ |
326 |
*/ |
Lines 342-352
Link Here
|
342 |
return null; |
346 |
return null; |
343 |
} |
347 |
} |
344 |
|
348 |
|
345 |
ClassPath oppoRootsClassPath = ClassPathSupport |
349 |
ClassPath oppoRootsClassPath = ClassPathSupport.createClassPath(oppoRootsURLs); |
346 |
.createClassPath(oppoRootsURLs); |
350 |
Set<FileObject> oppositeFiles = new java.util.LinkedHashSet<FileObject>(); |
347 |
final List<FileObject> oppoFiles = oppoRootsClassPath |
351 |
if (sourceToTest) { |
348 |
.findAllResources(oppoResourceName); |
352 |
|
349 |
if (oppoFiles.isEmpty()) { |
353 |
FileObject fo = sourceLocation.getFileObject(); |
|
|
354 |
ClassPath bootCp = ClassPath.getClassPath(fo, ClassPath.BOOT); |
355 |
ClassPath compileCp = ClassPath.getClassPath(fo, ClassPath.COMPILE); |
356 |
final ClasspathInfo info = ClasspathInfo.create(bootCp, compileCp, oppoRootsClassPath); |
357 |
|
358 |
final Set<ElementHandle<TypeElement>> result = info.getClassIndex().getDeclaredTypes(String.format(".*%s.*(Test|IT)", fo.getName()), ClassIndex.NameKind.REGEXP, EnumSet.of(ClassIndex.SearchScope.SOURCE)); |
359 |
for (ElementHandle<TypeElement> te : result) { |
360 |
|
361 |
Set<FileObject> resources = info.getClassIndex().getResources(te, EnumSet.of(ClassIndex.SearchKind.TYPE_REFERENCES), EnumSet.of(SearchScope.SOURCE)); |
362 |
oppositeFiles.addAll(resources); |
363 |
System.out.println("resources = " + resources); |
364 |
} |
365 |
} else { |
366 |
oppositeFiles.addAll(oppoRootsClassPath.findAllResources(oppoResourceName)); |
367 |
} |
368 |
|
369 |
|
370 |
|
371 |
|
372 |
|
373 |
if (oppositeFiles.isEmpty()) { |
350 |
//if (sourceToTest) { |
374 |
//if (sourceToTest) { |
351 |
// PENDING - offer creation of new test class |
375 |
// PENDING - offer creation of new test class |
352 |
//} |
376 |
//} |
Lines 355-361
Link Here
|
355 |
|
379 |
|
356 |
// final ElementHandle elementHandle = sourceLocation.getElementHandle(); |
380 |
// final ElementHandle elementHandle = sourceLocation.getElementHandle(); |
357 |
// if (elementHandle == null) { |
381 |
// if (elementHandle == null) { |
358 |
return new Location(oppoFiles.get(0)/*, null*/); |
382 |
//FIXME: handle more than one match |
|
|
383 |
return new Location(oppositeFiles.iterator().next()/*, null*/); |
359 |
// } |
384 |
// } |
360 |
|
385 |
|
361 |
// /* Build SOURCE classpath: */ |
386 |
// /* Build SOURCE classpath: */ |