Skip to content

Commit b7e4315

Browse files
committed
Move some production-only functionality to PolicyManager
1 parent f4f570e commit b7e4315

File tree

4 files changed

+13
-9
lines changed

4 files changed

+13
-9
lines changed

libs/entitlement/src/main/java/org/elasticsearch/entitlement/runtime/policy/AbstractPolicyManager.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,6 @@ ModuleEntitlements policyEntitlements(
180180
);
181181
}
182182

183-
final Map<Module, ModuleEntitlements> moduleEntitlementsMap = new ConcurrentHashMap<>();
184-
185183
private final Map<String, List<Entitlement>> serverEntitlements;
186184
private final List<Entitlement> apmAgentEntitlements;
187185
private final Map<String, Map<String, List<Entitlement>>> pluginsEntitlements;
@@ -301,9 +299,7 @@ private static Logger getLogger(String componentName, String moduleName) {
301299
*/
302300
private static final ConcurrentHashMap<String, Logger> MODULE_LOGGERS = new ConcurrentHashMap<>();
303301

304-
protected ModuleEntitlements getEntitlements(Class<?> requestingClass) {
305-
return moduleEntitlementsMap.computeIfAbsent(requestingClass.getModule(), m -> computeEntitlements(requestingClass));
306-
}
302+
protected abstract ModuleEntitlements getEntitlements(Class<?> requestingClass);
307303

308304
protected final ModuleEntitlements computeEntitlements(Class<?> requestingClass) {
309305
var policyScope = scopeResolver.apply(requestingClass);

libs/entitlement/src/main/java/org/elasticsearch/entitlement/runtime/policy/PolicyManager.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,15 @@
1515
import java.util.Collection;
1616
import java.util.List;
1717
import java.util.Map;
18+
import java.util.concurrent.ConcurrentHashMap;
1819
import java.util.function.Function;
1920

2021
/**
2122
* The real implementation of {@link AbstractPolicyManager} we use in production.
2223
*/
2324
public final class PolicyManager extends AbstractPolicyManager {
25+
final Map<Module, ModuleEntitlements> moduleEntitlementsMap = new ConcurrentHashMap<>();
26+
2427
public PolicyManager(
2528
Policy serverPolicy,
2629
List<Entitlement> apmAgentEntitlements,
@@ -31,4 +34,10 @@ public PolicyManager(
3134
) {
3235
super(serverPolicy, apmAgentEntitlements, pluginPolicies, scopeResolver, pluginSourcePaths, pathLookup);
3336
}
37+
38+
@Override
39+
protected ModuleEntitlements getEntitlements(Class<?> requestingClass) {
40+
return moduleEntitlementsMap.computeIfAbsent(requestingClass.getModule(), m -> computeEntitlements(requestingClass));
41+
}
42+
3443
}

libs/entitlement/src/test/java/org/elasticsearch/entitlement/runtime/policy/PolicyManagerTests.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
import org.elasticsearch.bootstrap.ScopeResolver;
1313
import org.elasticsearch.common.settings.Settings;
1414
import org.elasticsearch.core.Strings;
15-
import org.elasticsearch.entitlement.runtime.policy.PolicyManager.ModuleEntitlements;
16-
import org.elasticsearch.entitlement.runtime.policy.PolicyManager.PolicyScope;
15+
import org.elasticsearch.entitlement.runtime.policy.AbstractPolicyManager.ModuleEntitlements;
16+
import org.elasticsearch.entitlement.runtime.policy.AbstractPolicyManager.PolicyScope;
1717
import org.elasticsearch.entitlement.runtime.policy.agent.TestAgent;
1818
import org.elasticsearch.entitlement.runtime.policy.agent.inner.TestInnerAgent;
1919
import org.elasticsearch.entitlement.runtime.policy.entitlements.CreateClassLoaderEntitlement;
@@ -39,7 +39,7 @@
3939
import java.util.concurrent.atomic.AtomicReference;
4040

4141
import static java.util.Map.entry;
42-
import static org.elasticsearch.entitlement.runtime.policy.PolicyManager.ComponentKind.SERVER;
42+
import static org.elasticsearch.entitlement.runtime.policy.AbstractPolicyManager.ComponentKind.SERVER;
4343
import static org.hamcrest.Matchers.allOf;
4444
import static org.hamcrest.Matchers.containsString;
4545
import static org.hamcrest.Matchers.is;

test/framework/src/main/java/org/elasticsearch/entitlement/runtime/policy/TestPolicyManager.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ public void setTriviallyAllowingTestCode(boolean newValue) {
6868
* Called between tests so each test is not affected by prior tests
6969
*/
7070
public void reset() {
71-
assert moduleEntitlementsMap.isEmpty() : "We're not supposed to be using moduleEntitlementsMap in tests";
7271
classEntitlementsMap.clear();
7372
isActive = false;
7473
isTriviallyAllowingTestCode = true;

0 commit comments

Comments
 (0)