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

mmerli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new 0dcbac19d29 [improve][build] Fix remaining rawtypes, unchecked, and 
deprecation warnings (#25419)
0dcbac19d29 is described below

commit 0dcbac19d2951ae536e5f413803462f22465cd07
Author: Matteo Merli <[email protected]>
AuthorDate: Fri Mar 27 15:15:18 2026 -0700

    [improve][build] Fix remaining rawtypes, unchecked, and deprecation 
warnings (#25419)
---
 .../broker/authentication/AuthenticationProviderAthenz.java |  1 +
 .../broker/authentication/AuthenticationProviderSasl.java   |  1 +
 .../broker/authentication/SaslAuthenticationState.java      |  1 +
 .../pulsar/broker/authentication/SaslRoleTokenSigner.java   |  4 ++--
 .../org/apache/pulsar/client/impl/schema/SchemaUtils.java   |  9 +++++----
 .../common/policies/data/stats/ConsumerStatsImpl.java       |  1 +
 .../common/policies/data/stats/ReplicatorStatsImpl.java     |  1 +
 .../pulsar/common/topics/TopicCompactionStrategy.java       | 13 ++++++++-----
 .../java/org/apache/pulsar/common/util/FieldParser.java     |  1 +
 .../apache/pulsar/common/util/ProtectedObjectMapper.java    |  1 +
 .../org/apache/pulsar/common/util/netty/EventLoopUtil.java  |  1 +
 11 files changed, 23 insertions(+), 11 deletions(-)

diff --git 
a/pulsar-broker-auth-athenz/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderAthenz.java
 
b/pulsar-broker-auth-athenz/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderAthenz.java
index 499ebefc8a0..5a36b939c05 100644
--- 
a/pulsar-broker-auth-athenz/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderAthenz.java
+++ 
b/pulsar-broker-auth-athenz/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderAthenz.java
@@ -33,6 +33,7 @@ import 
org.apache.pulsar.broker.authentication.metrics.AuthenticationMetrics;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@SuppressWarnings("deprecation") // Implements deprecated 
AuthenticationProvider methods
 public class AuthenticationProviderAthenz implements AuthenticationProvider {
 
     private static final String DOMAIN_NAME_LIST = "athenzDomainNames";
diff --git 
a/pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderSasl.java
 
b/pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderSasl.java
index 2449dcf5e1e..6cf6269d361 100644
--- 
a/pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderSasl.java
+++ 
b/pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderSasl.java
@@ -68,6 +68,7 @@ import org.apache.pulsar.common.stats.CacheMetricsCollector;
  * provider, the authentication is multi-stage.
  */
 @Slf4j
+@SuppressWarnings("deprecation") // Implements deprecated 
AuthenticationProvider/AuthenticationState methods
 public class AuthenticationProviderSasl implements AuthenticationProvider {
 
     private Pattern allowedIdsPattern;
diff --git 
a/pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/SaslAuthenticationState.java
 
b/pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/SaslAuthenticationState.java
index 862e171043c..49c1108f2d4 100644
--- 
a/pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/SaslAuthenticationState.java
+++ 
b/pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/SaslAuthenticationState.java
@@ -30,6 +30,7 @@ import org.apache.pulsar.common.api.AuthData;
  * It tell broker whether the authentication is completed or not,
  */
 @Slf4j
+@SuppressWarnings("deprecation") // Implements deprecated AuthenticationState 
methods for SASL multi-stage auth
 public class SaslAuthenticationState implements AuthenticationState {
     private final long stateId;
     private static final AtomicLong stateIdGenerator = new AtomicLong(0L);
diff --git 
a/pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/SaslRoleTokenSigner.java
 
b/pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/SaslRoleTokenSigner.java
index 82f760e14b7..600dd033e17 100644
--- 
a/pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/SaslRoleTokenSigner.java
+++ 
b/pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/SaslRoleTokenSigner.java
@@ -20,9 +20,9 @@ package org.apache.pulsar.broker.authentication;
 
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
+import java.util.Base64;
 import javax.naming.AuthenticationException;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.codec.binary.Base64;
 
 @Slf4j
 public class SaslRoleTokenSigner {
@@ -97,7 +97,7 @@ public class SaslRoleTokenSigner {
 
             md.update(secret);
             byte[] digest = md.digest();
-            return new Base64(0).encodeToString(digest);
+            return Base64.getEncoder().encodeToString(digest);
         } catch (NoSuchAlgorithmException ex) {
             throw new RuntimeException("It should not happen, " + 
ex.getMessage(), ex);
         }
diff --git 
a/pulsar-common/src/main/java/org/apache/pulsar/client/impl/schema/SchemaUtils.java
 
b/pulsar-common/src/main/java/org/apache/pulsar/client/impl/schema/SchemaUtils.java
index dcc73d1d21f..976ba39b2f7 100644
--- 
a/pulsar-common/src/main/java/org/apache/pulsar/client/impl/schema/SchemaUtils.java
+++ 
b/pulsar-common/src/main/java/org/apache/pulsar/client/impl/schema/SchemaUtils.java
@@ -64,7 +64,7 @@ public final class SchemaUtils {
     /**
      * Keeps a map between {@link SchemaType} to a list of java classes that 
can be used to represent them.
      */
-    private static final Map<SchemaType, List<Class>> SCHEMA_TYPE_CLASSES = 
new HashMap<>();
+    private static final Map<SchemaType, List<Class<?>>> SCHEMA_TYPE_CLASSES = 
new HashMap<>();
 
     /**
      * Maps the java classes to the corresponding {@link SchemaType}.
@@ -109,8 +109,8 @@ public final class SchemaUtils {
                 SchemaType.BYTES,
                 Arrays.asList(byte[].class, ByteBuffer.class, ByteBuf.class));
         // build the reverse mapping
-        SCHEMA_TYPE_CLASSES.forEach(
-                (type, classes) -> classes.forEach(clz -> 
JAVA_CLASS_SCHEMA_TYPES.put(clz, type)));
+        SCHEMA_TYPE_CLASSES
+                .forEach((type, classes) -> classes.forEach(clz -> 
JAVA_CLASS_SCHEMA_TYPES.put(clz, type)));
     }
 
     public static void validateFieldSchema(String name,
@@ -120,7 +120,7 @@ public final class SchemaUtils {
             return;
         }
 
-        List<Class> expectedClasses = SCHEMA_TYPE_CLASSES.get(type);
+        List<Class<?>> expectedClasses = SCHEMA_TYPE_CLASSES.get(type);
 
         if (null == expectedClasses) {
             throw new RuntimeException("Invalid Java object for schema type " 
+ type
@@ -392,6 +392,7 @@ public final class SchemaUtils {
      * @param serializedProperties serialized properties
      * @return the deserialized properties
      */
+    @SuppressWarnings("unchecked") // Gson deserializer returns Map<String, 
String> via SCHEMA_PROPERTIES_DESERIALIZER
     public static Map<String, String> deserializeSchemaProperties(String 
serializedProperties) {
         GsonBuilder gsonBuilder = new GsonBuilder()
             .registerTypeHierarchyAdapter(Map.class, 
SCHEMA_PROPERTIES_DESERIALIZER);
diff --git 
a/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/stats/ConsumerStatsImpl.java
 
b/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/stats/ConsumerStatsImpl.java
index 22f8374b995..49cd1dd789b 100644
--- 
a/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/stats/ConsumerStatsImpl.java
+++ 
b/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/stats/ConsumerStatsImpl.java
@@ -30,6 +30,7 @@ import org.apache.pulsar.common.util.DateFormatter;
  * Consumer statistics.
  */
 @Data
+@SuppressWarnings("deprecation") // Implements deprecated ConsumerStats fields 
for backward compatibility
 public class ConsumerStatsImpl implements ConsumerStats {
     /** the app id. */
     public String appId;
diff --git 
a/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/stats/ReplicatorStatsImpl.java
 
b/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/stats/ReplicatorStatsImpl.java
index c19169cbee5..a08b3005eca 100644
--- 
a/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/stats/ReplicatorStatsImpl.java
+++ 
b/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/stats/ReplicatorStatsImpl.java
@@ -29,6 +29,7 @@ import org.apache.pulsar.common.policies.data.ReplicatorStats;
  * Statistics about a replicator.
  */
 @Data
+@SuppressWarnings("deprecation") // Implements deprecated ReplicatorStats rate 
fields for backward compatibility
 public class ReplicatorStatsImpl implements ReplicatorStats {
 
     /** Total rate of messages received from the remote cluster (msg/s). */
diff --git 
a/pulsar-common/src/main/java/org/apache/pulsar/common/topics/TopicCompactionStrategy.java
 
b/pulsar-common/src/main/java/org/apache/pulsar/common/topics/TopicCompactionStrategy.java
index 39bfa6d71bc..e06d0f56152 100644
--- 
a/pulsar-common/src/main/java/org/apache/pulsar/common/topics/TopicCompactionStrategy.java
+++ 
b/pulsar-common/src/main/java/org/apache/pulsar/common/topics/TopicCompactionStrategy.java
@@ -52,7 +52,7 @@ import 
org.apache.pulsar.common.classification.InterfaceStability;
 public interface TopicCompactionStrategy<T> {
 
     String TABLE_VIEW_TAG = "table-view";
-    Map<String, TopicCompactionStrategy> INSTANCES = new ConcurrentHashMap<>();
+    Map<String, TopicCompactionStrategy<?>> INSTANCES = new 
ConcurrentHashMap<>();
 
     /**
      * Returns the schema object for this strategy.
@@ -73,14 +73,16 @@ public interface TopicCompactionStrategy<T> {
     }
 
 
-    static TopicCompactionStrategy load(String tag, String 
topicCompactionStrategyClassName) {
+    @SuppressWarnings("unchecked") // Instance created via reflection; caller 
is responsible for type safety
+    static <T> TopicCompactionStrategy<T> load(String tag, String 
topicCompactionStrategyClassName) {
         if (topicCompactionStrategyClassName == null) {
             return null;
         }
 
         try {
             Class<?> clazz = Class.forName(topicCompactionStrategyClassName);
-            TopicCompactionStrategy instance = (TopicCompactionStrategy) 
clazz.getDeclaredConstructor().newInstance();
+            TopicCompactionStrategy<T> instance =
+                    (TopicCompactionStrategy<T>) 
clazz.getDeclaredConstructor().newInstance();
             INSTANCES.put(tag, instance);
             return instance;
         } catch (Exception e) {
@@ -89,7 +91,8 @@ public interface TopicCompactionStrategy<T> {
         }
     }
 
-    static TopicCompactionStrategy getInstance(String tag) {
-        return INSTANCES.get(tag);
+    @SuppressWarnings("unchecked") // Caller is responsible for type safety
+    static <T> TopicCompactionStrategy<T> getInstance(String tag) {
+        return (TopicCompactionStrategy<T>) INSTANCES.get(tag);
     }
 }
diff --git 
a/pulsar-common/src/main/java/org/apache/pulsar/common/util/FieldParser.java 
b/pulsar-common/src/main/java/org/apache/pulsar/common/util/FieldParser.java
index 10c1951ab20..55863b08cff 100644
--- a/pulsar-common/src/main/java/org/apache/pulsar/common/util/FieldParser.java
+++ b/pulsar-common/src/main/java/org/apache/pulsar/common/util/FieldParser.java
@@ -96,6 +96,7 @@ public final class FieldParser {
 
         if (to.isEnum()) {
             // Converting string to enum
+            @SuppressWarnings("deprecation") // No replacement API available 
in Jackson 2.x
             EnumResolver r = EnumResolver.constructUsingToString(
                 
ObjectMapperFactory.getMapper().getObjectMapper().getDeserializationConfig(), 
to);
             T value = (T) r.findEnum((String) from);
diff --git 
a/pulsar-common/src/main/java/org/apache/pulsar/common/util/ProtectedObjectMapper.java
 
b/pulsar-common/src/main/java/org/apache/pulsar/common/util/ProtectedObjectMapper.java
index 360dd460822..b7a097ac6e7 100644
--- 
a/pulsar-common/src/main/java/org/apache/pulsar/common/util/ProtectedObjectMapper.java
+++ 
b/pulsar-common/src/main/java/org/apache/pulsar/common/util/ProtectedObjectMapper.java
@@ -66,6 +66,7 @@ import java.util.TimeZone;
  * {@link com.fasterxml.jackson.databind.ObjectReader} instances instead of 
the {@link ObjectMapper} since
  * those classes are immutable.
  */
+@SuppressWarnings("deprecation") // Overrides deprecated ObjectMapper methods 
to block mutation
 final class ProtectedObjectMapper extends ObjectMapper {
 
     private final ObjectMapper src;
diff --git 
a/pulsar-common/src/main/java/org/apache/pulsar/common/util/netty/EventLoopUtil.java
 
b/pulsar-common/src/main/java/org/apache/pulsar/common/util/netty/EventLoopUtil.java
index 501fe53f3a3..9e5c7157923 100644
--- 
a/pulsar-common/src/main/java/org/apache/pulsar/common/util/netty/EventLoopUtil.java
+++ 
b/pulsar-common/src/main/java/org/apache/pulsar/common/util/netty/EventLoopUtil.java
@@ -194,6 +194,7 @@ public class EventLoopUtil {
         }
     }
 
+    @SuppressWarnings("deprecation") // EpollMode is deprecated in newer Netty 
but no replacement API exists yet
     public static void enableTriggeredMode(ServerBootstrap bootstrap) {
         if (Epoll.isAvailable()) {
             bootstrap.childOption(EpollChannelOption.EPOLL_MODE, 
EpollMode.LEVEL_TRIGGERED);

Reply via email to