Skip to content

Commit d360707

Browse files
author
michele
committed
abortStreamTransaction
1 parent 6bff809 commit d360707

File tree

4 files changed

+33
-0
lines changed

4 files changed

+33
-0
lines changed

src/main/java/com/arangodb/ArangoDatabase.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -595,6 +595,16 @@ GraphEntity createGraph(String name, Collection<EdgeDefinition> edgeDefinitions,
595595
*/
596596
StreamTransactionEntity beginStreamTransaction(StreamTransactionOptions options) throws ArangoDBException;
597597

598+
/**
599+
* Aborts a Stream Transaction.
600+
*
601+
* @see <a href="https://docs.arangodb.com/current/HTTP/transaction-stream-transaction.html#abort-transaction">API
602+
* Documentation</a>
603+
* @return information about the transaction
604+
* @throws ArangoDBException
605+
*/
606+
StreamTransactionEntity abortStreamTransaction(String id) throws ArangoDBException;
607+
598608
/**
599609
* Retrieves information about the current database
600610
*

src/main/java/com/arangodb/internal/ArangoDatabaseImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,11 @@ public StreamTransactionEntity beginStreamTransaction(StreamTransactionOptions o
335335
return executor.execute(beginStreamTransactionRequest(options), streamTransactionResponseDeserializer());
336336
}
337337

338+
@Override
339+
public StreamTransactionEntity abortStreamTransaction(String id) throws ArangoDBException {
340+
return executor.execute(abortStreamTransactionRequest(id), streamTransactionResponseDeserializer());
341+
}
342+
338343
@Override
339344
public DatabaseEntity getInfo() throws ArangoDBException {
340345
return executor.execute(getInfoRequest(), getInfoResponseDeserializer());

src/main/java/com/arangodb/internal/InternalArangoDatabase.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,10 @@ protected Request beginStreamTransactionRequest(final StreamTransactionOptions o
378378
util().serialize(options != null ? options : new StreamTransactionOptions()));
379379
}
380380

381+
protected Request abortStreamTransactionRequest(String id) {
382+
return request(name, RequestType.DELETE, PATH_API_TRANSACTION, id);
383+
}
384+
381385
protected ResponseDeserializer<StreamTransactionEntity> streamTransactionResponseDeserializer() {
382386
return new ResponseDeserializer<StreamTransactionEntity>() {
383387
@Override

src/test/java/com/arangodb/ArangoDatabaseTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1406,6 +1406,20 @@ public void beginStreamTransactionWithNonExistingCollectionsShouldThrow() {
14061406
db.beginStreamTransaction(new StreamTransactionOptions().writeCollections("notExistingCollection"));
14071407
}
14081408

1409+
@Test
1410+
public void abortStreamTransaction() {
1411+
StreamTransactionEntity begunTx = db.beginStreamTransaction(null);
1412+
StreamTransactionEntity abortedTx = db.abortStreamTransaction(begunTx.getId());
1413+
assertThat(abortedTx.getId(), is(notNullValue()));
1414+
assertThat(abortedTx.getId(), is(begunTx.getId()));
1415+
assertThat(abortedTx.getStatus(), is(StreamTransactionEntity.StreamTransactionStatus.aborted));
1416+
}
1417+
1418+
@Test(expected = ArangoDBException.class)
1419+
public void abortStreamTransactionWhenTransactionIdDoesNotExistsShouldThrow() {
1420+
db.abortStreamTransaction("notExistingTransactionId");
1421+
}
1422+
14091423
@Test
14101424
public void getInfo() {
14111425
final DatabaseEntity info = db.getInfo();

0 commit comments

Comments
 (0)