Skip to content

Commit

Permalink
Merge branch 'develop' into 4291-job-run-type-checks
Browse files Browse the repository at this point in the history
  • Loading branch information
patchwork01 authored Feb 20, 2025
2 parents f68fcab + 7cd2917 commit 8c88ff1
Show file tree
Hide file tree
Showing 46 changed files with 789 additions and 396 deletions.
40 changes: 22 additions & 18 deletions .github/workflows/dependency-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,25 @@ jobs:
- name: Resolve dependencies
run: mvn de.qaware.maven:go-offline-maven-plugin:resolve-dependencies -Dmaven.repo.local=${{ runner.temp }}/.m2/repository
working-directory: ./java
- name: Update CVEs database
run: mvn --batch-mode dependency-check:update-only -Dmaven.repo.local=${{ runner.temp }}/.m2/repository
working-directory: ./java
- name: Build with Maven
run: mvn --batch-mode verify dependency-check:aggregate -Pquick,skipShade -DskipRust -Dmaven.repo.local=${{ runner.temp }}/.m2/repository
working-directory: ./java
- name: Cache Maven dependencies & CVEs database
uses: actions/cache/save@v3
if: ${{ always() }}
with:
path: ${{ runner.temp }}/.m2/repository
key: ${{ steps.restore-cache.outputs.cache-primary-key }}
- name: Upload dependency check report
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: Dependency check report
path: java/target/dependency-check-report.html
- name: Explain disabled workflow
run: |
echo "Temporarily disabled checks as the NVD API is too slow."
echo "See the following issue: https://github.com/gchq/sleeper/issues/4293"
# - name: Update CVEs database
# run: mvn --batch-mode dependency-check:update-only -Dmaven.repo.local=${{ runner.temp }}/.m2/repository
# working-directory: ./java
# - name: Build with Maven
# run: mvn --batch-mode verify dependency-check:aggregate -Pquick,skipShade -DskipRust -Dmaven.repo.local=${{ runner.temp }}/.m2/repository
# working-directory: ./java
# - name: Cache Maven dependencies & CVEs database
# uses: actions/cache/save@v3
# if: ${{ always() }}
# with:
# path: ${{ runner.temp }}/.m2/repository
# key: ${{ steps.restore-cache.outputs.cache-primary-key }}
# - name: Upload dependency check report
# if: ${{ always() }}
# uses: actions/upload-artifact@v4
# with:
# name: Dependency check report
# path: java/target/dependency-check-report.html
4 changes: 0 additions & 4 deletions java/common/dynamodb-test/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,6 @@
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
</dependency>
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock-jre8</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,31 +18,26 @@
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import static sleeper.dynamodb.test.GenericContainerAwsV1ClientHelper.buildAwsV1Client;

@Testcontainers
public abstract class DynamoDBTestBase {
public static final Logger LOGGER = LoggerFactory.getLogger(DynamoDBTestBase.class);

private static AmazonDynamoDB dynamoDBClientShared;

@Container
public static final DynamoDBContainer CONTAINER = new DynamoDBContainer();
public static final DynamoDBContainer CONTAINER = start();
private static final AmazonDynamoDB DYNAMO_CLIENT = buildAwsV1Client(CONTAINER, CONTAINER.getDynamoPort(), AmazonDynamoDBClientBuilder.standard());

@SuppressFBWarnings("URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
protected final AmazonDynamoDB dynamoDBClient = dynamoDBClientShared;

@BeforeAll
public static void initDynamoClient() {
dynamoDBClientShared = buildAwsV1Client(CONTAINER, CONTAINER.getDynamoPort(), AmazonDynamoDBClientBuilder.standard());
}

@AfterAll
public static void shutdownDynamoClient() {
dynamoDBClientShared.shutdown();
protected final AmazonDynamoDB dynamoClient = DYNAMO_CLIENT;

@SuppressFBWarnings("BC_UNCONFIRMED_CAST_OF_RETURN_VALUE")
private static DynamoDBContainer start() {
DynamoDBContainer container = new DynamoDBContainer()
.withLogConsumer(outputFrame -> LOGGER.info(outputFrame.getUtf8StringWithoutLineEnding()))
.withEnv("DEBUG", "1");
container.start();
return container;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ void shouldCreateRecordWithStringAttribute() {
.string(TEST_KEY, UUID.randomUUID().toString())
.string(TEST_VALUE, "value").build();
// When
dynamoDBClient.putItem(new PutItemRequest(TEST_TABLE_NAME, record));
dynamoClient.putItem(new PutItemRequest(TEST_TABLE_NAME, record));
// Then
ScanResult result = dynamoDBClient.scan(new ScanRequest().withTableName(TEST_TABLE_NAME));
ScanResult result = dynamoClient.scan(new ScanRequest().withTableName(TEST_TABLE_NAME));
assertThat(result.getItems()).containsExactly(record);
}

Expand All @@ -49,9 +49,9 @@ void shouldCreateRecordWithIntAttribute() {
.string(TEST_KEY, UUID.randomUUID().toString())
.number(TEST_VALUE, 123).build();
// When
dynamoDBClient.putItem(new PutItemRequest(TEST_TABLE_NAME, record));
dynamoClient.putItem(new PutItemRequest(TEST_TABLE_NAME, record));
// Then
ScanResult result = dynamoDBClient.scan(new ScanRequest().withTableName(TEST_TABLE_NAME));
ScanResult result = dynamoClient.scan(new ScanRequest().withTableName(TEST_TABLE_NAME));
assertThat(result.getItems()).containsExactly(record);
}

Expand All @@ -62,9 +62,9 @@ void shouldCreateRecordWithLongAttribute() {
.string(TEST_KEY, UUID.randomUUID().toString())
.number(TEST_VALUE, 123L).build();
// When
dynamoDBClient.putItem(new PutItemRequest(TEST_TABLE_NAME, record));
dynamoClient.putItem(new PutItemRequest(TEST_TABLE_NAME, record));
// Then
ScanResult result = dynamoDBClient.scan(new ScanRequest().withTableName(TEST_TABLE_NAME));
ScanResult result = dynamoClient.scan(new ScanRequest().withTableName(TEST_TABLE_NAME));
assertThat(result.getItems()).containsExactly(record);
}

Expand All @@ -75,9 +75,9 @@ void shouldCreateRecordWithInstantAttribute() {
.string(TEST_KEY, UUID.randomUUID().toString())
.number(TEST_VALUE, Instant.now().toEpochMilli()).build();
// When
dynamoDBClient.putItem(new PutItemRequest(TEST_TABLE_NAME, record));
dynamoClient.putItem(new PutItemRequest(TEST_TABLE_NAME, record));
// Then
ScanResult result = dynamoDBClient.scan(new ScanRequest().withTableName(TEST_TABLE_NAME));
ScanResult result = dynamoClient.scan(new ScanRequest().withTableName(TEST_TABLE_NAME));
assertThat(result.getItems()).containsExactly(record);
}

Expand All @@ -89,9 +89,9 @@ void shouldCreateRecordWithNaN() {
.string(TEST_KEY, key)
.number(TEST_VALUE, Double.NaN).build();
// When
dynamoDBClient.putItem(new PutItemRequest(TEST_TABLE_NAME, record));
dynamoClient.putItem(new PutItemRequest(TEST_TABLE_NAME, record));
// Then
ScanResult result = dynamoDBClient.scan(new ScanRequest().withTableName(TEST_TABLE_NAME));
ScanResult result = dynamoClient.scan(new ScanRequest().withTableName(TEST_TABLE_NAME));
assertThat(result.getItems()).containsExactly(record);
}

Expand All @@ -103,9 +103,9 @@ void shouldCreateRecordWithNullNumber() {
.string(TEST_KEY, key)
.number(TEST_VALUE, null).build();
// When
dynamoDBClient.putItem(new PutItemRequest(TEST_TABLE_NAME, record));
dynamoClient.putItem(new PutItemRequest(TEST_TABLE_NAME, record));
// Then
ScanResult result = dynamoDBClient.scan(new ScanRequest().withTableName(TEST_TABLE_NAME));
ScanResult result = dynamoClient.scan(new ScanRequest().withTableName(TEST_TABLE_NAME));
assertThat(result.getItems()).containsExactly(record);
}

Expand All @@ -118,9 +118,9 @@ void shouldUnsetExistingNumberAttributeWhenProvidingNull() {
.number(TEST_VALUE, 123)
.number(TEST_VALUE, null).build();
// When
dynamoDBClient.putItem(new PutItemRequest(TEST_TABLE_NAME, record));
dynamoClient.putItem(new PutItemRequest(TEST_TABLE_NAME, record));
// Then
ScanResult result = dynamoDBClient.scan(new ScanRequest().withTableName(TEST_TABLE_NAME));
ScanResult result = dynamoClient.scan(new ScanRequest().withTableName(TEST_TABLE_NAME));
assertThat(result.getItems()).containsExactly(new DynamoDBRecordBuilder()
.string(TEST_KEY, key).build());
}
Expand All @@ -134,9 +134,9 @@ void shouldUnsetExistingStringAttributeWhenProvidingNull() {
.string(TEST_VALUE, "abc")
.string(TEST_VALUE, null).build();
// When
dynamoDBClient.putItem(new PutItemRequest(TEST_TABLE_NAME, record));
dynamoClient.putItem(new PutItemRequest(TEST_TABLE_NAME, record));
// Then
ScanResult result = dynamoDBClient.scan(new ScanRequest().withTableName(TEST_TABLE_NAME));
ScanResult result = dynamoClient.scan(new ScanRequest().withTableName(TEST_TABLE_NAME));
assertThat(result.getItems()).containsExactly(new DynamoDBRecordBuilder()
.string(TEST_KEY, key).build());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,11 @@ void setup() {

@AfterEach
public void tearDown() {
dynamoDBClient.deleteTable(TEST_TABLE_NAME);
dynamoClient.deleteTable(TEST_TABLE_NAME);
}

public void createTable() {
initialiseTable(dynamoDBClient, TEST_TABLE_NAME,
initialiseTable(dynamoClient, TEST_TABLE_NAME,
List.of(
new AttributeDefinition(TEST_KEY, ScalarAttributeType.S)),
List.of(
Expand Down
Loading

0 comments on commit 8c88ff1

Please sign in to comment.