You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pa...@apache.org on 2010/09/28 11:20:42 UTC
svn commit: r1002067 - in
/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main:
java/org/apache/directory/daemon/installers/
java/org/apache/directory/daemon/installers/archive/
java/org/apache/directory/daemon/installers/bin/ ...
Author: pamarcelot
Date: Tue Sep 28 09:20:42 2010
New Revision: 1002067
URL: http://svn.apache.org/viewvc?rev=1002067&view=rev
Log:
Fixed the bin installer.
Modified:
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/AbstractMojoCommand.java
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/archive/ArchiveInstallerCommand.java
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinInstallerCommand.java
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/macosxpkg/MacOsXPkgInstallerCommand.java
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/nsis/NsisInstallerCommand.java
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/apacheds-init
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/bootstrap.sh
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/install.sh
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/AbstractMojoCommand.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/AbstractMojoCommand.java?rev=1002067&r1=1002066&r2=1002067&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/AbstractMojoCommand.java (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/AbstractMojoCommand.java Tue Sep 28 09:20:42 2010
@@ -131,22 +131,33 @@ public abstract class AbstractMojoComman
/**
- * Creates installation layout and copies files to it.
+ * Creates both installation and instance layouts.
*
* @param mojo
* the mojo
- * @throws Exception
+ * @throws MojoFailureException
+ * @throws IOException
*/
- public void copyCommonFiles( GenerateMojo mojo ) throws Exception
+ public void createLayouts() throws MojoFailureException, IOException
+ {
+ createInstallationLayout();
+ createInstanceLayout();
+ }
+
+
+ /**
+ * Creates the installation layout.
+ *
+ * @throws MojoFailureException
+ * @throws IOException
+ */
+ protected void createInstallationLayout() throws MojoFailureException, IOException
{
// Getting the installation layout and creating directories
InstallationLayout installationLayout = getInstallationLayout();
installationLayout.mkdirs();
- // Getting the instance layout and creating directories
- InstanceLayout instanceLayout = getInstanceLayout();
- instanceLayout.mkdirs();
-
+ // Copying dependencies artifacts to the lib folder of the installation layout
MojoHelperUtils.copyDependencies( mojo, installationLayout );
// Copying the LICENSE and NOTICE files
@@ -158,21 +169,48 @@ public abstract class AbstractMojoComman
new File( installationLayout.getInstallationDirectory(),
"NOTICE" ) );
- // Copying wrapper files
- copyWrapperFiles( installationLayout, instanceLayout );
-
- // Copying the log4j.properties file
- MojoHelperUtils.copyAsciiFile( mojo, filterProperties,
- getClass().getResourceAsStream( "/org/apache/directory/daemon/installers/log4j.properties" ),
- new File( instanceLayout.getConfDirectory(), "log4j.properties" ), true );
-
// Copying the 'apacheds' shell script (only for Linux, Solaris or Mac OS X)
if ( target.isOsNameLinux() || target.isOsNameSolaris() || target.isOsNameMacOSX() )
{
MojoHelperUtils.copyAsciiFile( mojo, filterProperties,
getClass().getResourceAsStream( "/org/apache/directory/daemon/installers/apacheds.init" ),
new File( installationLayout.getBinDirectory(), "apacheds" ), true );
+
+ MojoHelperUtils.exec( new String[]
+ { "chmod", "755", "apacheds" }, installationLayout.getBinDirectory(), false );
}
+
+ // Copying the wrappers files (native wrapper executable and library [.jnilib, .so, .dll])
+ copyWrapperFiles();
+
+ // Copying the wrapper configuration file
+ MojoHelperUtils.copyAsciiFile( mojo, filterProperties,
+ getClass()
+ .getResourceAsStream( "/org/apache/directory/daemon/installers/wrapper-installation.conf" ),
+ new File( installationLayout.getConfDirectory(), "wrapper.conf" ), true );
+ }
+
+
+ /**
+ * Creates the instance layout.
+ *
+ * @throws IOException
+ */
+ protected void createInstanceLayout() throws IOException
+ {
+ // Getting the instance layout and creating directories
+ InstanceLayout instanceLayout = getInstanceLayout();
+ instanceLayout.mkdirs();
+
+ // Copying the log4j.properties file
+ MojoHelperUtils.copyAsciiFile( mojo, filterProperties,
+ getClass().getResourceAsStream( "/org/apache/directory/daemon/installers/log4j.properties" ),
+ new File( instanceLayout.getConfDirectory(), "log4j.properties" ), true );
+
+ // Copying the wrapper configuration file
+ MojoHelperUtils.copyAsciiFile( mojo, filterProperties,
+ getClass().getResourceAsStream( "/org/apache/directory/daemon/installers/wrapper-instance.conf" ),
+ new File( instanceLayout.getConfDirectory(), "wrapper.conf" ), true );
}
@@ -205,10 +243,9 @@ public abstract class AbstractMojoComman
*
* @param installationLayout
* the installation layout
- * @param instanceLayout
* @throws MojoFailureException
*/
- private void copyWrapperFiles( InstallationLayout installationLayout, InstanceLayout instanceLayout )
+ private void copyWrapperFiles()
throws MojoFailureException
{
// Mac OS X x86
@@ -218,10 +255,10 @@ public abstract class AbstractMojoComman
{
MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream(
"/org/apache/directory/daemon/installers/wrapper/bin/wrapper-macosx-universal-32" ), new File(
- installationLayout.getBinDirectory(), "wrapper" ) );
+ getInstallationLayout().getBinDirectory(), "wrapper" ) );
MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream(
"/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-macosx-universal-32.jnilib" ),
- new File( installationLayout.getLibDirectory(),
+ new File( getInstallationLayout().getLibDirectory(),
"libwrapper.jnilib" ) );
}
catch ( IOException e )
@@ -237,10 +274,10 @@ public abstract class AbstractMojoComman
{
MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream(
"/org/apache/directory/daemon/installers/wrapper/bin/wrapper-macosx-universal-64" ), new File(
- installationLayout.getBinDirectory(), "wrapper" ) );
+ getInstallationLayout().getBinDirectory(), "wrapper" ) );
MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream(
"/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-macosx-universal-64.jnilib" ),
- new File( installationLayout.getLibDirectory(),
+ new File( getInstallationLayout().getLibDirectory(),
"libwrapper.jnilib" ) );
}
catch ( IOException e )
@@ -257,10 +294,10 @@ public abstract class AbstractMojoComman
MojoHelperUtils.copyBinaryFile(
getClass().getResourceAsStream(
"/org/apache/directory/daemon/installers/wrapper/bin/wrapper-linux-x86-32" ),
- new File( installationLayout.getBinDirectory(), "wrapper" ) );
+ new File( getInstallationLayout().getBinDirectory(), "wrapper" ) );
MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream(
"/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-linux-x86-32.so" ),
- new File( installationLayout.getLibDirectory(), "libwrapper.so" ) );
+ new File( getInstallationLayout().getLibDirectory(), "libwrapper.so" ) );
}
catch ( IOException e )
{
@@ -276,10 +313,10 @@ public abstract class AbstractMojoComman
MojoHelperUtils.copyBinaryFile(
getClass().getResourceAsStream(
"/org/apache/directory/daemon/installers/wrapper/bin/wrapper-linux-x86-64" ),
- new File( installationLayout.getBinDirectory(), "wrapper" ) );
+ new File( getInstallationLayout().getBinDirectory(), "wrapper" ) );
MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream(
"/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-linux-x86-64.so" ),
- new File( installationLayout.getLibDirectory(), "libwrapper.so" ) );
+ new File( getInstallationLayout().getLibDirectory(), "libwrapper.so" ) );
}
catch ( IOException e )
{
@@ -294,10 +331,10 @@ public abstract class AbstractMojoComman
{
MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream(
"/org/apache/directory/daemon/installers/wrapper/bin/wrapper-solaris-x86-32" ),
- new File( installationLayout.getBinDirectory(), "wrapper" ) );
+ new File( getInstallationLayout().getBinDirectory(), "wrapper" ) );
MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream(
"/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-solaris-x86-32.so" ), new File(
- installationLayout.getLibDirectory(),
+ getInstallationLayout().getLibDirectory(),
"libwrapper.so" ) );
}
catch ( IOException e )
@@ -313,10 +350,10 @@ public abstract class AbstractMojoComman
{
MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream(
"/org/apache/directory/daemon/installers/wrapper/bin/wrapper-solaris-sparc-32" ),
- new File( installationLayout.getBinDirectory(), "wrapper" ) );
+ new File( getInstallationLayout().getBinDirectory(), "wrapper" ) );
MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream(
"/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-solaris-sparc-32.so" ), new File(
- installationLayout.getLibDirectory(),
+ getInstallationLayout().getLibDirectory(),
"libwrapper.so" ) );
}
catch ( IOException e )
@@ -332,10 +369,10 @@ public abstract class AbstractMojoComman
{
MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream(
"/org/apache/directory/daemon/installers/wrapper/bin/wrapper-windows-x86-32.exe" ),
- new File( installationLayout.getBinDirectory(), "wrapper.exe" ) );
+ new File( getInstallationLayout().getBinDirectory(), "wrapper.exe" ) );
MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream(
"/org/apache/directory/daemon/installers/wrapper/lib/wrapper-windows-x86-32.dll" ), new File(
- installationLayout.getLibDirectory(),
+ getInstallationLayout().getLibDirectory(),
"wrapper.dll" ) );
}
catch ( IOException e )
@@ -343,20 +380,5 @@ public abstract class AbstractMojoComman
throw new MojoFailureException( "Failed to copy Tanuki binary files to lib and bin directories" );
}
}
-
- // Wrapper configuration files
- try
- {
- MojoHelperUtils.copyAsciiFile( mojo, filterProperties,
- getClass().getResourceAsStream( "/org/apache/directory/daemon/installers/wrapper-installation.conf" ),
- new File( installationLayout.getConfDirectory(), "wrapper.conf" ), true );
- MojoHelperUtils.copyAsciiFile( mojo, filterProperties,
- getClass().getResourceAsStream( "/org/apache/directory/daemon/installers/wrapper-instance.conf" ),
- new File( instanceLayout.getConfDirectory(), "wrapper.conf" ), true );
- }
- catch ( IOException e )
- {
- throw new MojoFailureException( "Failed to copy Tanuki binary files to lib and bin directories" );
- }
}
}
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/archive/ArchiveInstallerCommand.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/archive/ArchiveInstallerCommand.java?rev=1002067&r1=1002066&r2=1002067&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/archive/ArchiveInstallerCommand.java (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/archive/ArchiveInstallerCommand.java Tue Sep 28 09:20:42 2010
@@ -84,8 +84,8 @@ public class ArchiveInstallerCommand ext
try
{
- // Creating the installation layout and copying files to it
- copyCommonFiles( mojo );
+ // Creating the installation and instance layouts
+ createLayouts();
// Copy bat and sh scripts to bin
MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream(
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinInstallerCommand.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinInstallerCommand.java?rev=1002067&r1=1002066&r2=1002067&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinInstallerCommand.java (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinInstallerCommand.java Tue Sep 28 09:20:42 2010
@@ -22,7 +22,6 @@ package org.apache.directory.daemon.inst
import java.io.File;
import java.io.IOException;
-import java.util.Properties;
import org.apache.directory.daemon.installers.AbstractMojoCommand;
import org.apache.directory.daemon.installers.GenerateMojo;
@@ -30,7 +29,6 @@ import org.apache.directory.daemon.insta
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.tools.ant.taskdefs.Execute;
-import org.codehaus.plexus.util.FileUtils;
/**
@@ -87,9 +85,27 @@ public class BinInstallerCommand extends
try
{
- // Creating the installation layout and copying files to it
- copyCommonFiles( mojo );
+ // Creating the installation layouts
+ createInstallationLayout();
+ // Creating the instance directory
+ File instanceDirectory = getInstanceDirectory();
+ instanceDirectory.mkdirs();
+
+ // Copying configuration files to the instance directory
+ MojoHelperUtils.copyAsciiFile( mojo, filterProperties,
+ getClass().getResourceAsStream( "/org/apache/directory/daemon/installers/log4j.properties" ),
+ new File( instanceDirectory, "log4j.properties" ), true );
+ MojoHelperUtils.copyAsciiFile( mojo, filterProperties,
+ getClass().getResourceAsStream( "/org/apache/directory/daemon/installers/wrapper-instance.conf" ),
+ new File( instanceDirectory, "wrapper.conf" ), true );
+
+ // Copying the init script to the instance directory
+ MojoHelperUtils.copyAsciiFile( mojo, filterProperties,
+ getClass().getResourceAsStream( "/org/apache/directory/daemon/installers/bin/apacheds-init" ),
+ new File( instanceDirectory, "apacheds-init" ), true );
+
+ // Creating the sh directory for the shell scripts
File binShDirectory = new File( getBinInstallerDirectory(), "sh" );
binShDirectory.mkdirs();
@@ -274,6 +290,8 @@ public class BinInstallerCommand extends
}
filterProperties.put( "finalName", finalName );
filterProperties.put( "apacheds.version", mojo.getProject().getVersion() );
+ filterProperties.put( "wrapper.java.command", "# wrapper.java.command=<path-to-java-executable>" );
+ filterProperties.put( "double.quote", "" );
}
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/macosxpkg/MacOsXPkgInstallerCommand.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/macosxpkg/MacOsXPkgInstallerCommand.java?rev=1002067&r1=1002066&r2=1002067&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/macosxpkg/MacOsXPkgInstallerCommand.java (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/macosxpkg/MacOsXPkgInstallerCommand.java Tue Sep 28 09:20:42 2010
@@ -22,14 +22,11 @@ package org.apache.directory.daemon.inst
import java.io.File;
import java.io.IOException;
-import java.util.Properties;
import org.apache.directory.daemon.installers.AbstractMojoCommand;
import org.apache.directory.daemon.installers.GenerateMojo;
import org.apache.directory.daemon.installers.MojoHelperUtils;
import org.apache.directory.daemon.installers.Target;
-import org.apache.directory.server.InstallationLayout;
-import org.apache.directory.server.InstanceLayout;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.tools.ant.taskdefs.Execute;
@@ -108,8 +105,8 @@ public class MacOsXPkgInstallerCommand e
// Copying the apacheds files in the root directory
try
{
- // Creating the installation layout and copying files to it
- copyCommonFiles( mojo );
+ // Creating the installation and instance layouts
+ createLayouts();
// Copying the apacheds command to /usr/bin
MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream(
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/nsis/NsisInstallerCommand.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/nsis/NsisInstallerCommand.java?rev=1002067&r1=1002066&r2=1002067&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/nsis/NsisInstallerCommand.java (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/nsis/NsisInstallerCommand.java Tue Sep 28 09:20:42 2010
@@ -84,7 +84,8 @@ public class NsisInstallerCommand extend
try
{
- copyCommonFiles( mojo );
+ // Creating the installation and instance layouts
+ createLayouts();
// Copying the 'Manage ApacheDS' utility
MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream( "Manage ApacheDS.exe" ), new File(
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/apacheds-init
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/apacheds-init?rev=1002067&r1=1002066&r2=1002067&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/apacheds-init (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/apacheds-init Tue Sep 28 09:20:42 2010
@@ -1,5 +1,4 @@
-#! /bin/sh
-#
+#!/bin/sh
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -18,595 +17,4 @@
# specific language governing permissions and limitations
# under the License.
#
-
-# Shell script to start/stop Apache Directory Server
-# If you want to change apacheds service settings please modify the apacheds.conf
-# file for the instance you wish to change.
-# chkconfig: 2345 91 35
-# description: This script starts and stops Apache DS
-#
-
-# Variables
-INSTANCE_HOME="@INSTANCE.HOME@"
-APACHEDS_HOME="@APACHEDS.HOME@"
-INSTANCE="@INSTANCE@"
-
-# Application
-APP_NAME="@app@"
-export APACHEDS_HOME
-APP_LONG_NAME="Apache Directory Server - $INSTANCE"
-
-
-# Wrapper
-WRAPPER_CMD="$APACHEDS_HOME/bin/@app@"
-WRAPPER_CONF="$APACHEDS_HOME/conf/@app@.conf"
-
-# Priority at which to run the wrapper. See "man nice" for valid priorities.
-# nice is only used if a priority is specified.
-PRIORITY=
-
-# Location of the pid file.
-PIDDIR="@INSTANCE.HOME@/@INSTANCE@/run"
-
-# If uncommented, causes the Wrapper to be shutdown using an anchor file.
-# When launched with the 'start' command, it will also ignore all INT and
-# TERM signals.
-#IGNORE_SIGNALS=true
-
-# If specified, the Wrapper will be run as the specified user.
-# IMPORTANT - Make sure that the user has the required privileges to write
-# the PID file and wrapper.log files. Failure to be able to write the log
-# file will cause the Wrapper to exit without any way to write out an error
-# message.
-# NOTE - This will set the user which is used to run the Wrapper as well as
-# the JVM and is not useful in situations where a privileged resource or
-# port needs to be allocated prior to the user being changed.
-RUN_AS_USER=@RUN_AS_USER@
-
-# Do not modify anything beyond this point
-#-----------------------------------------------------------------------------
-
-# Get the fully qualified path to the script
-case $0 in
- /*)
- SCRIPT="$0"
- ;;
- ./*)
- SCRIPT="`pwd`/`echo $0 | sed -e 's/^[ ]*\.\///'`"
- ;;
- *)
- SCRIPT="`pwd`/`echo $0 | sed -e 's/^[ ]*//'`"
- ;;
-esac
-
-# Resolve the true real path without any sym links.
-CHANGED=true
-while [ "X$CHANGED" != "X" ]
-do
- # Change spaces to ":" so the tokens can be parsed.
- SAFESCRIPT=`echo $SCRIPT | sed -e 's; ;:;g'`
- # Get the real path to this script, resolving any symbolic links
- TOKENS=`echo $SAFESCRIPT | sed -e 's;/; ;g'`
- REALPATH=
- for C in $TOKENS; do
- # Change any ":" in the token back to a space.
- C=`echo $C | sed -e 's;:; ;g'`
- REALPATH="$REALPATH/$C"
- # If REALPATH is a sym link, resolve it. Loop for nested links.
- while [ -h "$REALPATH" ] ; do
- LS="`ls -ld "$REALPATH"`"
- LINK="`expr "$LS" : '.*-> \(.*\)$'`"
- if expr "$LINK" : '/.*' > /dev/null; then
- # LINK is absolute.
- REALPATH="$LINK"
- else
- # LINK is relative.
- REALPATH="`dirname "$REALPATH"`""/$LINK"
- fi
- done
- done
-
- if [ "$REALPATH" = "$SCRIPT" ]
- then
- CHANGED=""
- else
- SCRIPT="$REALPATH"
- fi
-done
-
-# Change the current directory to the location of the script
-cd "`dirname "$REALPATH"`"
-REALDIR=`pwd`
-
-# If the PIDDIR is relative, set its value relative to the full REALPATH to avoid problems if
-# the working directory is later changed.
-FIRST_CHAR=`echo $PIDDIR | cut -c1,1`
-if [ "$FIRST_CHAR" != "/" ]
-then
- PIDDIR=$REALDIR/$PIDDIR
-fi
-# Same test for WRAPPER_CMD
-FIRST_CHAR=`echo $WRAPPER_CMD | cut -c1,1`
-if [ "$FIRST_CHAR" != "/" ]
-then
- WRAPPER_CMD=$REALDIR/$WRAPPER_CMD
-fi
-# Same test for WRAPPER_CONF
-FIRST_CHAR=`echo $WRAPPER_CONF | cut -c1,1`
-if [ "$FIRST_CHAR" != "/" ]
-then
- WRAPPER_CONF=$REALDIR/$WRAPPER_CONF
-fi
-
-# Process ID
-ANCHORFILE="$PIDDIR/@app@-@app.version@-$INSTANCE.anchor"
-PIDFILE="$PIDDIR/$INSTANCE.pid"
-LOCKDIR="/var/lock/subsys"
-LOCKFILE="$LOCKDIR/$INSTANCE"
-pid=""
-
-# Resolve the location of the 'ps' command
-PSEXE="/usr/bin/ps"
-if [ ! -x "$PSEXE" ]
-then
- PSEXE="/bin/ps"
- if [ ! -x "$PSEXE" ]
- then
- echo "Unable to locate 'ps'."
- echo "Please report this message along with the location of the command on your system."
- exit 1
- fi
-fi
-
-# Resolve the os
-DIST_OS=`uname -s | tr [:upper:] [:lower:] | tr -d [:blank:]`
-case "$DIST_OS" in
- 'sunos')
- DIST_OS="solaris"
- ;;
- 'hp-ux' | 'hp-ux64')
- DIST_OS="hpux"
- ;;
- 'darwin')
- DIST_OS="macosx"
- ;;
- 'unix_sv')
- DIST_OS="unixware"
- ;;
-esac
-
-# Resolve the architecture
-DIST_ARCH=`uname -p | tr [:upper:] [:lower:] | tr -d [:blank:]`
-if [ "$DIST_ARCH" = "unknown" ]
-then
- DIST_ARCH=`uname -m | tr [:upper:] [:lower:] | tr -d [:blank:]`
-fi
-case "$DIST_ARCH" in
- 'amd64' | 'athlon' | 'ia32' | 'ia64' | 'i386' | 'i486' | 'i586' | 'i686' | 'x86_64')
- DIST_ARCH="x86"
- ;;
- 'ip27')
- DIST_ARCH="mips"
- ;;
- 'power' | 'powerpc' | 'power_pc' | 'ppc64')
- DIST_ARCH="ppc"
- ;;
- 'pa_risc' | 'pa-risc')
- DIST_ARCH="parisc"
- ;;
- 'sun4u' | 'sparcv9')
- DIST_ARCH="sparc"
- ;;
- '9000/800')
- DIST_ARCH="parisc"
- ;;
-esac
-
-outputFile() {
- if [ -f "$1" ]
- then
- echo " $1 (Found but not executable.)";
- else
- echo " $1"
- fi
-}
-
-# Decide on the wrapper binary to use.
-# If a 32-bit wrapper binary exists then it will work on 32 or 64 bit
-# platforms, if the 64-bit binary exists then the distribution most
-# likely wants to use long names. Otherwise, look for the default.
-# For macosx, we also want to look for universal binaries.
-WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
-if [ -x "$WRAPPER_TEST_CMD" ]
-then
- WRAPPER_CMD="$WRAPPER_TEST_CMD"
-else
- if [ "$DIST_OS" = "macosx" ]
- then
- WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-universal-32"
- if [ -x "$WRAPPER_TEST_CMD" ]
- then
- WRAPPER_CMD="$WRAPPER_TEST_CMD"
- else
- WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
- if [ -x "$WRAPPER_TEST_CMD" ]
- then
- WRAPPER_CMD="$WRAPPER_TEST_CMD"
- else
- WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-universal-64"
- if [ -x "$WRAPPER_TEST_CMD" ]
- then
- WRAPPER_CMD="$WRAPPER_TEST_CMD"
- else
- if [ ! -x "$WRAPPER_CMD" ]
- then
- echo "Unable to locate any of the following binaries:"
- outputFile "$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
- outputFile "$WRAPPER_CMD-$DIST_OS-universal-32"
- outputFile "$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
- outputFile "$WRAPPER_CMD-$DIST_OS-universal-64"
- outputFile "$WRAPPER_CMD"
- exit 1
- fi
- fi
- fi
- fi
- else
- WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
- if [ -x "$WRAPPER_TEST_CMD" ]
- then
- WRAPPER_CMD="$WRAPPER_TEST_CMD"
- else
- if [ ! -x "$WRAPPER_CMD" ]
- then
- echo "Unable to locate any of the following binaries:"
- outputFile "$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
- outputFile "$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
- outputFile "$WRAPPER_CMD"
- exit 1
- fi
- fi
- fi
-fi
-
-# Build the nice clause
-if [ "X$PRIORITY" = "X" ]
-then
- CMDNICE=""
-else
- CMDNICE="nice -$PRIORITY"
-fi
-
-# Build the anchor file clause.
-if [ "X$IGNORE_SIGNALS" = "X" ]
-then
- ANCHORPROP=
- IGNOREPROP=
-else
- ANCHORPROP=wrapper.anchorfile=\"$ANCHORFILE\"
- IGNOREPROP=wrapper.ignore_signals=TRUE
-fi
-
-# Build the lock file clause. Only create a lock file if the lock directory exists on this platform.
-LOCKPROP=
-if [ -d $LOCKDIR ]
-then
- if [ -w $LOCKDIR ]
- then
- LOCKPROP=wrapper.lockfile=\"$LOCKFILE\"
- fi
-fi
-
-checkUser() {
- # $1 touchLock flag
- # $2 command
- # $3 instance
-
- # Check the configured user. If necessary rerun this script as the desired user.
- if [ "X$RUN_AS_USER" != "X" ]
- then
- # Resolve the location of the 'id' command
- IDEXE="/usr/xpg4/bin/id"
- if [ ! -x "$IDEXE" ]
- then
- IDEXE="/usr/bin/id"
- if [ ! -x "$IDEXE" ]
- then
- IDEXE="/bin/id"
- if [ ! -x "$IDEXE" ]
- then
- echo "Unable to locate 'id'."
- echo "Please report this message along with the location of the command on your system."
- exit 1
- fi
- fi
- fi
-
- if [ "`$IDEXE -u -n`" = "$RUN_AS_USER" ]
- then
- # Already running as the configured user. Avoid password prompts by not calling su.
- RUN_AS_USER=""
- fi
- fi
- if [ "X$RUN_AS_USER" != "X" ]
- then
- # If LOCKPROP and $RUN_AS_USER are defined then the new user will most likely not be
- # able to create the lock file. The Wrapper will be able to update this file once it
- # is created but will not be able to delete it on shutdown. If $2 is defined then
- # the lock file should be created for the current command
- if [ "X$LOCKPROP" != "X" ]
- then
- if [ "X$1" != "X" ]
- then
- # Resolve the primary group
- RUN_AS_GROUP=`groups $RUN_AS_USER | awk '{print $3}' | tail -1`
- if [ "X$RUN_AS_GROUP" = "X" ]
- then
- RUN_AS_GROUP=$RUN_AS_USER
- fi
- touch $LOCKFILE
- chown $RUN_AS_USER:$RUN_AS_GROUP $LOCKFILE
- fi
- fi
-
- # Still want to change users, recurse. This means that the user will only be
- # prompted for a password once. Variables shifted by 1
- su -m $RUN_AS_USER -c "\"$REALPATH\" $2 $3"
-
- # Now that we are the original user again, we may need to clean up the lock file.
- if [ "X$LOCKPROP" != "X" ]
- then
- getpid
- if [ "X$pid" = "X" ]
- then
- # Wrapper is not running so make sure the lock file is deleted.
- if [ -f "$LOCKFILE" ]
- then
- rm "$LOCKFILE"
- fi
- fi
- fi
-
- exit 0
- fi
-}
-
-getpid() {
- if [ -f "$PIDFILE" ]
- then
- if [ -r "$PIDFILE" ]
- then
- pid=`cat "$PIDFILE"`
- if [ "X$pid" != "X" ]
- then
- # It is possible that 'a' process with the pid exists but that it is not the
- # correct process. This can happen in a number of cases, but the most
- # common is during system startup after an unclean shutdown.
- # The ps statement below looks for the specific wrapper command running as
- # the pid. If it is not found then the pid file is considered to be stale.
- pidtest=`$PSEXE -p $pid -o args | grep "$WRAPPER_CMD" | tail -1`
- if [ "X$pidtest" = "X" ]
- then
- # This is a stale pid file.
- rm -f "$PIDFILE"
- echo "Removed stale pid file: $PIDFILE"
- pid=""
- fi
- fi
- else
- echo "Cannot read $PIDFILE."
- exit 1
- fi
- fi
-}
-
-testpid() {
- pid=`$PSEXE -p $pid | grep $pid | grep -v grep | awk '{print $1}' | tail -1`
- if [ "X$pid" = "X" ]
- then
- # Process is gone so remove the pid file.
- rm -f "$PIDFILE"
- pid=""
- fi
-}
-
-testpiddir()
-{
- # Be sure that the PIDDIR exists
- if [ ! -d $PIDDIR ]
- then
- # If it doesn't exist, we create it
- mkdir -p $PIDDIR
- chown $RUN_AS_USER:$RUN_AS_USER $PIDDIR
- fi
-}
-
-usage() {
- echo "Usage: $0 <command>"
- echo " Available Commands: "
- echo " console - Run in interactive mode with log output to the console."
- echo " Press CTRL-C to stop."
- echo " start - Run the instance in the background"
- echo " stop - Stop the running instance"
- echo " restart - Restart the instance if it is already running,"
- echo " or start if it wasn't already running"
- echo " status - Display the status of the instance (running or stopped)"
- echo " dump - Request a JVM dump of the running process"
-}
-
-console() {
- echo "Running $APP_LONG_NAME..."
- getpid
- if [ "X$pid" = "X" ]
- then
- # The string passed to eval must handles spaces in paths correctly.
- COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" set.INSTANCE_HOME=\"$INSTANCE_HOME\" set.INSTANCE=\"$INSTANCE\" wrapper.syslog.ident=$APP_NAME wrapper.pidfile=\"$PIDFILE\" $ANCHORPROP $LOCKPROP wrapper.debug=true"
- eval $COMMAND_LINE
- else
- echo "$APP_LONG_NAME is already running."
- exit 1
- fi
-}
-
-start() {
- echo "Starting $APP_LONG_NAME..."
- getpid
- if [ "X$pid" = "X" ]
- then
- # The string passed to eval must handles spaces in paths correctly.
- COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" set.INSTANCE_HOME=$INSTANCE_HOME set.INSTANCE=$INSTANCE wrapper.syslog.ident=$APP_NAME wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $LOCKPROP"
- eval $COMMAND_LINE
- else
- echo "$APP_LONG_NAME is already running."
- exit 1
- fi
-
-
-}
-
-stopit() {
- echo "Stopping $APP_LONG_NAME..."
- getpid
- if [ "X$pid" = "X" ]
- then
- echo "$APP_LONG_NAME was not running."
- else
- if [ "X$IGNORE_SIGNALS" = "X" ]
- then
- # Running so try to stop it.
- kill $pid
- if [ $? -ne 0 ]
- then
- # An explanation for the failure should have been given
- echo "Unable to stop $APP_LONG_NAME."
- exit 1
- fi
- else
- rm -f "$ANCHORFILE"
- if [ -f "$ANCHORFILE" ]
- then
- # An explanation for the failure should have been given
- echo "Unable to stop $APP_LONG_NAME."
- exit 1
- fi
- fi
-
- # We can not predict how long it will take for the wrapper to
- # actually stop as it depends on settings in apacheds.conf.
- # Loop until it does.
- savepid=$pid
- CNT=0
- TOTCNT=0
- while [ "X$pid" != "X" ]
- do
- # Show a waiting message every 5 seconds.
- if [ "$CNT" -lt "5" ]
- then
- CNT=`expr $CNT + 1`
- else
- echo "Waiting for $APP_LONG_NAME to exit..."
- CNT=0
- fi
- TOTCNT=`expr $TOTCNT + 1`
-
- sleep 1
-
- testpid
- done
-
- pid=$savepid
- testpid
- if [ "X$pid" != "X" ]
- then
- echo "Failed to stop $APP_LONG_NAME."
- exit 1
- else
- echo "Stopped $APP_LONG_NAME."
- fi
- fi
-}
-
-status() {
- getpid
- if [ "X$pid" = "X" ]
- then
- echo "$APP_LONG_NAME is not running."
- exit 1
- else
- echo "$APP_LONG_NAME is running ($pid)."
- exit 0
- fi
-}
-
-dump() {
- echo "Dumping $APP_LONG_NAME..."
- getpid
- if [ "X$pid" = "X" ]
- then
- echo "$APP_LONG_NAME was not running."
-
- else
- kill -3 $pid
-
- if [ $? -ne 0 ]
- then
- echo "Failed to dump $APP_LONG_NAME."
- exit 1
- else
- echo "Dumped $APP_LONG_NAME."
- fi
- fi
-}
-
-list() {
- echo "Available instances..."
- for instance in $INSTANCE_HOME/* ; do
- echo " " `basename $instance`;
- done
-}
-
-case "$1" in
-
- 'console')
- testpiddir
- checkUser touchlock $1 $INSTANCE
- console
- ;;
-
- 'start')
- testpiddir
- checkUser touchlock $1 $INSTANCE
- start
- ;;
-
- 'stop')
- checkUser "" $1 $INSTANCE
- stopit
- ;;
-
- 'restart')
- checkUser touchlock $1 $INSTANCE
- stopit
- start
- ;;
-
- 'status')
- checkUser "" $1 $INSTANCE
- status
- ;;
-
- 'dump')
- checkUser "" $1 $INSTANCE
- dump
- ;;
- 'list')
- list
- ;;
-
- *)
- echo "Usage: $0 { console | start | stop | restart | status | dump }"
- exit 1
- ;;
-esac
-
-exit 0
+@installation.directory@/bin/apacheds $1 @default.instance.name@
\ No newline at end of file
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/bootstrap.sh
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/bootstrap.sh?rev=1002067&r1=1002066&r2=1002067&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/bootstrap.sh (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/bootstrap.sh Tue Sep 28 09:20:42 2010
@@ -268,7 +268,9 @@ cd ..
verifyExitCode
rm -rf sh
verifyExitCode
-rm -rd rootFolder
+rm -rd instance
+verifyExitCode
+rm -rd server
verifyExitCode
rm -f $archiveName
verifyExitCode
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/install.sh
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/install.sh?rev=1002067&r1=1002066&r2=1002067&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/install.sh (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/install.sh Tue Sep 28 09:20:42 2010
@@ -45,10 +45,24 @@ done
# Installing
echo "Installing..."
+# Filtering apacheds script file
+sed -e "s;@installation.directory@;${APACHEDS_HOME_DIRECTORY};" ../server/bin/apacheds > ../server/bin/apacheds.tmp
+verifyExitCode
+mv ../server/bin/apacheds.tmp ../server/bin/apacheds
+verifyExitCode
+sed -e "s;@instances.directory@;${INSTANCES_HOME_DIRECTORY};" ../server/bin/apacheds > ../server/bin/apacheds.tmp
+verifyExitCode
+mv ../server/bin/apacheds.tmp ../server/bin/apacheds
+verifyExitCode
+sed -e "s;@user@;${RUN_AS_USER};" ../server/bin/apacheds > ../server/bin/apacheds.tmp
+verifyExitCode
+mv ../server/bin/apacheds.tmp ../server/bin/apacheds
+verifyExitCode
+
# Copying the server files
mkdir -p $APACHEDS_HOME_DIRECTORY
verifyExitCode
-cp -r ../rootFolder/server/* $APACHEDS_HOME_DIRECTORY
+cp -r ../server/* $APACHEDS_HOME_DIRECTORY
verifyExitCode
# Creating instances home directory
@@ -62,8 +76,6 @@ mkdir -p $DEFAULT_INSTANCE_HOME_DIRECTOR
verifyExitCode
mkdir -p $DEFAULT_INSTANCE_HOME_DIRECTORY/conf
verifyExitCode
-mkdir -p $DEFAULT_INSTANCE_HOME_DIRECTORY/ldif
-verifyExitCode
mkdir -p $DEFAULT_INSTANCE_HOME_DIRECTORY/log
verifyExitCode
mkdir -p $DEFAULT_INSTANCE_HOME_DIRECTORY/partitions
@@ -71,32 +83,28 @@ verifyExitCode
mkdir -p $DEFAULT_INSTANCE_HOME_DIRECTORY/run
verifyExitCode
-# Copying the default instance files
-cp ../rootFolder/instance/apacheds.conf $DEFAULT_INSTANCE_HOME_DIRECTORY/conf/
+# Filtering default instance wrapper.conf file
+sed -e "s;@installation.directory@;${APACHEDS_HOME_DIRECTORY};" ../instance/wrapper.conf > ../instance/wrapper.conf.tmp
verifyExitCode
-cp ../rootFolder/instance/log4j.properties $DEFAULT_INSTANCE_HOME_DIRECTORY/conf/
+mv ../instance/wrapper.conf.tmp ../instance/wrapper.conf
verifyExitCode
-#cp ../rootFolder/instance/server.xml $DEFAULT_INSTANCE_HOME_DIRECTORY/conf/
-#verifyExitCode
-# Filtering and copying the init.d script
-sed -e "s;@APACHEDS.HOME@;${APACHEDS_HOME_DIRECTORY};" ../rootFolder/instance/apacheds-init > ../rootFolder/instance/apacheds-init.tmp
-verifyExitCode
-mv ../rootFolder/instance/apacheds-init.tmp ../rootFolder/instance/apacheds-init
-verifyExitCode
-sed -e "s;@INSTANCE.HOME@;${INSTANCES_HOME_DIRECTORY};" ../rootFolder/instance/apacheds-init > ../rootFolder/instance/apacheds-init.tmp
+# Copying the default instance files
+cp ../instance/wrapper.conf $DEFAULT_INSTANCE_HOME_DIRECTORY/conf/
verifyExitCode
-mv ../rootFolder/instance/apacheds-init.tmp ../rootFolder/instance/apacheds-init
+cp ../instance/log4j.properties $DEFAULT_INSTANCE_HOME_DIRECTORY/conf/
verifyExitCode
-sed -e "s;@INSTANCE@;${DEFAULT_INSTANCE_NAME};" ../rootFolder/instance/apacheds-init > ../rootFolder/instance/apacheds-init.tmp
+
+# Filtering and copying the init.d script
+sed -e "s;@installation.directory@;${APACHEDS_HOME_DIRECTORY};" ../instance/apacheds-init > ../instance/apacheds-init.tmp
verifyExitCode
-mv ../rootFolder/instance/apacheds-init.tmp ../rootFolder/instance/apacheds-init
+mv ../instance/apacheds-init.tmp ../instance/apacheds-init
verifyExitCode
-sed -e "s;@RUN_AS_USER@;${RUN_AS_USER};" ../rootFolder/instance/apacheds-init > ../rootFolder/instance/apacheds-init.tmp
+sed -e "s;@default.instance.name@;$DEFAULT_INSTANCE_NAME;" ../instance/apacheds-init > ../instance/apacheds-init.tmp
verifyExitCode
-mv ../rootFolder/instance/apacheds-init.tmp ../rootFolder/instance/apacheds-init
+mv ../instance/apacheds-init.tmp ../instance/apacheds-init
verifyExitCode
-cp ../rootFolder/instance/apacheds-init $STARTUP_SCRIPT_DIRECTORY/apacheds-$APACHEDS_VERSION-$DEFAULT_INSTANCE_NAME
+cp ../instance/apacheds-init $STARTUP_SCRIPT_DIRECTORY/apacheds-$APACHEDS_VERSION-$DEFAULT_INSTANCE_NAME
verifyExitCode
# Setting the correct permissions on executable files
@@ -104,6 +112,8 @@ chmod +x $STARTUP_SCRIPT_DIRECTORY/apach
verifyExitCode
chmod +x $APACHEDS_HOME_DIRECTORY/bin/apacheds
verifyExitCode
+chmod +x $APACHEDS_HOME_DIRECTORY/bin/wrapper
+verifyExitCode
# Creating the apacheds user (only if needed)
USER=`eval "id -u -n $RUN_AS_USER"`