public TestTransactionSetup(SITestEnv testEnv, boolean simple) {

    family = SIConstants.DEFAULT_FAMILY_BYTES;
    ageQualifier = Bytes.toBytes("age");

    final ManagedTransactor listener = new ManagedTransactor();

    timestampSource = testEnv.getTimestampSource();
    ClientTxnLifecycleManager lfManager =
        new ClientTxnLifecycleManager(timestampSource, testEnv.getExceptionFactory());

    txnStore = testEnv.getTxnStore();
    TxnSupplier txnSupplier = new CompletedTxnCacheSupplier(txnStore, 100, 16);
    filterFactory = testEnv.getFilterFactory();
    lfManager.setTxnStore(txnStore);
    txnLifecycleManager = lfManager;

    txnOperationFactory = testEnv.getOperationFactory();

    KeepAliveScheduler keepAliveScheduler = new ManualKeepAliveScheduler(txnStore);
    lfManager.setKeepAliveScheduler(keepAliveScheduler);
    ((ClientTxnLifecycleManager) txnLifecycleManager).setKeepAliveScheduler(keepAliveScheduler);

    readController = new SITransactionReadController(txnSupplier);

    transactor =
        new SITransactor(
            txnSupplier,
            txnOperationFactory,
            testEnv.getBaseOperationFactory(),
            testEnv.getOperationStatusFactory(),
            testEnv.getExceptionFactory());

    if (!simple) {
      listener.setTransactor(transactor);
    }
  }
 public Partition getPersonTable(SITestEnv testEnv) throws IOException {
   return testEnv.getPersonTable(this);
 }