Skip to content

Commit

Permalink
feat: AttestationDefinition vertical (#565)
Browse files Browse the repository at this point in the history
* feat: implement AttestationDefinition vertical

* merge hell

* update api change date

* checkstyle
  • Loading branch information
paullatzelsperger authored Feb 11, 2025
1 parent 381f587 commit 9498f34
Show file tree
Hide file tree
Showing 130 changed files with 2,109 additions and 430 deletions.
7 changes: 4 additions & 3 deletions core/issuerservice/issuerservice-core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@ plugins {

dependencies {
api(project(":spi:issuerservice:issuerservice-participant-spi"))
api(project(":spi:issuerservice:issuerservice-credential-definition-spi"))
api(project(":spi:issuerservice:issuerservice-issuance-spi"))
api(project(":core:lib:common-lib"))
api(project(":core:lib:common-lib"))

implementation(libs.edc.lib.store)
testImplementation(libs.edc.junit)
testImplementation(libs.edc.lib.query)
testImplementation(testFixtures(project(":spi:issuerservice:issuerservice-participant-spi")))
testImplementation(testFixtures(project(":spi:issuerservice:issuerservice-credential-definition-spi")))
testImplementation(testFixtures(project(":spi:issuance-credentials-spi")))
testImplementation(testFixtures(project(":spi:issuerservice:issuerservice-issuance-spi")))

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

package org.eclipse.edc.issuerservice.defaults;

import org.eclipse.edc.identityhub.spi.issuance.credentials.attestation.AttestationDefinitionStore;
import org.eclipse.edc.identityhub.spi.issuance.credentials.process.store.IssuanceProcessStore;
import org.eclipse.edc.issuerservice.defaults.store.InMemoryAttestationDefinitionStore;
import org.eclipse.edc.issuerservice.defaults.store.InMemoryCredentialDefinitionStore;
import org.eclipse.edc.issuerservice.defaults.store.InMemoryIssuanceProcessStore;
import org.eclipse.edc.issuerservice.defaults.store.InMemoryParticipantStore;
import org.eclipse.edc.issuerservice.spi.credentialdefinition.store.CredentialDefinitionStore;
import org.eclipse.edc.issuerservice.spi.issuance.attestation.AttestationDefinitionStore;
import org.eclipse.edc.issuerservice.spi.issuance.credentialdefinition.store.CredentialDefinitionStore;
import org.eclipse.edc.issuerservice.spi.issuance.process.store.IssuanceProcessStore;
import org.eclipse.edc.issuerservice.spi.participant.store.ParticipantStore;
import org.eclipse.edc.runtime.metamodel.annotation.Extension;
import org.eclipse.edc.runtime.metamodel.annotation.Inject;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@

package org.eclipse.edc.issuerservice.defaults.store;

import org.eclipse.edc.identityhub.spi.issuance.credentials.attestation.AttestationDefinitionStore;
import org.eclipse.edc.identityhub.spi.issuance.credentials.model.AttestationDefinition;
import org.eclipse.edc.identityhub.store.InMemoryEntityStore;
import org.eclipse.edc.issuerservice.spi.issuance.attestation.AttestationDefinitionStore;
import org.eclipse.edc.issuerservice.spi.issuance.model.AttestationDefinition;
import org.eclipse.edc.spi.query.QueryResolver;
import org.eclipse.edc.spi.result.StoreResult;
import org.eclipse.edc.store.ReflectionBasedQueryResolver;
Expand All @@ -30,7 +30,7 @@ public class InMemoryAttestationDefinitionStore extends InMemoryEntityStore<Atte
}

@Override
public StoreResult<Void> delete(String id) {
public StoreResult<Void> deleteById(String id) {
return super.deleteById(id);
}

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

package org.eclipse.edc.issuerservice.defaults.store;

import org.eclipse.edc.identityhub.spi.issuance.credentials.model.CredentialDefinition;
import org.eclipse.edc.identityhub.store.InMemoryEntityStore;
import org.eclipse.edc.issuerservice.spi.credentialdefinition.store.CredentialDefinitionStore;
import org.eclipse.edc.issuerservice.spi.issuance.credentialdefinition.store.CredentialDefinitionStore;
import org.eclipse.edc.issuerservice.spi.issuance.model.CredentialDefinition;
import org.eclipse.edc.spi.query.QueryResolver;
import org.eclipse.edc.spi.result.StoreResult;
import org.eclipse.edc.store.ReflectionBasedQueryResolver;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@

package org.eclipse.edc.issuerservice.defaults.store;

import org.eclipse.edc.identityhub.spi.issuance.credentials.model.IssuanceProcess;
import org.eclipse.edc.identityhub.spi.issuance.credentials.process.store.IssuanceProcessStore;
import org.eclipse.edc.issuerservice.spi.issuance.model.IssuanceProcess;
import org.eclipse.edc.issuerservice.spi.issuance.process.store.IssuanceProcessStore;
import org.eclipse.edc.spi.query.CriterionOperatorRegistry;
import org.eclipse.edc.spi.query.QuerySpec;
import org.eclipse.edc.store.InMemoryStatefulEntityStore;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
package org.eclipse.edc.issuerservice.defaults.store;

import org.eclipse.edc.identityhub.store.InMemoryEntityStore;
import org.eclipse.edc.issuerservice.spi.participant.models.Participant;
import org.eclipse.edc.issuerservice.spi.participant.model.Participant;
import org.eclipse.edc.issuerservice.spi.participant.store.ParticipantStore;
import org.eclipse.edc.spi.query.Criterion;
import org.eclipse.edc.spi.query.QueryResolver;
Expand All @@ -27,16 +27,6 @@
* Purely in-memory implementation of the {@link Participant} store.
*/
public class InMemoryParticipantStore extends InMemoryEntityStore<Participant> implements ParticipantStore {
@Override
protected String getId(Participant newObject) {
return newObject.participantId();
}

@Override
protected QueryResolver<Participant> createQueryResolver() {
return new ReflectionBasedQueryResolver<>(Participant.class, criterionOperatorRegistry);
}

@Override
public StoreResult<Participant> findById(String id) {
var q = QuerySpec.Builder.newInstance()
Expand All @@ -50,4 +40,14 @@ public StoreResult<Participant> findById(String id) {
}
return result.mapFailure();
}

@Override
protected String getId(Participant newObject) {
return newObject.participantId();
}

@Override
protected QueryResolver<Participant> createQueryResolver() {
return new ReflectionBasedQueryResolver<>(Participant.class, criterionOperatorRegistry);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/*
* Copyright (c) 2025 Cofinity-X
*
* This program and the accompanying materials are made available under the
* terms of the Apache License, Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Cofinity-X - initial API and implementation
*
*/

package org.eclipse.edc.issuerservice.defaults.store;

import org.eclipse.edc.issuerservice.spi.issuance.attestation.AttestationDefinitionStore;
import org.eclipse.edc.issuerservice.spi.issuance.attestation.store.AttestationDefinitionStoreTestBase;

class InMemoryAttestationDefinitionStoreTest extends AttestationDefinitionStoreTestBase {

private final InMemoryAttestationDefinitionStore store = new InMemoryAttestationDefinitionStore();

@Override
protected AttestationDefinitionStore getStore() {
return store;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@

package org.eclipse.edc.issuerservice.defaults.store;

import org.eclipse.edc.issuerservice.spi.credentialdefinition.store.CredentialDefinitionStore;
import org.eclipse.edc.issuerservice.spi.credentialdefinition.store.CredentialDefinitionStoreTestBase;
import org.eclipse.edc.issuerservice.spi.issuance.credentialdefinition.store.CredentialDefinitionStore;
import org.eclipse.edc.issuerservice.spi.issuance.credentialdefinition.store.CredentialDefinitionStoreTestBase;

public class InMemoryCredentialDefinitionStoreTest extends CredentialDefinitionStoreTestBase {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@

package org.eclipse.edc.issuerservice.defaults.store;

import org.eclipse.edc.identityhub.spi.issuance.credentials.process.store.IssuanceProcessStore;
import org.eclipse.edc.identityhub.spi.issuance.credentials.process.store.IssuanceProcessStoreTestBase;
import org.eclipse.edc.issuerservice.spi.issuance.process.store.IssuanceProcessStore;
import org.eclipse.edc.issuerservice.spi.issuance.process.store.IssuanceProcessStoreTestBase;
import org.eclipse.edc.query.CriterionOperatorRegistryImpl;

import java.time.Duration;
Expand Down

This file was deleted.

This file was deleted.

5 changes: 4 additions & 1 deletion core/issuerservice/issuerservice-issuance/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@ plugins {
}

dependencies {
api(project(":spi:issuance-credentials-spi"))
api(project(":spi:issuerservice:issuerservice-issuance-spi"))
api(project(":spi:issuerservice:issuerservice-participant-spi"))
implementation(project(":core:lib:common-lib"))
implementation(libs.edc.spi.transaction)
implementation(libs.edc.lib.store)
implementation(libs.edc.lib.statemachine)
testImplementation(libs.edc.junit)
testImplementation(testFixtures(project(":spi:issuerservice:issuerservice-issuance-spi")))

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

package org.eclipse.edc.issuerservice.issuance;

import org.eclipse.edc.identityhub.spi.issuance.credentials.process.IssuanceProcessManager;
import org.eclipse.edc.identityhub.spi.issuance.credentials.process.IssuanceProcessService;
import org.eclipse.edc.identityhub.spi.issuance.credentials.process.retry.IssuanceProcessRetryStrategy;
import org.eclipse.edc.identityhub.spi.issuance.credentials.process.store.IssuanceProcessStore;
import org.eclipse.edc.issuerservice.issuance.process.IssuanceProcessManagerImpl;
import org.eclipse.edc.issuerservice.issuance.process.IssuanceProcessServiceImpl;
import org.eclipse.edc.issuerservice.spi.issuance.process.IssuanceProcessManager;
import org.eclipse.edc.issuerservice.spi.issuance.process.IssuanceProcessService;
import org.eclipse.edc.issuerservice.spi.issuance.process.retry.IssuanceProcessRetryStrategy;
import org.eclipse.edc.issuerservice.spi.issuance.process.store.IssuanceProcessStore;
import org.eclipse.edc.runtime.metamodel.annotation.Extension;
import org.eclipse.edc.runtime.metamodel.annotation.Inject;
import org.eclipse.edc.runtime.metamodel.annotation.Provider;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/*
* Copyright (c) 2025 Cofinity-X
*
* This program and the accompanying materials are made available under the
* terms of the Apache License, Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Cofinity-X - initial API and implementation
*
*/

package org.eclipse.edc.issuerservice.issuance;

import org.eclipse.edc.issuerservice.issuance.attestation.AttestationDefinitionServiceImpl;
import org.eclipse.edc.issuerservice.issuance.credentialdefinition.CredentialDefinitionServiceImpl;
import org.eclipse.edc.issuerservice.spi.issuance.attestation.AttestationDefinitionService;
import org.eclipse.edc.issuerservice.spi.issuance.attestation.AttestationDefinitionStore;
import org.eclipse.edc.issuerservice.spi.issuance.credentialdefinition.CredentialDefinitionService;
import org.eclipse.edc.issuerservice.spi.issuance.credentialdefinition.store.CredentialDefinitionStore;
import org.eclipse.edc.issuerservice.spi.participant.store.ParticipantStore;
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.spi.system.ServiceExtension;
import org.eclipse.edc.transaction.spi.TransactionContext;

import static org.eclipse.edc.issuerservice.issuance.IssuanceServicesExtension.NAME;

@Extension(value = NAME)
public class IssuanceServicesExtension implements ServiceExtension {
public static final String NAME = "IssuerService Issuance Services Extension";
@Inject
private TransactionContext transactionContext;
@Inject
private CredentialDefinitionStore store;

@Inject
private AttestationDefinitionStore attestationDefinitionStore;
@Inject
private ParticipantStore participantStore;

@Provider
public CredentialDefinitionService createParticipantService() {
return new CredentialDefinitionServiceImpl(transactionContext, store, attestationDefinitionStore);
}

@Provider
public AttestationDefinitionService createAttestationService() {
return new AttestationDefinitionServiceImpl(transactionContext, attestationDefinitionStore, participantStore);
}
}
Loading

0 comments on commit 9498f34

Please sign in to comment.