Skip to content

Commit 67f4334

Browse files
authored
Merge pull request #4 from eclipse-edc/fix-compilation
fix: compilation errors
2 parents c490dc9 + 6a4b08c commit 67f4334

File tree

9 files changed

+95
-86
lines changed

9 files changed

+95
-86
lines changed

extensions/data-plane/data-plane-azure-data-factory/src/main/java/org/eclipse/edc/connector/dataplane/azure/datafactory/AzureDataFactoryTransferRequestValidator.java

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@
2020
import org.eclipse.edc.spi.types.domain.transfer.DataFlowRequest;
2121
import org.jetbrains.annotations.NotNull;
2222

23-
import java.util.HashMap;
24-
25-
import static java.lang.String.format;
2623
import static org.eclipse.edc.azure.blob.validator.AzureStorageValidator.validateAccountName;
2724
import static org.eclipse.edc.azure.blob.validator.AzureStorageValidator.validateBlobName;
2825
import static org.eclipse.edc.azure.blob.validator.AzureStorageValidator.validateContainerName;
@@ -55,22 +52,17 @@ boolean canHandle(DataFlowRequest request) {
5552
}
5653

5754
private void validateSource(DataAddress source) {
58-
var properties = new HashMap<>(source.getProperties());
59-
validateBlobName(properties.remove(AzureBlobStoreSchema.BLOB_NAME));
60-
validateProperties(properties);
55+
validateBlobName(source.getProperty(AzureBlobStoreSchema.BLOB_NAME));
56+
validateCommon(source);
6157
}
6258

6359
private void validateDestination(DataAddress destination) {
64-
var properties = new HashMap<>(destination.getProperties());
65-
validateProperties(properties);
60+
validateCommon(destination);
6661
}
6762

68-
private void validateProperties(HashMap<String, String> properties) {
69-
validateAccountName(properties.remove(AzureBlobStoreSchema.ACCOUNT_NAME));
70-
validateContainerName(properties.remove(AzureBlobStoreSchema.CONTAINER_NAME));
71-
validateKeyName(properties.remove(DataAddress.KEY_NAME));
72-
properties.keySet().stream().filter(k -> !DataAddress.TYPE.equals(k)).findFirst().ifPresent(k -> {
73-
throw new IllegalArgumentException(format("Unexpected property %s", k));
74-
});
63+
private void validateCommon(DataAddress dataAddress) {
64+
validateAccountName(dataAddress.getProperty(AzureBlobStoreSchema.ACCOUNT_NAME));
65+
validateContainerName(dataAddress.getProperty(AzureBlobStoreSchema.CONTAINER_NAME));
66+
validateKeyName(dataAddress.getKeyName());
7567
}
7668
}

extensions/data-plane/data-plane-azure-data-factory/src/main/java/org/eclipse/edc/connector/dataplane/azure/datafactory/DataFactoryPipelineFactory.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
import java.util.UUID;
3737

3838
import static java.lang.String.format;
39-
import static org.eclipse.edc.spi.types.domain.DataAddress.KEY_NAME;
4039

4140
/**
4241
* Factory class for Azure Data Factory object definitions, such as pipelines and datasets.
@@ -102,7 +101,7 @@ private LinkedServiceResource createSourceLinkedService(String name, DataAddress
102101
.withConnectionString(String.format("DefaultEndpointsProtocol=https;AccountName=%s;", accountName))
103102
.withAccountKey(
104103
new AzureKeyVaultSecretReference()
105-
.withSecretName(dataAddress.getProperty(KEY_NAME))
104+
.withSecretName(dataAddress.getKeyName())
106105
.withStore(new LinkedServiceReference()
107106
.withReferenceName(keyVaultLinkedService)
108107
))
@@ -112,7 +111,7 @@ private LinkedServiceResource createSourceLinkedService(String name, DataAddress
112111

113112
private LinkedServiceResource createDestinationLinkedService(String name, DataAddress dataAddress) {
114113
var accountName = dataAddress.getProperty(AzureBlobStoreSchema.ACCOUNT_NAME);
115-
var secret = keyVaultClient.getSecret(dataAddress.getProperty(KEY_NAME));
114+
var secret = keyVaultClient.getSecret(dataAddress.getKeyName());
116115
var token = typeManager.readValue(secret.getValue(), AzureSasToken.class);
117116
var sasTokenSecret = keyVaultClient.setSecret(name, token.getSas());
118117

@@ -142,4 +141,4 @@ private DatasetResource createDatasetResource(String name, LinkedServiceResource
142141
)
143142
.create();
144143
}
145-
}
144+
}

extensions/data-plane/data-plane-azure-data-factory/src/test/java/org/eclipse/edc/connector/dataplane/azure/datafactory/AzureDataFactoryTransferRequestValidatorTest.java

Lines changed: 63 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,23 @@
1818
import org.eclipse.edc.spi.types.domain.DataAddress;
1919
import org.eclipse.edc.spi.types.domain.transfer.DataFlowRequest;
2020
import org.junit.jupiter.api.Test;
21+
import org.junit.jupiter.api.extension.ExtensionContext;
2122
import org.junit.jupiter.params.ParameterizedTest;
2223
import org.junit.jupiter.params.provider.Arguments;
23-
import org.junit.jupiter.params.provider.MethodSource;
24+
import org.junit.jupiter.params.provider.ArgumentsProvider;
25+
import org.junit.jupiter.params.provider.ArgumentsSource;
2426

25-
import java.util.Collection;
26-
import java.util.HashMap;
2727
import java.util.Map;
2828
import java.util.UUID;
2929
import java.util.stream.Stream;
3030

3131
import static org.assertj.core.api.Assertions.assertThat;
32+
import static org.eclipse.edc.azure.blob.AzureBlobStoreSchema.ACCOUNT_NAME;
33+
import static org.eclipse.edc.azure.blob.AzureBlobStoreSchema.BLOB_NAME;
34+
import static org.eclipse.edc.azure.blob.AzureBlobStoreSchema.CONTAINER_NAME;
3235
import static org.eclipse.edc.azure.blob.testfixtures.AzureStorageTestFixtures.createDataAddress;
3336
import static org.eclipse.edc.azure.blob.testfixtures.AzureStorageTestFixtures.createRequest;
37+
import static org.eclipse.edc.junit.assertions.AbstractResultAssert.assertThat;
3438
import static org.junit.jupiter.params.provider.Arguments.arguments;
3539

3640
class AzureDataFactoryTransferRequestValidatorTest {
@@ -40,29 +44,10 @@ class AzureDataFactoryTransferRequestValidatorTest {
4044
private final Map<String, String> destinationProperties = TestFunctions.destinationProperties();
4145
private final DataAddress.Builder source = createDataAddress(AzureBlobStoreSchema.TYPE);
4246
private final DataAddress.Builder destination = createDataAddress(AzureBlobStoreSchema.TYPE);
43-
private final String extraKey = "test-extra-key";
44-
private final String extraValue = "test-extra-value";
4547
AzureDataFactoryTransferRequestValidator validator = new AzureDataFactoryTransferRequestValidator();
4648

47-
static Collection<String> sourcePropertyKeys() {
48-
return TestFunctions.sourceProperties().keySet();
49-
}
50-
51-
private static Stream<Arguments> canHandleArguments() {
52-
return Stream.of(
53-
arguments("Invalid source and valid destination", "Invalid source", AzureBlobStoreSchema.TYPE, false),
54-
arguments("Valid source and invalid destination", AzureBlobStoreSchema.TYPE, "Invalid destination", false),
55-
arguments("Invalid source and destination", "Invalid source", "Invalid destination", false),
56-
arguments("Valid source and destination", AzureBlobStoreSchema.TYPE, AzureBlobStoreSchema.TYPE, true)
57-
);
58-
}
59-
60-
private static Collection<String> destinationPropertyKeys() {
61-
return TestFunctions.destinationProperties().keySet();
62-
}
63-
6449
@ParameterizedTest(name = "{index} {0}")
65-
@MethodSource("canHandleArguments")
50+
@ArgumentsSource(CanHandle.class)
6651
void canHandle_onResult(String ignoredName, String sourceType, String destinationType, boolean expected) {
6752
// Arrange
6853
var source = createDataAddress(sourceType);
@@ -84,41 +69,70 @@ void validate_whenRequestValid_succeeds() {
8469
assertThat(result.succeeded()).withFailMessage(result::getFailureDetail).isTrue();
8570
}
8671

87-
@Test
88-
void validate_whenExtraSourceProperty_fails() {
89-
assertThat(validator.validate(REQUEST
90-
.sourceDataAddress(source.properties(sourceProperties).property(extraKey, extraValue).build())
72+
@ParameterizedTest
73+
@ArgumentsSource(InvalidSourceAddress.class)
74+
void validate_whenMissingSourceProperty_fails(DataAddress.Builder<?, ?> dataAddressBuilder) {
75+
var request = REQUEST
76+
.sourceDataAddress(dataAddressBuilder.build())
9177
.destinationDataAddress(destination.properties(destinationProperties).build())
92-
.build()).failed()).isTrue();
78+
.build();
79+
80+
var result = validator.validate(request);
81+
82+
assertThat(result).isFailed();
9383
}
9484

95-
@Test
96-
void validate_whenExtraDestinationProperty_fails() {
85+
@ParameterizedTest
86+
@ArgumentsSource(InvalidDestinationAddress.class)
87+
void validate_whenMissingDestinationProperty_fails(DataAddress.Builder<?, ?> dataAddressBuilder) {
9788
assertThat(validator.validate(REQUEST
9889
.sourceDataAddress(source.properties(sourceProperties).build())
99-
.destinationDataAddress(destination.properties(destinationProperties).property(extraKey, extraValue).build())
90+
.destinationDataAddress(dataAddressBuilder.build())
10091
.build()).failed()).isTrue();
10192
}
10293

103-
@ParameterizedTest
104-
@MethodSource("sourcePropertyKeys")
105-
void validate_whenMissingSourceProperty_fails(String property) {
106-
var src = new HashMap<>(sourceProperties);
107-
src.remove(property);
108-
assertThat(validator.validate(REQUEST
109-
.sourceDataAddress(source.properties(src).build())
110-
.destinationDataAddress(destination.properties(destinationProperties).build())
111-
.build()).failed()).isTrue();
94+
private static class InvalidSourceAddress implements ArgumentsProvider {
95+
@Override
96+
public Stream<? extends Arguments> provideArguments(ExtensionContext extensionContext) {
97+
return Stream.of(
98+
dataAddress().property(ACCOUNT_NAME, "accountName").property(CONTAINER_NAME, "containerName").property(BLOB_NAME, "blobName"),
99+
dataAddress().keyName("keyName").property(CONTAINER_NAME, "containerName").property(BLOB_NAME, "blobName"),
100+
dataAddress().keyName("keyName").property(ACCOUNT_NAME, "accountName").property(BLOB_NAME, "blobName"),
101+
dataAddress().keyName("keyName").property(ACCOUNT_NAME, "accountName").property(CONTAINER_NAME, "containerName")
102+
).map(Arguments::arguments);
103+
}
104+
105+
private DataAddress.Builder<?, ?> dataAddress() {
106+
return DataAddress.Builder.newInstance().type(AzureBlobStoreSchema.TYPE);
107+
}
112108
}
113109

114-
@ParameterizedTest
115-
@MethodSource("destinationPropertyKeys")
116-
void validate_whenMissingDestinationProperty_fails(String property) {
117-
var dest = new HashMap<>(destinationProperties);
118-
dest.remove(property);
119-
assertThat(validator.validate(REQUEST
120-
.sourceDataAddress(source.properties(sourceProperties).build())
121-
.destinationDataAddress(destination.properties(dest).build())
122-
.build()).failed()).isTrue();
110+
private static class InvalidDestinationAddress implements ArgumentsProvider {
111+
@Override
112+
public Stream<? extends Arguments> provideArguments(ExtensionContext extensionContext) {
113+
return Stream.of(
114+
dataAddress().property(ACCOUNT_NAME, "accountName").property(CONTAINER_NAME, "containerName"),
115+
dataAddress().keyName("keyName").property(CONTAINER_NAME, "containerName"),
116+
dataAddress().keyName("keyName").property(ACCOUNT_NAME, "accountName")
117+
).map(Arguments::arguments);
118+
}
119+
120+
private DataAddress.Builder<?, ?> dataAddress() {
121+
return DataAddress.Builder.newInstance().type(AzureBlobStoreSchema.TYPE);
122+
}
123123
}
124+
125+
private static class CanHandle implements ArgumentsProvider {
126+
127+
@Override
128+
public Stream<? extends Arguments> provideArguments(ExtensionContext extensionContext) {
129+
return Stream.of(
130+
arguments("Invalid source and valid destination", "Invalid source", AzureBlobStoreSchema.TYPE, false),
131+
arguments("Valid source and invalid destination", AzureBlobStoreSchema.TYPE, "Invalid destination", false),
132+
arguments("Invalid source and destination", "Invalid source", "Invalid destination", false),
133+
arguments("Valid source and destination", AzureBlobStoreSchema.TYPE, AzureBlobStoreSchema.TYPE, true)
134+
);
135+
}
136+
}
137+
124138
}

extensions/data-plane/data-plane-azure-data-factory/src/test/java/org/eclipse/edc/connector/dataplane/azure/datafactory/TestFunctions.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,26 @@ public class TestFunctions {
3030

3131
public static Map<String, String> sourceProperties() {
3232
var srcStorageAccount = createAccountName();
33-
return Map.of(
34-
AzureBlobStoreSchema.ACCOUNT_NAME, srcStorageAccount,
35-
AzureBlobStoreSchema.CONTAINER_NAME, createContainerName(),
36-
AzureBlobStoreSchema.BLOB_NAME, createBlobName(),
37-
DataAddress.KEY_NAME, srcStorageAccount + "-key1");
33+
return DataAddress.Builder.newInstance()
34+
.type(AzureBlobStoreSchema.TYPE)
35+
.keyName(srcStorageAccount + "-key1")
36+
.property(AzureBlobStoreSchema.ACCOUNT_NAME, srcStorageAccount)
37+
.property(AzureBlobStoreSchema.CONTAINER_NAME, createContainerName())
38+
.property(AzureBlobStoreSchema.BLOB_NAME, createBlobName())
39+
.build()
40+
.getProperties();
3841
}
3942

4043
public static Map<String, String> destinationProperties() {
4144
var destStorageAccount = createAccountName();
4245

43-
return Map.of(
44-
AzureBlobStoreSchema.ACCOUNT_NAME, destStorageAccount,
45-
AzureBlobStoreSchema.CONTAINER_NAME, createContainerName(),
46-
DataAddress.KEY_NAME, destStorageAccount + "-key1");
46+
return DataAddress.Builder.newInstance()
47+
.type(AzureBlobStoreSchema.TYPE)
48+
.keyName(destStorageAccount + "-key1")
49+
.property(AzureBlobStoreSchema.ACCOUNT_NAME, destStorageAccount)
50+
.property(AzureBlobStoreSchema.CONTAINER_NAME, createContainerName())
51+
.build()
52+
.getProperties();
4753
}
4854

4955
public static DataFlowRequest createFlowRequest() {

extensions/data-plane/data-plane-azure-storage/src/main/java/org/eclipse/edc/connector/dataplane/azure/storage/pipeline/AzureStorageDataSinkFactory.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import static org.eclipse.edc.azure.blob.validator.AzureStorageValidator.validateAccountName;
3535
import static org.eclipse.edc.azure.blob.validator.AzureStorageValidator.validateContainerName;
3636
import static org.eclipse.edc.azure.blob.validator.AzureStorageValidator.validateKeyName;
37-
import static org.eclipse.edc.spi.types.domain.DataAddress.KEY_NAME;
3837

3938
/**
4039
* Instantiates {@link AzureStorageDataSink}s for requests whose source data type is {@link AzureBlobStoreSchema#TYPE}.
@@ -72,7 +71,7 @@ public boolean canHandle(DataFlowRequest request) {
7271
try {
7372
validateAccountName(dataAddress.getProperty(ACCOUNT_NAME));
7473
validateContainerName(dataAddress.getProperty(CONTAINER_NAME));
75-
validateKeyName(dataAddress.getProperty(KEY_NAME));
74+
validateKeyName(dataAddress.getKeyName());
7675
} catch (IllegalArgumentException e) {
7776
return Result.failure("AzureStorage destination address is invalid: " + e.getMessage());
7877
}

extensions/data-plane/data-plane-azure-storage/src/main/java/org/eclipse/edc/connector/dataplane/azure/storage/pipeline/AzureStorageDataSourceFactory.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.eclipse.edc.spi.monitor.Monitor;
2424
import org.eclipse.edc.spi.result.Result;
2525
import org.eclipse.edc.spi.security.Vault;
26-
import org.eclipse.edc.spi.types.domain.DataAddress;
2726
import org.eclipse.edc.spi.types.domain.transfer.DataFlowRequest;
2827
import org.jetbrains.annotations.NotNull;
2928

@@ -68,7 +67,7 @@ public boolean canHandle(DataFlowRequest request) {
6867
validateAccountName(dataAddress.getProperty(ACCOUNT_NAME));
6968
validateContainerName(dataAddress.getProperty(CONTAINER_NAME));
7069
validateBlobName(dataAddress.getProperty(BLOB_NAME));
71-
validateKeyName(dataAddress.getProperty(DataAddress.KEY_NAME));
70+
validateKeyName(dataAddress.getKeyName());
7271
} catch (IllegalArgumentException e) {
7372
return Result.failure("AzureStorage source address is invalid: " + e.getMessage());
7473
}

extensions/data-plane/data-plane-azure-storage/src/test/java/org/eclipse/edc/connector/dataplane/azure/storage/pipeline/AzureStorageDataSourceFactoryTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ void canHandle_whenNotBlobRequest_returnsFalse() {
5858
@Test
5959
void validate_whenRequestValid_succeeds() {
6060
assertThat(factory.validateRequest(request.sourceDataAddress(dataAddress
61+
.keyName(accountName + "-key1")
6162
.property(AzureBlobStoreSchema.ACCOUNT_NAME, accountName)
6263
.property(AzureBlobStoreSchema.CONTAINER_NAME, containerName)
6364
.property(AzureBlobStoreSchema.BLOB_NAME, blobName)
64-
.property(DataAddress.KEY_NAME, accountName + "-key1")
6565
.build())
6666
.build())
6767
.succeeded()).isTrue();

gradle/libs.versions.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ edc = "0.1.1-SNAPSHOT"
99
failsafe = "3.3.1"
1010
httpMockServer = "5.15.0"
1111
jakarta-json = "2.0.1"
12+
junit = "5.9.3"
1213
mockito = "5.2.0"
1314
nimbus = "9.31"
1415
openTelemetry = "1.18.0"
@@ -79,8 +80,8 @@ opentelemetry-proto = { module = "io.opentelemetry.proto:opentelemetry-proto", v
7980
restAssured = { module = "io.rest-assured:rest-assured", version.ref = "restAssured" }
8081
jakartaJson = { module = "org.glassfish:jakarta.json", version.ref = "jakarta-json" }
8182
jakarta-rsApi = { module = "jakarta.ws.rs:jakarta.ws.rs-api", version.ref = "rsApi" }
82-
junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version = "5.9.3" }
83-
junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version = "5.9.3" }
83+
junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit" }
84+
junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit" }
8485
edc-jsonld = { module = "org.eclipse.edc:json-ld", version.ref = "edc" }
8586
mockserver-client = { module = "org.mock-server:mockserver-client-java", version.ref = "httpMockServer" }
8687
mockserver-netty = { module = "org.mock-server:mockserver-netty", version.ref = "httpMockServer" }

system-tests/azure-tests/src/testFixtures/java/org/eclipse/edc/test/system/local/BlobTransferUtils.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,7 @@ public static String createAsset(String accountName, String containerName) {
6262
.add("contenttype", "text/plain")
6363
.add("version", "1.0"))
6464
)
65-
.add("dataAddress", createObjectBuilder()
66-
.add("properties", createObjectBuilder(dataAddressProperties)))
65+
.add("dataAddress", createObjectBuilder(dataAddressProperties))
6766
.build();
6867

6968
return seedProviderData(ASSETS_PATH, requestBody);

0 commit comments

Comments
 (0)