use of org.neo4j.kernel.impl.nioneo.store.StoreId in project graphdb by neo4j-attic.
the class MasterUtil method packResponse.
public static <T> Response<T> packResponse(GraphDatabaseService graphDb, SlaveContext context, T response, Predicate<Long> filter) {
List<Triplet<String, Long, TxExtractor>> stream = new ArrayList<Triplet<String, Long, TxExtractor>>();
Set<String> resourceNames = new HashSet<String>();
XaDataSourceManager dsManager = ((AbstractGraphDatabase) graphDb).getConfig().getTxModule().getXaDataSourceManager();
for (Pair<String, Long> txEntry : context.lastAppliedTransactions()) {
String resourceName = txEntry.first();
final XaDataSource dataSource = dsManager.getXaDataSource(resourceName);
if (dataSource == null) {
throw new RuntimeException("No data source '" + resourceName + "' found");
}
resourceNames.add(resourceName);
long masterLastTx = dataSource.getLastCommittedTxId();
for (long txId = txEntry.other() + 1; txId <= masterLastTx; txId++) {
if (filter.accept(txId)) {
final long tx = txId;
TxExtractor extractor = new TxExtractor() {
@Override
public ReadableByteChannel extract() {
try {
return dataSource.getCommittedTransaction(tx);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Override
public void extract(LogBuffer buffer) {
try {
dataSource.getCommittedTransaction(tx, buffer);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
};
stream.add(Triplet.of(resourceName, txId, extractor));
}
}
}
StoreId storeId = ((NeoStoreXaDataSource) dsManager.getXaDataSource(Config.DEFAULT_DATA_SOURCE_NAME)).getStoreId();
return new Response<T>(response, storeId, TransactionStream.create(resourceNames, stream));
}
use of org.neo4j.kernel.impl.nioneo.store.StoreId in project graphdb by neo4j-attic.
the class TestCommunication method doBefore.
@Before
public void doBefore() {
storeIdToUse = new StoreId();
new File(PATH).mkdirs();
}
use of org.neo4j.kernel.impl.nioneo.store.StoreId in project graphdb by neo4j-attic.
the class TestCommunication method makeSureClientStoreIdsMustMatch.
@Test
public void makeSureClientStoreIdsMustMatch() throws Exception {
MadeUpImplementation serverImplementation = new MadeUpImplementation(storeIdToUse);
MadeUpServer server = new MadeUpServer(serverImplementation, PORT);
MadeUpClient client = new MadeUpClient(PORT, new StoreId(10, 10));
try {
client.multiply(1, 2);
fail();
} catch (ComException e) {
// Good
} finally {
client.shutdown();
server.shutdown();
}
}
Aggregations