You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2006/02/13 11:40:35 UTC

svn commit: r377335 [1/2] - in /directory/sandbox/akarasulu/rc1: apacheds/server-installers/ apacheds/server-installers/src/main/installers/ apacheds/server-tools/src/main/java/org/apache/directory/server/tools/ apacheds/server-tools/src/main/resources...

Author: akarasulu
Date: Mon Feb 13 02:40:29 2006
New Revision: 377335

URL: http://svn.apache.org/viewcvs?rev=377335&view=rev
Log:
fixed issues with hack for apacheds-tools

Added:
    directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/inno-apacheds.iss   (with props)
    directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/izpack-apacheds-tools.sh
    directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/izpack-mac.xml
    directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/izpack-unix.xml
      - copied, changed from r377306, directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/resources/org/apache/directory/daemon/installers/izpack/install_unix.xml
    directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/izpack-windows.xml
      - copied unchanged from r377306, directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/resources/org/apache/directory/daemon/installers/izpack/install_windows.xml
    directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/rpm-apacheds-tools.sh
    directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/rpm-apacheds.spec
    directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/java/org/apache/directory/server/tools/BaseCommand.java
      - copied, changed from r377306, directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/java/org/apache/directory/server/tools/ApachedsTools.java
    directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/resources/org/apache/directory/server/tools/product.properties
      - copied, changed from r377306, directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/resources/org/apache/directory/server/tools/ApachedsTools.properties
    directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/PackagedFile.java
Removed:
    directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/apacheds-tools.sh
    directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/resources/org/apache/directory/server/tools/ApachedsTools.properties
Modified:
    directory/sandbox/akarasulu/rc1/apacheds/server-installers/pom.xml
    directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/java/org/apache/directory/server/tools/ApachedsTools.java
    directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/CreateImageCommand.java
    directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/MojoCommand.java
    directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/ServiceInstallersMojo.java
    directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/Target.java
    directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/inno/InnoInstallerCommand.java
    directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/inno/InnoTarget.java
    directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/izpack/IzPackInstallerCommand.java
    directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/rpm/RpmInstallerCommand.java
    directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/resources/org/apache/directory/daemon/installers/inno/install.iss
    directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/resources/org/apache/directory/daemon/installers/izpack/install_unix.xml
    directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/resources/org/apache/directory/daemon/installers/izpack/install_windows.xml
    directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/resources/org/apache/directory/daemon/installers/izpack/unix_shortcuts.xml
    directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/resources/org/apache/directory/daemon/installers/izpack/user_input.xml
    directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/resources/org/apache/directory/daemon/installers/izpack/windows_shortcuts.xml
    directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/resources/org/apache/directory/daemon/installers/rpm/spec.template

Modified: directory/sandbox/akarasulu/rc1/apacheds/server-installers/pom.xml
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/apacheds/server-installers/pom.xml?rev=377335&r1=377334&r2=377335&view=diff
==============================================================================
--- directory/sandbox/akarasulu/rc1/apacheds/server-installers/pom.xml (original)
+++ directory/sandbox/akarasulu/rc1/apacheds/server-installers/pom.xml Mon Feb 13 02:40:29 2006
@@ -77,6 +77,10 @@
         <artifactId>daemon-plugin</artifactId>
         <configuration>
           <excludes>
+
+            <!-- apacheds-tools.jar does not get put in lib directory -->
+            <exclude>org.apache.directory.server:apacheds-server-tools</exclude>
+
             <exclude>ant:ant</exclude>
             <exclude>aopalliance:aopalliance</exclude>
             <exclude>xerces:xerces</exclude>
@@ -115,18 +119,36 @@
               <author>szoerner@apache.org</author>
             </authors>
           </application>
+          <packagedFiles>
+            <packagedFile>
+              <source>org.apache.directory.server:apacheds-server-tools</source>
+              <destinationPath>bin/apacheds-tools.jar</destinationPath>
+              <dependency>true</dependency>
+              <installationBundleId>Binaries</installationBundleId>
+            </packagedFile>
+          </packagedFiles>
           <svnBaseUrl>
             http://svn.apache.org/repos/asf/directory/trunks/apacheds
           </svnBaseUrl>
           <packageSources>true</packageSources>
           <packageDocs>true</packageDocs>
           <applicationClass>
-            org.apache.ldap.server.DirectoryServer
+            org.apache.ldap.server.Service
           </applicationClass>
           <rpmTargets>
             <rpmTarget>
+              <packagedFiles>
+                <packagedFile>
+                  <source>rpm-apacheds-tools.sh</source>
+                  <destinationPath>bin/apacheds-tools.sh</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                  <executable>true</executable>
+                  <filtered>true</filtered>
+                </packagedFile>
+              </packagedFiles>
               <!--  doSudo>true</doSudo -->
-              <id>linux-jsvc</id>
+              <id>linux-jsvc-rpm</id>
+              <rpmSpecificationFile>rpm-apacheds.spec</rpmSpecificationFile>
               <finalName>
                 apacheds-${pom.version}-linux-i386.rpm
               </finalName>
@@ -139,6 +161,7 @@
           <innoTargets>
             <innoTarget>
               <id>windows-xp-procrun</id>
+              <innoConfigurationFile>inno-apacheds.iss</innoConfigurationFile>
               <finalName>
                 apacheds-${pom.version}-win32-setup
               </finalName>
@@ -151,7 +174,17 @@
           </innoTargets>
           <izPackTargets>
             <izPackTarget>
+              <packagedFiles>
+                <packagedFile>
+                  <source>izpack-apacheds-tools.sh</source>
+                  <destinationPath>bin/apacheds-tools.sh</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                  <executable>true</executable>
+                  <filtered>true</filtered>
+                </packagedFile>
+              </packagedFiles>
               <id>linux-jsvc</id>
+              <izPackInstallFile>izpack-unix.xml</izPackInstallFile>
               <finalName>
                 apacheds-${pom.version}-linux-i386-setup.jar
               </finalName>
@@ -161,17 +194,37 @@
               <daemonFramework>jsvc</daemonFramework>
             </izPackTarget>
             <izPackTarget>
+              <packagedFiles>
+                <packagedFile>
+                  <source>izpack-apacheds-tools.sh</source>
+                  <destinationPath>bin/apacheds-tools.sh</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                  <executable>true</executable>
+                  <filtered>true</filtered>
+                </packagedFile>
+              </packagedFiles>
               <finalName>
                 apacheds-${pom.version}-solaris-sparc-setup.jar
               </finalName>
               <id>solaris-jsvc-sparc</id>
+              <izPackInstallFile>izpack-unix.xml</izPackInstallFile>
               <osName>sunos</osName>
               <osFamily>unix</osFamily>
               <osArch>sparc</osArch>
               <daemonFramework>jsvc</daemonFramework>
             </izPackTarget>
             <izPackTarget>
+              <packagedFiles>
+                <packagedFile>
+                  <source>izpack-apacheds-tools.sh</source>
+                  <destinationPath>bin/apacheds-tools.sh</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                  <executable>true</executable>
+                  <filtered>true</filtered>
+                </packagedFile>
+              </packagedFiles>
               <id>solaris-jsvc-i386</id>
+              <izPackInstallFile>izpack-unix.xml</izPackInstallFile>
               <finalName>
                 apacheds-${pom.version}-solaris-i386-setup.jar
               </finalName>
@@ -181,7 +234,17 @@
               <daemonFramework>jsvc</daemonFramework>
             </izPackTarget>
             <izPackTarget>
+              <packagedFiles>
+                <packagedFile>
+                  <source>izpack-apacheds-tools.sh</source>
+                  <destinationPath>bin/apacheds-tools.sh</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                  <executable>true</executable>
+                  <filtered>true</filtered>
+                </packagedFile>
+              </packagedFiles>
               <id>macosx-jsvc</id>
+              <izPackInstallFile>izpack-mac.xml</izPackInstallFile>
               <finalName>
                 apacheds-${pom.version}-macosx-ppc-setup.jar
               </finalName>

Added: directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/inno-apacheds.iss
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/inno-apacheds.iss?rev=377335&view=auto
==============================================================================
--- directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/inno-apacheds.iss (added)
+++ directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/inno-apacheds.iss Mon Feb 13 02:40:29 2006
@@ -0,0 +1,82 @@
+; Script generated by the Apache Maven 2 Installers Plugin
+; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
+
+#define MyAppName "${app}"
+#define MyAppVerName "${app} ${app.version}"
+#define MyAppVersion "${app.version}"
+#define MyAppPublisher "${app.author}"
+#define MyAppURL "${app.url}"
+#define MyAppExeName "${app}w.exe"
+#define MyAppCompanyName "${app.company.name}"
+#define MyAppDescription "${app.description}"
+#define MyAppCopyright "Copyright (c) ${app.copyright.year} ${app.company.name}"
+
+; Set this constant to the path where your installation image resides
+#define SourceBase "${image.basedir}"
+
+[Setup]
+AppName={#MyAppName}
+AppVerName={#MyAppVerName}
+AppPublisher={#MyAppPublisher}
+AppPublisherURL={#MyAppURL}
+AppSupportURL={#MyAppURL}
+AppUpdatesURL={#MyAppURL}
+DefaultDirName={pf}\${app}-${app.version}
+DefaultGroupName={#MyAppName}
+LicenseFile={#SourceBase}\${app.license.name}
+OutputDir="${installer.output.directory}"
+OutputBaseFilename=${app.final.name}
+SetupIconFile={#SourceBase}\${app.icon.name}
+Compression=lzma
+SolidCompression=true
+VersionInfoCompany={#MyAppCompanyName}
+VersionInfoDescription={#MyAppDescription}
+AppCopyright={#MyAppCopyright}
+ShowLanguageDialog=yes
+AppVersion={#MyAppVersion}
+
+[Languages]
+Name: eng; MessagesFile: compiler:Default.isl
+
+[Tasks]
+Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
+
+[Files]
+; bin directory targets
+Source: {#SourceBase}\bin\${app}w.exe; DestDir: {app}\bin; Tasks: ; Languages: 
+Source: {#SourceBase}\bin\${app}.exe; DestDir: {app}\bin
+Source: {#SourceBase}\bin\bootstrapper.jar; DestDir: {app}\bin; DestName: bootstrapper.jar
+Source: {#SourceBase}\bin\logger.jar; DestDir: {app}\bin; DestName: logger.jar
+Source: {#SourceBase}\bin\apacheds-tools.jar; DestDir: {app}\bin; DestName: apacheds-tools.jar
+Source: {#SourceBase}\bin\daemon.jar; DestDir: {app}\bin; DestName: daemon.jar
+; conf directory targets
+Source: {#SourceBase}\conf\log4j.properties; DestDir: {app}\conf; DestName: log4j.properties
+Source: {#SourceBase}\conf\server.xml; DestDir: {app}\conf; DestName: server.xml
+Source: {#SourceBase}\conf\bootstrapper.properties; DestDir: {app}\conf; DestName: bootstrapper.properties
+; top level directory targets 
+Source: {#SourceBase}\${app.license.name}; DestDir: {app}; DestName: ${app.license.name}
+Source: {#SourceBase}\${app.readme.name}; DestDir: {app}; DestName: ${app.readme.name}
+Source: {#SourceBase}\${app.icon.name}; DestDir: {app}; DestName: ${app.icon.name}
+; empty var & lib\ext directory structure
+Source: {#SourceBase}\var\*; DestDir: "{app}\var\"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: {#SourceBase}\lib\ext; DestDir: "{app}\lib"; Flags: ignoreversion recursesubdirs createallsubdirs
+; lib directory targets
+${app.lib.jars}
+${docs.directive}
+${sources.directive}
+${notice.file}
+
+[Icons]
+Name: {group}\Service Settings; Filename: {app}\bin\${app}w.exe; Parameters: //ES//${app}; IconIndex: 0
+Name: {userdesktop}\{#MyAppName}; Filename: {app}\bin\${app}w.exe; Tasks: desktopicon; Parameters: //ES//${app}; IconIndex: 0; Languages: 
+Name: {group}\Tray Monitor; Filename: {app}\bin\${app}w.exe; Parameters: //MS//${app}; IconIndex: 0
+Name: {group}\Test Service; Filename: {app}\bin\${app}.exe; IconIndex: 0
+
+[Run]
+Filename: {app}\bin\${app}.exe; WorkingDir: {app}\bin; Tasks: ; Languages: ; Parameters: "//IS//${app.displayname} --Description=""${app.description} Service ${app.version} - ${app.url}"" --DisplayName=${app.displayname} --Install=""{app}\bin\${app}.exe"" --StartMode=jvm --StopMode=jvm --StartClass=org.apache.directory.daemon.ProcrunBootstrapper --StartMethod prunsrvStart --StartParams=""{app}"" --StopClass=org.apache.directory.daemon.ProcrunBootstrapper --StopMethod prunsrvStop --StopParams=""{app}"" --Startup=manual --JvmOptions=""-D${app}.home={app}"" --Classpath=""{app}\bin\bootstrapper.jar;{app}\conf;{app}\bin\logger.jar;{app}\bin\daemon.jar"" --LogPath=""{app}\var\log"" --LogPrefix=${app}.log --LogLevel=debug --StdOutput=""{app}\var\log\${app}-stdout.log"" --StdError=""{app}\var\log\${app}-stderr.log"""; Flags: runhidden
+Filename: {app}\bin\${app}w.exe; Parameters: //ES//${app.displayname}; WorkingDir: {app}\bin; Flags: postinstall nowait; Description: Runs the configuration manager for the ${app} windows service
+
+[Registry]
+
+[UninstallRun]
+Filename: {app}\bin\${app}.exe; WorkingDir: {app}\bin; Parameters: //DS//${app.displayname}

Propchange: directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/inno-apacheds.iss
------------------------------------------------------------------------------
    svn:executable = *

Added: directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/izpack-apacheds-tools.sh
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/izpack-apacheds-tools.sh?rev=377335&view=auto
==============================================================================
--- directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/izpack-apacheds-tools.sh (added)
+++ directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/izpack-apacheds-tools.sh Mon Feb 13 02:40:29 2006
@@ -0,0 +1,5 @@
+#!/bin/sh
+# Really simple script for launching ApacheDS tools using IzPack
+
+APACHEDS_HOME=%INSTALL_PATH
+$JAVA_HOME/bin/java -jar $APACHEDS_HOME/bin/apacheds-tools.jar $@

Added: directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/izpack-mac.xml
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/izpack-mac.xml?rev=377335&view=auto
==============================================================================
--- directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/izpack-mac.xml (added)
+++ directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/izpack-mac.xml Mon Feb 13 02:40:29 2006
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<!--
+  /*
+  *   Copyright 2004 The Apache Software Foundation
+  *
+  *   Licensed 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.
+  *
+  */
+-->
+
+<installation version="1.0">
+  <info>
+    <appname>${app}</appname>
+    <appversion>${app.version}</appversion>
+    <appsubpath>${app}-${app.version}</appsubpath>
+    <authors>
+      <author name="${app.author}" email="${app.email}" />
+    </authors>
+    <url>${app.url}</url>
+    <javaversion>${app.java.version}</javaversion>
+  </info>
+
+  <guiprefs height="480" resizable="yes" width="640">
+    <laf name="metouia">
+      <os family="unix" />
+    </laf>
+  </guiprefs>
+
+  <locale>
+    <langpack iso3="eng" />
+  </locale>
+
+  <resources>
+    <res id="installer.langsel.img" src="${app.icon}" />
+    <res id="Installer.image" src="${app.icon}" />
+    <res id="Installer.image.0" src="${app.icon}" />
+    <res id="Installer.image.1" src="${app.icon}" />
+    <res id="Installer.image.2" src="${app.icon}" />
+    <res id="Installer.image.3" src="${app.icon}" />
+    <res id="Installer.image.4" src="${app.icon}" />
+    <res id="Installer.image.5" src="${app.icon}" />
+    <res id="LicencePanel.licence" src="${app.license}" />
+    <res id="InfoPanel.info" src="${app.readme}" />
+    <res id="ImgPacksPanel.img.0" src="${app.icon}" />
+    <res id="ImgPacksPanel.img.1" src="${app.icon}" />
+    <res id="shortcutSpec.xml" src="${unix.shortcuts}" />
+    <res id="Unix_shortcutSpec.xml" src="${unix.shortcuts}" />
+    <res id="userInputSpec.xml" src="${user.input}" />
+  </resources>
+
+  <panels>
+    <panel classname="HelloPanel" />
+    <panel classname="InfoPanel" />
+    <panel classname="LicencePanel" />
+    <panel classname="TargetPanel" />
+    <panel classname="ImgPacksPanel" />
+    <panel classname="InstallPanel" />
+    <panel classname="ShortcutPanel" />
+    <panel classname="FinishPanel" />
+  </panels>
+
+  <packs>
+    <pack name="Binaries" required="yes">
+      <description>Binary Executables</description>
+      <fileset dir="${image.basedir}" targetdir="$INSTALL_PATH">
+        <include name="**/*" />
+      </fileset>
+    
+      <executable os="unix" targetfile="$INSTALL_PATH/bin/${app}" stage="never" keep="true" />
+      <singlefile os="unix" src="bin/${server.init}" target="/etc/init.d/${app}" />
+      <parsable os="unix" targetfile="$INSTALL_PATH/bin/${server.init}" type="shell" />
+      <parsable os="unix" targetfile="$INSTALL_PATH/bin/apacheds-tools.sh" type="shell" />
+      <parsable os="unix" targetfile="/etc/init.d/${app}" type="shell" />
+      <executable os="unix" targetfile="/etc/init.d/${app}" stage="never" keep="true" />
+      <executable os="unix" targetfile="$INSTALL_PATH/bin/${server.init}" stage="never" keep="true" />
+      <executable os="unix" targetfile="$INSTALL_PATH/bin/apacheds-tools.sh" stage="never" keep="true" />
+    </pack>
+  </packs>
+</installation>

Copied: directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/izpack-unix.xml (from r377306, directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/resources/org/apache/directory/daemon/installers/izpack/install_unix.xml)
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/izpack-unix.xml?p2=directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/izpack-unix.xml&p1=directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/resources/org/apache/directory/daemon/installers/izpack/install_unix.xml&r1=377306&r2=377335&rev=377335&view=diff
==============================================================================
--- directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/resources/org/apache/directory/daemon/installers/izpack/install_unix.xml (original)
+++ directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/izpack-unix.xml Mon Feb 13 02:40:29 2006
@@ -83,11 +83,6 @@
       <parsable os="unix" targetfile="/etc/init.d/${app}" type="shell" />
       <executable os="unix" targetfile="/etc/init.d/${app}" stage="never" keep="true" />
       <executable os="unix" targetfile="$INSTALL_PATH/bin/${server.init}" stage="never" keep="true" />
-      <!-- 
-      HACK BELOW!
-            todo clean me up
-            see DIREVE-333
-       -->
       <executable os="unix" targetfile="$INSTALL_PATH/bin/apacheds-tools.sh" stage="never" keep="true" />
     </pack>
   </packs>

Added: directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/rpm-apacheds-tools.sh
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/rpm-apacheds-tools.sh?rev=377335&view=auto
==============================================================================
--- directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/rpm-apacheds-tools.sh (added)
+++ directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/rpm-apacheds-tools.sh Mon Feb 13 02:40:29 2006
@@ -0,0 +1,5 @@
+#!/bin/sh
+# Really simple script to launch apacheds tools with RPM installer
+
+APACHEDS_HOME=/usr/local/${app}-${app.version}
+$JAVA_HOME/bin/java -jar $APACHEDS_HOME/bin/apacheds-tools.jar $@

Added: directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/rpm-apacheds.spec
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/rpm-apacheds.spec?rev=377335&view=auto
==============================================================================
--- directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/rpm-apacheds.spec (added)
+++ directory/sandbox/akarasulu/rc1/apacheds/server-installers/src/main/installers/rpm-apacheds.spec Mon Feb 13 02:40:29 2006
@@ -0,0 +1,89 @@
+Summary: ${app.display.name} Server 
+Name: ${app}
+Version: ${app.version}
+Release: ${app.release}
+License: ${app.license.type}
+Group: System Environment/Daemons
+URL: ${app.url}
+Source0: %{name}-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+
+%description
+${app.description}
+
+%prep
+echo $RPM_BUILD_ROOT
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT
+cp -rf ${image.basedir} $RPM_BUILD_ROOT/%{name}-%{version}
+cd $RPM_BUILD_ROOT
+tar -zcvf /usr/src/redhat/SOURCES/%{name}-%{version}.tar.gz %{name}-%{version}
+
+%setup -q
+
+%build
+cd $RPM_BUILD_ROOT/%{name}-%{version}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT/usr/local/${app}-%{version}/bin
+mkdir -p $RPM_BUILD_ROOT/usr/local/${app}-%{version}/conf
+mkdir -p $RPM_BUILD_ROOT/usr/local/${app}-%{version}/lib/ext
+mkdir -p $RPM_BUILD_ROOT/usr/local/${app}-%{version}/var/log
+mkdir -p $RPM_BUILD_ROOT/usr/local/${app}-%{version}/var/run
+mkdir -p $RPM_BUILD_ROOT/usr/local/${app}-%{version}/var/partitions
+touch $RPM_BUILD_ROOT/usr/local/${app}-%{version}/var/log/${app}-stderr.log
+touch $RPM_BUILD_ROOT/usr/local/${app}-%{version}/var/log/${app}-stdout.log
+mkdir -p $RPM_BUILD_ROOT/etc/init.d
+${mk.docs.dirs}
+${mk.sources.dirs}
+
+pwd
+install -m 755 ${image.basedir}/bin/${app} $RPM_BUILD_ROOT/usr/local/${app}-%{version}/bin/${app}
+install -m 644 ${image.basedir}/bin/bootstrapper.jar $RPM_BUILD_ROOT/usr/local/${app}-%{version}/bin/bootstrapper.jar
+install -m 644 ${image.basedir}/bin/apacheds-tools.jar $RPM_BUILD_ROOT/usr/local/${app}-%{version}/bin/apacheds-tools.jar
+install -m 755 ${image.basedir}/bin/apacheds-tools.sh $RPM_BUILD_ROOT/usr/local/${app}-%{version}/bin/apacheds-tools.sh
+install -m 644 ${image.basedir}/bin/logger.jar $RPM_BUILD_ROOT/usr/local/${app}-%{version}/bin/logger.jar
+install -m 644 ${image.basedir}/bin/daemon.jar $RPM_BUILD_ROOT/usr/local/${app}-%{version}/bin/daemon.jar
+install -m 600 ${image.basedir}/conf/server.xml $RPM_BUILD_ROOT/usr/local/${app}-%{version}/conf/server.xml
+install -m 644 ${image.basedir}/conf/bootstrapper.properties $RPM_BUILD_ROOT/usr/local/${app}-%{version}/conf/bootstrapper.properties
+install -m 644 ${image.basedir}/conf/log4j.properties $RPM_BUILD_ROOT/usr/local/${app}-%{version}/conf/log4j.properties
+install -m 744 ${image.basedir}/bin/${server.init} $RPM_BUILD_ROOT/etc/init.d/${app}
+install -m 644 ${image.basedir}/${app.license.name} $RPM_BUILD_ROOT/usr/local/${app}-%{version}
+install -m 644 ${image.basedir}/${app.readme.name} $RPM_BUILD_ROOT/usr/local/${app}-%{version}
+install -m 644 ${image.basedir}/${app.icon} $RPM_BUILD_ROOT/usr/local/${app}-%{version}
+${install.append.libs}
+${install.docs}
+${install.sources}
+${install.notice.file}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root,-)
+%doc ${app.license.name} ${app.readme.name}
+
+/etc/init.d/${app}
+/usr/local/${app}-%{version}/bin/${app}
+/usr/local/${app}-%{version}/bin/bootstrapper.jar
+/usr/local/${app}-%{version}/bin/apacheds-tools.jar
+/usr/local/${app}-%{version}/bin/apacheds-tools.sh
+/usr/local/${app}-%{version}/bin/logger.jar
+/usr/local/${app}-%{version}/bin/daemon.jar
+/usr/local/${app}-%{version}/conf/log4j.properties
+/usr/local/${app}-%{version}/conf/bootstrapper.properties
+/usr/local/${app}-%{version}/conf/server.xml
+/usr/local/${app}-%{version}/lib/ext
+/usr/local/${app}-%{version}/var/run
+/usr/local/${app}-%{version}/var/log
+/usr/local/${app}-%{version}/var/partitions
+/usr/local/${app}-%{version}/var/log/${app}-stderr.log
+/usr/local/${app}-%{version}/var/log/${app}-stdout.log
+/usr/local/${app}-%{version}/${app.readme.name}
+/usr/local/${app}-%{version}/${app.license.name}
+/usr/local/${app}-%{version}/${app.icon}
+${verify.append.libs}
+${verify.docs}
+${verify.sources}
+${verify.notice.file}

Modified: directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/java/org/apache/directory/server/tools/ApachedsTools.java
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/java/org/apache/directory/server/tools/ApachedsTools.java?rev=377335&r1=377334&r2=377335&view=diff
==============================================================================
--- directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/java/org/apache/directory/server/tools/ApachedsTools.java (original)
+++ directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/java/org/apache/directory/server/tools/ApachedsTools.java Mon Feb 13 02:40:29 2006
@@ -16,21 +16,11 @@
  */
 package org.apache.directory.server.tools;
 
-
 import java.io.IOException;
 import java.net.URL;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
 import java.util.Properties;
 
 import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
-import org.apache.commons.cli.PosixParser;
 import org.apache.directory.server.configuration.ServerStartupConfiguration;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.support.FileSystemXmlApplicationContext;
@@ -44,74 +34,18 @@
  */
 public class ApachedsTools
 {
-    private final static Map commands = new HashMap();
-    private final static Options global = new Options();
-    private final static Properties props = new Properties();
-    private final static String version;
-
-    static
-    {
-        ToolCommand command;
-        command = new DumpCommand();
-        commands.put( command.getName(), command );
-        command = new GracefulShutdownCommand();
-        commands.put( command.getName(), command );
-        command = new DiagnosticCommand();
-        commands.put( command.getName(), command );
-        command = new DisconnectNotificationCommand();
-        commands.put( command.getName(), command );
-
-        Option op = new Option( "i", "install-path", true, "path to apacheds installation directory" );
-        global.addOption( op );
-        op = new Option( "b", "banner", false, "suppress banner print outs" );
-        global.addOption( op );
-        op = new Option( "d", "debug", false, "toggle debug mode" );
-        global.addOption( op );
-        op = new Option( "v", "verbose", false, "toggle verbose debugging" );
-        global.addOption( op );
-        op = new Option( "q", "quiet", false, "keep the noise down to a minimum" );
-        global.addOption( op );
-        op = new Option( "c", "configuration", false, "force loading the server.xml (requires -i)" );
-        global.addOption( op );
-        op = new Option( "version", false, "print the version information and exit" );
-        global.addOption( op );
-
-        try
-        {
-            props.load( ApachedsTools.class.getResourceAsStream( "ApachedsTools.properties" ) );
-        }
-        catch ( IOException e )
-        {
-            e.printStackTrace();
-        }
-
-        version = props.getProperty( "apacheds.tools.version" );
-    }
-
-
-    private static boolean hasBannerOption( String[] args )
-    {
-        for ( int ii = 0; ii < args.length; ii++ )
-        {
-            if ( args[ii].equals( "-b" ) || args[ii].equals( "-banner" ) )
-            {
-                return true;
-            }
-        }
-        return false;
-    }
-
-
     public static void main( String[] args ) throws Exception
     {
-        if ( !hasBannerOption( args ) )
+        BaseCommand tools = getInstance();
+        
+        if ( !BaseCommand.hasBannerOption( args ) )
         {
-            printBanner();
+            tools.printBanner();
         }
 
         if ( args.length == 0 )
         {
-            System.err.println( "Type apacheds-tools help for usage." );
+            System.err.println( "Type " + tools.getProductCommand() + " help for usage." );
             System.exit( 1 );
         }
 
@@ -119,44 +53,44 @@
         String command = args[0].toLowerCase();
         if ( "help".equals( command ) )
         {
-            CommandLine cmdline = getCommandLine( command, args );
+            CommandLine cmdline = tools.getCommandLine( command, args );
             if ( cmdline.getArgs().length > 1 )
             {
-                helpOnCommand( cmdline.getArgs()[1] );
+                tools.helpOnCommand( cmdline.getArgs()[1] );
                 System.exit( 0 );
             }
             else
             {
-                printUsage();
+                tools.printUsage();
                 System.exit( 0 );
             }
         }
         else if ( command.equals( "-version" ) )
         {
-            System.out.println( "apacheds-tools version " + version );
+            System.out.println( tools.getProductCommand() + " version " + tools.getProductVersion() );
             System.exit( 0 );
         }
 
-        ToolCommand cmd = ( ToolCommand ) commands.get( command );
+        ToolCommand cmd = ( ToolCommand ) tools.getCommands().get( command );
         if ( cmd == null )
         {
             System.err.println( "Unknown command: " + args[0] );
-            System.err.println( "Type apacheds-tools help for usage." );
+            System.err.println( "Type " + tools.getProductCommand() + " help for usage." );
             System.exit( 1 );
         }
 
-        CommandLine cmdline = getCommandLine( command, args );
+        CommandLine cmdline = tools.getCommandLine( command, args );
         if ( cmdline.hasOption( 'd' ) )
         {
             cmd.setDebugEnabled( true );
-            dumpArgs( "raw command line arguments: ", args );
-            dumpArgs( "parsed arguments: ", cmdline.getArgs() );
+            BaseCommand.dumpArgs( "raw command line arguments: ", args );
+            BaseCommand.dumpArgs( "parsed arguments: ", cmdline.getArgs() );
         }
 
         cmd.setQuietEnabled( cmdline.hasOption( 'q' ) );
         cmd.setDebugEnabled( cmdline.hasOption( 'd' ) );
         cmd.setVerboseEnabled( cmdline.hasOption( 'v' ) );
-        cmd.setVersion( version );
+        cmd.setVersion( tools.getProductVersion() );
         if ( cmdline.getOptionValue( 'i' ) != null )
         {
             cmd.setLayout( cmdline.getOptionValue( 'i' ) );
@@ -179,113 +113,31 @@
     }
 
 
-    private static CommandLine getCommandLine( String command, String[] args )
+    public static BaseCommand getInstance() throws InstantiationException, IllegalAccessException, ClassNotFoundException
     {
-        Options all = allOptions( command );
-        CommandLineParser parser = new PosixParser();
-        CommandLine cmdline = null;
+        Properties props = new Properties();
         try
         {
-            cmdline = parser.parse( all, args );
-        }
-        catch ( ParseException e )
-        {
-            System.err.println( "Command line parsing failed for " + command + ".  Reason: " + e.getMessage() );
-            System.exit( 1 );
-        }
-        return cmdline;
-    }
-
-
-    private static Options allOptions( String command )
-    {
-        if ( command.equals( "help" ) )
-        {
-            return global;
+            props.load( BaseCommand.class.getResourceAsStream( "product.properties" ) );
         }
-
-        Options all = new Options();
-        ToolCommand cmd = ( ToolCommand ) commands.get( command );
-        for ( Iterator ii = global.getOptions().iterator(); ii.hasNext(); )
-        {
-            all.addOption( ( Option ) ii.next() );
-        }
-
-        for ( Iterator ii = cmd.getOptions().getOptions().iterator(); ii.hasNext(); )
-        {
-            all.addOption( ( Option ) ii.next() );
-        }
-        return all;
-    }
-
-
-    private static void dumpArgs( String msg, String[] args )
-    {
-        if ( args.length == 0 )
-        {
-            System.out.println( msg );
-            System.out.println( "\t NONE" );
-            return;
-        }
-
-        StringBuffer buf = new StringBuffer();
-        buf.append( msg ).append( "\n" );
-        for ( int ii = 0; ii < args.length; ii++ )
-        {
-            buf.append( "\targs[" + ii + "] = " ).append( args[ii] ).append( "\n" );
-        }
-        System.out.println( buf );
-    }
-
-
-    private static void helpOnCommand( String command )
-    {
-        if ( command.equals( "help" ) )
-        {
-            printUsage();
-            System.exit( 0 );
-        }
-        if ( commands.containsKey( command ) )
-        {
-            ToolCommand cmd = ( ToolCommand ) commands.get( command );
-            HelpFormatter formatter = new HelpFormatter();
-            formatter.printHelp( "apacheds-tools " + cmd + " [options]", cmd.getOptions() );
-        }
-        else
-        {
-            System.err.println( command + ": unknown command" );
-            System.exit( 1 );
-        }
-    }
-
-
-    private static void printUsage()
-    {
-        HelpFormatter formatter = new HelpFormatter();
-        formatter.printHelp( "apacheds-tools <command> [options]", "\nGlobal options:", global,
-            "\nType \"apacheds-tools help <command>\" for help on a command." );
-        System.out.println( "\nAvalable commands:" );
-        Iterator it = commands.values().iterator();
-        System.out.println( "\thelp" );
-        while ( it.hasNext() )
+        catch ( IOException e )
         {
-            System.out.println( "\t" + it.next() );
+            e.printStackTrace();
         }
 
-        System.out.println( "\nThese apacheds-tools are used to manage the Apache Directory Server." );
-        System.out.println( "For additional information, see http://directory.apache.org/" );
-    }
-
-    public static final String BANNER = "       _                     _          ____  ____    _____           _      \n"
-        + "      / \\   _ __   __ _  ___| |__   ___|  _ \\/ ___|  |_   _|__   ___ | |___  \n"
-        + "     / _ \\ | '_ \\ / _` |/ __| '_ \\ / _ \\ | | \\___ \\    | |/ _ \\ / _ \\| / __| \n"
-        + "    / ___ \\| |_) | (_| | (__| | | |  __/ |_| |___) |   | | (_) | (_) | \\__ \\ \n"
-        + "   /_/   \\_\\ .__/ \\__,_|\\___|_| |_|\\___|____/|____/    |_|\\___/ \\___/|_|___/ \n"
-        + "           |_|                                                               \n";
-
-
-    public static void printBanner()
-    {
-        System.out.println( BANNER );
+        String productVersion = props.getProperty( "product.version", "UNKNOWN" );
+        String productUrl = props.getProperty( "product.url", "http://directory.apache.org" );
+        String productDisplayName = props.getProperty( "product.display.name", "Apache Directory Server" );
+        String productCommand = props.getProperty( "product.command", "apacheds-tools" );
+        String productBanner = props.getProperty( "product.banner", BaseCommand.BANNER );
+        String productClass = props.getProperty( "product.class", "org.apache.directory.server.tools.BaseCommand" );
+        
+        BaseCommand baseCommand = ( BaseCommand ) Class.forName( productClass ).newInstance();
+        baseCommand.setProductBanner( productBanner );
+        baseCommand.setProductDisplayName( productDisplayName );
+        baseCommand.setProductUrl( productUrl );
+        baseCommand.setProductVersion( productVersion );
+        baseCommand.setProductCommand( productCommand );
+        return baseCommand;
     }
 }

Copied: directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/java/org/apache/directory/server/tools/BaseCommand.java (from r377306, directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/java/org/apache/directory/server/tools/ApachedsTools.java)
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/java/org/apache/directory/server/tools/BaseCommand.java?p2=directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/java/org/apache/directory/server/tools/BaseCommand.java&p1=directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/java/org/apache/directory/server/tools/ApachedsTools.java&r1=377306&r2=377335&rev=377335&view=diff
==============================================================================
--- directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/java/org/apache/directory/server/tools/ApachedsTools.java (original)
+++ directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/java/org/apache/directory/server/tools/BaseCommand.java Mon Feb 13 02:40:29 2006
@@ -17,12 +17,9 @@
 package org.apache.directory.server.tools;
 
 
-import java.io.IOException;
-import java.net.URL;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
-import java.util.Properties;
 
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.CommandLineParser;
@@ -31,65 +28,61 @@
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
 import org.apache.commons.cli.PosixParser;
-import org.apache.directory.server.configuration.ServerStartupConfiguration;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.FileSystemXmlApplicationContext;
 
 
 /**
- * The main() application which executes command targets.
+ * The primary command base class.
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$
  */
-public class ApachedsTools
+public class BaseCommand
 {
-    private final static Map commands = new HashMap();
-    private final static Options global = new Options();
-    private final static Properties props = new Properties();
-    private final static String version;
-
-    static
+    private Map commands = new HashMap();
+    private Options global = new Options();
+    private String productCommand;
+    private String productVersion;
+    private String productDisplayName;
+    private String productUrl;
+    private String productBanner;
+    
+    
+    public BaseCommand()
+    {
+        init();
+    }
+    
+    
+    protected void init()
     {
         ToolCommand command;
         command = new DumpCommand();
-        commands.put( command.getName(), command );
+        getCommands().put( command.getName(), command );
         command = new GracefulShutdownCommand();
-        commands.put( command.getName(), command );
+        getCommands().put( command.getName(), command );
         command = new DiagnosticCommand();
-        commands.put( command.getName(), command );
+        getCommands().put( command.getName(), command );
         command = new DisconnectNotificationCommand();
-        commands.put( command.getName(), command );
+        getCommands().put( command.getName(), command );
 
-        Option op = new Option( "i", "install-path", true, "path to apacheds installation directory" );
-        global.addOption( op );
+        Option op = new Option( "i", "install-path", true, "path to installation directory" );
+        getGlobal().addOption( op );
         op = new Option( "b", "banner", false, "suppress banner print outs" );
-        global.addOption( op );
+        getGlobal().addOption( op );
         op = new Option( "d", "debug", false, "toggle debug mode" );
-        global.addOption( op );
+        getGlobal().addOption( op );
         op = new Option( "v", "verbose", false, "toggle verbose debugging" );
-        global.addOption( op );
+        getGlobal().addOption( op );
         op = new Option( "q", "quiet", false, "keep the noise down to a minimum" );
-        global.addOption( op );
+        getGlobal().addOption( op );
         op = new Option( "c", "configuration", false, "force loading the server.xml (requires -i)" );
-        global.addOption( op );
+        getGlobal().addOption( op );
         op = new Option( "version", false, "print the version information and exit" );
-        global.addOption( op );
-
-        try
-        {
-            props.load( ApachedsTools.class.getResourceAsStream( "ApachedsTools.properties" ) );
-        }
-        catch ( IOException e )
-        {
-            e.printStackTrace();
-        }
-
-        version = props.getProperty( "apacheds.tools.version" );
+        getGlobal().addOption( op );
     }
-
-
-    private static boolean hasBannerOption( String[] args )
+    
+    
+    public static boolean hasBannerOption( String[] args )
     {
         for ( int ii = 0; ii < args.length; ii++ )
         {
@@ -102,84 +95,7 @@
     }
 
 
-    public static void main( String[] args ) throws Exception
-    {
-        if ( !hasBannerOption( args ) )
-        {
-            printBanner();
-        }
-
-        if ( args.length == 0 )
-        {
-            System.err.println( "Type apacheds-tools help for usage." );
-            System.exit( 1 );
-        }
-
-        // help is a special command 
-        String command = args[0].toLowerCase();
-        if ( "help".equals( command ) )
-        {
-            CommandLine cmdline = getCommandLine( command, args );
-            if ( cmdline.getArgs().length > 1 )
-            {
-                helpOnCommand( cmdline.getArgs()[1] );
-                System.exit( 0 );
-            }
-            else
-            {
-                printUsage();
-                System.exit( 0 );
-            }
-        }
-        else if ( command.equals( "-version" ) )
-        {
-            System.out.println( "apacheds-tools version " + version );
-            System.exit( 0 );
-        }
-
-        ToolCommand cmd = ( ToolCommand ) commands.get( command );
-        if ( cmd == null )
-        {
-            System.err.println( "Unknown command: " + args[0] );
-            System.err.println( "Type apacheds-tools help for usage." );
-            System.exit( 1 );
-        }
-
-        CommandLine cmdline = getCommandLine( command, args );
-        if ( cmdline.hasOption( 'd' ) )
-        {
-            cmd.setDebugEnabled( true );
-            dumpArgs( "raw command line arguments: ", args );
-            dumpArgs( "parsed arguments: ", cmdline.getArgs() );
-        }
-
-        cmd.setQuietEnabled( cmdline.hasOption( 'q' ) );
-        cmd.setDebugEnabled( cmdline.hasOption( 'd' ) );
-        cmd.setVerboseEnabled( cmdline.hasOption( 'v' ) );
-        cmd.setVersion( version );
-        if ( cmdline.getOptionValue( 'i' ) != null )
-        {
-            cmd.setLayout( cmdline.getOptionValue( 'i' ) );
-            if ( !cmd.isQuietEnabled() )
-            {
-                System.out.println( "loading settings from: " + cmd.getLayout().getConfigurationFile() );
-            }
-            ApplicationContext factory = null;
-            URL configUrl = configUrl = cmd.getLayout().getConfigurationFile().toURL();
-            factory = new FileSystemXmlApplicationContext( configUrl.toString() );
-            cmd.setConfiguration( ( ServerStartupConfiguration ) factory.getBean( "configuration" ) );
-        }
-        else if ( cmdline.hasOption( 'c' ) )
-        {
-            System.err.println( "forced configuration load (-c) requires the -i option" );
-            System.exit( 1 );
-        }
-
-        cmd.execute( cmdline );
-    }
-
-
-    private static CommandLine getCommandLine( String command, String[] args )
+    public CommandLine getCommandLine( String command, String[] args )
     {
         Options all = allOptions( command );
         CommandLineParser parser = new PosixParser();
@@ -197,16 +113,16 @@
     }
 
 
-    private static Options allOptions( String command )
+    public Options allOptions( String command )
     {
         if ( command.equals( "help" ) )
         {
-            return global;
+            return getGlobal();
         }
 
         Options all = new Options();
-        ToolCommand cmd = ( ToolCommand ) commands.get( command );
-        for ( Iterator ii = global.getOptions().iterator(); ii.hasNext(); )
+        ToolCommand cmd = ( ToolCommand ) getCommands().get( command );
+        for ( Iterator ii = getGlobal().getOptions().iterator(); ii.hasNext(); )
         {
             all.addOption( ( Option ) ii.next() );
         }
@@ -219,7 +135,7 @@
     }
 
 
-    private static void dumpArgs( String msg, String[] args )
+    public static void dumpArgs( String msg, String[] args )
     {
         if ( args.length == 0 )
         {
@@ -238,18 +154,18 @@
     }
 
 
-    private static void helpOnCommand( String command )
+    public void helpOnCommand( String command )
     {
         if ( command.equals( "help" ) )
         {
             printUsage();
             System.exit( 0 );
         }
-        if ( commands.containsKey( command ) )
+        if ( getCommands().containsKey( command ) )
         {
-            ToolCommand cmd = ( ToolCommand ) commands.get( command );
+            ToolCommand cmd = ( ToolCommand ) getCommands().get( command );
             HelpFormatter formatter = new HelpFormatter();
-            formatter.printHelp( "apacheds-tools " + cmd + " [options]", cmd.getOptions() );
+            formatter.printHelp(  getProductCommand() + " " + cmd + " [options]", cmd.getOptions() );
         }
         else
         {
@@ -259,24 +175,24 @@
     }
 
 
-    private static void printUsage()
+    public void printUsage()
     {
         HelpFormatter formatter = new HelpFormatter();
-        formatter.printHelp( "apacheds-tools <command> [options]", "\nGlobal options:", global,
-            "\nType \"apacheds-tools help <command>\" for help on a command." );
+        formatter.printHelp( getProductCommand() + " <command> [options]", "\nGlobal options:", getGlobal(),
+            "\nType \"" + getProductCommand() + " help <command>\" for help on a command." );
         System.out.println( "\nAvalable commands:" );
-        Iterator it = commands.values().iterator();
+        Iterator it = getCommands().values().iterator();
         System.out.println( "\thelp" );
         while ( it.hasNext() )
         {
             System.out.println( "\t" + it.next() );
         }
 
-        System.out.println( "\nThese apacheds-tools are used to manage the Apache Directory Server." );
-        System.out.println( "For additional information, see http://directory.apache.org/" );
+        System.out.println( "\nThese tools are used to manage " + getProductDisplayName() + "." );
+        System.out.println( "For additional information, see " + getProductUrl() );
     }
 
-    public static final String BANNER = "       _                     _          ____  ____    _____           _      \n"
+    static final String BANNER = "       _                     _          ____  ____    _____           _      \n"
         + "      / \\   _ __   __ _  ___| |__   ___|  _ \\/ ___|  |_   _|__   ___ | |___  \n"
         + "     / _ \\ | '_ \\ / _` |/ __| '_ \\ / _ \\ | | \\___ \\    | |/ _ \\ / _ \\| / __| \n"
         + "    / ___ \\| |_) | (_| | (__| | | |  __/ |_| |___) |   | | (_) | (_) | \\__ \\ \n"
@@ -284,8 +200,92 @@
         + "           |_|                                                               \n";
 
 
-    public static void printBanner()
+    public void printBanner()
+    {
+        System.out.println( getProductBanner() );
+    }
+
+
+    public void setProductCommand( String productCommand )
+    {
+        this.productCommand = productCommand;
+    }
+
+
+    public String getProductCommand()
+    {
+        return productCommand;
+    }
+
+
+    public void setProductVersion( String productVersion )
+    {
+        this.productVersion = productVersion;
+    }
+
+
+    public String getProductVersion()
+    {
+        return productVersion;
+    }
+
+
+    public void setProductDisplayName( String productDisplayName )
+    {
+        this.productDisplayName = productDisplayName;
+    }
+
+
+    public String getProductDisplayName()
+    {
+        return productDisplayName;
+    }
+
+
+    public void setProductUrl( String productUrl )
+    {
+        this.productUrl = productUrl;
+    }
+
+
+    public String getProductUrl()
+    {
+        return productUrl;
+    }
+
+
+    public void setProductBanner( String productBanner )
+    {
+        this.productBanner = productBanner;
+    }
+
+
+    public String getProductBanner()
+    {
+        return productBanner;
+    }
+
+
+    public void setCommands( Map commands )
+    {
+        this.commands = commands;
+    }
+
+
+    public Map getCommands()
+    {
+        return commands;
+    }
+
+
+    public void setGlobal( Options global )
+    {
+        this.global = global;
+    }
+
+
+    public Options getGlobal()
     {
-        System.out.println( BANNER );
+        return global;
     }
 }

Copied: directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/resources/org/apache/directory/server/tools/product.properties (from r377306, directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/resources/org/apache/directory/server/tools/ApachedsTools.properties)
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/resources/org/apache/directory/server/tools/product.properties?p2=directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/resources/org/apache/directory/server/tools/product.properties&p1=directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/resources/org/apache/directory/server/tools/ApachedsTools.properties&r1=377306&r2=377335&rev=377335&view=diff
==============================================================================
--- directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/resources/org/apache/directory/server/tools/ApachedsTools.properties (original)
+++ directory/sandbox/akarasulu/rc1/apacheds/server-tools/src/main/resources/org/apache/directory/server/tools/product.properties Mon Feb 13 02:40:29 2006
@@ -1 +1 @@
-apacheds.tools.version=${pom.version}
+product.version=${pom.version}

Modified: directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/CreateImageCommand.java
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/CreateImageCommand.java?rev=377335&r1=377334&r2=377335&view=diff
==============================================================================
--- directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/CreateImageCommand.java (original)
+++ directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/CreateImageCommand.java Mon Feb 13 02:40:29 2006
@@ -1,5 +1,4 @@
 /*
- *   Copyright 2004 The Apache Software Foundation
  *
  *   Licensed under the Apache License, Version 2.0 (the "License");
  *   you may not use this file except in compliance with the License.
@@ -36,20 +35,25 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$
  */
-public class CreateImageCommand implements MojoCommand
+public class CreateImageCommand extends MojoCommand
 {
     private final Properties filterProperties = new Properties( System.getProperties() );
-    private final ServiceInstallersMojo mymojo;
     private final Target target;
     private InstallationLayout layout;
 
 
-    public CreateImageCommand(ServiceInstallersMojo mojo, Target target)
+    public CreateImageCommand( ServiceInstallersMojo mojo, Target target )
     {
-        this.mymojo = mojo;
+        super( mojo );
         this.target = target;
         initializeFiltering();
     }
+    
+    
+    public Properties getFilterProperties()
+    {
+        return filterProperties;
+    }
 
 
     private void initializeFiltering()
@@ -149,22 +153,6 @@
             }
         }
 
-        // copy over the REQUIRED apacheds-tools.jar file 
-        /** HACK!
-         * @todo clean me up
-         * @see http://issues.apache.org/jira/browse/DIREVE-333 
-         */
-        File tools = new File( layout.getBinDirectory(), "apacheds-tools.jar" );
-        try
-        {
-            FileUtils.copyFile( mymojo.getTools().getFile(), tools );
-        }
-        catch ( IOException e )
-        {
-            throw new MojoFailureException( "Failed to copy apacheds-tools.jar " + mymojo.getTools().getFile()
-                + " into position " + tools );
-        }
-
         // copy over the REQUIRED bootstrapper.jar file 
         try
         {
@@ -241,8 +229,7 @@
             }
             catch ( IOException e )
             {
-                mymojo.getLog().error(
-                    "Failed to copy logger configuration file " + target.getLoggerConfigurationFile()
+                log.error( "Failed to copy logger configuration file " + target.getLoggerConfigurationFile()
                         + " into position " + layout.getLoggerConfigurationFile(), e );
             }
         }
@@ -256,8 +243,7 @@
             }
             catch ( IOException e )
             {
-                mymojo.getLog().error(
-                    "Failed to copy server configuration file " + target.getServerConfigurationFile()
+                log.error( "Failed to copy server configuration file " + target.getServerConfigurationFile()
                         + " into position " + layout.getConfigurationFile(), e );
             }
         }
@@ -325,32 +311,6 @@
             }
         }
 
-        // now copy over the Prunsrv and Prunmgr executables renaming them to the mymojo.getApplicationName() + w for mgr
-        if ( target.getOsFamily().equals( "windows" ) && target.getOsArch().equals( "x86" ) )
-        {
-            File executable = new File( layout.getBinDirectory(), target.getApplication().getName() + ".exe" );
-            try
-            {
-                MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream( "prunsrv.exe" ), executable );
-            }
-            catch ( IOException e )
-            {
-                throw new MojoFailureException( "Failed to copy prunsrv executable file "
-                    + getClass().getResource( "prunsrv.exe" ) + " into position " + executable.getAbsolutePath() );
-            }
-
-            executable = new File( layout.getBinDirectory(), target.getApplication().getName() + "w.exe" );
-            try
-            {
-                MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream( "prunmgr.exe" ), executable );
-            }
-            catch ( IOException e )
-            {
-                throw new MojoFailureException( "Failed to copy prunmgr executable file "
-                    + getClass().getResource( "prunmgr.exe" ) + " into position " + executable.getAbsolutePath() );
-            }
-        }
-
         target.setLibArtifacts( MojoHelperUtils.copyDependencies( mymojo, layout ) );
 
         // -- copy sources if set --
@@ -397,10 +357,11 @@
             }
             catch ( IOException e )
             {
-                mymojo.getLog().error(
-                    "Failed to notice file " + noticeFile.getAbsolutePath() + " into position "
+                log.error( "Failed to notice file " + noticeFile.getAbsolutePath() + " into position "
                         + noticeFileTarget.getAbsolutePath(), e );
             }
         }
+        
+        processPackagedFiles( target, mymojo.getPackagedFiles() );
     }
 }

Modified: directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/MojoCommand.java
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/MojoCommand.java?rev=377335&r1=377334&r2=377335&view=diff
==============================================================================
--- directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/MojoCommand.java (original)
+++ directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/MojoCommand.java Mon Feb 13 02:40:29 2006
@@ -17,8 +17,19 @@
 package org.apache.directory.daemon.installers;
 
 
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.logging.Log;
+import org.codehaus.plexus.util.Expand;
+import org.codehaus.plexus.util.FileUtils;
 
 
 /**
@@ -27,7 +38,121 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$
  */
-public interface MojoCommand
+public abstract class MojoCommand
 {
+    protected final Map dependencyMap;
+    protected final Log log;
+    protected final ServiceInstallersMojo mymojo;
+    
     public abstract void execute() throws MojoExecutionException, MojoFailureException;
+    public abstract Properties getFilterProperties();
+    
+
+    public MojoCommand( ServiceInstallersMojo mymojo )
+    {
+        this.mymojo = mymojo;
+        this.log = mymojo.getLog();
+        this.dependencyMap = new HashMap();
+        
+        for ( Iterator ii = mymojo.getProject().getDependencyArtifacts().iterator(); ii.hasNext(); /* */ )
+        {
+            Artifact artifact = ( Artifact ) ii.next();
+            dependencyMap.put( artifact.getGroupId() + ":" + artifact.getArtifactId(), artifact );
+        }
+    }
+    
+    
+    public void processPackagedFiles( Target target, PackagedFile[] packagedFiles ) throws MojoFailureException
+    {
+        if ( packagedFiles == null )
+        {
+            return;
+        }
+        
+        for ( int ii = 0; ii < packagedFiles.length; ii++ )
+        {
+            File source = null;
+
+            if ( packagedFiles[ii].isDependency() )
+            {
+                Artifact artifact = ( Artifact ) dependencyMap.get( packagedFiles[ii].getSource() );
+                source = artifact.getFile().getAbsoluteFile();
+            }
+            else
+            {
+                source = new File( packagedFiles[ii].getSource() );
+            }
+            
+            if ( ! source.isAbsolute() )
+            {
+                File sourceDirectoryRelative = new File( mymojo.getSourceDirectory(), packagedFiles[ii].getSource() );
+                File baseRelative = new File( mymojo.getProject().getBasedir(), packagedFiles[ii].getSource() );
+                if ( sourceDirectoryRelative.exists() )
+                {
+                    source = sourceDirectoryRelative;
+                }
+                else if ( baseRelative.exists() )
+                {
+                    source = baseRelative;
+                }
+                else if ( ! source.exists() )
+                {
+                    throw new MojoFailureException( "Failed to copy packagedFile. Cannot locate source: " + source );
+                }
+                
+                source = source.getAbsoluteFile();
+            }
+            
+            if ( packagedFiles[ii].isExpandable() )
+            {
+                File dest = new File( target.getLayout().getBaseDirectory(), packagedFiles[ii].getDestinationPath() );
+                String fileExtension = source.getName().substring( source.getName().lastIndexOf( '.' ) );
+                if ( fileExtension.equalsIgnoreCase( ".jar" ) || fileExtension.equalsIgnoreCase( ".zip" ) )
+                {
+                    Expand expand = new Expand();
+                    expand.setSrc( source );
+                    expand.setOverwrite( true );
+                    expand.setDest( dest );
+                    try
+                    {
+                        expand.execute();
+                        return;
+                    }
+                    catch ( Exception e )
+                    {
+                        throw new MojoFailureException( "Failed to expaned packagedFile " + source + ": " + e.getMessage() );
+                    }
+                }
+                
+                throw new MojoFailureException( "Failed to expand packagedFile: " + source 
+                    + ". It does not have a jar or zip extension" );
+            }
+            
+            File dest = new File( target.getLayout().getBaseDirectory(), packagedFiles[ii].getDestinationPath() );
+            if ( packagedFiles[ii].isFiltered() )
+            {
+                try
+                {
+                    MojoHelperUtils.copyAsciiFile( mymojo, getFilterProperties(), source, dest, true );
+                }
+                catch ( IOException e )
+                {
+                    throw new MojoFailureException( "Failed to copy packagedFile from source " + source +
+                        " to destination " + dest );
+                }
+                
+                return;
+            }
+            
+            try
+            {
+                FileUtils.copyFile( source, dest );
+            }
+            catch ( IOException e )
+            {
+                throw new MojoFailureException( "Failed to copy packagedFile from source " + source +
+                    " to destination " + dest );
+            }
+        }
+    }
 }

Added: directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/PackagedFile.java
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/PackagedFile.java?rev=377335&view=auto
==============================================================================
--- directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/PackagedFile.java (added)
+++ directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/PackagedFile.java Mon Feb 13 02:40:29 2006
@@ -0,0 +1,131 @@
+/*
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed 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;
+
+
+
+/**
+ * A file packaged within the installer.
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class PackagedFile
+{
+    /** true if this file is obtained from the local maven repository as a project dependency */
+    private boolean dependency = false;
+    /** true if this file is to be filtered to substitute variables */
+    private boolean filtered = false;
+    /** true if this file is to be made executable */
+    private boolean executable = false;
+    /** true if this file is to be expanded based on its zip or jar extension to the destination */
+    private boolean expandable = false;
+    /** 
+     * the dependency descriptor (groupId:artifactId) if the file is a dependency or a 
+     * path to a file.  If the path is not absolute then it is searched for in the project
+     * first under src/main/installers, then from the ${basedir} down.
+     */
+    private String source;
+    /** the destination file or directory path relative to the installation image base */
+    private String destinationPath;
+    /** the identifier of an installation bundle if this file is part of a bundle */
+    private String installationBundleId;
+    
+    
+    public void setDependency( boolean dependency )
+    {
+        this.dependency = dependency;
+    }
+    
+    
+    public boolean isDependency()
+    {
+        return dependency;
+    }
+
+
+    public void setFiltered( boolean filtered )
+    {
+        this.filtered = filtered;
+    }
+
+
+    public boolean isFiltered()
+    {
+        return filtered;
+    }
+
+
+    public void setExecutable( boolean executable )
+    {
+        this.executable = executable;
+    }
+
+
+    public boolean isExecutable()
+    {
+        return executable;
+    }
+
+
+    public void setExpandable( boolean expand )
+    {
+        this.expandable = expand;
+    }
+
+
+    public boolean isExpandable()
+    {
+        return expandable;
+    }
+
+
+    public void setSource( String sourcePath )
+    {
+        this.source = sourcePath;
+    }
+
+
+    public String getSource()
+    {
+        return source;
+    }
+
+
+    public void setDestinationPath( String destinationPath )
+    {
+        this.destinationPath = destinationPath;
+    }
+
+
+    public String getDestinationPath()
+    {
+        return destinationPath;
+    }
+
+
+    public void setInstallationBundleId( String installationBundleId )
+    {
+        this.installationBundleId = installationBundleId;
+    }
+
+
+    public String getInstallationBundleId()
+    {
+        return installationBundleId;
+    }
+}

Modified: directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/ServiceInstallersMojo.java
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/ServiceInstallersMojo.java?rev=377335&r1=377334&r2=377335&view=diff
==============================================================================
--- directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/ServiceInstallersMojo.java (original)
+++ directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/ServiceInstallersMojo.java Mon Feb 13 02:40:29 2006
@@ -57,14 +57,6 @@
 {
     static final String BOOTSTRAPPER_ARTIFACT_ID = "daemon-bootstrappers";
     static final String BOOTSTRAPPER_GROUP_ID = "org.apache.directory.daemon";
-
-    /** HACK!
-     * @todo clean me up
-     * @see http://issues.apache.org/jira/browse/DIREVE-333 
-     */
-    static final String TOOLS_ARTIFACT_ID = "apacheds-server-tools";
-    static final String TOOLS_GROUP_ID = "org.apache.directory.server";
-
     static final String LOGGER_ARTIFACT_ID = "nlog4j";
     static final String LOGGER_GROUP_ID = "org.slf4j";
     static final String DAEMON_ARTIFACT_ID = "commons-daemon";
@@ -161,6 +153,11 @@
     /**
      * @parameter
      */
+    private PackagedFile[] packagedFiles;
+
+    /**
+     * @parameter
+     */
     private Set excludes;
 
     /** daemon bootstrapper */
@@ -170,11 +167,6 @@
     /** commons-daemon dependency needed by native daemon */
     private Artifact daemon;
 
-    /** HACK!
-     * @todo clean me up
-     * @see http://issues.apache.org/jira/browse/DIREVE-333 
-     */
-    private Artifact tools;
     private File exportedSources;
     private File docsBase;
     private List allTargets;
@@ -476,17 +468,6 @@
                 getLog().info( "Found daemon dependency with version: " + artifact.getVersion() );
                 daemon = artifact;
             }
-
-            /** HACK!
-             * @todo clean me up
-             * @see http://issues.apache.org/jira/browse/DIREVE-333 
-             */
-            else if ( artifact.getArtifactId().equals( TOOLS_ARTIFACT_ID )
-                && artifact.getGroupId().equals( TOOLS_GROUP_ID ) )
-            {
-                getLog().info( "Found tools dependency with version: " + artifact.getVersion() );
-                tools = artifact;
-            }
         }
 
         if ( bootstrapper == null )
@@ -603,12 +584,6 @@
     }
 
 
-    public Artifact getTools()
-    {
-        return tools;
-    }
-
-
     public String getEncoding()
     {
         return this.encoding;
@@ -636,5 +611,17 @@
     public File getSourceDirectory()
     {
         return this.sourceDirectory;
+    }
+
+
+    public void setPackagedFiles( PackagedFile[] packagedFiles )
+    {
+        this.packagedFiles = packagedFiles;
+    }
+
+
+    public PackagedFile[] getPackagedFiles()
+    {
+        return packagedFiles;
     }
 }

Modified: directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/Target.java
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/Target.java?rev=377335&r1=377334&r2=377335&view=diff
==============================================================================
--- directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/Target.java (original)
+++ directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/Target.java Mon Feb 13 02:40:29 2006
@@ -78,7 +78,8 @@
     private List libArtifacts;
 
     private Application application;
-
+    private PackagedFile[] packagedFiles;
+    
 
     public void setApplication( Application application )
     {
@@ -309,5 +310,17 @@
     public String getDocsTargetPath()
     {
         return docsTargetPath;
+    }
+
+
+    public void setPackagedFiles( PackagedFile[] packagedFiles )
+    {
+        this.packagedFiles = packagedFiles;
+    }
+
+
+    public PackagedFile[] getPackagedFiles()
+    {
+        return packagedFiles;
     }
 }

Modified: directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/inno/InnoInstallerCommand.java
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/inno/InnoInstallerCommand.java?rev=377335&r1=377334&r2=377335&view=diff
==============================================================================
--- directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/inno/InnoInstallerCommand.java (original)
+++ directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/inno/InnoInstallerCommand.java Mon Feb 13 02:40:29 2006
@@ -36,6 +36,7 @@
 import org.apache.tools.ant.taskdefs.Execute;
 import org.apache.tools.ant.taskdefs.Touch;
 
+import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.Os;
 
 
@@ -45,10 +46,9 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$
  */
-public class InnoInstallerCommand implements MojoCommand
+public class InnoInstallerCommand extends MojoCommand
 {
     private final Properties filterProperties = new Properties( System.getProperties() );
-    private final ServiceInstallersMojo mymojo;
     private final InnoTarget target;
     private final File innoConfigurationFile;
     private final Log log;
@@ -56,32 +56,35 @@
     private File innoCompiler;
 
 
-    //    private File innoOutputFile;
-
-    public InnoInstallerCommand(ServiceInstallersMojo mymojo, InnoTarget target)
+    public InnoInstallerCommand( ServiceInstallersMojo mymojo, InnoTarget target ) throws MojoFailureException
     {
-        this.mymojo = mymojo;
+        super( mymojo );
         this.target = target;
         this.log = mymojo.getLog();
         File imagesDir = target.getLayout().getBaseDirectory().getParentFile();
         innoConfigurationFile = new File( imagesDir, target.getId() + ".iss" );
+        initializeFiltering();
     }
 
 
+    public Properties getFilterProperties()
+    {
+        return filterProperties;
+    }
+    
+    
     /**
      * Performs the following:
      * <ol>
      *   <li>Bail if target is not for windows or current machine is not windows (no inno compiler)</li>
      *   <li>Filter and copy project supplied inno file into place if it has been specified and exists</li>
-     *   <li>If no inno file exists filter and deposite into place bundled inno template</li>
+     *   <li>If no inno file exists filter and deposite into place bundled inno template & copy procrun executables</li>
      *   <li>Bail if we cannot find the inno compiler executable</li>
      *   <li>Execute inno compiler it on the inno file</li>
      * </ol> 
      */
     public void execute() throws MojoExecutionException, MojoFailureException
     {
-        initializeFiltering();
-
         // -------------------------------------------------------------------
         // Step 1 & 4: do some error checking first for compiler and OS
         // -------------------------------------------------------------------
@@ -154,6 +157,83 @@
                     + innoConfigurationFile );
             }
         }
+
+        // -------------------------------------------------------------------
+        // 3: copy procrun files 
+        // -------------------------------------------------------------------
+
+        // now copy over the Prunsrv and Prunmgr executables renaming them to the mymojo.getApplicationName() + w for mgr
+        if ( target.getOsFamily().equals( "windows" ) && target.getOsArch().equals( "x86" ) )
+        {
+            // ---------------------------------------------------------------
+            // Handle the server process: prunsrv.exe 
+            // ---------------------------------------------------------------
+
+            File executableTarget = new File( target.getLayout().getBinDirectory(), 
+                target.getApplication().getName() + ".exe" );
+            File override = new File( mymojo.getSourceDirectory(), target.getPrunsrvExecutablePath() );
+            if ( override.exists() )
+            {
+                mymojo.getLog().info( "Using procrun prunsrv.exe supplied by project: " + override.getAbsolutePath() );
+                try
+                {
+                    FileUtils.copyFile( override, executableTarget );
+                }
+                catch ( IOException e )
+                {
+                    throw new MojoFailureException( "Failed to copy project supplied prunsrv executable override "
+                        + override.getAbsolutePath() + " into position " + executableTarget.getAbsolutePath() );
+                }
+            }
+            else
+            {
+                try
+                {
+                    MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream( "../prunsrv.exe" ), executableTarget );
+                }
+                catch ( IOException e )
+                {
+                    throw new MojoFailureException( "Failed to copy prunsrv executable file "
+                        + getClass().getResource( "../prunsrv.exe" ) + " into position " + executableTarget.getAbsolutePath() );
+                }
+            }
+            
+
+            // ---------------------------------------------------------------
+            // Handle the manager process: prunmgr.exe 
+            // ---------------------------------------------------------------
+
+            executableTarget = new File( target.getLayout().getBinDirectory(), 
+                target.getApplication().getName() + "w.exe" );
+            override = new File( mymojo.getSourceDirectory(), target.getPrunmgrExecutablePath() );
+            if ( override.exists() )
+            {
+                mymojo.getLog().info( "Using procrun prunmgr.exe supplied by project: " + override.getAbsolutePath() );
+                try
+                {
+                    FileUtils.copyFile( override, executableTarget );
+                }
+                catch ( IOException e )
+                {
+                    throw new MojoFailureException( "Failed to copy project supplied prunmgr executable override "
+                        + override.getAbsolutePath() + " into position " + executableTarget.getAbsolutePath() );
+                }
+            }
+            else
+            {
+                try
+                {
+                    MojoHelperUtils.copyBinaryFile( getClass().getResourceAsStream( "../prunmgr.exe" ), executableTarget );
+                }
+                catch ( IOException e )
+                {
+                    throw new MojoFailureException( "Failed to copy prunmgr executable file "
+                        + getClass().getResource( "../prunmgr.exe" ) + " into position " + executableTarget.getAbsolutePath() );
+                }
+            }
+        }
+
+        processPackagedFiles( target, target.getPackagedFiles() );
 
         Execute task = new Execute();
         System.out.println( "innoCompiler = " + innoCompiler );

Modified: directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/inno/InnoTarget.java
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/inno/InnoTarget.java?rev=377335&r1=377334&r2=377335&view=diff
==============================================================================
--- directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/inno/InnoTarget.java (original)
+++ directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/inno/InnoTarget.java Mon Feb 13 02:40:29 2006
@@ -31,6 +31,8 @@
  */
 public class InnoTarget extends Target
 {
+    private String prunmgrExecutablePath = "src\\main\\installers\\prunmgr.exe";
+    private String prunsrvExecutablePath = "src\\main\\installers\\prunsrv.exe";
     private File innoCompiler = new File( "C:\\Program Files\\Inno Setup 5\\ISCC.exe" );
     private File innoConfigurationFile;
 
@@ -64,5 +66,29 @@
     public File getInnoConfigurationFile()
     {
         return innoConfigurationFile;
+    }
+
+
+    public void setPrunmgrExecutablePath( String prunmgrExecutablePath )
+    {
+        this.prunmgrExecutablePath = prunmgrExecutablePath;
+    }
+
+
+    public String getPrunmgrExecutablePath()
+    {
+        return prunmgrExecutablePath;
+    }
+
+
+    public void setPrunsrvExecutablePath( String prunsrvExecutablePath )
+    {
+        this.prunsrvExecutablePath = prunsrvExecutablePath;
+    }
+
+
+    public String getPrunsrvExecutablePath()
+    {
+        return prunsrvExecutablePath;
     }
 }

Modified: directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/izpack/IzPackInstallerCommand.java
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/izpack/IzPackInstallerCommand.java?rev=377335&r1=377334&r2=377335&view=diff
==============================================================================
--- directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/izpack/IzPackInstallerCommand.java (original)
+++ directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/izpack/IzPackInstallerCommand.java Mon Feb 13 02:40:29 2006
@@ -39,7 +39,7 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$
  */
-public class IzPackInstallerCommand implements MojoCommand
+public class IzPackInstallerCommand extends MojoCommand
 {
     private final static String UNIX_INSTALL = "install_unix.xml";
     private final static String UNIX_SHORTCUTS = "unix_shortcuts.xml";
@@ -49,7 +49,6 @@
     private final static String SHELLLINK_DLL = "ShellLink.dll";
 
     private final Properties filterProperties = new Properties( System.getProperties() );
-    private final ServiceInstallersMojo mymojo;
     private final IzPackTarget target;
     private final InstallationLayout layout;
 
@@ -62,11 +61,11 @@
     private File izPackBase;
 
 
-    public IzPackInstallerCommand(ServiceInstallersMojo mymojo, IzPackTarget target)
+    public IzPackInstallerCommand( ServiceInstallersMojo mymojo, IzPackTarget target )
     {
+        super( mymojo );
         this.target = target;
         this.layout = target.getLayout();
-        this.mymojo = mymojo;
         File imageDir = layout.getBaseDirectory().getParentFile();
         izPackBase = new File( imageDir, target.getId() );
 
@@ -87,10 +86,18 @@
         initializeFiltering();
     }
 
+    
+    public Properties getFilterProperties()
+    {
+        return filterProperties;
+    }
+    
 
     public void execute() throws MojoExecutionException, MojoFailureException
     {
         doIzPackFiles();
+        processPackagedFiles( target, target.getPackagedFiles() );
+
         Project antProject = new Project();
         IzPackTask task = new IzPackTask();
         task.setBasedir( izPackBase.getPath() );
@@ -215,22 +222,6 @@
         }
         else if ( target.getOsFamily().equals( "unix" ) || target.getOsFamily().equals( "mac" ) )
         {
-            /** HACK!
-             * @todo clean me up
-             * @see http://issues.apache.org/jira/browse/DIREVE-333 
-             */
-            File toolsSource = new File( this.mymojo.getSourceDirectory(), "apacheds-tools.sh" );
-            File toolsTarget = new File( layout.getBinDirectory(), "apacheds-tools.sh" );
-            try
-            {
-                MojoHelperUtils.copyAsciiFile( mymojo, filterProperties, toolsSource, toolsTarget, true );
-            }
-            catch ( IOException e )
-            {
-                mymojo.getLog().error(
-                    "Failed to copy apacheds-tools.sh file " + toolsSource + " into position " + toolsTarget, e );
-            }
-
             if ( target.getIzPackInstallFile() != null && target.getIzPackInstallFile().exists() )
             {
                 try

Modified: directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/rpm/RpmInstallerCommand.java
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/rpm/RpmInstallerCommand.java?rev=377335&r1=377334&r2=377335&view=diff
==============================================================================
--- directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/rpm/RpmInstallerCommand.java (original)
+++ directory/sandbox/akarasulu/rc1/daemon/plugin/src/main/java/org/apache/directory/daemon/installers/rpm/RpmInstallerCommand.java Mon Feb 13 02:40:29 2006
@@ -18,7 +18,6 @@
 
 
 import java.io.File;
-import java.io.FileWriter;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
@@ -48,10 +47,9 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$
  */
-public class RpmInstallerCommand implements MojoCommand
+public class RpmInstallerCommand extends MojoCommand
 {
     private final Properties filterProperties = new Properties( System.getProperties() );
-    private final ServiceInstallersMojo mymojo;
     private final RpmTarget target;
     private final File rpmConfigurationFile;
     private final Log log;
@@ -59,16 +57,23 @@
     private File rpmBuilder;
 
 
-    public RpmInstallerCommand(ServiceInstallersMojo mymojo, RpmTarget target)
+    public RpmInstallerCommand(ServiceInstallersMojo mymojo, RpmTarget target) throws MojoFailureException
     {
-        this.mymojo = mymojo;
+        super( mymojo );
         this.target = target;
         this.log = mymojo.getLog();
         File imagesDir = target.getLayout().getBaseDirectory().getParentFile();
         rpmConfigurationFile = new File( imagesDir, target.getId() + ".spec" );
+        initializeFiltering();
     }
 
 
+    public Properties getFilterProperties()
+    {
+        return filterProperties;
+    }
+    
+    
     /**
      * Performs the following:
      * <ol>
@@ -81,8 +86,6 @@
      */
     public void execute() throws MojoExecutionException, MojoFailureException
     {
-        initializeFiltering();
-
         // -------------------------------------------------------------------
         // Step 1 & 4: do some error checking first for builder and OS
         // -------------------------------------------------------------------
@@ -128,33 +131,7 @@
         // Step 2 & 3: copy rpm spec file and filter 
         // -------------------------------------------------------------------
 
-        /** HACK!
-         * @todo clean me up
-         * @see http://issues.apache.org/jira/browse/DIREVE-333 
-         */
         String version = target.getApplication().getVersion().replace( '-', '_' );
-        File toolsTarget = new File( target.getLayout().getBinDirectory(), "apacheds-tools.sh" );
-        StringBuffer buf = new StringBuffer();
-        buf.append( "#!/bin/sh\n\n" );
-        buf.append( "$JAVA_HOME/bin/java -jar " );
-        buf.append( "/usr/local/apacheds-" );
-        buf.append( version );
-        buf.append( "/bin/apacheds-tools.jar $@\n" );
-        FileWriter writer = null;
-        try
-        {
-            writer = new FileWriter( toolsTarget );
-            writer.write( buf.toString() );
-            writer.flush();
-        }
-        catch ( IOException e1 )
-        {
-            throw new MojoFailureException( "Failed to write out apacheds-tools.sh" );
-        }
-        finally
-        {
-            try { writer.close(); } catch( Exception e ){ e.printStackTrace(); };
-        }
         
         try
         {
@@ -209,6 +186,8 @@
                     + rpmConfigurationFile );
             }
         }
+
+        processPackagedFiles( target, target.getPackagedFiles() );
 
         buildSourceTarball();
         String[] cmd = new String[]