#!/bin/sh
#
#
#    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 the CXF java2js tool 
#

# Check for irritating 'operating systems'.
cygwin=false;
darwin=false;
case "`uname`" in
  CYGWIN*) cygwin=true ;;
  Darwin*) darwin=true
           if [ -z "$JAVA_HOME" ] ; then
             JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
           fi
           ;;
esac

#
# Load common functions
#
DIR="$( cd "$( dirname $0 )" >/dev/null 2>&1 && pwd )"
. "${DIR}/inc"

# Determine the JVM version >= 9
checkJvmVersion

me=`basename $0`
cxf_home=$CXF_HOME
if [ ! -f  $cxf_home/lib/cxf-manifest.jar ]; then
    cxf_home=`dirname $0`/..
fi
                                                                                                                                                             
cxf_jar=$cxf_home/lib/cxf-manifest.jar


if [ ! -f $cxf_jar ]; then 
    if [ ! -f ${cxf_home}/../../../target/srcbuild_env ]; then
        echo "ERROR: Unable to find cxf-manifest.jar in $cxf_home/lib"
        exit 1
    else
        . ${cxf_home}/../../../target/srcbuild_env
        cxf_jar=${CXF_CLASSPATH}
    fi
fi 

#
# add the jdk's tools.jar to the classpath
#

sun_tool_path=""
if [ $darwin = false ] && [ "${VERSION}" -lt "9" ]; then
    sun_tool_path=${JAVA_HOME}/lib/tools.jar
    if [ ! -f $sun_tool_path ]; then
	echo "ERROR: Set JAVA_HOME to the path where the Java Development Kit (JDK) is installed"
	exit 1
    fi
fi 

log_config=$cxf_home/etc/logging.properties 


# For Cygwin, switch paths to appropriate format before running java
# For PATHs convert to unix format first, then to windows format to ensure
# both formats are supported. Probably this will fail on directories with ;
# in the name in the path. Let's assume that paths containing ; are more
# rare than windows style paths on cygwin.
if $cygwin; then
  if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; then
    format=mixed
  else
    format=windows
  fi
  cxf_classpath=`cygpath --$format "${cxf_jar}"`
  if [ ! -z "${CLASSPATH}" ]; then
    cxf_classpath=${cxf_classpath}\;`cygpath --$format --path "${CLASSPATH}"`
  fi
  if [ ! -z "${sun_tool_path}" ] ; then
    cxf_classpath=${cxf_classpath}\;`cygpath --$format "${sun_tool_path}"`
  fi
  log_config=`cygpath --$format "$log_config"`
else
  cxf_classpath=${cxf_jar}:${CLASSPATH}:${sun_tool_path}
fi

if [ "x${JAVA_MAX_MEM}" = "x" ]; then
    JAVA_MAX_MEM=512M
    export JAVA_MAX_MEM
fi

if [ "${VERSION}" -gt "8" ]; then
    $JAVA_HOME/bin/java -Xmx${JAVA_MAX_MEM} -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.java2js.JavaToJS "$@"
else
    $JAVA_HOME/bin/java -Xmx${JAVA_MAX_MEM} -Djava.endorsed.dirs="${cxf_home}/lib/endorsed" -cp "${cxf_classpath}" -Djava.util.logging.config.file=$log_config org.apache.cxf.tools.java2js.JavaToJS "$@"
fi
