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/01/26 07:54:23 UTC

svn commit: r372465 - in /directory/trunks/apacheds/standalone/installers/plugin/src/main: java/org/apache/directory/server/standalone/installers/ java/org/apache/directory/server/standalone/installers/inno/ java/org/apache/directory/server/standalone/...

Author: akarasulu
Date: Wed Jan 25 22:54:17 2006
New Revision: 372465

URL: http://svn.apache.org/viewcvs?rev=372465&view=rev
Log:
started working on inno setup installer

Modified:
    directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/CreateImageCommand.java
    directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/MojoHelperUtils.java
    directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/ServiceInstallersMojo.java
    directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/Target.java
    directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/inno/InnoInstallerCommand.java
    directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/inno/InnoTarget.java
    directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/izpack/IzPackInstallerCommand.java
    directory/trunks/apacheds/standalone/installers/plugin/src/main/resources/org/apache/directory/server/standalone/installers/inno/install.iss

Modified: directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/CreateImageCommand.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/CreateImageCommand.java?rev=372465&r1=372464&r2=372465&view=diff
==============================================================================
--- directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/CreateImageCommand.java (original)
+++ directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/CreateImageCommand.java Wed Jan 25 22:54:17 2006
@@ -73,6 +73,7 @@
         // make the layout directories
         File dir = new File( mymojo.getOutputDirectory(), target.getId() );
         layout = new InstallationLayout( dir );
+        target.setLayout( layout );
         layout.mkdirs();
 
 
@@ -306,12 +307,6 @@
             }
         }
         
-        MojoHelperUtils.copyDependencies( mymojo, layout );
-    }
-    
-    
-    InstallationLayout getLayout()
-    {
-        return layout;
+        target.setLibArtifacts( MojoHelperUtils.copyDependencies( mymojo, layout ) );
     }
 }

Modified: directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/MojoHelperUtils.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/MojoHelperUtils.java?rev=372465&r1=372464&r2=372465&view=diff
==============================================================================
--- directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/MojoHelperUtils.java (original)
+++ directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/MojoHelperUtils.java Wed Jan 25 22:54:17 2006
@@ -27,7 +27,9 @@
 import java.io.OutputStreamWriter;
 import java.io.Reader;
 import java.io.Writer;
+import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Properties;
 
 import org.apache.directory.server.standalone.daemon.InstallationLayout;
@@ -121,8 +123,9 @@
     }
 
 
-    public static void copyDependencies( ServiceInstallersMojo mymojo, InstallationLayout layout ) throws MojoFailureException
+    public static List copyDependencies( ServiceInstallersMojo mymojo, InstallationLayout layout ) throws MojoFailureException
     {
+        List libArtifacts = new ArrayList();
         Artifact artifact = null;
         Iterator artifacts = mymojo.getProject().getRuntimeArtifacts().iterator();
         while ( artifacts.hasNext() )
@@ -152,6 +155,7 @@
                 try
                 {
                     FileUtils.copyFileToDirectory( artifact.getFile(), layout.getLibDirectory() );
+                    libArtifacts.add( artifact );
                     mymojo.getLog().info( "===>>> included ===>>> " + key );
                 }
                 catch ( IOException e )
@@ -161,5 +165,7 @@
                 }
             }
         }
+        
+        return libArtifacts;
     }
 }

Modified: directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/ServiceInstallersMojo.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/ServiceInstallersMojo.java?rev=372465&r1=372464&r2=372465&view=diff
==============================================================================
--- directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/ServiceInstallersMojo.java (original)
+++ directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/ServiceInstallersMojo.java Wed Jan 25 22:54:17 2006
@@ -23,6 +23,7 @@
 import java.util.List;
 import java.util.Set;
 
+import org.apache.directory.server.standalone.installers.inno.InnoInstallerCommand;
 import org.apache.directory.server.standalone.installers.inno.InnoTarget;
 import org.apache.directory.server.standalone.installers.izpack.IzPackInstallerCommand;
 import org.apache.directory.server.standalone.installers.izpack.IzPackTarget;
@@ -205,16 +206,26 @@
             Target target = ( Target ) allTargets.get( ii );
             
             // create the installation image first
-            CreateImageCommand imgCommand = new CreateImageCommand( this, target );
-            imgCommand.execute();
+            CreateImageCommand imgCmd = new CreateImageCommand( this, target );
+            imgCmd.execute();
             
-            // generate the installer
+            // ---------------------------------------------------------------
+            // Generate all installers
+            // ---------------------------------------------------------------
+
             if ( target instanceof IzPackTarget )
             {
                 IzPackInstallerCommand izPackCmd = null;
-                izPackCmd = new IzPackInstallerCommand( this, ( IzPackTarget ) target, imgCommand.getLayout() );
+                izPackCmd = new IzPackInstallerCommand( this, ( IzPackTarget ) target );
                 izPackCmd.execute();
             }
+
+//            if ( target instanceof InnoTarget )
+//            {
+//                InnoInstallerCommand innoCmd = null;
+//                innoCmd = new InnoInstallerCommand( this, ( InnoTarget ) target );
+//                innoCmd.execute();
+//            }
         }
     }
     

Modified: directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/Target.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/Target.java?rev=372465&r1=372464&r2=372465&view=diff
==============================================================================
--- directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/Target.java (original)
+++ directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/Target.java Wed Jan 25 22:54:17 2006
@@ -18,8 +18,11 @@
 
 
 import java.io.File;
+import java.util.List;
 import java.util.Locale;
 
+import org.apache.directory.server.standalone.daemon.InstallationLayout;
+
 
 /**
  * The superclass for all installer targets.
@@ -70,6 +73,8 @@
     private File serverConfigurationFile;
     private File bootstrapperConfiguraitonFile;
     
+    private InstallationLayout layout;
+    private List libArtifacts;
     
     public void setOsName( String osName )
     {
@@ -252,5 +257,29 @@
     public String getApplicationEmail()
     {
         return applicationEmail;
+    }
+
+
+    public void setLayout(InstallationLayout layout)
+    {
+        this.layout = layout;
+    }
+
+
+    public InstallationLayout getLayout()
+    {
+        return layout;
+    }
+
+
+    public void setLibArtifacts(List libArtifacts)
+    {
+        this.libArtifacts = libArtifacts;
+    }
+
+
+    public List getLibArtifacts()
+    {
+        return libArtifacts;
     }
 }

Modified: directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/inno/InnoInstallerCommand.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/inno/InnoInstallerCommand.java?rev=372465&r1=372464&r2=372465&view=diff
==============================================================================
--- directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/inno/InnoInstallerCommand.java (original)
+++ directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/inno/InnoInstallerCommand.java Wed Jan 25 22:54:17 2006
@@ -17,9 +17,21 @@
 package org.apache.directory.server.standalone.installers.inno;
 
 
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
 import org.apache.directory.server.standalone.installers.MojoCommand;
+import org.apache.directory.server.standalone.installers.MojoHelperUtils;
+import org.apache.directory.server.standalone.installers.ServiceInstallersMojo;
+
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.logging.Log;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.taskdefs.Touch;
+import org.codehaus.plexus.util.Os;
 
 
 /**
@@ -30,7 +42,121 @@
  */
 public class InnoInstallerCommand implements 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;
+    
+    private File innoCompiler;
+    
+    
+    public InnoInstallerCommand( ServiceInstallersMojo mymojo, InnoTarget target )
+    {
+        this.mymojo = mymojo;
+        this.target = target;
+        this.log = mymojo.getLog();
+        File imagesDir = target.getLayout().getBaseDirectory().getParentFile();
+        innoConfigurationFile = new File( imagesDir, target.getId() + ".iss" );
+        initializeFiltering();
+    }
+    
+    
+    /**
+     * 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>Copy over the procrun executables with proper names for the application</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
     {
+        // -------------------------------------------------------------------
+        // Do some error checking first
+        // -------------------------------------------------------------------
+        
+        if ( ! target.getOsFamily().equals( "windows" ) )
+        {
+            throw new MojoFailureException( "Inno installers can only be targeted for windows platforms!" );
+        }
+        
+        if ( ! Os.isFamily( "windows" ) ) 
+        {
+            log.warn( "Inno target " + target.getId() + " cannot be built on a non-windows machine!" );
+        }
+        
+        if ( ! target.getInnoCompiler().exists() )
+        {
+            throw new MojoFailureException( "Cannot find Inno compiler: " + target.getInnoCompiler() );
+        }
+        
+        // -------------------------------------------------------------------
+        // Copy over the procrun binaries with new app names
+        // -------------------------------------------------------------------
+        
+        File prunsrvFile = new File( target.getLayout().getBinDirectory(), mymojo.getApplicationName() + ".exe" );
+        InputStream prunsrvIn = getClass().getResourceAsStream( "../prunsrv.exe" );
+        
+        try
+        {
+            MojoHelperUtils.copyBinaryFile( prunsrvIn, prunsrvFile );
+        }
+        catch ( IOException e )
+        {
+            throw new MojoFailureException( "Failed to extract bundled prunsrv.exe " + 
+                getClass().getResource( "../prunsrv.exe" ) + " into image destingation " + target.getLayout().getBinDirectory() );
+        }
+    }
+
+
+    private void initializeFiltering() 
+    {
+        filterProperties.putAll( mymojo.getProject().getProperties() );
+        filterProperties.put( "app" , mymojo.getApplicationName() );
+        
+        char firstChar = mymojo.getApplicationName().charAt( 0 );
+        firstChar = Character.toUpperCase( firstChar );
+        filterProperties.put( "app.displayname", firstChar + mymojo.getApplicationName().substring( 1 ) );
+
+        if ( mymojo.getApplicationVersion() != null )
+        {
+            filterProperties.put( "app.version", mymojo.getApplicationVersion() );
+        }
+        
+        if ( mymojo.getApplicationDescription() != null )
+        {
+            filterProperties.put( "app.init.message", mymojo.getApplicationDescription() );
+        }
+
+        // -------------------------------------------------------------------
+        // WARNING: hard code values just to for testing
+        // -------------------------------------------------------------------
+        
+        filterProperties.put( "app.author" , target.getApplicationAuthor() );
+        filterProperties.put( "app.email" , target.getApplicationEmail() );
+        filterProperties.put( "app.url" , target.getApplicationUrl() );
+        filterProperties.put( "app.java.version" , target.getApplicationJavaVersion() );
+        filterProperties.put( "app.license" , target.getLayout().getLicenseFile().getPath() );
+
+        if ( ! target.getLayout().getReadmeFile().exists() )
+        {
+            touchFile( target.getLayout().getReadmeFile() );
+        }
+        filterProperties.put( "app.readme" , target.getLayout().getReadmeFile().getPath() );
+        filterProperties.put( "app.icon" , target.getLayout().getLogoIconFile().getPath() );
+        filterProperties.put( "image.basedir", target.getLayout().getBaseDirectory().getPath() );
+    }
+    
+    
+    static void touchFile( File file )
+    {
+        Touch touch = new Touch();
+        touch.setProject( new Project() );
+        touch.setFile( file );
+        touch.execute();
     }
 }

Modified: directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/inno/InnoTarget.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/inno/InnoTarget.java?rev=372465&r1=372464&r2=372465&view=diff
==============================================================================
--- directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/inno/InnoTarget.java (original)
+++ directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/inno/InnoTarget.java Wed Jan 25 22:54:17 2006
@@ -16,6 +16,8 @@
  */
 package org.apache.directory.server.standalone.installers.inno;
 
+import java.io.File;
+
 import org.apache.directory.server.standalone.installers.Target;
 
 
@@ -27,5 +29,17 @@
  */
 public class InnoTarget extends Target
 {
+    private File innoCompiler = new File( "C:\\Program Files\\Inno Setup 5\\ISCC.exe" );
+
+
+    public void setInnoCompiler(File innoCompiler)
+    {
+        this.innoCompiler = innoCompiler;
+    }
 
+    
+    public File getInnoCompiler()
+    {
+        return innoCompiler;
+    }
 }

Modified: directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/izpack/IzPackInstallerCommand.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/izpack/IzPackInstallerCommand.java?rev=372465&r1=372464&r2=372465&view=diff
==============================================================================
--- directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/izpack/IzPackInstallerCommand.java (original)
+++ directory/trunks/apacheds/standalone/installers/plugin/src/main/java/org/apache/directory/server/standalone/installers/izpack/IzPackInstallerCommand.java Wed Jan 25 22:54:17 2006
@@ -62,10 +62,10 @@
     private File izPackBase;
     
     
-    public IzPackInstallerCommand( ServiceInstallersMojo mymojo, IzPackTarget target, InstallationLayout layout )
+    public IzPackInstallerCommand( ServiceInstallersMojo mymojo, IzPackTarget target )
     {
         this.target = target;
-        this.layout = layout;
+        this.layout = target.getLayout();
         this.mymojo = mymojo;
         File imageDir = layout.getBaseDirectory().getParentFile();
         izPackBase = new File( imageDir, target.getId() );

Modified: directory/trunks/apacheds/standalone/installers/plugin/src/main/resources/org/apache/directory/server/standalone/installers/inno/install.iss
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/standalone/installers/plugin/src/main/resources/org/apache/directory/server/standalone/installers/inno/install.iss?rev=372465&r1=372464&r2=372465&view=diff
==============================================================================
--- directory/trunks/apacheds/standalone/installers/plugin/src/main/resources/org/apache/directory/server/standalone/installers/inno/install.iss (original)
+++ directory/trunks/apacheds/standalone/installers/plugin/src/main/resources/org/apache/directory/server/standalone/installers/inno/install.iss Wed Jan 25 22:54:17 2006
@@ -1,18 +1,18 @@
-; Script generated by the Inno Setup Script Wizard.
+; Script generated by the Apache Maven 2 Installers Plugin
 ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
 
-#define MyAppName "Triplesec"
-#define MyAppVerName "Triplesec 0.6"
-#define MyAppVersion "0.6"
-#define MyAppPublisher "Solarsis Group, LLC."
-#define MyAppURL "http://triplesec.safehaus.org"
-#define MyAppExeName "triplesecw.exe"
-#define MyAppCompanyName "Solarsis Group LLC."
-#define MyAppDescription "Triplesec Server"
-#define MyAppCopyright "Copyright (c) 2005 Solarsis Group LLC."
+#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 the path where server main is checked out on your system
-#define SourceBase "C:\cygwin\home\akarasulu\projects\safehaus\triplesec\trunk"
+; Set this constant to the path where your installation image resides
+#define SourceBase "${image.basedir}"
 
 [Setup]
 AppName={#MyAppName}
@@ -21,13 +21,13 @@
 AppPublisherURL={#MyAppURL}
 AppSupportURL={#MyAppURL}
 AppUpdatesURL={#MyAppURL}
-DefaultDirName={pf}\triplesec-0.6
+DefaultDirName={pf}\${app}
 DefaultGroupName={#MyAppName}
 
-LicenseFile={#SourceBase}\installers\bin\win32\resources\safehaus-license.rtf
-OutputDir=C:\Documents and Settings\akarasulu\Desktop
-OutputBaseFilename=triplesec-server-0.6-setup
-SetupIconFile={#SourceBase}\installers\bin\win32\resources\safehaus.ico
+LicenseFile={#SourceBase}\${app.license}
+OutputDir=${installer.output.directory}
+OutputBaseFilename=${app}-${version}-setup
+SetupIconFile={#SourceBase}\${app.icon}
 Compression=lzma
 SolidCompression=true
 VersionInfoVersion={#MyAppVersion}
@@ -44,25 +44,34 @@
 Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
 
 [Files]
-Source: {#SourceBase}\installers\bin\win32\triplesecw.exe; DestDir: {app}\bin; Tasks: ; Languages: 
-Source: {#SourceBase}\installers\bin\win32\triplesec.exe; DestDir: {app}\bin
-Source: {#SourceBase}\main\target\triplesec-main-0.6.jar; DestDir: {app}\bin; DestName: bootstrap.jar
-; NOTE: Don't use "Flags: ignoreversion" on any shared system files
-Source: {#SourceBase}\main\conf\server.ldif; DestDir: {app}\conf; DestName: server.ldif; Tasks: ; Languages: 
-Source: {#SourceBase}\main\conf\log4j.properties; DestDir: {app}\conf; DestName: log4j.properties
-Source: {#SourceBase}\main\conf\server.xml; DestDir: {app}\conf; DestName: server.xml
+; 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\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}
+; lib directory targets
+${app.lib.jars}
 
 [Icons]
-Name: {group}\Service Settings; Filename: {app}\bin\triplesecw.exe; Parameters: //ES//Triplesec; IconIndex: 0
-Name: {userdesktop}\{#MyAppName}; Filename: {app}\bin\triplesecw.exe; Tasks: desktopicon; Parameters: //ES//Triplesec; IconIndex: 0; Languages: 
-Name: {group}\Tray Monitor; Filename: {app}\bin\triplesecw.exe; Parameters: //MS//Triplesec; IconIndex: 0
-Name: {group}\Test Service; Filename: {app}\bin\triplesec.exe; IconIndex: 0
+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\triplesec.exe; WorkingDir: {app}\bin; Tasks: ; Languages: ; Parameters: "//IS//Triplesec --Description=""Triplesec Service 0.6 - http://triplesec.safehaus.org"" --DisplayName=Triplesec --Install=""{app}\bin\triplesec.exe"" --StartMode=jvm --StopMode=jvm --StartClass=org.safehaus.triplesec.Server --StartParams=""{app}#start"" --StopClass=org.safehaus.triplesec.Server --StopParams=""{app}#stop"" --Startup=manual --JvmOptions=""-Dtriplesec.home={app} -Djava.endorsed.dirs={app}\common\endorsed -Djava.io.tmpdir={app}\temp"" --Classpath=""{app}\bin\bootstrap.jar;{app}\conf"" --LogPath=""{app}\logs"" --LogPrefix=service.log --LogLevel=debug --StdOutput=""{app}\logs\stdout.log"" --StdError=""{app}\logs\stderr.log"""; Flags: runhidden
-Filename: {app}\bin\triplesecw.exe; Parameters: //ES//Triplesec; WorkingDir: {app}\bin; Flags: postinstall nowait; Description: Runs the configuration manager for the triplesec windows service
+Filename: {app}\bin\${app}.exe; WorkingDir: {app}\bin; Tasks: ; Languages: ; Parameters: "//IS//${app} --Description=""${app} Service ${app.version} - ${app.url}"" --DisplayName=${app} --Install=""{app}\bin\${app}.exe"" --StartMode=jvm --StopMode=jvm --StartClass=org.apache.directory.server.standalone.daemon.Bootstrapper --StartParams=""{app}#start"" --StopClass=org.apache.directory.server.standalone.daemon.Bootstrapper --StopParams=""{app}#stop"" --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}; WorkingDir: {app}\bin; Flags: postinstall nowait; Description: Runs the configuration manager for the ${app} windows service
 
 [Registry]
 
 [UninstallRun]
-Filename: {app}\bin\triplesec.exe; WorkingDir: {app}\bin; Parameters: //DS//Triplesec
+Filename: {app}\bin\${app}.exe; WorkingDir: {app}\bin; Parameters: //DS//${app}