Skip to content

refactor: cleanup 0.10.0 deprecations #5058

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 23, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import org.eclipse.edc.policy.engine.spi.PolicyContext;
import org.eclipse.edc.policy.engine.spi.PolicyEngine;
import org.eclipse.edc.policy.engine.spi.PolicyRuleFunction;
import org.eclipse.edc.policy.engine.spi.PolicyValidatorFunction;
import org.eclipse.edc.policy.engine.spi.PolicyValidatorRule;
import org.eclipse.edc.policy.engine.spi.plan.PolicyEvaluationPlan;
import org.eclipse.edc.policy.engine.validation.PolicyValidator;
Expand All @@ -40,7 +39,6 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.BiFunction;
import java.util.function.Predicate;

import static org.eclipse.edc.spi.result.Result.failure;
Expand All @@ -51,8 +49,6 @@
*/
public class PolicyEngineImpl implements PolicyEngine {

public static final String ALL_SCOPES_DELIMITED = ALL_SCOPES + DELIMITER;

private final Map<String, Class<? extends PolicyContext>> scopes = new HashMap<>();

private final List<ConstraintFunctionEntry<Rule, ? extends PolicyContext>> constraintFunctions = new ArrayList<>();
Expand All @@ -70,10 +66,6 @@ public PolicyEngineImpl(ScopeFilter scopeFilter, RuleValidator ruleValidator) {
this.ruleValidator = ruleValidator;
}

public static boolean scopeFilter(String entry, String scope) {
return ALL_SCOPES_DELIMITED.equals(entry) || scope.startsWith(entry);
}

@Override
public Policy filter(Policy policy, String scope) {
return scopeFilter.applyScope(policy, scope);
Expand Down Expand Up @@ -206,34 +198,16 @@ public <R extends Rule, C extends PolicyContext> void registerFunction(Class<C>
constraintFunctions.add(new ConstraintFunctionEntry(contextType, type, key, function));
}

@Override
@SuppressWarnings({ "unchecked", "rawtypes" })
public <R extends Rule, C extends PolicyContext> void registerFunction(String scope, Class<R> type, String key, AtomicConstraintRuleFunction<R, C> function) {
constraintFunctions.add(new ConstraintFunctionEntry(contextType(scope), type, key, function));
}

@Override
public <R extends Rule, C extends PolicyContext> void registerFunction(Class<C> contextType, Class<R> type, DynamicAtomicConstraintRuleFunction<R, C> function) {
dynamicConstraintFunctions.add(new DynamicConstraintFunctionEntry(contextType, type, function));
}

@Override
@SuppressWarnings({ "unchecked", "rawtypes" })
public <R extends Rule, C extends PolicyContext> void registerFunction(String scope, Class<R> type, DynamicAtomicConstraintRuleFunction<R, C> function) {
dynamicConstraintFunctions.add(new DynamicConstraintFunctionEntry(contextType(scope), type, function));
}

@Override
public <R extends Rule, C extends PolicyContext> void registerFunction(Class<C> contextType, Class<R> type, PolicyRuleFunction<R, C> function) {
ruleFunctions.add(new RuleFunctionEntry(contextType, type, function));
}

@Override
@SuppressWarnings({ "unchecked", "rawtypes" })
public <R extends Rule, C extends PolicyContext> void registerFunction(String scope, Class<R> type, PolicyRuleFunction<R, C> function) {
ruleFunctions.add(new RuleFunctionEntry(contextType(scope), type, function));
}

@Override
public <C extends PolicyContext> void registerPreValidator(Class<C> contextType, PolicyValidatorRule<C> validator) {
preValidators.add(new ValidatorRuleEntry(contextType, validator));
Expand All @@ -244,26 +218,6 @@ public <C extends PolicyContext> void registerPostValidator(Class<C> contextType
postValidators.add(new ValidatorRuleEntry(contextType, validator));
}

@Override
public void registerPreValidator(String scope, BiFunction<Policy, PolicyContext, Boolean> validator) {
registerPreValidator(PolicyContext.class, new PolicyValidatorFunctionWrapper(validator));
}

@Override
public void registerPreValidator(String scope, PolicyValidatorFunction validator) {
registerPreValidator(PolicyContext.class, validator);
}

@Override
public void registerPostValidator(String scope, BiFunction<Policy, PolicyContext, Boolean> validator) {
registerPostValidator(PolicyContext.class, new PolicyValidatorFunctionWrapper(validator));
}

@Override
public void registerPostValidator(String scope, PolicyValidatorFunction validator) {
registerPostValidator(PolicyContext.class, validator);
}

@NotNull
private Result<Void> failValidator(String type, PolicyValidatorRule<?> validator, PolicyContext context) {
return failure(context.hasProblems() ? context.getProblems() : List.of(type + " failed: " + validator.name()));
Expand Down Expand Up @@ -305,18 +259,4 @@ private interface FunctionEntry<C extends PolicyContext> {
return contextType;
}

private record PolicyValidatorFunctionWrapper(
BiFunction<Policy, PolicyContext, Boolean> function) implements PolicyValidatorFunction {

@Override
public Boolean apply(Policy policy, PolicyContext policyContext) {
return function.apply(policy, policyContext);
}

@Override
public String name() {
return function.getClass().getSimpleName();
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@

package org.eclipse.edc.policy.engine.validation;

import org.eclipse.edc.policy.engine.spi.AtomicConstraintFunction;
import org.eclipse.edc.policy.engine.spi.AtomicConstraintRuleFunction;
import org.eclipse.edc.policy.engine.spi.DynamicAtomicConstraintFunction;
import org.eclipse.edc.policy.engine.spi.DynamicAtomicConstraintRuleFunction;
import org.eclipse.edc.policy.engine.spi.PolicyContext;
import org.eclipse.edc.policy.model.AndConstraint;
Expand Down Expand Up @@ -46,7 +44,7 @@
/**
* Validate a policy.
* <p>
* The policy validator is used to validate policies against a set of configured rule bindings, {@link AtomicConstraintFunction} and {@link DynamicAtomicConstraintFunction}
* The policy validator is used to validate policies against a set of configured rule bindings, {@link AtomicConstraintRuleFunction} and {@link DynamicAtomicConstraintRuleFunction}
* <p>
* The validation will fail under the following conditions:
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@
import java.util.stream.Stream;

import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.eclipse.edc.junit.assertions.AbstractResultAssert.assertThat;
import static org.eclipse.edc.policy.engine.spi.PolicyEngine.ALL_SCOPES;
import static org.eclipse.edc.policy.model.Operator.EQ;
Expand Down Expand Up @@ -88,13 +87,6 @@ void validateEmptyPolicy() {
assertThat(result).isSucceeded();
}

@Deprecated(since = "0.10.0")
@Test
void shouldThrowException_whenRegisterWithScopeNotRegistered() {
assertThatThrownBy(() -> policyEngine.registerFunction(ALL_SCOPES, Rule.class, "key", mock()));
assertThatThrownBy(() -> policyEngine.registerFunction("unregistered.scope", Rule.class, "key", mock()));
}

@Test
void validateUnsatisfiedDuty() {
var context = new TestContext();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@

package org.eclipse.edc.policy.engine;

import org.eclipse.edc.policy.engine.spi.AtomicConstraintFunction;
import org.eclipse.edc.policy.engine.spi.DynamicAtomicConstraintFunction;
import org.eclipse.edc.policy.engine.spi.AtomicConstraintRuleFunction;
import org.eclipse.edc.policy.engine.spi.DynamicAtomicConstraintRuleFunction;
import org.eclipse.edc.policy.engine.spi.PolicyContext;
import org.eclipse.edc.policy.engine.spi.PolicyEngine;
Expand Down Expand Up @@ -151,7 +150,7 @@ void validate_shouldFail_withDynamicFunction() {
@ArgumentsSource(PolicyProvider.class)
void validate_withDynamicFunction(Policy policy, Class<Rule> ruleClass, String key) {

DynamicAtomicConstraintFunction<Rule> function = mock();
DynamicAtomicConstraintRuleFunction<Rule, PolicyContext> function = mock();

when(function.canHandle(key)).thenReturn(true);

Expand All @@ -170,7 +169,7 @@ void validate_withDynamicFunction(Policy policy, Class<Rule> ruleClass, String k
@ArgumentsSource(PolicyProvider.class)
void validate_shouldFail_whenSkippingDynamicFunction(Policy policy, Class<Rule> ruleClass, String key) {

DynamicAtomicConstraintFunction<Rule> function = mock();
DynamicAtomicConstraintRuleFunction<Rule, PolicyContext> function = mock();

when(function.canHandle(key)).thenReturn(false);

Expand All @@ -189,7 +188,7 @@ void validate_shouldFail_whenSkippingDynamicFunction(Policy policy, Class<Rule>
@ArgumentsSource(PolicyProvider.class)
void validate_shouldFails_withDynamicFunction(Policy policy, Class<Rule> ruleClass, String key) {

DynamicAtomicConstraintFunction<Rule> function = mock();
DynamicAtomicConstraintRuleFunction<Rule, PolicyContext> function = mock();

when(function.canHandle(key)).thenReturn(true);

Expand All @@ -209,7 +208,7 @@ void validate_shouldFails_withDynamicFunction(Policy policy, Class<Rule> ruleCla
@ArgumentsSource(PolicyProvider.class)
void validate_shouldFail_whenFunctionValidationFails(Policy policy, Class<Rule> ruleClass, String key) {

AtomicConstraintFunction<Rule> function = mock();
AtomicConstraintRuleFunction<Rule, PolicyContext> function = mock();

when(function.validate(any(), any(), any())).thenReturn(Result.failure("Function validation failure"));

Expand All @@ -232,7 +231,7 @@ void validate_shouldFail_whenActionIsNotBound() {
var permission = Permission.Builder.newInstance().constraint(constraint).action(Action.Builder.newInstance().type("use").build()).build();

var policy = Policy.Builder.newInstance().permission(permission).build();
AtomicConstraintFunction<Permission> function = mock();
AtomicConstraintRuleFunction<Permission, PolicyContext> function = mock();

when(function.validate(any(), any(), any())).thenReturn(Result.success());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
import static org.eclipse.edc.jsonld.spi.PropertyAndTypeNames.DCAT_DATA_SERVICE_TYPE;
import static org.eclipse.edc.jsonld.spi.PropertyAndTypeNames.DCAT_ENDPOINT_DESCRIPTION_ATTRIBUTE;
import static org.eclipse.edc.jsonld.spi.PropertyAndTypeNames.DCAT_ENDPOINT_URL_ATTRIBUTE;
import static org.eclipse.edc.jsonld.spi.PropertyAndTypeNames.DCAT_ENDPOINT_URL_OLD_ATTRIBUTE;

/**
* Converts from a {@link DataService} to a DCAT data service as a {@link JsonObject} in JSON-LD expanded form.
Expand All @@ -48,7 +47,6 @@ public JsonObjectFromDataServiceTransformer(JsonBuilderFactory jsonFactory) {
.add(TYPE, DCAT_DATA_SERVICE_TYPE);

addIfNotNull(dataService.getEndpointDescription(), DCAT_ENDPOINT_DESCRIPTION_ATTRIBUTE, objectBuilder);
addIfNotNull(dataService.getEndpointUrl(), DCAT_ENDPOINT_URL_OLD_ATTRIBUTE, objectBuilder);
addIfNotNull(dataService.getEndpointUrl(), DCAT_ENDPOINT_URL_ATTRIBUTE, objectBuilder);

return objectBuilder.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
import static org.eclipse.edc.jsonld.spi.PropertyAndTypeNames.DCAT_DATA_SERVICE_TYPE;
import static org.eclipse.edc.jsonld.spi.PropertyAndTypeNames.DCAT_ENDPOINT_DESCRIPTION_ATTRIBUTE;
import static org.eclipse.edc.jsonld.spi.PropertyAndTypeNames.DCAT_ENDPOINT_URL_ATTRIBUTE;
import static org.eclipse.edc.jsonld.spi.PropertyAndTypeNames.DCAT_ENDPOINT_URL_OLD_ATTRIBUTE;
import static org.mockito.Mockito.mock;

class JsonObjectFromDataServiceTransformerTest {
Expand Down Expand Up @@ -58,7 +57,6 @@ void transform_returnJsonObject() {
assertThat(result.getJsonString(ID).getString()).isEqualTo(dataService.getId());
assertThat(result.getJsonString(TYPE).getString()).isEqualTo(DCAT_DATA_SERVICE_TYPE);
assertThat(result.getJsonString(DCAT_ENDPOINT_DESCRIPTION_ATTRIBUTE).getString()).isEqualTo("description");
assertThat(result.getJsonString(DCAT_ENDPOINT_URL_OLD_ATTRIBUTE).getString()).isEqualTo("url");
assertThat(result.getJsonString(DCAT_ENDPOINT_URL_ATTRIBUTE).getString()).isEqualTo("url");
}

Expand Down
27 changes: 0 additions & 27 deletions dist/bom/controlplane-oauth2-bom/build.gradle.kts

This file was deleted.

86 changes: 0 additions & 86 deletions extensions/README.md

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[
{
"version": "3.1.0",
"version": "3.1.1",
"urlPath": "/v3",
"lastUpdated": "2025-05-08T16:45:00Z",
"lastUpdated": "2025-06-23T08:30:00Z",
"maturity": "stable"
},
{
Expand Down
Loading