From eec5793f11e97dea40deaed90db30c1819e69add Mon Sep 17 00:00:00 2001 From: Luke Date: Wed, 22 Nov 2023 20:11:19 -0600 Subject: [PATCH 1/3] batch files fix and binary distribution build support --- bin/initdb.bat | 8 +++-- bin/sqlited.bat | 8 ++--- bin/startup.bat | 8 ++--- docs/Build.md | 8 +++-- pom.xml | 94 ++++++++++++++++++++++++++++++++++++++++++------- 5 files changed, 101 insertions(+), 25 deletions(-) diff --git a/bin/initdb.bat b/bin/initdb.bat index c9294ac..3c0173a 100644 --- a/bin/initdb.bat +++ b/bin/initdb.bat @@ -22,9 +22,13 @@ setlocal set JAVA_OPTS=-Xmx64m -rem Guess SQLITED_HOME if not defined +rem set SQLITED_HOME set "CURRENT_DIR=%cd%" -set "SQLITED_HOME=%CURRENT_DIR%" +cd /d %~dp0 +cd .. +set "SQLITED_HOME=%cd%" +cd /d %CURRENT_DIR% + if exist "%SQLITED_HOME%\bin\sqlited.bat" goto okHome cd .. set "SQLITED_HOME=%cd%" diff --git a/bin/sqlited.bat b/bin/sqlited.bat index 5831d87..205a0b2 100644 --- a/bin/sqlited.bat +++ b/bin/sqlited.bat @@ -20,13 +20,13 @@ rem Sqlited script for the SQLite Server rem --------------------------------------------------------------------------- setlocal -rem Guess SQLITED_HOME if not defined +rem set SQLITED_HOME set "CURRENT_DIR=%cd%" -set "SQLITED_HOME=%CURRENT_DIR%" -if exist "%SQLITED_HOME%\bin\sqlited.bat" goto okHome +cd /d %~dp0 cd .. set "SQLITED_HOME=%cd%" -cd /d "%CURRENT_DIR%" +cd /d %CURRENT_DIR% + if exist "%SQLITED_HOME%\bin\sqlited.bat" goto okHome echo The SQLITED_HOME environment variable is not defined correctly echo This environment variable is needed to run this program diff --git a/bin/startup.bat b/bin/startup.bat index 9be210e..ebc339a 100644 --- a/bin/startup.bat +++ b/bin/startup.bat @@ -22,13 +22,13 @@ setlocal set JAVA_OPTS=-Xmx256m -rem Guess SQLITED_HOME if not defined +rem set SQLITED_HOME set "CURRENT_DIR=%cd%" -set "SQLITED_HOME=%CURRENT_DIR%" -if exist "%SQLITED_HOME%\bin\sqlited.bat" goto okHome +cd /d %~dp0 cd .. set "SQLITED_HOME=%cd%" -cd /d "%CURRENT_DIR%" +cd /d %CURRENT_DIR% + if exist "%SQLITED_HOME%\bin\sqlited.bat" goto okHome echo The SQLITED_HOME environment variable is not defined correctly echo This environment variable is needed to run this program diff --git a/docs/Build.md b/docs/Build.md index 77c137f..5c240ce 100644 --- a/docs/Build.md +++ b/docs/Build.md @@ -3,7 +3,11 @@ Require OracleJDK or openJDK 7+, Apache Maven 3.6.1+, and modern OS such as Cent macOS 10.13.x, or Windows 8.1 above. First we must set the JAVA_HOME environment variable, then add MAVEN_HOME/bin append to PATH. -## Build on CentOS 7 +## Build binary distribution with maven +mvn clean package +The zip file can be found under target directory + +## Build on CentOS 7 with source ```bash tar -xzvf ./sqlited-x.y.z.tar.gz cd sqlite-server-sqlited-x.y.z @@ -11,7 +15,7 @@ chmod +x bin/*.sh ./bin/build.sh clean test jar ``` -## Build on Windows 8.1 +## Build on Windows with source ```shell cd sqlite-server-sqlited-x.y.z .\bin\build.bat clean test jar diff --git a/pom.xml b/pom.xml index 40fae79..a5ead27 100644 --- a/pom.xml +++ b/pom.xml @@ -34,20 +34,88 @@ 3.30.1 UTF-8 - + - - - org.apache.maven.plugins - maven-jar-plugin - 3.0.2 - - - logback.xml - - - - + + ${project.artifactId}-${project.version}-bin + + + + org.apache.maven.plugins + maven-jar-plugin + 3.0.2 + + + logback.xml + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.2.0 + + + copy-dependencies + prepare-package + + copy-dependencies + + + ${project.build.directory}/lib + + + + + + + org.apache.maven.plugins + maven-resources-plugin + 3.2.0 + + + copy-resources + package + + copy-resources + + + ${project.build.directory}/lib + + + ${project.build.directory} + + *.jar + + + + + + + + + + maven-assembly-plugin + 3.3.0 + + false + + src/main/assembly/bin.xml + + + + + make-assembly + package + + single + + + + + + From 8754c5e9a1a733c133363e227eef91b78c15aa49 Mon Sep 17 00:00:00 2001 From: Luke Date: Fri, 24 Nov 2023 01:00:10 -0600 Subject: [PATCH 2/3] add missed assembly/bin.xml and fix assembly output file name. --- src/main/assembly/bin.xml | 55 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/main/assembly/bin.xml diff --git a/src/main/assembly/bin.xml b/src/main/assembly/bin.xml new file mode 100644 index 0000000..355f1ef --- /dev/null +++ b/src/main/assembly/bin.xml @@ -0,0 +1,55 @@ + + zip + + zip + + false + + + ${project.build.directory}/lib + /lib + + sqlite-server-*.jar + sqlite-jdbc-*.jar + slf4j-api-*.jar + logback-core-*.jar + logback-classic-*.jar + + + + ${project.basedir}/bin + /bin + + **/build.* + + + + ${project.basedir}/conf + /conf + + **/* + + + + ${project.basedir}/docs + /docs + + **/* + + + + ${project.basedir} + / + + LICENSE + + + + ${project.basedir} + / + + README.md + + + + From 754dcafa0eed373395a8d33335a5df842925a95c Mon Sep 17 00:00:00 2001 From: Luke Date: Fri, 24 Nov 2023 01:54:26 -0600 Subject: [PATCH 3/3] Fix compiler warnings by using authenticate() rather than equals() --- .gitignore | 1 + docs/Build.md | 2 +- src/main/java/org/sqlite/server/SQLiteAuthMethod.java | 3 +-- src/main/java/org/sqlite/server/pg/CleartextPassword.java | 3 +-- src/main/java/org/sqlite/server/pg/MD5Password.java | 5 ++--- src/main/java/org/sqlite/server/pg/PgProcessor.java | 5 +++-- src/main/java/org/sqlite/server/pg/TrustAuthMethod.java | 3 +-- 7 files changed, 10 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index be28b99..616aac8 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ /*.zip /temp/ /test-lib/ +**/*.class diff --git a/docs/Build.md b/docs/Build.md index 5c240ce..1538bc0 100644 --- a/docs/Build.md +++ b/docs/Build.md @@ -15,7 +15,7 @@ chmod +x bin/*.sh ./bin/build.sh clean test jar ``` -## Build on Windows with source +## Build on Windows with unzipped source ```shell cd sqlite-server-sqlited-x.y.z .\bin\build.bat clean test jar diff --git a/src/main/java/org/sqlite/server/SQLiteAuthMethod.java b/src/main/java/org/sqlite/server/SQLiteAuthMethod.java index 9a897f5..eb7e91d 100644 --- a/src/main/java/org/sqlite/server/SQLiteAuthMethod.java +++ b/src/main/java/org/sqlite/server/SQLiteAuthMethod.java @@ -58,7 +58,6 @@ public void init(String user, String storePassword) { public abstract String getName(); - @Override - public abstract boolean equals(Object o); + public abstract boolean authenticate(Object o); } diff --git a/src/main/java/org/sqlite/server/pg/CleartextPassword.java b/src/main/java/org/sqlite/server/pg/CleartextPassword.java index 5158003..52ee04e 100644 --- a/src/main/java/org/sqlite/server/pg/CleartextPassword.java +++ b/src/main/java/org/sqlite/server/pg/CleartextPassword.java @@ -36,8 +36,7 @@ public byte[] encode() { return ConvertUtils.hexBytes(this.storePassword); } - @Override - public boolean equals(Object o) { + public boolean authenticate(Object o) { if (this == o) { return true; } diff --git a/src/main/java/org/sqlite/server/pg/MD5Password.java b/src/main/java/org/sqlite/server/pg/MD5Password.java index 794497b..1068e51 100644 --- a/src/main/java/org/sqlite/server/pg/MD5Password.java +++ b/src/main/java/org/sqlite/server/pg/MD5Password.java @@ -84,8 +84,7 @@ public byte[] encode() { } } - @Override - public boolean equals(Object o) { + public boolean authenticate(Object o) { if (this == o) { return true; } @@ -104,7 +103,7 @@ public boolean equals(Object o) { String md5s = (String)o; try { byte[] md5 = md5s.getBytes(ENCODING); - return (equals(md5)); + return (Arrays.equals(encode(), md5)); } catch (UnsupportedEncodingException e) { return false; } diff --git a/src/main/java/org/sqlite/server/pg/PgProcessor.java b/src/main/java/org/sqlite/server/pg/PgProcessor.java index 7ffcdde..5c96cea 100644 --- a/src/main/java/org/sqlite/server/pg/PgProcessor.java +++ b/src/main/java/org/sqlite/server/pg/PgProcessor.java @@ -206,7 +206,7 @@ private static void checkParamLength(int expected, int got) throws IOException { } } - @Override + protected void process() throws IOException { PgServer server = getServer(); SQLiteWorker worker = this.worker; @@ -382,7 +382,7 @@ protected void process() throws IOException { this.needFlush = true; String password = readString(); - if (!this.authMethod.equals(password)) { + if (!this.authMethod.authenticate(password)) { sendErrorAuth(); break; } @@ -606,6 +606,7 @@ protected void process() throws IOException { break; } default: + // TODO: This should be an error condition, should fail and fix for unknown message from normal use server.trace(log, "Unsupported message: type {}(c) {}", (char) x, x); break; } diff --git a/src/main/java/org/sqlite/server/pg/TrustAuthMethod.java b/src/main/java/org/sqlite/server/pg/TrustAuthMethod.java index ed6e17b..e4ceb3b 100644 --- a/src/main/java/org/sqlite/server/pg/TrustAuthMethod.java +++ b/src/main/java/org/sqlite/server/pg/TrustAuthMethod.java @@ -39,8 +39,7 @@ public String genStorePassword(String user, String password) { return null; } - @Override - public boolean equals(Object o) { + public boolean authenticate(Object o) { return true; }