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;
}