-
Notifications
You must be signed in to change notification settings - Fork 0
Description
As a test developer I need to have a working Hbase instance. While I do not need direct access to that instance, it should be available for integration with other Hadoop components.
I want to be able to configure the Hbase instance by means of annotating the test class.
When running tests in parallel, I want the system to not start multiple Hbase instances for a specific test class or a suite of test classes that derive from a common super class which provides the Hbase configuration. Instead, all of these threads must share the same instance. In effect, there is only one Hbase instance that is shared across all threads.
Running the same tests on the same system from multiple processes must not lead to failing tests. Individual instances of Hbase must have their own ports. The ports must be determined automatically.
TODO
- shared access requires demarcating tables in Hbase on a per thread basis so these threads will not interfere or alter or destroy the data of other threads so tests will not fail, e.g. each thread must operate in a sandbox, even when using the "same" tables, demarcating tables should be transparent to the user and is to be managed by the table manager
- creating and deleting/purging tables before all/each, after all/each test (class)
- table creation, deletion and purge is to be done programmatically, it needs a table manager of some sort to be injected as either field or parameter
- regardless of an after all being present that does the clean up for a given thread, the system must ensure that the demarcated tables will be removed from the Hbase instance
Acceptance criteria
- Hbase is provided
- Hbase instances can be configured via annotation on ElementType.TYPE level
- There is only one Hbase instance that is shared across multiple threads
- The effective Hbase instance configuration is used for configuring other provided components
- Hbase instances use dedicated free ports that have been determined automatically
- TBD