Skip to content

Commit 2188e5f

Browse files
committed
Re-add JUnit 4 to org.eclipse.pde.core.requiredPlugins
Due to changes for #2007, the container org.eclipse.pde.core.requiredPlugins is now missing JUnit 4. This change re-adds JUnit 4 to this container. Fixes: #2020
1 parent c06c4ef commit 2188e5f

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/RequiredPluginsClasspathContainer.java

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,15 @@
2424
import java.util.Comparator;
2525
import java.util.HashMap;
2626
import java.util.HashSet;
27+
import java.util.LinkedHashSet;
2728
import java.util.List;
2829
import java.util.Map;
2930
import java.util.Objects;
3031
import java.util.Optional;
3132
import java.util.Queue;
3233
import java.util.Set;
3334
import java.util.TreeMap;
35+
import java.util.function.Function;
3436
import java.util.stream.Stream;
3537

3638
import org.eclipse.core.resources.IFile;
@@ -79,6 +81,8 @@ class RequiredPluginsClasspathContainer {
7981
private static final Version JUNIT_5_9 = new Version(5, 9, 0);
8082
private static final VersionRange BELOW_JUNIT_5_9 = new VersionRange("[1.0,5.9)"); //$NON-NLS-1$
8183

84+
@SuppressWarnings("nls")
85+
private static final Set<String> JUNIT4_PLUGINS = Set.of("org.junit");
8286
@SuppressWarnings("nls")
8387
private static final Set<String> JUNIT5_RUNTIME_PLUGINS = Set.of("org.junit", //
8488
"junit-platform-launcher",
@@ -594,7 +598,11 @@ private void addJunit5RuntimeDependencies(Set<BundleDescription> added, List<ICl
594598
// JUnit 5.8 and below bundles don't have specific version requirements that we can use
595599
junitRequirements = collectRuntimeRequirementsBelowJunit5_9();
596600
} else {
597-
junitRequirements = DependencyManager.findRequirementsClosure(List.of(junitBundle));
601+
junitRequirements = new LinkedHashSet<>();
602+
List<BundleDescription> junit4Requirements = collectRuntimeRequirements(JUNIT4_PLUGINS, PluginRegistry::findModel);
603+
junitRequirements.addAll(junit4Requirements);
604+
List<BundleDescription> junit5AndAboveRequirements = collectRuntimeRequirements(List.of(junitBundle));
605+
junitRequirements.addAll(junit5AndAboveRequirements);
598606
}
599607
if (junitRequirements.isEmpty()) {
600608
return;
@@ -617,11 +625,17 @@ private void addJunit5RuntimeDependencies(Set<BundleDescription> added, List<ICl
617625
}
618626

619627
private static List<BundleDescription> collectRuntimeRequirementsBelowJunit5_9() {
620-
List<BundleDescription> roots = JUNIT5_RUNTIME_PLUGINS.stream()
621-
.map(id -> PluginRegistry.findModel(id, BELOW_JUNIT_5_9)).filter(Objects::nonNull)
628+
return collectRuntimeRequirements(JUNIT5_RUNTIME_PLUGINS, id -> PluginRegistry.findModel(id, BELOW_JUNIT_5_9));
629+
}
630+
631+
private static List<BundleDescription> collectRuntimeRequirements(Collection<String> bundleIds, Function<String, IPluginModelBase> findModel) {
632+
List<BundleDescription> roots = bundleIds.stream().map(findModel).filter(Objects::nonNull)
622633
.filter(IPluginModelBase::isEnabled).map(IPluginModelBase::getBundleDescription).toList();
623-
Set<BundleDescription> closure = DependencyManager.findRequirementsClosure(roots,
624-
INCLUDE_OPTIONAL_DEPENDENCIES);
634+
return collectRuntimeRequirements(roots);
635+
}
636+
637+
private static List<BundleDescription> collectRuntimeRequirements(List<BundleDescription> roots) {
638+
Set<BundleDescription> closure = DependencyManager.findRequirementsClosure(roots, INCLUDE_OPTIONAL_DEPENDENCIES);
625639
String systemBundleBSN = TargetPlatformHelper.getPDEState().getSystemBundle();
626640
return closure.stream().filter(b -> !b.getSymbolicName().equals(systemBundleBSN))
627641
.sorted(Comparator.comparing(BundleDescription::getSymbolicName)).toList();

0 commit comments

Comments
 (0)