This is an automated email from the ASF dual-hosted git repository.

szetszwo 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 7c3080eac1 HDDS-8733. Combine ContainerKeyPrefix and 
KeyPrefixContainer. (#4806)
7c3080eac1 is described below

commit 7c3080eac15c9db69991eccc3994804f12a5e363
Author: Tsz-Wo Nicholas Sze <[email protected]>
AuthorDate: Thu Jun 1 10:56:15 2023 +0800

    HDDS-8733. Combine ContainerKeyPrefix and KeyPrefixContainer. (#4806)
---
 .../ozone/recon/api/types/ContainerKeyPrefix.java  | 78 ++++---------------
 .../recon/api/types/ContainerKeyPrefixImpl.java    | 91 ++++++++++++++++++++++
 .../ozone/recon/api/types/KeyPrefixContainer.java  | 78 ++++---------------
 .../recon/spi/impl/ContainerKeyPrefixCodec.java    |  2 +-
 .../recon/spi/impl/KeyPrefixContainerCodec.java    |  2 +-
 .../impl/ReconContainerMetadataManagerImpl.java    | 22 ++----
 .../ozone/recon/tasks/ContainerKeyMapperTask.java  |  4 +-
 .../apache/hadoop/ozone/recon/TestReconCodecs.java |  2 +-
 .../TestReconContainerMetadataManagerImpl.java     | 44 +++++------
 .../recon/tasks/TestContainerKeyMapperTask.java    |  8 +-
 10 files changed, 157 insertions(+), 174 deletions(-)

diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/types/ContainerKeyPrefix.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/types/ContainerKeyPrefix.java
index 9dd9ad5f98..b4668697d9 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/types/ContainerKeyPrefix.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/types/ContainerKeyPrefix.java
@@ -18,81 +18,31 @@
 
 package org.apache.hadoop.ozone.recon.api.types;
 
-import org.apache.commons.lang3.StringUtils;
-
 /**
  * Class to encapsulate the Key information needed for the Recon container DB.
  * Currently, it is the containerId and the whole key + key version.
+ * <p>
+ * The implementations of this interface MUST be immutable.
  */
-public class ContainerKeyPrefix {
-
-  private long containerId;
-  private String keyPrefix;
-  private long keyVersion = -1;
-
-  public ContainerKeyPrefix(long containerId, String keyPrefix) {
-    this.containerId = containerId;
-    this.keyPrefix = keyPrefix;
-  }
-
-  public ContainerKeyPrefix(long containerId, String keyPrefix,
-                            long keyVersion) {
-    this.containerId = containerId;
-    this.keyPrefix = keyPrefix;
-    this.keyVersion = keyVersion;
-  }
-
-  public ContainerKeyPrefix(long containerId) {
-    this.containerId = containerId;
-  }
-
-  public long getContainerId() {
-    return containerId;
+public interface ContainerKeyPrefix {
+  static ContainerKeyPrefix get(long containerId, String keyPrefix,
+      long keyVersion) {
+    return ContainerKeyPrefixImpl.get(containerId, keyPrefix, keyVersion);
   }
 
-  public void setContainerId(long containerId) {
-    this.containerId = containerId;
+  static ContainerKeyPrefix get(long containerId, String keyPrefix) {
+    return get(containerId, keyPrefix, -1);
   }
 
-  public String getKeyPrefix() {
-    return keyPrefix;
+  static ContainerKeyPrefix get(long containerId) {
+    return get(containerId, null, -1);
   }
 
-  public void setKeyPrefix(String keyPrefix) {
-    this.keyPrefix = keyPrefix;
-  }
-
-  public long getKeyVersion() {
-    return keyVersion;
-  }
-
-  public void setKeyVersion(long keyVersion) {
-    this.keyVersion = keyVersion;
-  }
+  long getContainerId();
 
-  public KeyPrefixContainer toKeyPrefixContainer() {
-    if (StringUtils.isNotEmpty(keyPrefix)) {
-      return new KeyPrefixContainer(keyPrefix, keyVersion, containerId);
-    }
-    return null;
-  }
-
-  @Override
-  public boolean equals(Object o) {
+  String getKeyPrefix();
 
-    if (!(o instanceof ContainerKeyPrefix)) {
-      return false;
-    }
-    ContainerKeyPrefix that = (ContainerKeyPrefix) o;
-    return (this.containerId == that.containerId) &&
-        this.keyPrefix.equals(that.keyPrefix) &&
-        this.keyVersion == that.keyVersion;
-  }
-
-  @Override
-  public int hashCode() {
-    return Long.valueOf(containerId).hashCode() + 13 * keyPrefix.hashCode() +
-        17 * Long.valueOf(keyVersion).hashCode();
-  }
+  long getKeyVersion();
 
+  KeyPrefixContainer toKeyPrefixContainer();
 }
diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/types/ContainerKeyPrefixImpl.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/types/ContainerKeyPrefixImpl.java
new file mode 100644
index 0000000000..4a2b79d002
--- /dev/null
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/types/ContainerKeyPrefixImpl.java
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.ozone.recon.api.types;
+
+import java.util.Objects;
+
+/**
+ * An implementation of both {@link ContainerKeyPrefix}
+ * and {@link KeyPrefixContainer}.
+ * <p>
+ * This class is immutable.
+ */
+final class ContainerKeyPrefixImpl
+    implements ContainerKeyPrefix, KeyPrefixContainer {
+  static ContainerKeyPrefixImpl get(long containerId, String keyPrefix,
+      long keyVersion) {
+    return new ContainerKeyPrefixImpl(containerId, keyPrefix, keyVersion);
+  }
+
+  private final long containerId;
+  private final String keyPrefix;
+  private final long keyVersion;
+
+  private ContainerKeyPrefixImpl(long containerId, String keyPrefix,
+      long keyVersion) {
+    this.containerId = containerId;
+    this.keyPrefix = keyPrefix;
+    this.keyVersion = keyVersion;
+  }
+
+  @Override
+  public long getContainerId() {
+    return containerId;
+  }
+
+  @Override
+  public String getKeyPrefix() {
+    return keyPrefix;
+  }
+
+  @Override
+  public long getKeyVersion() {
+    return keyVersion;
+  }
+
+  @Override
+  public ContainerKeyPrefix toContainerKeyPrefix() {
+    return this;
+  }
+
+  @Override
+  public KeyPrefixContainer toKeyPrefixContainer() {
+    return keyPrefix == null || keyPrefix.isEmpty() ? null : this;
+  }
+
+  @Override
+  public int hashCode() {
+    return Long.valueOf(containerId).hashCode()
+        + 13 * keyPrefix.hashCode()
+        + 17 * Long.valueOf(keyVersion).hashCode();
+  }
+
+  @Override
+  public boolean equals(Object o) {
+    if (o == this) {
+      return true;
+    }
+    if (!(o instanceof ContainerKeyPrefixImpl)) {
+      return false;
+    }
+    final ContainerKeyPrefixImpl that = (ContainerKeyPrefixImpl) o;
+    return this.containerId == that.containerId
+        && Objects.equals(this.keyPrefix, that.keyPrefix)
+        && this.keyVersion == that.keyVersion;
+  }
+}
diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/types/KeyPrefixContainer.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/types/KeyPrefixContainer.java
index c77d3a835a..3da4d6d1eb 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/types/KeyPrefixContainer.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/types/KeyPrefixContainer.java
@@ -18,84 +18,32 @@
 
 package org.apache.hadoop.ozone.recon.api.types;
 
-import java.util.Objects;
-
 /**
  * Class to encapsulate the Key information needed for the Recon container DB.
  * Currently, it is the whole key + key version and the containerId.
+ * <p>
+ * The implementations of this interface MUST be immutable.
  */
-public class KeyPrefixContainer {
-
-  private String keyPrefix;
-  private long keyVersion = -1;
-  private long containerId = -1;
+public interface KeyPrefixContainer {
 
-  public KeyPrefixContainer(String keyPrefix, long keyVersion) {
-    this.keyPrefix = keyPrefix;
-    this.keyVersion = keyVersion;
-  }
-
-  public KeyPrefixContainer(String keyPrefix, long keyVersion,
+  static KeyPrefixContainer get(String keyPrefix, long keyVersion,
       long containerId) {
-    this.keyPrefix = keyPrefix;
-    this.keyVersion = keyVersion;
-    this.containerId = containerId;
+    return ContainerKeyPrefixImpl.get(containerId, keyPrefix, keyVersion);
   }
 
-  public KeyPrefixContainer(ContainerKeyPrefix containerKeyPrefix) {
-    this.keyPrefix = containerKeyPrefix.getKeyPrefix();
-    this.keyVersion = containerKeyPrefix.getKeyVersion();
-    this.containerId = containerKeyPrefix.getContainerId();
+  static KeyPrefixContainer get(String keyPrefix, long keyVersion) {
+    return get(keyPrefix, keyVersion, -1);
   }
 
-  public KeyPrefixContainer(String keyPrefix) {
-    this.keyPrefix = keyPrefix;
+  static KeyPrefixContainer get(String keyPrefix) {
+    return get(keyPrefix, -1, -1);
   }
 
-  public String getKeyPrefix() {
-    return keyPrefix;
-  }
+  long getContainerId();
 
-  public void setKeyPrefix(String keyPrefix) {
-    this.keyPrefix = keyPrefix;
-  }
-
-  public long getKeyVersion() {
-    return keyVersion;
-  }
-
-  public void setKeyVersion(long keyVersion) {
-    this.keyVersion = keyVersion;
-  }
+  String getKeyPrefix();
 
-  public long getContainerId() {
-    return containerId;
-  }
-
-  public void setContainerId(long containerId) {
-    this.containerId = containerId;
-  }
-
-  public ContainerKeyPrefix toContainerKeyPrefix() {
-    return new ContainerKeyPrefix(this.containerId,
-        this.keyPrefix, this.keyVersion);
-  }
-
-  @Override
-  public boolean equals(Object o) {
-
-    if (!(o instanceof KeyPrefixContainer)) {
-      return false;
-    }
-    KeyPrefixContainer that = (KeyPrefixContainer) o;
-    return (this.containerId == that.containerId) &&
-        this.keyPrefix.equals(that.keyPrefix) &&
-        this.keyVersion == that.keyVersion;
-  }
-
-  @Override
-  public int hashCode() {
-    return Objects.hash(containerId, keyPrefix, keyPrefix);
-  }
+  long getKeyVersion();
 
+  ContainerKeyPrefix toContainerKeyPrefix();
 }
diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/ContainerKeyPrefixCodec.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/ContainerKeyPrefixCodec.java
index 460d6b08d0..01a630a523 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/ContainerKeyPrefixCodec.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/ContainerKeyPrefixCodec.java
@@ -94,7 +94,7 @@ public final class ContainerKeyPrefixCodec
         rawData.length - Long.BYTES,
         rawData.length);
     long version = ByteBuffer.wrap(versionBytes).getLong();
-    return new ContainerKeyPrefix(containerIdFromDB, keyPrefix, version);
+    return ContainerKeyPrefix.get(containerIdFromDB, keyPrefix, version);
   }
 
   @Override
diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/KeyPrefixContainerCodec.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/KeyPrefixContainerCodec.java
index 4c54dad6f8..7baca152b2 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/KeyPrefixContainerCodec.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/KeyPrefixContainerCodec.java
@@ -94,7 +94,7 @@ public final class KeyPrefixContainerCodec
     long containerIdFromDB = ByteBuffer.wrap(ArrayUtils.subarray(rawData,
         rawData.length - Long.BYTES,
         rawData.length)).getLong();
-    return new KeyPrefixContainer(keyPrefix, version, containerIdFromDB);
+    return KeyPrefixContainer.get(keyPrefix, version, containerIdFromDB);
   }
 
   @Override
diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/ReconContainerMetadataManagerImpl.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/ReconContainerMetadataManagerImpl.java
index 6c623c7004..0902a2be13 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/ReconContainerMetadataManagerImpl.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/ReconContainerMetadataManagerImpl.java
@@ -370,9 +370,9 @@ public class ReconContainerMetadataManagerImpl
       boolean skipPrevKey = false;
       if (StringUtils.isNotBlank(prevKeyPrefix)) {
         skipPrevKey = true;
-        seekKey = new ContainerKeyPrefix(containerId, prevKeyPrefix);
+        seekKey = ContainerKeyPrefix.get(containerId, prevKeyPrefix);
       } else {
-        seekKey = new ContainerKeyPrefix(containerId);
+        seekKey = ContainerKeyPrefix.get(containerId);
       }
       KeyValue<ContainerKeyPrefix, Integer> seekKeyValue =
           containerIterator.seek(seekKey);
@@ -403,10 +403,7 @@ public class ReconContainerMetadataManagerImpl
         // prefix.
         if (containerKeyPrefix.getContainerId() == containerId) {
           if (StringUtils.isNotEmpty(containerKeyPrefix.getKeyPrefix())) {
-            prefixes.put(new ContainerKeyPrefix(containerId,
-                    containerKeyPrefix.getKeyPrefix(),
-                    containerKeyPrefix.getKeyVersion()),
-                keyValue.getValue());
+            prefixes.put(containerKeyPrefix, keyValue.getValue());
           } else {
             LOG.warn("Null key prefix returned for containerId = {} ",
                 containerId);
@@ -443,7 +440,7 @@ public class ReconContainerMetadataManagerImpl
             containerIterator = containerKeyTable.iterator()) {
       ContainerKeyPrefix seekKey;
       if (prevContainer > 0L) {
-        seekKey = new ContainerKeyPrefix(prevContainer);
+        seekKey = ContainerKeyPrefix.get(prevContainer);
         KeyValue<ContainerKeyPrefix,
             Integer> seekKeyValue = containerIterator.seek(seekKey);
         // Check if RocksDB was able to correctly seek to the given
@@ -453,7 +450,7 @@ public class ReconContainerMetadataManagerImpl
           return containers;
         } else {
           // seek to the prevContainer+1 containerID to start scan
-          seekKey = new ContainerKeyPrefix(prevContainer + 1);
+          seekKey = ContainerKeyPrefix.get(prevContainer + 1);
           containerIterator.seek(seekKey);
         }
       }
@@ -598,9 +595,9 @@ public class ReconContainerMetadataManagerImpl
              keyContainerTable.iterator()) {
       KeyPrefixContainer seekKey;
       if (keyVersion != -1) {
-        seekKey = new KeyPrefixContainer(keyPrefix, keyVersion);
+        seekKey = KeyPrefixContainer.get(keyPrefix, keyVersion);
       } else {
-        seekKey = new KeyPrefixContainer(keyPrefix);
+        seekKey = KeyPrefixContainer.get(keyPrefix);
       }
       KeyValue<KeyPrefixContainer, Integer> seekKeyValue =
           keyIterator.seek(seekKey);
@@ -626,10 +623,7 @@ public class ReconContainerMetadataManagerImpl
           if (keyPrefixContainer.getContainerId() != -1 &&
               (keyVersion == -1 ||
                   keyPrefixContainer.getKeyVersion() == keyVersion)) {
-            containers.put(new KeyPrefixContainer(keyPrefix,
-                    keyPrefixContainer.getKeyVersion(),
-                    keyPrefixContainer.getContainerId()),
-                keyValue.getValue());
+            containers.put(keyPrefixContainer, keyValue.getValue());
           } else {
             LOG.warn("Null container returned for keyPrefix = {}," +
                 " keyVersion = {} ", keyPrefix, keyVersion);
diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/ContainerKeyMapperTask.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/ContainerKeyMapperTask.java
index 83e2f3afe5..086827e9cb 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/ContainerKeyMapperTask.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/ContainerKeyMapperTask.java
@@ -270,7 +270,7 @@ public class ContainerKeyMapperTask implements ReconOmTask {
              reconContainerMetadataManager.getKeyContainerTableIterator()) {
 
       // Check if we have keys in this container in the DB
-      keyContainerIterator.seek(new KeyPrefixContainer(key));
+      keyContainerIterator.seek(KeyPrefixContainer.get(key));
       while (keyContainerIterator.hasNext()) {
         Table.KeyValue<KeyPrefixContainer, Integer> keyValue =
             keyContainerIterator.next();
@@ -340,7 +340,7 @@ public class ContainerKeyMapperTask implements ReconOmTask {
       for (OmKeyLocationInfo omKeyLocationInfo : omKeyLocationInfoGroup
           .getLocationList()) {
         long containerId = omKeyLocationInfo.getContainerID();
-        ContainerKeyPrefix containerKeyPrefix = new ContainerKeyPrefix(
+        ContainerKeyPrefix containerKeyPrefix = ContainerKeyPrefix.get(
             containerId, key, keyVersion);
         if (reconContainerMetadataManager.getCountForContainerKeyPrefix(
             containerKeyPrefix) == 0
diff --git 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/TestReconCodecs.java
 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/TestReconCodecs.java
index cdc0bdf5ec..ca8bc4f8da 100644
--- 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/TestReconCodecs.java
+++ 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/TestReconCodecs.java
@@ -34,7 +34,7 @@ public class TestReconCodecs {
 
   @Test
   public void testContainerKeyPrefixCodec() throws IOException {
-    ContainerKeyPrefix containerKeyPrefix = new ContainerKeyPrefix(
+    ContainerKeyPrefix containerKeyPrefix = ContainerKeyPrefix.get(
         System.currentTimeMillis(), "TestKeyPrefix", 0);
 
     Codec<ContainerKeyPrefix> codec = ContainerKeyPrefixCodec.get();
diff --git 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/spi/impl/TestReconContainerMetadataManagerImpl.java
 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/spi/impl/TestReconContainerMetadataManagerImpl.java
index 1c744409b9..c250ffe571 100644
--- 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/spi/impl/TestReconContainerMetadataManagerImpl.java
+++ 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/spi/impl/TestReconContainerMetadataManagerImpl.java
@@ -81,19 +81,19 @@ public class TestReconContainerMetadataManagerImpl {
       throws Exception {
 
     RDBBatchOperation rdbBatchOperation = new RDBBatchOperation();
-    ContainerKeyPrefix containerKeyPrefix1 = new
-        ContainerKeyPrefix(containerId1, keyPrefix1, 0);
+    ContainerKeyPrefix containerKeyPrefix1 = ContainerKeyPrefix.get(
+        containerId1, keyPrefix1, 0);
     reconContainerMetadataManager
         .batchStoreContainerKeyMapping(rdbBatchOperation, containerKeyPrefix1,
             1);
 
-    ContainerKeyPrefix containerKeyPrefix2 = new ContainerKeyPrefix(
+    ContainerKeyPrefix containerKeyPrefix2 = ContainerKeyPrefix.get(
         containerId1, keyPrefix2, 0);
     reconContainerMetadataManager
         .batchStoreContainerKeyMapping(rdbBatchOperation, containerKeyPrefix2,
         2);
 
-    ContainerKeyPrefix containerKeyPrefix3 = new ContainerKeyPrefix(
+    ContainerKeyPrefix containerKeyPrefix3 = ContainerKeyPrefix.get(
         containerId2, keyPrefix3, 0);
     reconContainerMetadataManager
         .batchStoreContainerKeyMapping(rdbBatchOperation, containerKeyPrefix3,
@@ -107,15 +107,15 @@ public class TestReconContainerMetadataManagerImpl {
     long containerId = System.currentTimeMillis();
     Map<ContainerKeyPrefix, Integer> prefixCounts = new HashMap<>();
 
-    ContainerKeyPrefix ckp1 = new ContainerKeyPrefix(containerId,
+    ContainerKeyPrefix ckp1 = ContainerKeyPrefix.get(containerId,
         "V1/B1/K1", 0);
     prefixCounts.put(ckp1, 1);
 
-    ContainerKeyPrefix ckp2 = new ContainerKeyPrefix(containerId,
+    ContainerKeyPrefix ckp2 = ContainerKeyPrefix.get(containerId,
         "V1/B1/K2", 0);
     prefixCounts.put(ckp2, 2);
 
-    ContainerKeyPrefix ckp3 = new ContainerKeyPrefix(containerId,
+    ContainerKeyPrefix ckp3 = ContainerKeyPrefix.get(containerId,
         "V1/B2/K3", 0);
     prefixCounts.put(ckp3, 3);
 
@@ -133,10 +133,10 @@ public class TestReconContainerMetadataManagerImpl {
     prefixCounts.clear();
     prefixCounts.put(ckp2, 12);
     prefixCounts.put(ckp3, 13);
-    ContainerKeyPrefix ckp4 = new ContainerKeyPrefix(containerId,
+    ContainerKeyPrefix ckp4 = ContainerKeyPrefix.get(containerId,
         "V1/B3/K1", 0);
     prefixCounts.put(ckp4, 14);
-    ContainerKeyPrefix ckp5 = new ContainerKeyPrefix(containerId,
+    ContainerKeyPrefix ckp5 = ContainerKeyPrefix.get(containerId,
         "V1/B3/K2", 0);
     prefixCounts.put(ckp5, 15);
 
@@ -166,7 +166,7 @@ public class TestReconContainerMetadataManagerImpl {
 
     RDBBatchOperation rdbBatchOperation = new RDBBatchOperation();
     for (Map.Entry<String, Integer> entry : prefixCounts.entrySet()) {
-      ContainerKeyPrefix containerKeyPrefix = new ContainerKeyPrefix(
+      ContainerKeyPrefix containerKeyPrefix = ContainerKeyPrefix.get(
           containerId, entry.getKey(), 0);
       reconContainerMetadataManager.batchStoreContainerKeyMapping(
           rdbBatchOperation, containerKeyPrefix,
@@ -176,15 +176,15 @@ public class TestReconContainerMetadataManagerImpl {
 
     Assert.assertEquals(1,
         reconContainerMetadataManager.getCountForContainerKeyPrefix(
-            new ContainerKeyPrefix(containerId, keyPrefix1,
+            ContainerKeyPrefix.get(containerId, keyPrefix1,
                 0)).longValue());
     Assert.assertEquals(2,
         reconContainerMetadataManager.getCountForContainerKeyPrefix(
-            new ContainerKeyPrefix(containerId, keyPrefix2,
+            ContainerKeyPrefix.get(containerId, keyPrefix2,
                 0)).longValue());
     Assert.assertEquals(3,
         reconContainerMetadataManager.getCountForContainerKeyPrefix(
-            new ContainerKeyPrefix(containerId, keyPrefix3,
+            ContainerKeyPrefix.get(containerId, keyPrefix3,
                 0)).longValue());
   }
 
@@ -256,16 +256,16 @@ public class TestReconContainerMetadataManagerImpl {
 
     RDBBatchOperation rdbBatchOperation = new RDBBatchOperation();
     reconContainerMetadataManager.batchStoreContainerKeyMapping(
-        rdbBatchOperation, new ContainerKeyPrefix(containerId, keyPrefix1), 2);
+        rdbBatchOperation, ContainerKeyPrefix.get(containerId, keyPrefix1), 2);
     reconContainerMetadataManager.commitBatchOperation(rdbBatchOperation);
 
     Integer count = reconContainerMetadataManager.
-        getCountForContainerKeyPrefix(new ContainerKeyPrefix(containerId,
+        getCountForContainerKeyPrefix(ContainerKeyPrefix.get(containerId,
             keyPrefix1));
     assertEquals(2L, count.longValue());
 
     count = reconContainerMetadataManager.
-        getCountForContainerKeyPrefix(new ContainerKeyPrefix(containerId,
+        getCountForContainerKeyPrefix(ContainerKeyPrefix.get(containerId,
             "invalid"));
     assertEquals(0L, count.longValue());
   }
@@ -276,11 +276,11 @@ public class TestReconContainerMetadataManagerImpl {
     long nextContainerId = 2L;
     populateKeysInContainers(containerId, nextContainerId);
 
-    ContainerKeyPrefix containerKeyPrefix1 = new
-        ContainerKeyPrefix(containerId, keyPrefix1, 0);
-    ContainerKeyPrefix containerKeyPrefix2 = new ContainerKeyPrefix(
+    ContainerKeyPrefix containerKeyPrefix1 = ContainerKeyPrefix.get(
+        containerId, keyPrefix1, 0);
+    ContainerKeyPrefix containerKeyPrefix2 = ContainerKeyPrefix.get(
         containerId, keyPrefix2, 0);
-    ContainerKeyPrefix containerKeyPrefix3 = new ContainerKeyPrefix(
+    ContainerKeyPrefix containerKeyPrefix3 = ContainerKeyPrefix.get(
         nextContainerId, keyPrefix3, 0);
 
 
@@ -303,7 +303,7 @@ public class TestReconContainerMetadataManagerImpl {
     long nextContainerId = 2L;
     populateKeysInContainers(containerId, nextContainerId);
 
-    ContainerKeyPrefix containerKeyPrefix2 = new ContainerKeyPrefix(
+    ContainerKeyPrefix containerKeyPrefix2 = ContainerKeyPrefix.get(
         containerId, keyPrefix2, 0);
 
     Map<ContainerKeyPrefix, Integer> keyPrefixMap =
@@ -406,7 +406,7 @@ public class TestReconContainerMetadataManagerImpl {
 
     RDBBatchOperation rdbBatchOperation = new RDBBatchOperation();
     reconContainerMetadataManager
-        .batchDeleteContainerMapping(rdbBatchOperation, new ContainerKeyPrefix(
+        .batchDeleteContainerMapping(rdbBatchOperation, ContainerKeyPrefix.get(
         containerId, keyPrefix2, 0));
     reconContainerMetadataManager.commitBatchOperation(rdbBatchOperation);
     keyPrefixMap =
diff --git 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestContainerKeyMapperTask.java
 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestContainerKeyMapperTask.java
index be2617a1f1..176b9761ff 100644
--- 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestContainerKeyMapperTask.java
+++ 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestContainerKeyMapperTask.java
@@ -140,7 +140,7 @@ public class TestContainerKeyMapperTask {
     assertEquals(1, keyPrefixesForContainer.size());
     String omKey = omMetadataManager.getOzoneKey(VOLUME_NAME, BUCKET_NAME,
         FILE_NAME);
-    ContainerKeyPrefix containerKeyPrefix = new ContainerKeyPrefix(1,
+    ContainerKeyPrefix containerKeyPrefix = ContainerKeyPrefix.get(1,
         omKey, 0);
     assertEquals(1,
         keyPrefixesForContainer.get(containerKeyPrefix).intValue());
@@ -148,7 +148,7 @@ public class TestContainerKeyMapperTask {
     keyPrefixesForContainer =
         reconContainerMetadataManager.getKeyPrefixesForContainer(2);
     assertEquals(1, keyPrefixesForContainer.size());
-    containerKeyPrefix = new ContainerKeyPrefix(2, omKey,
+    containerKeyPrefix = ContainerKeyPrefix.get(2, omKey,
         0);
     assertEquals(1,
         keyPrefixesForContainer.get(containerKeyPrefix).intValue());
@@ -214,7 +214,7 @@ public class TestContainerKeyMapperTask {
         omMetadataManager.getOzonePathKey(VOL_OBJECT_ID, BUCKET_ONE_OBJECT_ID,
             BUCKET_ONE_OBJECT_ID, FILE_NAME);
     ContainerKeyPrefix containerKeyPrefix =
-        new ContainerKeyPrefix(1L, omKey, 0L);
+        ContainerKeyPrefix.get(1L, omKey, 0L);
     assertEquals(1L, keyPrefixesForContainer.size());
     assertEquals(1L,
         keyPrefixesForContainer.get(containerKeyPrefix).intValue());
@@ -222,7 +222,7 @@ public class TestContainerKeyMapperTask {
     // Check the key prefixes for container 2
     keyPrefixesForContainer =
         reconContainerMetadataManager.getKeyPrefixesForContainer(2L);
-    containerKeyPrefix = new ContainerKeyPrefix(2L, omKey, 0L);
+    containerKeyPrefix = ContainerKeyPrefix.get(2L, omKey, 0L);
     assertEquals(1L, keyPrefixesForContainer.size());
     assertEquals(1L,
         keyPrefixesForContainer.get(containerKeyPrefix).intValue());


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to