From 8ee2559efd80ab966eef9cfcef0aeb98b9885fc2 Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Fri, 20 Nov 2015 16:54:45 +0000
Subject: [PATCH] OPENDJ-2431, OPENDJ-2442, OPENDJ-2448: Fix various license checking / approval with split install - instance. Now the license is read if present from the install (read-only) and the approval is written in the instance (and the directory created if needed). Note that upgrade will require to re-approve the license.
---
opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/LicenseFile.java | 27 ++------
opendj-server-legacy/resource/upgrade.bat | 21 +++++-
opendj-server-legacy/src/main/java/org/opends/quicksetup/LicenseFile.java | 72 ++++++++++++-----------
opendj-server-legacy/resource/upgrade | 20 +++++-
4 files changed, 78 insertions(+), 62 deletions(-)
diff --git a/opendj-server-legacy/resource/upgrade b/opendj-server-legacy/resource/upgrade
index 3b582e7..98a52e5 100644
--- a/opendj-server-legacy/resource/upgrade
+++ b/opendj-server-legacy/resource/upgrade
@@ -22,7 +22,7 @@
# CDDL HEADER END
#
#
-# Copyright 2013-2014 ForgeRock AS
+# Copyright 2013-2015 ForgeRock AS
# This script may be used to perform a backup of a Directory Server backend.
@@ -33,11 +33,25 @@
export SCRIPT_NAME
SCRIPT_DIR=`dirname "${0}"`
-DIR_CLASSES="${SCRIPT_DIR}/classes"
+
+INSTALL_ROOT=${SCRIPT_DIR}
+export INSTALL_ROOT
+
+# 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
+
+DIR_CLASSES="${INSTANCE_ROOT}/classes"
# The upgrade is not compatible with patches. If the folder is not empty
# we renamed it as "classes.disabled", and the upgrade process should be launched properly.
if [ "`(ls -A ${DIR_CLASSES})`" ]; then
- mv -f ${DIR_CLASSES} "${SCRIPT_DIR}/classes.disabled"
+ mv -f ${DIR_CLASSES} "${INSTANCE_ROOT}/classes.disabled"
mkdir ${DIR_CLASSES}
fi
diff --git a/opendj-server-legacy/resource/upgrade.bat b/opendj-server-legacy/resource/upgrade.bat
index 6d3ea48..4f8fc28 100644
--- a/opendj-server-legacy/resource/upgrade.bat
+++ b/opendj-server-legacy/resource/upgrade.bat
@@ -22,7 +22,7 @@
rem CDDL HEADER END
rem
rem
-rem Copyright 2013-2014 ForgeRock AS
+rem Copyright 2013-2015 ForgeRock AS
setlocal
@@ -30,16 +30,29 @@
set SCRIPT_NAME=upgrade
for %%i in (%~sf0) do set SCRIPT_DIR=%%~dPsi
-set DIR_CLASSES="%SCRIPT_DIR%classes"
+set INSTALL_ROOT=%DIR_HOME%
+set INSTANCE_DIR=
+if exist "%INSTALL_ROOT%\instance.loc" (
+ set /p INSTANCE_DIR=<%INSTALL_ROOT%\instance.loc
+) else (
+set INSTANCE_DIR=.
+)
+set CUR_DIR=%CD%
+cd /d %INSTALL_ROOT%
+cd /d %INSTANCE_DIR%
+set INSTANCE_ROOT=%CD%
+cd /d %CUR_DIR%
+
+set DIR_CLASSES="%INSTANCE_ROOT%classes"
rem The upgrade is not compatible with patches. If the folder is not empty
rem we renamed it as "classes.disabled", and the upgrade process should be launched properly.
IF EXIST "%DIR_CLASSES%" (
- for /F %%i in ('dir /b %DIR_CLASSES%\*.*') do goto renamePatchesFolder
+ for /F %%i in ('dir /b %DIR_CLASSES%\*.*') do goto renamePatchesFolder
)
goto end
:renamePatchesFolder
-move /-Y "%DIR_CLASSES%" "%SCRIPT_DIR%classes.disabled" > nul
+move /-Y "%DIR_CLASSES%" "%INSTANCE_ROOT%classes.disabled" > nul
mkdir %DIR_CLASSES%
:end
diff --git a/opendj-server-legacy/src/main/java/org/opends/quicksetup/LicenseFile.java b/opendj-server-legacy/src/main/java/org/opends/quicksetup/LicenseFile.java
index 27f28f4..69bde73 100644
--- a/opendj-server-legacy/src/main/java/org/opends/quicksetup/LicenseFile.java
+++ b/opendj-server-legacy/src/main/java/org/opends/quicksetup/LicenseFile.java
@@ -46,6 +46,7 @@
*/
public class LicenseFile
{
+ private static final String INSTALL_ROOT_SYSTEM_PROPERTY = "INSTALL_ROOT";
/**
* The license file name in Legal directory.
@@ -65,24 +66,26 @@
/**
* Get the directory in which legal files are stored.
*/
- private static String getInstanceLegalDirectory()
- {
- String instanceLegalDirName;
- String installDirName = System.getProperty("INSTALL_ROOT");
-
+ private static String getInstallDirectory() {
+ String installDirName = System.getProperty(INSTALL_ROOT_SYSTEM_PROPERTY);
if (installDirName == null)
{
- installDirName = System.getenv("INSTALL_ROOT");
+ installDirName = System.getenv(INSTALL_ROOT_SYSTEM_PROPERTY);
}
-
if (installDirName == null)
{
installDirName = ".";
}
+ return installDirName;
+ }
- String instanceDirname =
- Utils.getInstancePathFromInstallPath(installDirName);
- instanceLegalDirName = instanceDirname + File.separator + LEGAL_FOLDER_NAME;
+ /**
+ * Get the directory in which approved legal files are stored.
+ */
+ private static String getInstanceLegalDirectory()
+ {
+ String instanceLegalDirName = Utils.getInstancePathFromInstallPath(getInstallDirectory())
+ + File.separator + LEGAL_FOLDER_NAME;
File instanceLegalDir = new File(instanceLegalDirName);
if (!instanceLegalDir.exists())
{
@@ -106,8 +109,7 @@
*/
private static String getName()
{
- return getInstanceLegalDirectory() + File.separatorChar
- + LICENSE_FILE_NAME;
+ return getInstallDirectory() + File.separator + LEGAL_FOLDER_NAME + File.separator + LICENSE_FILE_NAME;
}
/**
@@ -141,7 +143,7 @@
*/
public static String getText()
{
- InputStream input = null;
+ InputStream input;
try
{
input = new FileInputStream(getFile());
@@ -154,27 +156,23 @@
// Reads the inputstream content.
final StringBuilder sb = new StringBuilder();
- if (input != null)
+ try
{
- try
- {
- final BufferedReader br =
- new BufferedReader(new InputStreamReader(input));
- String read = br.readLine();
+ final BufferedReader br = new BufferedReader(new InputStreamReader(input));
+ String read = br.readLine();
- while (read != null)
- {
- sb.append(read);
- sb.append(ServerConstants.EOL);
- read = br.readLine();
- }
- }
- catch (IOException ioe)
+ while (read != null)
{
- // Should not happen
- return "";
+ sb.append(read);
+ sb.append(ServerConstants.EOL);
+ read = br.readLine();
}
}
+ catch (IOException ioe)
+ {
+ // Should not happen
+ return "";
+ }
StaticUtils.close(input);
return sb.toString();
@@ -213,10 +211,17 @@
{
if (getApproval() && installationPath != null)
{
+ String instanceDirname = Utils.getInstancePathFromInstallPath(installationPath);
+ String instanceLegalDirName = instanceDirname + File.separator + LEGAL_FOLDER_NAME;
+ File instanceLegalDir = new File(instanceLegalDirName);
+
try
{
- new File(installationPath + File.separatorChar + LEGAL_FOLDER_NAME
- + File.separatorChar + ACCEPTED_LICENSE_FILE_NAME).createNewFile();
+ if (!instanceLegalDir.exists())
+ {
+ instanceLegalDir.mkdir();
+ }
+ new File(instanceLegalDir, ACCEPTED_LICENSE_FILE_NAME).createNewFile();
}
catch (IOException e)
{
@@ -233,10 +238,7 @@
*/
public static boolean isAlreadyApproved()
{
- final File f =
- new File(getInstanceLegalDirectory() + File.separatorChar
- + ACCEPTED_LICENSE_FILE_NAME);
- return f.exists();
+ return new File(getInstanceLegalDirectory(), ACCEPTED_LICENSE_FILE_NAME).exists();
}
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/LicenseFile.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/LicenseFile.java
index f897bdc..665b933 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/LicenseFile.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/LicenseFile.java
@@ -53,9 +53,6 @@
*/
private static final String LEGAL_FOLDER_NAME = "legal-notices";
- /** List of possible folder of the accepted license file. */
- private static final String[] ACCEPTED_LICENSE_FOLDER_NAMES = new String[] { LEGAL_FOLDER_NAME, "Legal" };
-
/**
* The accepted license file name.
*/
@@ -65,7 +62,7 @@
* Try to find the local instance path from system property or environment. If
* both are null, return the provided fallback value.
*/
- private static String getInstanceRootPathFromSystem(final String fallBackValue)
+ private static String getInstallRootPathFromSystem(final String fallBackValue)
{
final String[] possibleValues = new String[] {
System.getProperty(INSTALL_ROOT_SYSTEM_PROPERTY), System.getenv(INSTALL_ROOT_SYSTEM_PROPERTY) };
@@ -82,7 +79,7 @@
/** Get the directory in which legal files are stored. */
private static String getLegalDirectory()
{
- return getInstanceRootPathFromSystem("") + File.separatorChar + LEGAL_FOLDER_NAME;
+ return getInstallRootPathFromSystem(".") + File.separator + LEGAL_FOLDER_NAME;
}
/**
@@ -90,7 +87,7 @@
*/
private static String getInstanceLegalDirectory()
{
- final String instanceDirname = UpgradeUtils.getInstancePathFromInstallPath(getInstanceRootPathFromSystem("."));
+ final String instanceDirname = UpgradeUtils.getInstancePathFromInstallPath(getInstallRootPathFromSystem("."));
final String instanceLegalDirName = instanceDirname + File.separator + LEGAL_FOLDER_NAME;
final File instanceLegalDir = new File(instanceLegalDirName);
if (!instanceLegalDir.exists())
@@ -115,7 +112,7 @@
*/
private static String getName()
{
- return getLegalDirectory() + File.separatorChar + LICENSE_FILE_NAME;
+ return getLegalDirectory() + File.separator + LICENSE_FILE_NAME;
}
/**
@@ -212,11 +209,10 @@
{
try
{
- new File(getInstanceLegalDirectory() + File.separatorChar
- + ACCEPTED_LICENSE_FILE_NAME).createNewFile();
+ new File(getInstanceLegalDirectory(), ACCEPTED_LICENSE_FILE_NAME).createNewFile();
}
catch (IOException e)
- {
+ { // do nothing
}
}
}
@@ -229,16 +225,7 @@
*/
public static boolean isAlreadyApproved()
{
- for (final String folderName : ACCEPTED_LICENSE_FOLDER_NAMES)
- {
- final File f = new File(getInstanceRootPathFromSystem(".") + File.separatorChar + folderName
- + File.separatorChar + ACCEPTED_LICENSE_FILE_NAME);
- if (f.exists())
- {
- return true;
- }
- }
- return false;
+ return new File(getInstanceLegalDirectory(), ACCEPTED_LICENSE_FILE_NAME).exists();
}
}
--
Gitblit v1.10.0