This is an automated email from the ASF dual-hosted git repository.
ctubbsii pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/main by this push:
new 7fada715a6 Remove redundant interfaces for thrift services (#5260)
7fada715a6 is described below
commit 7fada715a6eea5c0fe75744fe0e70d1b96dce858
Author: Christopher Tubbs <[email protected]>
AuthorDate: Wed Jan 15 10:52:58 2025 -0500
Remove redundant interfaces for thrift services (#5260)
Update Proxy/reflection code to gather all the thrift interfaces from
the proxied instances, so you don't need to declare them all explicitly
on each subclass.
---
.../java/org/apache/accumulo/core/trace/TraceUtil.java | 15 ++++++++++++++-
.../org/apache/accumulo/test/SelfStoppingScanServer.java | 5 +----
.../test/compaction/ExternalDoNothingCompactor.java | 3 +--
.../test/functional/MemoryConsumingCompactor.java | 2 +-
4 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/core/src/main/java/org/apache/accumulo/core/trace/TraceUtil.java
b/core/src/main/java/org/apache/accumulo/core/trace/TraceUtil.java
index 78d658a38e..63d7a79307 100644
--- a/core/src/main/java/org/apache/accumulo/core/trace/TraceUtil.java
+++ b/core/src/main/java/org/apache/accumulo/core/trace/TraceUtil.java
@@ -21,7 +21,9 @@ package org.apache.accumulo.core.trace;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Proxy;
+import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
import java.util.concurrent.Callable;
import org.apache.accumulo.core.Constants;
@@ -214,8 +216,19 @@ public class TraceUtil {
private static <T> T wrapRpc(final InvocationHandler handler, final T
instance) {
@SuppressWarnings("unchecked")
T proxiedInstance = (T)
Proxy.newProxyInstance(instance.getClass().getClassLoader(),
- instance.getClass().getInterfaces(), handler);
+ getInterfaces(instance.getClass()).toArray(new Class<?>[0]), handler);
return proxiedInstance;
}
+ private static Set<Class<?>> getInterfaces(Class<?> clazz) {
+ var set = new HashSet<Class<?>>();
+ if (clazz != null) {
+ set.addAll(getInterfaces(clazz.getSuperclass()));
+ for (Class<?> interfaze : clazz.getInterfaces()) {
+ set.add(interfaze);
+ }
+ }
+ return set;
+ }
+
}
diff --git
a/test/src/main/java/org/apache/accumulo/test/SelfStoppingScanServer.java
b/test/src/main/java/org/apache/accumulo/test/SelfStoppingScanServer.java
index 73284dc8c5..fe9e15ec04 100644
--- a/test/src/main/java/org/apache/accumulo/test/SelfStoppingScanServer.java
+++ b/test/src/main/java/org/apache/accumulo/test/SelfStoppingScanServer.java
@@ -22,18 +22,15 @@ import java.util.concurrent.atomic.AtomicInteger;
import org.apache.accumulo.core.cli.ConfigOpts;
import org.apache.accumulo.core.clientImpl.thrift.TInfo;
-import org.apache.accumulo.core.tabletscan.thrift.TabletScanClientService;
import org.apache.accumulo.core.tabletserver.thrift.NoSuchScanIDException;
import org.apache.accumulo.tserver.ScanServer;
-import org.apache.accumulo.tserver.TabletHostingServer;
import org.apache.thrift.TException;
/**
* ScanServer implementation that will stop itself after the the 3rd scan
batch scan
*
*/
-public class SelfStoppingScanServer extends ScanServer
- implements TabletScanClientService.Iface, TabletHostingServer {
+public class SelfStoppingScanServer extends ScanServer {
private final AtomicInteger scanCount = new AtomicInteger(0);
diff --git
a/test/src/main/java/org/apache/accumulo/test/compaction/ExternalDoNothingCompactor.java
b/test/src/main/java/org/apache/accumulo/test/compaction/ExternalDoNothingCompactor.java
index afd4b271e2..6f937a68ad 100644
---
a/test/src/main/java/org/apache/accumulo/test/compaction/ExternalDoNothingCompactor.java
+++
b/test/src/main/java/org/apache/accumulo/test/compaction/ExternalDoNothingCompactor.java
@@ -28,7 +28,6 @@ import java.util.concurrent.atomic.LongAdder;
import org.apache.accumulo.compactor.Compactor;
import org.apache.accumulo.core.cli.ConfigOpts;
-import org.apache.accumulo.core.compaction.thrift.CompactorService.Iface;
import org.apache.accumulo.core.compaction.thrift.TCompactionState;
import org.apache.accumulo.core.compaction.thrift.TCompactionStatusUpdate;
import org.apache.accumulo.core.dataImpl.KeyExtent;
@@ -45,7 +44,7 @@ import org.apache.accumulo.server.tablets.TabletNameGenerator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class ExternalDoNothingCompactor extends Compactor implements Iface {
+public class ExternalDoNothingCompactor extends Compactor {
private static final Logger LOG =
LoggerFactory.getLogger(ExternalDoNothingCompactor.class);
diff --git
a/test/src/main/java/org/apache/accumulo/test/functional/MemoryConsumingCompactor.java
b/test/src/main/java/org/apache/accumulo/test/functional/MemoryConsumingCompactor.java
index d725730245..3467ffd05b 100644
---
a/test/src/main/java/org/apache/accumulo/test/functional/MemoryConsumingCompactor.java
+++
b/test/src/main/java/org/apache/accumulo/test/functional/MemoryConsumingCompactor.java
@@ -37,7 +37,7 @@ import org.apache.thrift.TException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class MemoryConsumingCompactor extends Compactor implements
CompactorService.Iface {
+public class MemoryConsumingCompactor extends Compactor {
private static final Logger LOG =
LoggerFactory.getLogger(MemoryConsumingCompactor.class);