use of org.apache.tephra.TransactionExecutor in project cdap by caskdata.
the class TimeseriesTableTest method testValidTimeRangesAreAllowed.
@Test
public void testValidTimeRangesAreAllowed() throws Exception {
TransactionExecutor txnl = dsFrameworkUtil.newTransactionExecutor(table);
txnl.execute(new TransactionExecutor.Subroutine() {
@Override
public void apply() throws Exception {
long ts = System.currentTimeMillis();
Iterator<TimeseriesTable.Entry> temp = table.read(Bytes.toBytes("any"), ts, ts);
Assert.assertFalse(temp.hasNext());
temp = table.read(Bytes.toBytes("any"), ts, ts + 100);
Assert.assertFalse(temp.hasNext());
}
});
}
use of org.apache.tephra.TransactionExecutor in project cdap by caskdata.
the class ReflectionTableTest method assertGetAndPut.
private void assertGetAndPut(final Table table, final byte[] rowKey, final User obj, final Schema schema) throws Exception {
// TableDataset is not accessible here, but we know that's the underlying implementation...
TransactionExecutor tx = dsFrameworkUtil.newTransactionExecutor((TransactionAware) table);
tx.execute(new TransactionExecutor.Subroutine() {
@Override
public void apply() throws Exception {
Put put = new Put(rowKey);
ReflectionPutWriter<User> putWriter = new ReflectionPutWriter<>(schema);
putWriter.write(obj, put);
table.put(put);
Row row = table.get(rowKey);
ReflectionRowReader<User> rowReader = new ReflectionRowReader<>(schema, TypeToken.of(User.class));
User actual = rowReader.read(row, schema);
Assert.assertEquals(obj, actual);
}
});
}
use of org.apache.tephra.TransactionExecutor in project cdap by caskdata.
the class ReflectionTableTest method testTypeProjection.
@Test
public void testTypeProjection() throws Exception {
dsFrameworkUtil.createInstance("table", users, DatasetProperties.builder().build());
try {
final Table usersTable = dsFrameworkUtil.getInstance(users);
final byte[] rowKey = Bytes.toBytes(123);
final User2 projected = new User2("Samuel L.", 123L, ((Float) 50000000.02f).doubleValue(), Double.MAX_VALUE, ByteBuffer.wrap(new byte[] { 0, 1, 2 }));
final Schema fullSchema = new ReflectionSchemaGenerator().generate(User.class);
final Schema projSchema = new ReflectionSchemaGenerator().generate(User2.class);
// TableDataset is not accessible here, but we know that's the underlying implementation...
TransactionExecutor tx = dsFrameworkUtil.newTransactionExecutor((TransactionAware) usersTable);
tx.execute(new TransactionExecutor.Subroutine() {
@Override
public void apply() throws Exception {
Put put = new Put(rowKey);
ReflectionPutWriter<User> putWriter = new ReflectionPutWriter<>(fullSchema);
putWriter.write(SAMUEL, put);
usersTable.put(put);
Row row = usersTable.get(rowKey);
ReflectionRowReader<User2> rowReader = new ReflectionRowReader<>(projSchema, TypeToken.of(User2.class));
User2 actual = rowReader.read(row, fullSchema);
Assert.assertEquals(projected, actual);
}
});
} finally {
dsFrameworkUtil.deleteInstance(users);
}
}
use of org.apache.tephra.TransactionExecutor in project cdap by caskdata.
the class ObjectStoreDatasetTest method testSubclass.
@Test
public void testSubclass() throws Exception {
DatasetId intsInstance = DatasetFrameworkTestUtil.NAMESPACE_ID.dataset("ints");
addIntegerStoreInstance(intsInstance);
final IntegerStore ints = dsFrameworkUtil.getInstance(intsInstance);
TransactionExecutor txnl = dsFrameworkUtil.newInMemoryTransactionExecutor(ints);
txnl.execute(new TransactionExecutor.Subroutine() {
@Override
public void apply() throws Exception {
ints.write(42, 101);
}
});
txnl.execute(new TransactionExecutor.Subroutine() {
@Override
public void apply() throws Exception {
Assert.assertEquals((Integer) 101, ints.read(42));
}
});
// test delete
txnl.execute(new TransactionExecutor.Subroutine() {
@Override
public void apply() throws Exception {
ints.delete(42);
}
});
txnl.execute(new TransactionExecutor.Subroutine() {
@Override
public void apply() throws Exception {
Assert.assertNull(ints.read(42));
}
});
dsFrameworkUtil.deleteInstance(intsInstance);
}
use of org.apache.tephra.TransactionExecutor in project cdap by caskdata.
the class ObjectStoreDatasetTest method testPairStore.
@Test
public void testPairStore() throws Exception {
DatasetId pairs = DatasetFrameworkTestUtil.NAMESPACE_ID.dataset("pairs");
createObjectStoreInstance(pairs, new TypeToken<ImmutablePair<Integer, String>>() {
}.getType());
final ObjectStoreDataset<ImmutablePair<Integer, String>> pairStore = dsFrameworkUtil.getInstance(pairs);
TransactionExecutor txnl = dsFrameworkUtil.newInMemoryTransactionExecutor(pairStore);
final ImmutablePair<Integer, String> pair = new ImmutablePair<>(1, "second");
txnl.execute(new TransactionExecutor.Subroutine() {
@Override
public void apply() throws Exception {
pairStore.write(a, pair);
}
});
txnl.execute(new TransactionExecutor.Subroutine() {
@Override
public void apply() throws Exception {
ImmutablePair<Integer, String> result = pairStore.read(a);
Assert.assertEquals(pair, result);
}
});
txnl.execute(new TransactionExecutor.Subroutine() {
@Override
public void apply() throws Exception {
deleteAndVerify(pairStore, a);
}
});
dsFrameworkUtil.deleteInstance(pairs);
}
Aggregations