blob: 28cca314af2d970c456913bf8c26caafc86f961e [file]
#!/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.
# DAFFODIL_CLASSPATH
#
# The Daffodil implementation will look on the classpath for 'includes' and
# 'imports'. To defined additional directories where Daffodil should look for
# files, set the DAFFODIL_CLASSPATH environment variable, for example:
#
# export DAFFODIL_CLASSPATH="/path/to/imports/:/path/to/includes/"
#
# In addition to defining directories to search for imports and includes, you
# can add a "CatalogManager.properties" file to the DAFFODIL_CLASSPATH to
# direct Daffodil to a relative path location of a user XML Catalog.
#
#
# DAFFODIL_JAVA_OPTS
#
# If you need to specify java options specific to Daffodil, you can set the
# DAFFODIL_JAVA_OPTS environment variable. If not specified, the JAVA_OPTS
# environment variable will be used. If that is not specified, reasonable
# defaults for Daffodil will be defined.
realpath() {
THISPWD=$PWD
LNK=$1
while [ "$LNK" ]; do
cd "$(dirname "$LNK")" || return
BN=$(basename "$LNK")
LNK=$(readlink "$BN")
done
REALPATH="$PWD/$BN"
cd "$THISPWD" || return
echo "$REALPATH"
}
MAINCLASS=org.apache.daffodil.cli.Main
SCRIPT=$(realpath "$0") # Full path to script, needed for symlinks
BINDIR=$(dirname "${SCRIPT}") # Directory script is run in
LIBDIR="$BINDIR/../lib"
CONFDIR="$BINDIR/../conf"
CLASSPATH=$LIBDIR/'*'
if [ -n "$DAFFODIL_JAVA_OPTS" ]; then
JOPTS="$DAFFODIL_JAVA_OPTS"
elif [ -n "$JAVA_OPTS" ]; then
JOPTS="$JAVA_OPTS"
fi
if [ -n "$DAFFODIL_CLASSPATH" ]; then
CLASSPATH="$CLASSPATH:$DAFFODIL_CLASSPATH"
fi
if uname -a | grep -qi cygwin
then
# if run from cygwin, convert unix paths to windows paths
CLASSPATH=$(cygpath -apw "$CLASSPATH")
fi
# Prepend additional java options that must be provided. By prepending, a user
# can override options by redefining them in JAVA_OPTS or DAFFODIL_JAVA_OPTS
DEFAULT_JOPTS=(
"-Xms1024m"
"-Xmx1024m"
"-XX:ReservedCodeCacheSize=128m"
)
exec java "${DEFAULT_JOPTS[@]}" $JOPTS -cp "$CLASSPATH" $MAINCLASS "$@"