Skip to content

Commit 2d3b659

Browse files
fix: deprecate disableTransactions in favour of transactions() (#377)
* fix: deprecate disableTransactions in favour of transactions() Re-apply @deprecated to both disableTransactions overloads with @deprecated Javadoc pointing to transactions(boolean) and isTransactionsEnabled(), now that the docs and examples teach the new API and it has shipped in 0.9.11. Migrate the internal test call sites to transactions() so the build stays warning-free, and add ClientWriteOptionsTest that intentionally exercises the deprecated path under @SuppressWarnings, asserting disableTransactions remains the exact inverse of transactions/isTransactionsEnabled. Refs #369 * fix: apply spotless formatting to migrated test options Collapse the two transactions(true).transactionChunkSize(1) statements onto a single line to match palantir-java-format, as required by spotlessCheck.
1 parent bbeb1ff commit 2d3b659

5 files changed

Lines changed: 60 additions & 9 deletions

File tree

src/main/java/dev/openfga/sdk/api/configuration/ClientWriteOptions.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,12 @@ public boolean isTransactionsEnabled() {
8888
*
8989
* @param disableTransactions {@code true} to disable transactions, {@code false} to enable them
9090
* @return this {@code ClientWriteOptions} instance for method chaining
91+
* @deprecated Use {@link #transactions(boolean)} instead. This method will be removed in a
92+
* future release. Replace {@code disableTransactions(true)} with
93+
* {@code transactions(false)}, and {@code disableTransactions(false)} with
94+
* {@code transactions(true)}.
9195
*/
96+
@Deprecated
9297
public ClientWriteOptions disableTransactions(boolean disableTransactions) {
9398
this.transactionsEnabled = !disableTransactions;
9499
return this;
@@ -98,7 +103,11 @@ public ClientWriteOptions disableTransactions(boolean disableTransactions) {
98103
* Returns whether transactions are disabled for write operations.
99104
*
100105
* @return {@code true} if transactions are disabled, {@code false} if enabled (default)
106+
* @deprecated Use {@link #isTransactionsEnabled()} instead. This method will be removed in a
107+
* future release. Note that {@code isTransactionsEnabled()} returns the inverse of
108+
* this method.
101109
*/
110+
@Deprecated
102111
public boolean disableTransactions() {
103112
return !transactionsEnabled;
104113
}

src/test/java/dev/openfga/sdk/api/client/OpenFgaClientHeadersTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ public void writeNonTransaction_withHeaders() throws Exception {
440440
.user(DEFAULT_USER)));
441441
ClientWriteOptions options = new ClientWriteOptions()
442442
.additionalHeaders(Map.of("test-header", "test-value-per-call"))
443-
.disableTransactions(true);
443+
.transactions(false);
444444

445445
// When
446446
ClientWriteResponse response = fga.write(request, options).get();

src/test/java/dev/openfga/sdk/api/client/OpenFgaClientTest.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1285,7 +1285,7 @@ public void writeTest_nonTransaction() throws Exception {
12851285
.writes(List.of(writeTuple, writeTuple, writeTuple, writeTuple, writeTuple))
12861286
.deletes(List.of(tuple, tuple, tuple, tuple, tuple));
12871287
ClientWriteOptions options =
1288-
new ClientWriteOptions().disableTransactions(true).transactionChunkSize(2);
1288+
new ClientWriteOptions().transactions(false).transactionChunkSize(2);
12891289

12901290
// When
12911291
var response = fga.write(request, options).get();
@@ -1353,7 +1353,7 @@ public void writeTest_nonTransactionsWithFailure() throws Exception {
13531353
.condition(DEFAULT_CONDITION))
13541354
.collect(Collectors.toList()));
13551355
ClientWriteOptions options =
1356-
new ClientWriteOptions().disableTransactions(true).transactionChunkSize(1);
1356+
new ClientWriteOptions().transactions(false).transactionChunkSize(1);
13571357

13581358
// When
13591359
ClientWriteResponse response = fga.write(request, options).get();
@@ -1429,8 +1429,7 @@ public void writeTest_transaction() throws Exception {
14291429
new ClientWriteRequest().writes(List.of(tuple, tuple, tuple)).deletes(List.of(tuple, tuple, tuple));
14301430

14311431
// We expect transactionChunkSize will be ignored, and exactly one request will be sent.
1432-
ClientWriteOptions options =
1433-
new ClientWriteOptions().disableTransactions(false).transactionChunkSize(1);
1432+
ClientWriteOptions options = new ClientWriteOptions().transactions(true).transactionChunkSize(1);
14341433

14351434
// When
14361435
var response = fga.write(request, options).get();
@@ -1472,8 +1471,7 @@ public void writeTest_transactionWithFailure() {
14721471
new ClientWriteRequest().writes(List.of(tuple, tuple, tuple)).deletes(List.of(tuple, tuple, tuple));
14731472

14741473
// We expect transactionChunkSize will be ignored, and exactly one request will be sent.
1475-
ClientWriteOptions options =
1476-
new ClientWriteOptions().disableTransactions(false).transactionChunkSize(1);
1474+
ClientWriteOptions options = new ClientWriteOptions().transactions(true).transactionChunkSize(1);
14771475

14781476
// When
14791477
var execException = assertThrows(
@@ -1683,7 +1681,7 @@ public void writeTest_nonTransaction_withConflictOptions() throws Exception {
16831681
ClientWriteRequest request =
16841682
new ClientWriteRequest().writes(List.of(writeTuple)).deletes(List.of(deleteTuple));
16851683
ClientWriteOptions options = new ClientWriteOptions()
1686-
.disableTransactions(true)
1684+
.transactions(false)
16871685
.onDuplicate(WriteRequestWrites.OnDuplicateEnum.IGNORE)
16881686
.onMissing(WriteRequestDeletes.OnMissingEnum.IGNORE);
16891687

src/test/java/dev/openfga/sdk/api/client/OpenFgaClientWriteResponseHeadersTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ void writeNonTransactionMode_shouldReturnEmptyHeaders() throws Exception {
172172
.relation(DEFAULT_RELATION)
173173
._object(DEFAULT_OBJECT)));
174174

175-
ClientWriteOptions options = new ClientWriteOptions().disableTransactions(true);
175+
ClientWriteOptions options = new ClientWriteOptions().transactions(false);
176176

177177
// When
178178
ClientWriteResponse response = fgaClient.write(request, options).get();
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package dev.openfga.sdk.api.configuration;
2+
3+
import static org.junit.jupiter.api.Assertions.*;
4+
5+
import org.junit.jupiter.api.Test;
6+
7+
class ClientWriteOptionsTest {
8+
9+
@Test
10+
void transactionsEnabledByDefault() {
11+
ClientWriteOptions options = new ClientWriteOptions();
12+
13+
assertTrue(options.isTransactionsEnabled());
14+
}
15+
16+
@Test
17+
void transactionsFalseDisablesTransactions() {
18+
ClientWriteOptions options = new ClientWriteOptions().transactions(false);
19+
20+
assertFalse(options.isTransactionsEnabled());
21+
}
22+
23+
/**
24+
* Covers the deprecated {@code disableTransactions} methods and asserts they remain the exact
25+
* inverse of {@code transactions}/{@code isTransactionsEnabled}. This is the one place the
26+
* deprecated path is exercised on purpose; the suppression keeps the rest of the build
27+
* warning-free. Remove this test when the deprecated methods are removed.
28+
*/
29+
@Test
30+
@SuppressWarnings("deprecation")
31+
void deprecatedDisableTransactionsRemainsInverseOfTransactions() {
32+
// transactions(false) implies disableTransactions() == true
33+
assertTrue(new ClientWriteOptions().transactions(false).disableTransactions());
34+
35+
// transactions(true) implies disableTransactions() == false
36+
assertFalse(new ClientWriteOptions().transactions(true).disableTransactions());
37+
38+
// disableTransactions(true) implies isTransactionsEnabled() == false
39+
assertFalse(new ClientWriteOptions().disableTransactions(true).isTransactionsEnabled());
40+
41+
// disableTransactions(false) implies isTransactionsEnabled() == true
42+
assertTrue(new ClientWriteOptions().disableTransactions(false).isTransactionsEnabled());
43+
}
44+
}

0 commit comments

Comments
 (0)