Added: directory/daemon/trunk/plugin/src/main/java/org/apache/directory/daemon/installers/nsis/NsisInstallerCommand.java
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/java/org/apache/directory/daemon/installers/nsis/NsisInstallerCommand.java?view=auto&rev=564117
==============================================================================
--- directory/daemon/trunk/plugin/src/main/java/org/apache/directory/daemon/installers/nsis/NsisInstallerCommand.java (added)
+++ directory/daemon/trunk/plugin/src/main/java/org/apache/directory/daemon/installers/nsis/NsisInstallerCommand.java Wed Aug 8 23:45:35 2007
@@ -0,0 +1,364 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.daemon.installers.nsis;
+
+import org.apache.directory.daemon.installers.MojoCommand;
+import org.apache.directory.daemon.installers.ServiceInstallersMojo;
+import org.apache.directory.daemon.installers.MojoHelperUtils;
+import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.artifact.Artifact;
+import org.apache.tools.ant.taskdefs.Execute;
+import org.apache.tools.ant.taskdefs.Touch;
+import org.apache.tools.ant.Project;
+import org.codehaus.plexus.util.Os;
+import org.codehaus.plexus.util.FileUtils;
+
+import java.util.Properties;
+import java.util.List;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
+/**
+ * Nullsoft INstaller System (NSIS) Installer command for Windows installers
+ *
+ * @author Apache Directory Project
+ * @version $Rev: 434414 $
+ */
+public class NsisInstallerCommand extends MojoCommand
+{
+ private final Properties filterProperties = new Properties( System.getProperties() );
+ private final NsisTarget target;
+ private final File nsisConfigurationFile;
+ private final Log log;
+
+ private File nsisCompiler;
+
+
+ public NsisInstallerCommand( ServiceInstallersMojo mymojo, NsisTarget target ) throws MojoFailureException
+ {
+ super( mymojo );
+ this.target = target;
+ this.log = mymojo.getLog();
+ File imagesDir = target.getLayout().getBaseDirectory().getParentFile();
+ nsisConfigurationFile = new File( imagesDir, target.getId() + ".nsi" );
+ initializeFiltering();
+ }
+
+
+ public Properties getFilterProperties()
+ {
+ return filterProperties;
+ }
+
+
+ /**
+ * Performs the following:
+ *
+ * - Bail if target is not for windows
+ * - Filter and copy project supplied .nsi file into place if it has been specified and exists
+ * - If no .nsi file exists filter and deposite into place bundled nsis template & copy wrapper executables
+ * - Bail if we cannot find the nsis compiler executable
+ * - Execute nsis compiler it on the .nsi file
+ *
+ */
+ public void execute() throws MojoExecutionException, MojoFailureException
+ {
+ // -------------------------------------------------------------------
+ // Step 1 & 4: do some error checking first for compiler and OS
+ // -------------------------------------------------------------------
+
+ if ( !target.getOsFamily().equals( "windows" ) )
+ {
+ throw new MojoFailureException( "NSIS installer can only be targeted for windows platforms!" );
+ }
+
+ // @todo this should really be a parameter taken from the user's settings
+ // because the compiler may be installed in different places and is specific
+ if ( !target.getNsisCompiler().exists() )
+ {
+ throw new MojoFailureException( "Cannot find NSIS compiler: " + target.getNsisCompiler() );
+ }
+ else
+ {
+ this.nsisCompiler = target.getNsisCompiler();
+ }
+
+ // -------------------------------------------------------------------
+ // Step 2 & 3: copy nsis file and filter
+ // -------------------------------------------------------------------
+
+ // check first to see if the default install.iss file is present in src/main/installers
+ File projectNsisFile = new File( mymojo.getSourceDirectory(), "install.nsi" );
+ if ( target.getNsisConfigurationFile() != null && target.getNsisConfigurationFile().exists() )
+ {
+ try
+ {
+ MojoHelperUtils.copyAsciiFile( mymojo, filterProperties, target.getNsisConfigurationFile(),
+ nsisConfigurationFile, true );
+ }
+ catch ( IOException e )
+ {
+ throw new MojoFailureException( "Failed to filter and copy project provided "
+ + target.getNsisConfigurationFile() + " to " + nsisConfigurationFile);
+ }
+ }
+ else if ( projectNsisFile.exists() )
+ {
+ try
+ {
+ MojoHelperUtils.copyAsciiFile( mymojo, filterProperties, projectNsisFile, nsisConfigurationFile, true );
+ }
+ catch ( IOException e )
+ {
+ throw new MojoFailureException( "Failed to filter and copy project provided " + projectNsisFile
+ + " to " + nsisConfigurationFile);
+ }
+ }
+ else
+ {
+ InputStream in = getClass().getResourceAsStream( "install.iss" );
+ URL resource = getClass().getResource( "install.iss" );
+ try
+ {
+ MojoHelperUtils.copyAsciiFile( mymojo, filterProperties, in, nsisConfigurationFile, true );
+ }
+ catch ( IOException e )
+ {
+ throw new MojoFailureException( "Failed to filter and copy bundled " + resource + " to "
+ + nsisConfigurationFile);
+ }
+ }
+
+ // -------------------------------------------------------------------
+ // 3: copy native files
+ // -------------------------------------------------------------------
+
+ // now copy over the Prunsrv and Prunmgr executables renaming them to the mymojo.getApplicationName() + w for mgr
+ if ( target.getOsFamily().equals( "windows" ))
+ {
+ File executableTarget = new File( target.getLayout().getBinDirectory(),
+ target.getApplication().getName() + ".exe" );
+ File override = new File( mymojo.getSourceDirectory(), target.getWrapperExecutablePath() );
+ if ( override.exists() )
+ {
+ mymojo.getLog().info( "Using native launcher supplied by project: " + override.getAbsolutePath() );
+ try
+ {
+ FileUtils.copyFile( override, executableTarget );
+ }
+ catch ( IOException e )
+ {
+ throw new MojoFailureException( "Failed to copy project supplied native launcher executable override "
+ + override.getAbsolutePath() + " into position " + executableTarget.getAbsolutePath() );
+ }
+ }
+ else
+ {
+ try
+ {
+ MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream( "../wrapper/bin/wrapper-windows-x86-32.exe" ), executableTarget );
+ MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream( "../wrapper/lib/wrapper-windows-x86-32.dll" ),
+ new File( target.getLayout().getLibDirectory(), "wrapper.dll" )
+ );
+ }
+ catch ( IOException e )
+ {
+ throw new MojoFailureException( "Failed to copy native launcher executable file "
+ + getClass().getResource( "../wrapper/bin/wrapper-windows-x86-32.exe" ) + " into position " + executableTarget.getAbsolutePath() );
+ }
+ }
+
+ }
+
+ processPackagedFiles( target, target.getPackagedFiles() );
+
+ Execute task = new Execute();
+ System.out.println( "nsisCompiler = " + nsisCompiler);
+ System.out.println( "nsisConfigurationFile = " + nsisConfigurationFile);
+ String[] cmd = new String[]
+ { nsisCompiler.getAbsolutePath(), nsisConfigurationFile.getAbsolutePath() };
+ task.setCommandline( cmd );
+ task.setSpawn( true );
+ task.setWorkingDirectory( target.getLayout().getBaseDirectory() );
+ try
+ {
+ task.execute();
+ }
+ catch ( IOException e )
+ {
+ throw new MojoFailureException( "Failed while trying to execute " + nsisCompiler.getAbsolutePath() + ": "
+ + e.getMessage() );
+ }
+
+ if ( task.getExitValue() != 0 )
+ {
+ throw new MojoFailureException( nsisCompiler.getAbsolutePath()
+ + " execution resulted in a non-zero exit value: " + task.getExitValue() );
+ }
+ }
+
+
+ private void initializeFiltering() throws MojoFailureException
+ {
+ filterProperties.putAll( mymojo.getProject().getProperties() );
+ filterProperties.put( "app", target.getApplication().getName() );
+
+ char firstChar = target.getApplication().getName().charAt( 0 );
+ firstChar = Character.toUpperCase( firstChar );
+ filterProperties.put( "app.displayname", firstChar + target.getApplication().getName().substring( 1 ) );
+
+ if ( target.getApplication().getVersion() != null )
+ {
+ filterProperties.put( "app.version", target.getApplication().getVersion() );
+ }
+ else
+ {
+ filterProperties.put( "app.version", "1.0" );
+ }
+
+ // -------------------------------------------------------------------
+ // WARNING: hard code values just to for testing
+ // -------------------------------------------------------------------
+
+ // @todo use the list of committers and add multiple authors to nsis
+ if ( target.getApplication().getAuthors().isEmpty() )
+ {
+ filterProperties.put( "app.author", "Apache Software Foundation" );
+ }
+ else
+ {
+ filterProperties.put( "app.author", target.getApplication().getAuthors().get( 0 ) );
+ }
+
+ if ( target.getFinalName() != null )
+ {
+ filterProperties.put( "app.final.name", target.getFinalName() );
+ }
+ else
+ {
+ String finalName = target.getApplication().getName() + "-" + target.getApplication().getVersion()
+ + "-win32-setup.exe";
+ filterProperties.put( "app.final.name", finalName );
+ }
+
+ filterProperties.put( "app.email", target.getApplication().getEmail() );
+ filterProperties.put( "app.url", target.getApplication().getUrl() );
+ filterProperties.put( "app.java.version", target.getApplication().getMinimumJavaVersion() );
+ filterProperties.put( "app.license", target.getLayout().getLicenseFile().getPath() );
+ filterProperties.put( "app.license.name", target.getLayout().getLicenseFile().getName() );
+ filterProperties.put( "app.company.name", target.getCompanyName() );
+ filterProperties.put( "app.description", target.getApplication().getDescription() );
+ filterProperties.put( "app.copyright.year", target.getCopyrightYear() );
+
+ if ( !target.getLayout().getReadmeFile().exists() )
+ {
+ touchFile( target.getLayout().getReadmeFile() );
+ }
+ filterProperties.put( "app.readme", target.getLayout().getReadmeFile().getPath() );
+ filterProperties.put( "app.readme.name", target.getLayout().getReadmeFile().getName() );
+ filterProperties.put( "app.icon", target.getLayout().getLogoIconFile().getPath() );
+ filterProperties.put( "app.icon.name", target.getLayout().getLogoIconFile().getName() );
+ filterProperties.put( "image.basedir", target.getLayout().getBaseDirectory().getPath() );
+ filterProperties.put( "app.lib.jars", getApplicationLibraryJars() );
+ filterProperties.put( "installer.output.directory", target.getLayout().getBaseDirectory().getParent() );
+
+ if ( target.getDocsDirectory() != null )
+ {
+ filterProperties.put( "docs.directive", getDocsDirective() );
+ }
+ else
+ {
+ filterProperties.put( "docs.directive", "" );
+ }
+
+ if ( target.getSourcesDirectory() != null )
+ {
+ filterProperties.put( "sources.directive", getSourcesDirective() );
+ }
+ else
+ {
+ filterProperties.put( "sources.directive", "" );
+ }
+
+ File noticeFile = new File( target.getLayout().getBaseDirectory(), "NOTICE.txt" );
+ if ( noticeFile.exists() )
+ {
+ filterProperties.put( "notice.file", "Source: {#SourceBase}\\NOTICE.txt; DestDir: "
+ + "{app}\\; Flags: ignoreversion recursesubdirs createallsubdirs" );
+ }
+ else
+ {
+ filterProperties.put( "notice.file", "" );
+ }
+ }
+
+
+ private String getSourcesDirective()
+ {
+ StringBuffer buf = new StringBuffer();
+ buf.append( "Source: {#SourceBase}\\" ).append( target.getSourcesTargetPath() );
+ buf.append( "\\*; DestDir: {app}\\" ).append( target.getSourcesTargetPath() );
+ buf.append( "\\; Flags: ignoreversion recursesubdirs createallsubdirs" );
+ return buf.toString();
+ }
+
+
+ private String getDocsDirective()
+ {
+ StringBuffer buf = new StringBuffer();
+ buf.append( "Source: {#SourceBase}\\" ).append( target.getDocsTargetPath() );
+ buf.append( "\\*; DestDir: {app}\\" ).append( target.getDocsTargetPath() );
+ buf.append( "\\; Flags: ignoreversion recursesubdirs createallsubdirs" );
+ return buf.toString();
+ }
+
+
+ private String getApplicationLibraryJars() throws MojoFailureException
+ {
+ StringBuffer buf = new StringBuffer();
+ List artifacts = target.getLibArtifacts();
+
+ for ( int ii = 0; ii < artifacts.size(); ii++ )
+ {
+ // "Source: {#SourceBase}\lib\${artifact.file.name}; DestDir: {app}; DestName: ${app.file.name}"
+ buf.append( "Source: {#SourceBase}\\lib\\" );
+ File artifact = ( (Artifact) artifacts.get( ii ) ).getFile();
+ buf.append( artifact.getName() );
+ buf.append( "; DestDir: {app}\\lib; DestName: " );
+ buf.append( artifact.getName() );
+ buf.append( "\n" );
+ }
+
+ return buf.toString();
+ }
+
+
+ static void touchFile( File file )
+ {
+ Touch touch = new Touch();
+ touch.setProject( new Project() );
+ touch.setFile( file );
+ touch.execute();
+ }
+}
Added: directory/daemon/trunk/plugin/src/main/java/org/apache/directory/daemon/installers/nsis/NsisTarget.java
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/java/org/apache/directory/daemon/installers/nsis/NsisTarget.java?view=auto&rev=564117
==============================================================================
--- directory/daemon/trunk/plugin/src/main/java/org/apache/directory/daemon/installers/nsis/NsisTarget.java (added)
+++ directory/daemon/trunk/plugin/src/main/java/org/apache/directory/daemon/installers/nsis/NsisTarget.java Wed Aug 8 23:45:35 2007
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.daemon.installers.nsis;
+
+import org.apache.directory.daemon.installers.Target;
+
+import java.io.File;
+import java.util.Calendar;
+
+/**
+ * A Nullsoft Installer System (NSIS) installer for the Windows platform
+ *
+ * @author Apache Directory Project
+ * @version $Rev: 434414 $
+ */
+public class NsisTarget extends Target
+{
+ private String wrapperExecutablePath = "src/main/installers/wrapper/bin/wrapper-windows-x86-32.exe";
+ private File nsisCompiler = new File( "/usr/local/share/nsis/makensis" );
+ private File NsisConfigurationFile;
+
+
+ public NsisTarget()
+ {
+ Calendar cal = Calendar.getInstance();
+ cal.setTimeInMillis( System.currentTimeMillis() );
+ setCopyrightYear( String.valueOf( cal.get( Calendar.YEAR ) ) );
+ }
+
+
+ public void setNsisCompiler( File nsisCompiler)
+ {
+ this.nsisCompiler = nsisCompiler;
+ }
+
+
+ public File getNsisCompiler()
+ {
+ return nsisCompiler;
+ }
+
+
+ public void setNsisConfigurationFile( File nsisConfigurationFile )
+ {
+ this.NsisConfigurationFile = nsisConfigurationFile;
+ }
+
+
+ public File getNsisConfigurationFile()
+ {
+ return NsisConfigurationFile;
+ }
+
+
+ public void setWrapperExecutablePath( String wrapperExecutablePath)
+ {
+ this.wrapperExecutablePath = wrapperExecutablePath;
+ }
+
+
+ public String getWrapperExecutablePath()
+ {
+ return wrapperExecutablePath;
+ }
+
+
+}
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-linux-ppc-64
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-linux-ppc-64?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-linux-ppc-64
------------------------------------------------------------------------------
svn:executable = *
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-linux-ppc-64
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-linux-x86-32
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-linux-x86-32?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-linux-x86-32
------------------------------------------------------------------------------
svn:executable = *
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-linux-x86-32
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-linux-x86-64
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-linux-x86-64?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-linux-x86-64
------------------------------------------------------------------------------
svn:executable = *
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-linux-x86-64
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-macosx-ppc-32
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-macosx-ppc-32?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-macosx-ppc-32
------------------------------------------------------------------------------
svn:executable = *
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-macosx-ppc-32
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-macosx-universal-32
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-macosx-universal-32?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-macosx-universal-32
------------------------------------------------------------------------------
svn:executable = *
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-macosx-universal-32
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-solaris-sparc-32
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-solaris-sparc-32?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-solaris-sparc-32
------------------------------------------------------------------------------
svn:executable = *
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-solaris-sparc-32
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-solaris-sparc-64
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-solaris-sparc-64?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-solaris-sparc-64
------------------------------------------------------------------------------
svn:executable = *
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-solaris-sparc-64
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-solaris-x86-32
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-solaris-x86-32?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-solaris-x86-32
------------------------------------------------------------------------------
svn:executable = *
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-solaris-x86-32
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-windows-x86-32.exe
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-windows-x86-32.exe?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/bin/wrapper-windows-x86-32.exe
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/conf/apacheds.conf
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/conf/apacheds.conf?view=auto&rev=564117
==============================================================================
--- directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/conf/apacheds.conf (added)
+++ directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/conf/apacheds.conf Wed Aug 8 23:45:35 2007
@@ -0,0 +1,2 @@
+bootstrap.start.class=org.apache.ldap.server.Service
+bootstrap.stop.class=org.apache.ldap.server.Service
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/conf/wrapper.conf
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/conf/wrapper.conf?view=auto&rev=564117
==============================================================================
--- directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/conf/wrapper.conf (added)
+++ directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/conf/wrapper.conf Wed Aug 8 23:45:35 2007
@@ -0,0 +1,100 @@
+#********************************************************************
+# TestWrapper Properties
+#
+# NOTE - Please use src/conf/apacheds.conf.in as a template for your
+# own application rather than the values used for the
+# TestWrapper sample.
+#********************************************************************
+# Java Application
+wrapper.java.command=%JAVA_HOME%/bin/java
+
+# Java Main class. This class must implement the WrapperListener interface
+# or guarantee that the WrapperManager class is initialized. Helper
+# classes are provided to do this for you. See the Integration section
+# of the documentation for details.
+#wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
+wrapper.java.mainclass=org.apache.directory.daemon.TanukiBootstrapper
+
+wrapper.java.classpath.1=%APACHEDS_HOME%/bin/bootstrapper.jar
+wrapper.java.classpath.2=%APACHEDS_HOME%/lib/wrapper.jar
+
+# Java Library Path (location of Wrapper.DLL or libwrapper.so)
+wrapper.java.library.path.1=%APACHEDS_HOME%/lib
+
+# Java Additional Parameters
+#wrapper.java.additional.1=
+
+# Initial Java Heap Size (in MB)
+wrapper.java.initmemory=384
+
+# Maximum Java Heap Size (in MB)
+wrapper.java.maxmemory=384
+
+# Application parameters. Add parameters as needed starting from 1
+wrapper.app.parameter.1=org.apache.directory.daemon.MainBootstrapper
+wrapper.app.parameter.2=%APACHEDS_HOME%
+wrapper.app.parameter.3=start
+
+#********************************************************************
+# Wrapper Logging Properties
+#********************************************************************
+# Format of output for the console. (See docs for formats)
+wrapper.console.format=PM
+
+# Log Level for console output. (See docs for log levels)
+wrapper.console.loglevel=INFO
+
+# Log file to use for wrapper output logging.
+wrapper.logfile=%APACHEDS_HOME%/var/log/wrapper.log
+
+# Format of output for the log file. (See docs for formats)
+wrapper.logfile.format=LPTM
+
+# Log Level for log file output. (See docs for log levels)
+wrapper.logfile.loglevel=INFO
+
+# Maximum size that the log file will be allowed to grow to before
+# the log is rolled. Size is specified in bytes. The default value
+# of 0, disables log rolling. May abbreviate with the 'k' (kb) or
+# 'm' (mb) suffix. For example: 10m = 10 megabytes.
+wrapper.logfile.maxsize=0
+
+# Maximum number of rolled log files which will be allowed before old
+# files are deleted. The default value of 0 implies no limit.
+wrapper.logfile.maxfiles=0
+
+# Log Level for sys/event log output. (See docs for log levels)
+wrapper.syslog.loglevel=NONE
+
+#********************************************************************
+# Wrapper Windows Properties
+#********************************************************************
+# Title to use when running as a console
+wrapper.console.title=Test Wrapper Sample Application
+
+#********************************************************************
+# Wrapper Windows NT/2000/XP Service Properties
+#********************************************************************
+# WARNING - Do not modify any of these properties when an application
+# using this configuration file has been installed as a service.
+# Please uninstall the service before modifying this section. The
+# service can then be reinstalled.
+
+# Name of the service
+wrapper.ntservice.name=apacheds
+
+# Display name of the service
+wrapper.ntservice.displayname=Apache Directory Server
+
+# Description of the service
+wrapper.ntservice.description=Test Wrapper Sample Application Description
+
+# Service dependencies. Add dependencies as needed starting from 1
+wrapper.ntservice.dependency.1=
+
+# Mode in which the service is installed. AUTO_START or DEMAND_START
+wrapper.ntservice.starttype=AUTO_START
+
+# Allow the service to interact with the desktop.
+wrapper.ntservice.interactive=false
+
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-linux-ppc-64.so
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-linux-ppc-64.so?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-linux-ppc-64.so
------------------------------------------------------------------------------
svn:executable = *
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-linux-ppc-64.so
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-linux-x86-32.so
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-linux-x86-32.so?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-linux-x86-32.so
------------------------------------------------------------------------------
svn:executable = *
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-linux-x86-32.so
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-linux-x86-64.so
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-linux-x86-64.so?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-linux-x86-64.so
------------------------------------------------------------------------------
svn:executable = *
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-linux-x86-64.so
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-macosx-ppc-32.jnilib
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-macosx-ppc-32.jnilib?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-macosx-ppc-32.jnilib
------------------------------------------------------------------------------
svn:executable = *
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-macosx-ppc-32.jnilib
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-macosx-universal-32.jnilib
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-macosx-universal-32.jnilib?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-macosx-universal-32.jnilib
------------------------------------------------------------------------------
svn:executable = *
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-macosx-universal-32.jnilib
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-solaris-sparc-32.so
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-solaris-sparc-32.so?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-solaris-sparc-32.so
------------------------------------------------------------------------------
svn:executable = *
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-solaris-sparc-32.so
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-solaris-sparc-64.so
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-solaris-sparc-64.so?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-solaris-sparc-64.so
------------------------------------------------------------------------------
svn:executable = *
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-solaris-sparc-64.so
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-solaris-x86-32.so
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-solaris-x86-32.so?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-solaris-x86-32.so
------------------------------------------------------------------------------
svn:executable = *
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/libwrapper-solaris-x86-32.so
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/wrapper-windows-x86-32.dll
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/wrapper-windows-x86-32.dll?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/wrapper-windows-x86-32.dll
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/wrapper.jar
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/wrapper.jar?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/wrapper.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/wrappertest.jar
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/wrappertest.jar?view=auto&rev=564117
==============================================================================
Binary file - no diff available.
Propchange: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/lib/wrappertest.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/App.bat.in
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/App.bat.in?view=auto&rev=564117
==============================================================================
--- directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/App.bat.in (added)
+++ directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/App.bat.in Wed Aug 8 23:45:35 2007
@@ -0,0 +1,55 @@
+@echo off
+setlocal
+
+rem Copyright (c) 1999, 2006 Tanuki Software Inc.
+rem
+rem Java Service Wrapper general startup script
+rem
+
+rem
+rem Resolve the real path of the wrapper.exe
+rem For non NT systems, the _REALPATH and _WRAPPER_CONF values
+rem can be hard-coded below and the following test removed.
+rem
+if "%OS%"=="Windows_NT" goto nt
+echo This script only works with NT-based versions of Windows.
+goto :eof
+
+:nt
+rem
+rem Find the application home.
+rem
+rem %~dp0 is location of current script under NT
+set _REALPATH=%~dp0
+
+rem Decide on the wrapper binary.
+set _WRAPPER_BASE=wrapper
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe
+if exist "%_WRAPPER_EXE%" goto conf
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe
+if exist "%_WRAPPER_EXE%" goto conf
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%.exe
+if exist "%_WRAPPER_EXE%" goto conf
+echo Unable to locate a Wrapper executable using any of the following names:
+echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe
+echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe
+echo %_REALPATH%%_WRAPPER_BASE%.exe
+pause
+goto :eof
+
+rem
+rem Find the apacheds.conf
+rem
+:conf
+set _WRAPPER_CONF="%~f1"
+if not %_WRAPPER_CONF%=="" goto startup
+set _WRAPPER_CONF="%_REALPATH%..\conf\apacheds.conf"
+
+rem
+rem Start the Wrapper
+rem
+:startup
+"%_WRAPPER_EXE%" -c %_WRAPPER_CONF%
+if not errorlevel 1 goto :eof
+pause
+
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/AppCommand.bat.in
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/AppCommand.bat.in?view=auto&rev=564117
==============================================================================
--- directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/AppCommand.bat.in (added)
+++ directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/AppCommand.bat.in Wed Aug 8 23:45:35 2007
@@ -0,0 +1,97 @@
+@echo off
+setlocal
+
+rem Copyright (c) 1999, 2006 Tanuki Software Inc.
+rem
+rem Java Service Wrapper command based script
+rem
+
+if "%OS%"=="Windows_NT" goto nt
+echo This script only works with NT-based versions of Windows.
+goto :eof
+
+:nt
+rem
+rem Find the application home.
+rem
+rem %~dp0 is location of current script under NT
+set _REALPATH=%~dp0
+
+rem Decide on the wrapper binary.
+set _WRAPPER_BASE=wrapper
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe
+if exist "%_WRAPPER_EXE%" goto validate
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe
+if exist "%_WRAPPER_EXE%" goto validate
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%.exe
+if exist "%_WRAPPER_EXE%" goto validate
+echo Unable to locate a Wrapper executable using any of the following names:
+echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe
+echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe
+echo %_REALPATH%%_WRAPPER_BASE%.exe
+pause
+goto :eof
+
+:validate
+rem Find the requested command.
+for /F %%v in ('echo %1^|findstr "^console$ ^start$ ^pause$ ^resume$ ^stop$ ^restart$ ^install$ ^remove"') do call :exec set COMMAND=%%v
+
+if "%COMMAND%" == "" (
+ echo Usage: %0 { console : start : pause : resume : stop : restart : install : remove }
+ pause
+ goto :eof
+) else (
+ shift
+)
+
+rem
+rem Find the apacheds.conf
+rem
+:conf
+set _WRAPPER_CONF="%_REALPATH%..\conf\apacheds.conf"
+
+rem
+rem Run the application.
+rem At runtime, the current directory will be that of wrapper.exe
+rem
+call :%COMMAND%
+if errorlevel 1 pause
+goto :eof
+
+:console
+"%_WRAPPER_EXE%" -c %_WRAPPER_CONF%
+goto :eof
+
+:start
+"%_WRAPPER_EXE%" -t %_WRAPPER_CONF%
+goto :eof
+
+:pause
+"%_WRAPPER_EXE%" -a %_WRAPPER_CONF%
+goto :eof
+
+:resume
+"%_WRAPPER_EXE%" -e %_WRAPPER_CONF%
+goto :eof
+
+:stop
+"%_WRAPPER_EXE%" -p %_WRAPPER_CONF%
+goto :eof
+
+:install
+"%_WRAPPER_EXE%" -i %_WRAPPER_CONF%
+goto :eof
+
+:remove
+"%_WRAPPER_EXE%" -r %_WRAPPER_CONF%
+goto :eof
+
+:restart
+call :stop
+call :start
+goto :eof
+
+:exec
+%*
+goto :eof
+
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/AppNoWrapper.bat.in
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/AppNoWrapper.bat.in?view=auto&rev=564117
==============================================================================
--- directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/AppNoWrapper.bat.in (added)
+++ directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/AppNoWrapper.bat.in Wed Aug 8 23:45:35 2007
@@ -0,0 +1,12 @@
+rem Copyright (c) 1999, 2006 Tanuki Software Inc.
+rem
+rem This script is an example of how to run your application without the Wrapper, but with the
+rem Wrapper helper classes. You can obtain the actual command generated by the wrapper for
+rem your application by running the Wrapper with the wrapper.java.command.loglevel=INFO
+rem property set.
+rem
+rem The wrapper.key property MUST be removed from the resulting command or it will fail to
+rem run correctly.
+rem
+java -Xms16m -Xmx64m -Djava.library.path="../lib" -Djava.class.path="../lib/wrapper.jar;../lib/wrappertest.jar" -Dwrapper.native_library="wrapper" -Dwrapper.debug="TRUE" org.tanukisoftware.wrapper.test.Main
+
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/InstallApp-NT.bat.in
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/InstallApp-NT.bat.in?view=auto&rev=564117
==============================================================================
--- directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/InstallApp-NT.bat.in (added)
+++ directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/InstallApp-NT.bat.in Wed Aug 8 23:45:35 2007
@@ -0,0 +1,50 @@
+@echo off
+setlocal
+
+rem Copyright (c) 1999, 2006 Tanuki Software Inc.
+rem
+rem Java Service Wrapper general NT service install script
+rem
+
+if "%OS%"=="Windows_NT" goto nt
+echo This script only works with NT-based versions of Windows.
+goto :eof
+
+:nt
+rem
+rem Find the application home.
+rem
+rem %~dp0 is location of current script under NT
+set _REALPATH=%~dp0
+
+rem Decide on the wrapper binary.
+set _WRAPPER_BASE=wrapper
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe
+if exist "%_WRAPPER_EXE%" goto conf
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe
+if exist "%_WRAPPER_EXE%" goto conf
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%.exe
+if exist "%_WRAPPER_EXE%" goto conf
+echo Unable to locate a Wrapper executable using any of the following names:
+echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe
+echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe
+echo %_REALPATH%%_WRAPPER_BASE%.exe
+pause
+goto :eof
+
+rem
+rem Find the apacheds.conf
+rem
+:conf
+set _WRAPPER_CONF="%~f1"
+if not %_WRAPPER_CONF%=="" goto startup
+set _WRAPPER_CONF="%_REALPATH%..\conf\apacheds.conf"
+
+rem
+rem Install the Wrapper as an NT service.
+rem
+:startup
+"%_WRAPPER_EXE%" -i %_WRAPPER_CONF%
+if not errorlevel 1 goto :eof
+pause
+
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/PauseApp-NT.bat.in
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/PauseApp-NT.bat.in?view=auto&rev=564117
==============================================================================
--- directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/PauseApp-NT.bat.in (added)
+++ directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/PauseApp-NT.bat.in Wed Aug 8 23:45:35 2007
@@ -0,0 +1,50 @@
+@echo off
+setlocal
+
+rem Copyright (c) 1999, 2006 Tanuki Software Inc.
+rem
+rem Java Service Wrapper general NT service start script
+rem
+
+if "%OS%"=="Windows_NT" goto nt
+echo This script only works with NT-based versions of Windows.
+goto :eof
+
+:nt
+rem
+rem Find the application home.
+rem
+rem %~dp0 is location of current script under NT
+set _REALPATH=%~dp0
+
+rem Decide on the wrapper binary.
+set _WRAPPER_BASE=wrapper
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe
+if exist "%_WRAPPER_EXE%" goto conf
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe
+if exist "%_WRAPPER_EXE%" goto conf
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%.exe
+if exist "%_WRAPPER_EXE%" goto conf
+echo Unable to locate a Wrapper executable using any of the following names:
+echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe
+echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe
+echo %_REALPATH%%_WRAPPER_BASE%.exe
+pause
+goto :eof
+
+rem
+rem Find the apacheds.conf
+rem
+:conf
+set _WRAPPER_CONF="%~f1"
+if not %_WRAPPER_CONF%=="" goto startup
+set _WRAPPER_CONF="%_REALPATH%..\conf\apacheds.conf"
+
+rem
+rem Start the Wrapper NT service.
+rem
+:startup
+"%_WRAPPER_EXE%" -a %_WRAPPER_CONF%
+if not errorlevel 1 goto :eof
+pause
+
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/ResumeApp-NT.bat.in
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/ResumeApp-NT.bat.in?view=auto&rev=564117
==============================================================================
--- directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/ResumeApp-NT.bat.in (added)
+++ directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/ResumeApp-NT.bat.in Wed Aug 8 23:45:35 2007
@@ -0,0 +1,50 @@
+@echo off
+setlocal
+
+rem Copyright (c) 1999, 2006 Tanuki Software Inc.
+rem
+rem Java Service Wrapper general NT service start script
+rem
+
+if "%OS%"=="Windows_NT" goto nt
+echo This script only works with NT-based versions of Windows.
+goto :eof
+
+:nt
+rem
+rem Find the application home.
+rem
+rem %~dp0 is location of current script under NT
+set _REALPATH=%~dp0
+
+rem Decide on the wrapper binary.
+set _WRAPPER_BASE=wrapper
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe
+if exist "%_WRAPPER_EXE%" goto conf
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe
+if exist "%_WRAPPER_EXE%" goto conf
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%.exe
+if exist "%_WRAPPER_EXE%" goto conf
+echo Unable to locate a Wrapper executable using any of the following names:
+echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe
+echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe
+echo %_REALPATH%%_WRAPPER_BASE%.exe
+pause
+goto :eof
+
+rem
+rem Find the apacheds.conf
+rem
+:conf
+set _WRAPPER_CONF="%~f1"
+if not %_WRAPPER_CONF%=="" goto startup
+set _WRAPPER_CONF="%_REALPATH%..\conf\apacheds.conf"
+
+rem
+rem Start the Wrapper NT service.
+rem
+:startup
+"%_WRAPPER_EXE%" -e %_WRAPPER_CONF%
+if not errorlevel 1 goto :eof
+pause
+
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/SimpleApp.bat.in
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/SimpleApp.bat.in?view=auto&rev=564117
==============================================================================
--- directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/SimpleApp.bat.in (added)
+++ directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/SimpleApp.bat.in Wed Aug 8 23:45:35 2007
@@ -0,0 +1,15 @@
+@echo off
+
+rem Copyright (c) 1999, 2006 Tanuki Software Inc.
+
+set _WRAPPER_CONF="%~f1"
+if not %_WRAPPER_CONF%=="" goto startup
+set _WRAPPER_CONF="@app.home@\conf\apacheds.conf"
+
+:startup
+"@app.home@\bin\wrapper.exe" -c %_WRAPPER_CONF%
+if not errorlevel 1 goto end
+pause
+
+:end
+set _WRAPPER_CONF=
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/SimpleInstallApp-NT.bat.in
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/SimpleInstallApp-NT.bat.in?view=auto&rev=564117
==============================================================================
--- directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/SimpleInstallApp-NT.bat.in (added)
+++ directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/SimpleInstallApp-NT.bat.in Wed Aug 8 23:45:35 2007
@@ -0,0 +1,15 @@
+@echo off
+
+rem Copyright (c) 1999, 2006 Tanuki Software Inc.
+
+set _WRAPPER_CONF="%~f1"
+if not %_WRAPPER_CONF%=="" goto startup
+set _WRAPPER_CONF="@app.home@\conf\apacheds.conf"
+
+:startup
+"@app.home@\bin\wrapper.exe" -i %_WRAPPER_CONF%
+if not errorlevel 1 goto end
+pause
+
+:end
+set _WRAPPER_CONF=
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/SimpleUninstallApp-NT.bat.in
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/SimpleUninstallApp-NT.bat.in?view=auto&rev=564117
==============================================================================
--- directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/SimpleUninstallApp-NT.bat.in (added)
+++ directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/SimpleUninstallApp-NT.bat.in Wed Aug 8 23:45:35 2007
@@ -0,0 +1,15 @@
+@echo off
+
+rem Copyright (c) 1999, 2006 Tanuki Software Inc.
+
+set _WRAPPER_CONF="%~f1"
+if not %_WRAPPER_CONF%=="" goto startup
+set _WRAPPER_CONF="@app.home@\conf\apacheds.conf"
+
+:startup
+"@app.home@\bin\wrapper.exe" -r %_WRAPPER_CONF%
+if not errorlevel 1 goto end
+pause
+
+:end
+set _WRAPPER_CONF=
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/StartApp-NT.bat.in
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/StartApp-NT.bat.in?view=auto&rev=564117
==============================================================================
--- directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/StartApp-NT.bat.in (added)
+++ directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/StartApp-NT.bat.in Wed Aug 8 23:45:35 2007
@@ -0,0 +1,50 @@
+@echo off
+setlocal
+
+rem Copyright (c) 1999, 2006 Tanuki Software Inc.
+rem
+rem Java Service Wrapper general NT service start script
+rem
+
+if "%OS%"=="Windows_NT" goto nt
+echo This script only works with NT-based versions of Windows.
+goto :eof
+
+:nt
+rem
+rem Find the application home.
+rem
+rem %~dp0 is location of current script under NT
+set _REALPATH=%~dp0
+
+rem Decide on the wrapper binary.
+set _WRAPPER_BASE=wrapper
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe
+if exist "%_WRAPPER_EXE%" goto conf
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe
+if exist "%_WRAPPER_EXE%" goto conf
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%.exe
+if exist "%_WRAPPER_EXE%" goto conf
+echo Unable to locate a Wrapper executable using any of the following names:
+echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe
+echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe
+echo %_REALPATH%%_WRAPPER_BASE%.exe
+pause
+goto :eof
+
+rem
+rem Find the apacheds.conf
+rem
+:conf
+set _WRAPPER_CONF="%~f1"
+if not %_WRAPPER_CONF%=="" goto startup
+set _WRAPPER_CONF="%_REALPATH%..\conf\apacheds.conf"
+
+rem
+rem Start the Wrapper NT service.
+rem
+:startup
+"%_WRAPPER_EXE%" -t %_WRAPPER_CONF%
+if not errorlevel 1 goto :eof
+pause
+
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/StopApp-NT.bat.in
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/StopApp-NT.bat.in?view=auto&rev=564117
==============================================================================
--- directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/StopApp-NT.bat.in (added)
+++ directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/StopApp-NT.bat.in Wed Aug 8 23:45:35 2007
@@ -0,0 +1,50 @@
+@echo off
+setlocal
+
+rem Copyright (c) 1999, 2006 Tanuki Software Inc.
+rem
+rem Java Service Wrapper general NT service stop script
+rem
+
+if "%OS%"=="Windows_NT" goto nt
+echo This script only works with NT-based versions of Windows.
+goto :eof
+
+:nt
+rem
+rem Find the application home.
+rem
+rem %~dp0 is location of current script under NT
+set _REALPATH=%~dp0
+
+rem Decide on the wrapper binary.
+set _WRAPPER_BASE=wrapper
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe
+if exist "%_WRAPPER_EXE%" goto conf
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe
+if exist "%_WRAPPER_EXE%" goto conf
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%.exe
+if exist "%_WRAPPER_EXE%" goto conf
+echo Unable to locate a Wrapper executable using any of the following names:
+echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe
+echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe
+echo %_REALPATH%%_WRAPPER_BASE%.exe
+pause
+goto :eof
+
+rem
+rem Find the apacheds.conf
+rem
+:conf
+set _WRAPPER_CONF="%~f1"
+if not %_WRAPPER_CONF%=="" goto startup
+set _WRAPPER_CONF="%_REALPATH%..\conf\apacheds.conf"
+
+rem
+rem Stop the Wrapper NT service.
+rem
+:startup
+"%_WRAPPER_EXE%" -p %_WRAPPER_CONF%
+if not errorlevel 1 goto :eof
+pause
+
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/UninstallApp-NT.bat.in
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/UninstallApp-NT.bat.in?view=auto&rev=564117
==============================================================================
--- directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/UninstallApp-NT.bat.in (added)
+++ directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/UninstallApp-NT.bat.in Wed Aug 8 23:45:35 2007
@@ -0,0 +1,50 @@
+@echo off
+setlocal
+
+rem Copyright (c) 1999, 2006 Tanuki Software Inc.
+rem
+rem Java Service Wrapper general NT service uninstall script
+rem
+
+if "%OS%"=="Windows_NT" goto nt
+echo This script only works with NT-based versions of Windows.
+goto :eof
+
+:nt
+rem
+rem Find the application home.
+rem
+rem %~dp0 is location of current script under NT
+set _REALPATH=%~dp0
+
+rem Decide on the wrapper binary.
+set _WRAPPER_BASE=wrapper
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe
+if exist "%_WRAPPER_EXE%" goto conf
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe
+if exist "%_WRAPPER_EXE%" goto conf
+set _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%.exe
+if exist "%_WRAPPER_EXE%" goto conf
+echo Unable to locate a Wrapper executable using any of the following names:
+echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exe
+echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exe
+echo %_REALPATH%%_WRAPPER_BASE%.exe
+pause
+goto :eof
+
+rem
+rem Find the apacheds.conf
+rem
+:conf
+set _WRAPPER_CONF="%~f1"
+if not %_WRAPPER_CONF%=="" goto startup
+set _WRAPPER_CONF="%_REALPATH%..\conf\apacheds.conf"
+
+rem
+rem Uninstall the Wrapper as an NT service.
+rem
+:startup
+"%_WRAPPER_EXE%" -r %_WRAPPER_CONF%
+if not errorlevel 1 goto :eof
+pause
+
Added: directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/sh.script.in
URL: http://svn.apache.org/viewvc/directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/sh.script.in?view=auto&rev=564117
==============================================================================
--- directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/sh.script.in (added)
+++ directory/daemon/trunk/plugin/src/main/resources/org/apache/directory/daemon/installers/wrapper/src/sh.script.in Wed Aug 8 23:45:35 2007
@@ -0,0 +1,574 @@
+#! /bin/sh
+#
+# 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 @app.long.name@
+#
+
+# Instances
+
+INSTANCE="$2"
+. /etc/sysconfig/apacheds
+
+#INSTANCE_HOME="/var/lib/apacheds"
+
+# Application
+APP_NAME="@app@"
+export APACHEDS_HOME
+APP_LONG_NAME="Apache Directory Server - $INSTANCE"
+
+
+# Wrapper
+WRAPPER_CMD="/opt/@app@-@app.version@/bin/apacheds"
+WRAPPER_CONF="/opt/@app@-@app.version@/conf/apacheds.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="/var/run/apacheds/$INSTANCE"
+
+# 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=$APP_NAME
+
+# Do not modify anything beyond this point
+#-----------------------------------------------------------------------------
+
+# Get the fully qualified path to the script
+case $0 in
+ /*)
+ SCRIPT="$0"
+ ;;
+ *)
+ PWD=`pwd`
+ SCRIPT="$PWD/$0"
+ ;;
+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/$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
+ echo "Unable to locate 'id'."
+ echo "Please report this message along with the location of the command on your system."
+ exit 1
+ 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
+}
+
+usage() {
+ echo "Please enter an instance name..."
+ echo "Usage: $0 "
+ 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
+}
+
+# Make sure they entered an instance name
+if [ "x"$2 = "x" ]
+then
+ usage
+ exit 1
+fi
+
+case "$1" in
+
+ 'console')
+ checkUser touchlock $1 $INSTANCE
+ console
+ ;;
+
+ 'start')
+ 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
+ ;;
+
+ *)
+ echo "Usage: $0 { console | start | stop | restart | status | dump } "
+ exit 1
+ ;;
+esac
+
+exit 0