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 85f7d619b5b HDDS-14655. Add a generic type to ScmCodec (#9789)
85f7d619b5b is described below
commit 85f7d619b5bb5f68668ba0a4cfd95d3f9d0a200e
Author: Russole <[email protected]>
AuthorDate: Thu Feb 19 18:52:31 2026 +0800
HDDS-14655. Add a generic type to ScmCodec (#9789)
---
.../apache/hadoop/hdds/scm/ha/io/ScmBigIntegerCodec.java | 8 ++++----
.../org/apache/hadoop/hdds/scm/ha/io/ScmBooleanCodec.java | 6 +++---
.../apache/hadoop/hdds/scm/ha/io/ScmByteStringCodec.java | 11 ++++-------
.../java/org/apache/hadoop/hdds/scm/ha/io/ScmCodec.java | 11 ++++++-----
.../org/apache/hadoop/hdds/scm/ha/io/ScmEnumCodec.java | 2 +-
.../hadoop/hdds/scm/ha/io/ScmGeneratedMessageCodec.java | 2 +-
.../org/apache/hadoop/hdds/scm/ha/io/ScmIntegerCodec.java | 11 ++++-------
.../org/apache/hadoop/hdds/scm/ha/io/ScmListCodec.java | 2 +-
.../org/apache/hadoop/hdds/scm/ha/io/ScmLongCodec.java | 11 ++++-------
.../hadoop/hdds/scm/ha/io/ScmManagedSecretKeyCodec.java | 8 ++++----
.../hdds/scm/ha/io/ScmNonShadedByteStringCodec.java | 15 +++++----------
.../hdds/scm/ha/io/ScmNonShadedGeneratedMessageCodec.java | 2 +-
.../org/apache/hadoop/hdds/scm/ha/io/ScmStringCodec.java | 8 ++++----
.../hadoop/hdds/scm/ha/io/ScmX509CertificateCodec.java | 8 ++++----
.../hadoop/hdds/scm/ha/io/TestScmBigIntegerCodec.java | 3 +--
.../hdds/scm/ha/io/TestScmX509CertificateCodec.java | 3 +--
16 files changed, 48 insertions(+), 63 deletions(-)
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmBigIntegerCodec.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmBigIntegerCodec.java
index 541c1484237..40641663afe 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmBigIntegerCodec.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmBigIntegerCodec.java
@@ -24,16 +24,16 @@
/**
* Codec for type BigInteger.
*/
-public class ScmBigIntegerCodec implements ScmCodec {
+public class ScmBigIntegerCodec implements ScmCodec<BigInteger> {
@Override
- public ByteString serialize(Object object) {
+ public ByteString serialize(BigInteger object) {
// BigInteger returns a new byte[].
- return UnsafeByteOperations.unsafeWrap(((BigInteger)
object).toByteArray());
+ return UnsafeByteOperations.unsafeWrap(object.toByteArray());
}
@Override
- public Object deserialize(Class< ? > type, ByteString value) {
+ public BigInteger deserialize(Class< ? > type, ByteString value) {
return new BigInteger(value.toByteArray());
}
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmBooleanCodec.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmBooleanCodec.java
index c2af3099326..5ee64695151 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmBooleanCodec.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmBooleanCodec.java
@@ -22,13 +22,13 @@
/**
* {@link ScmCodec} for {@code Boolean} objects.
*/
-public class ScmBooleanCodec implements ScmCodec {
+public class ScmBooleanCodec implements ScmCodec<Boolean> {
static final ByteString TRUE =
ByteString.copyFromUtf8(Boolean.TRUE.toString());
static final ByteString FALSE =
ByteString.copyFromUtf8(Boolean.FALSE.toString());
@Override
- public ByteString serialize(Object object) {
- return ((Boolean) object) ? TRUE : FALSE;
+ public ByteString serialize(Boolean object) {
+ return object ? TRUE : FALSE;
}
@Override
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmByteStringCodec.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmByteStringCodec.java
index 5cff693df08..253acb01210 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmByteStringCodec.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmByteStringCodec.java
@@ -18,22 +18,19 @@
package org.apache.hadoop.hdds.scm.ha.io;
import org.apache.ratis.thirdparty.com.google.protobuf.ByteString;
-import
org.apache.ratis.thirdparty.com.google.protobuf.InvalidProtocolBufferException;
/**
* A dummy codec that serializes a ByteString object to ByteString.
*/
-public class ScmByteStringCodec implements ScmCodec {
+public class ScmByteStringCodec implements ScmCodec<ByteString> {
@Override
- public ByteString serialize(Object object)
- throws InvalidProtocolBufferException {
- return (ByteString) object;
+ public ByteString serialize(ByteString object) {
+ return object;
}
@Override
- public Object deserialize(Class<?> type, ByteString value)
- throws InvalidProtocolBufferException {
+ public ByteString deserialize(Class<?> type, ByteString value) {
return value;
}
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmCodec.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmCodec.java
index 56852d8435f..a60b23df200 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmCodec.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmCodec.java
@@ -21,13 +21,14 @@
import
org.apache.ratis.thirdparty.com.google.protobuf.InvalidProtocolBufferException;
/**
- * Codec interface to marshall/unmarshall data to/from {@link ByteString}.
+ * To serialize/deserialize Java objects to/from protobuf ByteString for SCM
HA.
+ *
+ * @param <T>
*/
-public interface ScmCodec {
+public interface ScmCodec<T> {
- ByteString serialize(Object object) throws InvalidProtocolBufferException;
+ ByteString serialize(T object) throws InvalidProtocolBufferException;
- Object deserialize(Class<?> type, ByteString value)
- throws InvalidProtocolBufferException;
+ T deserialize(Class<?> type, ByteString value) throws
InvalidProtocolBufferException;
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmEnumCodec.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmEnumCodec.java
index c4af505af7b..9f33060f762 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmEnumCodec.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmEnumCodec.java
@@ -28,7 +28,7 @@
/**
* {@link ScmCodec} for {@link ProtocolMessageEnum} objects.
*/
-public class ScmEnumCodec implements ScmCodec {
+public class ScmEnumCodec implements ScmCodec<Object> {
@Override
public ByteString serialize(Object object)
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmGeneratedMessageCodec.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmGeneratedMessageCodec.java
index f3a26838bbe..44e5efeeef3 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmGeneratedMessageCodec.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmGeneratedMessageCodec.java
@@ -26,7 +26,7 @@
/**
* {@link ScmCodec} for {@link Message} objects.
*/
-public class ScmGeneratedMessageCodec implements ScmCodec {
+public class ScmGeneratedMessageCodec implements ScmCodec<Object> {
@Override
public ByteString serialize(Object object) throws
InvalidProtocolBufferException {
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmIntegerCodec.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmIntegerCodec.java
index 53c3ca0496b..117606c7260 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmIntegerCodec.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmIntegerCodec.java
@@ -19,23 +19,20 @@
import com.google.common.primitives.Ints;
import org.apache.ratis.thirdparty.com.google.protobuf.ByteString;
-import
org.apache.ratis.thirdparty.com.google.protobuf.InvalidProtocolBufferException;
import org.apache.ratis.thirdparty.com.google.protobuf.UnsafeByteOperations;
/**
* Encodes/decodes an integer to a byte string.
*/
-public class ScmIntegerCodec implements ScmCodec {
+public class ScmIntegerCodec implements ScmCodec<Integer> {
@Override
- public ByteString serialize(Object object)
- throws InvalidProtocolBufferException {
+ public ByteString serialize(Integer object) {
// toByteArray returns a new array
- return UnsafeByteOperations.unsafeWrap(Ints.toByteArray((Integer) object));
+ return UnsafeByteOperations.unsafeWrap(Ints.toByteArray(object));
}
@Override
- public Object deserialize(Class<?> type, ByteString value)
- throws InvalidProtocolBufferException {
+ public Integer deserialize(Class<?> type, ByteString value) {
return Ints.fromByteArray(value.toByteArray());
}
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmListCodec.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmListCodec.java
index d76bc3aff94..392d0ce5dc4 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmListCodec.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmListCodec.java
@@ -28,7 +28,7 @@
/**
* {@link ScmCodec} for {@link List} objects.
*/
-public class ScmListCodec implements ScmCodec {
+public class ScmListCodec implements ScmCodec<Object> {
@Override
public ByteString serialize(Object object)
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmLongCodec.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmLongCodec.java
index 31998be93cd..6d24b2827a8 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmLongCodec.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmLongCodec.java
@@ -19,24 +19,21 @@
import com.google.common.primitives.Longs;
import org.apache.ratis.thirdparty.com.google.protobuf.ByteString;
-import
org.apache.ratis.thirdparty.com.google.protobuf.InvalidProtocolBufferException;
import org.apache.ratis.thirdparty.com.google.protobuf.UnsafeByteOperations;
/**
* {@link ScmCodec} for {@code Long} objects.
*/
-public class ScmLongCodec implements ScmCodec {
+public class ScmLongCodec implements ScmCodec<Long> {
@Override
- public ByteString serialize(Object object)
- throws InvalidProtocolBufferException {
+ public ByteString serialize(Long object) {
// toByteArray returns a new array
- return UnsafeByteOperations.unsafeWrap(Longs.toByteArray((Long) object));
+ return UnsafeByteOperations.unsafeWrap(Longs.toByteArray(object));
}
@Override
- public Object deserialize(Class<?> type, ByteString value)
- throws InvalidProtocolBufferException {
+ public Long deserialize(Class<?> type, ByteString value) {
return Longs.fromByteArray(value.toByteArray());
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmManagedSecretKeyCodec.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmManagedSecretKeyCodec.java
index 0752eae488d..da198f700f8 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmManagedSecretKeyCodec.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmManagedSecretKeyCodec.java
@@ -26,17 +26,17 @@
/**
* A codec for {@link ManagedSecretKey} objects.
*/
-public class ScmManagedSecretKeyCodec implements ScmCodec {
+public class ScmManagedSecretKeyCodec implements ScmCodec<ManagedSecretKey> {
@Override
- public ByteString serialize(Object object)
+ public ByteString serialize(ManagedSecretKey object)
throws InvalidProtocolBufferException {
- ManagedSecretKey secretKey = (ManagedSecretKey) object;
+ ManagedSecretKey secretKey = object;
return UnsafeByteOperations.unsafeWrap(
secretKey.toProtobuf().toByteString().asReadOnlyByteBuffer());
}
@Override
- public Object deserialize(Class<?> type, ByteString value)
+ public ManagedSecretKey deserialize(Class<?> type, ByteString value)
throws InvalidProtocolBufferException {
try {
SCMSecretKeyProtocolProtos.ManagedSecretKey message =
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmNonShadedByteStringCodec.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmNonShadedByteStringCodec.java
index c36abe6b8e6..94a41deca5b 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmNonShadedByteStringCodec.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmNonShadedByteStringCodec.java
@@ -18,26 +18,21 @@
package org.apache.hadoop.hdds.scm.ha.io;
import org.apache.ratis.thirdparty.com.google.protobuf.ByteString;
-import
org.apache.ratis.thirdparty.com.google.protobuf.InvalidProtocolBufferException;
import org.apache.ratis.thirdparty.com.google.protobuf.UnsafeByteOperations;
/**
* {@link ScmCodec} implementation for non-shaded
* {@link com.google.protobuf.ByteString} objects.
*/
-public class ScmNonShadedByteStringCodec implements ScmCodec {
+public class ScmNonShadedByteStringCodec implements
ScmCodec<com.google.protobuf.ByteString> {
@Override
- public ByteString serialize(Object object)
- throws InvalidProtocolBufferException {
- return UnsafeByteOperations.unsafeWrap(
- ((com.google.protobuf.ByteString) object).asReadOnlyByteBuffer());
+ public ByteString serialize(com.google.protobuf.ByteString object) {
+ return UnsafeByteOperations.unsafeWrap(object.asReadOnlyByteBuffer());
}
@Override
- public Object deserialize(Class<?> type, ByteString value)
- throws InvalidProtocolBufferException {
- return com.google.protobuf.UnsafeByteOperations.
- unsafeWrap(value.asReadOnlyByteBuffer());
+ public com.google.protobuf.ByteString deserialize(Class<?> type, ByteString
value) {
+ return
com.google.protobuf.UnsafeByteOperations.unsafeWrap(value.asReadOnlyByteBuffer());
}
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmNonShadedGeneratedMessageCodec.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmNonShadedGeneratedMessageCodec.java
index 1df1cc8d7c7..773d447e234 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmNonShadedGeneratedMessageCodec.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmNonShadedGeneratedMessageCodec.java
@@ -28,7 +28,7 @@
* {@link ScmCodec} implementation for non-shaded
* {@link com.google.protobuf.Message} objects.
*/
-public class ScmNonShadedGeneratedMessageCodec implements ScmCodec {
+public class ScmNonShadedGeneratedMessageCodec implements ScmCodec<Object> {
@Override
public ByteString serialize(Object object)
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmStringCodec.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmStringCodec.java
index 34e41edf5ca..fc34811542d 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmStringCodec.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmStringCodec.java
@@ -25,15 +25,15 @@
/**
* {@link ScmCodec} for {@code String} objects.
*/
-public class ScmStringCodec implements ScmCodec {
+public class ScmStringCodec implements ScmCodec<String> {
@Override
- public ByteString serialize(Object object) {
+ public ByteString serialize(String object) {
// getBytes returns a new array
- return UnsafeByteOperations.unsafeWrap(((String) object).getBytes(UTF_8));
+ return UnsafeByteOperations.unsafeWrap(object.getBytes(UTF_8));
}
@Override
- public Object deserialize(Class<?> type, ByteString value) {
+ public String deserialize(Class<?> type, ByteString value) {
return new String(value.toByteArray(), UTF_8);
}
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmX509CertificateCodec.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmX509CertificateCodec.java
index fd7772c6c64..249b9a698a2 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmX509CertificateCodec.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmX509CertificateCodec.java
@@ -28,13 +28,13 @@
/**
* Codec for type X509Certificate.
*/
-public class ScmX509CertificateCodec implements ScmCodec {
+public class ScmX509CertificateCodec implements ScmCodec<X509Certificate> {
@Override
- public ByteString serialize(Object object)
+ public ByteString serialize(X509Certificate object)
throws InvalidProtocolBufferException {
try {
String certString =
- CertificateCodec.getPEMEncodedString((X509Certificate) object);
+ CertificateCodec.getPEMEncodedString(object);
// getBytes returns a new array
return UnsafeByteOperations.unsafeWrap(certString.getBytes(UTF_8));
} catch (Exception ex) {
@@ -44,7 +44,7 @@ public ByteString serialize(Object object)
}
@Override
- public Object deserialize(Class< ? > type, ByteString value)
+ public X509Certificate deserialize(Class< ? > type, ByteString value)
throws InvalidProtocolBufferException {
try {
String pemEncodedCert = new String(value.toByteArray(), UTF_8);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/ha/io/TestScmBigIntegerCodec.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/ha/io/TestScmBigIntegerCodec.java
index 9e9691d19b1..94ec024ee7d 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/ha/io/TestScmBigIntegerCodec.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/ha/io/TestScmBigIntegerCodec.java
@@ -35,8 +35,7 @@ public void testCodec() {
BigInteger bigInteger = BigInteger.valueOf(100);
ByteString byteString = scmBigIntegerCodec.serialize(bigInteger);
- BigInteger actual =
- (BigInteger) scmBigIntegerCodec.deserialize(BigInteger.class,
byteString);
+ BigInteger actual = scmBigIntegerCodec.deserialize(BigInteger.class,
byteString);
assertEquals(bigInteger, actual);
}
}
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/ha/io/TestScmX509CertificateCodec.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/ha/io/TestScmX509CertificateCodec.java
index 3f57b06a8f4..435f0bff470 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/ha/io/TestScmX509CertificateCodec.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/ha/io/TestScmX509CertificateCodec.java
@@ -52,8 +52,7 @@ public void codec() throws Exception {
ScmX509CertificateCodec scmX509CertificateCodec = new
ScmX509CertificateCodec();
ByteString byteString = scmX509CertificateCodec.serialize(x509Certificate);
- X509Certificate actual = (X509Certificate)
- scmX509CertificateCodec.deserialize(X509Certificate.class, byteString);
+ X509Certificate actual =
scmX509CertificateCodec.deserialize(X509Certificate.class, byteString);
assertEquals(x509Certificate, actual);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]