lib/
+java-jdk/
+javafx-sdk/
*.exe
*.zip
*.dmg
-*.app
\ No newline at end of file
+*.app
+*.tar.gz
--- /dev/null
+#!/bin/bash
+set -eu
+
+# --------------------------------------------------------------------
+# Fetch Java JDK, JavaJFX SDK, and a Java JSON library. Unpack
+# each to the required location.
+# --------------------------------------------------------------------
+
+JAVA_VERSION=11.0.2
+JDK_DIR="jdk-$JAVA_VERSION"
+JFX_DIR="javafx-sdk-$JAVA_VERSION"
+JDK_DIR_SHORT="java-jdk"
+JFX_DIR_SHORT="javafx-sdk"
+UNZIP="unzip -q"
+
+WIN_JDK_ZIP="openjdk-${JAVA_VERSION}_windows-x64_bin.zip"
+WIN_JFX_ZIP="openjfx-${JAVA_VERSION}_windows-x64_bin-sdk.zip"
+WIN_JDK_URL="https://download.java.net/java/GA/jdk11/9/GPL/$WIN_JDK_ZIP"
+WIN_JFX_URL="https://download2.gluonhq.com/openjfx/$JAVA_VERSION/$WIN_JFX_ZIP"
+
+LINUX_JDK_TAR="openjdk-${JAVA_VERSION}_linux-x64_bin.tar.gz"
+LINUX_JFX_ZIP="openjfx-${JAVA_VERSION}_linux-x64_bin-sdk.zip"
+LINUX_JDK_URL="https://download.java.net/java/GA/jdk11/9/GPL/$LINUX_JDK_TAR"
+LINUX_JFX_URL="https://download2.gluonhq.com/openjfx/$JAVA_VERSION/$LINUX_JFX_ZIP"
+
+JSON_BUILD="20160810"
+JSON_JAR="json-$JSON_BUILD.jar"
+JSON_URL="https://search.maven.org/remotecontent?filepath=org/json/json/$JSON_BUILD/$JSON_JAR"
+
+PLATFORM=$1;
+
+if [ "$PLATFORM" == "windows" ]; then
+
+ if [ ! -d "$JDK_DIR" ]; then
+ if [ ! -f "$WIN_JDK_ZIP" ]; then
+ wget "$WIN_JDK_URL";
+ fi;
+ $UNZIP "$WIN_JDK_ZIP"
+ fi;
+
+ if [ ! -d "$JFX_DIR" ]; then
+ if [ ! -f "$WIN_JFX_ZIP" ]; then
+ wget "$WIN_JFX_URL";
+ fi;
+ $UNZIP "$WIN_JFX_ZIP"
+ fi;
+
+elif [ "$PLATFORM" == "linux" ]; then
+
+ if [ ! -d "$JDK_DIR" ]; then
+ if [ ! -f "$LINUX_JDK_TAR" ]; then
+ wget "$LINUX_JDK_URL";
+ fi;
+ tar -zxf "$LINUX_JDK_TAR"
+ fi;
+
+ if [ ! -d "$JFX_DIR" ]; then
+ if [ ! -f "$LINUX_JFX_ZIP" ]; then
+ wget "$LINUX_JFX_URL";
+ fi;
+ $UNZIP "$LINUX_JFX_ZIP"
+ fi;
+
+else
+ echo "Platform argument required";
+ echo "$0 windows | linux";
+ exit 1;
+fi;
+
+mkdir -p lib
+if [ ! -f lib/$JSON_JAR ]; then
+ echo "Fetching JSON libs..."
+ wget -O lib/$JSON_JAR $JSON_URL
+fi;
+
+rm -rf "$JDK_DIR_SHORT" "$JFX_DIR_SHORT";
+mv "$JDK_DIR" "$JDK_DIR_SHORT";
+mv "$JFX_DIR" "$JFX_DIR_SHORT";
+
+if [ "$PLATFORM" == "windows" ]; then
+ echo "Please remove the downloaded ZIP files before completing the Windows build"
+ echo
+ echo "rm $WIN_JDK_ZIP"
+ echo "rm $WIN_JFX_ZIP"
+ echo
+fi;
+
REM Windows Hatch Execution Script
REM @echo off required for STDIO to work with the browser.
-REM NOTE: Do not EVER set ERRORLEVEL for any reason; it's a passthrough variable that takes on the current value
-REM of the errorlevel return status but if you assign to it that magic passthrough is broken and it's just set to that value.
-REM This is necessary to do sensible comparisons against it. (such as EQU) The 'if errorlevel' construct is completely bananas.
-REM Also: automatic path testing only looks for 'java' - if you don't have the JDK in your path you'll need to fix that yourself.
-
-REM Assume java executables are in our path
-SET JAVA=java
-SET JAVAC=javac
-SET JAR=jar
-
-REM Optionally override the java path
-REM SET JAVA_HOME="C:\Program Files\Java\jdk1.8.0_111"
-REM SET JAVA=%JAVA_HOME%\bin\java
-REM SET JAVAC=%JAVA_HOME%\bin\javac
-REM SET JAR=%JAVA_HOME%\bin\jar
-
-REM Is anyone there?
-%JAVA% -version 2>nul
-
-IF %ERRORLEVEL% EQU 0 GOTO Huzzah
-
-REM Are you still there?
-SET JAVA=%PROGRAMDATA%\Oracle\Java\javapath\java
-%JAVA% -version 2>nul
-
-IF %ERRORLEVEL% EQU 0 GOTO Huzzah
-
-REM I don't blame you
-EXIT /B %ERRORLEVEL%
-
-REM There you are.
-:Huzzah
+REM Use the locally extracted Java/JFX libs
+SET JAVA_HOME=java-jdk
+SET JAVA=%JAVA_HOME%\bin\java
+SET JAVAC=%JAVA_HOME%\bin\javac
+SET JAR=%JAVA_HOME%\bin\jar
+SET JAVAFX_HOME=javafx-sdk
+SET JAVAFX_MODS=javafx.base,javafx.graphics,javafx.web
REM %~1 means to strip %1 of any surrounding quotes.
REM This is necessary if you're going to use a construction like "%1" == "etc" because a quoted %1 will
IF "%~1" == "compile" (
%JAVAC% -cp "lib\*" -Xdiags:verbose^
+ --module-path %JAVAFX_HOME%\lib --add-modules=%JAVAFX_MODS%^
-d lib src\org\evergreen_ils\hatch\*.java
%JAR% cf lib\hatch.jar -C lib org
%JAVA% -cp "lib\*"^
-Djava.util.logging.config.file=logging.properties^
+ --module-path %JAVAFX_HOME%\lib --add-modules=%JAVAFX_MODS%^
org.evergreen_ils.hatch.TestHatch | %JAVA% -cp "lib\*"^
-Djava.util.logging.config.file=logging.properties^
+ --module-path %JAVAFX_HOME%\lib --add-modules=%JAVAFX_MODS%^
org.evergreen_ils.hatch.Hatch | %JAVA% -cp "lib\*"^
-Djava.util.logging.config.file=logging.properties^
+ --module-path %JAVAFX_HOME%\lib --add-modules=%JAVAFX_MODS%^
org.evergreen_ils.hatch.TestHatch receive
) ELSE ( REM No options means run Hatch
%JAVA% -cp "lib\*"^
-Djava.util.logging.config.file=logging.properties^
+ --module-path %JAVAFX_HOME%\lib --add-modules=%JAVAFX_MODS%^
org.evergreen_ils.hatch.Hatch
)
#
# Linux/Mac Hatch Execution Script
-# Use this for openjdk
-JAVA_HOME=/usr
-# Use this for local extract of Java libs
-#JAVA_HOME=jdk1.8
+# Reference local JDK/JFX bundles.
+JAVA_HOME="./java-jdk"
+JAVAFX_HOME="./javafx-sdk"
+JAFAFX_MODS="--module-path $JAVAFX_HOME/lib --add-modules=javafx.base,javafx.graphics,javafx.web"
JAVA=$JAVA_HOME/bin/java
JAVAC=$JAVA_HOME/bin/javac
JAR=$JAVA_HOME/bin/jar
LOGS=-Djava.util.logging.config.file=logging.properties
-JSON_BUILD="20160810"
-JSON_JAR="json-$JSON_BUILD.jar"
-JSON_URL="https://search.maven.org/remotecontent?filepath=org/json/json/$JSON_BUILD/$JSON_JAR"
COMMAND="$1"
if [ "$COMMAND" == "compile" ]; then
- mkdir -p lib
- if [ ! -f lib/$JSON_JAR ]; then
- echo "Fetching JSON libs..."
- wget -O lib/$JSON_JAR $JSON_URL
- fi;
-
$JAVAC -Xdiags:verbose -Xlint:unchecked \
- -cp lib/\* -d lib src/org/evergreen_ils/hatch/*.java
+ -cp lib/\* -d lib $JAFAFX_MODS src/org/evergreen_ils/hatch/*.java
# Create a JAR file from the compiled class files them remove them.
$JAR cf lib/hatch.jar -C lib org
# 2. Run Hatch and process messages emitted from #1.
# 3. Run TestHatch in receive mode to log the responses.
- $JAVA "$LOGS" -cp lib/\* org.evergreen_ils.hatch.TestHatch \
- | $JAVA "$LOGS" -cp lib/\* org.evergreen_ils.hatch.Hatch \
- | $JAVA "$LOGS" -cp lib/\* org.evergreen_ils.hatch.TestHatch receive
+ $JAVA "$LOGS" -cp lib/\* $JAFAFX_MODS org.evergreen_ils.hatch.TestHatch \
+ | $JAVA "$LOGS" -cp lib/\* $JAFAFX_MODS org.evergreen_ils.hatch.Hatch \
+ | $JAVA "$LOGS" -cp lib/\* $JAFAFX_MODS org.evergreen_ils.hatch.TestHatch receive
else
# run Hatch
- $JAVA "$LOGS" -cp lib/\* org.evergreen_ils.hatch.Hatch
+ $JAVA "$LOGS" -cp lib/\* $JAFAFX_MODS org.evergreen_ils.hatch.Hatch
fi;
~~~~~~~~~~~~
1. NSIS
-3. JDK or OpenJDK v. 1.8 or higher
+2. OpenJDK and OpenJFX v. 1.11 or higher
+
[[pre-installation]]
Pre-Installation
~~~~~~~~~~~~~~~~
+Download the OpenJDK and OpenJFX bundles for Windows since they
+are added directly to the installer.
+
+[source,sh]
+-----------------------------------------------------------------------------
+
+-----------------------------------------------------------------------------
+
+
[[compiling-hatch]]
Compiling Hatch
^^^^^^^^^^^^^^^
2. The ``Select Printer'' drop-down should show your printer(s).
3. The various printer attribute selectors should show values
supported +
-by the selected printer.
\ No newline at end of file
+by the selected printer.