diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionUtils.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionUtils.java index 780dcf99271..345fac64c25 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionUtils.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionUtils.java @@ -127,6 +127,7 @@ public final class ConnectionUtils { * localhost if the invocation target is 'this' server; save on network and protobuf * invocations. */ + // TODO This has to still do PB marshalling/unmarshalling stuff. Check how/whether we can avoid. @VisibleForTesting // Class is visible so can assert we are short-circuiting when expected. public static class ShortCircuitingClusterConnection extends ConnectionImplementation { private final ServerName serverName; diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/Server.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/Server.java index 0d9eba89680..65c0322e960 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/Server.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/Server.java @@ -53,6 +53,8 @@ public interface Server extends Abortable, Stoppable { */ Connection getConnection(); + Connection createConnection(Configuration conf) throws IOException; + /** * Returns a reference to the servers' cluster connection. Prefer {@link #getConnection()}. * diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.java index ab0eb6b803f..0331a0b373b 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.java @@ -19,13 +19,16 @@ package org.apache.hadoop.hbase.coprocessor; -import org.apache.hadoop.hbase.ServerName; -import org.apache.hadoop.hbase.client.Connection; -import org.apache.yetus.audience.InterfaceAudience; -import org.apache.yetus.audience.InterfaceStability; +import java.io.IOException; + +import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.CoprocessorEnvironment; import org.apache.hadoop.hbase.HBaseInterfaceAudience; +import org.apache.hadoop.hbase.ServerName; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.metrics.MetricRegistry; +import org.apache.yetus.audience.InterfaceAudience; +import org.apache.yetus.audience.InterfaceStability; @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.COPROC) @InterfaceStability.Evolving @@ -41,15 +44,31 @@ public interface MasterCoprocessorEnvironment extends CoprocessorEnvironmentUsing a Connection to get at a local resource -- say a Region that is on the local + *

Using this Connection to get at a local resource -- say a Region that is on the local * Server or using Admin Interface from a Coprocessor hosted on the Master -- will result in a - * short-circuit of the RPC framework to make a direct invocation avoiding RPC (and - * protobuf marshalling/unmarshalling). - * + * short-circuit of the RPC framework to make a direct invocation avoiding RPC. + *

+ * Note: If you want to create Connection with your own Configuration and NOT use the Master's + * Connection (though its cache of locations will be warm, and its life-cycle is not the concern + * of the CP), see {@link #createConnection(Configuration)}. * @return The host's Connection to the Cluster. */ Connection getConnection(); + /** + * Creates a cluster connection using the passed configuration. + *

Using this Connection to get at a local resource -- say a Region that is on the local + * Server or using Admin Interface from a Coprocessor hosted on the Master -- will result in a + * short-circuit of the RPC framework to make a direct invocation avoiding RPC. + *

+ * Note: HBase will NOT cache/maintain this Connection. If Coprocessors need to cache and reuse + * this connection, it has to be done by Coprocessors. Also make sure to close it after use. + * + * @param conf configuration + * @return Connection created using the passed conf. + */ + Connection createConnection(Configuration conf) throws IOException; + /** * Returns a MetricRegistry that can be used to track metrics at the master level. * diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.java index 05df33d3672..1f48824526c 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.java @@ -19,8 +19,10 @@ package org.apache.hadoop.hbase.coprocessor; +import java.io.IOException; import java.util.concurrent.ConcurrentMap; +import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.CoprocessorEnvironment; import org.apache.hadoop.hbase.HBaseInterfaceAudience; import org.apache.hadoop.hbase.ServerName; @@ -62,13 +64,29 @@ public interface RegionCoprocessorEnvironment extends CoprocessorEnvironmentUsing a Connection to get at a local resource -- say a Region that is on the local * Server or using Admin Interface from a Coprocessor hosted on the Master -- will result in a - * short-circuit of the RPC framework to make a direct invocation avoiding RPC (and - * protobuf marshalling/unmarshalling). - * + * short-circuit of the RPC framework to make a direct invocation avoiding RPC. + *

+ * Note: If you want to create Connection with your own Configuration and NOT use the RegionServer + * Connection (though its cache of locations will be warm, and its life-cycle is not the concern + * of the CP), see {@link #createConnection(Configuration)}. * @return The host's Connection to the Cluster. */ Connection getConnection(); + /** + * Creates a cluster connection using the passed configuration. + *

Using this Connection to get at a local resource -- say a Region that is on the local + * Server or using Admin Interface from a Coprocessor hosted on the Master -- will result in a + * short-circuit of the RPC framework to make a direct invocation avoiding RPC. + *

+ * Note: HBase will NOT cache/maintain this Connection. If Coprocessors need to cache and reuse + * this connection, it has to be done by Coprocessors. Also make sure to close it after use. + * + * @param conf configuration + * @return Connection created using the passed conf. + */ + Connection createConnection(Configuration conf) throws IOException; + /** * Returns a MetricRegistry that can be used to track metrics at the region server level. All * metrics tracked at this level will be shared by all the coprocessor instances diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.java index 116d86ddfcf..c1c0c25d5ad 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.java @@ -18,6 +18,9 @@ */ package org.apache.hadoop.hbase.coprocessor; +import java.io.IOException; + +import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.CoprocessorEnvironment; import org.apache.hadoop.hbase.HBaseInterfaceAudience; import org.apache.hadoop.hbase.ServerName; @@ -49,13 +52,29 @@ public interface RegionServerCoprocessorEnvironment * *

Using a Connection to get at a local resource -- say a Region that is on the local * Server or using Admin Interface from a Coprocessor hosted on the Master -- will result in a - * short-circuit of the RPC framework to make a direct invocation avoiding RPC (and - * protobuf marshalling/unmarshalling). - * + * short-circuit of the RPC framework to make a direct invocation avoiding RPC. + *

+ * Note: If you want to create Connection with your own Configuration and NOT use the RegionServer + * Connection (though its cache of locations will be warm, and its life-cycle is not the concern + * of the CP), see {@link #createConnection(Configuration)}. * @return The host's Connection to the Cluster. */ Connection getConnection(); + /** + * Creates a cluster connection using the passed configuration. + *

Using this Connection to get at a local resource -- say a Region that is on the local + * Server or using Admin Interface from a Coprocessor hosted on the Master -- will result in a + * short-circuit of the RPC framework to make a direct invocation avoiding RPC. + *

+ * Note: HBase will NOT cache/maintain this Connection. If Coprocessors need to cache and reuse + * this connection, it has to be done by Coprocessors. Also make sure to close it after use. + * + * @param conf configuration + * @return Connection created using the passed conf. + */ + Connection createConnection(Configuration conf) throws IOException; + /** * Returns a MetricRegistry that can be used to track metrics at the region server level. * diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java index a63fb6e4301..ddc6c3d8e6f 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java @@ -78,16 +78,14 @@ public class MasterCoprocessorHost */ private static class MasterEnvironment extends BaseEnvironment implements MasterCoprocessorEnvironment { - private final Connection connection; - private final ServerName serverName; private final boolean supportGroupCPs; private final MetricRegistry metricRegistry; + private final MasterServices services; public MasterEnvironment(final MasterCoprocessor impl, final int priority, final int seq, final Configuration conf, final MasterServices services) { super(impl, priority, seq, conf); - this.connection = services.getConnection(); - this.serverName = services.getServerName(); + this.services = services; supportGroupCPs = !useLegacyMethod(impl.getClass(), "preBalanceRSGroup", ObserverContext.class, String.class); this.metricRegistry = @@ -96,12 +94,17 @@ public class MasterCoprocessorHost @Override public ServerName getServerName() { - return this.serverName; + return this.services.getServerName(); } @Override public Connection getConnection() { - return this.connection; + return this.services.getConnection(); + } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return this.services.createConnection(conf); } @Override diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java index 03657c18632..500f74fcd4c 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java @@ -3715,4 +3715,11 @@ public class HRegionServer extends HasThread implements public NettyEventLoopGroupConfig getEventLoopGroupConfig() { return eventLoopGroupConfig; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + User user = UserProvider.instantiate(conf).getCurrent(); + return ConnectionUtils.createShortCircuitConnection(conf, null, user, this.serverName, + this.rpcServices, this.rpcServices); + } } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java index 2c8d9a682bd..347ee84eee0 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java @@ -114,9 +114,7 @@ public class RegionCoprocessorHost private Region region; ConcurrentMap sharedData; private final MetricRegistry metricRegistry; - private final Connection connection; - private final ServerName serverName; - private final OnlineRegions onlineRegions; + private final RegionServerServices services; /** * Constructor @@ -128,11 +126,8 @@ public class RegionCoprocessorHost final RegionServerServices services, final ConcurrentMap sharedData) { super(impl, priority, seq, conf); this.region = region; - // Mocks may have services as null at test time. - this.connection = services != null? services.getConnection(): null; - this.serverName = services != null? services.getServerName(): null; this.sharedData = sharedData; - this.onlineRegions = services; + this.services = services; this.metricRegistry = MetricsCoprocessor.createRegistryForRegionCoprocessor(impl.getClass().getName()); } @@ -144,17 +139,23 @@ public class RegionCoprocessorHost } public OnlineRegions getOnlineRegions() { - return this.onlineRegions; + return this.services; } @Override public Connection getConnection() { - return this.connection; + // Mocks may have services as null at test time. + return services != null ? services.getConnection() : null; + } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return services != null ? this.services.createConnection(conf) : null; } @Override public ServerName getServerName() { - return this.serverName; + return services != null? services.getServerName(): null; } @Override diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.java index fd5efba8561..32a88f0846e 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.java @@ -210,9 +210,7 @@ public class RegionServerCoprocessorHost extends private static class RegionServerEnvironment extends BaseEnvironment implements RegionServerCoprocessorEnvironment { private final MetricRegistry metricRegistry; - private final Connection connection; - private final ServerName serverName; - private final OnlineRegions onlineRegions; + private final RegionServerServices services; @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="BC_UNCONFIRMED_CAST", justification="Intentional; FB has trouble detecting isAssignableFrom") @@ -223,26 +221,29 @@ public class RegionServerCoprocessorHost extends for (Service service : impl.getServices()) { services.registerService(service); } - this.onlineRegions = services; - this.connection = services.getConnection(); - this.serverName = services.getServerName(); + this.services = services; this.metricRegistry = MetricsCoprocessor.createRegistryForRSCoprocessor(impl.getClass().getName()); } @Override public OnlineRegions getOnlineRegions() { - return this.onlineRegions; + return this.services; } @Override public ServerName getServerName() { - return this.serverName; + return this.services.getServerName(); } @Override public Connection getConnection() { - return this.connection; + return this.services.getConnection(); + } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return this.services.createConnection(conf); } @Override diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.java index 233159e9b59..db3b1fc037f 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.java @@ -17,6 +17,8 @@ */ package org.apache.hadoop.hbase.replication.regionserver; +import java.io.IOException; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; @@ -31,6 +33,7 @@ import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.client.ClusterConnection; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.util.FSUtils; import org.apache.hadoop.hbase.zookeeper.MetaTableLocator; import org.apache.hadoop.hbase.zookeeper.ZKWatcher; @@ -203,5 +206,10 @@ public class ReplicationSyncUp extends Configured implements Tool { public boolean isStopping() { return false; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } } } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java index 53f27d16558..c05830f6b44 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java @@ -31,6 +31,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.hbase.client.ClusterConnection; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.locking.EntityLock; import org.apache.hadoop.hbase.executor.ExecutorService; @@ -329,4 +330,9 @@ public class MockRegionServerServices implements RegionServerServices { public RegionServerSpaceQuotaManager getRegionServerSpaceQuotaManager() { return null; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockNoopMasterServices.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockNoopMasterServices.java index a752e9b5785..6a3d5c76b09 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockNoopMasterServices.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockNoopMasterServices.java @@ -32,6 +32,7 @@ import org.apache.hadoop.hbase.TableDescriptors; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.ClusterConnection; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.MasterSwitchType; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.TableDescriptor; @@ -460,4 +461,9 @@ public class MockNoopMasterServices implements MasterServices, Server { public FileSystem getFileSystem() { return null; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } } \ No newline at end of file diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java index 8358e0ad0af..c8c35accf5e 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java @@ -39,6 +39,7 @@ import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.ZooKeeperConnectionException; import org.apache.hadoop.hbase.client.ClusterConnection; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.client.Result; @@ -672,4 +673,9 @@ ClientProtos.ClientService.BlockingInterface, RegionServerServices { throws ServiceException { return null; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestActiveMasterManager.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestActiveMasterManager.java index 6fcd8ecca19..9b6cd165657 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestActiveMasterManager.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestActiveMasterManager.java @@ -35,6 +35,7 @@ import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.client.ClusterConnection; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.monitoring.MonitoredTask; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.MediumTests; @@ -343,5 +344,10 @@ public class TestActiveMasterManager { public boolean isStopping() { return false; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } } } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.java index 97d61893fb1..a08b0c7ee3b 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.java @@ -39,6 +39,7 @@ import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.client.ClusterConnection; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.util.EnvironmentEdge; @@ -272,6 +273,11 @@ public class TestHFileCleaner { public boolean isStopping() { return false; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } } @Test diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileLinkCleaner.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileLinkCleaner.java index 9820fd09373..1ff47d97d9d 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileLinkCleaner.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileLinkCleaner.java @@ -36,6 +36,7 @@ import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.ClusterConnection; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.io.HFileLink; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.MediumTests; @@ -211,5 +212,10 @@ public class TestHFileLinkCleaner { public boolean isStopping() { return false; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } } } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.java index 4ccc677a845..98176feed3e 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.java @@ -47,6 +47,7 @@ import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.Waiter; import org.apache.hadoop.hbase.ZooKeeperConnectionException; import org.apache.hadoop.hbase.client.ClusterConnection; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.replication.ReplicationFactory; import org.apache.hadoop.hbase.replication.ReplicationQueues; import org.apache.hadoop.hbase.replication.ReplicationQueuesArguments; @@ -319,6 +320,11 @@ public class TestLogsCleaner { public boolean isStopping() { return false; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } } static class FaultyZooKeeperWatcher extends ZKWatcher { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestReplicationHFileCleaner.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestReplicationHFileCleaner.java index b2ae3bd8b21..37c9221fd42 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestReplicationHFileCleaner.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestReplicationHFileCleaner.java @@ -40,6 +40,7 @@ import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.ZooKeeperConnectionException; import org.apache.hadoop.hbase.client.ClusterConnection; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.replication.ReplicationException; import org.apache.hadoop.hbase.replication.ReplicationFactory; import org.apache.hadoop.hbase.replication.ReplicationPeerConfig; @@ -330,6 +331,11 @@ public class TestReplicationHFileCleaner { public boolean isStopping() { return false; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } } static class FaultyZooKeeperWatcher extends ZKWatcher { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHeapMemoryManager.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHeapMemoryManager.java index 2a3ce00ca0b..76b4faf841f 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHeapMemoryManager.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHeapMemoryManager.java @@ -23,6 +23,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import java.io.IOException; import java.lang.management.ManagementFactory; import java.util.Iterator; @@ -37,6 +38,7 @@ import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.Waiter; import org.apache.hadoop.hbase.client.ClusterConnection; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.io.hfile.BlockCache; import org.apache.hadoop.hbase.io.hfile.BlockCacheKey; import org.apache.hadoop.hbase.io.hfile.CacheStats; @@ -857,6 +859,11 @@ public class TestHeapMemoryManager { public boolean isStopping() { return false; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } } static class CustomHeapMemoryTuner implements HeapMemoryTuner { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitLogWorker.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitLogWorker.java index f241f85538c..f78a19fb0fe 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitLogWorker.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitLogWorker.java @@ -26,6 +26,7 @@ import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import java.io.IOException; import java.util.List; import java.util.concurrent.atomic.LongAdder; @@ -43,6 +44,7 @@ import org.apache.hadoop.hbase.SplitLogCounters; import org.apache.hadoop.hbase.SplitLogTask; import org.apache.hadoop.hbase.Waiter; import org.apache.hadoop.hbase.client.ClusterConnection; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.coordination.ZkCoordinatedStateManager; import org.apache.hadoop.hbase.executor.ExecutorService; import org.apache.hadoop.hbase.executor.ExecutorType; @@ -157,6 +159,11 @@ public class TestSplitLogWorker { public boolean isStopping() { return false; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } } private void waitForCounter(LongAdder ctr, long oldval, long newval, long timems) diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestWALLockup.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestWALLockup.java index 10a84b13f57..66309d38e72 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestWALLockup.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestWALLockup.java @@ -41,6 +41,7 @@ import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.ClusterConnection; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.Durability; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.regionserver.wal.DamagedWALException; @@ -569,6 +570,11 @@ public class TestWALLockup { public boolean isStopping() { return false; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } } static class DummyWALActionsListener extends WALActionsListener.Base { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationStateHBaseImpl.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationStateHBaseImpl.java index 97daa639e32..1ef525fb1df 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationStateHBaseImpl.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationStateHBaseImpl.java @@ -26,6 +26,7 @@ import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.client.ClusterConnection; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.testclassification.ReplicationTests; import org.apache.hadoop.hbase.zookeeper.MetaTableLocator; @@ -485,5 +486,10 @@ public class TestReplicationStateHBaseImpl { public boolean isStopping() { return false; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } } } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationStateZKImpl.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationStateZKImpl.java index bb9f66594b6..15fc78f3fde 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationStateZKImpl.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationStateZKImpl.java @@ -35,6 +35,7 @@ import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.client.ClusterConnection; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.testclassification.ReplicationTests; import org.apache.hadoop.hbase.zookeeper.MetaTableLocator; @@ -217,5 +218,10 @@ public class TestReplicationStateZKImpl extends TestReplicationStateBasic { public boolean isStopping() { return false; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } } } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationTrackerZKImpl.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationTrackerZKImpl.java index 2db4f76332a..c2481c4c11d 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationTrackerZKImpl.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationTrackerZKImpl.java @@ -22,6 +22,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; @@ -38,6 +39,7 @@ import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.client.ClusterConnection; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.testclassification.ReplicationTests; import org.apache.hadoop.hbase.zookeeper.MetaTableLocator; @@ -317,5 +319,10 @@ public class TestReplicationTrackerZKImpl { public boolean isStopping() { return false; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } } } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java index 77301005421..a104d4f09bd 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java @@ -60,6 +60,7 @@ import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.Waiter; import org.apache.hadoop.hbase.client.ClusterConnection; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl; import org.apache.hadoop.hbase.regionserver.wal.WALActionsListener; import org.apache.hadoop.hbase.wal.WALEdit; @@ -731,5 +732,10 @@ public abstract class TestReplicationSourceManager { public boolean isStopping() { return false; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } } } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/token/TestTokenAuthentication.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/token/TestTokenAuthentication.java index 3e0bddcb247..22561033bca 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/token/TestTokenAuthentication.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/token/TestTokenAuthentication.java @@ -323,6 +323,11 @@ public class TestTokenAuthentication { public Connection getConnection() { return null; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } }); started = true; @@ -410,6 +415,11 @@ public class TestTokenAuthentication { // TODO Auto-generated method stub return null; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } } @Parameters(name = "{index}: rpcServerImpl={0}") diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/MockServer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/MockServer.java index 4acec769725..dade11e78b8 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/MockServer.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/MockServer.java @@ -30,6 +30,7 @@ import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.ZooKeeperConnectionException; import org.apache.hadoop.hbase.client.ClusterConnection; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.zookeeper.MetaTableLocator; import org.apache.hadoop.hbase.zookeeper.ZKWatcher; @@ -144,4 +145,9 @@ public class MockServer implements Server { public boolean isStopping() { return false; } + + @Override + public Connection createConnection(Configuration conf) throws IOException { + return null; + } }