DIRSERVER-2322: Move tmp directory into instance layout
diff --git a/core-api/src/main/java/org/apache/directory/server/core/api/InstanceLayout.java b/core-api/src/main/java/org/apache/directory/server/core/api/InstanceLayout.java
index d29f4bb..9116baa 100644
--- a/core-api/src/main/java/org/apache/directory/server/core/api/InstanceLayout.java
+++ b/core-api/src/main/java/org/apache/directory/server/core/api/InstanceLayout.java
@@ -89,6 +89,7 @@
public static final String PARTITIONS_NAME = "partitions";
private static final String REPL_NAME = "syncrepl-data";
private static final String CACHE_NAME = "cache";
+ private static final String TMP_NAME = "tmp";
/** Static file names */
private static final String LOG4J_PROPERTIES = "log4j.properties";
@@ -114,6 +115,9 @@
/** The cache directory */
private File cacheDir;
+ /** The tmp directory */
+ private File tmpDir;
+
/**
* Creates a new instance of InstanceLayout.
@@ -152,7 +156,8 @@
getLogDirectory(),
getPartitionsDirectory(),
getRunDirectory(),
- getCacheDirectory()
+ getCacheDirectory(),
+ getTmpDirectory()
};
setRequiredDirectories( requiredDirectories );
@@ -211,7 +216,7 @@
/**
- * @param cacheDir the confDir to set
+ * @param cacheDir the cacheDir to set
*/
public void setCacheDir( File cacheDir )
{
@@ -220,6 +225,31 @@
/**
+ * Gets the 'tmp' directory ('<instance>/tmp').
+ *
+ * @return the 'tmp' directory
+ */
+ public File getTmpDirectory()
+ {
+ if ( tmpDir == null )
+ {
+ tmpDir = new File( getInstanceDirectory(), TMP_NAME );
+ }
+
+ return tmpDir;
+ }
+
+
+ /**
+ * @param tmpDir the tmpDir to set
+ */
+ public void setTmpDir( File tmpDir )
+ {
+ this.tmpDir = tmpDir;
+ }
+
+
+ /**
* Gets the 'log' directory ('<instance>/log').
*
* @return the 'log' directory
@@ -407,6 +437,7 @@
+ " Instance run dir : " + getRunDirectory() + "\n"
+ " Instance partitions dir : " + getPartitionsDirectory() + "\n"
+ " Instance replication data dir : " + getReplDirectory() + "\n"
- + " Instance cache dir : " + getCacheDirectory() + "\n";
+ + " Instance cache dir : " + getCacheDirectory() + "\n"
+ + " Instance tmp dir : " + getTmpDirectory() + "\n";
}
}
diff --git a/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/bin/install.sh b/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/bin/install.sh
index fe682ea..8188b78 100644
--- a/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/bin/install.sh
+++ b/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/bin/install.sh
@@ -97,6 +97,8 @@
verifyExitCode
mkdir -p $DEFAULT_INSTANCE_HOME_DIRECTORY/run
verifyExitCode
+mkdir -p $DEFAULT_INSTANCE_HOME_DIRECTORY/tmp
+verifyExitCode
# Filtering default instance wrapper.conf file
sed -e "s;@installation.directory@;${APACHEDS_HOME_DIRECTORY};" ../instance/wrapper-instance.conf > ../instance/wrapper-instance.conf.tmp
diff --git a/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/rpm/apacheds.spec b/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/rpm/apacheds.spec
index cad2aec..688bea5 100644
--- a/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/rpm/apacheds.spec
+++ b/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/rpm/apacheds.spec
@@ -48,6 +48,7 @@
mkdir -p $RPM_BUILD_ROOT%{adsdata}/default/log
mkdir -p $RPM_BUILD_ROOT%{adsdata}/default/partitions
mkdir -p $RPM_BUILD_ROOT%{adsdata}/default/run
+mkdir -p $RPM_BUILD_ROOT%{adsdata}/default/tmp
mkdir -p $RPM_BUILD_ROOT/etc/init.d
# Server files
@@ -95,6 +96,7 @@
%{adsdata}/default/log
%{adsdata}/default/partitions
%{adsdata}/default/run
+%{adsdata}/default/tmp
%config %{adsdata}/default/conf/config.ldif
%config %{adsdata}/default/conf/log4j.properties
%config %{adsdata}/default/conf/wrapper-instance.conf
diff --git a/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/wrapper-installation.conf b/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/wrapper-installation.conf
index 51f3264..3c53ab5 100644
--- a/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/wrapper-installation.conf
+++ b/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/wrapper-installation.conf
@@ -35,6 +35,7 @@
wrapper.java.additional.3=-Dapacheds.log.dir=${double.quote}%INSTANCE_DIRECTORY%/log${double.quote}
wrapper.java.additional.4=-Dapacheds.run.dir=${double.quote}%INSTANCE_DIRECTORY%/run${double.quote}
wrapper.java.additional.5=-Dapacheds.instance=${double.quote}%INSTANCE%${double.quote}
+wrapper.java.additional.6=-Djava.io.tmpdir=${double.quote}%INSTANCE_DIRECTORY%/tmp${double.quote}
# Initial Java Heap Size (in MB)
#wrapper.java.initmemory=1024
diff --git a/installers/src/test/docker/archive.test b/installers/src/test/docker/archive.test
index 52b611a..e0ff7cc 100644
--- a/installers/src/test/docker/archive.test
+++ b/installers/src/test/docker/archive.test
@@ -73,6 +73,7 @@
# install required tools
apt-get -qq update
apt-get -qq -y install ldap-utils netcat
+java -version
# start
/opt/${DIRNAME}/bin/apacheds.sh start
diff --git a/installers/src/test/docker/bin-DIRSERVER-2173.test b/installers/src/test/docker/bin-DIRSERVER-2173.test
index c494e10..42ecd1d 100644
--- a/installers/src/test/docker/bin-DIRSERVER-2173.test
+++ b/installers/src/test/docker/bin-DIRSERVER-2173.test
@@ -67,6 +67,7 @@
# set wrapper java path
echo "" >> /var/lib/${DIRNAME}/default/conf/wrapper-instance.conf
echo "wrapper.java.command=$JAVA_HOME/bin/java" >> /var/lib/${DIRNAME}/default/conf/wrapper-instance.conf
+java -version
# start
service ${SERVICE_NAME} start
diff --git a/installers/src/test/docker/bin.test b/installers/src/test/docker/bin.test
index 1ae9dbc..74fbbf6 100644
--- a/installers/src/test/docker/bin.test
+++ b/installers/src/test/docker/bin.test
@@ -66,6 +66,7 @@
# set wrapper java path
echo "" >> /var/lib/${DIRNAME}/default/conf/wrapper-instance.conf
echo "wrapper.java.command=$JAVA_HOME/bin/java" >> /var/lib/${DIRNAME}/default/conf/wrapper-instance.conf
+java -version
# start
service ${SERVICE_NAME} start
diff --git a/installers/src/test/docker/deb.test b/installers/src/test/docker/deb.test
index 8fa99b8..7d2cc6a 100644
--- a/installers/src/test/docker/deb.test
+++ b/installers/src/test/docker/deb.test
@@ -39,6 +39,7 @@
apt-get -qq update
apt-get -qq -y install ldap-utils netcat procps
command -v java >/dev/null 2>&1 || apt-get -qq -y install default-jre-headless
+java -version
# assert no duplicate files (DIRSERVER-2197)
test $(dpkg -c /apacheds.deb | sort | uniq -cd | wc -l) -eq 0
@@ -96,6 +97,9 @@
# assert no error in log
grep ".*ERROR.*" /var/lib/${DIRNAME}/default/log/apacheds.log && false
+# Handle OpenJ9 class sharing
+rm -rf /opt/${DIRNAME}/javasharedresources
+
# uninstall
dpkg -P apacheds
diff --git a/installers/src/test/docker/rpm.test b/installers/src/test/docker/rpm.test
index 7d8ccc6..e4885b9 100644
--- a/installers/src/test/docker/rpm.test
+++ b/installers/src/test/docker/rpm.test
@@ -40,7 +40,8 @@
# install packages
yum -y -q install openldap-clients nmap procps
-command -v java >/dev/null 2>&1 || yum -y -q install java-openjdk-headless
+command -v java >/dev/null 2>&1 || yum -y -q install java-latest-openjdk-headless || yum -y -q install java-openjdk-headless
+java -version
# assert no duplicate files (DIRSERVER-2197)
test $(rpm -qlp /apacheds.rpm | sort | uniq -cd | wc -l) -eq 0
diff --git a/installers/src/test/docker/run-archive-tests.sh b/installers/src/test/docker/run-archive-tests.sh
index 02f5141..063d8e9 100755
--- a/installers/src/test/docker/run-archive-tests.sh
+++ b/installers/src/test/docker/run-archive-tests.sh
@@ -28,7 +28,7 @@
then
echo
echo
- echo "Testing tar.gz archive (Debian 9, OpenJDK 8, 64bit)"
+ echo "Testing tar.gz archive (Debian 10, OpenJDK 8, 64bit)"
docker run -i --rm -h myhostname \
-v ${TGZ}:/apacheds.tar.gz \
-v ${TEST_SCRIPTS_DIR}/archive.test:/archive.test \
@@ -42,7 +42,7 @@
then
echo
echo
- echo "Testing zip archive (Debian 9, OpenJDK 11, 64bit)"
+ echo "Testing zip archive (Debian 10, OpenJDK 11, 64bit)"
docker run -i --rm -h myhostname \
-v ${ZIP}:/apacheds.zip \
-v ${TEST_SCRIPTS_DIR}/archive.test:/archive.test \
diff --git a/installers/src/test/docker/run-bin-tests.sh b/installers/src/test/docker/run-bin-tests.sh
index 36a491b..9a5ed0c 100755
--- a/installers/src/test/docker/run-bin-tests.sh
+++ b/installers/src/test/docker/run-bin-tests.sh
@@ -28,7 +28,7 @@
then
echo
echo
- echo "Testing bin installer (Debian 9, OpenJDK 8, 64bit)"
+ echo "Testing bin installer (Debian 10, OpenJDK 8, 64bit)"
docker run -i --rm -h myhostname \
-v ${BIN64}:/apacheds.bin \
-v ${TEST_SCRIPTS_DIR}/bin.test:/bin.test \
@@ -36,7 +36,7 @@
echo
echo
- echo "Testing bin installer (DIRSERVER-2173) (Debian 9, OpenJDK 8, 64bit)"
+ echo "Testing bin installer (DIRSERVER-2173) (Debian 10, OpenJDK 8, 64bit)"
docker run -i --rm -h myhostname \
-v ${BIN64}:/apacheds.bin \
-v ${TEST_SCRIPTS_DIR}/bin-DIRSERVER-2173.test:/bin-DIRSERVER-2173.test \
diff --git a/installers/src/test/docker/run-deb-tests.sh b/installers/src/test/docker/run-deb-tests.sh
index 05076a4..61c4c4a 100755
--- a/installers/src/test/docker/run-deb-tests.sh
+++ b/installers/src/test/docker/run-deb-tests.sh
@@ -39,6 +39,6 @@
echo
echo
- echo "Testing deb package (Ubuntu 18.04, OpenJ9 12, 64bit)"
- $DOCKER_CMD adoptopenjdk/openjdk12-openj9:slim bash -c "ln -s /opt/java/openjdk/bin/java /usr/bin/java; bash /deb.test"
+ echo "Testing deb package (Ubuntu 20.04, OpenJ9 16, 64bit)"
+ $DOCKER_CMD adoptopenjdk/openjdk16-openj9:slim bash -c "ln -s /opt/java/openjdk/bin/java /usr/bin/java; bash /deb.test"
fi
diff --git a/installers/src/test/docker/run-rpm-tests.sh b/installers/src/test/docker/run-rpm-tests.sh
index cb63ead..249d8d5 100755
--- a/installers/src/test/docker/run-rpm-tests.sh
+++ b/installers/src/test/docker/run-rpm-tests.sh
@@ -34,8 +34,8 @@
echo
echo
- echo "Testing rpm package (Fedora 29, OpenJDK 12, 64bit)"
- $DOCKER_CMD fedora:29 bash /rpm.test
+ echo "Testing rpm package (Fedora 34, OpenJDK latest (16+), 64bit)"
+ $DOCKER_CMD fedora:34 bash /rpm.test
echo
echo