- Update to 2.2.9

* new core fully multithreaded core supports 2PL (two-phased locking)
    and MVCC (multiversion concurrency control), plus a hybrid 2PL+MVCC
    transaction control mode
  * Massive high performance LOB store for BLOBs and CLOBs up to multi-gigabyte
    size, with total storage capacity of 64 terabytes.
  * Increased default storage space of 16GB for ordinary data, with fast
    startup and shutdown. Storage space can be extended to 2TB.
  * Large result sets, views and subqueries can now be stored on disk (on the
    server side) while being generated and accessed. The threshold to store
    a result on disk, as well as the actual fetch size in client-server
    configurations can be specified per connection.
  * All query conditions, whether in a JOIN or WHERE clause, are now
    allocated to an index if possible.
  * HyperSQL supports schema-based stored procedures and functions written
    entirely in SQL and JAVA.
  * Support for BIT, BIT VARYING, CLOB, BLOB, INTERVAL according to the
    SQL Standards
  * and many more - see http://hsqldb.sourceforge.net/web/features200.html
- Dropped patches
  * hsqldb-1.8.0-scripts.patch
  * hsqldb-1.8.0.10-suse-initscript.patch
  * hsqldb-jdbc-4.1.patch
  * hsqldb-tmp.patch
- New patches
  * hsqldb-apidocs.patch
  * hsqldb-cmdline.patch
- systemd integration and drop init script

OBS-URL: https://build.opensuse.org/package/show/Java:packages/hsqldb?expand=0&rev=11
This commit is contained in:
Michal Vyskocil 2013-09-04 12:48:43 +00:00 committed by Git OBS Bridge
parent 3d43b7542b
commit 905c2c92bc
16 changed files with 462 additions and 1018 deletions

View File

@ -1,20 +0,0 @@
--- bin/runUtil.sh
+++ bin/runUtil.sh
@@ -31,7 +31,7 @@
progname=`basename $0`
# ../ will lead us to the home
-dbhome="$progdir/.."
+dbhome=/var/lib/hsqldb
# absolutize dbhome
@@ -40,7 +40,7 @@
#
# bring in needed functions
-. ${dbhome}/lib/functions
+. /var/lib/hsqldb/lib/functions
#--------------------------------------------------------------------------------------------------------------
pre_main

View File

@ -1,523 +0,0 @@
Index: bin/hsqldb
===================================================================
--- bin/hsqldb.orig 2011-01-14 13:55:34.636488672 +0100
+++ bin/hsqldb 2011-01-14 14:05:37.464628070 +0100
@@ -50,7 +50,7 @@
### BEGIN INIT INFO
# Provides: HSQLDB-Server
# Required-Start: $syslog $remote_fs $network $named
-# Required-Stop:
+# Required-Stop: $syslog $remote_fs $network $named
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: HSQLDB-Server
@@ -89,19 +89,73 @@
# -- blaine.simpson@admc.com
+# Shell functions sourced from /etc/rc.status:
+# rc_check check and set local and overall rc status
+# rc_status check and set local and overall rc status
+# rc_status -v ditto but be verbose in local rc status
+# rc_status -v -r ditto and clear the local rc status
+# rc_failed set local and overall rc status to failed
+# rc_failed <num> set local and overall rc status to <num><num>
+# rc_reset clear local rc status (overall remains)
+# rc_exit exit appropriate to overall rc status
+. /etc/rc.status
+
+# First reset status of this service
+rc_reset
+
+# Return values acc. to LSB for all commands but status:
+# 0 - success
+# 1 - generic or unspecified error
+# 2 - invalid or excess argument(s)
+# 3 - unimplemented feature (e.g. "reload")
+# 4 - insufficient privilege
+# 5 - program is not installed
+# 6 - program is not configured
+# 7 - program is not running
+#
+# Note that starting an already running service, stopping
+# or restarting a not-running service as well as the restart
+# with force-reload (in case signalling is not supported) are
+# considered a success.
+
set +u
+# "chown" lives in /usr on some UNIXes.
+PATH="/bin:/sbin:/usr/sbin"
+
+
+NAME="$(/bin/basename $0)"
+unset ISBOOT
+if [ "${NAME:0:1}" = "S" -o "${NAME:0:1}" = "K" ]; then
+ NAME="${NAME:3}"
+ ISBOOT="1"
+fi
+
+# remove SUSE's rc name
+if [ "${NAME:0:2}" = "rc" ]; then
+ NAME="${NAME:2}"
+fi
+
+# For SELinux we need to use 'runuser' not 'su'
+if [ -x "/sbin/runuser" ]; then
+ SU="/sbin/runuser"
+else
+ SU="/bin/su"
+fi
+
# This is only used for recursive invocations.
# Will not necessarily be set correctly at system bootup invocations
# (where it is sometimes invoked like "sh... /path/to/hsqldb start"),
# but, in those cases there will be no recursion.
-INVOC_PATH=`dirname "$0"` || {
+INVOC_PATH=`/usr/bin/dirname "$0"` || {
echo "'dirname' failed" 1>&2
- exit 2
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
[ -n "$INVOC_PATH" ] && INVOC_PATH="${INVOC_PATH}/"
-SYNTAX_MSG="SYNTAX: ${INVOC_PATH}hsqldb start|stop|stopcompact|restart|restartcmpacted|status"
+SYNTAX_MSG="Usage: ${INVOC_PATH}/${NAME} start|stop|status|try-restart|restart|force-reload|reload|probe"
# You can override any of these default values in your config file:
@@ -110,9 +164,12 @@
SU_ECHO_SECS=1
# File used as semaphore. If file is removed, a running pid checker
# process will exit.
-PIDCHECKER_FLAGFILE=`mktemp /tmp/hsqldb.XXXXXXXX`
+PIDCHECKER_FLAGFILE=`/bin/mktemp /tmp/hsqldb.XXXXXXXX`
if [ x"$PIDCHECKER_FLAGFILE" = "x" ] ; then
- echo "unable to create tmp file"; exit 1
+ echo "unable to create tmp file"
+ rc_failed 1
+ rc_status -v
+ rc_exit
fi
# The following settings get overridden by optional setting in the config file.
# Time to allow for JVM to die after all HSQLDB instances stopped.
@@ -168,25 +225,31 @@
done
[ -n "$CFGFILE" ] || {
echo "No global config file found in any of allowed locations" 1>&2
- exit 11
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
# Sanity check
[ -n "$LOGFILE" ] && [ -n "$PIDFILE" ] || {
echo "Internal problem in init script" 1>&2
- exit 11
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
[ $# -eq 1 ] || {
echo "$SYNTAX_MSG" 1>&2
- exit 4
+ exit 1
}
# It would be nice to permit some uses, like "status" by non-root users,
# but for now our goal is a superuser init script.
[ -w / ] || { # Very portable, but perhaps not perfect, test for superuser.
echo "Only 'root' may use this init script" 1>&2
- exit 4
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
# Use bsd-style enable/disable if it's in place.
@@ -209,11 +272,15 @@
[ -r "$CFGFILE" ] || {
echo "Unable to read config file '$CFGFILE'" 1>&2
- exit 2
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
[ -f "$CFGFILE" ] || {
echo "'$CFGFILE' is not a regular file" 1>&2
- exit 2
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
HSQLDB_OWNER=
JAVA_EXECUTABLE=
@@ -221,6 +288,28 @@
SERVER_HOME=
SHUTDOWN_URLIDS=
. "$CFGFILE"
+
+[ -z "$JAVA_EXECUTABLE" ] && {
+ # JPackage source Java config
+ . /etc/java/java.conf
+
+ if [ -n "$JAVA_HOME" ]; then
+ JAVA_EXECUTABLE=${JAVA_HOME}/bin/java
+ else
+ JAVA_EXECUTABLE=${JVM_ROOT}/java/bin/java
+ fi
+
+ if [ -z "$JAVA_HOME" ]; then
+ if [ -d "$JVM_ROOT/java" ]; then
+ JAVA_EXECUTABLE=$JVM_ROOT/java/bin/java
+ else
+ JAVA_EXECUTABLE=$JVM_ROOT/jre/bin/java
+ fi
+ else
+ JAVA_EXECUTABLE=$JAVA_HOME/bin/java
+ fi
+}
+
# Suffix delimiter to $SERVER_ADDL_CLASSPATH, if it is set.
[ -n "$SERVER_ADDL_CLASSPATH" ] &&
SERVER_ADDL_CLASSPATH="${SERVER_ADDL_CLASSPATH}:"
@@ -229,15 +318,21 @@
[ -n "$SERVER_HOME" ] || {
echo "Config file '$CFGFILE' does not set one or more of following variables
JAVA_EXECUTABLE, HSQLDB_JAR_PATH, SERVER_HOME" 1>&2
- exit 2
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
[ -d "$SERVER_HOME" ] || {
echo "SERVER_HOME variable in '$CFGFILE' is set to a non-directory." 1>&2
- exit 2
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
[ -f "$JAVA_EXECUTABLE" ] && [ -f "$HSQLDB_JAR_PATH" ] || {
echo "JAVA_EXECUTABLE or HSQLDB_JAR_PATH in '$CFGFILE' is set to a non-file." 1>&2
- exit 2
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
# PROPERTY_FILE is a derived value.
@@ -246,28 +341,36 @@
WebServer) PROPERTY_FILE="$SERVER_HOME"/webserver.properties;;
*)
echo 'Unsupported value for $TARGET_CLASS: '"$TARGET_CLASS" 1>&2
- exit 2;;
+ rc_failed 2
+ rc_status -v
+ rc_exit
+ ;;
esac
[ -f "$PROPERTY_FILE" ] || {
echo "'$PROPERTY_FILE' is missing" 1>&2
- exit 2
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
[ -r "$PROPERTY_FILE" ] || {
echo "'$PROPERTY_FILE' isn't readable" 1>&2
- exit 2
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
[ -r "$HSQLDB_JAR_PATH" ] || {
echo "'$HSQLDB_JAR_PATH' isn't readable" 1>&2
- exit 2
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
[ -x "$JAVA_EXECUTABLE" ] || {
echo "No Java executable found at '$JAVA_EXECUTABLE'" 1>&2
- exit 2
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
-# "chown" lives here on some UNIXes.
-PATH="$PATH:/usr/sbin"
-
# Make a good effort (but not bullet-proof) check on permissions of the
# auth file. Unfortunately, if auth-file is not specified, this depends
# upon both (a) $HOME being set; and (b) SqlToolSprayer and SqlTool defaults.
@@ -279,15 +382,21 @@
[ -n "${_AUTH_TEST_PATH}" ] || _AUTH_TEST_PATH="$HOME/sqltool.rc"
[ -f "$_AUTH_TEST_PATH" ] || {
echo "No auth file found at '$_AUTH_TEST_PATH'" 1>&2
- exit 2
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
[ -r "$_AUTH_TEST_PATH" ] || {
echo "Auth file '$_AUTH_TEST_PATH' not readable" 1>&2
- exit 2
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
ls -ld "$_AUTH_TEST_PATH" | grep '^-..------' > /dev/null 2>&1 || {
echo "Fix permissions on '$_AUTH_TEST_PATH' like 'chmod 600 $_AUTH_TEST_PATH'" 1>&2
- exit 2
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
fi
@@ -296,29 +405,37 @@
[ -r "$PIDFILE" ] && {
[ -f "$PIDFILE" ] || {
echo "'$PIDFILE' is not a regular file" 1>&2
- exit 6
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
[ -w "$PIDFILE" ] || {
echo "'$PIDFILE' is not writable" 1>&2
- exit 6
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
HSQLDB_PID="`cat $PIDFILE`" || {
echo "Failed to read pid file '$PIDFILE'" 1>&2
- exit 6
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
case "$HSQLDB_PID" in
*[a-zA-Z/!@#$%*+=_~]*) HSQLDB_PID=;;
*'^'*) HSQLDB_PID=;;
esac
[ -n "$HSQLDB_PID" ] || {
- echo "Pid file '$PIDFILE' does not contain a valid process identifier" 1>&2
- exit 6
+ rc_failed 7
+ rc_status -v
+ rc_exit
}
kill -0 "$HSQLDB_PID" > /dev/null 2>&1 || {
echo 'Removing stale pid file'
rm -f "$PIDFILE" || {
- echo "Failed to remove pid file '$PIDFILE'" 1>&2
- exit 6
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
HSQLDB_PID=
}
@@ -329,7 +446,9 @@
status)
[ -n "$HSQLDB_PID" ] || {
echo "I don't know of any running hsqldb server."
- exit 0
+ rc_failed 7
+ rc_status -v
+ rc_exit
}
echo "There is an hsqldb server loaded from $HSQLDB_JAR_PATH
running with pid $HSQLDB_PID."
@@ -348,32 +467,42 @@
"-Dsqltoolsprayer.propfile=$PROPERTY_FILE" \
"-Dsqltoolsprayer.monfile=$PIDFILE" \
org.hsqldb.util.SqlToolSprayer '--;'
+ rc_failed 0
+ rc_status -v
+ rc_exit
;;
start)
[ -n "$HSQLDB_PID" ] && {
echo "There is already a hsqldb server running with pid $HSQLDB_PID." 1>&2
- exit 1
+ rc_failed 0
+ rc_status -v
+ rc_exit
}
TLS_SWITCHES=
[ -n "$TLS_KEYSTORE" ] &&
TLS_SWITCHES="-Djavax.net.ssl.keyStore=$TLS_KEYSTORE -Djavax.net.ssl.keyStorePassword=$TLS_PASSWORD"
if [ -n "$HSQLDB_OWNER" ]; then
touch "$PIDFILE" || {
- echo "Failed to create pid file" 1>&2
- exit 1
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
chown "$HSQLDB_OWNER" "$PIDFILE" || {
echo "Failed to chown pid file to '$HSQLDB_OWNER'" 1>&2
- exit 1
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
# Some OSes choke if there are newlines in this string.
# N.b.!!! The shell of the -c command is the target user's default
# login shell, so keep this command shell-independent!
- nohup su "$HSQLDB_OWNER" -c "cd '$SERVER_HOME' && echo "'$$'" > '$PIDFILE' && exec '$JAVA_EXECUTABLE' $SERVER_JVMARGS $TLS_SWITCHES -classpath '${SERVER_ADDL_CLASSPATH}${HSQLDB_JAR_PATH}' org.hsqldb.util.MainInvoker org.hsqldb.$TARGET_CLASS $INVOC_ADDL_ARGS" >> "$LOGFILE" 2>&1 &
+ /usr/bin/nohup $SU "$HSQLDB_OWNER" -s /bin/sh -c "cd '$SERVER_HOME' && echo "'$$'" > '$PIDFILE' && exec '$JAVA_EXECUTABLE' $SERVER_JVMARGS $TLS_SWITCHES -classpath '${SERVER_ADDL_CLASSPATH}${HSQLDB_JAR_PATH}' org.hsqldb.util.MainInvoker org.hsqldb.$TARGET_CLASS $INVOC_ADDL_ARGS" >> "$LOGFILE" 2>&1 &
else
cd "$SERVER_HOME" || {
echo "Failed to cd to '$SERVER_HOME'" 1>&2
- exit 1
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
export JAVA_EXECUTABLE
export HSQLDB_JAR_PATH
@@ -382,10 +511,12 @@
export SERVER_JVMARGS
export TARGET_CLASS
export INVOC_ADDL_ARGS
- nohup sh -c '
+ /usr/bin/nohup sh -c '
echo $$ > "$PIDFILE" || {
echo "Failed to write pid to pid file" 1>&2
- exit 1
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
eval exec "$JAVA_EXECUTABLE" $SERVER_JVMARGS $TLS_SWITCHES -classpath "${SERVER_ADDL_CLASSPATH}${HSQLDB_JAR_PATH}" org.hsqldb.util.MainInvoker org.hsqldb.$TARGET_CLASS $INVOC_ADDL_ARGS
' >> "$LOGFILE" 2>&1 &
@@ -404,7 +535,9 @@
# but regardless of why, the pid file does not contain a valid pid.
touch "$PIDCHECKER_FLAGFILE" || {
echo "Failed to touch file '$PIDCHECKER_FLAGFILE'" 1>&2
- exit 1
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
export PIDCHECKER_FLAGFILE
export PIDFILE
@@ -414,7 +547,9 @@
[ -f "$PIDCHECKER_FLAGFILE" ] || exit 0
kill -0 "`cat $PIDFILE`" > /dev/null 2>&1 || {
rm -f "$PIDFILE" "$PIDCHECKER_FLAGFILE"
- exit 1
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
sleep 1
done
@@ -426,18 +561,24 @@
org.hsqldb.util.SqlToolSprayer '--;' && {
rm -f "$PIDCHECKER_FLAGFILE"
echo "org.hsqldb.$TARGET_CLASS started with pid `cat $PIDFILE`"
- exit 0
+ rc_failed 0
+ rc_status -v
+ rc_exit
}
rm -f "$PIDCHECKER_FLAGFILE"
echo "Failed to start org.hsqldb.$TARGET_CLASS.
See log file '$LOGFILE'." 1>&2
- exit 1
+ rc_failed 1
+ rc_status -v
+ rc_exit
;;
stop|stopcompact)
[ "$COMMAND" = stopcompact ] && SHUTDOWN_OPTION='compact'
[ -n "$HSQLDB_PID" ] || {
echo "I don't know of any running hsqldb server." 1>&2
- exit 1
+ rc_failed 7
+ rc_status -v
+ rc_exit
}
AUTH_FILE_SWITCH=
# N.b., there will be a problem if there are special characters or
@@ -455,23 +596,64 @@
sleep $MAX_TERMINATE_SECS # Give the JVM a sec. or 2 to fully exit.
kill -0 "$HSQLDB_PID" > /dev/null 2>&1 && {
echo "WARNING: hsqldb is still running!" 1>&2
- exit 1
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
rm -f "$PIDFILE" || {
echo "Failed to remove pid file '$PIDFILE'" 1>&2
- exit 1
+ rc_failed 1
+ rc_status -v
+ rc_exit
}
echo "Successful shutdown ${SHUTDOWN_OPTION} (for the $TARGET_CLASS process)!"
- exit 0
+ rc_failed 0
+ rc_status -v
+ rc_exit
;;
restart|restartcompacted)
STOP_COMMAND=stop
[ "$COMMAND" = restartcompacted ] && STOP_COMMAND=stopcompact
- "${INVOC_PATH}"hsqldb $STOP_COMMAND || exit $?
+ "${INVOC_PATH}"hsqldb $STOP_COMMAND || {
+ rc_failed $?
+ rc_status -s
+ rc_exit
+ }
exec "${INVOC_PATH}"/hsqldb start
+ rc_failed $?
+ rc_status -s
+ rc_exit
;;
+ try-restart)
+ ## Stop the service and if this succeeds (i.e. the
+ ## service was running before), start it again.
+ ## Note: try-restart is not (yet) part of LSB (as of 0.7.5)
+ $0 status >/dev/null && $0 restart
+
+ # Remember status and be quiet
+ rc_status
+ ;;
+ force-reload)
+ ## Signal the daemon to reload its config. Most daemons
+ ## do this on signal 1 (SIGHUP).
+ ## If it does not support it, restart.
+
+ echo -n "Reload service hsqldb"
+ ## if it supports it:
+ #killproc -HUP $TOMCAT_BIN
+ #touch /var/run/FOO.pid
+ #rc_status -v
+
+ ## Otherwise:
+ $0 stop && $0 start
+ rc_status
+ ;;
+ reload|probe)
+ rc_failed 3
+ rc_status -v
+ ;;
*)
echo "$SYNTAX_MSG" 1>&2
- exit 5
+ exit 1
;;
esac

View File

@ -1,22 +0,0 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<packaging>jar</packaging>
<name>HSQLDB</name>
<version>1.8.0.10</version>
<url>http://hsqldb.org/</url>
<description>Lightweight 100% Java SQL Database Engine</description>
<licenses>
<license>
<name>HSQLDB License</name>
<url>http://hsqldb.org/web/hsqlLicense.html</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<url>http://sourceforge.net/cvs/?group_id=23316</url>
</scm>
<dependencies>
</dependencies>
</project>

27
hsqldb-2.2.9.pom Normal file
View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.2.9</version>
<name>HyperSQL Database</name>
<description>HSQLDB - Lightweight 100% Java SQL Database Engine</description>
<url>http://hsqldb.org</url>
<inceptionYear>2001</inceptionYear>
<organization>
<name>The HSQL Development Group</name>
<url>http://hsqldb.org</url>
</organization>
<licenses>
<license>
<name>HSQLDB License, a BSD open source license</name>
<url>http://hsqldb.org/web/hsqlLicense.html</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<connection>scm:svn:http://hsqldb.svn.sourceforge.net/svnroot/hsqldb/base</connection>
<url>http://hsqldb.svn.sourceforge.net/viewvc/hsqldb/base/trunk</url>
</scm>
</project>

3
hsqldb-2.2.9.zip Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6b60decdb59513f52b915abed2223e287ba19360fa77fc8141c4fc6af90c5e72
size 7450194

12
hsqldb-apidocs.patch Normal file
View File

@ -0,0 +1,12 @@
diff --git a/build/build.xml b/build/build.xml
index 3a2b77f..c18fda0 100644
--- a/build/build.xml
+++ b/build/build.xml
@@ -130,6 +130,7 @@ examples:
There is no performance penalty, since the javadoc task regenerates
everything each run.
-->
+ <mkdir dir="doc/apidocs"/>
<copy todir="doc/apidocs">
<!-- IMPORTANT:
Add a fixcrlf if we add non-binary files to doc/apidocs. -->

21
hsqldb-cmdline.patch Normal file
View File

@ -0,0 +1,21 @@
diff --git a/build/build.xml b/build/build.xml
index ae8b37b..f3453fd 100644
--- a/build/build.xml
+++ b/build/build.xml
@@ -493,7 +493,7 @@ examples:
</target>
<!-- compiles the cmdline classes -->
- <target name="-cmdline" if="ant.java.iscjava15"
+ <target name="-cmdline"
depends="-prepare, -update-switch-branch,
-conditionalize-sqlfile-scanner, -sqlfile-scanner">
<javac srcdir="${swsrc}"
@@ -700,7 +700,6 @@ examples:
<exclude name="org/hsqldb/util/Zaurus*"/>
<exclude name="org/hsqldb/test/*.class"/>
<exclude name="org/hsqldb/sample/*.class"/>
- <exclude name="org/hsqldb/cmdline/**"/>
</jar>
</target>

View File

@ -1,293 +0,0 @@
diff -ur hsqldb.orig/build/build.xml hsqldb/build/build.xml
--- hsqldb.orig/build/build.xml 2010-06-23 08:49:15.000000000 -0400
+++ hsqldb/build/build.xml 2012-01-24 15:09:43.000000000 -0500
@@ -98,7 +98,11 @@
<echo message="ant.java.hasjsse=${ant.java.hasjsse}" />
</target>
- <target name="javaversion6">
+ <target name="javaversion7">
+ <available classname="java.util.Objects" property="ant.java.iscjava17"/>
+ </target>
+
+ <target name="javaversion6" depends="javaversion7" unless="ant.java.iscjava17">
<available classname="java.net.IDN" property="ant.java.iscjava16"/>
</target>
@@ -210,6 +214,7 @@
<arg value="+JAVA2FULL"/>
<arg value="-JAVA4"/>
<arg value="-JAVA6"/>
+ <arg value="-JAVA7"/>
</java>
</target>
@@ -244,6 +249,7 @@
<arg value="+JAVA2FULL"/>
<arg value="+JAVA4"/>
<arg value="-JAVA6"/>
+ <arg value="-JAVA7"/>
</java>
</target>
@@ -279,10 +285,47 @@
<arg value="+JAVA2FULL"/>
<arg value="+JAVA4"/>
<arg value="+JAVA6"/>
+ <arg value="-JAVA7"/>
+ </java>
+ </target>
+
+ <target name="switchtojdk17" depends="switchtojdk16"
+ description="self explanatory" if="ant.java.iscjava17">
+ <java classname="org.hsqldb.util.CodeSwitcher" classpath="classes" >
+ <arg file="${src}/org/hsqldb/lib/java/JavaSystem.java"/>
+ <arg file="${src}/org/hsqldb/lib/HsqlTimer.java"/>
+ <arg file="${src}/org/hsqldb/jdbcDriver.java"/>
+ <arg file="${src}/org/hsqldb/jdbc/jdbcBlob.java"/>
+ <arg file="${src}/org/hsqldb/jdbc/jdbcDatabaseMetaData.java"/>
+ <arg file="${src}/org/hsqldb/jdbc/jdbcDataSource.java"/>
+ <arg file="${src}/org/hsqldb/jdbc/jdbcCallableStatement.java"/>
+ <arg file="${src}/org/hsqldb/jdbc/jdbcClob.java"/>
+ <arg file="${src}/org/hsqldb/jdbc/jdbcConnection.java"/>
+ <arg file="${src}/org/hsqldb/jdbc/jdbcParameterMetaData.java"/>
+ <arg file="${src}/org/hsqldb/jdbc/jdbcPreparedStatement.java"/>
+ <arg file="${src}/org/hsqldb/jdbc/jdbcResultSet.java"/>
+ <arg file="${src}/org/hsqldb/jdbc/jdbcResultSetMetaData.java"/>
+ <arg file="${src}/org/hsqldb/jdbc/jdbcStatement.java"/>
+ <arg file="${src}/org/hsqldb/persist/LockFile.java"/>
+ <arg file="${src}/org/hsqldb/persist/Logger.java"/>
+ <arg file="${src}/org/hsqldb/persist/ScaledRAFile.java"/>
+ <arg file="${src}/org/hsqldb/rowio/RowInputTextLog.java"/>
+ <arg file="${src}/org/hsqldb/util/DatabaseManager.java"/>
+ <arg file="${src}/org/hsqldb/util/ConnectionDialogCommon.java"/>
+ <arg file="${src}/org/hsqldb/lib/SimpleLog.java"/>
+ <arg file="${src}/org/hsqldb/rowio/RowInputTextLog.java"/>
+ <arg file="${src}/org/hsqldb/lib/SimpleLog.java"/>
+ <arg file="${src}/org/hsqldb/rowio/RowInputTextLog.java"/>
+ <arg file="${src}/org/hsqldb/HsqlDateTime.java"/>
+ <arg value="+JAVA2"/>
+ <arg value="+JAVA2FULL"/>
+ <arg value="+JAVA4"/>
+ <arg value="+JAVA6"/>
+ <arg value="+JAVA7"/>
</java>
</target>
- <target name="store" depends="switchtojdk16"
+ <target name="store" depends="switchtojdk17"
description="compiles the /store folder">
<javac srcdir="${src}"
destdir="classes"
diff -ur hsqldb.orig/src/org/hsqldb/jdbc/jdbcCallableStatement.java hsqldb/src/org/hsqldb/jdbc/jdbcCallableStatement.java
--- hsqldb.orig/src/org/hsqldb/jdbc/jdbcCallableStatement.java 2010-02-27 12:04:52.000000000 -0500
+++ hsqldb/src/org/hsqldb/jdbc/jdbcCallableStatement.java 2012-01-24 15:00:15.000000000 -0500
@@ -3379,4 +3379,20 @@
*/
//#endif JAVA6
+
+//#ifdef JAVA7
+/*
+ public <T> T getObject(String columnLabel, Class<T> type) throws SQLException
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public <T> T getObject(int ColumnIndex, Class<T> type) throws SQLException
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+*/
+
+//#endif JAVA7
}
diff -ur hsqldb.orig/src/org/hsqldb/jdbc/jdbcConnection.java hsqldb/src/org/hsqldb/jdbc/jdbcConnection.java
--- hsqldb.orig/src/org/hsqldb/jdbc/jdbcConnection.java 2010-02-27 12:04:52.000000000 -0500
+++ hsqldb/src/org/hsqldb/jdbc/jdbcConnection.java 2012-01-24 14:53:02.000000000 -0500
@@ -50,6 +50,14 @@
*/
//#endif JAVA6
+
+//#ifdef JAVA7
+/*
+import java.util.concurrent.Executor;
+*/
+
+//#endif JAVA7
+
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.SQLWarning;
@@ -2794,4 +2802,33 @@
*/
//#endif JAVA6
+
+//#ifdef JAVA7
+/*
+ public int getNetworkTimeout() throws SQLException
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void setNetworkTimeout(Executor executor, int millis) throws SQLException
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void abort(Executor executor) throws SQLException
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public String getSchema() throws SQLException
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void setSchema(String schema) throws SQLException
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+*/
+//#endif JAVA7
}
diff -ur hsqldb.orig/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java hsqldb/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java
--- hsqldb.orig/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java 2010-02-27 12:04:52.000000000 -0500
+++ hsqldb/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java 2012-01-24 15:03:07.000000000 -0500
@@ -5697,4 +5697,21 @@
*/
//#endif JAVA6
+
+//#ifdef JAVA7
+/*
+ public boolean generatedKeyAlwaysReturned() throws SQLException
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public ResultSet getPseudoColumns(String catalog, String schemaPattern,
+ String tableNamePattern, String columnNamePattern) throws SQLException
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+*/
+
+//#endif JAVA7
}
diff -ur hsqldb.orig/src/org/hsqldb/jdbc/jdbcDataSource.java hsqldb/src/org/hsqldb/jdbc/jdbcDataSource.java
--- hsqldb.orig/src/org/hsqldb/jdbc/jdbcDataSource.java 2010-02-27 12:04:52.000000000 -0500
+++ hsqldb/src/org/hsqldb/jdbc/jdbcDataSource.java 2012-01-24 15:08:29.000000000 -0500
@@ -47,6 +47,13 @@
//#endif JAVA4
import org.hsqldb.jdbcDriver;
+//#ifdef JAVA7
+/*
+import java.sql.SQLFeatureNotSupportedException;
+import java.util.logging.Logger;
+*/
+//#endif JAVA7
+
// boucherb@users 20040411 - doc 1.7.2 - javadoc updates toward 1.7.2 final
/**
@@ -325,4 +332,14 @@
*/
//#endif JAVA6
+
+//#ifdef JAVA7
+/*
+ public Logger getParentLogger() throws SQLFeatureNotSupportedException
+ {
+ throw new SQLFeatureNotSupportedException("Not supported yet.");
+ }
+*/
+
+//#endif JAVA7
}
diff -ur hsqldb.orig/src/org/hsqldb/jdbc/jdbcResultSet.java hsqldb/src/org/hsqldb/jdbc/jdbcResultSet.java
--- hsqldb.orig/src/org/hsqldb/jdbc/jdbcResultSet.java 2010-06-23 08:49:19.000000000 -0400
+++ hsqldb/src/org/hsqldb/jdbc/jdbcResultSet.java 2012-01-24 14:55:16.000000000 -0500
@@ -5332,4 +5332,21 @@
*/
//#endif JAVA6
+
+
+//#ifdef JAVA7
+/*
+
+ public <T> T getObject(String columnLabel, Class<T> type) throws SQLException
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public <T> T getObject(int columnNum, Class<T> type) throws SQLException
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+*/
+
+//#endif JAVA6
}
diff -ur hsqldb.orig/src/org/hsqldb/jdbc/jdbcStatement.java hsqldb/src/org/hsqldb/jdbc/jdbcStatement.java
--- hsqldb.orig/src/org/hsqldb/jdbc/jdbcStatement.java 2010-02-27 12:04:52.000000000 -0500
+++ hsqldb/src/org/hsqldb/jdbc/jdbcStatement.java 2012-01-24 14:58:14.000000000 -0500
@@ -1610,4 +1610,18 @@
}
*/
//#endif JAVA6
+
+//#ifdef JAVA7
+/*
+ public boolean isCloseOnCompletion() throws SQLException
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void closeOnCompletion() throws SQLException
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+*/
+//#endif JAVA7
}
diff -ur hsqldb.orig/src/org/hsqldb/jdbcDriver.java hsqldb/src/org/hsqldb/jdbcDriver.java
--- hsqldb.orig/src/org/hsqldb/jdbcDriver.java 2009-02-16 19:29:55.000000000 -0500
+++ hsqldb/src/org/hsqldb/jdbcDriver.java 2012-01-24 15:08:44.000000000 -0500
@@ -42,6 +42,13 @@
import org.hsqldb.persist.HsqlDatabaseProperties;
import org.hsqldb.persist.HsqlProperties;
+//#ifdef JAVA7
+/*
+import java.sql.SQLFeatureNotSupportedException;
+import java.util.logging.Logger;
+*/
+//#endif JAVA7
+
// fredt@users 20011220 - patch 1.7.0 by fredt
// new version numbering scheme
// fredt@users 20020320 - patch 1.7.0 - JDBC 2 support and error trapping
@@ -321,4 +328,14 @@
DriverManager.registerDriver(new jdbcDriver());
} catch (Exception e) {}
}
+
+//#ifdef JAVA7
+/*
+ public Logger getParentLogger() throws SQLFeatureNotSupportedException
+ {
+ throw new SQLFeatureNotSupportedException("Not supported yet.");
+ }
+*/
+
+//#endif JAVA7
}

76
hsqldb-post Normal file
View File

@ -0,0 +1,76 @@
#!/bin/sh
# This file was created with portions of the original SysV init script shipped
# with hsqldb
# Copyright (c) 2001-2004, The HSQL Development Group
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
# Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# Neither the name of the HSQL Development Group nor the names of its
# contributors may be used to endorse or promote products derived from this
# software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
# OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# $MAX_START_SECS from when the Server/WebServer is started.
MAX_START_SECS=60
# Class in the org.hsqldb package to start.
# At this time, only the values "Server" or "WebServer" will work.
TARGET_CLASS=Server
. /etc/sysconfig/hsqldb
# PROPERTY_FILE is a derived value.
case "$TARGET_CLASS" in
Server) PROPERTY_FILE="$SERVER_HOME"/server.properties;;
WebServer) PROPERTY_FILE="$SERVER_HOME"/webserver.properties;;
*)
echo 'Unsupported value for $TARGET_CLASS: '"$TARGET_CLASS" 1>&2
exit 2;;
esac
[ -f "$PROPERTY_FILE" ] || {
echo "'$PROPERTY_FILE' is missing" 1>&2
exit 2
}
[ -r "$PROPERTY_FILE" ] || {
echo "'$PROPERTY_FILE' isn't readable" 1>&2
exit 2
}
AUTH_FILE_SWITCH=
# N.b., there will be a problem if there are special characters or
# spaces inside of $AUTH_FILE.
[ -n "$AUTH_FILE" ] && AUTH_FILE_SWITCH="-Dsqltoolsprayer.rcfile=$AUTH_FILE"
# Might as well set CLASSPATH for a cleaner command.
CLASSPATH="$HSQLDB_JAR_PATH"
export CLASSPATH
sleep 1
"$JAVA_EXECUTABLE" $AUTH_FILE_SWITCH $CLIENT_JVMARGS \
"-Dsqltoolsprayer.propfile=$PROPERTY_FILE" \
"-Dsqltoolsprayer.maxtime=${MAX_START_SECS}000" \
org.hsqldb.cmdline.SqlToolSprayer '' db0-url

84
hsqldb-stop Normal file
View File

@ -0,0 +1,84 @@
#!/bin/sh
# This file was created with portions of the original SysV init script shipped
# with hsqldb
# Copyright (c) 2001-2004, The HSQL Development Group
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
# Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# Neither the name of the HSQL Development Group nor the names of its
# contributors may be used to endorse or promote products derived from this
# software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
# OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Class in the org.hsqldb package to start.
# At this time, only the values "Server" or "WebServer" will work.
TARGET_CLASS=Server
MAX_TERMINATE_SECS=1
# To customize settings, edit this file:
. /etc/sysconfig/hsqldb
# PROPERTY_FILE is a derived value.
case "$TARGET_CLASS" in
Server) PROPERTY_FILE="$SERVER_HOME"/server.properties;;
WebServer) PROPERTY_FILE="$SERVER_HOME"/webserver.properties;;
*)
echo 'Unsupported value for $TARGET_CLASS: '"$TARGET_CLASS" 1>&2
exit 6;;
esac
[ -f "$PROPERTY_FILE" ] || {
echo "'$PROPERTY_FILE' is missing" 1>&2
exit 6
}
[ -r "$PROPERTY_FILE" ] || {
echo "'$PROPERTY_FILE' isn't readable" 1>&2
exit 6
}
[ -r "$HSQLDB_JAR_PATH" ] || {
echo "'$HSQLDB_JAR_PATH' isn't readable" 1>&2
exit 6
}
[ -x "$JAVA_EXECUTABLE" ] || {
echo "No Java executable found at '$JAVA_EXECUTABLE'" 1>&2
exit 6
}
AUTH_FILE_SWITCH=
# N.b., there will be a problem if there are special characters or
# spaces inside of $AUTH_FILE.
[ -n "$AUTH_FILE" ] &&
AUTH_FILE_SWITCH="-Dsqltoolsprayer.rcfile=$AUTH_FILE"
# Might as well set CLASSPATH for a cleaner command.
CLASSPATH="$HSQLDB_JAR_PATH"
export CLASSPATH
export PATH # Required only for some funny init environments.
"$JAVA_EXECUTABLE" $AUTH_FILE_SWITCH $CLIENT_JVMARGS \
"-Dsqltoolsprayer.propfile=$PROPERTY_FILE" \
org.hsqldb.cmdline.SqlToolSprayer '' \
db0-url $SHUTDOWN_URLIDS
sleep $MAX_TERMINATE_SECS # Give the JVM a sec. or 2 to fully exit.
echo "Successful shutdown ${SHUTDOWN_OPTION} (for the $TARGET_CLASS process)!"
exit 0

View File

@ -1,14 +0,0 @@
--- hsqldb/bin/hsqldb
+++ hsqldb/bin/hsqldb
@@ -110,7 +110,10 @@
SU_ECHO_SECS=1
# File used as semaphore. If file is removed, a running pid checker
# process will exit.
-PIDCHECKER_FLAGFILE=/tmp/pidchecker.run
+PIDCHECKER_FLAGFILE=`mktemp /tmp/hsqldb.XXXXXXXX`
+if [ x"$PIDCHECKER_FLAGFILE" = "x" ] ; then
+ echo "unable to create tmp file"; exit 1
+fi
# The following settings get overridden by optional setting in the config file.
# Time to allow for JVM to die after all HSQLDB instances stopped.
MAX_TERMINATE_SECS=1

97
hsqldb-wrapper Normal file
View File

@ -0,0 +1,97 @@
#!/bin/sh
# This file was created with portions of the original SysV init script shipped
# with hsqldb
# Copyright (c) 2001-2004, The HSQL Development Group
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
# Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# Neither the name of the HSQL Development Group nor the names of its
# contributors may be used to endorse or promote products derived from this
# software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
# OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Class in the org.hsqldb package to start.
# At this time, only the values "Server" or "WebServer" will work.
TARGET_CLASS=Server
. /etc/sysconfig/hsqldb
# Suffix delimiter to $SERVER_ADDL_CLASSPATH, if it is set.
[ -n "$SERVER_ADDL_CLASSPATH" ] &&
SERVER_ADDL_CLASSPATH="${SERVER_ADDL_CLASSPATH}:"
# Validate that config file sets all required variables.
[ -n "$JAVA_EXECUTABLE" ] && [ -n "$HSQLDB_JAR_PATH" ] &&
[ -n "$SERVER_HOME" ] || {
echo "Config file '$CFGFILE' does not set one or more of following variables
JAVA_EXECUTABLE, HSQLDB_JAR_PATH, SERVER_HOME" 1>&2
exit 2
}
[ -d "$SERVER_HOME" ] || {
echo "SERVER_HOME variable in '$CFGFILE' is set to a non-directory." 1>&2
exit 2
}
[ -f "$JAVA_EXECUTABLE" ] && [ -f "$HSQLDB_JAR_PATH" ] || {
echo "JAVA_EXECUTABLE or HSQLDB_JAR_PATH in '$CFGFILE' is set to a non-file." 1>&2
exit 2
}
[ -r "$HSQLDB_JAR_PATH" ] || {
echo "'$HSQLDB_JAR_PATH' isn't readable" 1>&2
exit 2
}
[ -x "$JAVA_EXECUTABLE" ] || {
echo "No Java executable found at '$JAVA_EXECUTABLE'" 1>&2
exit 2
}
# Make a good effort (but not bullet-proof) check on permissions of the
# auth file. Unfortunately, if auth-file is not specified, this depends
# upon both (a) $HOME being set; and (b) SqlToolSprayer and SqlTool defaults.
# On the other hand, it works great if AUTH_FILE is set explicitly by user.
if [ -z "$AUTH_FILE" ] && [ -z "$HOME" ]; then
: # Lousy init environment didn't set $HOME, so can't find dflt cfg file.
else
_AUTH_TEST_PATH="$AUTH_FILE"
[ -n "${_AUTH_TEST_PATH}" ] || _AUTH_TEST_PATH="$HOME/sqltool.rc"
[ -f "$_AUTH_TEST_PATH" ] || {
echo "No auth file found at '$_AUTH_TEST_PATH'" 1>&2
exit 2
}
[ -r "$_AUTH_TEST_PATH" ] || {
echo "Auth file '$_AUTH_TEST_PATH' not readable" 1>&2
exit 2
}
ls -ld "$_AUTH_TEST_PATH" | grep '^-..------' > /dev/null 2>&1 || {
echo "Fix permissions on '$_AUTH_TEST_PATH' like 'chmod 600 $_AUTH_TEST_PATH'" 1>&2
exit 2
}
fi
TLS_SWITCHES=
[ -n "$TLS_KEYSTORE" ] &&
TLS_SWITCHES="-Djavax.net.ssl.keyStore=$TLS_KEYSTORE -Djavax.net.ssl.keyStorePassword=$TLS_PASSWORD"
cd "$SERVER_HOME" &&
exec "$JAVA_EXECUTABLE" $SERVER_JVMARGS $TLS_SWITCHES -classpath "${SERVER_ADDL_CLASSPATH}${HSQLDB_JAR_PATH}" org.hsqldb.util.MainInvoker org.hsqldb.$TARGET_CLASS $INVOC_ADDL_ARGS

View File

@ -1,3 +1,35 @@
-------------------------------------------------------------------
Wed Sep 4 12:42:55 UTC 2013 - mvyskocil@suse.com
- Update to 2.2.9
* new core fully multithreaded core supports 2PL (two-phased locking)
and MVCC (multiversion concurrency control), plus a hybrid 2PL+MVCC
transaction control mode
* Massive high performance LOB store for BLOBs and CLOBs up to multi-gigabyte
size, with total storage capacity of 64 terabytes.
* Increased default storage space of 16GB for ordinary data, with fast
startup and shutdown. Storage space can be extended to 2TB.
* Large result sets, views and subqueries can now be stored on disk (on the
server side) while being generated and accessed. The threshold to store
a result on disk, as well as the actual fetch size in client-server
configurations can be specified per connection.
* All query conditions, whether in a JOIN or WHERE clause, are now
allocated to an index if possible.
* HyperSQL supports schema-based stored procedures and functions written
entirely in SQL and JAVA.
* Support for BIT, BIT VARYING, CLOB, BLOB, INTERVAL according to the
SQL Standards
* and many more - see http://hsqldb.sourceforge.net/web/features200.html
- Dropped patches
* hsqldb-1.8.0-scripts.patch
* hsqldb-1.8.0.10-suse-initscript.patch
* hsqldb-jdbc-4.1.patch
* hsqldb-tmp.patch
- New patches
* hsqldb-apidocs.patch
* hsqldb-cmdline.patch
- systemd integration and drop init script
------------------------------------------------------------------- -------------------------------------------------------------------
Mon May 21 12:19:01 UTC 2012 - mvyskocil@suse.cz Mon May 21 12:19:01 UTC 2012 - mvyskocil@suse.cz

View File

@ -1,7 +1,7 @@
# #
# spec file for package hsqldb # spec file for package hsqldb
# #
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -17,38 +17,46 @@
Name: hsqldb Name: hsqldb
Version: 1.8.1.13 Version: 2.2.9
Release: 0 Release: 0
Summary: HYperSQL Database Engine Summary: HyperSQL Database Engine
License: BSD-3-Clause License: BSD-3-Clause
Group: Development/Libraries/Java Group: Productivity/Databases/Servers
Url: http://hsqldb.sourceforge.net/ Url: http://hsqldb.sourceforge.net/
Source0: %{name}_1_8_1_3.zip Source0: http://downloads.sourceforge.net/hsqldb/%{name}-%{version}.zip
Source1: %{name}-1.8.0-standard.cfg Source1: hsqldb-1.8.0-standard.cfg
Source2: %{name}-1.8.0-standard-server.properties Source2: hsqldb-1.8.0-standard-server.properties
Source3: %{name}-1.8.0-standard-webserver.properties Source3: hsqldb-1.8.0-standard-webserver.properties
Source4: %{name}-1.8.0-standard-sqltool.rc Source4: hsqldb-1.8.0-standard-sqltool.rc
Source5: %{name}-1.8.0.10.pom Source5: http://www.hsqldb.org/repos/org/hsqldb/hsqldb/%{version}/hsqldb-%{version}.pom
Patch0: %{name}-1.8.0-scripts.patch
Patch1: hsqldb-tmp.patch # Custom systemd files - talking with upstream about incorporating them, see
Patch3: hsqldb-jdbc-4.1.patch # http://sourceforge.net/projects/hsqldb/forums/forum/73673/topic/5367103
Patch1000: hsqldb-1.8.0.10-suse-initscript.patch Source6: hsqldb.systemd
Source7: hsqldb-wrapper
Source8: hsqldb-post
Source9: hsqldb-stop
# Javadoc fails to create since apidocs folder is deleted and not recreated
Patch0: %{name}-apidocs.patch
# Package org.hsqldb.cmdline was only compiled with java 1.5
Patch1: %{name}-cmdline.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch BuildArch: noarch
Requires: java Requires: java
Requires: servletapi5 Requires: servletapi5
%{systemd_requires}
BuildRequires: ant BuildRequires: ant
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: jpackage-utils >= 1.5 BuildRequires: jpackage-utils >= 1.5
BuildRequires: junit BuildRequires: junit
BuildRequires: servletapi5 BuildRequires: servletapi5
BuildRequires: systemd
BuildRequires: unzip BuildRequires: unzip
PreReq: %fillup_prereq
%description %description
HSQLdb is a relational database engine written in JavaTM , with a JDBC HSQLdb is a relational database engine written in JavaTM , with a JDBC
driver, supporting a subset of ANSI-92 SQL. It offers a small (about driver, supporting a subset of ANSI-92 SQL. It offers a small (about
@ -68,108 +76,52 @@ database management system that is completely free under the Modified
BSD License. Yes, that's right, completely free of cost or BSD License. Yes, that's right, completely free of cost or
restrictions! restrictions!
%package manual %package manual
Summary: Hsqldb Database Engine Summary: Manual for %{name}
Group: Development/Libraries/Java Group: Documentation/Other
%description manual %description manual
HSQLdb is a relational database engine written in JavaTM , with a JDBC Manual for %{name}.
driver, supporting a subset of ANSI-92 SQL. It offers a small (about
100k), fast database engine which offers both in memory and disk based
tables. Embedded and server modes are available. Additionally, it
includes tools such as a minimal web server, in-memory query and
management tools (can be run as applets or servlets, too) and a number
of demonstration examples.
Downloaded code should be regarded as being of production quality. The
product is currently being used as a database and persistence engine in
many Open Source Software projects and even in commercial projects and
products! In it's current version it is extremely stable and reliable.
It is best known for its small size, ability to execute completely in
memory and its speed. Yet it is a completely functional relational
database management system that is completely free under the Modified
BSD License. Yes, that's right, completely free of cost or
restrictions!
%package javadoc %package javadoc
Summary: Hsqldb Database Engine Summary: Javadoc for %{name}
Group: Development/Libraries/Java Group: Documentation/HTML
%description javadoc %description javadoc
HSQLdb is a relational database engine written in JavaTM , with a JDBC Javadoc for %{name}.
driver, supporting a subset of ANSI-92 SQL. It offers a small (about
100k), fast database engine which offers both in memory and disk based
tables. Embedded and server modes are available. Additionally, it
includes tools such as a minimal web server, in-memory query and
management tools (can be run as applets or servlets, too) and a number
of demonstration examples.
Downloaded code should be regarded as being of production quality. The
product is currently being used as a database and persistence engine in
many Open Source Software projects and even in commercial projects and
products! In it's current version it is extremely stable and reliable.
It is best known for its small size, ability to execute completely in
memory and its speed. Yet it is a completely functional relational
database management system that is completely free under the Modified
BSD License. Yes, that's right, completely free of cost or
restrictions!
%package demo %package demo
Summary: Hsqldb Database Engine Summary: Demo for %{name}
Group: Development/Libraries/Java Group: Development/Libraries/Java
Requires: %{name} = %{version} Requires: %{name} = %{version}
%description demo %description demo
HSQLdb is a relational database engine written in JavaTM , with a JDBC Demonstrations and samples for %{name}.
driver, supporting a subset of ANSI-92 SQL. It offers a small (about
100k), fast database engine which offers both in memory and disk based
tables. Embedded and server modes are available. Additionally, it
includes tools such as a minimal web server, in-memory query and
management tools (can be run as applets or servlets, too) and a number
of demonstration examples.
Downloaded code should be regarded as being of production quality. The
product is currently being used as a database and persistence engine in
many Open Source Software projects and even in commercial projects and
products! In it's current version it is extremely stable and reliable.
It is best known for its small size, ability to execute completely in
memory and its speed. Yet it is a completely functional relational
database management system that is completely free under the Modified
BSD License. Yes, that's right, completely free of cost or
restrictions!
%prep %prep
%setup -T -c -n %{name} %setup -q -n %{name}-%{version}/%{name}
(cd ..; unzip -q %{SOURCE0})
# set right permissions # set right permissions
find . -name "*.sh" -exec chmod 755 \{\} \; find . -name "*.sh" -exec chmod 755 {} +
# remove all _notes directories # remove all _notes directories
for dir in `find . -name _notes`; do rm -rf $dir; done find . -name _notes -exec rm -rf {} +
# remove all binary libs # remove all binary libs
find . -name "*.jar" -exec rm -f {} \; find . -name "*.jar" -exec rm -f {} +
find . -name "*.class" -exec rm -f {} \; find . -name "*.class" -exec rm -f {} +
find . -name "*.war" -exec rm -f {} \; find . -name "*.war" -exec rm -f {} +
# correct silly permissions # correct silly permissions
chmod -R go=u-w * chmod -R go=u-w *
%patch0 -p0 # Fix doc location
%patch1 -p1 sed -i -e 's/doc-src/doc/g' build/build.xml
%patch3 -p1
%patch1000 -b .suse-initscript
cp %{SOURCE5} pom.xml %patch0 -p1
%patch1 -p1
%build %build
export CLASSPATH=$(build-classpath \ export CLASSPATH=$(build-classpath \
@ -177,73 +129,72 @@ servletapi5 \
junit) junit)
pushd build pushd build
ant jar javadoc export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
ant hsqldb javadoc
popd popd
%install %install
# jar # jar
install -d -m 755 $RPM_BUILD_ROOT%{_javadir} install -d -m 755 %{buildroot}%{_javadir}
install -m 644 lib/%{name}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}.jar install -m 644 lib/%{name}.jar %{buildroot}%{_javadir}/%{name}.jar
# bin # systemd
install -d -m 755 $RPM_BUILD_ROOT%{_bindir} install -d -m 755 %{buildroot}%{_unitdir}
install -m 755 bin/runUtil.sh $RPM_BUILD_ROOT%{_bindir}/%{name}RunUtil install -d -m 755 %{buildroot}%{_prefix}/lib/%{name}
install -m 644 %{SOURCE6} %{buildroot}%{_unitdir}/%{name}.service
install -m 755 %{SOURCE7} %{buildroot}%{_prefix}/lib/%{name}/%{name}-wrapper
install -m 755 %{SOURCE8} %{buildroot}%{_prefix}/lib/%{name}/%{name}-post
install -m 755 %{SOURCE9} %{buildroot}%{_prefix}/lib/%{name}/%{name}-stop
# sysv init
install -d -m 755 $RPM_BUILD_ROOT%{_initrddir}
install -m 755 bin/%{name} $RPM_BUILD_ROOT%{_initrddir}/%{name}
# rchsqldb link # rchsqldb link
install -d -m 0755 $RPM_BUILD_ROOT/%{_sbindir}/ install -d -m 0755 %{buildroot}/%{_sbindir}/
ln -sf %{_sysconfdir}/init.d/%{name} $RPM_BUILD_ROOT/%{_sbindir}/rc%{name} ln -sf ../../sbin/service %{buildroot}/%{_sbindir}/rc%{name}
# sysconfig # sysconfig
#install -d -m 0755 $RPM_BUILD_ROOT/var/adm/fillup-templates #install -d -m 0755 %{buildroot}/var/adm/fillup-templates
#install -m 700 %{SOURCE1} $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.%{name} #install -m 700 %{SOURCE1} %{buildroot}/var/adm/fillup-templates/sysconfig.%{name}
install -d -m 0755 %{buildroot}/%{_sysconfdir}
install -m 0644 %{SOURCE1} %{buildroot}/%{_sysconfdir}/%{name}.conf install -m 0644 %{SOURCE1} %{buildroot}/%{_sysconfdir}/%{name}.conf
# serverconfig # serverconfig
install -d -m 755 $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name} install -d -m 755 %{buildroot}%{_localstatedir}/lib/%{name}
install -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}/server.properties install -m 644 %{SOURCE2} %{buildroot}%{_localstatedir}/lib/%{name}/server.properties
install -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}/webserver.properties install -m 644 %{SOURCE3} %{buildroot}%{_localstatedir}/lib/%{name}/webserver.properties
install -m 600 %{SOURCE4} $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}/sqltool.rc install -m 600 %{SOURCE4} %{buildroot}%{_localstatedir}/lib/%{name}/sqltool.rc
# lib # lib
install -d -m 755 $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}/lib install -d -m 755 %{buildroot}%{_localstatedir}/lib/%{name}/lib
install -m 644 lib/functions $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}/lib
# data
install -d -m 755 $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}/data
# demo
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/demo
install -m 755 demo/*.sh $RPM_BUILD_ROOT%{_datadir}/%{name}/demo
install -m 644 demo/*.html $RPM_BUILD_ROOT%{_datadir}/%{name}/demo
# javadoc # javadoc
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name} install -d -m 755 %{buildroot}%{_javadocdir}/%{name}
cp -r doc/src/* $RPM_BUILD_ROOT%{_javadocdir}/%{name} cp -r doc/apidocs/* %{buildroot}%{_javadocdir}/%{name}
rm -rf doc/src
# data
install -d -m 755 %{buildroot}%{_localstatedir}/lib/%{name}/data
# demo
install -d -m 755 %{buildroot}%{_datadir}/%{name}/sample
rm -f sample/%{name}.init
install -m 644 sample/* %{buildroot}%{_datadir}/%{name}/sample
# manual # manual
install -d -m 755 $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} install -d -m 755 %{buildroot}%{_docdir}/%{name}-%{version}
cp -pr doc/* $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} cp -pr doc/* %{buildroot}%{_docdir}/%{name}-%{version}
cp -p index.html $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} cp -p index.html %{buildroot}%{_docdir}/%{name}-%{version}
%fdupes -s %{buildroot}
cd ..
# Maven metadata # Maven metadata
install -pD -T -m 644 pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP-%{name}.pom install -pD -T -m 644 %{SOURCE5} %{buildroot}%{_mavenpomdir}/JPP-%{name}.pom
%add_to_maven_depmap %{name} %{name} %{version} JPP %{name} %add_maven_depmap
pushd $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}/lib pushd %{buildroot}%{_localstatedir}/lib/%{name}/lib
# build-classpath can not be used as the jar is not # build-classpath can not be used as the jar is not
# yet present during the build # yet present during the build
ln -s %{_javadir}/hsqldb.jar hsqldb.jar ln -s %{_javadir}/hsqldb.jar hsqldb.jar
ln -s $(build-classpath servletapi5) servletapi5.jar ln -s $(build-classpath servletapi5) servletapi5.jar
popd popd
%clean %fdupes -s %{buildroot}
rm -rf $RPM_BUILD_ROOT
%pre %pre
# Add the "hsqldb" user and group # Add the "hsqldb" user and group
@ -259,36 +210,38 @@ else
%{_sbindir}/useradd -r -g %{name} -c "Hsqldb" -s /bin/sh \ %{_sbindir}/useradd -r -g %{name} -c "Hsqldb" -s /bin/sh \
-d %{_localstatedir}/lib/%{name} -o %{name} 2> /dev/null || : -d %{_localstatedir}/lib/%{name} -o %{name} 2> /dev/null || :
fi fi
%service_add_pre %{name}.service
%post %post
%{fillup_and_insserv %{name}} %{fillup_only %{name}}
rm -f %{_localstatedir}/lib/%{name}/lib/hsqldb.jar %service_add_post %{name}.service
rm -f %{_localstatedir}/lib/%{name}/lib/servlet.jar
%postun
%restart_on_update %{name}
%insserv_cleanup
%preun %preun
%stop_on_removal %{name} %service_del_preun %{name}.service
%postun
%service_del_postun %{name}.service
%files %files
%defattr(0644,root,root,0755) %defattr(0644,root,root,0755)
%dir %{_docdir}/%{name}-%{version} %dir %{_docdir}/%{name}-%{version}
%doc %{_docdir}/%{name}-%{version}/hsqldb_lic.txt %doc %{_docdir}/%{name}-%{version}/hsqldb_lic.txt
%{_javadir}/* %{_javadir}/*
%attr(0755,root,root) %{_bindir}/* %{_sbindir}/rc%{name}
%attr(0755,root,root) %{_sbindir}/rc%{name} %{_unitdir}/%{name}.service
%attr(0755,root,root) %{_initrddir}/%{name} %dir %{_prefix}/lib/%{name}/
%attr(0700,hsqldb,hsqldb) %{_localstatedir}/lib/%{name}/data %attr(0755,root,root) %{_prefix}/lib/%{name}/%{name}-post
%attr(0755,root,root) %{_prefix}/lib/%{name}/%{name}-stop
%attr(0755,root,root) %{_prefix}/lib/%{name}/%{name}-wrapper
%{_localstatedir}/lib/%{name}/lib %{_localstatedir}/lib/%{name}/lib
%attr(0700,hsqldb,hsqldb) %{_localstatedir}/lib/%{name}/data
%attr(0644,root,root) %{_localstatedir}/lib/%{name}/server.properties %attr(0644,root,root) %{_localstatedir}/lib/%{name}/server.properties
%attr(0644,root,root) %{_localstatedir}/lib/%{name}/webserver.properties %attr(0644,root,root) %{_localstatedir}/lib/%{name}/webserver.properties
%attr(0600,hsqldb,hsqldb) %{_localstatedir}/lib/%{name}/sqltool.rc %attr(0600,hsqldb,hsqldb) %{_localstatedir}/lib/%{name}/sqltool.rc
%dir %{_localstatedir}/lib/%{name} %dir %{_localstatedir}/lib/%{name}
%config(noreplace) %{_sysconfdir}/%{name}.conf %config(noreplace) %{_sysconfdir}/%{name}.conf
%dir %{_mavenpomdir} %dir %{_mavenpomdir}
%{_mavenpomdir}/JPP-%{name}.pom %{_mavenpomdir}/*
%{_mavendepmapfragdir}/%{name} %{_mavendepmapfragdir}/%{name}
%files manual %files manual

14
hsqldb.systemd Normal file
View File

@ -0,0 +1,14 @@
[Unit]
Description=HyperSQL Database Engine
[Service]
Type=simple
User=hsqldb
Group=hsqldb
ExecStart=-/usr/lib/hsqldb/hsqldb-wrapper
ExecStartPost=/usr/lib/hsqldb/hsqldb-post
ExecStop=/usr/lib/hsqldb/hsqldb-stop
[Install]
WantedBy=multi-user.target

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c3669bbebcb5c722b273f20c316af744d4e263bc90cc20fd1e6296dff7cc3d07
size 3170550