You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by do...@apache.org on 2023/02/15 18:52:20 UTC
[accumulo-proxy] branch main updated: Make TestProxyClient AutoClosable (#76)
This is an automated email from the ASF dual-hosted git repository.
domgarguilo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo-proxy.git
The following commit(s) were added to refs/heads/main by this push:
new 6b1f549 Make TestProxyClient AutoClosable (#76)
6b1f549 is described below
commit 6b1f549dee859d1d1af2622eefcdb71a24cf7023
Author: Dom G <do...@apache.org>
AuthorDate: Wed Feb 15 13:52:14 2023 -0500
Make TestProxyClient AutoClosable (#76)
* Make TestProxyClient AutoClosable
Co-authored-by: Christopher Tubbs <ct...@apache.org>
---
.../accumulo/proxy/its/ProxyDurabilityIT.java | 70 +++++++++++-----------
.../apache/accumulo/proxy/its/SimpleProxyBase.java | 21 +------
.../apache/accumulo/proxy/its/TestProxyClient.java | 14 ++---
3 files changed, 46 insertions(+), 59 deletions(-)
diff --git a/src/test/java/org/apache/accumulo/proxy/its/ProxyDurabilityIT.java b/src/test/java/org/apache/accumulo/proxy/its/ProxyDurabilityIT.java
index 791ecfd..83fca91 100644
--- a/src/test/java/org/apache/accumulo/proxy/its/ProxyDurabilityIT.java
+++ b/src/test/java/org/apache/accumulo/proxy/its/ProxyDurabilityIT.java
@@ -98,7 +98,7 @@ public class ProxyDurabilityIT extends ConfigurableMacBase {
proxyProps.put("tokenClass", PasswordToken.class.getName());
proxyProps.putAll(getClientProperties());
- String sharedSecret = "sharedSecret";
+ String sharedSecret = "superSecret";
proxyProps.put("sharedSecret", sharedSecret);
@@ -111,39 +111,41 @@ public class ProxyDurabilityIT extends ConfigurableMacBase {
while (!proxyServer.isServing()) {
sleepUninterruptibly(100, TimeUnit.MILLISECONDS);
}
- Client client = new TestProxyClient("localhost", proxyPort, protocol).proxy();
-
- String tableName = getUniqueNames(1)[0];
- client.createTable(sharedSecret, tableName, true, TimeType.MILLIS);
- assertTrue(c.tableOperations().exists(tableName));
-
- WriterOptions options = new WriterOptions();
- options.setDurability(Durability.NONE);
- String writer = client.createWriter(sharedSecret, tableName, options);
- Map<ByteBuffer,List<ColumnUpdate>> cells = new TreeMap<>();
- ColumnUpdate column = new ColumnUpdate(bytes("cf"), bytes("cq"));
- column.setValue("value".getBytes());
- cells.put(bytes("row"), Collections.singletonList(column));
- client.update(writer, cells);
- client.closeWriter(writer);
- assertEquals(1, count(c, tableName));
- restartTServer();
- assertEquals(0, count(c, tableName));
-
- ConditionalWriterOptions cfg = new ConditionalWriterOptions();
- cfg.setDurability(Durability.SYNC);
- String cwriter = client.createConditionalWriter(sharedSecret, tableName, cfg);
- ConditionalUpdates updates = new ConditionalUpdates();
- updates.addToConditions(new Condition(new Column(bytes("cf"), bytes("cq"), bytes(""))));
- updates.addToUpdates(column);
- Map<ByteBuffer,ConditionalStatus> status =
- client.updateRowsConditionally(cwriter, Collections.singletonMap(bytes("row"), updates));
- assertEquals(ConditionalStatus.ACCEPTED, status.get(bytes("row")));
- assertEquals(1, count(c, tableName));
- restartTServer();
- assertEquals(1, count(c, tableName));
-
- proxyServer.stop();
+ try (var proxyClient = new TestProxyClient("localhost", proxyPort, protocol)) {
+ Client client = proxyClient.proxy();
+ String tableName = getUniqueNames(1)[0];
+ client.createTable(sharedSecret, tableName, true, TimeType.MILLIS);
+ assertTrue(c.tableOperations().exists(tableName));
+
+ WriterOptions options = new WriterOptions();
+ options.setDurability(Durability.NONE);
+ String writer = client.createWriter(sharedSecret, tableName, options);
+ Map<ByteBuffer,List<ColumnUpdate>> cells = new TreeMap<>();
+ ColumnUpdate column = new ColumnUpdate(bytes("cf"), bytes("cq"));
+ column.setValue("value".getBytes());
+ cells.put(bytes("row"), Collections.singletonList(column));
+ client.update(writer, cells);
+ client.closeWriter(writer);
+ assertEquals(1, count(c, tableName));
+ restartTServer();
+ assertEquals(0, count(c, tableName));
+
+ ConditionalWriterOptions cfg = new ConditionalWriterOptions();
+ cfg.setDurability(Durability.SYNC);
+ String cwriter = client.createConditionalWriter(sharedSecret, tableName, cfg);
+ ConditionalUpdates updates = new ConditionalUpdates();
+ updates.addToConditions(new Condition(new Column(bytes("cf"), bytes("cq"), bytes(""))));
+ updates.addToUpdates(column);
+ Map<ByteBuffer,ConditionalStatus> status = client.updateRowsConditionally(cwriter,
+ Collections.singletonMap(bytes("row"), updates));
+ assertEquals(ConditionalStatus.ACCEPTED, status.get(bytes("row")));
+ assertEquals(1, count(c, tableName));
+ restartTServer();
+ assertEquals(1, count(c, tableName));
+
+ } finally {
+ proxyServer.stop();
+ }
}
}
diff --git a/src/test/java/org/apache/accumulo/proxy/its/SimpleProxyBase.java b/src/test/java/org/apache/accumulo/proxy/its/SimpleProxyBase.java
index c39ad31..d07cd7c 100644
--- a/src/test/java/org/apache/accumulo/proxy/its/SimpleProxyBase.java
+++ b/src/test/java/org/apache/accumulo/proxy/its/SimpleProxyBase.java
@@ -1165,21 +1165,13 @@ public abstract class SimpleProxyBase extends SharedMiniClusterBase {
// scan
Thread t = new Thread(() -> {
- String scanner;
- TestProxyClient proxyClient2 = null;
- try {
- proxyClient2 = new TestProxyClient(hostname, proxyPort, factory);
-
+ try (TestProxyClient proxyClient2 = new TestProxyClient(hostname, proxyPort, factory)) {
Client client2 = proxyClient2.proxy();
- scanner = client2.createScanner(sharedSecret, "slow", null);
+ String scanner = client2.createScanner(sharedSecret, "slow", null);
client2.nextK(scanner, 10);
client2.closeScanner(scanner);
} catch (Exception e) {
throw new RuntimeException(e);
- } finally {
- if (proxyClient2 != null) {
- proxyClient2.close();
- }
}
});
t.start();
@@ -1246,18 +1238,11 @@ public abstract class SimpleProxyBase extends SharedMiniClusterBase {
// start a compaction
Thread t = new Thread(() -> {
- TestProxyClient proxyClient2 = null;
- try {
- proxyClient2 = new TestProxyClient(hostname, proxyPort, factory);
-
+ try (TestProxyClient proxyClient2 = new TestProxyClient(hostname, proxyPort, factory)) {
Client client2 = proxyClient2.proxy();
client2.compactTable(sharedSecret, "slow", null, null, null, true, true, null, null);
} catch (Exception e) {
throw new RuntimeException(e);
- } finally {
- if (proxyClient2 != null) {
- proxyClient2.close();
- }
}
});
t.start();
diff --git a/src/test/java/org/apache/accumulo/proxy/its/TestProxyClient.java b/src/test/java/org/apache/accumulo/proxy/its/TestProxyClient.java
index f3488a8..9fe5cc3 100644
--- a/src/test/java/org/apache/accumulo/proxy/its/TestProxyClient.java
+++ b/src/test/java/org/apache/accumulo/proxy/its/TestProxyClient.java
@@ -48,9 +48,9 @@ import org.apache.thrift.transport.layered.TFramedTransport;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-public class TestProxyClient {
+public class TestProxyClient implements AutoCloseable {
- protected TProtocolFactory factory;
+ protected TProtocolFactory tProtocolFactory;
protected TTransport transport;
public TestProxyClient(String host, int port) throws TTransportException {
@@ -62,7 +62,7 @@ public class TestProxyClient {
final TSocket socket = new TSocket(host, port);
socket.setTimeout(600000);
transport = new TFramedTransport(socket);
- factory = protoFactory;
+ tProtocolFactory = protoFactory;
transport.open();
}
@@ -77,7 +77,7 @@ public class TestProxyClient {
// UGI transport will perform the doAs for us
transport.open();
- factory = protoFactory;
+ tProtocolFactory = protoFactory;
}
public synchronized void close() {
@@ -88,9 +88,9 @@ public class TestProxyClient {
}
public AccumuloProxy.Client proxy() {
- AccumuloProxy.Client.Factory factory1 = new AccumuloProxy.Client.Factory();
- final TProtocol protocol = factory.getProtocol(transport);
- return factory1.getClient(protocol);
+ AccumuloProxy.Client.Factory proxyClientFactory = new AccumuloProxy.Client.Factory();
+ final TProtocol protocol = tProtocolFactory.getProtocol(transport);
+ return proxyClientFactory.getClient(protocol);
}
@SuppressFBWarnings(value = "HARD_CODE_PASSWORD", justification = "test password is okay")