Skip to content

Commit dbcc5c5

Browse files
authored
feat: switch to upstream processors + refactor (#174)
1 parent 14025de commit dbcc5c5

File tree

56 files changed

+795
-2136
lines changed

Some content is hidden

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

56 files changed

+795
-2136
lines changed

core/negotiation-manager/build.gradle.kts renamed to core/contract-negotiation-tasks/build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,13 @@ plugins {
1717
}
1818

1919
dependencies {
20-
api(project(":spi:v-core-spi"))
2120
api(project(":spi:v-task-spi"))
2221
api(libs.edc.spi.core)
2322
api(libs.edc.spi.transaction)
2423
api(libs.edc.spi.protocol)
2524
api(libs.edc.spi.contract)
2625
implementation(libs.opentelemetry.instrumentation.annotations)
26+
testImplementation(libs.edc.core.controlplane.contract)
27+
testImplementation(libs.edc.lib.statemachine)
2728
}
2829

core/negotiation-manager/src/main/java/org/eclipse/edc/virtual/controlplane/contract/negotiation/ContractManagerExtension.java renamed to core/contract-negotiation-tasks/src/main/java/org/eclipse/edc/virtual/controlplane/contract/negotiation/ContractNegotiationTaskExtension.java

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,31 +14,30 @@
1414

1515
package org.eclipse.edc.virtual.controlplane.contract.negotiation;
1616

17-
import org.eclipse.edc.connector.controlplane.contract.spi.negotiation.ConsumerContractNegotiationManager;
1817
import org.eclipse.edc.connector.controlplane.contract.spi.negotiation.ContractNegotiationPendingGuard;
18+
import org.eclipse.edc.connector.controlplane.contract.spi.negotiation.NegotiationProcessors;
1919
import org.eclipse.edc.connector.controlplane.contract.spi.negotiation.observe.ContractNegotiationObservable;
2020
import org.eclipse.edc.connector.controlplane.contract.spi.negotiation.store.ContractNegotiationStore;
21-
import org.eclipse.edc.participantcontext.spi.identity.ParticipantIdentityResolver;
2221
import org.eclipse.edc.runtime.metamodel.annotation.Extension;
2322
import org.eclipse.edc.runtime.metamodel.annotation.Inject;
2423
import org.eclipse.edc.runtime.metamodel.annotation.Provider;
25-
import org.eclipse.edc.spi.message.RemoteMessageDispatcherRegistry;
2624
import org.eclipse.edc.spi.monitor.Monitor;
2725
import org.eclipse.edc.spi.system.ServiceExtension;
26+
import org.eclipse.edc.spi.system.ServiceExtensionContext;
2827
import org.eclipse.edc.transaction.spi.TransactionContext;
28+
import org.eclipse.edc.virtual.controlplane.contract.negotiation.listener.ContractNegotiationStateListener;
2929
import org.eclipse.edc.virtual.controlplane.contract.negotiation.task.ContractNegotiationTaskExecutorImpl;
3030
import org.eclipse.edc.virtual.controlplane.contract.spi.negotiation.ContractNegotiationTaskExecutor;
31-
import org.eclipse.edc.virtual.controlplane.participantcontext.spi.ParticipantWebhookResolver;
3231
import org.eclipse.edc.virtual.controlplane.tasks.TaskService;
3332

3433
import java.time.Clock;
3534

36-
import static org.eclipse.edc.virtual.controlplane.contract.negotiation.ContractManagerExtension.NAME;
35+
import static org.eclipse.edc.virtual.controlplane.contract.negotiation.ContractNegotiationTaskExtension.NAME;
3736

3837
@Extension(NAME)
39-
public class ContractManagerExtension implements ServiceExtension {
38+
public class ContractNegotiationTaskExtension implements ServiceExtension {
4039

41-
public static final String NAME = "EDC-V Contract Manager";
40+
public static final String NAME = "Contract Negotiation Task Extension";
4241
@Inject
4342
private ContractNegotiationStore contractNegotiationStore;
4443

@@ -52,40 +51,32 @@ public class ContractManagerExtension implements ServiceExtension {
5251
private Monitor monitor;
5352

5453
@Inject
55-
private ParticipantWebhookResolver webhookResolver;
56-
57-
@Inject
58-
private ParticipantIdentityResolver identityResolver;
54+
private TaskService taskService;
5955

6056
@Inject
61-
private RemoteMessageDispatcherRegistry dispatcherRegistry;
57+
private NegotiationProcessors negotiationProcessors;
6258

6359
@Inject
64-
private ContractNegotiationObservable observable;
60+
private Clock clock;
6561

6662
@Inject
67-
private TaskService taskService;
63+
private ContractNegotiationObservable contractNegotiationObservable;
6864

69-
@Inject
70-
private Clock clock;
7165

72-
@Provider
73-
public ConsumerContractNegotiationManager consumerContractNegotiationManager() {
74-
return new VirtualConsumerContractNegotiationManager(contractNegotiationStore, observable, monitor);
66+
@Override
67+
public void initialize(ServiceExtensionContext context) {
68+
contractNegotiationObservable.registerListener(new ContractNegotiationStateListener(taskService, clock));
7569
}
7670

7771
@Provider
7872
public ContractNegotiationTaskExecutor contractNegotiationTaskExecutor() {
7973
return ContractNegotiationTaskExecutorImpl.Builder.newInstance()
8074
.taskService(taskService)
75+
.negotiationProcessors(negotiationProcessors)
8176
.clock(clock)
82-
.identityResolver(identityResolver)
83-
.webhookResolver(webhookResolver)
84-
.dispatcherRegistry(dispatcherRegistry)
8577
.store(contractNegotiationStore)
8678
.transactionContext(transactionContext)
8779
.pendingGuard(pendingGuard)
88-
.observable(observable)
8980
.monitor(monitor)
9081
.build();
9182
}

extensions/control-plane/tasks/listener/tasks-store-listener/src/main/java/org/eclipse/edc/virtual/controlplane/listener/ContractNegotiationStateListener.java renamed to core/contract-negotiation-tasks/src/main/java/org/eclipse/edc/virtual/controlplane/contract/negotiation/listener/ContractNegotiationStateListener.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
*
1313
*/
1414

15-
package org.eclipse.edc.virtual.controlplane.listener;
15+
package org.eclipse.edc.virtual.controlplane.contract.negotiation.listener;
1616

1717
import org.eclipse.edc.connector.controlplane.contract.spi.negotiation.observe.ContractNegotiationListener;
1818
import org.eclipse.edc.connector.controlplane.contract.spi.types.negotiation.ContractNegotiation;
@@ -22,14 +22,20 @@
2222
import org.eclipse.edc.virtual.controlplane.contract.spi.negotiation.tasks.RequestNegotiation;
2323
import org.eclipse.edc.virtual.controlplane.contract.spi.negotiation.tasks.VerifyNegotiation;
2424
import org.eclipse.edc.virtual.controlplane.tasks.ProcessTaskPayload;
25+
import org.eclipse.edc.virtual.controlplane.tasks.Task;
26+
import org.eclipse.edc.virtual.controlplane.tasks.TaskPayload;
2527
import org.eclipse.edc.virtual.controlplane.tasks.TaskService;
2628

2729
import java.time.Clock;
2830

29-
public class ContractNegotiationStateListener extends StateListener implements ContractNegotiationListener {
31+
public class ContractNegotiationStateListener implements ContractNegotiationListener {
32+
33+
private final TaskService taskService;
34+
private final Clock clock;
3035

3136
public ContractNegotiationStateListener(TaskService taskService, Clock clock) {
32-
super(taskService, clock);
37+
this.taskService = taskService;
38+
this.clock = clock;
3339
}
3440

3541
@Override
@@ -91,4 +97,12 @@ protected <T extends ProcessTaskPayload, B extends ProcessTaskPayload.Builder<T,
9197
.processType(negotiation.getType().name());
9298
}
9399

100+
protected void storeTask(TaskPayload payload) {
101+
var task = Task.Builder.newInstance()
102+
.at(clock.millis())
103+
.payload(payload)
104+
.build();
105+
taskService.create(task);
106+
}
107+
94108
}

0 commit comments

Comments
 (0)