mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Ludovic Poitou
02.07.2011 3dfb061cbafd3a97c9359f739942924a8ee525f1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#!/bin/sh
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only
# (the "License").  You may not use this file except in compliance
# with the License.
#
# You can obtain a copy of the license at
# trunk/opends/resource/legal-notices/OpenDS.LICENSE
# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at
# trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
# add the following below this CDDL HEADER, with the fields enclosed
# by brackets "[]" replaced with your own identifying information:
#      Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
#      Copyright 2006-2008 Sun Microsystems, Inc.
#      Portions Copyright 2011 ForgeRock AS
 
# Capture the current working directory so that we can change to it later.
# Then capture the location of this script and the Directory Server instance
# root so that we can use them to create appropriate paths.
WORKING_DIR=`pwd`
 
cd "`dirname "${0}"`"
SCRIPT_DIR=`pwd`
 
INSTALL_ROOT=${SCRIPT_DIR}
export INSTALL_ROOT
 
SCRIPT_NAME=upgrade
export SCRIPT_NAME
 
cd "${WORKING_DIR}"
 
# Set java home
SCRIPT_UTIL_CMD=set-java-home-and-args
export SCRIPT_UTIL_CMD
.  "${INSTALL_ROOT}/lib/_script-util.sh"
RETURN_CODE=$?
if test ${RETURN_CODE} -ne 0
then
  exit ${RETURN_CODE}
fi
 
# Set environment variables
SCRIPT_UTIL_CMD=set-environment-vars
export SCRIPT_UTIL_CMD
.  "${INSTALL_ROOT}/lib/_script-util.sh"
RETURN_CODE=$?
if test ${RETURN_CODE} -ne 0
then
  exit ${RETURN_CODE}
fi
 
# Configure the appropriate CLASSPATH to test.
for JAR in ${INSTANCE_ROOT}/tmp/upgrade/lib/*.jar
do
  CLASSPATH=${CLASSPATH}:${JAR}
done
CLASSPATH=${CLASSPATH}:${INSTANCE_ROOT}/classes
for JAR in ${INSTALL_ROOT}/lib/*.jar
do
  CLASSPATH=${CLASSPATH}:${JAR}
done
export CLASSPATH
 
# Test the java installation
SCRIPT_UTIL_CMD=test-java
export SCRIPT_UTIL_CMD
.  "${INSTALL_ROOT}/lib/_script-util.sh"
RETURN_CODE=$?
if test ${RETURN_CODE} -ne 0
then
  exit ${RETURN_CODE}
fi
 
if [ -r "${INSTANCE_ROOT}/tmp/upgrade" ]
then
  rm -fr "${INSTANCE_ROOT}/tmp/upgrade"
fi
 
# Launch the build extractor.
# Configure the appropriate CLASSPATH.
# BuildExtractor uses the existing install's
# jars
CLASSPATH=${INSTANCE_ROOT}/classes
for JAR in ${INSTALL_ROOT}/lib/*.jar
do
  CLASSPATH=${CLASSPATH}:${JAR}
done
export CLASSPATH
 
# Run the build extractor first.  An exit code of 99 from the extractor
# means that this is indeed an upgrade (as opposed to a reversion) and
# that the upgrade should continue.  An exit code of 98 means that this
# operation is a reversion.  An exit code of 50 means that the usage
# statement was printed and there is nothing else to do
 
"${OPENDJ_JAVA_BIN}" ${OPENDJ_JAVA_ARGS} org.opends.quicksetup.upgrader.BuildExtractor "${@}"
RETURN_CODE=$?
if test ${RETURN_CODE} -eq 99
then
  # Configure the appropriate CLASSPATH.
  # Unlike BuildExtractor, the Upgrader uses
  # the newly extracted build's jars.
  CLASSPATH=${INSTANCE_ROOT}/tmp/upgrade/classes
  for JAR in ${INSTANCE_ROOT}/tmp/upgrade/lib/*.jar
  do
    CLASSPATH=${JAR}:${CLASSPATH}
  done
  # Launch the upgrade process.
  "${OPENDJ_JAVA_BIN}" ${OPENDJ_JAVA_ARGS} -DINSTALL_ROOT=${INSTALL_ROOT} org.opends.quicksetup.upgrader.UpgradeLauncher "${@}"
elif test ${RETURN_CODE} -eq 98
then
  # Copy jars to a temporary place from which to run the reverter
  # in order to avoid potential file lock issues.
  mkdir -p ${INSTANCE_ROOT}/tmp/revert
  cp -R ${INSTALL_ROOT}/lib ${INSTANCE_ROOT}/tmp/revert
  if test ${?} -ne 0
  then
    echo "ERROR:  Failed to initialize reversion."
    exit 101
  else
    CLASSPATH=${INSTANCE_ROOT}/tmp/revert/classes
    for JAR in ${INSTANCE_ROOT}/tmp/revert/lib/*.jar
    do
      CLASSPATH=${JAR}:${CLASSPATH}
    done
    # Launch the upgrade process.
    "${OPENDJ_JAVA_BIN}" ${OPENDJ_JAVA_ARGS} -DINSTALL_ROOT=${INSTALL_ROOT} org.opends.quicksetup.upgrader.ReversionLauncher "${@}"
  fi
elif test ${RETURN_CODE} -eq 50
then
  # Version info was on requested
  exit 0
elif test ${RETURN_CODE} -eq 0
then
  # Usage printed
  exit 0
else
  # Some unknown return code returned
  exit 101
fi