Details
Description
SecureBulkLoadEndPoint references couple of methods, prePrepareBulkLoad() and preCleanupBulkLoad(), implemented in AccessController i.e. direct coupling between AccessController and SecureBuikLoadEndPoint classes.
SecureBulkLoadEndPoint assumes presence of AccessController in secure-cluster. If HBase is configured with another coprocessor for access-control, SecureBulkLoadEndPoint fails with NPE.
To remove this direct coupling, bulk-load related methods in AccessController should be refactored to an interface; and have AccessController implement this interfaces. SecureBulkLoadEndPoint should then look for coprocessors that implement this interface, instead of directly looking for AccessController.