throws Exception {
@SuppressWarnings("unchecked")
final T dataSet = (T) datasetFramework.getDataset(datasetInstanceName, new HashMap<String, String>(), null);
try {
TransactionAware txAwareDataset = (TransactionAware) dataSet;
final TransactionContext txContext =
new TransactionContext(txSystemClient, Lists.newArrayList(txAwareDataset));
txContext.start();
return new DataSetManager<T>() {
@Override
public T get() {
return dataSet;
}
@Override
public void flush() {
try {
txContext.finish();
txContext.start();
} catch (TransactionFailureException e) {
throw Throwables.propagate(e);
}
}
};