blob: 6399b8ea519c4428f903e39ed81960fe370b9582 [file] [log] [blame]
#!/usr/bin/env bash
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
## Run Fuseki, include development code if it looks like it's available.
function check_dir() {
local NAME="$1"
local DIR="$2"
if [ ! -e "$DIR" ]
then
echo "$NAME: '$DIR' does not exist" 1>&2
exit 1
fi
if [ ! -d "$DIR" ]
then
echo "$NAME: '$DIR' exists but is not a directory" 1>&2
exit 1
fi
}
export FUSEKI_HOME="${FUSEKI_HOME:-$PWD}"
check_dir "FUSEKI_HOME" "$FUSEKI_HOME"
export FUSEKI_BASE="${FUSEKI_BASE:-$FUSEKI_HOME/run}"
check_dir "FUSEKI_BASE" "$FUSEKI_BASE"
CPF="$FUSEKI_HOME/fuseki.classpath"
if [ ! -e "$CPF" ]; then
echo "Need to create Fuseki classpath file"
echo "Ensure maven is upto date with the latest snapshots and then run"
echo -e "( cd $FUSEKI_HOME ; \n mvn dependency:build-classpath -Dmdep.outputFile=fuseki.classpath )"
exit 1
fi
CP="$(cat $CPF)"
# Add development directories.
if [ -e "$FUSEKI_HOME/classes" ]
then
CP="$FUSEKI_HOME/classes:$CP"
elif [ -e "$FUSEKI_HOME/target/classes" ]
then
CP="$FUSEKI_HOME/target/classes:$CP"
fi
# Prepend any development directories here
DEVDIRS="jena-core jena-tdb jena-arq jena-text jena-fuseki2/jena-fuseki-core jena-fuseki2/jena-fuseki-webapp"
for X in $DEVDIRS
do
CPX="$FUSEKI_HOME/../../$X/target/classes"
if [ -e "$CPX" ]
then
CP="$CPX:$CP"
fi
done
## echo "$CP"
## exit
FUSEKI_LOG="" #${FUSEKI_LOG:-}
if [ -z "$JAVA" ]
then
if [ -z "$JAVA_HOME" ]
then
JAVA=$(which java)
else
JAVA=$JAVA_HOME/bin/java
fi
fi
if [ -z "$JAVA" ]
then
(
echo "Cannot find a Java JDK."
echo "Please set either set JAVA or JAVA_HOME and put java (>=1.8) in your PATH."
) 1>&2
exit 1
fi
JVM_ARGS=${JVM_ARGS:--Xmx1200M}
# Debug assistence
## echo "++++ Classpath:"
## echo "$(echo $CP | sed -e "s/:/\n/g")"
## exit
exec "$JAVA" -cp "$CP" $JVM_ARGS $FUSEKI_LOG org.apache.jena.fuseki.cmd.FusekiCmd "$@"
# Run as war file.
# java -jar jetty-runner.jar fuseki-server.war