diff --git a/basic_example/src/main/java/tech/ydb/example/App.java b/basic_example/src/main/java/tech/ydb/example/App.java index 73d3812..72cefcc 100644 --- a/basic_example/src/main/java/tech/ydb/example/App.java +++ b/basic_example/src/main/java/tech/ydb/example/App.java @@ -13,6 +13,7 @@ import tech.ydb.auth.iam.CloudAuthHelper; import tech.ydb.core.Status; +import tech.ydb.core.grpc.GrpcReadStream; import tech.ydb.core.grpc.GrpcTransport; import tech.ydb.table.SessionRetryContext; import tech.ydb.table.TableClient; @@ -206,7 +207,7 @@ private void upsertSimple() { + "VALUES (2, 6, 1, \"TBD\");"; // Begin new transaction with SerializableRW mode - TxControl txControl = TxControl.serializableRw().setCommitTx(true); + TxControl txControl = TxControl.serializableRw().setCommitTx(true); // Executes data query with specified transaction control settings. retryCtx.supplyResult(session -> session.executeDataQuery(query, txControl)) @@ -219,7 +220,7 @@ private void selectSimple() { + "FROM series WHERE series_id = 1;"; // Begin new transaction with SerializableRW mode - TxControl txControl = TxControl.serializableRw().setCommitTx(true); + TxControl txControl = TxControl.serializableRw().setCommitTx(true); // Executes data query with specified transaction control settings. DataQueryResult result = retryCtx.supplyResult(session -> session.executeDataQuery(query, txControl)) @@ -246,7 +247,7 @@ private void selectWithParams(long seriesID, long seasonID) { + "WHERE sa.series_id = $seriesId AND sa.season_id = $seasonId"; // Begin new transaction with SerializableRW mode - TxControl txControl = TxControl.serializableRw().setCommitTx(true); + TxControl txControl = TxControl.serializableRw().setCommitTx(true); // Type of parameter values should be exactly the same as in DECLARE statements. Params params = Params.of( @@ -287,7 +288,8 @@ private void scanQueryWithParams(long seriesID, long seasonID) { logger.info("--[ ExecuteScanQueryWithParams ]--"); retryCtx.supplyStatus(session -> { ExecuteScanQuerySettings settings = ExecuteScanQuerySettings.newBuilder().build(); - return session.executeScanQuery(query, params, settings, rs -> { + GrpcReadStream scan = session.executeScanQuery(query, params, settings); + return scan.start(rs -> { while (rs.next()) { logger.info("read episode {} of {} for {}", rs.getColumn("episode_title").getText(), @@ -310,7 +312,7 @@ private void multiStepTransaction(long seriesID, long seasonID) { // Execute first query to get the required values to the client. // Transaction control settings don't set CommitTx flag to keep transaction active // after query execution. - TxControl tx1 = TxControl.serializableRw().setCommitTx(false); + TxControl tx1 = TxControl.serializableRw().setCommitTx(false); DataQueryResult res1 = session.executeDataQuery(query1, tx1, Params.of( "$seriesId", PrimitiveValue.newUint64(seriesID), "$seasonId", PrimitiveValue.newUint64(seasonID) @@ -338,7 +340,7 @@ private void multiStepTransaction(long seriesID, long seasonID) { // Execute second query. // Transaction control settings continues active transaction (tx) and // commits it at the end of second query execution. - TxControl tx2 = TxControl.id(txId).setCommitTx(true); + TxControl tx2 = TxControl.id(txId).setCommitTx(true); DataQueryResult res2 = session.executeDataQuery(query2, tx2, Params.of( "$seriesId", PrimitiveValue.newUint64(seriesID), "$fromDate", PrimitiveValue.newDate(fromDate), @@ -371,7 +373,7 @@ private void tclTransaction() { // Execute data query. // Transaction control settings continues active transaction (tx) - TxControl txControl = TxControl.id(transaction).setCommitTx(false); + TxControl txControl = TxControl.id(transaction).setCommitTx(false); DataQueryResult result = session.executeDataQuery(query, txControl, params) .join().getValue(); diff --git a/pom.xml b/pom.xml index 516a078..3dd4158 100644 --- a/pom.xml +++ b/pom.xml @@ -14,13 +14,11 @@ UTF-8 - 1.8 - 1.8 - 2.17.1 - 1.81 + 2.20.0 + 1.82 - 2.1.0-SNAPSHOT + 2.1.0 @@ -53,6 +51,11 @@ ${log4j.version} + + org.apache.logging.log4j + log4j-slf4j2-impl + ${log4j.version} + @@ -62,7 +65,17 @@ org.apache.maven.plugins maven-compiler-plugin - 3.10.0 + 3.11.0 + + 1.8 + 1.8 + + -Xlint + + -Xlint:-processing + + org.apache.maven.plugins @@ -94,9 +107,29 @@ org.apache.maven.plugins maven-jar-plugin - 3.2.2 + 3.3.0 + + + + jdk8-bootstrap + + [9 + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + + + + + + diff --git a/secondary_index/src/main/java/tech/ydb/examples/indexes/Application.java b/secondary_index/src/main/java/tech/ydb/examples/indexes/Application.java index 48f7566..1eacf6b 100644 --- a/secondary_index/src/main/java/tech/ydb/examples/indexes/Application.java +++ b/secondary_index/src/main/java/tech/ydb/examples/indexes/Application.java @@ -1,6 +1,5 @@ package tech.ydb.examples.indexes; -import java.time.Duration; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -42,7 +41,6 @@ GrpcTransport grpcTransport(IndexesConfigurationProperties properties, ExecutorS } logger.info("Creating rpc transport for endpoint={} database={}", endpoint, database); GrpcTransportBuilder builder = GrpcTransport.forEndpoint(endpoint, database) - .withReadTimeout(Duration.ofSeconds(10)) .withCallExecutor(grpcExecutor); if (token != null && !token.isEmpty()) { builder.withAuthProvider(new TokenAuthProvider(token)); diff --git a/url-shortener-demo/pom.xml b/url-shortener-demo/pom.xml index 7537d2e..4b51b88 100644 --- a/url-shortener-demo/pom.xml +++ b/url-shortener-demo/pom.xml @@ -14,7 +14,7 @@ Demo application of usage Java SDK for YDB - 9.4.45.v20220203 + 10.0.14 2.9.0 @@ -45,7 +45,7 @@ org.apache.logging.log4j - log4j-slf4j-impl + log4j-slf4j2-impl @@ -74,4 +74,16 @@ + + + + jdk8-jetty-downgrade + + 1.8 + + + 9.4.45.v20220203 + + + diff --git a/url-shortener-demo/src/main/java/tech/ydb/demo/Application.java b/url-shortener-demo/src/main/java/tech/ydb/demo/Application.java index 2151297..27f6258 100644 --- a/url-shortener-demo/src/main/java/tech/ydb/demo/Application.java +++ b/url-shortener-demo/src/main/java/tech/ydb/demo/Application.java @@ -7,13 +7,7 @@ import java.net.URL; import java.nio.file.Files; import java.nio.file.Paths; -import java.time.Duration; -import tech.ydb.core.grpc.GrpcTransport; -import tech.ydb.demo.rest.RedirectServlet; -import tech.ydb.demo.rest.URLServlet; -import tech.ydb.demo.ydb.YdbDriver; -import tech.ydb.demo.ydb.YdbRepository; import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; @@ -22,7 +16,13 @@ import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + +import tech.ydb.core.grpc.GrpcTransport; import tech.ydb.core.grpc.GrpcTransportBuilder; +import tech.ydb.demo.rest.RedirectServlet; +import tech.ydb.demo.rest.URLServlet; +import tech.ydb.demo.ydb.YdbDriver; +import tech.ydb.demo.ydb.YdbRepository; /** * @@ -90,8 +90,7 @@ private GrpcTransport createGrpcTransport(AppParams prms) throws IOException { String database = prms.database(); log.info("Creating rpc transport for endpoint={} database={}", endpoint, database); - GrpcTransportBuilder builder = GrpcTransport.forEndpoint(endpoint, database) - .withReadTimeout(Duration.ofSeconds(10)); + GrpcTransportBuilder builder = GrpcTransport.forEndpoint(endpoint, database); if (prms.certPath() != null) { builder.withSecureConnection(Files.readAllBytes(Paths.get(prms.certPath()))); diff --git a/url-shortener-demo/src/main/java/tech/ydb/demo/rest/RedirectServlet.java b/url-shortener-demo/src/main/java/tech/ydb/demo/rest/RedirectServlet.java index 774929b..43fba20 100644 --- a/url-shortener-demo/src/main/java/tech/ydb/demo/rest/RedirectServlet.java +++ b/url-shortener-demo/src/main/java/tech/ydb/demo/rest/RedirectServlet.java @@ -7,18 +7,21 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.eclipse.jetty.servlet.DefaultServlet; + import tech.ydb.demo.Application; import tech.ydb.demo.ydb.HashTool; import tech.ydb.demo.ydb.UrlRecord; import tech.ydb.demo.ydb.YdbException; import tech.ydb.demo.ydb.YdbRepository; -import org.eclipse.jetty.servlet.DefaultServlet; /** * * @author Alexandr Gorshenin */ public class RedirectServlet extends DefaultServlet { + private static final long serialVersionUID = -3978776572966824296L; + private YdbRepository repository() { return new YdbRepository(Application.ydp()); } diff --git a/url-shortener-demo/src/main/java/tech/ydb/demo/rest/URLServlet.java b/url-shortener-demo/src/main/java/tech/ydb/demo/rest/URLServlet.java index f40b63e..868566d 100644 --- a/url-shortener-demo/src/main/java/tech/ydb/demo/rest/URLServlet.java +++ b/url-shortener-demo/src/main/java/tech/ydb/demo/rest/URLServlet.java @@ -11,6 +11,7 @@ import com.google.gson.JsonElement; import com.google.gson.JsonParser; import com.google.gson.stream.JsonWriter; + import tech.ydb.demo.Application; import tech.ydb.demo.ydb.UrlRecord; import tech.ydb.demo.ydb.YdbException; @@ -21,6 +22,7 @@ * @author Alexandr Gorshenin */ public class URLServlet extends HttpServlet { + private static final long serialVersionUID = -1410806003624620851L; private YdbRepository repository() { return new YdbRepository(Application.ydp()); diff --git a/url-shortener-demo/src/main/java/tech/ydb/demo/ydb/YdbException.java b/url-shortener-demo/src/main/java/tech/ydb/demo/ydb/YdbException.java index fe2f75c..080a468 100644 --- a/url-shortener-demo/src/main/java/tech/ydb/demo/ydb/YdbException.java +++ b/url-shortener-demo/src/main/java/tech/ydb/demo/ydb/YdbException.java @@ -5,6 +5,8 @@ * @author Alexandr Gorshenin */ public class YdbException extends Exception { + private static final long serialVersionUID = -720473130272982493L; + public YdbException(String message, Throwable reason) { super(message, reason); } diff --git a/url-shortener-demo/src/main/java/tech/ydb/demo/ydb/YdbRepository.java b/url-shortener-demo/src/main/java/tech/ydb/demo/ydb/YdbRepository.java index 161b771..2283414 100644 --- a/url-shortener-demo/src/main/java/tech/ydb/demo/ydb/YdbRepository.java +++ b/url-shortener-demo/src/main/java/tech/ydb/demo/ydb/YdbRepository.java @@ -2,6 +2,9 @@ import java.util.Optional; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import tech.ydb.core.Status; import tech.ydb.core.UnexpectedResultException; import tech.ydb.table.description.TableDescription; @@ -11,8 +14,6 @@ import tech.ydb.table.transaction.TxControl; import tech.ydb.table.values.PrimitiveType; import tech.ydb.table.values.PrimitiveValue; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * @@ -67,7 +68,7 @@ public void insertRecord(UrlRecord record) throws YdbException { "$hash", PrimitiveValue.newText(record.hash()) ); - TxControl txControl = TxControl.serializableRw().setCommitTx(true); + TxControl txControl = TxControl.serializableRw().setCommitTx(true); driver.retryCtx() .supplyResult(session -> session.executeDataQuery(query, txControl, params)) @@ -88,7 +89,7 @@ public Optional findByHash(String hash) throws YdbException { "$hash", PrimitiveValue.newText(hash) ); - TxControl txControl = TxControl.serializableRw(); + TxControl txControl = TxControl.serializableRw(); DataQueryResult result = driver.retryCtx() .supplyResult(session -> session.executeDataQuery(query, txControl, params)) diff --git a/ydb-cookbook/src/main/java/tech/ydb/examples/batch_upload/BatchUpload.java b/ydb-cookbook/src/main/java/tech/ydb/examples/batch_upload/BatchUpload.java index b88dc63..3fb54e1 100644 --- a/ydb-cookbook/src/main/java/tech/ydb/examples/batch_upload/BatchUpload.java +++ b/ydb-cookbook/src/main/java/tech/ydb/examples/batch_upload/BatchUpload.java @@ -106,7 +106,7 @@ private void executeBatch(String query, ArrayList> pack) { Params params = Params.of("$items", ListValue.of(values)); - TxControl txControl = TxControl.serializableRw().setCommitTx(true); + TxControl txControl = TxControl.serializableRw().setCommitTx(true); retryCtx .supplyResult(session -> session.executeDataQuery(query, txControl, params)) .join().getStatus().expectSuccess("expected success result"); diff --git a/ydb-cookbook/src/main/java/tech/ydb/examples/pagination/PaginationApp.java b/ydb-cookbook/src/main/java/tech/ydb/examples/pagination/PaginationApp.java index 5d4d796..20e7431 100644 --- a/ydb-cookbook/src/main/java/tech/ydb/examples/pagination/PaginationApp.java +++ b/ydb-cookbook/src/main/java/tech/ydb/examples/pagination/PaginationApp.java @@ -5,7 +5,6 @@ import java.util.List; import tech.ydb.core.grpc.GrpcTransport; - import tech.ydb.examples.App; import tech.ydb.examples.AppRunner; import tech.ydb.examples.pagination.model.School; @@ -131,7 +130,7 @@ private void fillTableDataTransaction() { path); Params params = Params.of("$schoolsData", PaginationData.SCHOOL_DATA); - TxControl txControl = TxControl.serializableRw().setCommitTx(true); + TxControl txControl = TxControl.serializableRw().setCommitTx(true); session.executeDataQuery(query, txControl, params) .join() @@ -173,7 +172,7 @@ private List selectPaging(long limit, School.Key lastSchool) { "$lastCity", PrimitiveValue.newText(lastSchool.getCity()), "$lastNumber", PrimitiveValue.newUint32(lastSchool.getNumber())); - TxControl txControl = TxControl.serializableRw().setCommitTx(true); + TxControl txControl = TxControl.serializableRw().setCommitTx(true); DataQueryResult result = session.executeDataQuery(query, txControl, params) .join() diff --git a/ydb-cookbook/src/main/java/tech/ydb/examples/simple/ReadTableExample.java b/ydb-cookbook/src/main/java/tech/ydb/examples/simple/ReadTableExample.java index 2ebf848..f406acd 100644 --- a/ydb-cookbook/src/main/java/tech/ydb/examples/simple/ReadTableExample.java +++ b/ydb-cookbook/src/main/java/tech/ydb/examples/simple/ReadTableExample.java @@ -37,7 +37,7 @@ private void readTable(Session session, String tablePath) { .toKeyExclusive(PrimitiveValue.newUint32(25)) .build(); - session.readTable(tablePath, settings, resultSet -> { + session.readTable(tablePath, settings).start(resultSet -> { // we are going to read a lot of data, so map column names to indexes // outside of the loop to avoid overhead on each loop iteration int keyIdx = resultSet.getColumnIndex("key"); diff --git a/ydb-cookbook/src/main/java/tech/ydb/examples/simple/RetryExample.java b/ydb-cookbook/src/main/java/tech/ydb/examples/simple/RetryExample.java index 8847927..f045b03 100644 --- a/ydb-cookbook/src/main/java/tech/ydb/examples/simple/RetryExample.java +++ b/ydb-cookbook/src/main/java/tech/ydb/examples/simple/RetryExample.java @@ -27,7 +27,7 @@ protected void run(GrpcTransport transport, String pathPrefix) { .build(); Result result = ctx.supplyResult(session -> { - TxControl txControl = TxControl.serializableRw() + TxControl txControl = TxControl.serializableRw() .setCommitTx(true); return session.executeDataQuery("SELECT 1 + 2;", txControl); }).join();