This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new d5b926745c3 HDDS-14147. Use AclListBuilder in OmDirectoryInfo and
OmKeyArgs (#9494)
d5b926745c3 is described below
commit d5b926745c377bb3b20acb96e85281c5c1d64bfc
Author: Russole <[email protected]>
AuthorDate: Sun Dec 14 14:23:59 2025 +0800
HDDS-14147. Use AclListBuilder in OmDirectoryInfo and OmKeyArgs (#9494)
---
.../hadoop/ozone/om/helpers/OmDirectoryInfo.java | 48 ++++++++--------
.../apache/hadoop/ozone/om/helpers/OmKeyArgs.java | 65 ++++++++++++----------
2 files changed, 61 insertions(+), 52 deletions(-)
diff --git
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmDirectoryInfo.java
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmDirectoryInfo.java
index e584417f222..56670fac3b1 100644
---
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmDirectoryInfo.java
+++
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmDirectoryInfo.java
@@ -17,7 +17,7 @@
package org.apache.hadoop.ozone.om.helpers;
-import java.util.LinkedList;
+import com.google.common.collect.ImmutableList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -48,13 +48,13 @@ public class OmDirectoryInfo extends WithParentObjectId
private final long creationTime;
private final long modificationTime;
- private final List<OzoneAcl> acls;
+ private final ImmutableList<OzoneAcl> acls;
public OmDirectoryInfo(Builder builder) {
super(builder);
this.name = builder.name;
this.owner = builder.owner;
- this.acls = builder.acls;
+ this.acls = builder.acls.build();
this.creationTime = builder.creationTime;
this.modificationTime = builder.modificationTime;
}
@@ -72,6 +72,10 @@ public static OmDirectoryInfo.Builder newBuilder() {
return new OmDirectoryInfo.Builder();
}
+ public Builder toBuilder() {
+ return new Builder(this);
+ }
+
/**
* Builder for Directory Info.
*/
@@ -82,11 +86,23 @@ public static class Builder extends
WithParentObjectId.Builder<OmDirectoryInfo>
private long creationTime;
private long modificationTime;
- private final List<OzoneAcl> acls;
+ private final AclListBuilder acls;
public Builder() {
- //Default values
- this.acls = new LinkedList<>();
+ this(AclListBuilder.empty());
+ }
+
+ private Builder(AclListBuilder acls) {
+ this.acls = acls;
+ }
+
+ public Builder(OmDirectoryInfo obj) {
+ super(obj);
+ this.name = obj.name;
+ this.owner = obj.owner;
+ this.creationTime = obj.creationTime;
+ this.modificationTime = obj.modificationTime;
+ this.acls = AclListBuilder.of(obj.acls);
}
@Override
@@ -128,9 +144,7 @@ public Builder setModificationTime(long
newModificationTime) {
}
public Builder setAcls(List<OzoneAcl> listOfAcls) {
- if (listOfAcls != null) {
- this.acls.addAll(listOfAcls);
- }
+ this.acls.addAll(listOfAcls);
return this;
}
@@ -272,20 +286,6 @@ public int hashCode() {
*/
@Override
public OmDirectoryInfo copyObject() {
- OmDirectoryInfo.Builder builder = new Builder()
- .setName(name)
- .setOwner(owner)
- .setCreationTime(creationTime)
- .setModificationTime(modificationTime)
- .setAcls(acls)
- .setParentObjectID(getParentObjectID())
- .setObjectID(getObjectID())
- .setUpdateID(getUpdateID());
-
- if (getMetadata() != null) {
- builder.addAllMetadata(getMetadata());
- }
-
- return builder.build();
+ return toBuilder().build();
}
}
diff --git
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyArgs.java
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyArgs.java
index e1c55fd78cf..395425b069e 100644
---
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyArgs.java
+++
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyArgs.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.ozone.om.helpers;
import com.google.common.annotations.VisibleForTesting;
+import com.google.common.collect.ImmutableList;
import jakarta.annotation.Nonnull;
import java.util.ArrayList;
import java.util.HashMap;
@@ -48,7 +49,7 @@ public final class OmKeyArgs implements Auditable {
private final int multipartUploadPartNumber;
private final Map<String, String> metadata;
private final boolean sortDatanodesInPipeline;
- private final List<OzoneAcl> acls;
+ private final ImmutableList<OzoneAcl> acls;
private final boolean latestVersionLocation;
private final boolean recursive;
private final boolean headOp;
@@ -73,7 +74,7 @@ private OmKeyArgs(Builder b) {
this.multipartUploadID = b.multipartUploadID;
this.multipartUploadPartNumber = b.multipartUploadPartNumber;
this.metadata = b.metadata;
- this.acls = b.acls;
+ this.acls = b.acls.build();
this.sortDatanodesInPipeline = b.sortDatanodesInPipeline;
this.latestVersionLocation = b.latestVersionLocation;
this.recursive = b.recursive;
@@ -191,30 +192,7 @@ public void addLocationInfo(OmKeyLocationInfo
locationInfo) {
}
public OmKeyArgs.Builder toBuilder() {
- OmKeyArgs.Builder builder = new OmKeyArgs.Builder()
- .setVolumeName(volumeName)
- .setBucketName(bucketName)
- .setKeyName(keyName)
- .setOwnerName(ownerName)
- .setDataSize(dataSize)
- .setReplicationConfig(replicationConfig)
- .setLocationInfoList(locationInfoList)
- .setIsMultipartKey(isMultipartKey)
- .setMultipartUploadID(multipartUploadID)
- .setMultipartUploadPartNumber(multipartUploadPartNumber)
- .addAllMetadata(metadata)
- .setSortDatanodesInPipeline(sortDatanodesInPipeline)
- .setHeadOp(headOp)
- .setLatestVersionLocation(latestVersionLocation)
- .setAcls(acls)
- .setForceUpdateContainerCacheFromSCM(forceUpdateContainerCacheFromSCM)
- .addAllTags(tags);
-
- if (expectedDataGeneration != null) {
- builder.setExpectedDataGeneration(expectedDataGeneration);
- }
-
- return builder;
+ return new Builder(this);
}
@Nonnull
@@ -256,13 +234,44 @@ public static class Builder {
private final Map<String, String> metadata = new HashMap<>();
private boolean sortDatanodesInPipeline;
private boolean latestVersionLocation;
- private List<OzoneAcl> acls;
+ private final AclListBuilder acls;
private boolean recursive;
private boolean headOp;
private boolean forceUpdateContainerCacheFromSCM;
private final Map<String, String> tags = new HashMap<>();
private Long expectedDataGeneration = null;
+ public Builder() {
+ this(AclListBuilder.empty());
+ }
+
+ private Builder(AclListBuilder acls) {
+ this.acls = acls;
+ }
+
+ public Builder(OmKeyArgs obj) {
+ this.volumeName = obj.volumeName;
+ this.bucketName = obj.bucketName;
+ this.keyName = obj.keyName;
+ this.ownerName = obj.ownerName;
+ this.dataSize = obj.dataSize;
+ this.replicationConfig = obj.replicationConfig;
+ this.locationInfoList = obj.locationInfoList;
+ this.isMultipartKey = obj.isMultipartKey;
+ this.multipartUploadID = obj.multipartUploadID;
+ this.multipartUploadPartNumber = obj.multipartUploadPartNumber;
+ this.sortDatanodesInPipeline = obj.sortDatanodesInPipeline;
+ this.latestVersionLocation = obj.latestVersionLocation;
+ this.recursive = obj.recursive;
+ this.headOp = obj.headOp;
+ this.forceUpdateContainerCacheFromSCM =
+ obj.forceUpdateContainerCacheFromSCM;
+ this.expectedDataGeneration = obj.expectedDataGeneration;
+ this.metadata.putAll(obj.metadata);
+ this.tags.putAll(obj.tags);
+ this.acls = AclListBuilder.of(obj.acls);
+ }
+
public Builder setVolumeName(String volume) {
this.volumeName = volume;
return this;
@@ -299,7 +308,7 @@ public Builder setLocationInfoList(List<OmKeyLocationInfo>
locationInfos) {
}
public Builder setAcls(List<OzoneAcl> listOfAcls) {
- this.acls = listOfAcls;
+ this.acls.addAll(listOfAcls);
return this;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]