Skip to content

Commit f3f6eb1

Browse files
committed
Merge pull request #30 from rpmoore/master
Adding in new xml attributes.
2 parents c673cc4 + b344aa6 commit f3f6eb1

File tree

14 files changed

+240
-14
lines changed

14 files changed

+240
-14
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ apply plugin: 'maven'
1919
sourceCompatibility = JavaVersion.VERSION_1_7
2020

2121
jar.archiveName = 'ds3_java_sdk'
22-
version = '0.7.1-SNAPSHOT'
22+
version = '0.7.2-SNAPSHOT'
2323
group = 'com.spectralogic'
2424

2525
install.dependsOn test //make sure that the tests get ran before attempting to install

src/main/java/com/spectralogic/ds3client/NetworkClientImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.spectralogic.ds3client.commands.Ds3Request;
1919
import com.spectralogic.ds3client.models.SignatureDetails;
2020
import com.spectralogic.ds3client.networking.*;
21+
import com.spectralogic.ds3client.serializer.XmlProcessingException;
2122
import com.spectralogic.ds3client.utils.DateFormatter;
2223
import com.spectralogic.ds3client.utils.Signature;
2324
import org.apache.http.HttpHost;
@@ -26,7 +27,6 @@
2627
import org.apache.http.client.config.RequestConfig;
2728
import org.apache.http.client.methods.CloseableHttpResponse;
2829
import org.apache.http.client.protocol.HttpClientContext;
29-
import org.apache.http.entity.InputStreamEntity;
3030
import org.apache.http.impl.client.HttpClients;
3131
import org.apache.http.message.BasicHttpEntityEnclosingRequest;
3232
import org.apache.http.message.BasicHttpRequest;

src/main/java/com/spectralogic/ds3client/commands/AbstractRequest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,13 @@ public final Map<String, String> getQueryParams() {
6262
public final Map<String, String> getHeaders() {
6363
return this.headers;
6464
}
65+
66+
final void updateQueryParam(final String name, final String param) {
67+
if(param == null) {
68+
this.queryParams.remove(name);
69+
}
70+
else {
71+
this.queryParams.put(name, param);
72+
}
73+
}
6574
}

src/main/java/com/spectralogic/ds3client/commands/BulkGetRequest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818
import com.spectralogic.ds3client.BulkCommand;
1919
import com.spectralogic.ds3client.models.bulk.Ds3Object;
20+
import com.spectralogic.ds3client.models.bulk.Priority;
21+
import com.spectralogic.ds3client.models.bulk.WriteOptimization;
2022
import com.spectralogic.ds3client.serializer.XmlProcessingException;
2123

2224
import java.util.List;
@@ -27,6 +29,18 @@ public BulkGetRequest(final String bucket, final List<Ds3Object> objects) throws
2729
getQueryParams().put("operation", "start_bulk_get");
2830
}
2931

32+
@Override
33+
public BulkGetRequest withPriority(final Priority priority) {
34+
super.withPriority(priority);
35+
return this;
36+
}
37+
38+
@Override
39+
public BulkGetRequest withWriteOptimization(final WriteOptimization writeOptimization) {
40+
super.withWriteOptimization(writeOptimization);
41+
return this;
42+
}
43+
3044
@Override
3145
public BulkCommand getCommand() {
3246
return BulkCommand.GET;

src/main/java/com/spectralogic/ds3client/commands/BulkPutRequest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818
import com.spectralogic.ds3client.BulkCommand;
1919
import com.spectralogic.ds3client.models.bulk.Ds3Object;
20+
import com.spectralogic.ds3client.models.bulk.Priority;
21+
import com.spectralogic.ds3client.models.bulk.WriteOptimization;
2022
import com.spectralogic.ds3client.serializer.XmlProcessingException;
2123

2224
import java.util.List;
@@ -27,6 +29,18 @@ public BulkPutRequest(final String bucket, final List<Ds3Object> objects) throws
2729
getQueryParams().put("operation", "start_bulk_put");
2830
}
2931

32+
@Override
33+
public BulkPutRequest withPriority(final Priority priority) {
34+
super.withPriority(priority);
35+
return this;
36+
}
37+
38+
@Override
39+
public BulkPutRequest withWriteOptimization(final WriteOptimization writeOptimization) {
40+
super.withWriteOptimization(writeOptimization);
41+
return this;
42+
}
43+
3044
@Override
3145
public BulkCommand getCommand() {
3246
return BulkCommand.PUT;

src/main/java/com/spectralogic/ds3client/commands/BulkRequest.java

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,31 +19,45 @@
1919
import com.spectralogic.ds3client.HttpVerb;
2020
import com.spectralogic.ds3client.models.bulk.Ds3Object;
2121
import com.spectralogic.ds3client.models.bulk.Ds3ObjectList;
22+
import com.spectralogic.ds3client.models.bulk.Priority;
23+
import com.spectralogic.ds3client.models.bulk.WriteOptimization;
2224
import com.spectralogic.ds3client.serializer.XmlOutput;
2325
import com.spectralogic.ds3client.serializer.XmlProcessingException;
2426

2527
import java.io.ByteArrayInputStream;
2628
import java.io.InputStream;
2729
import java.util.List;
2830

29-
3031
abstract class BulkRequest extends AbstractRequest {
3132

3233
private final String bucket;
3334
private final List<Ds3Object> ds3Objects;
34-
private final InputStream stream;
35+
private InputStream stream;
3536
private long size;
37+
private Priority priority;
38+
private WriteOptimization writeOptimization;
3639

37-
public BulkRequest(final String bucket, final List<Ds3Object> objects) throws XmlProcessingException {
40+
public BulkRequest(final String bucket, final List<Ds3Object> objects) {
3841
this.bucket = bucket;
3942
this.ds3Objects = objects;
40-
this.stream = this.generateStream();
4143
}
4244

43-
private InputStream generateStream() throws XmlProcessingException {
45+
public BulkRequest withPriority(final Priority priority) {
46+
this.priority = priority;
47+
return this;
48+
}
49+
50+
public BulkRequest withWriteOptimization(final WriteOptimization writeOptimization) {
51+
this.writeOptimization = writeOptimization;
52+
return this;
53+
}
54+
55+
private InputStream generateStream() {
4456
final Ds3ObjectList objects =
4557
new Ds3ObjectList();
4658
objects.setObjects(this.ds3Objects);
59+
objects.setPriority(this.priority);
60+
objects.setWriteOptimization(this.writeOptimization);
4761
final String xmlOutput = XmlOutput.toXml(objects, this.getCommand());
4862

4963
final byte[] stringBytes = xmlOutput.getBytes();
@@ -78,6 +92,17 @@ public HttpVerb getVerb() {
7892

7993
@Override
8094
public InputStream getStream() {
95+
if (this.stream == null) {
96+
this.stream = generateStream();
97+
}
8198
return this.stream;
8299
}
100+
101+
public Priority getPriority() {
102+
return priority;
103+
}
104+
105+
public WriteOptimization getWriteOptimization() {
106+
return writeOptimization;
107+
}
83108
}

src/main/java/com/spectralogic/ds3client/commands/PutBucketRequest.java

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,41 @@
1616
package com.spectralogic.ds3client.commands;
1717

1818
import com.spectralogic.ds3client.HttpVerb;
19+
import com.spectralogic.ds3client.models.bulk.Priority;
20+
import com.spectralogic.ds3client.models.bulk.WriteOptimization;
1921

2022
public class PutBucketRequest extends AbstractRequest {
2123

2224
final private String bucket;
25+
private WriteOptimization writeOptimization;
26+
private Priority putPriority;
27+
private Priority getPriority;
2328

2429
public PutBucketRequest(final String bucket) {
2530
this.bucket = bucket;
31+
writeOptimization = null;
32+
putPriority = null;
33+
getPriority = null;
2634
}
27-
35+
36+
public PutBucketRequest withDefaultWriteOptimization(final WriteOptimization writeOptimization) {
37+
this.writeOptimization = writeOptimization;
38+
this.updateQueryParam("defaultWriteOptimization", writeOptimization.toString());
39+
return this;
40+
}
41+
42+
public PutBucketRequest withDefaultPutJobPriority(final Priority priority) {
43+
this.putPriority = priority;
44+
this.updateQueryParam("defaultPutJobPriority", priority.toString());
45+
return this;
46+
}
47+
48+
public PutBucketRequest withDefaultGetJobPriority(final Priority priority) {
49+
this.getPriority = priority;
50+
this.updateQueryParam("defaultGetJobPriority", priority.toString());
51+
return this;
52+
}
53+
2854
public String getBucket() {
2955
return this.bucket;
3056
}

src/main/java/com/spectralogic/ds3client/models/bulk/Ds3ObjectList.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.spectralogic.ds3client.models.bulk;
22

33
import com.fasterxml.jackson.annotation.JsonProperty;
4+
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
45
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
56

67
import java.util.List;
@@ -10,6 +11,12 @@ public class Ds3ObjectList {
1011
@JsonProperty("Object")
1112
private List<Ds3Object> objects;
1213

14+
@JacksonXmlProperty(isAttribute = true, namespace = "", localName = "Priority")
15+
private Priority priority;
16+
17+
@JacksonXmlProperty(isAttribute = true, namespace = "", localName = "WriteOptimization")
18+
private WriteOptimization writeOptimization;
19+
1320
public Ds3ObjectList() {
1421
}
1522

@@ -24,4 +31,20 @@ public List<Ds3Object> getObjects() {
2431
public void setObjects(final List<Ds3Object> objects) {
2532
this.objects = objects;
2633
}
34+
35+
public Priority getPriority() {
36+
return priority;
37+
}
38+
39+
public void setPriority(final Priority priority) {
40+
this.priority = priority;
41+
}
42+
43+
public WriteOptimization getWriteOptimization() {
44+
return writeOptimization;
45+
}
46+
47+
public void setWriteOptimization(final WriteOptimization writeOptimization) {
48+
this.writeOptimization = writeOptimization;
49+
}
2750
}

src/main/java/com/spectralogic/ds3client/models/bulk/MasterObjectList.java

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,30 @@ public class MasterObjectList {
3030
@JacksonXmlElementWrapper
3131
private List<Node> nodes;
3232

33+
@JsonProperty("CachedSizeInBytes")
34+
private long cachedSizeInBytes;
35+
36+
@JsonProperty("CompletedSizeInBytes")
37+
private long completedSizeInBytes;
38+
39+
@JsonProperty("OriginalSizeInBytes")
40+
private long originalSizeInBytes;
41+
3342
@JsonProperty("BucketName")
3443
private String bucketName;
3544

3645
@JsonProperty("JobId")
3746
private UUID jobId;
3847

48+
@JsonProperty("UserId")
49+
private UUID userId;
50+
51+
@JsonProperty("UserName")
52+
private String userName;
53+
54+
@JsonProperty("WriteOptimization")
55+
private WriteOptimization writeOptimization;
56+
3957
@JsonProperty("Priority")
4058
private Priority priority;
4159

@@ -116,4 +134,52 @@ public void setStartDate(final String startDate) {
116134
public String toString() {
117135
return this.objects.toString();
118136
}
137+
138+
public long getCachedSizeInBytes() {
139+
return cachedSizeInBytes;
140+
}
141+
142+
public void setCachedSizeInBytes(final long cachedSizeInBytes) {
143+
this.cachedSizeInBytes = cachedSizeInBytes;
144+
}
145+
146+
public long getCompletedSizeInBytes() {
147+
return completedSizeInBytes;
148+
}
149+
150+
public void setCompletedSizeInBytes(final long completedSizeInBytes) {
151+
this.completedSizeInBytes = completedSizeInBytes;
152+
}
153+
154+
public long getOriginalSizeInBytes() {
155+
return originalSizeInBytes;
156+
}
157+
158+
public void setOriginalSizeInBytes(final long originalSizeInBytes) {
159+
this.originalSizeInBytes = originalSizeInBytes;
160+
}
161+
162+
public WriteOptimization getWriteOptimization() {
163+
return writeOptimization;
164+
}
165+
166+
public void setWriteOptimization(final WriteOptimization writeOptimization) {
167+
this.writeOptimization = writeOptimization;
168+
}
169+
170+
public String getUserName() {
171+
return userName;
172+
}
173+
174+
public void setUserName(final String userName) {
175+
this.userName = userName;
176+
}
177+
178+
public UUID getUserId() {
179+
return userId;
180+
}
181+
182+
public void setUserId(final UUID userId) {
183+
this.userId = userId;
184+
}
119185
}
Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,27 @@
11
package com.spectralogic.ds3client.models.bulk;
22

3+
import com.google.common.base.Function;
4+
import com.google.common.base.Joiner;
5+
import com.google.common.collect.Lists;
6+
7+
import java.util.ArrayList;
8+
39
public enum Priority {
410
CRITICAL,
511
VERY_HIGH,
612
HIGH,
713
NORMAL,
814
LOW,
915
BACKGROUND,
10-
MINIMIZED_DUE_TO_TOO_MANY_RETRIES
16+
MINIMIZED_DUE_TO_TOO_MANY_RETRIES;
17+
18+
public static String valuesString() {
19+
final ArrayList<Priority> list = Lists.newArrayList(Priority.values());
20+
return Joiner.on(", ").join(Lists.transform(list, new Function<Priority, String>() {
21+
@Override
22+
public String apply(final Priority input) {
23+
return input.toString().toLowerCase();
24+
}
25+
}));
26+
}
1127
}

0 commit comments

Comments
 (0)