Skip to content

Commit 7ebc10e

Browse files
fix: update after upstream changes (#946)
* fix: update after upstream changes * cosmetics
1 parent 14385c3 commit 7ebc10e

2 files changed

Lines changed: 18 additions & 12 deletions

File tree

core/identity-hub-core/src/main/java/org/eclipse/edc/identityhub/core/services/verifiablecredential/CredentialRequestManagerImpl.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
import org.eclipse.edc.spi.monitor.Monitor;
3636
import org.eclipse.edc.spi.persistence.EdcPersistenceException;
3737
import org.eclipse.edc.spi.query.Criterion;
38+
import org.eclipse.edc.spi.response.ResponseStatus;
39+
import org.eclipse.edc.spi.response.StatusResult;
3840
import org.eclipse.edc.spi.result.Result;
3941
import org.eclipse.edc.spi.result.ServiceResult;
4042
import org.eclipse.edc.statemachine.AbstractStateEntityManager;
@@ -51,6 +53,7 @@
5153
import java.time.temporal.ChronoUnit;
5254
import java.util.List;
5355
import java.util.Map;
56+
import java.util.concurrent.CompletableFuture;
5457
import java.util.function.Function;
5558

5659
import static java.util.Objects.requireNonNull;
@@ -145,13 +148,13 @@ private void updateRequest(HolderCredentialRequest request) {
145148
transactionContext.execute(() -> update(request));
146149
}
147150

148-
private Processor processRequestsInState(HolderRequestState state, Function<HolderCredentialRequest, Boolean> function) {
149-
var filter = new Criterion[]{hasState(state.code()), isNotPending()};
151+
private Processor processRequestsInState(HolderRequestState state, Function<HolderCredentialRequest, CompletableFuture<StatusResult<Void>>> function) {
152+
var filter = new Criterion[]{ hasState(state.code()), isNotPending() };
150153
return createProcessor(function, filter);
151154
}
152155

153-
private ProcessorImpl<HolderCredentialRequest> createProcessor(Function<HolderCredentialRequest, Boolean> function, Criterion[] filter) {
154-
return ProcessorImpl.Builder.newInstance(() -> store.nextNotLeased(batchSize, filter))
156+
private ProcessorImpl<HolderCredentialRequest> createProcessor(Function<HolderCredentialRequest, CompletableFuture<StatusResult<Void>>> function, Criterion[] filter) {
157+
return ProcessorImpl.Builder.newInstance(() -> store.nextNotLeased(batchSize, filter), entityRetryProcessConfiguration, clock, monitor)
155158
.process(telemetry.contextPropagationMiddleware(function))
156159
//.guard(pendingGuard, this::setPending) //todo: needed?
157160
.onNotProcessed(this::breakLease)
@@ -162,16 +165,18 @@ private ProcessorImpl<HolderCredentialRequest> createProcessor(Function<HolderCr
162165
* processes all requests that are in {@link HolderRequestState#CREATED} or {@link HolderRequestState#REQUESTING} state. Credential requests that were
163166
* interrupted before receiving the Issuer's response are in this state.
164167
*
165-
* @return true if the request was processed, false otherwise.
168+
* @return a CompletableFuture containing the result of processing the request.
166169
*/
167-
private Boolean processInitial(HolderCredentialRequest holderCredentialRequest) {
170+
private CompletableFuture<StatusResult<Void>> processInitial(HolderCredentialRequest holderCredentialRequest) {
168171
monitor.debug("Processing '%s' request '%s'".formatted(holderCredentialRequest.stateAsString(), holderCredentialRequest.getHolderPid()));
172+
169173
var result = getCredentialRequestEndpoint(holderCredentialRequest)
170174
.compose(endpoint -> sendCredentialRequest(holderCredentialRequest, endpoint))
171175
.compose(issuerPid -> handleCredentialResponse(issuerPid, holderCredentialRequest))
172176
.onFailure(failure -> transactionContext.execute(() -> transitionError(holderCredentialRequest, failure.getFailureDetail())));
173177

174-
return result.succeeded();
178+
StatusResult<Void> statusResult = result.succeeded() ? StatusResult.success() : StatusResult.failure(ResponseStatus.FATAL_ERROR, result.getFailureDetail());
179+
return CompletableFuture.completedFuture(statusResult);
175180
}
176181

177182
/**

core/issuerservice/issuerservice-issuance/src/main/java/org/eclipse/edc/issuerservice/issuance/process/IssuanceProcessManagerImpl.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import java.util.ArrayList;
4545
import java.util.Collection;
4646
import java.util.Objects;
47+
import java.util.concurrent.CompletableFuture;
4748
import java.util.function.Function;
4849

4950
import static org.eclipse.edc.spi.persistence.StateEntityStore.hasState;
@@ -71,7 +72,7 @@ protected StateMachineManager.Builder configureStateMachineManager(StateMachineM
7172
* Process APPROVED issuance process
7273
*/
7374
@WithSpan
74-
private boolean processApproved(IssuanceProcess process) {
75+
private CompletableFuture<StatusResult<Void>> processApproved(IssuanceProcess process) {
7576
return entityRetryProcessFactory.retryProcessor(process)
7677
.doProcess(result("Generate Credentials", (p, result) -> generateCredential(p)))
7778
.doProcess(result("Add Credentials to StatusList", this::addCredentialsToStatusList))
@@ -186,13 +187,13 @@ private void transitionToError(IssuanceProcess process, String message) {
186187
transitionToError(process);
187188
}
188189

189-
private Processor processIssuanceInState(IssuanceProcessStates state, Function<IssuanceProcess, Boolean> function) {
190-
var filter = new Criterion[]{hasState(state.code()), isNotPending()};
190+
private Processor processIssuanceInState(IssuanceProcessStates state, Function<IssuanceProcess, CompletableFuture<StatusResult<Void>>> function) {
191+
var filter = new Criterion[]{ hasState(state.code()), isNotPending() };
191192
return createProcessor(function, filter);
192193
}
193194

194-
private ProcessorImpl<IssuanceProcess> createProcessor(Function<IssuanceProcess, Boolean> function, Criterion[] filter) {
195-
return ProcessorImpl.Builder.newInstance(() -> store.nextNotLeased(batchSize, filter))
195+
private ProcessorImpl<IssuanceProcess> createProcessor(Function<IssuanceProcess, CompletableFuture<StatusResult<Void>>> function, Criterion[] filter) {
196+
return ProcessorImpl.Builder.newInstance(() -> store.nextNotLeased(batchSize, filter), entityRetryProcessConfiguration, clock, monitor)
196197
.process(telemetry.contextPropagationMiddleware(function))
197198
.onNotProcessed(this::breakLease)
198199
.build();

0 commit comments

Comments
 (0)