View Javadoc

1   /**
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  package org.apache.hadoop.hbase.client;
19  
20  import java.io.IOException;
21  import java.util.List;
22  import java.util.concurrent.ExecutorService;
23  
24  import org.apache.hadoop.conf.Configuration;
25  import org.apache.hadoop.hbase.HRegionLocation;
26  import org.apache.hadoop.hbase.HTableDescriptor;
27  import org.apache.hadoop.hbase.MasterNotRunningException;
28  import org.apache.hadoop.hbase.RegionLocations;
29  import org.apache.hadoop.hbase.ServerName;
30  import org.apache.hadoop.hbase.TableName;
31  import org.apache.hadoop.hbase.ZooKeeperConnectionException;
32  import org.apache.hadoop.hbase.classification.InterfaceAudience;
33  import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy;
34  import org.apache.hadoop.hbase.client.coprocessor.Batch.Callback;
35  import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService;
36  import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ClientService;
37  import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService;
38  
39  /**
40   * An internal class that delegates to an {@link HConnection} instance.
41   * A convenience to override when customizing method implementations.
42   *
43   *
44   * @see ConnectionUtils#createShortCircuitHConnection(HConnection, ServerName,
45   * AdminService.BlockingInterface, ClientService.BlockingInterface) for case where we make
46   * Connections skip RPC if request is to local server.
47   */
48  @InterfaceAudience.Private
49  @Deprecated
50  //NOTE: DO NOT make this class public. It was made package-private on purpose.
51  abstract class ConnectionAdapter implements ClusterConnection {
52  
53    private final ClusterConnection wrappedConnection;
54  
55    public ConnectionAdapter(Connection c) {
56      wrappedConnection = (ClusterConnection)c;
57    }
58  
59    @Override
60    public void abort(String why, Throwable e) {
61      wrappedConnection.abort(why, e);
62    }
63  
64    @Override
65    public boolean isAborted() {
66      return wrappedConnection.isAborted();
67    }
68  
69    @Override
70    public void close() throws IOException {
71      wrappedConnection.close();
72    }
73  
74    @Override
75    public Configuration getConfiguration() {
76      return wrappedConnection.getConfiguration();
77    }
78  
79    @Override
80    public HTableInterface getTable(String tableName) throws IOException {
81      return wrappedConnection.getTable(tableName);
82    }
83  
84    @Override
85    public HTableInterface getTable(byte[] tableName) throws IOException {
86      return wrappedConnection.getTable(tableName);
87    }
88  
89    @Override
90    public HTableInterface getTable(TableName tableName) throws IOException {
91      return wrappedConnection.getTable(tableName);
92    }
93  
94    @Override
95    public HTableInterface getTable(String tableName, ExecutorService pool)
96        throws IOException {
97      return wrappedConnection.getTable(tableName, pool);
98    }
99  
100   @Override
101   public HTableInterface getTable(byte[] tableName, ExecutorService pool)
102       throws IOException {
103     return wrappedConnection.getTable(tableName, pool);
104   }
105 
106   @Override
107   public HTableInterface getTable(TableName tableName, ExecutorService pool)
108       throws IOException {
109     return wrappedConnection.getTable(tableName, pool);
110   }
111 
112   @Override
113   public BufferedMutator getBufferedMutator(BufferedMutatorParams params)
114       throws IOException {
115     return wrappedConnection.getBufferedMutator(params);
116   }
117 
118   @Override
119   public BufferedMutator getBufferedMutator(TableName tableName) throws IOException {
120     return wrappedConnection.getBufferedMutator(tableName);
121   }
122 
123   @Override
124   public RegionLocator getRegionLocator(TableName tableName) throws IOException {
125     return wrappedConnection.getRegionLocator(tableName);
126   }
127 
128   @Override
129   public Admin getAdmin() throws IOException {
130     return wrappedConnection.getAdmin();
131   }
132 
133   @Override
134   public MetricsConnection getConnectionMetrics() {
135     return wrappedConnection.getConnectionMetrics();
136   }
137 
138   @Override
139   public boolean isMasterRunning() throws MasterNotRunningException,
140       ZooKeeperConnectionException {
141     return wrappedConnection.isMasterRunning();
142   }
143 
144   @Override
145   public boolean isTableEnabled(TableName tableName) throws IOException {
146     return wrappedConnection.isTableEnabled(tableName);
147   }
148 
149   @Override
150   public boolean isTableEnabled(byte[] tableName) throws IOException {
151     return wrappedConnection.isTableEnabled(tableName);
152   }
153 
154   @Override
155   public boolean isTableDisabled(TableName tableName) throws IOException {
156     return wrappedConnection.isTableDisabled(tableName);
157   }
158 
159   @Override
160   public boolean isTableDisabled(byte[] tableName) throws IOException {
161     return wrappedConnection.isTableDisabled(tableName);
162   }
163 
164   @Override
165   public boolean isTableAvailable(TableName tableName) throws IOException {
166     return wrappedConnection.isTableAvailable(tableName);
167   }
168 
169   @Override
170   public boolean isTableAvailable(byte[] tableName) throws IOException {
171     return wrappedConnection.isTableAvailable(tableName);
172   }
173 
174   @Override
175   public boolean isTableAvailable(TableName tableName, byte[][] splitKeys)
176       throws IOException {
177     return wrappedConnection.isTableAvailable(tableName, splitKeys);
178   }
179 
180   @Override
181   public boolean isTableAvailable(byte[] tableName, byte[][] splitKeys)
182       throws IOException {
183     return wrappedConnection.isTableAvailable(tableName, splitKeys);
184   }
185 
186   @Override
187   public HTableDescriptor[] listTables() throws IOException {
188     return wrappedConnection.listTables();
189   }
190 
191   @Override
192   public String[] getTableNames() throws IOException {
193     return wrappedConnection.getTableNames();
194   }
195 
196   @Override
197   public TableName[] listTableNames() throws IOException {
198     return wrappedConnection.listTableNames();
199   }
200 
201   @Override
202   public HTableDescriptor getHTableDescriptor(TableName tableName)
203       throws IOException {
204     return wrappedConnection.getHTableDescriptor(tableName);
205   }
206 
207   @Override
208   public HTableDescriptor getHTableDescriptor(byte[] tableName)
209       throws IOException {
210     return wrappedConnection.getHTableDescriptor(tableName);
211   }
212 
213   @Override
214   public HRegionLocation locateRegion(TableName tableName, byte[] row)
215       throws IOException {
216     return wrappedConnection.locateRegion(tableName, row);
217   }
218 
219   @Override
220   public HRegionLocation locateRegion(byte[] tableName, byte[] row)
221       throws IOException {
222     return wrappedConnection.locateRegion(tableName, row);
223   }
224 
225   @Override
226   public RegionLocations locateRegion(TableName tableName, byte[] row, boolean useCache,
227       boolean retry) throws IOException {
228     return wrappedConnection.locateRegion(tableName, row, useCache, retry);
229   }
230 
231   @Override
232   public void clearRegionCache() {
233     wrappedConnection.clearRegionCache();
234   }
235 
236   @Override
237   public void clearRegionCache(TableName tableName) {
238     wrappedConnection.clearRegionCache(tableName);
239   }
240 
241   @Override
242   public void clearRegionCache(byte[] tableName) {
243     wrappedConnection.clearRegionCache(tableName);
244   }
245 
246   @Override
247   public void deleteCachedRegionLocation(HRegionLocation location) {
248     wrappedConnection.deleteCachedRegionLocation(location);
249   }
250 
251   @Override
252   public HRegionLocation relocateRegion(TableName tableName, byte[] row)
253       throws IOException {
254     return wrappedConnection.relocateRegion(tableName, row);
255   }
256 
257   @Override
258   public HRegionLocation relocateRegion(byte[] tableName, byte[] row)
259       throws IOException {
260     return wrappedConnection.relocateRegion(tableName, row);
261   }
262 
263   @Override
264   public void updateCachedLocations(TableName tableName, byte[] rowkey,
265       Object exception, HRegionLocation source) {
266     wrappedConnection.updateCachedLocations(tableName, rowkey, exception, source);
267   }
268 
269   @Override
270   public void updateCachedLocations(TableName tableName, byte[] regionName, byte[] rowkey,
271       Object exception, ServerName source) {
272     wrappedConnection.updateCachedLocations(tableName, regionName, rowkey, exception, source);
273   }
274 
275   @Override
276   public void updateCachedLocations(byte[] tableName, byte[] rowkey,
277       Object exception, HRegionLocation source) {
278     wrappedConnection.updateCachedLocations(tableName, rowkey, exception, source);
279   }
280 
281   @Override
282   public HRegionLocation locateRegion(byte[] regionName) throws IOException {
283     return wrappedConnection.locateRegion(regionName);
284   }
285 
286   @Override
287   public List<HRegionLocation> locateRegions(TableName tableName)
288       throws IOException {
289     return wrappedConnection.locateRegions(tableName);
290   }
291 
292   @Override
293   public List<HRegionLocation> locateRegions(byte[] tableName)
294       throws IOException {
295     return wrappedConnection.locateRegions(tableName);
296   }
297 
298   @Override
299   public List<HRegionLocation> locateRegions(TableName tableName,
300       boolean useCache, boolean offlined) throws IOException {
301     return wrappedConnection.locateRegions(tableName, useCache, offlined);
302   }
303 
304   @Override
305   public List<HRegionLocation> locateRegions(byte[] tableName,
306       boolean useCache, boolean offlined) throws IOException {
307     return wrappedConnection.locateRegions(tableName, useCache, offlined);
308   }
309 
310   @Override
311   public RegionLocations locateRegion(TableName tableName, byte[] row, boolean useCache,
312       boolean retry, int replicaId) throws IOException {
313     return wrappedConnection.locateRegion(tableName, row, useCache, retry, replicaId);
314   }
315 
316   @Override
317   public RegionLocations relocateRegion(TableName tableName, byte[] row, int replicaId)
318       throws IOException {
319     return wrappedConnection.relocateRegion(tableName, row, replicaId);
320   }
321 
322   @Override
323   public MasterService.BlockingInterface getMaster() throws IOException {
324     return wrappedConnection.getMaster();
325   }
326 
327   @Override
328   public AdminService.BlockingInterface getAdmin(
329       ServerName serverName) throws IOException {
330     return wrappedConnection.getAdmin(serverName);
331   }
332 
333   @Override
334   public ClientService.BlockingInterface getClient(
335       ServerName serverName) throws IOException {
336     return wrappedConnection.getClient(serverName);
337   }
338 
339   @Override
340   public AdminService.BlockingInterface getAdmin(
341       ServerName serverName, boolean getMaster) throws IOException {
342     return wrappedConnection.getAdmin(serverName, getMaster);
343   }
344 
345   @Override
346   public HRegionLocation getRegionLocation(TableName tableName, byte[] row,
347       boolean reload) throws IOException {
348     return wrappedConnection.getRegionLocation(tableName, row, reload);
349   }
350 
351   @Override
352   public HRegionLocation getRegionLocation(byte[] tableName, byte[] row,
353       boolean reload) throws IOException {
354     return wrappedConnection.getRegionLocation(tableName, row, reload);
355   }
356 
357   @Override
358   public void processBatch(List<? extends Row> actions, TableName tableName,
359       ExecutorService pool, Object[] results) throws IOException,
360       InterruptedException {
361     wrappedConnection.processBatch(actions, tableName, pool, results);
362   }
363 
364   @Override
365   public void processBatch(List<? extends Row> actions, byte[] tableName,
366       ExecutorService pool, Object[] results) throws IOException,
367       InterruptedException {
368     wrappedConnection.processBatch(actions, tableName, pool, results);
369   }
370 
371   @Override
372   public <R> void processBatchCallback(List<? extends Row> list,
373       TableName tableName, ExecutorService pool, Object[] results,
374       Callback<R> callback) throws IOException, InterruptedException {
375     wrappedConnection.processBatchCallback(list, tableName, pool, results, callback);
376   }
377 
378   @Override
379   public <R> void processBatchCallback(List<? extends Row> list,
380       byte[] tableName, ExecutorService pool, Object[] results,
381       Callback<R> callback) throws IOException, InterruptedException {
382     wrappedConnection.processBatchCallback(list, tableName, pool, results, callback);
383   }
384 
385   @Override
386   public void setRegionCachePrefetch(TableName tableName, boolean enable) {
387     wrappedConnection.setRegionCachePrefetch(tableName, enable);
388   }
389 
390   @Override
391   public void setRegionCachePrefetch(byte[] tableName, boolean enable) {
392     wrappedConnection.setRegionCachePrefetch(tableName, enable);
393   }
394 
395   @Override
396   public boolean getRegionCachePrefetch(TableName tableName) {
397     return wrappedConnection.getRegionCachePrefetch(tableName);
398   }
399 
400   @Override
401   public boolean getRegionCachePrefetch(byte[] tableName) {
402      return wrappedConnection.getRegionCachePrefetch(tableName);
403   }
404 
405   @Override
406   public int getCurrentNrHRS() throws IOException {
407     return wrappedConnection.getCurrentNrHRS();
408   }
409 
410   @Override
411   public HTableDescriptor[] getHTableDescriptorsByTableName(
412       List<TableName> tableNames) throws IOException {
413     return wrappedConnection.getHTableDescriptorsByTableName(tableNames);
414   }
415 
416   @Override
417   public HTableDescriptor[] getHTableDescriptors(List<String> tableNames)
418       throws IOException {
419     return wrappedConnection.getHTableDescriptors(tableNames);
420   }
421 
422   @Override
423   public boolean isClosed() {
424     return wrappedConnection.isClosed();
425   }
426 
427   @Override
428   public void clearCaches(ServerName sn) {
429     wrappedConnection.clearCaches(sn);
430   }
431 
432   @Override
433   public MasterKeepAliveConnection getKeepAliveMasterService()
434       throws MasterNotRunningException {
435     return wrappedConnection.getKeepAliveMasterService();
436   }
437 
438   @Override
439   public boolean isDeadServer(ServerName serverName) {
440     return wrappedConnection.isDeadServer(serverName);
441   }
442 
443   @Override
444   public NonceGenerator getNonceGenerator() {
445     return wrappedConnection.getNonceGenerator();
446   }
447 
448   @Override
449   public AsyncProcess getAsyncProcess() {
450     return wrappedConnection.getAsyncProcess();
451   }
452 
453   @Override
454   public RpcRetryingCallerFactory getNewRpcRetryingCallerFactory(Configuration conf) {
455     return wrappedConnection.getNewRpcRetryingCallerFactory(conf);
456   }
457   
458   @Override
459   public boolean isManaged() {
460     return wrappedConnection.isManaged();
461   }
462 
463   @Override
464   public ServerStatisticTracker getStatisticsTracker() {
465     return wrappedConnection.getStatisticsTracker();
466   }
467 
468   @Override
469   public ClientBackoffPolicy getBackoffPolicy() {
470     return wrappedConnection.getBackoffPolicy();
471   }
472 
473   @Override
474   public boolean hasCellBlockSupport() {
475     return wrappedConnection.hasCellBlockSupport();
476   }
477 }