#!/bin/ksh

###############################################
# Defines
###############################################

CAT=/usr/bin/cat
CP=/usr/bin/cp
ECHO=/usr/bin/echo
GREP=/usr/bin/grep
ID=/usr/bin/id
NAWK=/usr/bin/nawk
RM=/usr/bin/rm
SED=/usr/bin/sed
STTY=/usr/bin/stty
UNIQ=/usr/bin/uniq

OMIT_CHAR='\c'
BELL_CHAR='\a'

STATE_FILE="/etc/opt/SUNWps/PSConfig.properties"

###############################################
# Get configuration from file
###############################################
GrabConfig() {
  local FILE=$1
  local KEY=$2
  local SEPARATOR=$3

  ANSWER=`$GREP "^$KEY$SEPARATOR" $FILE | $UNIQ | $SED -e "s/$KEY$SEPARATOR//"`
}

###############################################
# Question
###############################################
Question() {
  local PROMPT=$1
  local DEFAULT=$2
  local VALID_CHARS=$3
  local DONE=""
  local CHECK=""

  DONE="n"
  while [ "$DONE" = "n" ]; do
    if [ "$DEFAULT" != "" ]; then
      $ECHO "$PROMPT [$DEFAULT] $OMIT_CHAR"
    else
      $ECHO "$PROMPT $OMIT_CHAR"
    fi
    read ANSWER
    if [ "$ANSWER" = "" ]; then
      ANSWER=$DEFAULT
      DONE="y"
    else
      CHECK=`$ECHO $ANSWER | $GREP "[^$VALID_CHARS]"`
      if [ "$CHECK" = "" ]; then
        DONE="y"
      else
        $ECHO "Invalid answer! $BELL_CHAR"
      fi
    fi
  done
}

###############################################
# Pause
###############################################
Pause() {
  local ANSWER=""

  $ECHO "Press any key when ready to continue... $OMIT_CHAR"
  read ANSWER
}

###############################################
# Get password
###############################################
GetPassword() {
  local PROMPT=$1
  local DONE=""

  DONE="n"
  while [ "$DONE" = "n" ]; do
    $ECHO "$PROMPT $OMIT_CHAR"
    $STTY -echo
    read ANSWER
    $STTY echo
    $ECHO ""
    if [ "$ANSWER" != "" ]; then
      DONE="y"
    fi
  done
}

###############################################
# Append line in file
###############################################
AppendLine() {
  local FILE=$1
  local MATCH=$2
  local TEXT=$3

  $CP $FILE $FILE-tmp
$SED -e "/$MATCH/ {
a\\
$TEXT
}" $FILE-tmp > $FILE
  $RM $FILE-tmp
}

###############################################
# Delete line in file
###############################################
DeleteLine() {
  local FILE=$1
  local MATCH=$2

  $CP -p $FILE $FILE-tmp
  $SED -e "/$MATCH/d" $FILE-tmp > $FILE
  $RM $FILE-tmp
}

###############################################
# Update webserver classpath
###############################################
UpdateWebserverClassPath() {
  local STR=$1
  local FILE=""

  FILE="$DEPLOY_DIR/https-$DEPLOY_INSTANCE/config/server.xml"
  $GREP "$STR" $FILE > /dev/null
  if [ $? -ne 0 ]; then
    $CP $FILE $FILE-tmp
    $SED -e "s#serverclasspath=\"#serverclasspath=\"$STR:#" $FILE-tmp > $FILE
    $RM -f $FILE-tmp
  fi
}

###############################################
# Update appserver classpath
###############################################
UpdateAppserverClassPath() {
  local STR=$1
  local FILE=""

  FILE="$DEPLOY_DOMAIN/$DEPLOY_INSTANCE/config/server.xml"
  $GREP "$STR" $FILE > /dev/null
  if [ $? -ne 0 ]; then
    $CP $FILE $FILE-tmp
    $SED -e "s#server-classpath=\"#server-classpath=\"$STR:#" $FILE-tmp > $FILE
    $RM -f $FILE-tmp
  fi
}

###############################################
# Update weblogic classpath
###############################################
UpdateWebLogicClassPath() {
  local STR=$1
  local FILES=""
  local FILE=""

  FILES="$DEPLOY_DIR/$DEPLOY_PROJECT_DIR/domains/$DEPLOY_DOMAIN/startWebLogic.sh $DEPLOY_DIR/$DEPLOY_PROJECT_DIR/domains/$DEPLOY_DOMAIN/startManagedWebLogic.sh"
  for FILE in $FILES; do
    $GREP "$STR" $FILE > /dev/null
    if [ $? -ne 0 ]; then
      $GREP "CLASSPATH=\"" $FILE > /dev/null
      if [ $? -ne 0 ]; then
        AppendLine $FILE "SERVER_NAME=" "CLASSPATH=\"$STR:\$CLASSPATH\""
      else
        $CP $FILE $FILE-tmp
        $SED -e "s#CLASSPATH=\"#CLASSPATH=\"$STR:#" $FILE-tmp > $FILE
        $RM -f $FILE-tmp
      fi
    fi
  done
}

###############################################
# Updat WebSphereClasspath
###############################################
UpdateWebSphereClassPath() {
  local STR=$1
  local FILE=""
  local JVM_ENTRIES=""

  FILE=$DEPLOY_DIR/config/cells/$DEPLOY_CELL/nodes/$DEPLOY_NODE/servers/$DEPLOY_INSTANCE/server.xml
  $GREP "$STR" $FILE > /dev/null
  if [ $? -ne 0 ]; then
    $GREP "<classpath>" $FILE > /dev/null
    if [ $? -ne 0 ]; then
      $GREP "<\/jvmEntries>" $FILE > /dev/null
      if [ $? -ne 0 ]; then
	JVM_ENTRIES=`$GREP "<jvmEntries" $FILE | $SED -e "s#\/##g"`
	DeleteLine $FILE "<jvmEntries"
	AppendLine $FILE "<monitoringPolicy" "$JVM_ENTRIES"
	AppendLine $FILE "<jvmEntries" "<classpath>$STR</classpath>"
	AppendLine $FILE "<\/classpath>" "</jvmEntries>"
      else
	AppendLine $FILE "<jvmEntries" "<classpath>$STR</classpath>"
      fi
    else
      $CP $FILE $FILE-tmp
      $SED -e "s#<classpath>#<classpath>$STR:#" $FILE-tmp > $FILE
      $RM -f $FILE-tmp
    fi
  fi
}

###############################################
# Update weblogic library path.
###############################################
UpdateWebLogicLibraryPath() {
  local STR=$1
  local FILES=""
  local FILE=""

  FILES="$DEPLOY_DIR/$DEPLOY_PROJECT_DIR/domains/$DEPLOY_DOMAIN/startWebLogic.sh $DEPLOY_DIR/$DEPLOY_PROJECT_DIR/domains/$DEPLOY_DOMAIN/startManagedWebLogic.sh"
  for FILE in $FILES; do
    $GREP "$STR" $FILE > /dev/null
    if [ $? -ne 0 ]; then
      $GREP "LD_LIBRARY_PATH=\"" $FILE > /dev/null
      if [ $? -ne 0 ]; then
        AppendLine $FILE "SERVER_NAME=" "LD_LIBRARY_PATH=\"$STR:\$LD_LIBRARY_PATH\""
        AppendLine $FILE "LD_LIBRARY_PATH=" "export LD_LIBRARY_PATH"
      else
        $CP $FILE $FILE-tmp
        $SED -e "s#LD_LIBRARY_PATH=\"#LD_LIBRARY_PATH=\"$STR:#" $FILE-tmp > $FILE
        $RM -f $FILE-tmp
      fi
    fi
  done
}

###############################################
# Update WebSphereLibraryPath
###############################################
UpdateWebSphereLibraryPath () {
  local STR=$1
  local FILE=""

  FILE="$DEPLOY_DIR/bin/setupCmdLine.sh"
  $GREP "$STR" $FILE > /dev/null
  if [ $? -ne 0 ]; then
    $GREP "LD_LIBRARY_PATH=\"" $FILE > /dev/null
    if [ $? -ne 0 ]; then
      $ECHO "" >> $FILE
      $ECHO "LD_LIBRARY_PATH=$STR:\$LD_LIBRARY_PATH" >> $FILE
      $ECHO "export LD_LIBRARY_PATH" >> $FILE
      $ECHO "" >> $FILE
    else
      $CP $FILE $FILE-tmp
      $SED -e "s#LD_LIBRARY_PATH=\"#LD_LIBRARY_PATH=\"$STR:#" $FILE-tmp > $FILE
      $RM -f $FILE-tmp
    fi
  fi
}

###############################################
# Main
###############################################

if [ `$ID | $NAWK '{print $1}'` != "uid=0(root)" ]; then
  $ECHO "You must be root user. $BELL_CHAR"
  exit 1
fi

if [ ! -f $STATE_FILE ]; then
  $ECHO "Error: $STATE_FILE does not exist."
  exit 1
fi

GrabConfig $STATE_FILE "JDK_DIR" "="
if [ "$ANSWER" != "" ]; then
  JDK_DIR=$ANSWER
else
  $ECHO "Error: Cannot determine JDK_DIR."
  exit 1
fi
GrabConfig $STATE_FILE "DEPLOY_TYPE" "="
if [ "$ANSWER" != "" ]; then
  DEPLOY_TYPE=$ANSWER
else
  $ECHO "Error: Cannot determine DEPLOY_TYPE."
  exit 1
fi
GrabConfig $STATE_FILE "DEPLOY_URI" "="
if [ "$ANSWER" != "" ]; then
  DEPLOY_URI=$ANSWER
else
  $ECHO "Error: Cannot determine DEPLOY_URI."
  exit 1
fi
GrabConfig $STATE_FILE "DS_HOST" "="
if [ "$ANSWER" != "" ]; then
  DS_HOST=$ANSWER
else
  $ECHO "Error: Cannot determine DS_HOST. $BELL_CHAR"
  exit 1
fi
GrabConfig $STATE_FILE "DS_PORT" "="
if [ "$ANSWER" != "" ]; then
  DS_PORT=$ANSWER
else
  $ECHO "Error: Cannot determine DS_PORT. $BELL_CHAR"
  exit 1
fi
GrabConfig $STATE_FILE "DS_DIRMGR_DN" "="
if [ "$ANSWER" != "" ]; then
  DS_DIRMGR_DN=$ANSWER
else
  $ECHO "Error: Cannot determine DS_DIRMGR_DN. $BELL_CHAR"
  exit 1
fi
GrabConfig $STATE_FILE "IDSAME_BASEDIR" "="
if [ "$ANSWER" != "" ]; then
  IDSAME_BASEDIR=$ANSWER
else
  $ECHO "Error: Cannot determine IDSAME_BASEDIR."
  exit 1
fi
GrabConfig $STATE_FILE "BASEDIR" "="
if [ "$ANSWER" != "" ]; then
  PS_BASEDIR=$ANSWER
else
  $ECHO "Error: Cannot determine BASEDIR."
  exit 1
fi
GrabConfig $STATE_FILE "SERVER_PROTOCOL" "="
if [ "$ANSWER" != "" ]; then
  SERVER_PROTOCOL=$ANSWER
else
  $ECHO "Error: Cannot determine SERVER_PROTOCOL."
  exit 1
fi
GrabConfig $STATE_FILE "SERVER_HOST" "="
if [ "$ANSWER" != "" ]; then
  SERVER_HOST=$ANSWER
else
  $ECHO "Error: Cannot determine SERVER_HOST."
  exit 1
fi
GrabConfig $STATE_FILE "SERVER_PORT" "="
if [ "$ANSWER" != "" ]; then
  SERVER_PORT=$ANSWER
else
  $ECHO "Error: Cannot determine SERVER_PORT."
  exit 1
fi

LOAD_BALANCER_URL="$SERVER_PROTOCOL://$SERVER_HOST:$SERVER_PORT$DEPLOY_URI"
if [ "$DEPLOY_TYPE" = "WEBLOGIC" ]; then
  DEPLOY_JDK_DIR="/usr/local/bea/jdk141_05"

  DEPLOY_PRODUCT_DIR="/usr/local/bea/weblogic81"
  DEPLOY_PROJECT_DIR="user_projects"
fi
if [ "$DEPLOY_TYPE" = "WEBSPHERE" ]; then
  DEPLOY_JDK_DIR="/opt/WebSphere/AppServer/java"

  GrabConfig $STATE_FILE "DEPLOY_NODE" "="
  DEPLOY_CELL="$ANSWER"
fi

$ECHO "Portal Server 6.2 to 6.3 Upgrade"
$ECHO ""
$ECHO "As part of this upgrade, dynamic Subscriptions attributes will be loss."
Question "Do you wish to proceed with the upgrade [y/n]?" "n" "ynYN"
if [ "$ANSWER" = "n" ] || [ "$ANSWER" = "N" ]; then
  exit 0
fi
$ECHO ""

DEPLOY_ADMIN_PASSWORD="not_needed"
if [ "$DEPLOY_TYPE" = "SUNONE" ] || [ "$DEPLOY_TYPE" = "WEBLOGIC" ]; then
  GetPassword "What is the web container administration password?"
  DEPLOY_ADMIN_PASSWORD="$ANSWER"
fi
export DEPLOY_ADMIN_PASSWORD

GetPassword "What is the Directory Manager password?"
DS_DIRMGR_PASSWORD="$ANSWER"
export DS_DIRMGR_PASSWORD

GetPassword "What is the Identity Server administration password?"
IDSAME_ADMIN_PASSWORD="$ANSWER"
export IDSAME_ADMIN_PASSWORD

IDSAME_PATH="$IDSAME_BASEDIR/SUNWam/ldaplib/ldapsdk:/usr/lib/mps/secv1"
if [ -z "${LD_LIBRARY_PATH}" ]; then
  LD_LIBRARY_PATH=$IDSAME_PATH
else
  LD_LIBRARY_PATH="$IDSAME_PATH:${LD_LIBRARY_PATH}"
fi
export LD_LIBRARY_PATH

FILE="/etc/opt/SUNWam/config/AMConfig.properties"
ADMIN_DN=`$GREP "^com.sun.identity.authentication.super.user=" $FILE | $SED -e "s/com.sun.identity.authentication.super.user=//"`
ROOT_DN=`$GREP "^com.iplanet.am.rootsuffix=" $FILE | $SED -e "s/com.iplanet.am.rootsuffix=//"`
ORG_DN=`$GREP "^com.iplanet.am.defaultOrg=" $FILE | $SED -e "s/com.iplanet.am.defaultOrg=//"`
if [ "$ORG_DN" != "$ROOT_DN" ]; then
  ORG_DN="$ORG_DN,$ROOT_DN"
fi
SCHEMA_DN="cn=schema"
PEOPLE_DN="ou=People,$ORG_DN"

LDAPSEARCH="$IDSAME_BASEDIR/SUNWam/bin/ldapsearch"
LDAPMODIFY="$IDSAME_BASEDIR/SUNWam/bin/ldapmodify"
AMADMIN="$IDSAME_BASEDIR/SUNWam/bin/amadmin"
DPADMIN="$PS_BASEDIR/SUNWps/bin/dpadmin"

###########################
# Update PSConfig.properties

$ECHO ""
$ECHO "Updating $STATE_FILE..."
GrabConfig $STATE_FILE "DEPLOY_CELL" "="
if [ "$ANSWER" = "" ]; then
  $ECHO "DEPLOY_CELL=$DEPLOY_CELL" >> $STATE_FILE
fi
GrabConfig $STATE_FILE "DEPLOY_JDK_DIR" "="
if [ "$ANSWER" = "" ]; then
  $ECHO "DEPLOY_JDK_DIR=$DEPLOY_JDK_DIR" >> $STATE_FILE
fi
GrabConfig $STATE_FILE "DEPLOY_PRODUCT_DIR" "="
if [ "$ANSWER" = "" ]; then
  $ECHO "DEPLOY_PRODUCT_DIR=$DEPLOY_PRODUCT_DIR" >> $STATE_FILE
fi
GrabConfig $STATE_FILE "DEPLOY_PROJECT_DIR" "="
if [ "$ANSWER" = "" ]; then
  $ECHO "DEPLOY_PROJECT_DIR=$DEPLOY_PROJECT_DIR" >> $STATE_FILE
fi
GrabConfig $STATE_FILE "LOAD_BALANCER_URL" "="
if [ "$ANSWER" = "" ]; then
  $ECHO "LOAD_BALANCER_URL=$LOAD_BALANCER_URL" >> $STATE_FILE
fi
GrabConfig $STATE_FILE "PS_PROTOCOL" "="
if [ "$ANSWER" = "" ]; then
  $ECHO "PS_PROTOCOL=$SERVER_PROTOCOL" >> $STATE_FILE
fi
GrabConfig $STATE_FILE "PS_HOST" "="
if [ "$ANSWER" = "" ]; then
  $ECHO "PS_HOST=$SERVER_HOST" >> $STATE_FILE
fi
GrabConfig $STATE_FILE "PS_PORT" "="
if [ "$ANSWER" = "" ]; then
  $ECHO "PS_PORT=$SERVER_PORT" >> $STATE_FILE
fi

if [ "$DEPLOY_TYPE" = "WEBLOGIC" ]; then
  $ECHO ""
  $ECHO "Please verify and update the following properties in the file"
  $ECHO "/etc/opt/SUNWps/PSConfig.properties:"
  $ECHO "  DEPLOY_ADMIN"
  $ECHO "  DEPLOY_DIR"
  $ECHO "  DEPLOY_DOCROOT"
  $ECHO "  DEPLOY_JDK_DIR"
  $ECHO "  DEPLOY_PRODUCT_DIR"
  $ECHO "  DEPLOY_PROJECT_DIR"
  $ECHO "  JDK_DIR"
  Pause
elif [ "$DEPLOY_TYPE" = "WEBSPHERE" ]; then
  $ECHO ""
  $ECHO "Please verify and update the following properties in the file"
  $ECHO "/etc/opt/SUNWps/PSConfig.properties:"
  $ECHO "  DEPLOY_CELL"
  $ECHO "  DEPLOY_DOCROOT"
  $ECHO "  DEPLOY_INSTANCE"
  $ECHO "  DEPLOY_JDK_DIR"
  $ECHO "  DEPLOY_NODE"
  $ECHO "  JDK_DIR"
  Pause
fi

if [ "$DEPLOY_TYPE" = "IWS" ]; then
  GrabConfig $STATE_FILE "DEPLOY_DIR" "="
  if [ "$ANSWER" != "" ]; then
    DEPLOY_DIR=$ANSWER
  else
    $ECHO "Error: Cannot determine DEPLOY_DIR."
    exit 1
  fi
  GrabConfig $STATE_FILE "DEPLOY_INSTANCE" "="
  if [ "$ANSWER" != "" ]; then
    DEPLOY_INSTANCE=$ANSWER
  else
    $ECHO "Error: Cannot determine DEPLOY_INSTANCE."
    exit 1
  fi
elif [ "$DEPLOY_TYPE" = "SUNONE" ]; then
  GrabConfig $STATE_FILE "DEPLOY_DOMAIN" "="
  if [ "$ANSWER" != "" ]; then
    DEPLOY_DOMAIN=$ANSWER
  else
    $ECHO "Error: Cannot determine DEPLOY_DOMAIN."
    exit 1
  fi
  GrabConfig $STATE_FILE "DEPLOY_INSTANCE" "="
  if [ "$ANSWER" != "" ]; then
    DEPLOY_INSTANCE=$ANSWER
  else
    $ECHO "Error: Cannot determine DEPLOY_INSTANCE."
    exit 1
  fi
elif [ "$DEPLOY_TYPE" = "WEBLOGIC" ]; then
  GrabConfig $STATE_FILE "DEPLOY_DIR" "="
  if [ "$ANSWER" != "" ]; then
    DEPLOY_DIR=$ANSWER
  else
    $ECHO "Error: Cannot determine DEPLOY_DIR."
    exit 1
  fi
  GrabConfig $STATE_FILE "DEPLOY_PROJECT_DIR" "="
  if [ "$ANSWER" != "" ]; then
    DEPLOY_PROJECT_DIR=$ANSWER
  else
    $ECHO "Error: Cannot determine DEPLOY_PROJECT_DIR."
    exit 1
  fi
  GrabConfig $STATE_FILE "DEPLOY_DOMAIN" "="
  if [ "$ANSWER" != "" ]; then
    DEPLOY_DOMAIN=$ANSWER
  else
    $ECHO "Error: Cannot determine DEPLOY_DOMAIN."
    exit 1
  fi
elif [ "$DEPLOY_TYPE" = "WEBSPHERE" ]; then
  GrabConfig $STATE_FILE "DEPLOY_DIR" "="
  if [ "$ANSWER" != "" ]; then
    DEPLOY_DIR=$ANSWER
  else
    $ECHO "Error: Cannot determine DEPLOY_DIR."
    exit 1
  fi
  GrabConfig $STATE_FILE "DEPLOY_CELL" "="
  if [ "$ANSWER" != "" ]; then
    DEPLOY_CELL=$ANSWER
  else
    $ECHO "Error: Cannot determine DEPLOY_CELL."
    exit 1
  fi
  GrabConfig $STATE_FILE "DEPLOY_NODE" "="
  if [ "$ANSWER" != "" ]; then
    DEPLOY_NODE=$ANSWER
  else
    $ECHO "Error: Cannot determine DEPLOY_NODE."
    exit 1
  fi
  GrabConfig $STATE_FILE "DEPLOY_INSTANCE" "="
  if [ "$ANSWER" != "" ]; then
    DEPLOY_INSTANCE=$ANSWER
  else
    $ECHO "Error: Cannot determine DEPLOY_INSTANCE."
    exit 1
  fi
fi

###########################
# Update web container

if [ "$DEPLOY_TYPE" = "IWS" ]; then
  UpdateWebserverClassPath "$PS_BASEDIR/SUNWps/lib/jdom.jar"
  UpdateWebserverClassPath "$PS_BASEDIR/SUNWps/lib/portlettl.jar"
  UpdateWebserverClassPath "$PS_BASEDIR/SUNWps/lib/portlet.jar"
  UpdateWebserverClassPath "$PS_BASEDIR/SUNWps/lib/portletcontainercommon.jar"
  UpdateWebserverClassPath "$PS_BASEDIR/SUNWps/lib/portletcommon.jar"
  UpdateWebserverClassPath "$PS_BASEDIR/SUNWps/lib/container.jar"
  UpdateWebserverClassPath "$PS_BASEDIR/SUNWps/lib/psimapprovider.jar"
elif [ "$DEPLOY_TYPE" = "SUNONE" ]; then
  UpdateAppserverClassPath "$PS_BASEDIR/SUNWps/lib/jdom.jar"
  UpdateAppserverClassPath "$PS_BASEDIR/SUNWps/lib/portlettl.jar"
  UpdateAppserverClassPath "$PS_BASEDIR/SUNWps/lib/portlet.jar"
  UpdateAppserverClassPath "$PS_BASEDIR/SUNWps/lib/portletcontainercommon.jar"
  UpdateAppserverClassPath "$PS_BASEDIR/SUNWps/lib/portletcommon.jar"
  UpdateAppserverClassPath "$PS_BASEDIR/SUNWps/lib/container.jar"
  UpdateAppserverClassPath "$PS_BASEDIR/SUNWps/lib/psimapprovider.jar"
elif [ "$DEPLOY_TYPE" = "WEBLOGIC" ]; then
  UpdateWebLogicClassPath "$PS_BASEDIR/SUNWps/lib/jdom.jar"
  UpdateWebLogicClassPath "$PS_BASEDIR/SUNWps/lib/portlettl.jar"
  UpdateWebLogicClassPath "$PS_BASEDIR/SUNWps/lib/portlet.jar"
  UpdateWebLogicClassPath "$PS_BASEDIR/SUNWps/lib/portletcontainercommon.jar"
  UpdateWebLogicClassPath "$PS_BASEDIR/SUNWps/lib/portletcommon.jar"
  UpdateWebLogicClassPath "$PS_BASEDIR/SUNWps/lib/container.jar"
  UpdateWebLogicClassPath "$PS_BASEDIR/SUNWps/lib/psimapprovider.jar"
elif [ "$DEPLOY_TYPE" = "WEBSPHERE" ]; then
  UpdateWebSphereClassPath "$PS_BASEDIR/SUNWps/lib/jdom.jar"
  UpdateWebSphereClassPath "$PS_BASEDIR/SUNWps/lib/portlettl.jar"
  UpdateWebSphereClassPath "$PS_BASEDIR/SUNWps/lib/portlet.jar"
  UpdateWebSphereClassPath "$PS_BASEDIR/SUNWps/lib/portletcontainercommon.jar"
  UpdateWebSphereClassPath "$PS_BASEDIR/SUNWps/lib/portletcommon.jar"
  UpdateWebSphereClassPath "$PS_BASEDIR/SUNWps/lib/container.jar"
  UpdateWebSphereClassPath "$PS_BASEDIR/SUNWps/lib/psimapprovider.jar"
fi

if [ "$DEPLOY_TYPE" = "WEBLOGIC" ]; then
  UpdateWebLogicLibraryPath "/usr/lib/lwp"
  UpdateWebLogicLibraryPath "$PS_BASEDIR/SUNWps/lib"
elif [ "$DEPLOY_TYPE" = "WEBSPHERE" ]; then
  UpdateWebSphereLibraryPath "/usr/lib/lwp"
  UpdateWebSphereLibraryPath "$PS_BASEDIR/SUNWps/lib"
fi

###########################
# Updating PropertiesViewBeanURL

$ECHO ""
$ECHO "Updating PropertiesViewBeanURL"
FILE="/tmp/updatePropertiesViewBeanURL.xml"
$CAT > $FILE << EOF
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Requests
  PUBLIC "-//iPlanet//Sun ONE Identity Server 6.1 Admin CLI DTD//EN"
  "jar://com/iplanet/am/admin/cli/amAdmin.dtd"
>
<Requests>
  <SchemaRootNodeRequests serviceName="SunPortalDesktopService">
    <SetPropertiesViewBeanURL url="$LOAD_BALANCER_URL/dtadmin/DesktopAdminService"/>
  </SchemaRootNodeRequests>
  <SchemaRootNodeRequests serviceName="SunPortalRewriterService">
    <SetPropertiesViewBeanURL url="$LOAD_BALANCER_URL/rwadmin/SelectRule"/>
  </SchemaRootNodeRequests>
  <SchemaRootNodeRequests serviceName="SunPortalSearchService">
    <SetPropertiesViewBeanURL url="$LOAD_BALANCER_URL/searchadmin/"/>
  </SchemaRootNodeRequests>
  <SchemaRootNodeRequests serviceName="SunSSOAdapterService">
    <SetPropertiesViewBeanURL url="$LOAD_BALANCER_URL/ssoadapteradmin/SSOAdapterService"/>
  </SchemaRootNodeRequests>
</Requests>
EOF
$AMADMIN -u "$ADMIN_DN" -w "$IDSAME_ADMIN_PASSWORD" -v --data $FILE
$RM -f $FILE

###########################
# Upgrade Desktop

FILE1="/tmp/addAttributeSchema.xml"
$CAT > $FILE1 << EOF
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Requests
  PUBLIC "-//iPlanet/Sun ONE Identity Server 6.0 Admin CLI DTD//EN"
  "jar://com/sun/identity/sm/sms.dtd"
>
<Requests>
  <AttributeSchema name="sunPortalDesktopWSRPSessionAppContextClassName"
                   type="single"
                   syntax="string"
                   any="display">
    <DefaultValues>
      <Value>com.sun.portal.desktop.context.WSRPSessionContext</Value>
    </DefaultValues>
  </AttributeSchema>
  <AttributeSchema name="sunPortalDesktopWSRPSessionContextClassName"
                   type="single"
                   syntax="string"
                   any="display">
    <DefaultValues>
      <Value>com.sun.portal.desktop.context.WSRPSessionContext</Value>
    </DefaultValues>
  </AttributeSchema>
</Requests>
EOF

FILE2="/tmp/upgradeDestop.xml"
$CAT > $FILE2 << EOF
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Requests
  PUBLIC "-//iPlanet/Sun ONE Identity Server 6.0 Admin CLI DTD//EN"
  "jar://com/iplanet/am/admin/cli/amAdmin.dtd"
>
<Requests>
  <SchemaRequests serviceName="SunPortalDesktopService" SchemaType="Global">
    <AddAttributeSchema fileName="$FILE1"/>
  </SchemaRequests>
</Requests>
EOF

$ECHO ""
$ECHO "Updating Desktop Service..."
$AMADMIN -u "$ADMIN_DN" -w "$IDSAME_ADMIN_PASSWORD" -v -t $FILE2
$RM -f $FILE1 $FILE2

###########################
# Updating IS Administration Service

$ECHO ""
$ECHO "Updating IS Administration Service..."

FILE="/tmp/removePartialDefaultValues.xml"

$CAT > $FILE << EOF
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Requests
  PUBLIC "-//iPlanet/Sun ONE Identity Server 6.0 Admin CLI DTD//EN"
  "jar://com/iplanet/am/admin/cli/amAdmin.dtd"
>
<Requests>
  <SchemaRequests serviceName="iPlanetAMAdminConsoleService" SchemaType="Global">
    <RemovePartialDefaultValues>
      <AttributeValuePair>
	<Attribute name="iplanet-am-console-service-view-bean"/>
	<Value>SunPortalDesktopService|/portal/dtadmin/DesktopAdminUserProfile</Value>
      </AttributeValuePair>
    </RemovePartialDefaultValues>
  </SchemaRequests>
</Requests>
EOF
$AMADMIN -u "$ADMIN_DN" -w "$IDSAME_ADMIN_PASSWORD" -v -t $FILE

$CAT > $FILE << EOF
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Requests
  PUBLIC "-//iPlanet/Sun ONE Identity Server 6.0 Admin CLI DTD//EN"
  "jar://com/iplanet/am/admin/cli/amAdmin.dtd"
>
<Requests>
  <SchemaRequests serviceName="iPlanetAMAdminConsoleService" SchemaType="Global">
    <RemovePartialDefaultValues>
      <AttributeValuePair>
	<Attribute name="iplanet-am-console-service-view-bean"/>
	<Value>SunSSOAdapterService|/portal/ssoadapteradmin/SSOAdapterServiceUser</Value>
      </AttributeValuePair>
    </RemovePartialDefaultValues>
  </SchemaRequests>
</Requests>
EOF
$AMADMIN -u "$ADMIN_DN" -w "$IDSAME_ADMIN_PASSWORD" -v -t $FILE

$RM -f $FILE

FILE="/tmp/addDefaultValues.xml"
$CAT > $FILE << EOF
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Requests
  PUBLIC "-//iPlanet/Sun ONE Identity Server 6.0 Admin CLI DTD//EN"
  "jar://com/iplanet/am/admin/cli/amAdmin.dtd"
>
<Requests>
  <SchemaRequests serviceName="iPlanetAMAdminConsoleService" SchemaType="Global">
    <AddDefaultValues>
      <AttributeValuePair>
	<Attribute name="iplanet-am-console-service-view-bean"/>
	<Value>SunPortalDesktopService|$SERVER_PROTOCOL://$SERVER_HOST:$SERVER_PORT/portal/dtadmin/DesktopAdminUserProfile</Value>
      </AttributeValuePair>
      <AttributeValuePair>
	<Attribute name="iplanet-am-console-service-view-bean"/>
	<Value>SunSSOAdapterService|$SERVER_PROTOCOL://$SERVER_HOST:$SERVER_PORT/portal/ssoadapteradmin/SSOAdapterServiceUser</Value>
      </AttributeValuePair>
    </AddDefaultValues>
  </SchemaRequests>
</Requests>
EOF
$AMADMIN -u "$ADMIN_DN" -w "$IDSAME_ADMIN_PASSWORD" -v -t $FILE
$RM -f $FILE

###########################
# Upgrade SSO Adapter

$ECHO ""
$ECHO "Updating SSO Adapter Service..."

FILE="/tmp/removePartialDefaultValues.xml"

$CAT > $FILE << EOF
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Requests
  PUBLIC "-//iPlanet/Sun ONE Identity Server 6.0 Admin CLI DTD//EN"
  "jar://com/iplanet/am/admin/cli/amAdmin.dtd"
>
<Requests>
  <SchemaRequests serviceName="SunSSOAdapterService" SchemaType="Global">
    <RemovePartialDefaultValues>
      <AttributeValuePair>
	<Attribute name="sunConfigurationTemplates"/>
	<Value>default|ldap://[SERVER-NAME:PORT]/?configName=[SUN-ONE-ADDRESS-BOOK]&amp;pabSearchBase=[PAB-SEARCH-BASE]&amp;userSearchBase=[USER-SEARCH-BASE]&amp;aid=[ADMIN-ID]&amp;adminPassword=[ADMIN-PASSWORD]&amp;imapHost=[IMAP-HOST]&amp;imapPort=[IMAP-PORT]&amp;clientPort=[CLIENT-PORT]&amp;enableProxyAuth=false&amp;proxyAdminUid=[PROXY-ADMIN-UID]&amp;proxyAdminPassword=[PROXY-ADMIN-PASSWORD]&amp;type=AB-TYPE&amp;subType=sun-one&amp;ssoClassName=com.sun.ssoadapter.impl.LDAPABSSOAdapter&amp;encoded=password&amp;default=ssoClassName&amp;default=host&amp;default=port&amp;default=pabSearchBase&amp;default=userSearchBase&amp;default=aid&amp;default=adminPassword&amp;default=imapHost&amp;default=imapPort&amp;default=clientPort&amp;default=type&amp;default=subType&amp;default=enableProxyAuth&amp;default=proxyAdminUid&amp;default=proxyAdminPassword&amp;merge=uid&amp;merge=password&amp;default=enablePerRequestConnection&amp;enablePerRequestConnection=false&amp;default=userAttribute&amp;userAttribute=uid</Value>
      </AttributeValuePair>
    </RemovePartialDefaultValues>
  </SchemaRequests>
</Requests>
EOF
$AMADMIN -u "$ADMIN_DN" -w "$IDSAME_ADMIN_PASSWORD" -v -t $FILE

$CAT > $FILE << EOF
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Requests
  PUBLIC "-//iPlanet/Sun ONE Identity Server 6.0 Admin CLI DTD//EN"
  "jar://com/iplanet/am/admin/cli/amAdmin.dtd"
>
<Requests>
  <SchemaRequests serviceName="SunSSOAdapterService" SchemaType="Global">
    <RemovePartialDefaultValues>
      <AttributeValuePair>
	<Attribute name="sunConfigurationTemplates"/>
	<Value>default|http:///?configName=SUN-ONE-CALENDAR&amp;encoded=password&amp;default=protocol&amp;default=clientProtocol&amp;default=type&amp;default=subType&amp;default=enableProxyAuth&amp;default=proxyAdminUid&amp;default=proxyAdminPassword&amp;default=ssoClassName&amp;merge=host&amp;merge=port&amp;merge=clientPort&amp;merge=uid&amp;merge=password&amp;clientProtocol=http&amp;enableProxyAuth=false&amp;proxyAdminUid=[PROXY-ADMIN-UID]&amp;proxyAdminPassword=[PROXY-ADMIN_PASSWORD]&amp;type=CALENDAR-TYPE&amp;subType=sun-one&amp;ssoClassName=com.sun.ssoadapter.impl.JCAPISSOAdapter&amp;default=enablePerRequestConnection&amp;enablePerRequestConnection=true&amp;default=userAttribute&amp;userAttribute=uid</Value>
      </AttributeValuePair>
    </RemovePartialDefaultValues>
  </SchemaRequests>
</Requests>
EOF
$AMADMIN -u "$ADMIN_DN" -w "$IDSAME_ADMIN_PASSWORD" -v -t $FILE

$CAT > $FILE << EOF
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Requests
  PUBLIC "-//iPlanet/Sun ONE Identity Server 6.0 Admin CLI DTD//EN"
  "jar://com/iplanet/am/admin/cli/amAdmin.dtd"
>
<Requests>
  <SchemaRequests serviceName="SunSSOAdapterService" SchemaType="Global">
    <RemovePartialDefaultValues>
      <AttributeValuePair>
	<Attribute name="sunConfigurationTemplates"/>
	<Value>default|imap:///?configName=SUN-ONE-MAIL&amp;encoded=password&amp;default=protocol&amp;default=clientProtocol&amp;default=type&amp;default=subType&amp;default=enableProxyAuth&amp;default=proxyAdminUid&amp;default=proxyAdminPassword&amp;default=ssoClassName&amp;merge=host&amp;merge=port&amp;merge=uid&amp;merge=password&amp;merge=smtpServer&amp;merge=clientPort&amp;merge=smtpPort&amp;clientProtocol=http&amp;enableProxyAuth=false&amp;proxyAdminUid=[PROXY-ADMIN-UID]&amp;proxyAdminPassword=[PROXY-ADMIN_PASSWORD]&amp;type=MAIL-TYPE&amp;subType=sun-one&amp;ssoClassName=com.sun.ssoadapter.impl.JavaMailSSOAdapter&amp;default=enablePerRequestConnection&amp;enablePerRequestConnection=true&amp;default=userAttribute&amp;userAttribute=uid&amp;default=domain</Value>
      </AttributeValuePair>
    </RemovePartialDefaultValues>
  </SchemaRequests>
</Requests>
EOF
$AMADMIN -u "$ADMIN_DN" -w "$IDSAME_ADMIN_PASSWORD" -v -t $FILE

$CAT > $FILE << EOF
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Requests
  PUBLIC "-//iPlanet/Sun ONE Identity Server 6.0 Admin CLI DTD//EN"
  "jar://com/iplanet/am/admin/cli/amAdmin.dtd"
>
<Requests>
  <SchemaRequests serviceName="SunSSOAdapterService" SchemaType="Global">
    <RemovePartialDefaultValues>
      <AttributeValuePair>
	<Attribute name="sunConfigurationTemplates"/>
	<Value>default|pop3:///?configName=SUN-ONE-MAIL-POP3&amp;encoded=password&amp;default=protocol&amp;default=type&amp;default=subType&amp;default=enableProxyAuth&amp;default=proxyAdminUid&amp;default=proxyAdminPassword&amp;default=ssoClassName&amp;merge=host&amp;merge=uid&amp;merge=password&amp;merge=smtpPort&amp;enableProxyAuth=false&amp;proxyAdminUid=[PROXY-ADMIN-UID]&amp;proxyAdminPassword=[PROXY-ADMIN_PASSWORD]&amp;type=MAIL-TYPE&amp;subType=sun-one&amp;ssoClassName=com.sun.ssoadapter.impl.JavaMailSSOAdapter&amp;default=enablePerRequestConnection&amp;enablePerRequestConnection=true&amp;default=userAttribute&amp;userAttribute=uid&amp;default=domain</Value>
      </AttributeValuePair>
    </RemovePartialDefaultValues>
  </SchemaRequests>
</Requests>
EOF
$AMADMIN -u "$ADMIN_DN" -w "$IDSAME_ADMIN_PASSWORD" -v -t $FILE

$RM -f $FILE

FILE="/tmp/addDefaultValues.xml"
$CAT > $FILE << EOF
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Requests
  PUBLIC "-//iPlanet/Sun ONE Identity Server 6.0 Admin CLI DTD//EN"
  "jar://com/iplanet/am/admin/cli/amAdmin.dtd"
>
<Requests>
  <SchemaRequests serviceName="SunSSOAdapterService" SchemaType="Global">
    <AddDefaultValues>
      <AttributeValuePair>
	<Attribute name="sunConfigurationTemplates"/>
	<Value>default|ldap://[SERVER-NAME:PORT]/?configName=[SUN-ONE-ADDRESS-BOOK]&amp;pabSearchBase=[PAB-SEARCH-BASE]&amp;userSearchBase=[USER-SEARCH-BASE]&amp;aid=[ADMIN-ID]&amp;adminPassword=[ADMIN-PASSWORD]&amp;imapHost=[IMAP-HOST]&amp;imapPort=[IMAP-PORT]&amp;clientPort=[CLIENT-PORT]&amp;enableProxyAuth=false&amp;proxyAdminUid=[PROXY-ADMIN-UID]&amp;proxyAdminPassword=[PROXY-ADMIN-PASSWORD]&amp;type=AB-TYPE&amp;subType=sun-one&amp;ssoClassName=com.sun.ssoadapter.impl.LDAPABSSOAdapter&amp;encoded=password&amp;default=ssoClassName&amp;default=host&amp;default=port&amp;default=pabSearchBase&amp;default=userSearchBase&amp;default=aid&amp;default=adminPassword&amp;default=imapHost&amp;default=imapPort&amp;default=clientPort&amp;default=type&amp;default=subType&amp;default=enableProxyAuth&amp;default=proxyAdminUid&amp;default=proxyAdminPassword&amp;merge=uid&amp;merge=password&amp;default=enablePerRequestConnection&amp;enablePerRequestConnection=true&amp;default=userAttribute&amp;userAttribute=uid&amp;default=serverSSOEnabled&amp;serverSSOEnabled=false</Value>
      </AttributeValuePair>
      <AttributeValuePair>
	<Attribute name="sunConfigurationTemplates"/>
	<Value>default|http:///?configName=SUN-ONE-CALENDAR&amp;encoded=password&amp;default=protocol&amp;default=clientProtocol&amp;default=type&amp;default=subType&amp;default=enableProxyAuth&amp;default=proxyAdminUid&amp;default=proxyAdminPassword&amp;default=ssoClassName&amp;merge=host&amp;merge=port&amp;merge=clientPort&amp;merge=uid&amp;merge=password&amp;clientProtocol=http&amp;enableProxyAuth=false&amp;proxyAdminUid=[PROXY-ADMIN-UID]&amp;proxyAdminPassword=[PROXY-ADMIN_PASSWORD]&amp;type=CALENDAR-TYPE&amp;subType=sun-one&amp;ssoClassName=com.sun.ssoadapter.impl.JCAPISSOAdapter&amp;default=enablePerRequestConnection&amp;enablePerRequestConnection=true&amp;default=userAttribute&amp;userAttribute=uid&amp;default=domain&amp;default=serverSSOEnabled&amp;serverSSOEnabled=false</Value>
      </AttributeValuePair>
      <AttributeValuePair>
	<Attribute name="sunConfigurationTemplates"/>
	<Value>default|imap:///?configName=SUN-ONE-MAIL&amp;encoded=password&amp;default=protocol&amp;default=clientProtocol&amp;default=type&amp;default=subType&amp;default=enableProxyAuth&amp;default=proxyAdminUid&amp;default=proxyAdminPassword&amp;default=ssoClassName&amp;merge=host&amp;merge=port&amp;merge=uid&amp;merge=password&amp;merge=smtpServer&amp;merge=clientPort&amp;merge=smtpPort&amp;clientProtocol=http&amp;enableProxyAuth=false&amp;proxyAdminUid=[PROXY-ADMIN-UID]&amp;proxyAdminPassword=[PROXY-ADMIN_PASSWORD]&amp;type=MAIL-TYPE&amp;subType=sun-one&amp;ssoClassName=com.sun.ssoadapter.impl.JavaMailSSOAdapter&amp;default=enablePerRequestConnection&amp;enablePerRequestConnection=true&amp;default=userAttribute&amp;userAttribute=uid&amp;merge=domain&amp;default=serverSSOEnabled&amp;serverSSOEnabled=false</Value>
      </AttributeValuePair>
      <AttributeValuePair>
	<Attribute name="sunConfigurationTemplates"/>
	<Value>default|pop3:///?configName=SUN-ONE-MAIL-POP3&amp;encoded=password&amp;default=protocol&amp;default=type&amp;default=subType&amp;default=enableProxyAuth&amp;default=proxyAdminUid&amp;default=proxyAdminPassword&amp;default=ssoClassName&amp;merge=host&amp;merge=uid&amp;merge=password&amp;merge=smtpPort&amp;enableProxyAuth=false&amp;proxyAdminUid=[PROXY-ADMIN-UID]&amp;proxyAdminPassword=[PROXY-ADMIN_PASSWORD]&amp;type=MAIL-TYPE&amp;subType=sun-one&amp;ssoClassName=com.sun.ssoadapter.impl.JavaMailSSOAdapter&amp;default=enablePerRequestConnection&amp;enablePerRequestConnection=true&amp;default=userAttribute&amp;userAttribute=uid&amp;merge=domain&amp;default=serverSSOEnabled&amp;serverSSOEnabled=false</Value>
      </AttributeValuePair>
    </AddDefaultValues>
  </SchemaRequests>
</Requests>
EOF
$AMADMIN -u "$ADMIN_DN" -w "$IDSAME_ADMIN_PASSWORD" -v -t $FILE
$RM -f $FILE

FILE="/tmp/addDefaultValues.xml"
$CAT > $FILE << EOF
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Requests
  PUBLIC "-//iPlanet/Sun ONE Identity Server 6.0 Admin CLI DTD//EN"
  "jar://com/iplanet/am/admin/cli/amAdmin.dtd"
>
<Requests>
  <SchemaRequests serviceName="iPlanetAMAdminConsoleService" SchemaType="Global">
    <AddDefaultValues>
      <AttributeValuePair>
        <Attribute name="iplanet-am-console-service-view-bean"/>
        <Value>SunSSOAdapterService|$DEPLOY_URI/ssoadapteradmin/SSOAdapterServiceUser</Value>
      </AttributeValuePair>
    </AddDefaultValues>
  </SchemaRequests>
</Requests>
EOF
$AMADMIN -u "$ADMIN_DN" -w "$IDSAME_ADMIN_PASSWORD" -v -t $FILE
$RM -f $FILE

###########################
# Preparing Subscriptions upgrade

ORGS=`$LDAPSEARCH -h $DS_HOST -p $DS_PORT -b "$ORG_DN" -D "$DS_DIRMGR_DN" -w "$DS_DIRMGR_PASSWORD" "(sunRegisteredServiceName=SunPortalSubscriptionsService)" dn | $GREP "dn:" | $NAWK '{printf("%s|",$2);}'`

$ECHO ""
$ECHO "Remove subscriptions across all organizations"
FILE="/tmp/removeSubscriptions.xml"
$CAT > $FILE << EOF
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Requests
  PUBLIC "-//iPlanet//Sun ONE Identity Server 6.1 Admin CLI DTD//EN"
  "jar://com/iplanet/am/admin/cli/amAdmin.dtd"
>
<Requests>
  <ServiceConfigurationRequests serviceName="SunPortalSubscriptionsService">
    <DeleteAllServiceConfiguration userAtt="false"/>
  </ServiceConfigurationRequests>
</Requests>
EOF
$AMADMIN -u "$ADMIN_DN" -w "$IDSAME_ADMIN_PASSWORD" -v --data $FILE
$RM -f $FILE /var/opt/SUNWps/tmp/service/psSubscriptions.xml

FILE=$PS_BASEDIR/SUNWps/export/ldif/psSubscriptions.ldif
$ECHO ""
$ECHO "Loading $FILE..."
$LDAPMODIFY -a -h $DS_HOST -p $DS_PORT -D "$DS_DIRMGR_DN" -w "$DS_DIRMGR_PASSWORD" -f $FILE

###########################
# Load new services into IS

$ECHO ""
$ECHO "Loading new / updating existing PS services..."
$PS_BASEDIR/SUNWps/lib/isconfig

###########################
# Continue subscriptions upgrade

CURRENT_IFS=$IFS
IFS="|"
for ORG in $ORGS; do
  FILE="/tmp/reregisterSubscriptions.xml"
  $CAT > $FILE << EOF
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Requests
  PUBLIC "-//iPlanet//iDSAME 5.0 Admin CLI DTD//EN"
  "jar://com/iplanet/am/admin/cli/amAdmin.dtd"
>
<Requests>
  <OrganizationRequests DN="$ORG">
    <RegisterServices>
      <Service_Name>SunPortalSubscriptionsService</Service_Name>
    </RegisterServices>
  </OrganizationRequests>
  <OrganizationRequests DN="$ORG">
    <CreateServiceTemplate>
      <Service_Name>SunPortalSubscriptionsService</Service_Name>
    </CreateServiceTemplate>
  </OrganizationRequests>
</Requests>
EOF
  $AMADMIN -u "$ADMIN_DN" -w "$IDSAME_ADMIN_PASSWORD" -v --data $FILE
  $RM -f $FILE
done
IFS=$CURRENT_IFS

FILE="$PS_BASEDIR/SUNWps/samples/Subscriptions/dp-org.xml"
$ECHO ""
$ECHO "Loading $FILE..."
$DPADMIN modify -m -u "$ADMIN_DN" -w "$IDSAME_ADMIN_PASSWORD" -d "$ORG_DN" $FILE

FILE="$PS_BASEDIR/SUNWps/web-src/WEB-INF/classes/Profiler.properties-template"
if [ -f $FILE ]; then
  TARGET_FILE="$PS_BASEDIR/SUNWps/web-src/WEB-INF/classes/Profiler.properties"
  $ECHO "Updating $TARGET_FILE..."
  $CAT $FILE | $SED -e "s!%LOAD_BALANCER_URL%!$LOAD_BALANCER_URL!" | $SED -e "s!%PS_HOST%!$SERVER_HOST!" | $SED -e "s!%SMTP_SERVER%!$SERVER_HOST!" > $TARGET_FILE
fi

###########################
# Configure Portlet Samples

$ECHO ""
$ECHO "Upgrading Portlet Samples..."
$PS_BASEDIR/SUNWps/bin/pdeploy undeploy -u "$ADMIN_DN" -w "$IDSAME_ADMIN_PASSWORD" -p "$DEPLOY_ADMIN_PASSWORD" -g portletsamples
$PS_BASEDIR/SUNWps/lib/postinstall_PortletSamples
if [ "$DEPLOY_TYPE" = "WEBSPHERE" ]; then
  $PS_BASEDIR/SUNWps/lib/config_PortletSamples
fi

###########################
# Configure WSRP

$ECHO ""
$ECHO "Configuring WSRP..."
$PS_BASEDIR/SUNWps/lib/config_WSRPConsumer

###########################
# Deployment

if [ "$DEPLOY_TYPE" = "WEBLOGIC" ] || [ "$DEPLOY_TYPE" = "WEBSPHERE" ]; then
  $ECHO ""
  $ECHO "Run $PS_BASEDIR/SUNWps/lib/wcconfig then restart the web container."
  Pause

  $ECHO ""
  $PS_BASEDIR/SUNWps/bin/deploy deploy -uri $DEPLOY_URI -deploy_admin_password "$DEPLOY_ADMIN_PASSWORD"
else
  $ECHO ""
  $PS_BASEDIR/SUNWps/bin/deploy redeploy -deploy_admin_password "$DEPLOY_ADMIN_PASSWORD"
fi

###########################
# Warn user to restart

$ECHO ""
$ECHO "Please restart the web container and directory server to complete the upgrade."

exit 0
