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/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..1538bc0 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 unzipped 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 + + + + + + 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 + + + + 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; }