diff --git a/dev-tools/checkstyle_suppressions.xml b/dev-tools/checkstyle_suppressions.xml index 0cb7222566e..011d4978eb0 100644 --- a/dev-tools/checkstyle_suppressions.xml +++ b/dev-tools/checkstyle_suppressions.xml @@ -9,7 +9,8 @@ - + + diff --git a/plugin/src/main/java/org/elasticsearch/xpack/sql/analysis/analyzer/Analyzer.java b/plugin/src/main/java/org/elasticsearch/xpack/sql/analysis/analyzer/Analyzer.java index 642e27d666d..dd9540027ca 100644 --- a/plugin/src/main/java/org/elasticsearch/xpack/sql/analysis/analyzer/Analyzer.java +++ b/plugin/src/main/java/org/elasticsearch/xpack/sql/analysis/analyzer/Analyzer.java @@ -968,21 +968,21 @@ public class Analyzer extends RuleExecutor { return f.name().equals(seenFunction.name()) && f.arguments().equals(seenFunction.arguments()); } } -} -abstract class AnalyzeRule extends Rule { + static abstract class AnalyzeRule extends Rule { - // transformUp (post-order) - that is first children and then the node - // but with a twist; only if the tree is not resolved or analyzed - @Override - public final LogicalPlan apply(LogicalPlan plan) { - return plan.transformUp(t -> t.analyzed() || (skipResolved() && t.resolved()) ? t : rule(t), typeToken()); - } + // transformUp (post-order) - that is first children and then the node + // but with a twist; only if the tree is not resolved or analyzed + @Override + public final LogicalPlan apply(LogicalPlan plan) { + return plan.transformUp(t -> t.analyzed() || (skipResolved() && t.resolved()) ? t : rule(t), typeToken()); + } - @Override - protected abstract LogicalPlan rule(SubPlan plan); + @Override + protected abstract LogicalPlan rule(SubPlan plan); - protected boolean skipResolved() { - return true; + protected boolean skipResolved() { + return true; + } } } \ No newline at end of file diff --git a/sql-clients/build.gradle b/sql-clients/build.gradle index 6b965709119..115df5e6c11 100644 --- a/sql-clients/build.gradle +++ b/sql-clients/build.gradle @@ -30,9 +30,6 @@ subprojects { testCompile "org.elasticsearch.test:framework:${version}" } - tasks.checkstyleMain.enabled = false // not worth it yet - tasks.checkstyleTest.enabled = false // not worth it yet - forbiddenApisMain { // does not depend on core, so only jdk and http signatures should be checked signaturesURLs = [PrecommitTasks.getResource('/forbidden/jdk-signatures.txt')] diff --git a/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/debug/DatabaseMetadataProxy.java b/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/debug/DatabaseMetadataProxy.java index b9f721fe36a..0c7cc0dcb4f 100644 --- a/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/debug/DatabaseMetadataProxy.java +++ b/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/debug/DatabaseMetadataProxy.java @@ -9,7 +9,7 @@ import java.sql.ResultSet; final class DatabaseMetadataProxy extends DebuggingInvoker { - public DatabaseMetadataProxy(DebugLog log, Object result, Object parent) { + DatabaseMetadataProxy(DebugLog log, Object result, Object parent) { super(log, result, parent); } diff --git a/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/debug/Debug.java b/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/debug/Debug.java index 65840e8a6ee..2b960202c7f 100644 --- a/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/debug/Debug.java +++ b/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/debug/Debug.java @@ -27,7 +27,6 @@ import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import java.util.HashMap; -import java.util.Locale; import java.util.Map; public final class Debug { diff --git a/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/jdbc/JdbcConnection.java b/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/jdbc/JdbcConnection.java index a28d599d8ca..9b0e5fa3b24 100644 --- a/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/jdbc/JdbcConnection.java +++ b/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/jdbc/JdbcConnection.java @@ -52,7 +52,7 @@ public class JdbcConnection implements Connection, JdbcWrapper { userName = connectionInfo.userName(); } - private final void checkOpen() throws SQLException { + private void checkOpen() throws SQLException { if (isClosed()) { throw new SQLException("Connection is closed"); } diff --git a/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/jdbc/JdbcDatabaseMetaData.java b/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/jdbc/JdbcDatabaseMetaData.java index 114a3a81105..b02d5012695 100644 --- a/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/jdbc/JdbcDatabaseMetaData.java +++ b/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/jdbc/JdbcDatabaseMetaData.java @@ -1209,36 +1209,36 @@ class JdbcDatabaseMetaData implements DatabaseMetaData, JdbcWrapper { private static ResultSet memorySet(List columns, Object[][] data) { return new JdbcResultSet(null, new InMemoryCursor(columns, data)); } -} -class InMemoryCursor implements Cursor { + static class InMemoryCursor implements Cursor { - private final List columns; - private final Object[][] data; + private final List columns; + private final Object[][] data; - private int row = -1; + private int row = -1; - InMemoryCursor(List info, Object[][] data) { - this.columns = info; - this.data = data; - } - - @Override - public List columns() { - return columns; - } - - @Override - public boolean next() { - if (!ObjectUtils.isEmpty(data) && row < data.length - 1) { - row++; - return true; + InMemoryCursor(List info, Object[][] data) { + this.columns = info; + this.data = data; } - return false; - } - @Override - public Object column(int column) { - return data[row][column]; + @Override + public List columns() { + return columns; + } + + @Override + public boolean next() { + if (!ObjectUtils.isEmpty(data) && row < data.length - 1) { + row++; + return true; + } + return false; + } + + @Override + public Object column(int column) { + return data[row][column]; + } } } \ No newline at end of file diff --git a/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/jdbc/JdbcResultSetMetaData.java b/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/jdbc/JdbcResultSetMetaData.java index 60334469c2a..7ea9bccc49f 100644 --- a/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/jdbc/JdbcResultSetMetaData.java +++ b/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/jdbc/JdbcResultSetMetaData.java @@ -146,7 +146,7 @@ class JdbcResultSetMetaData implements ResultSetMetaData, JdbcWrapper { } } - private final ColumnInfo column(int column) throws SQLException { + private ColumnInfo column(int column) throws SQLException { checkOpen(); if (column < 1 || column > columns.size()) { throw new SQLException("Invalid column index [" + column + "]"); diff --git a/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/jdbc/TypeConverter.java b/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/jdbc/TypeConverter.java index 4deb468d7cf..b0b0fcc1b94 100644 --- a/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/jdbc/TypeConverter.java +++ b/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/jdbc/TypeConverter.java @@ -21,9 +21,33 @@ import java.util.TimeZone; import java.util.function.Function; import static java.lang.String.format; -import static java.sql.Types.*; +import static java.sql.Types.BIGINT; +import static java.sql.Types.BINARY; +import static java.sql.Types.BIT; +import static java.sql.Types.BOOLEAN; +import static java.sql.Types.CHAR; import static java.sql.Types.DATE; -import static java.util.Calendar.*; +import static java.sql.Types.DOUBLE; +import static java.sql.Types.FLOAT; +import static java.sql.Types.INTEGER; +import static java.sql.Types.LONGVARBINARY; +import static java.sql.Types.LONGVARCHAR; +import static java.sql.Types.REAL; +import static java.sql.Types.SMALLINT; +import static java.sql.Types.TIME; +import static java.sql.Types.TIMESTAMP; +import static java.sql.Types.TIMESTAMP_WITH_TIMEZONE; +import static java.sql.Types.TINYINT; +import static java.sql.Types.VARBINARY; +import static java.sql.Types.VARCHAR; +import static java.util.Calendar.DAY_OF_MONTH; +import static java.util.Calendar.ERA; +import static java.util.Calendar.HOUR_OF_DAY; +import static java.util.Calendar.MILLISECOND; +import static java.util.Calendar.MINUTE; +import static java.util.Calendar.MONTH; +import static java.util.Calendar.SECOND; +import static java.util.Calendar.YEAR; abstract class TypeConverter { diff --git a/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/net/client/DefaultCursor.java b/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/net/client/DefaultCursor.java index 9d2dc3f9715..c0229a3ba42 100644 --- a/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/net/client/DefaultCursor.java +++ b/sql-clients/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/net/client/DefaultCursor.java @@ -27,7 +27,7 @@ class DefaultCursor implements Cursor { this.page = page; } - private static final String simplifyScrollId(String scrollId) { + private static String simplifyScrollId(String scrollId) { return StringUtils.hasText(scrollId) ? scrollId : null; } diff --git a/sql-clients/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/integration/query/QuerySuite.java b/sql-clients/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/integration/query/QuerySuite.java index 0764aaedd36..59380884916 100644 --- a/sql-clients/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/integration/query/QuerySuite.java +++ b/sql-clients/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/integration/query/QuerySuite.java @@ -6,8 +6,10 @@ package org.elasticsearch.xpack.sql.jdbc.integration.query; import java.sql.Connection; +import java.sql.SQLException; import java.util.function.Supplier; +import org.elasticsearch.common.CheckedSupplier; import org.elasticsearch.xpack.sql.jdbc.integration.query.filter.FilterSpecTests; import org.elasticsearch.xpack.sql.jdbc.integration.query.function.aggregate.AggSpecTests; import org.elasticsearch.xpack.sql.jdbc.integration.query.function.scalar.datetime.DateTimeSpecTests; @@ -69,11 +71,11 @@ public class QuerySuite { EsDataLoader.loadData(); } - public static Supplier h2Con() { + public static CheckedSupplier h2Con() { return H2; } - public static Supplier esCon() { + public static CheckedSupplier esCon() { return ES_JDBC_SERVER; } diff --git a/sql-clients/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/integration/util/EsJdbcServer.java b/sql-clients/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/integration/util/EsJdbcServer.java index 0f2a2c6501c..a55c65bd8a0 100644 --- a/sql-clients/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/integration/util/EsJdbcServer.java +++ b/sql-clients/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/integration/util/EsJdbcServer.java @@ -6,8 +6,8 @@ package org.elasticsearch.xpack.sql.jdbc.integration.util; import org.elasticsearch.client.Client; +import org.elasticsearch.common.CheckedSupplier; import org.elasticsearch.xpack.sql.jdbc.integration.server.JdbcHttpServer; -import org.elasticsearch.xpack.sql.jdbc.integration.util.JdbcTemplate.JdbcSupplier; import org.elasticsearch.xpack.sql.jdbc.jdbc.JdbcDriver; import org.junit.rules.ExternalResource; @@ -17,7 +17,7 @@ import java.util.Properties; import static org.junit.Assert.assertNotNull; -public class EsJdbcServer extends ExternalResource implements JdbcSupplier { +public class EsJdbcServer extends ExternalResource implements CheckedSupplier { private JdbcHttpServer server; private String jdbcUrl; private JdbcDriver driver; @@ -53,7 +53,8 @@ public class EsJdbcServer extends ExternalResource implements JdbcSupplier { +public class H2 extends ExternalResource implements CheckedSupplier { static { try { Class.forName("org.h2.Driver"); @@ -40,7 +40,7 @@ public class H2 extends ExternalResource implements JdbcSupplier { @Override protected void before() throws Throwable { - keepAlive = jdbc(); + keepAlive = get(); } @Override @@ -53,7 +53,8 @@ public class H2 extends ExternalResource implements JdbcSupplier { keepAlive = null; } - public Connection jdbc() throws SQLException { + @Override + public Connection get() throws SQLException { return DriverManager.getConnection(url, DEFAULT_PROPS); } } \ No newline at end of file diff --git a/sql-clients/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/integration/util/JdbcTemplate.java b/sql-clients/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/integration/util/JdbcTemplate.java index 90915d9e86e..38ffb72599a 100644 --- a/sql-clients/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/integration/util/JdbcTemplate.java +++ b/sql-clients/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/integration/util/JdbcTemplate.java @@ -7,6 +7,7 @@ package org.elasticsearch.xpack.sql.jdbc.integration.util; import org.elasticsearch.common.CheckedConsumer; import org.elasticsearch.common.CheckedFunction; +import org.elasticsearch.common.CheckedSupplier; import org.elasticsearch.xpack.sql.net.client.SuppressForbidden; import java.sql.Connection; @@ -19,33 +20,17 @@ import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.function.Supplier; // poor's man JdbcTemplate public class JdbcTemplate { + private static final int MAX_WIDTH = 20; - private final Supplier conn; + private final CheckedSupplier conn; - public JdbcTemplate(JdbcSupplier conn) { + public JdbcTemplate(CheckedSupplier conn) { this.conn = conn; } - public static interface JdbcSupplier extends Supplier { - - @Override - default T get() { - try { - return jdbc(); - } catch (SQLException ex) { - throw new RuntimeException(ex); - } - } - - T jdbc() throws SQLException; - } - - private static final int MAX_WIDTH = 20; - @SuppressForbidden(reason="temporary") public static CheckedFunction resultSetToConsole() { // NOCOMMIT this doesn't really test anything. If we want to log the whole result set we can do that too, but we have to add assertions diff --git a/sql-clients/test-utils/src/main/java/org/elasticsearch/xpack/sql/test/server/ProtoHandler.java b/sql-clients/test-utils/src/main/java/org/elasticsearch/xpack/sql/test/server/ProtoHandler.java index c73a671fe34..5c6ede15891 100644 --- a/sql-clients/test-utils/src/main/java/org/elasticsearch/xpack/sql/test/server/ProtoHandler.java +++ b/sql-clients/test-utils/src/main/java/org/elasticsearch/xpack/sql/test/server/ProtoHandler.java @@ -23,7 +23,7 @@ import com.sun.net.httpserver.HttpHandler; public abstract class ProtoHandler implements HttpHandler, AutoCloseable { - protected final static Logger log = ESLoggerFactory.getLogger(ProtoHandler.class.getName()); + protected static final Logger log = ESLoggerFactory.getLogger(ProtoHandler.class.getName()); private final TimeValue TV = TimeValue.timeValueSeconds(5); protected final NodeInfo info; protected final String clusterName;