From e8370245b455911c5aa0941e425a21c03ccd8704 Mon Sep 17 00:00:00 2001 From: oliviarla Date: Thu, 19 Feb 2026 17:51:48 +0900 Subject: [PATCH] FEATURE: Add isForceSerializeForCollection method to Transcoder --- .../spy/memcached/transcoders/SerializingTranscoder.java | 5 +++++ .../java/net/spy/memcached/transcoders/Transcoder.java | 7 +++++++ .../memcached/transcoders/SerializingTranscoderTest.java | 5 +++++ .../collection/transcoder/CollectionTranscoderTest.java | 5 +++++ 4 files changed, 22 insertions(+) diff --git a/src/main/java/net/spy/memcached/transcoders/SerializingTranscoder.java b/src/main/java/net/spy/memcached/transcoders/SerializingTranscoder.java index f90fa16ab..e3427e010 100644 --- a/src/main/java/net/spy/memcached/transcoders/SerializingTranscoder.java +++ b/src/main/java/net/spy/memcached/transcoders/SerializingTranscoder.java @@ -138,6 +138,11 @@ public Object decode(CachedData d) { return rv; } + @Override + public boolean isForceSerializeForCollection() { + return forceJDKSerializeForCollection; + } + public CachedData encode(Object o) { byte[] b; int flags = 0; diff --git a/src/main/java/net/spy/memcached/transcoders/Transcoder.java b/src/main/java/net/spy/memcached/transcoders/Transcoder.java index 2c26a416b..bf277bf49 100644 --- a/src/main/java/net/spy/memcached/transcoders/Transcoder.java +++ b/src/main/java/net/spy/memcached/transcoders/Transcoder.java @@ -30,4 +30,11 @@ public interface Transcoder { * Get the maximum size of objects handled by this transcoder. */ int getMaxSize(); + + /** + * Get if this transcoder forces serialization every type. + */ + default boolean isForceSerializeForCollection() { + return false; + } } diff --git a/src/test/java/net/spy/memcached/transcoders/SerializingTranscoderTest.java b/src/test/java/net/spy/memcached/transcoders/SerializingTranscoderTest.java index 544bbeabd..a8df2a23f 100644 --- a/src/test/java/net/spy/memcached/transcoders/SerializingTranscoderTest.java +++ b/src/test/java/net/spy/memcached/transcoders/SerializingTranscoderTest.java @@ -31,6 +31,11 @@ protected void setUp() throws Exception { tu = new TranscoderUtils(true); } + @Test + void forceJDKSerializationReturnFalse() { + assertFalse(tc.isForceSerializeForCollection()); + } + @Test void testNonserializable() throws Exception { try { diff --git a/src/test/manual/net/spy/memcached/collection/transcoder/CollectionTranscoderTest.java b/src/test/manual/net/spy/memcached/collection/transcoder/CollectionTranscoderTest.java index 2c4ed4ee9..8e0f3cb88 100644 --- a/src/test/manual/net/spy/memcached/collection/transcoder/CollectionTranscoderTest.java +++ b/src/test/manual/net/spy/memcached/collection/transcoder/CollectionTranscoderTest.java @@ -29,6 +29,11 @@ protected void tearDown() throws Exception { super.tearDown(); } + @Test + void forceJDKSerializationReturnTrue() { + assertTrue(transcoder.isForceSerializeForCollection()); + } + @Test void decodeIntegerAsString() throws ExecutionException, InterruptedException { // given