#!/bin/sh
#
# owbenv 
#
# Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. 
#
#    NAME
#      owbenv - OWB environment setup script
#
#    DESCRIPTION
#      Setting up various environment variables for launching OWB including
#      JAVA_HOME, ORACLE_HOME, OWB_HOME, OWB_JRT_RUN_HOME, LD_LIBRARY_PATH
#
#    OPTIONS
#      -debug          add debugging JVM options
#      -jdbctrace      add tracing for JDBC operations
#      -env            print environment information
#
#    MODIFIED   (MM/DD/YY)
#    dwhittin    12/22/08 - Removed DOS sytax and replaced with unix equivalent
#    dwhittin    12/19/08 - Correct JAVA_HOME - remove extra jre folder level
#    jkho        08/04/07 - 
#    sochen      08/03/07 - 
#    thlau       06/28/07 - Creation
#

# initialize OWB software product root
if [ "x$OWB_HOME" = "x" ]; then
  OWB_HOME=/oracle/EPP/11203
fi
OWB_JRT_RUN_HOME=$OWB_HOME/owb/jrt
OWB_ADMIN_DIR=$OWB_HOME/owb/bin/admin
export OWB_HOME
export OWB_JRT_RUN_HOME

# setup JAVA_HOME
# bug 9004286, always use the bundled jdk
JAVA_HOME=$OWB_HOME/jdk
#if [ "x$JAVA_HOME" = "x" ]; then
#  JAVA_HOME=$OWB_HOME/jdk
#fi

# setup default ORACLE_HOME for OWB
if [ "x$ORACLE_HOME" = "x" ]; then
  ORACLE_HOME=$OWB_HOME
  export ORACLE_HOME
fi

# setup default OC4J home for OWB
if [ "x$OC4J_HOME" = "x" ]; then
  OC4J_HOME=$OWB_HOME/oc4j
  export OC4J_HOME
fi

# obtain current platform
PLATFORM=`/bin/uname -s`

# execute external (if any) OWB environment script
if [ "x$OWB_ENV_EXT" != "x" ]; then
  if [ -f $OWB_ENV_EXT ]; then
    . $OWB_ENV_EXT
  fi
fi

# setup OWB JVM memory settings
OWB_JVM_MEM_OPTS="-Xms128M -Xmx768M"

# setup JVM -X, -XX and GC options for OWB
OWB_JVM_XOPTS=""
case $PLATFORM in
  OSF1)
    OWB_JVM_XOPTS="-Xgc:ignore_explicit"
    ;;
  AIX)
    OWB_JVM_XOPTS="-Xverify:none -Xdisableexplicitgc"
    ;;
  Linux)
    MACH_HARDWARE=`/bin/uname -m`
    case $MACH_HARDWARE in
      ppc64)
        OWB_JVM_XOPTS="-Xverify:none -Xdisableexplicitgc"
        ;;
      s390)
        OWB_JVM_XOPTS="-Xverify:none -Xdisableexplicitgc"
        ;;
      s390x)
        OWB_JVM_XOPTS="-Xverify:none -Xdisableexplicitgc"
        ;;
    esac
    ;;
esac
if [ "x$OWB_JVM_XOPTS" = "x" ]; then
  OWB_JVM_XOPTS="-Xverify:none -XX:MaxPermSize=256M -XX:+DisableExplicitGC"
fi

# setup OWB JVM general options
if [ "x$OWB_JVM_OPTS" != "x" ]; then
  OWB_JVM_OPTS=`eval echo $OWB_JVM_OPTS`  # expand $ORACLE_HOME if necessary
fi
OWB_JVM_OPTS="$OWB_JVM_OPTS -Dlimit=768M"
OWB_JVM_OPTS="$OWB_JVM_OPTS -Doracle.net.tns_admin=$ORACLE_HOME/network/admin"
OWB_JVM_OPTS="$OWB_JVM_OPTS -DTCLLIBPATH=\"$TCLLIBPATH\""
OWB_JVM_OPTS="$OWB_JVM_OPTS -Dide.conf=\"$OWB_HOME/owb/bin/owb.conf\""
OWB_JVM_OPTS="$OWB_JVM_OPTS -Dide.startingcwd=\"$OWB_HOME/owb/bin\""
OWB_JVM_OPTS="$OWB_JVM_OPTS -Dide.user.dir=\"$HOME/owbhome-fcp\""

# setup LD_LIBRARY_PATH and SHLIB_PATH
case $PLATFORM in 
  HP-UX)
    SHLIB_PATH=$ORACLE_HOME/lib32:$OWB_ADMIN_DIR:$SHLIB_PATH
    export SHLIB_PATH
    LD_LIBRARY_PATH=$ORACLE_HOME/lib:$OWB_ADMIN_DIR:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH
       JAVA64FLAG=-d64
       export JAVA64FLAG
    ;;
  AIX)
    LIBPATH=$ORACLE_HOME/lib32:$OWB_ADMIN_DIR:$LIBPATH
    export LIBPATH
    ;;
  Linux)
    LD_LIBRARY_PATH=$ORACLE_HOME/lib:$OWB_ADMIN_DIR:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH
    MACH_HARDWARE=`/bin/uname -m`
    case $MACH_HARDWARE in
        s390x) JAVA64FLAG=-d64
               export JAVA64FLAG;;
        *) ;;
     esac
    ;;
  SunOS)
    MACH_HARDWARE=`/bin/uname -i`;
    case $MACH_HARDWARE in
      i86pc)
        LD_LIBRARY_PATH=$ORACLE_HOME/lib:$OWB_ADMIN_DIR:$LD_LIBRARY_PATH
        export LD_LIBRARY_PATH
        ;;
      *)
        LD_LIBRARY_PATH=$ORACLE_HOME/lib32:$OWB_ADMIN_DIR:$LD_LIBRARY_PATH
        export LD_LIBRARY_PATH
        LD_LIBRARY_PATH_64=$ORACLE_HOME/lib:$OWB_ADMIN_DIR:$LD_LIBRARY_PATH_64
        export LD_LIBRARY_PATH_64
        ;;
      esac;
       JAVA64FLAG=-d64
       export JAVA64FLAG
    ;;
  OSF1)
    LD_LIBRARY_PATH=$ORACLE_HOME/lib:$OWB_ADMIN_DIR:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH
    ;;
  *)
    LD_LIBRARY_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/lib:$OWB_ADMIN_DIR:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH
    ;;
esac

# OWB launch options
while [ $# -gt 0 ]; do
  case $1 in
    -debug)
      OWB_JVM_OPTS="$OWB_JVM_OPTS -client -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=4000"
      ;;
    -jdbctrace)
      OWB_JVM_OPTS="$OWB_JVM_OPTS -Doracle.jdbc.Trace=true -Djava.util.logging.config.file=OracleLog.properties"
      ;;
    *)
      break
      ;;
  esac
  shift
done

# setup OWB launcher paths
if [ "x$OEM_HOME" = "x" ]; then
  OEM_HOME=$OWB_HOME
fi
if [ "x$IAS_HOME" = "x" ]; then
  IAS_HOME=$OWB_HOME
fi
OWB_JVM_OPTS="$OWB_JVM_OPTS -DOWB_HOME=$OWB_HOME -DJDK_HOME=$JAVA_HOME -DORA_HOME=$OWB_HOME -DOEM_HOME=$OEM_HOME -DIAS_HOME=$IAS_HOME"
if [ "x$OWB_LAUNCHER_CLASSPATH" = "x" ]; then
  OWB_LAUNCHER_CLASSPATH="$OWB_ADMIN_DIR/owb.classpath"
fi

# setup OWB Java classpath
if [ "x$OWB_CLASSPATH" != "x" ]; then
  OWB_CLASSPATH=$OWB_CLASSPATH:
fi
OWB_CLASSPATH=$OWB_CLASSPATH$OWB_ADMIN_DIR:$OWB_ADMIN_DIR/launcher.jar:$CLASSPATH
if [ "x$MIMB_JAR" != "x" ]; then
  OWB_CLASSPATH=$OWB_CLASSPATH:$MIMB_JAR
fi

# command to launch JVM
OWB_JAVA_CMD="$JAVA_HOME/jre/bin/java $JAVA64FLAG $OWB_JVM_MEM_OPTS $OWB_JVM_XOPTS $OWB_JVM_OPTS"
OWB_LAUNCHER_CMD="$OWB_JAVA_CMD -classpath $OWB_CLASSPATH Launcher $OWB_LAUNCHER_CLASSPATH"

while [ $# -gt 0 ]; do
  case $1 in
    -env)
      echo "Printing OWB environment information"
      echo "PLATFORM=$PLATFORM"
      echo "OWB_HOME=$OWB_HOME"
      echo "JAVA_HOME=$JAVA_HOME"
      echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
      if [ "x$SHLIB_PATH" != "x" ]; then
        echo "SHLIB_PATH=$SHLIB_PATH"
      fi
      if [ "x$LD_LIBRARY_PATH_64" != "x" ]; then
        echo "LD_LIBRARY_PATH_64=$LD_LIBRARY_PATH_64"
      fi
      echo "ORACLE_HOME=$ORACLE_HOME"
      echo "OC4J_HOME=$OC4J_HOME"
      echo "OWB_JVM_MEM_OPTS=$OWB_JVM_MEM_OPTS"
      echo "OWB_JVM_XOPTS=$OWB_JVM_XOPTS"
      echo "OWB_JVM_OPTS=$OWB_JVM_OPTS"
      echo "OWB_CLASSPATH=$OWB_CLASSPATH"
      echo "OWB_LAUNCHER_CLASSPATH=$OWB_LAUNCHER_CLASSPATH"
      echo "OWB_JRT_RUN_HOME=$OWB_JRT_RUN_HOME"
      ;;
    *)
      break
      ;;
  esac
  shift
done

#fix OC4j Bug on secure-web-site.xml
. $OWB_HOME/owb/bin/unix/fix_secure_web_site.sh
# change to OWB admin directory
cd $OWB_ADMIN_DIR