Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: incorporate latest changes of EDC #167

Merged
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
10 changes: 8 additions & 2 deletions DEPENDENCIES
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ maven/mavencentral/org.apache.httpcomponents/httpcore/4.4.13, Apache-2.0, approv
maven/mavencentral/org.apache.httpcomponents/httpmime/4.5.13, Apache-2.0, approved, CQ11718
maven/mavencentral/org.apiguardian/apiguardian-api/1.1.2, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.assertj/assertj-core/3.25.1, Apache-2.0, approved, #12585
maven/mavencentral/org.assertj/assertj-core/3.25.2, Apache-2.0, approved, #12585
maven/mavencentral/org.assertj/assertj-core/3.25.3, Apache-2.0, approved, #12585
maven/mavencentral/org.awaitility/awaitility/4.2.0, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.bouncycastle/bcpkix-jdk18on/1.77, MIT, approved, #11593
maven/mavencentral/org.bouncycastle/bcprov-jdk18on/1.77, MIT AND CC0-1.0, approved, #11595
Expand Down Expand Up @@ -249,12 +249,18 @@ maven/mavencentral/org.jetbrains/annotations/17.0.0, Apache-2.0, approved, clear
maven/mavencentral/org.jetbrains/annotations/24.1.0, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.junit-pioneer/junit-pioneer/2.2.0, EPL-2.0, approved, #11857
maven/mavencentral/org.junit.jupiter/junit-jupiter-api/5.10.1, EPL-2.0, approved, #9714
maven/mavencentral/org.junit.jupiter/junit-jupiter-api/5.10.2, EPL-2.0, approved, #9714
maven/mavencentral/org.junit.jupiter/junit-jupiter-engine/5.10.1, EPL-2.0, approved, #9711
maven/mavencentral/org.junit.jupiter/junit-jupiter-engine/5.10.2, EPL-2.0, approved, #9711
maven/mavencentral/org.junit.jupiter/junit-jupiter-params/5.10.1, EPL-2.0, approved, #9708
maven/mavencentral/org.junit.jupiter/junit-jupiter-params/5.10.2, EPL-2.0, approved, #9708
maven/mavencentral/org.junit.platform/junit-platform-commons/1.10.1, EPL-2.0, approved, #9715
maven/mavencentral/org.junit.platform/junit-platform-commons/1.10.2, EPL-2.0, approved, #9715
maven/mavencentral/org.junit.platform/junit-platform-engine/1.10.1, EPL-2.0, approved, #9709
maven/mavencentral/org.junit.platform/junit-platform-launcher/1.10.1, EPL-2.0, approved, #9704
maven/mavencentral/org.junit.platform/junit-platform-engine/1.10.2, EPL-2.0, approved, #9709
maven/mavencentral/org.junit.platform/junit-platform-launcher/1.10.2, EPL-2.0, approved, #9704
maven/mavencentral/org.junit/junit-bom/5.10.1, EPL-2.0, approved, #9844
maven/mavencentral/org.junit/junit-bom/5.10.2, EPL-2.0, approved, #9844
maven/mavencentral/org.junit/junit-bom/5.9.2, EPL-2.0, approved, #4711
maven/mavencentral/org.jvnet.mimepull/mimepull/1.9.15, CDDL-1.1 OR GPL-2.0-only WITH Classpath-exception-2.0, approved, CQ21484
maven/mavencentral/org.mockito/mockito-core/5.2.0, MIT AND (Apache-2.0 AND MIT) AND Apache-2.0, approved, #7401
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import org.eclipse.edc.catalog.spi.FederatedCacheStore;
import org.eclipse.edc.catalog.spi.QueryEngine;
import org.eclipse.edc.catalog.store.InMemoryFederatedCacheStore;
import org.eclipse.edc.connector.core.store.CriterionOperatorRegistryImpl;
import org.eclipse.edc.crawler.spi.TargetNodeDirectory;
import org.eclipse.edc.crawler.spi.model.ExecutionPlan;
import org.eclipse.edc.crawler.spi.model.RecurringExecutionPlan;
Expand Down Expand Up @@ -53,6 +54,7 @@ public class FederatedCatalogDefaultServicesExtension implements ServiceExtensio

@Inject
private FederatedCacheStore store;

private CacheQueryAdapterRegistry registry;

@Override
Expand All @@ -62,8 +64,7 @@ public String name() {

@Provider(isDefault = true)
public FederatedCacheStore defaultCacheStore() {
//todo: converts every criterion into a predicate that is always true. must be changed later!
return new InMemoryFederatedCacheStore(new LockManager(new ReentrantReadWriteLock()));
return new InMemoryFederatedCacheStore(new LockManager(new ReentrantReadWriteLock()), CriterionOperatorRegistryImpl.ofDefaults());
}

@Provider(isDefault = true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
import org.eclipse.edc.catalog.spi.CatalogConstants;
import org.eclipse.edc.catalog.spi.FederatedCacheStore;
import org.eclipse.edc.spi.query.Criterion;
import org.eclipse.edc.spi.query.CriterionToPredicateConverter;
import org.eclipse.edc.spi.query.CriterionOperatorRegistry;
import org.eclipse.edc.util.concurrency.LockManager;

import java.util.Collection;
Expand All @@ -36,11 +36,11 @@
public class InMemoryFederatedCacheStore implements FederatedCacheStore {

private final Map<String, MarkableEntry<Catalog>> cache = new ConcurrentHashMap<>();
private final CriterionToPredicateConverter converter;
private final CriterionOperatorRegistry criterionOperatorRegistry;
private final LockManager lockManager;

public InMemoryFederatedCacheStore(LockManager lockManager) {
this.converter = new AlwaysTruePredicateConverter();
public InMemoryFederatedCacheStore(LockManager lockManager, CriterionOperatorRegistry criterionOperatorRegistry) {
this.criterionOperatorRegistry = criterionOperatorRegistry;
this.lockManager = lockManager;
}

Expand All @@ -57,7 +57,9 @@ public void save(Catalog catalog) {
@Override
public Collection<Catalog> query(List<Criterion> query) {
//AND all predicates
var rootPredicate = query.stream().map(converter::convert).reduce(x -> true, Predicate::and);
var rootPredicate = query.stream()
.map(criterionOperatorRegistry::toPredicate)
.reduce(x -> true, Predicate::and);
return lockManager.readLock(() -> cache.values().stream().map(MarkableEntry::getEntry).filter(rootPredicate).collect(Collectors.toList()));
}

Expand Down Expand Up @@ -92,11 +94,4 @@ public B getEntry() {
}

}

private static class AlwaysTruePredicateConverter implements CriterionToPredicateConverter {
@Override
public <T> Predicate<T> convert(Criterion criterion) {
return i -> true;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@
import org.eclipse.edc.catalog.spi.Catalog;
import org.eclipse.edc.catalog.spi.CatalogConstants;
import org.eclipse.edc.catalog.store.InMemoryFederatedCacheStore;
import org.eclipse.edc.connector.core.store.CriterionOperatorRegistryImpl;
import org.eclipse.edc.policy.model.Policy;
import org.eclipse.edc.spi.types.domain.asset.Asset;
import org.eclipse.edc.spi.types.domain.offer.ContractOffer;
import org.eclipse.edc.util.concurrency.LockManager;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import java.util.Collections;
Expand All @@ -34,12 +34,7 @@

class InMemoryFederatedCacheStoreTest {

private InMemoryFederatedCacheStore store;

@BeforeEach
public void setUp() {
store = new InMemoryFederatedCacheStore(new LockManager(new ReentrantReadWriteLock()));
}
private final InMemoryFederatedCacheStore store = new InMemoryFederatedCacheStore(new LockManager(new ReentrantReadWriteLock()), CriterionOperatorRegistryImpl.ofDefaults());

@Test
void queryCacheContainingOneElementWithNoCriterion_shouldReturnUniqueElement() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,4 @@ private StatusResult<byte[]> toBytes(TypeTransformerRegistry transformerRegistry
throw new AssertionError(ex);
}
}


}
Loading