Skip to content
Open
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 @@ -14,6 +14,7 @@

package org.eclipse.edc.boot.system.injection;

import org.eclipse.edc.runtime.metamodel.annotation.Configuration;
import org.eclipse.edc.runtime.metamodel.annotation.Setting;
import org.eclipse.edc.runtime.metamodel.annotation.SettingContext;
import org.eclipse.edc.spi.result.AbstractResult;
Expand Down Expand Up @@ -102,8 +103,7 @@ public void setDefaultValueProvider(ValueProvider defaultValueProvider) {

@Override
public Object resolve(ServiceExtensionContext context, DefaultServiceSupplier defaultServiceSupplier) {
var keyPrefix = configurationField.getAnnotation(SettingContext.class) != null
? configurationField.getAnnotation(SettingContext.class).value() : null;
var keyPrefix = getPrefix();
return configurationObjectFactory.instantiate(context, keyPrefix, configurationField.getType());
}

Expand All @@ -120,6 +120,16 @@ public Result<List<InjectionContainer<T>>> getProviders(Map<Class<?>, List<Injec
return violators.isEmpty() ? Result.success(List.of()) : Result.failure("%s, through nested %s".formatted(asString(), violators));
}

private @Nullable String getPrefix() {
var configurationContext = configurationField.getAnnotation(Configuration.class).context();
if (!configurationContext.isEmpty()) {
return configurationContext;
}

var settingContext = configurationField.getAnnotation(SettingContext.class);
return settingContext != null ? settingContext.value() : null;
}

private String asString() {
return "Configuration object \"%s\" of type [%s]"
.formatted(configurationField.getName(), configurationField.getType());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

package org.eclipse.edc.boot.system.injection;

import org.eclipse.edc.runtime.metamodel.annotation.Configuration;
import org.eclipse.edc.runtime.metamodel.annotation.SettingContext;
import org.eclipse.edc.spi.result.Result;
import org.eclipse.edc.spi.system.ServiceExtensionContext;
Expand All @@ -29,7 +30,7 @@
/**
* Injection point for configuration maps. A configuration map field is annotated with {@link org.eclipse.edc.runtime.metamodel.annotation.Configuration}
* and has type {@link Map}{@code <String, T>} where {@code T} is a type annotated with {@link org.eclipse.edc.runtime.metamodel.annotation.Settings}.
* The map keys are derived from the configuration path segments under the {@link SettingContext} prefix.
* The map keys are derived from the configuration path segments defined in the context attribute.
* <p>
* For example, given prefix {@code edc.iam.publickeys} and settings:
* <pre>
Expand Down Expand Up @@ -92,8 +93,7 @@ public void setDefaultValueProvider(ValueProvider defaultValueProvider) {

@Override
public Object resolve(ServiceExtensionContext context, DefaultServiceSupplier defaultServiceSupplier) {
var settingContext = mapField.getAnnotation(SettingContext.class);
var prefix = settingContext != null ? settingContext.value() : null;
var prefix = getPrefix();

var baseConfig = prefix != null ? context.getConfig(prefix) : context.getConfig();

Expand All @@ -111,4 +111,14 @@ public Object resolve(ServiceExtensionContext context, DefaultServiceSupplier de
public Result<List<InjectionContainer<T>>> getProviders(Map<Class<?>, List<InjectionContainer<T>>> dependencyMap, ServiceExtensionContext context) {
return Result.success(List.of());
}

private @Nullable String getPrefix() {
var configurationContext = mapField.getAnnotation(Configuration.class).context();
if (!configurationContext.isEmpty()) {
return configurationContext;
}

var settingContext = mapField.getAnnotation(SettingContext.class);
return settingContext != null ? settingContext.value() : null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import org.eclipse.edc.junit.extensions.TestExtensionContext;
import org.eclipse.edc.runtime.metamodel.annotation.Configuration;
import org.eclipse.edc.runtime.metamodel.annotation.Setting;
import org.eclipse.edc.runtime.metamodel.annotation.SettingContext;
import org.eclipse.edc.runtime.metamodel.annotation.Settings;
import org.eclipse.edc.spi.system.ServiceExtension;
import org.eclipse.edc.spi.system.configuration.ConfigFactory;
Expand Down Expand Up @@ -132,8 +131,7 @@ private static class TestExtension implements ServiceExtension {
@Configuration
private ConfigurationRecord configuration;

@SettingContext("prefix")
@Configuration
@Configuration(context = "prefix")
private ConfigurationRecord configurationWithPrefix;

@Settings
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import org.eclipse.edc.junit.extensions.TestExtensionContext;
import org.eclipse.edc.runtime.metamodel.annotation.Configuration;
import org.eclipse.edc.runtime.metamodel.annotation.Setting;
import org.eclipse.edc.runtime.metamodel.annotation.SettingContext;
import org.eclipse.edc.runtime.metamodel.annotation.Settings;
import org.eclipse.edc.spi.system.ServiceExtension;
import org.eclipse.edc.spi.system.ServiceExtensionContext;
Expand Down Expand Up @@ -134,8 +133,7 @@ void resolve_multipleEntries() {

private static class TestExtension implements ServiceExtension {

@SettingContext("prefix")
@Configuration
@Configuration(context = "prefix")
private Map<String, ConfigurationRecord> configurations;

public Map<String, ConfigurationRecord> getConfigurations() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import org.eclipse.edc.runtime.metamodel.annotation.Inject;
import org.eclipse.edc.runtime.metamodel.annotation.Provider;
import org.eclipse.edc.runtime.metamodel.annotation.Provides;
import org.eclipse.edc.runtime.metamodel.annotation.SettingContext;
import org.eclipse.edc.spi.EdcException;
import org.eclipse.edc.spi.result.Result;
import org.eclipse.edc.spi.security.Vault;
Expand All @@ -47,8 +46,7 @@ public class LocalPublicKeyDefaultExtension implements ServiceExtension {
@Inject
public KeyParserRegistry keyParserRegistry;

@SettingContext(EDC_PUBLIC_KEYS_PREFIX)
@Configuration
@Configuration(context = EDC_PUBLIC_KEYS_PREFIX)
private Map<String, PublicKeyConfiguration> configurations;

private LocalPublicKeyServiceImpl localPublicKeyService;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
import org.eclipse.edc.runtime.metamodel.annotation.Extension;
import org.eclipse.edc.runtime.metamodel.annotation.Inject;
import org.eclipse.edc.runtime.metamodel.annotation.Provides;
import org.eclipse.edc.runtime.metamodel.annotation.SettingContext;
import org.eclipse.edc.spi.EdcException;
import org.eclipse.edc.spi.monitor.Monitor;
import org.eclipse.edc.spi.system.ExecutorInstrumentation;
Expand All @@ -43,8 +42,7 @@ public class ContractManagerExtension implements ServiceExtension {

public static final String NAME = "Contract Manager";

@SettingContext("edc.negotiation")
@Configuration
@Configuration(context = "edc.negotiation")
private StateMachineConfiguration stateMachineConfiguration;

@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@
import org.eclipse.edc.runtime.metamodel.annotation.Inject;
import org.eclipse.edc.runtime.metamodel.annotation.Provider;
import org.eclipse.edc.runtime.metamodel.annotation.Provides;
import org.eclipse.edc.runtime.metamodel.annotation.SettingContext;
import org.eclipse.edc.spi.event.EventRouter;
import org.eclipse.edc.spi.message.RemoteMessageDispatcherRegistry;
import org.eclipse.edc.spi.monitor.Monitor;
Expand All @@ -66,8 +65,7 @@ public class ContractCoreExtension implements ServiceExtension {

public static final String NAME = "Contract Core";

@SettingContext("edc.negotiation")
@Configuration
@Configuration(context = "edc.negotiation")
private StateMachineConfiguration stateMachineConfiguration;

@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import org.eclipse.edc.runtime.metamodel.annotation.Extension;
import org.eclipse.edc.runtime.metamodel.annotation.Inject;
import org.eclipse.edc.runtime.metamodel.annotation.Provides;
import org.eclipse.edc.runtime.metamodel.annotation.SettingContext;
import org.eclipse.edc.spi.system.ExecutorInstrumentation;
import org.eclipse.edc.spi.system.ServiceExtension;
import org.eclipse.edc.spi.system.ServiceExtensionContext;
Expand All @@ -42,8 +41,7 @@ public class TransferManagerExtension implements ServiceExtension {

public static final String NAME = "Transfer Manager";

@SettingContext("edc.transfer")
@Configuration
@Configuration(context = "edc.transfer")
private StateMachineConfiguration stateMachineConfiguration;

@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
import org.eclipse.edc.runtime.metamodel.annotation.Extension;
import org.eclipse.edc.runtime.metamodel.annotation.Inject;
import org.eclipse.edc.runtime.metamodel.annotation.Provider;
import org.eclipse.edc.runtime.metamodel.annotation.SettingContext;
import org.eclipse.edc.spi.event.EventRouter;
import org.eclipse.edc.spi.message.RemoteMessageDispatcherRegistry;
import org.eclipse.edc.spi.monitor.Monitor;
Expand All @@ -57,8 +56,7 @@ public class TransferCoreExtension implements ServiceExtension {

public static final String NAME = "Transfer Core";

@SettingContext("edc.transfer")
@Configuration
@Configuration(context = "edc.transfer")
private StateMachineConfiguration stateMachineConfiguration;

@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
import org.eclipse.edc.runtime.metamodel.annotation.Provider;
import org.eclipse.edc.runtime.metamodel.annotation.Provides;
import org.eclipse.edc.runtime.metamodel.annotation.Setting;
import org.eclipse.edc.runtime.metamodel.annotation.SettingContext;
import org.eclipse.edc.runtime.metamodel.annotation.Settings;
import org.eclipse.edc.spi.system.ExecutorInstrumentation;
import org.eclipse.edc.spi.system.ServiceExtension;
Expand All @@ -58,8 +57,7 @@ public class DataPlaneFrameworkExtension implements ServiceExtension {
public static final String NAME = "Data Plane Framework";
private static final int DEFAULT_TRANSFER_THREADS = 20;

@SettingContext("edc.dataplane")
@Configuration
@Configuration(context = "edc.dataplane")
private StateMachineConfiguration stateMachineConfiguration;

@Setting(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
import org.eclipse.edc.runtime.metamodel.annotation.Extension;
import org.eclipse.edc.runtime.metamodel.annotation.Inject;
import org.eclipse.edc.runtime.metamodel.annotation.Provides;
import org.eclipse.edc.runtime.metamodel.annotation.SettingContext;
import org.eclipse.edc.spi.event.EventRouter;
import org.eclipse.edc.spi.system.ExecutorInstrumentation;
import org.eclipse.edc.spi.system.ServiceExtension;
Expand All @@ -52,8 +51,7 @@ public class PolicyMonitorExtension implements ServiceExtension {

public static final String NAME = "Policy Monitor";

@SettingContext("edc.policy.monitor")
@Configuration
@Configuration(context = "edc.policy.monitor")
private PolicyMonitorConfiguration configuration;

@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import org.eclipse.edc.runtime.metamodel.annotation.Extension;
import org.eclipse.edc.runtime.metamodel.annotation.Inject;
import org.eclipse.edc.runtime.metamodel.annotation.Setting;
import org.eclipse.edc.runtime.metamodel.annotation.SettingContext;
import org.eclipse.edc.runtime.metamodel.annotation.Settings;
import org.eclipse.edc.spi.system.ServiceExtension;
import org.eclipse.edc.spi.system.ServiceExtensionContext;
Expand All @@ -45,8 +44,7 @@ public class DataspaceProfileConfigurationExtension implements ServiceExtension
public static final String PROTOCOL_NAMESPACE = "protocolNamespace";
public static final String PROFILE_JSON_LD_CONTEXT = "jsonLdContextsUrl";

@SettingContext(EDC_DATASPACE_PROFILES_PREFIX)
@Configuration
@Configuration(context = EDC_DATASPACE_PROFILES_PREFIX)
private Map<String, DataspaceProfileConfiguration> profileConfiguration;

@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import org.eclipse.edc.runtime.metamodel.annotation.Extension;
import org.eclipse.edc.runtime.metamodel.annotation.Inject;
import org.eclipse.edc.runtime.metamodel.annotation.Setting;
import org.eclipse.edc.runtime.metamodel.annotation.SettingContext;
import org.eclipse.edc.runtime.metamodel.annotation.Settings;
import org.eclipse.edc.spi.EdcException;
import org.eclipse.edc.spi.monitor.Monitor;
Expand All @@ -41,8 +40,7 @@ public class ApiAuthenticationConfigurationExtension implements ServiceExtension

public static final String NAME = "Api Authentication Configuration Extension";

@SettingContext("web.http")
@Configuration
@Configuration(context = "web.http")
private Map<String, AuthenticationConfiguration> authenticationConfigurationMap;

@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
import org.eclipse.edc.runtime.metamodel.annotation.Extension;
import org.eclipse.edc.runtime.metamodel.annotation.Inject;
import org.eclipse.edc.runtime.metamodel.annotation.Setting;
import org.eclipse.edc.runtime.metamodel.annotation.SettingContext;
import org.eclipse.edc.runtime.metamodel.annotation.Settings;
import org.eclipse.edc.spi.monitor.Monitor;
import org.eclipse.edc.spi.system.ServiceExtension;
Expand All @@ -45,11 +44,9 @@ public class TrustedIssuerConfigurationExtension implements ServiceExtension {
protected static final String NAME = "Trusted Issuers Configuration Extensions";

@Deprecated(since = "0.17.0")
@SettingContext(DEPRECATED_CONFIG_PREFIX)
@Configuration
@Configuration(context = DEPRECATED_CONFIG_PREFIX)
private Map<String, TrustedIssuerConfiguration> deprecatedTrustedIssuers;
@SettingContext(CONFIG_PREFIX)
@Configuration
@Configuration(context = CONFIG_PREFIX)
private Map<String, TrustedIssuerConfiguration> trustedIssuers;

@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import org.eclipse.edc.runtime.metamodel.annotation.Inject;
import org.eclipse.edc.runtime.metamodel.annotation.Provider;
import org.eclipse.edc.runtime.metamodel.annotation.Setting;
import org.eclipse.edc.runtime.metamodel.annotation.SettingContext;
import org.eclipse.edc.runtime.metamodel.annotation.Settings;
import org.eclipse.edc.spi.constants.CoreConstants;
import org.eclipse.edc.spi.system.ServiceExtension;
Expand All @@ -47,8 +46,7 @@ public class JsonLdExtension implements ServiceExtension {
public static final String NAME = "JSON-LD Extension";
public static final String EDC_JSONLD_DOCUMENT_PREFIX = "edc.jsonld.document";

@SettingContext(EDC_JSONLD_DOCUMENT_PREFIX)
@Configuration
@Configuration(context = EDC_JSONLD_DOCUMENT_PREFIX)
private Map<String, JsonLdDocumentConfiguration> jsonLdConfigurations = new HashMap<>();

private static final boolean DEFAULT_HTTP_HTTPS_RESOLUTION = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
import org.eclipse.edc.runtime.metamodel.annotation.Extension;
import org.eclipse.edc.runtime.metamodel.annotation.Inject;
import org.eclipse.edc.runtime.metamodel.annotation.Setting;
import org.eclipse.edc.runtime.metamodel.annotation.SettingContext;
import org.eclipse.edc.runtime.metamodel.annotation.Settings;
import org.eclipse.edc.spi.EdcException;
import org.eclipse.edc.spi.monitor.Monitor;
Expand Down Expand Up @@ -60,8 +59,7 @@ public class CommonsConnectionPoolServiceExtension implements ServiceExtension {
public static final String POOL_CONNECTION_TEST_WHILE_IDLE = "pool.connection.test.while-idle";
public static final String POOL_CONNECTION_TEST_QUERY = "pool.connection.test.query";

@SettingContext(EDC_DATASOURCE_PREFIX)
@Configuration
@Configuration(context = EDC_DATASOURCE_PREFIX)
private Map<String, DatasourceConfiguration> datasources;

@Inject
Expand Down
Loading