From 493271665706e2073504e724e2b37cdd7bfda79f Mon Sep 17 00:00:00 2001 From: Tsz-Wo Nicholas Sze Date: Thu, 25 Apr 2024 11:31:58 -0700 Subject: [PATCH] HDDS-10752. OmBucketInfo/OmMultipartKeyInfo/OmPrefixInfo should implement CopyObject. --- .../org/apache/hadoop/ozone/om/helpers/OmBucketInfo.java | 9 ++++----- .../hadoop/ozone/om/helpers/OmMultipartKeyInfo.java | 4 +++- .../hadoop/ozone/om/helpers/TestOmMultipartKeyInfo.java | 2 +- .../org/apache/hadoop/ozone/om/helpers/OmPrefixInfo.java | 7 +++---- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmBucketInfo.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmBucketInfo.java index 8dfb2f88f98..e58b8e0fe25 100644 --- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmBucketInfo.java +++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmBucketInfo.java @@ -29,6 +29,7 @@ import org.apache.hadoop.hdds.client.DefaultReplicationConfig; import org.apache.hadoop.hdds.protocol.StorageType; import org.apache.hadoop.hdds.utils.db.Codec; +import org.apache.hadoop.hdds.utils.db.CopyObject; import org.apache.hadoop.hdds.utils.db.DelegatedCodec; import org.apache.hadoop.hdds.utils.db.Proto2Codec; import org.apache.hadoop.ozone.OzoneAcl; @@ -42,7 +43,7 @@ /** * A class that encapsulates Bucket Info. */ -public final class OmBucketInfo extends WithObjectID implements Auditable { +public final class OmBucketInfo extends WithObjectID implements Auditable, CopyObject { private static final Codec CODEC = new DelegatedCodec<>( Proto2Codec.get(BucketInfo.getDefaultInstance()), OmBucketInfo::getFromProtobuf, @@ -104,7 +105,7 @@ public static Codec getCodec() { /** * Bucket Layout. */ - private BucketLayout bucketLayout; + private final BucketLayout bucketLayout; private String owner; @@ -340,9 +341,7 @@ public Map toAuditMap() { return auditMap; } - /** - * Return a new copy of the object. - */ + @Override public OmBucketInfo copyObject() { Builder builder = toBuilder(); diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmMultipartKeyInfo.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmMultipartKeyInfo.java index d5bf7fa596f..61402ee28e6 100644 --- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmMultipartKeyInfo.java +++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmMultipartKeyInfo.java @@ -19,6 +19,7 @@ import org.apache.hadoop.hdds.client.ECReplicationConfig; import org.apache.hadoop.hdds.client.ReplicationConfig; import org.apache.hadoop.hdds.utils.db.Codec; +import org.apache.hadoop.hdds.utils.db.CopyObject; import org.apache.hadoop.hdds.utils.db.DelegatedCodec; import org.apache.hadoop.hdds.utils.db.Proto2Codec; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.MultipartKeyInfo; @@ -37,7 +38,7 @@ * This class represents multipart upload information for a key, which holds * upload part information of the key. */ -public final class OmMultipartKeyInfo extends WithObjectID { +public final class OmMultipartKeyInfo extends WithObjectID implements CopyObject { private static final Codec CODEC = new DelegatedCodec<>( Proto2Codec.get(MultipartKeyInfo.getDefaultInstance()), OmMultipartKeyInfo::getFromProto, @@ -355,6 +356,7 @@ public int hashCode() { return uploadID.hashCode(); } + @Override public OmMultipartKeyInfo copyObject() { return new OmMultipartKeyInfo(this); } diff --git a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmMultipartKeyInfo.java b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmMultipartKeyInfo.java index 216f7316b6c..306d6149038 100644 --- a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmMultipartKeyInfo.java +++ b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmMultipartKeyInfo.java @@ -42,7 +42,7 @@ public class TestOmMultipartKeyInfo { @Test - public void copyObject() { + public void testCopyObject() { for (ReplicationConfig param : replicationConfigs().collect(toList())) { testCopyObject(param); } diff --git a/hadoop-ozone/interface-storage/src/main/java/org/apache/hadoop/ozone/om/helpers/OmPrefixInfo.java b/hadoop-ozone/interface-storage/src/main/java/org/apache/hadoop/ozone/om/helpers/OmPrefixInfo.java index 604d550f7b8..11e98e3ad54 100644 --- a/hadoop-ozone/interface-storage/src/main/java/org/apache/hadoop/ozone/om/helpers/OmPrefixInfo.java +++ b/hadoop-ozone/interface-storage/src/main/java/org/apache/hadoop/ozone/om/helpers/OmPrefixInfo.java @@ -20,6 +20,7 @@ import com.google.common.base.Preconditions; import org.apache.hadoop.hdds.utils.db.Codec; +import org.apache.hadoop.hdds.utils.db.CopyObject; import org.apache.hadoop.hdds.utils.db.DelegatedCodec; import org.apache.hadoop.hdds.utils.db.Proto2Codec; import org.apache.hadoop.ozone.OzoneAcl; @@ -36,7 +37,7 @@ * can be extended for other OzFS optimizations in future. */ // TODO: support Auditable interface -public final class OmPrefixInfo extends WithObjectID { +public final class OmPrefixInfo extends WithObjectID implements CopyObject { private static final Codec CODEC = new DelegatedCodec<>( Proto2Codec.get(PersistedPrefixInfo.getDefaultInstance()), OmPrefixInfo::getFromProtobuf, @@ -230,9 +231,7 @@ public String toString() { '}'; } - /** - * Return a new copy of the object. - */ + @Override public OmPrefixInfo copyObject() { return toBuilder().build(); }