Skip to content

Commit

Permalink
DEV-11832 Adds includeExistingFiles field to B2ReplicationRule (#16)
Browse files Browse the repository at this point in the history
  • Loading branch information
nschile authored Apr 25, 2022
1 parent ddcfb6f commit 1b3700a
Show file tree
Hide file tree
Showing 7 changed files with 89 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -53,21 +53,30 @@ public class B2ReplicationRule {
@B2Json.required
private final boolean isEnabled;

/**
* Indicates if existing files in the bucket will be replicated (if they have not already been replicated
* to the destination bucket this rule specifies).
*/
@B2Json.optionalWithDefault(defaultValue = "false")
private final boolean includeExistingFiles;

/**
* Initializes a new, immutable rule.
*/
@B2Json.constructor(params = "replicationRuleName, destinationBucketId, priority, " +
"fileNamePrefix, isEnabled")
"fileNamePrefix, isEnabled, includeExistingFiles")
public B2ReplicationRule(String replicationRuleName,
String destinationBucketId,
int priority,
String fileNamePrefix,
boolean isEnabled) {
boolean isEnabled,
boolean includeExistingFiles) {
this.replicationRuleName = replicationRuleName;
this.destinationBucketId = destinationBucketId;
this.priority = priority;
this.fileNamePrefix = fileNamePrefix;
this.isEnabled = isEnabled;
this.includeExistingFiles = includeExistingFiles;
}

public String getReplicationRuleName() {
Expand All @@ -90,13 +99,18 @@ public boolean isEnabled() {
return isEnabled;
}

public boolean includeExistingFiles() {
return includeExistingFiles;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
B2ReplicationRule that = (B2ReplicationRule) o;
return priority == that.priority &&
isEnabled == that.isEnabled &&
includeExistingFiles == that.includeExistingFiles &&
Objects.equals(replicationRuleName, that.replicationRuleName) &&
Objects.equals(destinationBucketId, that.destinationBucketId) &&
Objects.equals(fileNamePrefix, that.fileNamePrefix);
Expand All @@ -109,7 +123,8 @@ public int hashCode() {
destinationBucketId,
priority,
fileNamePrefix,
isEnabled
isEnabled,
includeExistingFiles
);
}

Expand All @@ -121,6 +136,7 @@ public String toString() {
", priority=" + priority +
", fileNamePrefix='" + fileNamePrefix + '\'' +
", isEnabled=" + isEnabled +
", includeExistingFiles=" + includeExistingFiles +
'}';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -239,14 +239,16 @@ public void testCreateBucket() throws B2Exception {
"000011112222333344445555",
3,
"",
false
false,
true
),
new B2ReplicationRule(
"my-replication-rule-2",
"777011112222333344445555",
1,
"abc",
true
true,
false
)
);
final Map<String, String> sourceToDestinationKeyMapping = new TreeMap<>();
Expand Down Expand Up @@ -310,10 +312,10 @@ public void testCreateBucket() throws B2Exception {
"sourceApplicationKeyId='123a0a1a2a3a4a50000bc614e', " +
"replicationRules=[B2ReplicationRule{replicationRuleName='my-replication-rule', " +
"destinationBucketId='000011112222333344445555', priority=3, fileNamePrefix='', " +
"isEnabled=false}, " +
"isEnabled=false, includeExistingFiles=true}, " +
"B2ReplicationRule{replicationRuleName='my-replication-rule-2', " +
"destinationBucketId='777011112222333344445555', priority=1, fileNamePrefix='abc', " +
"isEnabled=true}]}, " +
"isEnabled=true, includeExistingFiles=false}]}, " +
"asReplicationDestination=B2DestinationConfig{" +
"sourceToDestinationKeyMapping={123a0a1a2a3a4a50000bc614e=555a0a1a2a3a4a70000bc929a, " +
"456a0b9a8a7a6a50000fc614e=555a0a1a2a3a4a70000bc929a}}}}),v1)",
Expand Down Expand Up @@ -345,10 +347,10 @@ public void testCreateBucket() throws B2Exception {
"sourceApplicationKeyId='123a0a1a2a3a4a50000bc614e', " +
"replicationRules=[B2ReplicationRule{replicationRuleName='my-replication-rule', " +
"destinationBucketId='000011112222333344445555', priority=3, fileNamePrefix='', " +
"isEnabled=false}, " +
"isEnabled=false, includeExistingFiles=true}, " +
"B2ReplicationRule{replicationRuleName='my-replication-rule-2', " +
"destinationBucketId='777011112222333344445555', priority=1, fileNamePrefix='abc', " +
"isEnabled=true}]}, " +
"isEnabled=true, includeExistingFiles=false}]}, " +
"asReplicationDestination=B2DestinationConfig{" +
"sourceToDestinationKeyMapping={123a0a1a2a3a4a50000bc614e=555a0a1a2a3a4a70000bc929a, " +
"456a0b9a8a7a6a50000fc614e=555a0a1a2a3a4a70000bc929a}}}}),v1)",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,15 @@ public void testToJsonAndBack_sourceOnly() {
" {\n" +
" \"destinationBucketId\": \"000011112222333344445555\",\n" +
" \"fileNamePrefix\": \"\",\n" +
" \"includeExistingFiles\": true,\n" +
" \"isEnabled\": false,\n" +
" \"priority\": 3,\n" +
" \"replicationRuleName\": \"my-replication-rule\"\n" +
" },\n" +
" {\n" +
" \"destinationBucketId\": \"777011112222333344445555\",\n" +
" \"fileNamePrefix\": \"abc\",\n" +
" \"includeExistingFiles\": false,\n" +
" \"isEnabled\": true,\n" +
" \"priority\": 1,\n" +
" \"replicationRuleName\": \"my-replication-rule-2\"\n" +
Expand All @@ -58,7 +60,8 @@ public void testToJsonAndBack_sourceOnly() {
"000011112222333344445555",
3,
"",
false
false,
true
)
);
replicationRules.add(
Expand All @@ -67,7 +70,8 @@ public void testToJsonAndBack_sourceOnly() {
"777011112222333344445555",
1,
"abc",
true
true,
false
)
);
final B2BucketReplicationConfiguration defaultConfig =
Expand Down Expand Up @@ -129,13 +133,15 @@ public void testToJsonAndBack_sourceAndDestination() {
" {\n" +
" \"destinationBucketId\": \"000011112222333344445555\",\n" +
" \"fileNamePrefix\": \"\",\n" +
" \"includeExistingFiles\": true,\n" +
" \"isEnabled\": false,\n" +
" \"priority\": 3,\n" +
" \"replicationRuleName\": \"my-replication-rule\"\n" +
" },\n" +
" {\n" +
" \"destinationBucketId\": \"777011112222333344445555\",\n" +
" \"fileNamePrefix\": \"abc\",\n" +
" \"includeExistingFiles\": false,\n" +
" \"isEnabled\": true,\n" +
" \"priority\": 1,\n" +
" \"replicationRuleName\": \"my-replication-rule-2\"\n" +
Expand All @@ -157,14 +163,16 @@ public void testToJsonAndBack_sourceAndDestination() {
"000011112222333344445555",
3,
"",
false
false,
true
),
new B2ReplicationRule(
"my-replication-rule-2",
"777011112222333344445555",
1,
"abc",
true
true,
false
)
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,14 +59,16 @@ public B2BucketTest() {
"000011112222333344445555",
3,
"",
false
false,
true
),
new B2ReplicationRule(
"my-replication-rule-2",
"777011112222333344445555",
1,
"abc",
true
true,
false
)
);

Expand Down Expand Up @@ -296,13 +298,15 @@ public void testFromJson() {
" {\n" +
" \"destinationBucketId\": \"000011112222333344445555\",\n" +
" \"fileNamePrefix\": \"\",\n" +
" \"includeExistingFiles\": true,\n" +
" \"isEnabled\": false,\n" +
" \"priority\": 3,\n" +
" \"replicationRuleName\": \"my-replication-rule\"\n" +
" },\n" +
" {\n" +
" \"destinationBucketId\": \"777011112222333344445555\",\n" +
" \"fileNamePrefix\": \"abc\",\n" +
" \"includeExistingFiles\": false,\n" +
" \"isEnabled\": true,\n" +
" \"priority\": 1,\n" +
" \"replicationRuleName\": \"my-replication-rule-2\"\n" +
Expand Down Expand Up @@ -380,13 +384,15 @@ public void testUnauthorizedToReadServerSideEncryptionThrowsException() throws B
" {\n" +
" \"destinationBucketId\": \"000011112222333344445555\",\n" +
" \"fileNamePrefix\": \"\",\n" +
" \"includeExistingFiles\": true,\n" +
" \"isEnabled\": false,\n" +
" \"priority\": 3,\n" +
" \"replicationRuleName\": \"my-replication-rule\"\n" +
" },\n" +
" {\n" +
" \"destinationBucketId\": \"777011112222333344445555\",\n" +
" \"fileNamePrefix\": \"abc\",\n" +
" \"includeExistingFiles\": false,\n" +
" \"isEnabled\": true,\n" +
" \"priority\": 1,\n" +
" \"replicationRuleName\": \"my-replication-rule-2\"\n" +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,14 +66,16 @@ public void testFullCreateBucketRequestReal() {
"000011112222333344445555",
3,
"",
false
false,
true
),
new B2ReplicationRule(
"my-replication-rule-2",
"777011112222333344445555",
1,
"abc",
true
true,
false
)
);
final Map<String, String> sourceToDestinationKeyMapping = mapOf(
Expand Down Expand Up @@ -151,13 +153,15 @@ public void testFullCreateBucketRequestReal() {
" {\n" +
" \"destinationBucketId\": \"000011112222333344445555\",\n" +
" \"fileNamePrefix\": \"\",\n" +
" \"includeExistingFiles\": true,\n" +
" \"isEnabled\": false,\n" +
" \"priority\": 3,\n" +
" \"replicationRuleName\": \"my-replication-rule\"\n" +
" },\n" +
" {\n" +
" \"destinationBucketId\": \"777011112222333344445555\",\n" +
" \"fileNamePrefix\": \"abc\",\n" +
" \"includeExistingFiles\": false,\n" +
" \"isEnabled\": true,\n" +
" \"priority\": 1,\n" +
" \"replicationRuleName\": \"my-replication-rule-2\"\n" +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public void testToJsonAndBack() {
final String jsonString = "{\n" +
" \"destinationBucketId\": \"000011112222333344445555\",\n" +
" \"fileNamePrefix\": \"\",\n" +
" \"includeExistingFiles\": true,\n" +
" \"isEnabled\": false,\n" +
" \"priority\": 3,\n" +
" \"replicationRuleName\": \"my-replication-rule\"\n" +
Expand All @@ -31,10 +32,37 @@ public void testToJsonAndBack() {
"000011112222333344445555",
3,
"",
false
false,
true
);
final String convertedJson = B2Json.toJsonOrThrowRuntime(defaultConfig);
assertEquals(defaultConfig, converted);
assertEquals(jsonString, convertedJson);
}
}

@Test
public void testFromJsonWithOptionalFieldsNotSet() {
final String jsonString = "{\n" +
" \"destinationBucketId\": \"000011112222333344445555\",\n" +
" \"fileNamePrefix\": \"\",\n" +
" \"isEnabled\": false,\n" +
" \"priority\": 3,\n" +
" \"replicationRuleName\": \"my-replication-rule\"\n" +
"}";
final B2ReplicationRule converted =
B2Json.fromJsonOrThrowRuntime(
jsonString,
B2ReplicationRule.class
);
final B2ReplicationRule defaultConfig =
new B2ReplicationRule(
"my-replication-rule",
"000011112222333344445555",
3,
"",
false,
false
);
assertEquals(defaultConfig, converted);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -87,14 +87,16 @@ public void testFullUpdateBucketRequest() {
"000011112222333344445555",
3,
"",
false
false,
true
),
new B2ReplicationRule(
"my-replication-rule-2",
"777011112222333344445555",
1,
"abc",
true
true,
false
)
);
final Map<String, String> sourceToDestinationKeyMapping = mapOf(
Expand Down Expand Up @@ -189,13 +191,15 @@ public void testFullUpdateBucketRequest() {
" {\n" +
" \"destinationBucketId\": \"000011112222333344445555\",\n" +
" \"fileNamePrefix\": \"\",\n" +
" \"includeExistingFiles\": true,\n" +
" \"isEnabled\": false,\n" +
" \"priority\": 3,\n" +
" \"replicationRuleName\": \"my-replication-rule\"\n" +
" },\n" +
" {\n" +
" \"destinationBucketId\": \"777011112222333344445555\",\n" +
" \"fileNamePrefix\": \"abc\",\n" +
" \"includeExistingFiles\": false,\n" +
" \"isEnabled\": true,\n" +
" \"priority\": 1,\n" +
" \"replicationRuleName\": \"my-replication-rule-2\"\n" +
Expand Down

0 comments on commit 1b3700a

Please sign in to comment.