Skip to content

Commit d6b2189

Browse files
committed
Substitute ALL-UNNAMED for module name in non-modular plugins
1 parent 1e74aa0 commit d6b2189

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

test/framework/src/main/java/org/elasticsearch/bootstrap/TestScopeResolver.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.net.URL;
1919
import java.util.List;
2020
import java.util.Map;
21+
import java.util.Set;
2122
import java.util.TreeMap;
2223
import java.util.function.Function;
2324

@@ -49,20 +50,22 @@ PolicyManager.PolicyScope getScope(Class<?> callerClass) {
4950

5051
public static Function<Class<?>, PolicyManager.PolicyScope> createScopeResolver(
5152
TestBuildInfo serverBuildInfo,
52-
List<TestBuildInfo> pluginsBuildInfo
53+
List<TestBuildInfo> pluginsBuildInfo,
54+
Set<String> modularPlugins
5355
) {
54-
5556
Map<String, PolicyManager.PolicyScope> scopeMap = new TreeMap<>(); // Sorted to make it easier to read during debugging
5657
for (var pluginBuildInfo : pluginsBuildInfo) {
58+
boolean isModular = modularPlugins.contains(pluginBuildInfo.component());
5759
for (var location : pluginBuildInfo.locations()) {
5860
var codeSource = TestScopeResolver.class.getClassLoader().getResource(location.representativeClass());
5961
if (codeSource == null) {
6062
throw new IllegalArgumentException("Cannot locate class [" + location.representativeClass() + "]");
6163
}
6264
try {
65+
String module = isModular ? location.module() : ALL_UNNAMED;
6366
scopeMap.put(
6467
getCodeSource(codeSource, location.representativeClass()),
65-
PolicyManager.PolicyScope.plugin(pluginBuildInfo.component(), location.module())
68+
PolicyManager.PolicyScope.plugin(pluginBuildInfo.component(), module)
6669
);
6770
} catch (MalformedURLException e) {
6871
throw new IllegalArgumentException("Cannot locate class [" + location.representativeClass() + "]", e);

test/framework/src/main/java/org/elasticsearch/entitlement/bootstrap/TestEntitlementBootstrap.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040

4141
import static java.util.stream.Collectors.toCollection;
4242
import static java.util.stream.Collectors.toMap;
43+
import static java.util.stream.Collectors.toSet;
4344
import static org.elasticsearch.entitlement.runtime.policy.PathLookup.BaseDir.CONFIG;
4445
import static org.elasticsearch.entitlement.runtime.policy.PathLookup.BaseDir.TEMP;
4546

@@ -92,10 +93,14 @@ public static void reset() {
9293
private static TestPolicyManager createPolicyManager(Path tempDir, Path configDir) throws IOException {
9394
var pluginsTestBuildInfo = TestBuildInfoParser.parseAllPluginTestBuildInfo();
9495
var serverTestBuildInfo = TestBuildInfoParser.parseServerTestBuildInfo();
95-
var scopeResolver = TestScopeResolver.createScopeResolver(serverTestBuildInfo, pluginsTestBuildInfo);
9696
List<String> pluginNames = pluginsTestBuildInfo.stream().map(TestBuildInfo::component).toList();
9797

9898
var pluginDescriptors = parsePluginsDescriptors(pluginNames);
99+
Set<String> modularPlugins = pluginDescriptors.stream()
100+
.filter(PluginDescriptor::isModular)
101+
.map(PluginDescriptor::getName)
102+
.collect(toSet());
103+
var scopeResolver = TestScopeResolver.createScopeResolver(serverTestBuildInfo, pluginsTestBuildInfo, modularPlugins);
99104
var pluginsData = pluginDescriptors.stream()
100105
.map(descriptor -> new TestPluginData(descriptor.getName(), descriptor.isModular(), false))
101106
.toList();

test/framework/src/test/java/org/elasticsearch/bootstrap/TestScopeResolverTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.elasticsearch.test.ESTestCase;
1414

1515
import java.util.List;
16+
import java.util.Set;
1617

1718
import static org.hamcrest.Matchers.is;
1819

@@ -23,7 +24,7 @@ public void testScopeResolverServerClass() {
2324
"server",
2425
List.of(new TestBuildInfoLocation("org/elasticsearch/Build.class", "org.elasticsearch.server"))
2526
);
26-
var resolver = TestScopeResolver.createScopeResolver(testBuildInfo, List.of());
27+
var resolver = TestScopeResolver.createScopeResolver(testBuildInfo, List.of(), Set.of());
2728

2829
var scope = resolver.apply(Plugin.class);
2930
assertThat(scope.componentName(), is("(server)"));
@@ -39,7 +40,7 @@ public void testScopeResolverInternalClass() {
3940
"test-component",
4041
List.of(new TestBuildInfoLocation("org/elasticsearch/bootstrap/TestBuildInfoParserTests.class", "test-module-name"))
4142
);
42-
var resolver = TestScopeResolver.createScopeResolver(testBuildInfo, List.of(testOwnBuildInfo));
43+
var resolver = TestScopeResolver.createScopeResolver(testBuildInfo, List.of(testOwnBuildInfo), Set.of("test-component"));
4344

4445
var scope = resolver.apply(this.getClass());
4546
assertThat(scope.componentName(), is("test-component"));

0 commit comments

Comments
 (0)