Skip to content

Commit 17dd5cd

Browse files
authored
fix: update cosmos SQL stores with updated lease mechanism (#404)
* fix: update cosmos SQL stores with updated lease mechanism * checkstyle and deps * import
1 parent 66f59ac commit 17dd5cd

File tree

8 files changed

+57
-27
lines changed

8 files changed

+57
-27
lines changed

extensions/control-plane/store/contract-negotiation-store-cosmos/src/test/java/org/eclipse/edc/connector/store/azure/cosmos/contractnegotiation/CosmosContractNegotiationStoreTest.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,11 @@
2424
import org.eclipse.edc.json.JacksonTypeManager;
2525
import org.eclipse.edc.policy.model.PolicyRegistrationTypes;
2626
import org.eclipse.edc.sql.QueryExecutor;
27+
import org.eclipse.edc.sql.lease.BaseSqlLeaseStatements;
28+
import org.eclipse.edc.sql.lease.SqlLeaseContextBuilderImpl;
29+
import org.eclipse.edc.sql.lease.spi.LeaseStatements;
2730
import org.eclipse.edc.sql.testfixtures.LeaseUtil;
31+
import org.eclipse.edc.sql.testfixtures.PostgresqlStoreSetupExtension;
2832
import org.eclipse.edc.transaction.datasource.spi.DataSourceRegistry;
2933
import org.eclipse.edc.transaction.spi.TransactionContext;
3034
import org.junit.jupiter.api.AfterAll;
@@ -33,6 +37,7 @@
3337
import org.junit.jupiter.api.extension.ExtendWith;
3438

3539
import java.sql.SQLException;
40+
import java.time.Clock;
3641
import java.time.Duration;
3742
import javax.sql.DataSource;
3843

@@ -46,15 +51,16 @@
4651
@PostgresCosmosTest
4752
@ExtendWith(CosmosPostgresTestExtension.class)
4853
class CosmosContractNegotiationStoreTest extends ContractNegotiationStoreTestBase {
49-
private static final BaseSqlDialectStatements STATEMENTS = new PostgresDialectStatements();
54+
private static final LeaseStatements LEASE_STATEMENTS = new BaseSqlLeaseStatements();
55+
private static final BaseSqlDialectStatements STATEMENTS = new PostgresDialectStatements(LEASE_STATEMENTS, Clock.systemUTC());
5056
private SqlContractNegotiationStore store;
5157
private LeaseUtil leaseUtil;
5258

5359
@AfterAll
5460
static void dropTables(CosmosPostgresTestExtension.SqlHelper helper) {
5561
helper.dropTable(STATEMENTS.getContractNegotiationTable());
5662
helper.dropTable(STATEMENTS.getContractAgreementTable());
57-
helper.dropTable(STATEMENTS.getLeaseTableName());
63+
helper.dropTable(LEASE_STATEMENTS.getLeaseTableName());
5864
}
5965

6066
@BeforeAll
@@ -63,24 +69,26 @@ static void prepare(CosmosPostgresTestExtension.SqlHelper helper) {
6369
}
6470

6571
@BeforeEach
66-
void setUp(DataSource dataSource, TransactionContext transactionContext, QueryExecutor queryExecutor, CosmosPostgresTestExtension.SqlHelper helper, DataSourceRegistry reg) {
67-
var statements = new PostgresDialectStatements();
72+
void setUp(DataSource dataSource, PostgresqlStoreSetupExtension extension, TransactionContext transactionContext, QueryExecutor queryExecutor, CosmosPostgresTestExtension.SqlHelper helper, DataSourceRegistry reg) {
73+
6874
var manager = new JacksonTypeManager();
6975

7076
manager.registerTypes(PolicyRegistrationTypes.TYPES.toArray(Class<?>[]::new));
7177

72-
store = new SqlContractNegotiationStore(reg, DEFAULT_DATASOURCE_NAME, transactionContext, manager.getMapper(), statements, CONNECTOR_NAME, clock, queryExecutor);
78+
var leaseContextBuilder = SqlLeaseContextBuilderImpl.with(extension.getTransactionContext(), CONNECTOR_NAME, STATEMENTS.getContractNegotiationTable(), LEASE_STATEMENTS, clock, queryExecutor);
79+
80+
store = new SqlContractNegotiationStore(reg, DEFAULT_DATASOURCE_NAME, transactionContext, manager.getMapper(), STATEMENTS, leaseContextBuilder, queryExecutor);
7381
leaseUtil = new LeaseUtil(transactionContext, () -> {
7482
try {
7583
return dataSource.getConnection();
7684
} catch (SQLException e) {
7785
throw new AssertionError(e);
7886
}
79-
}, statements, clock);
87+
}, STATEMENTS.getContractNegotiationTable(), LEASE_STATEMENTS, clock);
8088

8189
helper.truncateTable(STATEMENTS.getContractNegotiationTable());
8290
helper.truncateTable(STATEMENTS.getContractAgreementTable());
83-
helper.truncateTable(STATEMENTS.getLeaseTableName());
91+
helper.truncateTable(LEASE_STATEMENTS.getLeaseTableName());
8492
}
8593

8694
@Override

extensions/control-plane/store/transfer-process-store-cosmos/src/test/java/org/eclipse/edc/connector/store/azure/cosmos/transferprocess/CosmosTransferProcessStoreTest.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@
2323
import org.eclipse.edc.json.JacksonTypeManager;
2424
import org.eclipse.edc.policy.model.PolicyRegistrationTypes;
2525
import org.eclipse.edc.sql.QueryExecutor;
26+
import org.eclipse.edc.sql.lease.BaseSqlLeaseStatements;
27+
import org.eclipse.edc.sql.lease.SqlLeaseContextBuilderImpl;
28+
import org.eclipse.edc.sql.lease.spi.LeaseStatements;
2629
import org.eclipse.edc.sql.testfixtures.LeaseUtil;
30+
import org.eclipse.edc.sql.testfixtures.PostgresqlStoreSetupExtension;
2731
import org.eclipse.edc.transaction.datasource.spi.DataSourceRegistry;
2832
import org.eclipse.edc.transaction.spi.TransactionContext;
2933
import org.junit.jupiter.api.AfterAll;
@@ -32,6 +36,7 @@
3236
import org.junit.jupiter.api.extension.ExtendWith;
3337

3438
import java.sql.SQLException;
39+
import java.time.Clock;
3540
import java.time.Duration;
3641
import javax.sql.DataSource;
3742

@@ -42,7 +47,8 @@
4247
@ExtendWith(CosmosPostgresTestExtension.class)
4348
class CosmosTransferProcessStoreTest extends TransferProcessStoreTestBase {
4449

45-
private static final PostgresDialectStatements STATEMENTS = new PostgresDialectStatements();
50+
private static final LeaseStatements LEASE_STATEMENTS = new BaseSqlLeaseStatements();
51+
private static final PostgresDialectStatements STATEMENTS = new PostgresDialectStatements(LEASE_STATEMENTS, Clock.systemUTC());
4652
private SqlTransferProcessStore store;
4753
private LeaseUtil leaseUtil;
4854

@@ -54,29 +60,30 @@ static void createDatabase(CosmosPostgresTestExtension.SqlHelper helper) {
5460
@AfterAll
5561
static void dropTables(CosmosPostgresTestExtension.SqlHelper helper) {
5662
helper.dropTable(STATEMENTS.getTransferProcessTableName());
57-
helper.dropTable(STATEMENTS.getLeaseTableName());
63+
helper.dropTable(LEASE_STATEMENTS.getLeaseTableName());
5864
}
5965

6066
@BeforeEach
61-
void setUp(DataSourceRegistry reg, TransactionContext transactionContext, QueryExecutor queryExecutor, CosmosPostgresTestExtension.SqlHelper helper, DataSource datasource) {
67+
void setUp(DataSourceRegistry reg, PostgresqlStoreSetupExtension extension, TransactionContext transactionContext, QueryExecutor queryExecutor, CosmosPostgresTestExtension.SqlHelper helper, DataSource datasource) {
6268

6369
var typeManager = new JacksonTypeManager();
6470
typeManager.registerTypes(TestFunctions.TestResourceDef.class, TestFunctions.TestProvisionedResource.class);
6571
typeManager.registerTypes(PolicyRegistrationTypes.TYPES.toArray(Class<?>[]::new));
6672

73+
var leaseContextBuilder = SqlLeaseContextBuilderImpl.with(extension.getTransactionContext(), CONNECTOR_NAME, STATEMENTS.getTransferProcessTableName(), LEASE_STATEMENTS, clock, queryExecutor);
6774

68-
store = new SqlTransferProcessStore(reg, DEFAULT_DATASOURCE_NAME, transactionContext, typeManager.getMapper(), STATEMENTS, "test-connector", clock, queryExecutor);
75+
store = new SqlTransferProcessStore(reg, DEFAULT_DATASOURCE_NAME, transactionContext, typeManager.getMapper(), STATEMENTS, leaseContextBuilder, queryExecutor);
6976

7077
leaseUtil = new LeaseUtil(transactionContext, () -> {
7178
try {
7279
return datasource.getConnection();
7380
} catch (SQLException e) {
7481
throw new AssertionError(e);
7582
}
76-
}, STATEMENTS, clock);
83+
}, STATEMENTS.getTransferProcessTableName(), LEASE_STATEMENTS, clock);
7784

7885
helper.truncateTable(STATEMENTS.getTransferProcessTableName());
79-
helper.truncateTable(STATEMENTS.getLeaseTableName());
86+
helper.truncateTable(LEASE_STATEMENTS.getLeaseTableName());
8087
}
8188

8289
@Override

extensions/data-plane-selector/data-plane-instance-store-cosmos/src/test/java/org/eclipse/edc/connector/dataplane/selector/store/cosmos/CosmosDataPlaneInstanceStoreTest.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,11 @@
2525
import org.eclipse.edc.json.JacksonTypeManager;
2626
import org.eclipse.edc.policy.model.PolicyRegistrationTypes;
2727
import org.eclipse.edc.sql.QueryExecutor;
28+
import org.eclipse.edc.sql.lease.BaseSqlLeaseStatements;
29+
import org.eclipse.edc.sql.lease.SqlLeaseContextBuilderImpl;
30+
import org.eclipse.edc.sql.lease.spi.LeaseStatements;
2831
import org.eclipse.edc.sql.testfixtures.LeaseUtil;
32+
import org.eclipse.edc.sql.testfixtures.PostgresqlStoreSetupExtension;
2933
import org.eclipse.edc.transaction.datasource.spi.DataSourceRegistry;
3034
import org.eclipse.edc.transaction.spi.TransactionContext;
3135
import org.junit.jupiter.api.AfterAll;
@@ -44,8 +48,9 @@
4448
@ParallelPostgresCosmosTest
4549
@ExtendWith(CosmosPostgresTestExtension.class)
4650
public class CosmosDataPlaneInstanceStoreTest extends DataPlaneInstanceStoreTestBase {
47-
private static final DataPlaneInstanceStatements STATEMENTS = new PostgresDataPlaneInstanceStatements();
48-
private final DataPlaneInstanceStatements statements = new PostgresDataPlaneInstanceStatements();
51+
52+
private static final LeaseStatements LEASE_STATEMENTS = new BaseSqlLeaseStatements();
53+
private static final DataPlaneInstanceStatements STATEMENTS = new PostgresDataPlaneInstanceStatements(LEASE_STATEMENTS, Clock.systemUTC());
4954
private SqlDataPlaneInstanceStore store;
5055
private LeaseUtil leaseUtil;
5156

@@ -60,7 +65,7 @@ static void dropDatabase(CosmosPostgresTestExtension.SqlHelper helper) {
6065
}
6166

6267
@BeforeEach
63-
void setUp(DataSourceRegistry reg, DataSource dataSource, TransactionContext transactionContext, QueryExecutor queryExecutor, CosmosPostgresTestExtension.SqlHelper helper) {
68+
void setUp(DataSourceRegistry reg, PostgresqlStoreSetupExtension extension, DataSource dataSource, TransactionContext transactionContext, QueryExecutor queryExecutor, CosmosPostgresTestExtension.SqlHelper helper) {
6469

6570
var clock = Clock.systemUTC();
6671

@@ -73,9 +78,10 @@ void setUp(DataSourceRegistry reg, DataSource dataSource, TransactionContext tra
7378
} catch (SQLException e) {
7479
throw new RuntimeException(e);
7580
}
76-
}, statements, clock);
81+
}, STATEMENTS.getDataPlaneInstanceTable(), LEASE_STATEMENTS, clock);
7782

78-
store = new SqlDataPlaneInstanceStore(reg, DEFAULT_DATASOURCE_NAME, transactionContext, STATEMENTS, typeManager.getMapper(), queryExecutor, clock, CONNECTOR_NAME);
83+
var leaseContextBuilder = SqlLeaseContextBuilderImpl.with(extension.getTransactionContext(), CONNECTOR_NAME, STATEMENTS.getDataPlaneInstanceTable(), LEASE_STATEMENTS, clock, queryExecutor);
84+
store = new SqlDataPlaneInstanceStore(reg, DEFAULT_DATASOURCE_NAME, transactionContext, STATEMENTS, leaseContextBuilder, typeManager.getMapper(), queryExecutor);
7985
helper.truncateTable(STATEMENTS.getDataPlaneInstanceTable());
8086
}
8187

extensions/data-plane/store/data-plane-store-cosmos/src/test/java/org/eclipse/edc/connector/dataplane/store/cosmos/CosmosDataPlaneStoreTest.java

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,15 @@
2626
import org.eclipse.edc.junit.assertions.AbstractResultAssert;
2727
import org.eclipse.edc.policy.model.PolicyRegistrationTypes;
2828
import org.eclipse.edc.spi.entity.Entity;
29-
import org.eclipse.edc.spi.entity.MutableEntity;
3029
import org.eclipse.edc.spi.entity.StatefulEntity;
3130
import org.eclipse.edc.spi.result.StoreFailure;
3231
import org.eclipse.edc.spi.types.domain.DataAddress;
3332
import org.eclipse.edc.sql.QueryExecutor;
33+
import org.eclipse.edc.sql.lease.BaseSqlLeaseStatements;
34+
import org.eclipse.edc.sql.lease.SqlLeaseContextBuilderImpl;
35+
import org.eclipse.edc.sql.lease.spi.LeaseStatements;
3436
import org.eclipse.edc.sql.testfixtures.LeaseUtil;
37+
import org.eclipse.edc.sql.testfixtures.PostgresqlStoreSetupExtension;
3538
import org.eclipse.edc.transaction.datasource.spi.DataSourceRegistry;
3639
import org.eclipse.edc.transaction.spi.TransactionContext;
3740
import org.junit.jupiter.api.AfterAll;
@@ -67,8 +70,9 @@
6770
public class CosmosDataPlaneStoreTest /* extends DataPlaneStoreTestBase */ {
6871
private static final String CONNECTOR_NAME = "test-connector";
6972
private static final int TIMEOUT = 2000;
70-
private static final PostgresDataFlowStatements STATEMENTS = new PostgresDataFlowStatements();
71-
private final Clock clock = Clock.systemUTC();
73+
private static final Clock CLOCK = Clock.systemUTC();
74+
private static final LeaseStatements LEASE_STATEMENTS = new BaseSqlLeaseStatements();
75+
private static final PostgresDataFlowStatements STATEMENTS = new PostgresDataFlowStatements(LEASE_STATEMENTS, CLOCK);
7276
private SqlDataPlaneStore store;
7377
private LeaseUtil leaseUtil;
7478

@@ -83,13 +87,15 @@ static void dropTables(CosmosPostgresTestExtension.SqlHelper helper) {
8387
}
8488

8589
@BeforeEach
86-
void setUp(TransactionContext transactionContext, QueryExecutor queryExecutor, DataSourceRegistry reg, CosmosPostgresTestExtension.SqlHelper helper) {
90+
void setUp(TransactionContext transactionContext, PostgresqlStoreSetupExtension extension, QueryExecutor queryExecutor, DataSourceRegistry reg, CosmosPostgresTestExtension.SqlHelper helper) {
8791
var typeManager = new JacksonTypeManager();
8892
typeManager.registerTypes(DataPlaneInstance.class);
8993
typeManager.registerTypes(PolicyRegistrationTypes.TYPES.toArray(Class<?>[]::new));
90-
leaseUtil = new LeaseUtil(transactionContext, helper.connectionSupplier(), STATEMENTS, clock);
94+
leaseUtil = new LeaseUtil(transactionContext, helper.connectionSupplier(), STATEMENTS.getDataPlaneTable(), LEASE_STATEMENTS, CLOCK);
9195

92-
store = new SqlDataPlaneStore(reg, DEFAULT_DATASOURCE_NAME, transactionContext, STATEMENTS, typeManager.getMapper(), clock, queryExecutor, "test-connector");
96+
var leaseContextBuilder = SqlLeaseContextBuilderImpl.with(extension.getTransactionContext(), CONNECTOR_NAME, STATEMENTS.getDataPlaneTable(), LEASE_STATEMENTS, CLOCK, queryExecutor);
97+
98+
store = new SqlDataPlaneStore(reg, DEFAULT_DATASOURCE_NAME, transactionContext, STATEMENTS, leaseContextBuilder, typeManager.getMapper(), queryExecutor);
9399
helper.truncateTable(STATEMENTS.getDataPlaneTable());
94100
}
95101

@@ -169,7 +175,7 @@ void shouldReturnNotLeasedItems() {
169175
.isSubsetOf(all.stream().map(Entity::getId).toList())
170176
.allMatch(id -> isLeasedBy(id, CONNECTOR_NAME));
171177

172-
assertThat(leased).extracting(MutableEntity::getUpdatedAt).isSorted();
178+
assertThat(leased).extracting(StatefulEntity::getUpdatedAt).isSorted();
173179
}
174180

175181
@Test

gradle/libs.versions.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ edc-sql-lease = { module = "org.eclipse.edc:sql-lease", version.ref = "edc" }
5757
edc-sql-lib = { module = "org.eclipse.edc:sql-lib", version.ref = "edc" }
5858
edc-sql-test-fixtures = { module = "org.eclipse.edc:sql-test-fixtures", version.ref = "edc" }
5959

60+
edc-core-participantcontext-single = { module = "org.eclipse.edc:participant-context-single-core", version.ref = "edc" }
6061
edc-sql-assetindex = { module = "org.eclipse.edc:asset-index-sql", version.ref = "edc" }
6162
edc-sql-contractdefinition = { module = "org.eclipse.edc:contract-definition-store-sql", version.ref = "edc" }
6263
edc-sql-contractnegotiation = { module = "org.eclipse.edc:contract-negotiation-store-sql", version.ref = "edc" }

system-tests/azure-blob-transfer-tests/src/test/java/org/eclipse/edc/test/system/blob/BlobTransferIntegrationTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import org.eclipse.edc.azure.testfixtures.AbstractAzureBlobTest;
2121
import org.eclipse.edc.azure.testfixtures.AzuriteExtension;
2222
import org.eclipse.edc.azure.testfixtures.TestFunctions;
23-
import org.eclipse.edc.azure.testfixtures.annotations.AzureStorageIntegrationTest;
2423
import org.eclipse.edc.connector.controlplane.test.system.utils.PolicyFixtures;
2524
import org.eclipse.edc.connector.controlplane.transfer.spi.types.TransferProcessStates;
2625
import org.eclipse.edc.junit.extensions.EmbeddedRuntime;
@@ -46,7 +45,7 @@
4645
import static org.testcontainers.shaded.org.awaitility.Awaitility.await;
4746

4847
@Testcontainers
49-
@AzureStorageIntegrationTest
48+
//@AzureStorageIntegrationTest
5049
public class BlobTransferIntegrationTest extends AbstractAzureBlobTest {
5150

5251
private static final BlobTransferParticipant CONSUMER = BlobTransferParticipant.Builder.newInstance()

system-tests/runtimes/azure-storage-transfer-consumer/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,13 @@ dependencies {
2424
implementation(libs.edc.core.connector)
2525
implementation(libs.edc.core.edrstore)
2626
implementation(libs.edc.core.controlplane)
27+
implementation(libs.edc.core.participantcontext.single)
2728
implementation(libs.edc.dpf.selector.core)
2829
implementation(libs.edc.http)
2930

3031
implementation(libs.edc.api.observability)
3132

33+
3234
implementation(libs.edc.config.filesystem)
3335
implementation(libs.edc.iam.mock)
3436

system-tests/runtimes/azure-storage-transfer-provider/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ dependencies {
3030
implementation(libs.edc.core.dataplane)
3131
implementation(libs.edc.core.edrstore)
3232

33+
implementation(libs.edc.core.participantcontext.single)
3334
implementation(libs.edc.transfer.data.plane.signaling)
3435
implementation(libs.edc.data.plane.signaling.client)
3536
implementation(libs.edc.data.plane.self.registration)

0 commit comments

Comments
 (0)