Skip to content

Commit efe29b3

Browse files
authored
feat: restructure core by component (#1842)
* Move contract and transfer core modules into control-plane * PR remarks * Fix CI * Extract instance store provision to a specific extension * Rename federated-catalog-cache to federated-catalog-core
1 parent cebec28 commit efe29b3

File tree

365 files changed

+591
-747
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

365 files changed

+591
-747
lines changed

.github/workflows/verify.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ jobs:
371371
uses: ./.github/actions/run-tests
372372
with:
373373
command: |
374-
./gradlew -p core/micrometer test -DincludeTags="OpenTelemetryIntegrationTest"
374+
./gradlew -p extensions/micrometer test -DincludeTags="OpenTelemetryIntegrationTest"
375375
./gradlew -p system-tests/tests test -DincludeTags="OpenTelemetryIntegrationTest"
376376
377377
Check-Cloud-Environments:

core/build.gradle.kts

-35
This file was deleted.

core/base/build.gradle.kts core/common/base/build.gradle.kts

+1-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ dependencies {
2828
api(project(":spi:common:core-spi"))
2929
api(project(":spi:common:transaction-spi"))
3030
implementation(project(":common:util"))
31-
implementation(project(":core:defaults"))
32-
implementation(project(":core:policy:policy-engine"))
31+
implementation(project(":core:common:policy-engine"))
3332
implementation(project(":extensions:dataloading"))
3433

3534
api("com.squareup.okhttp3:okhttp:${okHttpVersion}")

core/base/src/main/java/org/eclipse/dataspaceconnector/core/defaults/DefaultServicesExtension.java core/common/base/src/main/java/org/eclipse/dataspaceconnector/core/defaults/DefaultServicesExtension.java

+1-72
Original file line numberDiff line numberDiff line change
@@ -17,34 +17,19 @@
1717
import dev.failsafe.RetryPolicy;
1818
import okhttp3.EventListener;
1919
import okhttp3.OkHttpClient;
20-
import org.eclipse.dataspaceconnector.common.concurrency.LockManager;
2120
import org.eclipse.dataspaceconnector.core.base.OkHttpClientFactory;
22-
import org.eclipse.dataspaceconnector.core.defaults.assetindex.InMemoryAssetIndex;
23-
import org.eclipse.dataspaceconnector.core.defaults.contractdefinition.InMemoryContractDefinitionStore;
24-
import org.eclipse.dataspaceconnector.core.defaults.negotiationstore.InMemoryContractNegotiationStore;
25-
import org.eclipse.dataspaceconnector.core.defaults.policystore.InMemoryPolicyDefinitionStore;
26-
import org.eclipse.dataspaceconnector.core.defaults.transferprocessstore.InMemoryTransferProcessStore;
27-
import org.eclipse.dataspaceconnector.dataloading.AssetLoader;
28-
import org.eclipse.dataspaceconnector.dataloading.ContractDefinitionLoader;
2921
import org.eclipse.dataspaceconnector.spi.EdcSetting;
30-
import org.eclipse.dataspaceconnector.spi.asset.AssetIndex;
31-
import org.eclipse.dataspaceconnector.spi.asset.DataAddressResolver;
32-
import org.eclipse.dataspaceconnector.spi.contract.negotiation.store.ContractNegotiationStore;
33-
import org.eclipse.dataspaceconnector.spi.contract.offer.store.ContractDefinitionStore;
34-
import org.eclipse.dataspaceconnector.spi.policy.store.PolicyDefinitionStore;
3522
import org.eclipse.dataspaceconnector.spi.system.Inject;
3623
import org.eclipse.dataspaceconnector.spi.system.Provider;
3724
import org.eclipse.dataspaceconnector.spi.system.ServiceExtension;
3825
import org.eclipse.dataspaceconnector.spi.system.ServiceExtensionContext;
3926
import org.eclipse.dataspaceconnector.spi.transaction.NoopTransactionContext;
4027
import org.eclipse.dataspaceconnector.spi.transaction.TransactionContext;
41-
import org.eclipse.dataspaceconnector.spi.transfer.store.TransferProcessStore;
4228

4329
import java.time.temporal.ChronoUnit;
44-
import java.util.concurrent.locks.ReentrantReadWriteLock;
4530

4631
/**
47-
* Provides (in-mem & no-op) defaults for various stores, registries etc.
32+
* Provides defaults for various services.
4833
* Provider methods are only invoked if no other implementation was found on the classpath.
4934
*/
5035
public class DefaultServicesExtension implements ServiceExtension {
@@ -55,8 +40,6 @@ public class DefaultServicesExtension implements ServiceExtension {
5540
@EdcSetting(value = "Maximum number of milliseconds for exponential backoff. ")
5641
public static final String BACKOFF_MAX_MILLIS = "edc.core.retry.backoff.max";
5742

58-
private InMemoryAssetIndex assetIndex;
59-
private InMemoryContractDefinitionStore contractDefinitionStore;
6043
/**
6144
* An optional OkHttp {@link EventListener} that can be used to instrument OkHttp client for collecting metrics.
6245
* Used by the optional {@code micrometer} module.
@@ -79,46 +62,6 @@ public RetryPolicy<?> retryPolicy(ServiceExtensionContext context) {
7962
.build();
8063
}
8164

82-
@Provider(isDefault = true)
83-
public AssetIndex defaultAssetIndex() {
84-
return getAssetIndex();
85-
}
86-
87-
@Provider(isDefault = true)
88-
public DataAddressResolver defaultDataAddressResolver() {
89-
return getAssetIndex();
90-
}
91-
92-
@Provider(isDefault = true)
93-
public AssetLoader defaultAssetLoader() {
94-
return getAssetIndex();
95-
}
96-
97-
@Provider(isDefault = true)
98-
public ContractDefinitionStore defaultContractDefinitionStore() {
99-
return getContractDefinitionStore();
100-
}
101-
102-
@Provider(isDefault = true)
103-
public ContractDefinitionLoader defaultContractDefinitionLoader() {
104-
return getContractDefinitionStore()::save;
105-
}
106-
107-
@Provider(isDefault = true)
108-
public ContractNegotiationStore defaultContractNegotiationStore() {
109-
return new InMemoryContractNegotiationStore();
110-
}
111-
112-
@Provider(isDefault = true)
113-
public TransferProcessStore defaultTransferProcessStore() {
114-
return new InMemoryTransferProcessStore();
115-
}
116-
117-
@Provider(isDefault = true)
118-
public PolicyDefinitionStore defaultPolicyStore() {
119-
return new InMemoryPolicyDefinitionStore(new LockManager(new ReentrantReadWriteLock(true)));
120-
}
121-
12265
@Provider(isDefault = true)
12366
public TransactionContext defaultTransactionContext(ServiceExtensionContext context) {
12467
context.getMonitor().warning("No TransactionContext registered, a no-op implementation will be used, not suitable for production environments");
@@ -130,18 +73,4 @@ public TransactionContext defaultTransactionContext(ServiceExtensionContext cont
13073
public OkHttpClient okHttpClient(ServiceExtensionContext context) {
13174
return OkHttpClientFactory.create(context, okHttpEventListener);
13275
}
133-
134-
private ContractDefinitionStore getContractDefinitionStore() {
135-
if (contractDefinitionStore == null) {
136-
contractDefinitionStore = new InMemoryContractDefinitionStore();
137-
}
138-
return contractDefinitionStore;
139-
}
140-
141-
private InMemoryAssetIndex getAssetIndex() {
142-
if (assetIndex == null) {
143-
assetIndex = new InMemoryAssetIndex();
144-
}
145-
return assetIndex;
146-
}
14776
}
File renamed without changes.

core/policy/policy-engine/build.gradle.kts core/common/policy-engine/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ plugins {
1818
}
1919

2020
dependencies {
21-
api(project(":core:policy:policy-evaluator"))
21+
api(project(":core:common:policy-evaluator"))
2222
}
2323

2424
publishing {

core/contract/build.gradle.kts core/control-plane/contract/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ dependencies {
2727
implementation(project(":common:state-machine-lib"))
2828
implementation("io.opentelemetry:opentelemetry-extension-annotations:${openTelemetryVersion}")
2929

30-
testImplementation(project(":core:defaults"))
30+
testImplementation(project(":core:control-plane:control-plane-core"))
3131
testImplementation(project(":extensions:junit"))
3232
testImplementation(testFixtures(project(":common:util")))
3333
testImplementation("org.awaitility:awaitility:${awaitility}")

core/contract/src/main/java/org/eclipse/dataspaceconnector/contract/negotiation/ConsumerContractNegotiationManagerImpl.java core/control-plane/contract/src/main/java/org/eclipse/dataspaceconnector/contract/negotiation/ConsumerContractNegotiationManagerImpl.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
import io.opentelemetry.extension.annotations.WithSpan;
2121
import org.eclipse.dataspaceconnector.common.statemachine.StateMachineManager;
2222
import org.eclipse.dataspaceconnector.common.statemachine.StateProcessorImpl;
23-
import org.eclipse.dataspaceconnector.contract.common.ContractId;
2423
import org.eclipse.dataspaceconnector.policy.model.Policy;
24+
import org.eclipse.dataspaceconnector.spi.contract.ContractId;
2525
import org.eclipse.dataspaceconnector.spi.contract.negotiation.ConsumerContractNegotiationManager;
2626
import org.eclipse.dataspaceconnector.spi.iam.ClaimToken;
2727
import org.eclipse.dataspaceconnector.spi.response.StatusResult;
@@ -44,8 +44,8 @@
4444
import java.util.function.Function;
4545

4646
import static java.lang.String.format;
47-
import static org.eclipse.dataspaceconnector.contract.common.ContractId.DEFINITION_PART;
48-
import static org.eclipse.dataspaceconnector.contract.common.ContractId.parseContractId;
47+
import static org.eclipse.dataspaceconnector.spi.contract.ContractId.DEFINITION_PART;
48+
import static org.eclipse.dataspaceconnector.spi.contract.ContractId.parseContractId;
4949
import static org.eclipse.dataspaceconnector.spi.response.ResponseStatus.FATAL_ERROR;
5050
import static org.eclipse.dataspaceconnector.spi.types.domain.contract.negotiation.ContractNegotiation.Type.CONSUMER;
5151
import static org.eclipse.dataspaceconnector.spi.types.domain.contract.negotiation.ContractNegotiationStates.CONFIRMED;

core/contract/src/main/java/org/eclipse/dataspaceconnector/contract/negotiation/ProviderContractNegotiationManagerImpl.java core/control-plane/contract/src/main/java/org/eclipse/dataspaceconnector/contract/negotiation/ProviderContractNegotiationManagerImpl.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
import io.opentelemetry.extension.annotations.WithSpan;
2121
import org.eclipse.dataspaceconnector.common.statemachine.StateMachineManager;
2222
import org.eclipse.dataspaceconnector.common.statemachine.StateProcessorImpl;
23-
import org.eclipse.dataspaceconnector.contract.common.ContractId;
2423
import org.eclipse.dataspaceconnector.policy.model.Policy;
24+
import org.eclipse.dataspaceconnector.spi.contract.ContractId;
2525
import org.eclipse.dataspaceconnector.spi.contract.negotiation.ProviderContractNegotiationManager;
2626
import org.eclipse.dataspaceconnector.spi.iam.ClaimToken;
2727
import org.eclipse.dataspaceconnector.spi.response.StatusResult;
@@ -41,8 +41,8 @@
4141
import java.util.function.BiConsumer;
4242
import java.util.function.Function;
4343

44-
import static org.eclipse.dataspaceconnector.contract.common.ContractId.DEFINITION_PART;
45-
import static org.eclipse.dataspaceconnector.contract.common.ContractId.parseContractId;
44+
import static org.eclipse.dataspaceconnector.spi.contract.ContractId.DEFINITION_PART;
45+
import static org.eclipse.dataspaceconnector.spi.contract.ContractId.parseContractId;
4646
import static org.eclipse.dataspaceconnector.spi.response.ResponseStatus.FATAL_ERROR;
4747
import static org.eclipse.dataspaceconnector.spi.types.domain.contract.negotiation.ContractNegotiation.Type.PROVIDER;
4848
import static org.eclipse.dataspaceconnector.spi.types.domain.contract.negotiation.ContractNegotiationStates.CONFIRMING;

core/contract/src/main/java/org/eclipse/dataspaceconnector/contract/negotiation/command/handlers/CancelNegotiationCommandHandler.java core/control-plane/contract/src/main/java/org/eclipse/dataspaceconnector/contract/negotiation/command/handlers/CancelNegotiationCommandHandler.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
package org.eclipse.dataspaceconnector.contract.negotiation.command.handlers;
1616

17-
import org.eclipse.dataspaceconnector.contract.negotiation.command.commands.CancelNegotiationCommand;
1817
import org.eclipse.dataspaceconnector.spi.contract.negotiation.store.ContractNegotiationStore;
18+
import org.eclipse.dataspaceconnector.spi.types.domain.contract.command.CancelNegotiationCommand;
1919
import org.eclipse.dataspaceconnector.spi.types.domain.contract.negotiation.ContractNegotiation;
2020

2121
/**
+1-1
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414

1515
package org.eclipse.dataspaceconnector.contract.negotiation.command.handlers;
1616

17-
import org.eclipse.dataspaceconnector.contract.negotiation.command.commands.SingleContractNegotiationCommand;
1817
import org.eclipse.dataspaceconnector.spi.EdcException;
1918
import org.eclipse.dataspaceconnector.spi.command.CommandHandler;
2019
import org.eclipse.dataspaceconnector.spi.contract.negotiation.store.ContractNegotiationStore;
20+
import org.eclipse.dataspaceconnector.spi.types.domain.contract.command.SingleContractNegotiationCommand;
2121
import org.eclipse.dataspaceconnector.spi.types.domain.contract.negotiation.ContractNegotiation;
2222

2323
import static java.lang.String.format;

core/contract/src/main/java/org/eclipse/dataspaceconnector/contract/offer/ContractOfferServiceImpl.java core/control-plane/contract/src/main/java/org/eclipse/dataspaceconnector/contract/offer/ContractOfferServiceImpl.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717

1818
package org.eclipse.dataspaceconnector.contract.offer;
1919

20-
import org.eclipse.dataspaceconnector.contract.common.ContractId;
2120
import org.eclipse.dataspaceconnector.policy.model.Policy;
2221
import org.eclipse.dataspaceconnector.spi.agent.ParticipantAgentService;
2322
import org.eclipse.dataspaceconnector.spi.asset.AssetIndex;
23+
import org.eclipse.dataspaceconnector.spi.contract.ContractId;
2424
import org.eclipse.dataspaceconnector.spi.contract.offer.ContractDefinitionService;
2525
import org.eclipse.dataspaceconnector.spi.contract.offer.ContractOfferQuery;
2626
import org.eclipse.dataspaceconnector.spi.contract.offer.ContractOfferService;

core/contract/src/main/java/org/eclipse/dataspaceconnector/contract/validation/ContractValidationServiceImpl.java core/control-plane/contract/src/main/java/org/eclipse/dataspaceconnector/contract/validation/ContractValidationServiceImpl.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@
3232
import java.time.Clock;
3333

3434
import static java.lang.String.format;
35-
import static org.eclipse.dataspaceconnector.contract.common.ContractId.DEFINITION_PART;
36-
import static org.eclipse.dataspaceconnector.contract.common.ContractId.parseContractId;
35+
import static org.eclipse.dataspaceconnector.spi.contract.ContractId.DEFINITION_PART;
36+
import static org.eclipse.dataspaceconnector.spi.contract.ContractId.parseContractId;
3737

3838
/**
3939
* Implementation of the {@link ContractValidationService}.

core/contract/src/test/java/org/eclipse/dataspaceconnector/contract/negotiation/AbstractContractNegotiationIntegrationTest.java core/control-plane/contract/src/test/java/org/eclipse/dataspaceconnector/contract/negotiation/AbstractContractNegotiationIntegrationTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@
1515
package org.eclipse.dataspaceconnector.contract.negotiation;
1616

1717
import org.eclipse.dataspaceconnector.common.statemachine.retry.SendRetryManager;
18-
import org.eclipse.dataspaceconnector.contract.common.ContractId;
1918
import org.eclipse.dataspaceconnector.contract.observe.ContractNegotiationObservableImpl;
20-
import org.eclipse.dataspaceconnector.core.defaults.negotiationstore.InMemoryContractNegotiationStore;
19+
import org.eclipse.dataspaceconnector.core.controlplane.defaults.negotiationstore.InMemoryContractNegotiationStore;
2120
import org.eclipse.dataspaceconnector.policy.model.Action;
2221
import org.eclipse.dataspaceconnector.policy.model.Duty;
2322
import org.eclipse.dataspaceconnector.policy.model.Policy;
2423
import org.eclipse.dataspaceconnector.policy.model.PolicyType;
2524
import org.eclipse.dataspaceconnector.spi.command.CommandQueue;
2625
import org.eclipse.dataspaceconnector.spi.command.CommandRunner;
26+
import org.eclipse.dataspaceconnector.spi.contract.ContractId;
2727
import org.eclipse.dataspaceconnector.spi.contract.negotiation.observe.ContractNegotiationObservable;
2828
import org.eclipse.dataspaceconnector.spi.contract.validation.ContractValidationService;
2929
import org.eclipse.dataspaceconnector.spi.entity.StatefulEntity;

core/contract/src/test/java/org/eclipse/dataspaceconnector/contract/negotiation/ProviderContractNegotiationManagerImplTest.java core/control-plane/contract/src/test/java/org/eclipse/dataspaceconnector/contract/negotiation/ProviderContractNegotiationManagerImplTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@
1616
package org.eclipse.dataspaceconnector.contract.negotiation;
1717

1818
import org.eclipse.dataspaceconnector.common.statemachine.retry.SendRetryManager;
19-
import org.eclipse.dataspaceconnector.contract.common.ContractId;
2019
import org.eclipse.dataspaceconnector.contract.observe.ContractNegotiationObservableImpl;
2120
import org.eclipse.dataspaceconnector.policy.model.Policy;
2221
import org.eclipse.dataspaceconnector.spi.EdcException;
2322
import org.eclipse.dataspaceconnector.spi.command.CommandQueue;
2423
import org.eclipse.dataspaceconnector.spi.command.CommandRunner;
24+
import org.eclipse.dataspaceconnector.spi.contract.ContractId;
2525
import org.eclipse.dataspaceconnector.spi.contract.negotiation.observe.ContractNegotiationListener;
2626
import org.eclipse.dataspaceconnector.spi.contract.negotiation.store.ContractNegotiationStore;
2727
import org.eclipse.dataspaceconnector.spi.contract.validation.ContractValidationService;
+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import org.eclipse.dataspaceconnector.common.statemachine.retry.SendRetryManager;
1818
import org.eclipse.dataspaceconnector.contract.negotiation.ConsumerContractNegotiationManagerImpl;
1919
import org.eclipse.dataspaceconnector.contract.negotiation.ProviderContractNegotiationManagerImpl;
20-
import org.eclipse.dataspaceconnector.contract.negotiation.command.commands.SingleContractNegotiationCommand;
2120
import org.eclipse.dataspaceconnector.contract.negotiation.command.handlers.SingleContractNegotiationCommandHandler;
2221
import org.eclipse.dataspaceconnector.spi.command.BoundedCommandQueue;
2322
import org.eclipse.dataspaceconnector.spi.command.CommandHandlerRegistry;
@@ -30,6 +29,7 @@
3029
import org.eclipse.dataspaceconnector.spi.message.RemoteMessageDispatcherRegistry;
3130
import org.eclipse.dataspaceconnector.spi.monitor.Monitor;
3231
import org.eclipse.dataspaceconnector.spi.policy.store.PolicyDefinitionStore;
32+
import org.eclipse.dataspaceconnector.spi.types.domain.contract.command.SingleContractNegotiationCommand;
3333
import org.eclipse.dataspaceconnector.spi.types.domain.contract.negotiation.ContractNegotiation;
3434
import org.eclipse.dataspaceconnector.spi.types.domain.contract.negotiation.ContractNegotiationStates;
3535
import org.eclipse.dataspaceconnector.spi.types.domain.contract.negotiation.command.ContractNegotiationCommand;
+1-1
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414

1515
package org.eclipse.dataspaceconnector.contract.negotiation.command.handlers;
1616

17-
import org.eclipse.dataspaceconnector.contract.negotiation.command.commands.CancelNegotiationCommand;
1817
import org.eclipse.dataspaceconnector.spi.EdcException;
1918
import org.eclipse.dataspaceconnector.spi.contract.negotiation.store.ContractNegotiationStore;
19+
import org.eclipse.dataspaceconnector.spi.types.domain.contract.command.CancelNegotiationCommand;
2020
import org.eclipse.dataspaceconnector.spi.types.domain.contract.negotiation.ContractNegotiation;
2121
import org.eclipse.dataspaceconnector.spi.types.domain.contract.negotiation.ContractNegotiationStates;
2222
import org.junit.jupiter.api.BeforeEach;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
* Copyright (c) 2022 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
3+
*
4+
* This program and the accompanying materials are made available under the
5+
* terms of the Apache License, Version 2.0 which is available at
6+
* https://www.apache.org/licenses/LICENSE-2.0
7+
*
8+
* SPDX-License-Identifier: Apache-2.0
9+
*
10+
* Contributors:
11+
* Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - initial API and implementation
12+
*
13+
*/
14+
15+
plugins {
16+
`java-library`
17+
}
18+
19+
20+
dependencies {
21+
api(project(":core:common:base"))
22+
api(project(":core:common:boot"))
23+
api(project(":core:common:policy-engine"))
24+
api(project(":core:control-plane:contract"))
25+
api(project(":core:control-plane:transfer"))
26+
implementation(project(":common:util"))
27+
implementation(project(":extensions:dataloading"))
28+
}
29+
30+
publishing {
31+
publications {
32+
create<MavenPublication>("control-plane-core") {
33+
artifactId = "control-plane-core"
34+
from(components["java"])
35+
}
36+
}
37+
}

0 commit comments

Comments
 (0)