Skip to content

Commit f6b863e

Browse files
committed
Refactor messages by subclasses
merge SelectObjectContentRequest merge ListVersionsResult Remove unused CompleteMultipartUploadOutput.java merge ListMultipartUploadsResult merge NotificationRecords merge SseConfiguration merge DeleteRequest, DeleteResult merge RestoreRequest merge NotificationConfiguration merge LifecycleConfiguration merge ReplicationConfiguration merge Filter merge ObjectLockConfiguration merge ListAllMyBucketsResult merge Item merge ListObjectsResult Move common fields for ListPartsResult and GetObjectAttributesOutput Signed-off-by: Bala.FA <[email protected]>
1 parent b0d6398 commit f6b863e

File tree

111 files changed

+2639
-4429
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+2639
-4429
lines changed

api/src/main/java/io/minio/MinioAsyncClient.java

+40-34
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,11 @@
3535
import io.minio.http.HttpUtils;
3636
import io.minio.http.Method;
3737
import io.minio.messages.AccessControlPolicy;
38-
import io.minio.messages.Bucket;
3938
import io.minio.messages.CORSConfiguration;
4039
import io.minio.messages.CopyObjectResult;
4140
import io.minio.messages.CreateBucketConfiguration;
42-
import io.minio.messages.DeleteError;
43-
import io.minio.messages.DeleteObject;
41+
import io.minio.messages.DeleteRequest;
42+
import io.minio.messages.DeleteResult;
4443
import io.minio.messages.GetObjectAttributesOutput;
4544
import io.minio.messages.Item;
4645
import io.minio.messages.LegalHold;
@@ -1105,35 +1104,36 @@ public CompletableFuture<Void> removeObject(RemoveObjectArgs args)
11051104
* objects.add(new DeleteObject("my-objectname1"));
11061105
* objects.add(new DeleteObject("my-objectname2"));
11071106
* objects.add(new DeleteObject("my-objectname3"));
1108-
* Iterable<Result<DeleteError>> results =
1107+
* Iterable<Result<DeleteResult.Error>> results =
11091108
* minioAsyncClient.removeObjects(
11101109
* RemoveObjectsArgs.builder().bucket("my-bucketname").objects(objects).build());
1111-
* for (Result<DeleteError> result : results) {
1112-
* DeleteError error = result.get();
1110+
* for (Result<DeleteResult.Error> result : results) {
1111+
* DeleteResult.Error error = result.get();
11131112
* System.out.println(
11141113
* "Error in deleting object " + error.objectName() + "; " + error.message());
11151114
* }
11161115
* }</pre>
11171116
*
11181117
* @param args {@link RemoveObjectsArgs} object.
1119-
* @return {@code Iterable<Result<DeleteError>>} - Lazy iterator contains object removal status.
1118+
* @return {@code Iterable<Result<DeleteResult.Error>>} - Lazy iterator contains object removal
1119+
* status.
11201120
*/
1121-
public Iterable<Result<DeleteError>> removeObjects(RemoveObjectsArgs args) {
1121+
public Iterable<Result<DeleteResult.Error>> removeObjects(RemoveObjectsArgs args) {
11221122
checkArgs(args);
11231123

1124-
return new Iterable<Result<DeleteError>>() {
1124+
return new Iterable<Result<DeleteResult.Error>>() {
11251125
@Override
1126-
public Iterator<Result<DeleteError>> iterator() {
1127-
return new Iterator<Result<DeleteError>>() {
1128-
private Result<DeleteError> error = null;
1129-
private Iterator<DeleteError> errorIterator = null;
1126+
public Iterator<Result<DeleteResult.Error>> iterator() {
1127+
return new Iterator<Result<DeleteResult.Error>>() {
1128+
private Result<DeleteResult.Error> error = null;
1129+
private Iterator<DeleteResult.Error> errorIterator = null;
11301130
private boolean completed = false;
1131-
private Iterator<DeleteObject> objectIter = args.objects().iterator();
1131+
private Iterator<DeleteRequest.Object> objectIter = args.objects().iterator();
11321132

11331133
private void setError() {
11341134
error = null;
11351135
while (errorIterator.hasNext()) {
1136-
DeleteError deleteError = errorIterator.next();
1136+
DeleteResult.Error deleteError = errorIterator.next();
11371137
if (!"NoSuchVersion".equals(deleteError.code())) {
11381138
error = new Result<>(deleteError);
11391139
break;
@@ -1147,7 +1147,7 @@ private synchronized void populate() {
11471147
}
11481148

11491149
try {
1150-
List<DeleteObject> objectList = new LinkedList<>();
1150+
List<DeleteRequest.Object> objectList = new LinkedList<>();
11511151
while (objectIter.hasNext() && objectList.size() < 1000) {
11521152
objectList.add(objectIter.next());
11531153
}
@@ -1205,11 +1205,11 @@ public boolean hasNext() {
12051205
}
12061206

12071207
@Override
1208-
public Result<DeleteError> next() {
1208+
public Result<DeleteResult.Error> next() {
12091209
if (!hasNext()) throw new NoSuchElementException();
12101210

12111211
if (this.error != null) {
1212-
Result<DeleteError> error = this.error;
1212+
Result<DeleteResult.Error> error = this.error;
12131213
this.error = null;
12141214
return error;
12151215
}
@@ -1325,18 +1325,19 @@ public Iterable<Result<Item>> listObjects(ListObjectsArgs args) {
13251325
* Lists bucket information of all buckets.
13261326
*
13271327
* <pre>Example:{@code
1328-
* CompletableFuture<List<Bucket>> future = minioAsyncClient.listBuckets();
1328+
* CompletableFuture<List<ListAllMyBucketsResult.Bucket>> future = minioAsyncClient.listBuckets();
13291329
* }</pre>
13301330
*
1331-
* @return {@link CompletableFuture}&lt;{@link List}&lt;{@link Bucket}&gt;&gt; object.
1331+
* @return {@link CompletableFuture}&lt;{@link List}&lt;{@link
1332+
* ListAllMyBucketsResult.Bucket}&gt;&gt; object.
13321333
* @throws InsufficientDataException thrown to indicate not enough data available in InputStream.
13331334
* @throws InternalException thrown to indicate internal library error.
13341335
* @throws InvalidKeyException thrown to indicate missing of HMAC SHA-256 library.
13351336
* @throws IOException thrown to indicate I/O error on S3 operation.
13361337
* @throws NoSuchAlgorithmException thrown to indicate missing of MD5 or SHA-256 digest library.
13371338
* @throws XmlParserException thrown to indicate XML parsing error.
13381339
*/
1339-
public CompletableFuture<List<Bucket>> listBuckets()
1340+
public CompletableFuture<List<ListAllMyBucketsResult.Bucket>> listBuckets()
13401341
throws InsufficientDataException, InternalException, InvalidKeyException, IOException,
13411342
NoSuchAlgorithmException, XmlParserException {
13421343
return listBucketsAsync(null, null, null, null, null, null)
@@ -1350,30 +1351,31 @@ public CompletableFuture<List<Bucket>> listBuckets()
13501351
* Lists bucket information of all buckets.
13511352
*
13521353
* <pre>Example:{@code
1353-
* Iterable<Result<Bucket>> results = minioAsyncClient.listBuckets(ListBucketsArgs.builder().build());
1354-
* for (Result<Bucket> result : results) {
1354+
* Iterable<Result<ListAllMyBucketsResult.Bucket>> results = minioAsyncClient.listBuckets(ListBucketsArgs.builder().build());
1355+
* for (Result<ListAllMyBucketsResult.Bucket> result : results) {
13551356
* Bucket bucket = result.get();
13561357
* System.out.println(String.format("Bucket: %s, Region: %s, CreationDate: %s", bucket.name(), bucket.bucketRegion(), bucket.creationDate()));
13571358
* }
13581359
* }</pre>
13591360
*
1360-
* @return {@link Iterable}&lt;{@link List}&lt;{@link Bucket}&gt;&gt; object.
1361+
* @return {@link Iterable}&lt;{@link List}&lt;{@link ListAllMyBucketsResult.Bucket}&gt;&gt;
1362+
* object.
13611363
*/
1362-
public Iterable<Result<Bucket>> listBuckets(ListBucketsArgs args) {
1363-
return new Iterable<Result<Bucket>>() {
1364+
public Iterable<Result<ListAllMyBucketsResult.Bucket>> listBuckets(ListBucketsArgs args) {
1365+
return new Iterable<Result<ListAllMyBucketsResult.Bucket>>() {
13641366
@Override
1365-
public Iterator<Result<Bucket>> iterator() {
1366-
return new Iterator<Result<Bucket>>() {
1367+
public Iterator<Result<ListAllMyBucketsResult.Bucket>> iterator() {
1368+
return new Iterator<Result<ListAllMyBucketsResult.Bucket>>() {
13671369
private ListAllMyBucketsResult result = null;
1368-
private Result<Bucket> error = null;
1369-
private Iterator<Bucket> iterator = null;
1370+
private Result<ListAllMyBucketsResult.Bucket> error = null;
1371+
private Iterator<ListAllMyBucketsResult.Bucket> iterator = null;
13701372
private boolean completed = false;
13711373

13721374
private synchronized void populate() {
13731375
if (completed) return;
13741376

13751377
try {
1376-
this.iterator = new LinkedList<Bucket>().iterator();
1378+
this.iterator = new LinkedList<ListAllMyBucketsResult.Bucket>().iterator();
13771379
try {
13781380
ListBucketsResponse response =
13791381
listBucketsAsync(
@@ -1430,7 +1432,7 @@ public boolean hasNext() {
14301432
}
14311433

14321434
@Override
1433-
public Result<Bucket> next() {
1435+
public Result<ListAllMyBucketsResult.Bucket> next() {
14341436
if (this.completed) throw new NoSuchElementException();
14351437
if (this.error == null && this.iterator == null) {
14361438
populate();
@@ -1448,7 +1450,7 @@ public Result<Bucket> next() {
14481450
return this.error;
14491451
}
14501452

1451-
Bucket item = null;
1453+
ListAllMyBucketsResult.Bucket item = null;
14521454
if (this.iterator.hasNext()) {
14531455
item = this.iterator.next();
14541456
}
@@ -2542,7 +2544,11 @@ public CompletableFuture<Void> deleteBucketNotification(DeleteBucketNotification
25422544
NoSuchAlgorithmException, XmlParserException {
25432545
checkArgs(args);
25442546
return executePutAsync(
2545-
args, null, newMultimap("notification", ""), new NotificationConfiguration(), 0)
2547+
args,
2548+
null,
2549+
newMultimap("notification", ""),
2550+
new NotificationConfiguration(null, null, null, null),
2551+
0)
25462552
.thenAccept(response -> response.close());
25472553
}
25482554

api/src/main/java/io/minio/MinioClient.java

+16-14
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@
2727
import io.minio.errors.ServerException;
2828
import io.minio.errors.XmlParserException;
2929
import io.minio.messages.AccessControlPolicy;
30-
import io.minio.messages.Bucket;
3130
import io.minio.messages.CORSConfiguration;
32-
import io.minio.messages.DeleteError;
31+
import io.minio.messages.DeleteResult;
3332
import io.minio.messages.Item;
3433
import io.minio.messages.LifecycleConfiguration;
34+
import io.minio.messages.ListAllMyBucketsResult;
3535
import io.minio.messages.NotificationConfiguration;
3636
import io.minio.messages.NotificationRecords;
3737
import io.minio.messages.ObjectLockConfiguration;
@@ -641,20 +641,21 @@ public void removeObject(RemoveObjectArgs args)
641641
* objects.add(new DeleteObject("my-objectname1"));
642642
* objects.add(new DeleteObject("my-objectname2"));
643643
* objects.add(new DeleteObject("my-objectname3"));
644-
* Iterable<Result<DeleteError>> results =
644+
* Iterable<Result<DeleteResult.Error>> results =
645645
* minioClient.removeObjects(
646646
* RemoveObjectsArgs.builder().bucket("my-bucketname").objects(objects).build());
647-
* for (Result<DeleteError> result : results) {
648-
* DeleteError error = result.get();
647+
* for (Result<DeleteResult.Error> result : results) {
648+
* DeleteResult.Error error = result.get();
649649
* System.out.println(
650650
* "Error in deleting object " + error.objectName() + "; " + error.message());
651651
* }
652652
* }</pre>
653653
*
654654
* @param args {@link RemoveObjectsArgs} object.
655-
* @return {@code Iterable<Result<DeleteError>>} - Lazy iterator contains object removal status.
655+
* @return {@code Iterable<Result<DeleteResult.Error>>} - Lazy iterator contains object removal
656+
* status.
656657
*/
657-
public Iterable<Result<DeleteError>> removeObjects(RemoveObjectsArgs args) {
658+
public Iterable<Result<DeleteResult.Error>> removeObjects(RemoveObjectsArgs args) {
658659
return asyncClient.removeObjects(args);
659660
}
660661

@@ -755,13 +756,13 @@ public Iterable<Result<Item>> listObjects(ListObjectsArgs args) {
755756
* Lists bucket information of all buckets.
756757
*
757758
* <pre>Example:{@code
758-
* List<Bucket> bucketList = minioClient.listBuckets();
759+
* List<ListAllMyBucketsResult.Bucket> bucketList = minioClient.listBuckets();
759760
* for (Bucket bucket : bucketList) {
760761
* System.out.println(bucket.creationDate() + ", " + bucket.name());
761762
* }
762763
* }</pre>
763764
*
764-
* @return {@code List<Bucket>} - List of bucket information.
765+
* @return {@code List<ListAllMyBucketsResult.Bucket>} - List of bucket information.
765766
* @throws ErrorResponseException thrown to indicate S3 service returned an error response.
766767
* @throws InsufficientDataException thrown to indicate not enough data available in InputStream.
767768
* @throws InternalException thrown to indicate internal library error.
@@ -772,7 +773,7 @@ public Iterable<Result<Item>> listObjects(ListObjectsArgs args) {
772773
* @throws NoSuchAlgorithmException thrown to indicate missing of MD5 or SHA-256 digest library.
773774
* @throws XmlParserException thrown to indicate XML parsing error.
774775
*/
775-
public List<Bucket> listBuckets()
776+
public List<ListAllMyBucketsResult.Bucket> listBuckets()
776777
throws ErrorResponseException, InsufficientDataException, InternalException,
777778
InvalidKeyException, InvalidResponseException, IOException, NoSuchAlgorithmException,
778779
ServerException, XmlParserException {
@@ -790,16 +791,17 @@ public List<Bucket> listBuckets()
790791
* Lists bucket information of all buckets.
791792
*
792793
* <pre>Example:{@code
793-
* Iterable<Result<Bucket>> results = minioClient.listBuckets(ListBucketsArgs.builder().build());
794-
* for (Result<Bucket> result : results) {
794+
* Iterable<Result<ListAllMyBucketsResult.Bucket>> results = minioClient.listBuckets(ListBucketsArgs.builder().build());
795+
* for (Result<ListAllMyBucketsResult.Bucket> result : results) {
795796
* Bucket bucket = result.get();
796797
* System.out.println(String.format("Bucket: %s, Region: %s, CreationDate: %s", bucket.name(), bucket.bucketRegion(), bucket.creationDate()));
797798
* }
798799
* }</pre>
799800
*
800-
* @return {@link Iterable}&lt;{@link List}&lt;{@link Bucket}&gt;&gt; object.
801+
* @return {@link Iterable}&lt;{@link List}&lt;{@link ListAllMyBucketsResult.Bucket}&gt;&gt;
802+
* object.
801803
*/
802-
public Iterable<Result<Bucket>> listBuckets(ListBucketsArgs args) {
804+
public Iterable<Result<ListAllMyBucketsResult.Bucket>> listBuckets(ListBucketsArgs args) {
803805
return asyncClient.listBuckets(args);
804806
}
805807

api/src/main/java/io/minio/RemoveObjectsArgs.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package io.minio;
1818

19-
import io.minio.messages.DeleteObject;
19+
import io.minio.messages.DeleteRequest;
2020
import java.util.LinkedList;
2121
import java.util.Objects;
2222

@@ -25,13 +25,13 @@
2525
*/
2626
public class RemoveObjectsArgs extends BucketArgs {
2727
private boolean bypassGovernanceMode;
28-
private Iterable<DeleteObject> objects = new LinkedList<>();
28+
private Iterable<DeleteRequest.Object> objects = new LinkedList<>();
2929

3030
public boolean bypassGovernanceMode() {
3131
return bypassGovernanceMode;
3232
}
3333

34-
public Iterable<DeleteObject> objects() {
34+
public Iterable<DeleteRequest.Object> objects() {
3535
return objects;
3636
}
3737

@@ -46,7 +46,7 @@ public Builder bypassGovernanceMode(boolean flag) {
4646
return this;
4747
}
4848

49-
public Builder objects(Iterable<DeleteObject> objects) {
49+
public Builder objects(Iterable<DeleteRequest.Object> objects) {
5050
validateNotNull(objects, "objects");
5151
operations.add(args -> args.objects = objects);
5252
return this;

api/src/main/java/io/minio/S3Base.java

+8-12
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,6 @@
4141
import io.minio.messages.CompleteMultipartUpload;
4242
import io.minio.messages.CompleteMultipartUploadResult;
4343
import io.minio.messages.CopyPartResult;
44-
import io.minio.messages.DeleteError;
45-
import io.minio.messages.DeleteMarker;
46-
import io.minio.messages.DeleteObject;
4744
import io.minio.messages.DeleteRequest;
4845
import io.minio.messages.DeleteResult;
4946
import io.minio.messages.ErrorResponse;
@@ -59,7 +56,6 @@
5956
import io.minio.messages.LocationConstraint;
6057
import io.minio.messages.NotificationRecords;
6158
import io.minio.messages.Part;
62-
import io.minio.messages.Prefix;
6359
import java.io.IOException;
6460
import java.io.InputStream;
6561
import java.io.OutputStream;
@@ -1033,8 +1029,8 @@ protected CompletableFuture<Integer> calculatePartCountAsync(List<ComposeSource>
10331029
private abstract class ObjectIterator implements Iterator<Result<Item>> {
10341030
protected Result<Item> error;
10351031
protected Iterator<? extends Item> itemIterator;
1036-
protected Iterator<DeleteMarker> deleteMarkerIterator;
1037-
protected Iterator<Prefix> prefixIterator;
1032+
protected Iterator<ListVersionsResult.DeleteMarker> deleteMarkerIterator;
1033+
protected Iterator<ListObjectsResult.Prefix> prefixIterator;
10381034
protected boolean completed = false;
10391035
protected ListObjectsResult listObjectsResult;
10401036
protected String lastObjectName;
@@ -1065,8 +1061,8 @@ protected synchronized void populate() {
10651061
this.prefixIterator = this.listObjectsResult.commonPrefixes().iterator();
10661062
} else {
10671063
this.itemIterator = new LinkedList<Item>().iterator();
1068-
this.deleteMarkerIterator = new LinkedList<DeleteMarker>().iterator();
1069-
this.prefixIterator = new LinkedList<Prefix>().iterator();
1064+
this.deleteMarkerIterator = new LinkedList<ListVersionsResult.DeleteMarker>().iterator();
1065+
this.prefixIterator = new LinkedList<ListObjectsResult.Prefix>().iterator();
10701066
}
10711067
}
10721068

@@ -1772,7 +1768,7 @@ public CompletableFuture<CreateMultipartUploadResponse> createMultipartUploadAsy
17721768
protected CompletableFuture<DeleteObjectsResponse> deleteObjectsAsync(
17731769
String bucketName,
17741770
String region,
1775-
List<DeleteObject> objectList,
1771+
List<DeleteRequest.Object> objectList,
17761772
boolean quiet,
17771773
boolean bypassGovernanceMode,
17781774
Multimap<String, String> extraHeaders,
@@ -1790,7 +1786,7 @@ protected CompletableFuture<DeleteObjectsResponse> deleteObjectsAsync(
17901786
extraHeaders,
17911787
bypassGovernanceMode ? newMultimap("x-amz-bypass-governance-retention", "true") : null);
17921788

1793-
final List<DeleteObject> objects = objectList;
1789+
final List<DeleteRequest.Object> objects = objectList;
17941790
return getRegionAsync(bucketName, region)
17951791
.thenCompose(
17961792
location -> {
@@ -1818,8 +1814,8 @@ protected CompletableFuture<DeleteObjectsResponse> deleteObjectsAsync(
18181814
try {
18191815
String bodyContent = response.body().string();
18201816
try {
1821-
if (Xml.validate(DeleteError.class, bodyContent)) {
1822-
DeleteError error = Xml.unmarshal(DeleteError.class, bodyContent);
1817+
if (Xml.validate(DeleteResult.Error.class, bodyContent)) {
1818+
DeleteResult.Error error = Xml.unmarshal(DeleteResult.Error.class, bodyContent);
18231819
DeleteResult result = new DeleteResult(error);
18241820
return new DeleteObjectsResponse(
18251821
response.headers(), bucketName, region, result);

0 commit comments

Comments
 (0)