A bit of cleanup in the installers
diff --git a/installers-maven-plugin/macos-installer-builder b/installers-maven-plugin/macos-installer-builder
new file mode 160000
index 0000000..89fa0ec
--- /dev/null
+++ b/installers-maven-plugin/macos-installer-builder
@@ -0,0 +1 @@
+Subproject commit 89fa0ec9fcd5c502439089cb4c6e9e6af38be27d
diff --git a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/GenerateMojo.java b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/GenerateMojo.java
index a87888e..27ee904 100644
--- a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/GenerateMojo.java
+++ b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/GenerateMojo.java
@@ -25,17 +25,11 @@
 import java.util.Arrays;
 import java.util.List;
 
-import org.apache.directory.server.installers.archive.ArchiveInstallerCommand;
 import org.apache.directory.server.installers.archive.ArchiveTarget;
-import org.apache.directory.server.installers.bin.BinInstallerCommand;
 import org.apache.directory.server.installers.bin.BinTarget;
-import org.apache.directory.server.installers.deb.DebInstallerCommand;
 import org.apache.directory.server.installers.deb.DebTarget;
-import org.apache.directory.server.installers.macosxpkg.MacOsXPkgInstallerCommand;
 import org.apache.directory.server.installers.macosxpkg.MacOsXPkgTarget;
-import org.apache.directory.server.installers.nsis.NsisInstallerCommand;
 import org.apache.directory.server.installers.nsis.NsisTarget;
-import org.apache.directory.server.installers.rpm.RpmInstallerCommand;
 import org.apache.directory.server.installers.rpm.RpmTarget;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
@@ -122,17 +116,13 @@
     /**
      *  The makensis utility executable.
      */
-    @Parameter(
-            property = "installers.makensis",
-            defaultValue = "/usr/bin/makensis")
+    @Parameter( property = "installers.makensis", defaultValue = "/usr/bin/makensis")
     private File makensisUtility;
 
     /**
      *  The rpmbuild utility executable.
      */
-     @Parameter(
-             property = "installers.rpmbuild",
-             defaultValue = "/usr/bin/rpmbuild")
+     @Parameter(property = "installers.rpmbuild", defaultValue = "/usr/bin/rpmbuild")
     private File rpmbuildUtility;
 
     /** The list containing all the targets */
@@ -170,47 +160,7 @@
             getLog().info( "OS Arch: " + target.getOsArch() );
             getLog().info( "--------------------" );
 
-            // Archive target
-            if ( target instanceof ArchiveTarget )
-            {
-                ArchiveInstallerCommand archiveCmd = new ArchiveInstallerCommand( this, ( ArchiveTarget ) target );
-                archiveCmd.execute();
-            }
-
-            // Bin target
-            if ( target instanceof BinTarget )
-            {
-                BinInstallerCommand binCmd = new BinInstallerCommand( this, ( BinTarget ) target );
-                binCmd.execute();
-            }
-
-            // Deb target
-            if ( target instanceof DebTarget )
-            {
-                DebInstallerCommand debCmd = new DebInstallerCommand( this, ( DebTarget ) target );
-                debCmd.execute();
-            }
-
-            // Mac OS X PKG target
-            if ( target instanceof MacOsXPkgTarget )
-            {
-                MacOsXPkgInstallerCommand pkgCmd = new MacOsXPkgInstallerCommand( this, ( MacOsXPkgTarget ) target );
-                pkgCmd.execute();
-            }
-
-            // NSIS target
-            if ( target instanceof NsisTarget )
-            {
-                NsisInstallerCommand nsisCmd = new NsisInstallerCommand( this, ( NsisTarget ) target );
-                nsisCmd.execute();
-            }
-
-            // RPM target
-            if ( target instanceof RpmTarget )
-            {
-                RpmInstallerCommand rpmCmd = new RpmInstallerCommand( this, ( RpmTarget ) target );
-                rpmCmd.execute();
-            }
+            target.execute( this );
 
             getLog().info( "-------------------------------------------------------" );
         }
@@ -293,6 +243,17 @@
 
 
     /**
+     * Sets the dpkg utility.
+     *
+     * @param dpkgUtility the dpkg utility
+     */
+    public void setDpkgUtility( File dpkgUtility )
+    {
+        this.dpkgUtility = dpkgUtility;
+    }
+
+
+    /**
      * Gets the dpkg utility.
      *
      * @return the dpkg utility
@@ -306,8 +267,7 @@
     /**
      * Gets the makensis utility.
      *
-     * @return
-     *      the dpkg utility
+     * @return the dpkg utility
      */
     public File getMakensisUtility()
     {
@@ -315,8 +275,24 @@
     }
 
 
+    /**
+     * Gets the rpmbuild utility.
+     *
+     * @return the rpmbuild utility
+     */
     public File getRpmbuildUtility()
     {
         return rpmbuildUtility;
     }
+
+
+    /**
+     * Sets the rpmbuild utility.
+     *
+     * @param rpmbuildUtility the rpmbuild utility
+     */
+    public void setRpmbuildUtility( File rpmbuildUtility )
+    {
+        this.rpmbuildUtility = rpmbuildUtility;
+    }
 }
diff --git a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/LinuxInstallerCommand.java b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/LinuxInstallerCommand.java
index 8d8d479..2a3b26a 100644
--- a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/LinuxInstallerCommand.java
+++ b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/LinuxInstallerCommand.java
@@ -51,7 +51,10 @@
 
     /** The default instance name property */
     protected static final String DEFAULT_INSTANCE_NAME_PROP = "default.instance.name";
+    
+    private static final String WRAPPER_BIN_PATH = INSTALLERS_PATH + "wrapper/bin/";
 
+    private static final String WRAPPER_LIB_PATH = INSTALLERS_PATH + "wrapper/lib/lib";
 
     protected LinuxInstallerCommand( GenerateMojo mojo, T target )
     {
@@ -71,26 +74,12 @@
         {
             if ( target.isOsArchI386() || target.isOsArchx86() )
             {
-                mojo.getLog().info( "Copying wrapper files for " + target.getOsArch() );
-                MojoHelperUtils.copyBinaryFile( mojo, INSTALLERS_PATH + "wrapper/bin/wrapper-linux-x86-32",
-                    getClass().getResourceAsStream( INSTALLERS_PATH + "wrapper/bin/wrapper-linux-x86-32" ),
-                    new File( getInstallationLayout().getBinDirectory(), "wrapper" ) );
-                MojoHelperUtils.copyBinaryFile( mojo, INSTALLERS_PATH + "wrapper/lib/libwrapper-linux-x86-32.so",
-                    getClass().getResourceAsStream(
-                        INSTALLERS_PATH + "wrapper/lib/libwrapper-linux-x86-32.so" ),
-                    new File( getInstallationLayout().getLibDirectory(), "libwrapper.so" ) );
+                processWrapperFile( mojo, "wrapper-linux-x86-32" );
             }
             // Linux x86_64 & amd64
             else if ( ( target.isOsArchX86_64() || target.isOsArchAmd64() ) )
             {
-                mojo.getLog().info( "Copying wrapper files for " + target.getOsArch() );
-                MojoHelperUtils.copyBinaryFile( mojo, INSTALLERS_PATH + "wrapper/bin/wrapper-linux-x86-64",
-                    getClass().getResourceAsStream(
-                        INSTALLERS_PATH + "wrapper/bin/wrapper-linux-x86-64" ),
-                    new File( getInstallationLayout().getBinDirectory(), "wrapper" ) );
-                MojoHelperUtils.copyBinaryFile( mojo, INSTALLERS_PATH + "wrapper/lib/libwrapper-linux-x86-64.so",
-                    getClass().getResourceAsStream( INSTALLERS_PATH + "wrapper/lib/libwrapper-linux-x86-64.so" ),
-                    new File( getInstallationLayout().getLibDirectory(), "libwrapper.so" ) );
+                processWrapperFile( mojo, "wrapper-linux-x86-64" );
             }
             else
             {
@@ -102,4 +91,18 @@
             throw new MojoFailureException( "Failed to copy Tanuki binary files to lib and bin directories" );
         }
     }
+    
+    
+    private void processWrapperFile( GenerateMojo mojo, String arch ) throws IOException
+    {
+        mojo.getLog().info( "Copying wrapper files for " + target.getOsArch() );
+        
+        MojoHelperUtils.copyBinaryFile( mojo, WRAPPER_BIN_PATH + arch,
+            getClass().getResourceAsStream( WRAPPER_BIN_PATH + arch ),
+            new File( getInstallationLayout().getBinDirectory(), "wrapper" ) );
+        
+        MojoHelperUtils.copyBinaryFile( mojo, WRAPPER_LIB_PATH + arch + ".so",
+            getClass().getResourceAsStream( WRAPPER_LIB_PATH + arch + ".so" ),
+            new File( getInstallationLayout().getLibDirectory(), "libwrapper.so" ) );
+    }
 }
diff --git a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/MojoHelperUtils.java b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/MojoHelperUtils.java
index 039a542..197bfe3 100644
--- a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/MojoHelperUtils.java
+++ b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/MojoHelperUtils.java
@@ -51,7 +51,6 @@
  */
 public final class MojoHelperUtils
 {
-
     private MojoHelperUtils()
     {
     }
@@ -66,10 +65,6 @@
         {
             IOUtil.copy( from, out );
         }
-        finally
-        {
-            IOUtil.close( from );
-        }
     }
 
 
@@ -204,12 +199,9 @@
     /**
      * Recursively copy files from the given source to the given destination.
      *
-     * @param src
-     *      the source
-     * @param dest
-     *      the destination
-     * @throws IOException
-     *      If an error occurs when copying a file
+     * @param src the source
+     * @param dest the destination
+     * @throws IOException If an error occurs when copying a file
      */
     public static void copyFiles( File src, File dest ) throws IOException
     {
diff --git a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/Target.java b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/Target.java
index b97f1d4..6e5a245 100644
--- a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/Target.java
+++ b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/Target.java
@@ -19,8 +19,8 @@
  */
 package org.apache.directory.server.installers;
 
-
-
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
 
 /**
  * The superclass for all installer targets.
@@ -29,38 +29,14 @@
  */
 public abstract class Target
 {
-    /** The OS name for 'Any' */
-    public static final String OS_NAME_ANY = "Any";
-    /** The OS name for 'Linux' */
-    public static final String OS_NAME_LINUX = "Linux";
-    /** The OS name for 'Mac OS X' */
-    public static final String OS_NAME_MAC_OS_X = "Mac OS X";
-    /** The OS name for 'Solaris' */
-    public static final String OS_NAME_SOLARIS = "Solaris";
-    /** The OS name for 'Windows' */
-    public static final String OS_NAME_WINDOWS = "Windows";
-
-    /** The OS architecture for 'amd64' */
-    public static final String OS_ARCH_AMD64 = "amd64";
-    /** The OS architecture for 'Any' */
-    public static final String OS_ARCH_ANY = "Any";
-    /** The OS architecture for 'i386' */
-    public static final String OS_ARCH_I386 = "i386";
-    /** The OS architecture for 'sparc' */
-    public static final String OS_ARCH_SPARC = "sparc";
-    /** The OS architecture for 'x86' */
-    public static final String OS_ARCH_X86 = "x86";
-    /** The OS architecture for 'x86_64' */
-    public static final String OS_ARCH_X86_64 = "x86_64";
-
     /** The id */
     private String id;
 
     /** The name of the operating system */
-    private String osName;
+    private TargetName osName;
 
     /** The architecture of the operating system */
-    private String osArch;
+    private TargetArch osArch;
 
     /** The final name of the installer file */
     private String finalName;
@@ -115,7 +91,7 @@
      *
      * @return the OS architecture
      */
-    public String getOsArch()
+    public TargetArch getOsArch()
     {
         return osArch;
     }
@@ -128,6 +104,17 @@
      */
     public void setOsArch( String osArch )
     {
+        this.osArch = TargetArch.valueOf( osArch );
+    }
+
+
+    /**
+     * Sets the OS architecture.
+     *
+     * @param osArch the OS architecture
+     */
+    public void setOsArch( TargetArch osArch )
+    {
         this.osArch = osArch;
     }
 
@@ -137,7 +124,7 @@
      *
      * @return the OS name
      */
-    public String getOsName()
+    public TargetName getOsName()
     {
         return osName;
     }
@@ -150,6 +137,17 @@
      */
     public void setOsName( String osName )
     {
+        this.osName = TargetName.valueOf( osName );
+    }
+
+
+    /**
+     * Sets the OS name.
+     *
+     * @param osName the OS name
+     */
+    public void setOsName( TargetName osName )
+    {
         this.osName = osName;
     }
 
@@ -161,7 +159,7 @@
      */
     public boolean isOsNameLinux()
     {
-        return Target.OS_NAME_LINUX.equalsIgnoreCase( osName );
+        return osName == TargetName.OS_NAME_LINUX;
     }
 
 
@@ -172,7 +170,7 @@
      */
     public boolean isOsNameMacOSX()
     {
-        return Target.OS_NAME_MAC_OS_X.equalsIgnoreCase( osName );
+        return osName == TargetName.OS_NAME_MAC_OS_X;
     }
 
 
@@ -183,7 +181,7 @@
      */
     public boolean isOsNameSolaris()
     {
-        return Target.OS_NAME_SOLARIS.equalsIgnoreCase( osName );
+        return osName == TargetName.OS_NAME_SOLARIS;
     }
 
 
@@ -194,7 +192,7 @@
      */
     public boolean isOsNameWindows()
     {
-        return Target.OS_NAME_WINDOWS.equalsIgnoreCase( osName );
+        return osName == TargetName.OS_NAME_WINDOWS;
     }
 
 
@@ -205,7 +203,7 @@
      */
     public boolean isOsArchAmd64()
     {
-        return Target.OS_ARCH_AMD64.equalsIgnoreCase( osArch );
+        return osArch == TargetArch.OS_ARCH_AMD64;
     }
 
 
@@ -216,7 +214,7 @@
      */
     public boolean isOsArchI386()
     {
-        return Target.OS_ARCH_I386.equalsIgnoreCase( osArch );
+        return osArch == TargetArch.OS_ARCH_I386;
     }
 
 
@@ -227,7 +225,7 @@
      */
     public boolean isOsArchSparc()
     {
-        return Target.OS_ARCH_SPARC.equalsIgnoreCase( osArch );
+        return osArch == TargetArch.OS_ARCH_SPARC;
     }
 
 
@@ -238,7 +236,7 @@
      */
     public boolean isOsArchx86()
     {
-        return Target.OS_ARCH_X86.equalsIgnoreCase( osArch );
+        return osArch == TargetArch.OS_ARCH_X86;
     }
 
 
@@ -249,6 +247,9 @@
      */
     public boolean isOsArchX86_64()
     {
-        return Target.OS_ARCH_X86_64.equalsIgnoreCase( osArch );
+        return osArch == TargetArch.OS_ARCH_X86_64;
     }
+    
+    
+    public abstract void execute( GenerateMojo mojo ) throws MojoExecutionException, MojoFailureException;
 }
diff --git a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/TargetArch.java b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/TargetArch.java
new file mode 100644
index 0000000..468e99c
--- /dev/null
+++ b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/TargetArch.java
@@ -0,0 +1,68 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+package org.apache.directory.server.installers;
+
+/**
+ * The various installer architectures
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public enum TargetArch
+{
+    /** The OS architecture for 'amd64' */
+    OS_ARCH_AMD64( "amd64" ),
+    
+    /** The OS architecture for 'Any' */
+    OS_ARCH_ANY( "Any" ),
+    
+    /** The OS architecture for 'i386' */
+    OS_ARCH_I386( "i386" ),
+    
+    /** The OS architecture for 'sparc' */
+    OS_ARCH_SPARC( "sparc" ),
+    
+    /** The OS architecture for 'x86' */
+    OS_ARCH_X86( "x86" ),
+    
+    /** The OS architecture for 'x86_64' */
+    OS_ARCH_X86_64( "x86_64" );
+    
+    /** The internal name */
+    private String value;
+    
+    /**
+     * 
+     * Creates a new instance of TargetArch.
+     *
+     * @param value The interned value
+     */
+    TargetArch( String value ) 
+    {
+        this.value = value;
+    }
+
+    /**
+     * @return The interned valuue
+     */
+    public String getValue()
+    {
+        return value;
+    }
+}
diff --git a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/TargetName.java b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/TargetName.java
new file mode 100644
index 0000000..58a90e6
--- /dev/null
+++ b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/TargetName.java
@@ -0,0 +1,44 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+package org.apache.directory.server.installers;
+
+
+/**
+ * The various target types
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public enum TargetName
+{
+    /** The OS name for 'Any' */
+    OS_NAME_ANY,
+        
+    /** The OS name for 'Linux' */
+    OS_NAME_LINUX,
+    
+    /** The OS name for 'Mac OS X' */
+    OS_NAME_MAC_OS_X,
+    
+    /** The OS name for 'Solaris' */
+    OS_NAME_SOLARIS,
+    
+    /** The OS name for 'Windows' */
+    OS_NAME_WINDOWS;
+}
diff --git a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/archive/ArchiveTarget.java b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/archive/ArchiveTarget.java
index 0000347..8c29d50 100644
--- a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/archive/ArchiveTarget.java
+++ b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/archive/ArchiveTarget.java
@@ -20,7 +20,12 @@
 package org.apache.directory.server.installers.archive;
 
 
+import org.apache.directory.server.installers.GenerateMojo;
 import org.apache.directory.server.installers.Target;
+import org.apache.directory.server.installers.TargetArch;
+import org.apache.directory.server.installers.TargetName;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
 
 
 /**
@@ -49,16 +54,15 @@
      */
     public ArchiveTarget()
     {
-        setOsName( Target.OS_NAME_ANY );
-        setOsArch( Target.OS_ARCH_ANY );
+        setOsName( TargetName.OS_NAME_ANY );
+        setOsArch( TargetArch.OS_ARCH_ANY );
     }
 
 
     /**
      * Gets the archive type.
      *
-     * @return
-     *      the archive type
+     * @return the archive type
      */
     public String getArchiveType()
     {
@@ -75,4 +79,14 @@
     {
         this.archiveType = archiveType;
     }
+    
+    
+    /**
+     * {@inheritDoc}
+     */
+    public void execute( GenerateMojo mojo ) throws MojoExecutionException, MojoFailureException
+    {
+        ArchiveInstallerCommand archiveCmd = new ArchiveInstallerCommand( mojo, this );
+        archiveCmd.execute();
+    }
 }
diff --git a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/bin/BinInstallerCommand.java b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/bin/BinInstallerCommand.java
index 0001d7b..c32164f 100644
--- a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/bin/BinInstallerCommand.java
+++ b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/bin/BinInstallerCommand.java
@@ -23,11 +23,11 @@
 import java.io.File;
 import java.io.IOException;
 
+import org.apache.commons.lang3.SystemUtils;
 import org.apache.directory.server.i18n.I18n;
 import org.apache.directory.server.installers.GenerateMojo;
 import org.apache.directory.server.installers.LinuxInstallerCommand;
 import org.apache.directory.server.installers.MojoHelperUtils;
-import org.apache.directory.server.installers.Target;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.tools.ant.taskdefs.Execute;
@@ -198,9 +198,7 @@
         }
 
         // Verifying the currently used OS to build the installer is Linux or Mac OS X
-        String osName = System.getProperty( OS_NAME );
-
-        if ( !( Target.OS_NAME_LINUX.equalsIgnoreCase( osName ) || Target.OS_NAME_MAC_OS_X.equalsIgnoreCase( osName ) ) )
+        if ( !SystemUtils.IS_OS_MAC && !SystemUtils.IS_OS_LINUX )
         {
             log.warn( "Bin package installer can only be built on a machine running Linux or Mac OS X!" );
             log.warn( "The build will continue, generation of this target is skipped." );
diff --git a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/bin/BinTarget.java b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/bin/BinTarget.java
index 3906ee5..16ed1e4 100644
--- a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/bin/BinTarget.java
+++ b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/bin/BinTarget.java
@@ -20,7 +20,12 @@
 package org.apache.directory.server.installers.bin;
 
 
+import org.apache.directory.server.installers.GenerateMojo;
 import org.apache.directory.server.installers.Target;
+import org.apache.directory.server.installers.TargetArch;
+import org.apache.directory.server.installers.TargetName;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
 
 
 /**
@@ -38,7 +43,17 @@
      */
     public BinTarget()
     {
-        setOsName( Target.OS_NAME_LINUX );
-        setOsArch( Target.OS_ARCH_X86 );
+        setOsName( TargetName.OS_NAME_LINUX );
+        setOsArch( TargetArch.OS_ARCH_X86 );
+    }
+    
+    
+    /**
+     * {@inheritDoc}
+     */
+    public void execute( GenerateMojo mojo ) throws MojoExecutionException, MojoFailureException
+    {
+        BinInstallerCommand binCmd = new BinInstallerCommand( mojo, this );
+        binCmd.execute();
     }
 }
\ No newline at end of file
diff --git a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/deb/DebInstallerCommand.java b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/deb/DebInstallerCommand.java
index c9f919e..9afe5f0 100644
--- a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/deb/DebInstallerCommand.java
+++ b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/deb/DebInstallerCommand.java
@@ -22,17 +22,18 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 
+import org.apache.commons.lang3.SystemUtils;
 import org.apache.directory.server.i18n.I18n;
 import org.apache.directory.server.installers.GenerateMojo;
 import org.apache.directory.server.installers.LinuxInstallerCommand;
 import org.apache.directory.server.installers.MojoHelperUtils;
-import org.apache.directory.server.installers.Target;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.tools.ant.taskdefs.Execute;
 
-
 /**
  * Deb Installer command for Linux.
  *
@@ -190,7 +191,7 @@
                 "-b",
                 getTargetDirectory().getName() + "/" + getDebDirectory().getName(),
                 finalName
-        };
+            };
 
         StringBuilder antTask = new StringBuilder();
 
@@ -238,9 +239,7 @@
         }
 
         // Verifying the currently used OS to build the installer is Linux or Mac OS X
-        String osName = System.getProperty( OS_NAME );
-
-        if ( !( Target.OS_NAME_LINUX.equalsIgnoreCase( osName ) || Target.OS_NAME_MAC_OS_X.equalsIgnoreCase( osName ) ) )
+        if ( !SystemUtils.IS_OS_MAC && !SystemUtils.IS_OS_LINUX )
         {
             log.warn( "Deb package installer can only be built on a machine running Linux or Mac OS X!" );
             log.warn( "The build will continue, generation of this target is skipped." );
@@ -248,13 +247,21 @@
             return false;
         }
 
-        // Verifying the dpkg utility exists
+        // The -D configuration overloads the  pom configuration
+        // Verifying the dpkg utility exists in the pom.xml file
         if ( !mojo.getDpkgUtility().exists() )
         {
-            log.warn( "Cannot find dpkg utility at this location: " + mojo.getDpkgUtility() );
-            log.warn( "The build will continue, but please check the location of your dpkg utility." );
-
-            return false;
+            if ( !Files.exists( Paths.get( target.getDpkgUtility() ) ) )
+            {
+                log.warn( "Cannot find dpkg utility at this location: " + target.getDpkgUtility() );
+                log.warn( "The build will continue, but please check the location of your dpkg utility." );
+    
+                return false;
+            }
+            else
+            {
+                mojo.setDpkgUtility( new File( target.getDpkgUtility() ) );
+            }
         }
 
         return true;
@@ -283,7 +290,7 @@
             }
         }
 
-        filterProperties.put( ARCH_PROP, target.getOsArch() );
+        filterProperties.put( ARCH_PROP, target.getOsArch().getValue() );
         filterProperties.put( INSTALLATION_DIRECTORY_PROP, OPT_APACHEDS_DIR + mojo.getProject().getVersion() );
         filterProperties.put( INSTANCES_DIRECTORY_PROP, VAR_LIB_APACHEDS_DIR + mojo.getProject().getVersion() );
         filterProperties.put( USER_PROP, APACHEDS );
diff --git a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/deb/DebTarget.java b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/deb/DebTarget.java
index 85f454e..3e9f829 100644
--- a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/deb/DebTarget.java
+++ b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/deb/DebTarget.java
@@ -20,7 +20,12 @@
 package org.apache.directory.server.installers.deb;
 
 
+import org.apache.directory.server.installers.GenerateMojo;
 import org.apache.directory.server.installers.Target;
+import org.apache.directory.server.installers.TargetArch;
+import org.apache.directory.server.installers.TargetName;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
 
 
 /**
@@ -33,12 +38,35 @@
  */
 public class DebTarget extends Target
 {
+    /** The tool to use to generate DEB files */
+    private String dpkgUtility = "/usr/bin/dpkg";
+    
+    public String getDpkgUtility()
+    {
+        return dpkgUtility;
+    }
+
+    public void setDpkgUtility( String dpkgUtility )
+    {
+        this.dpkgUtility = dpkgUtility;
+    }
+
     /**
      * Creates a new instance of DebTarget, default to X86_64.
      */
     public DebTarget()
     {
-        setOsName( Target.OS_NAME_LINUX );
-        setOsArch( Target.OS_ARCH_X86_64 );
+        setOsName( TargetName.OS_NAME_LINUX );
+        setOsArch( TargetArch.OS_ARCH_X86_64 );
+    }
+    
+    
+    /**
+     * {@inheritDoc}
+     */
+    public void execute( GenerateMojo mojo ) throws MojoExecutionException, MojoFailureException
+    {
+        DebInstallerCommand debCmd = new DebInstallerCommand( mojo, this );
+        debCmd.execute();
     }
 }
\ No newline at end of file
diff --git a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/macosxpkg/MacOsXPkgInstallerCommand.java b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/macosxpkg/MacOsXPkgInstallerCommand.java
index d49b218..7ae24d2 100644
--- a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/macosxpkg/MacOsXPkgInstallerCommand.java
+++ b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/macosxpkg/MacOsXPkgInstallerCommand.java
@@ -23,12 +23,13 @@
 import java.io.File;
 import java.io.IOException;
 
+import org.apache.commons.lang3.SystemUtils;
 import org.apache.directory.server.core.api.InstanceLayout;
 import org.apache.directory.server.i18n.I18n;
 import org.apache.directory.server.installers.AbstractMojoCommand;
 import org.apache.directory.server.installers.GenerateMojo;
 import org.apache.directory.server.installers.MojoHelperUtils;
-import org.apache.directory.server.installers.Target;
+import org.apache.directory.server.installers.TargetName;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.tools.ant.taskdefs.Execute;
@@ -517,7 +518,7 @@
     private boolean verifyTarget()
     {
         // Verifying the target is Mac OS X
-        if ( !target.getOsName().equalsIgnoreCase( Target.OS_NAME_MAC_OS_X ) )
+        if ( target.getOsName() != TargetName.OS_NAME_MAC_OS_X )
         {
             log.warn( "Mac OS X PKG installer can only be targeted for Mac OS X platform!" );
             log.warn( "The build will continue, but please check the platform of this installer target." );
@@ -525,7 +526,7 @@
         }
 
         // Verifying the currently used OS is Mac OS X
-        if ( !Target.OS_NAME_MAC_OS_X.equalsIgnoreCase( System.getProperty( OS_NAME ) ) )
+        if ( !SystemUtils.IS_OS_MAC )
         {
             log.warn( "Mac OS X PKG installer can only be built on a machine running Mac OS X!" );
             log.warn( "The build will continue, generation of this target is skipped." );
diff --git a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/macosxpkg/MacOsXPkgTarget.java b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/macosxpkg/MacOsXPkgTarget.java
index 531251c..8a1a6d6 100644
--- a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/macosxpkg/MacOsXPkgTarget.java
+++ b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/macosxpkg/MacOsXPkgTarget.java
@@ -20,7 +20,12 @@
 package org.apache.directory.server.installers.macosxpkg;
 
 
+import org.apache.directory.server.installers.GenerateMojo;
 import org.apache.directory.server.installers.Target;
+import org.apache.directory.server.installers.TargetArch;
+import org.apache.directory.server.installers.TargetName;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
 
 
 /**
@@ -42,7 +47,17 @@
      */
     public MacOsXPkgTarget()
     {
-        setOsName( Target.OS_NAME_MAC_OS_X );
-        setOsArch( Target.OS_ARCH_X86_64 );
+        setOsName( TargetName.OS_NAME_MAC_OS_X );
+        setOsArch( TargetArch.OS_ARCH_X86_64 );
+    }
+    
+    
+    /**
+     * {@inheritDoc}
+     */
+    public void execute( GenerateMojo mojo ) throws MojoExecutionException, MojoFailureException
+    {
+        MacOsXPkgInstallerCommand pkgCmd = new MacOsXPkgInstallerCommand( mojo, this );
+        pkgCmd.execute();
     }
 }
diff --git a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/nsis/NsisInstallerCommand.java b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/nsis/NsisInstallerCommand.java
index 3344718..dd6ecc1 100644
--- a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/nsis/NsisInstallerCommand.java
+++ b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/nsis/NsisInstallerCommand.java
@@ -27,7 +27,7 @@
 import org.apache.directory.server.installers.AbstractMojoCommand;
 import org.apache.directory.server.installers.GenerateMojo;
 import org.apache.directory.server.installers.MojoHelperUtils;
-import org.apache.directory.server.installers.Target;
+import org.apache.directory.server.installers.TargetName;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.tools.ant.taskdefs.Execute;
@@ -237,8 +237,8 @@
      */
     private boolean verifyTarget()
     {
-        // Verifying the target is Mac OS X
-        if ( !target.getOsName().equalsIgnoreCase( Target.OS_NAME_WINDOWS ) )
+        // Verifying the target is Windows
+        if ( target.getOsName() != TargetName.OS_NAME_LINUX )
         {
             log.warn( "NSIS installer can only be targeted for Windows platform!" );
             log.warn( "The build will continue, but please check the the platform of this installer target." );
diff --git a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/nsis/NsisTarget.java b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/nsis/NsisTarget.java
index 8f8e66d..797b780 100644
--- a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/nsis/NsisTarget.java
+++ b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/nsis/NsisTarget.java
@@ -20,7 +20,12 @@
 package org.apache.directory.server.installers.nsis;
 
 
+import org.apache.directory.server.installers.GenerateMojo;
 import org.apache.directory.server.installers.Target;
+import org.apache.directory.server.installers.TargetArch;
+import org.apache.directory.server.installers.TargetName;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
 
 
 /**
@@ -35,7 +40,17 @@
      */
     public NsisTarget()
     {
-        setOsName( Target.OS_NAME_WINDOWS );
-        setOsArch( Target.OS_ARCH_X86 );
+        setOsName( TargetName.OS_NAME_WINDOWS );
+        setOsArch( TargetArch.OS_ARCH_X86 );
+    }
+    
+    
+    /**
+     * {@inheritDoc}
+     */
+    public void execute( GenerateMojo mojo ) throws MojoExecutionException, MojoFailureException
+    {
+        NsisInstallerCommand nsisCmd = new NsisInstallerCommand( mojo, this );
+        nsisCmd.execute();
     }
 }
diff --git a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/rpm/RpmInstallerCommand.java b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/rpm/RpmInstallerCommand.java
index 4db8f6b..2808d4a 100644
--- a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/rpm/RpmInstallerCommand.java
+++ b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/rpm/RpmInstallerCommand.java
@@ -22,13 +22,15 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.util.Properties;
 
+import org.apache.commons.lang3.SystemUtils;
 import org.apache.directory.server.i18n.I18n;
 import org.apache.directory.server.installers.GenerateMojo;
 import org.apache.directory.server.installers.LinuxInstallerCommand;
 import org.apache.directory.server.installers.MojoHelperUtils;
-import org.apache.directory.server.installers.Target;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.codehaus.plexus.util.FileUtils;
@@ -101,50 +103,11 @@
         try
         {
             // Create Rpm directories (BUILD, RPMS, SOURCES, SPECS & SRPMS)
-            File rpmBuild = new File( getTargetDirectory(), BUILD );
-
-            if ( !rpmBuild.mkdirs() )
-            {
-                Exception e = new IOException( I18n.err( I18n.ERR_112_COULD_NOT_CREATE_DIRECTORY, rpmBuild ) );
-                log.error( e.getLocalizedMessage() );
-                throw new MojoFailureException( e.getMessage() );
-            }
-
-            File rpmRpms = new File( getTargetDirectory(), RPMS );
-
-            if ( !rpmRpms.mkdirs() )
-            {
-                Exception e = new IOException( I18n.err( I18n.ERR_112_COULD_NOT_CREATE_DIRECTORY, rpmRpms ) );
-                log.error( e.getLocalizedMessage() );
-                throw new MojoFailureException( e.getMessage() );
-            }
-
-            File rpmSources = new File( getTargetDirectory(), SOURCES );
-
-            if ( !rpmSources.mkdirs() )
-            {
-                Exception e = new IOException( I18n.err( I18n.ERR_112_COULD_NOT_CREATE_DIRECTORY, rpmSources ) );
-                log.error( e.getLocalizedMessage() );
-                throw new MojoFailureException( e.getMessage() );
-            }
-
-            File rpmSpecs = new File( getTargetDirectory(), SPECS );
-
-            if ( !rpmSpecs.mkdirs() )
-            {
-                Exception e = new IOException( I18n.err( I18n.ERR_112_COULD_NOT_CREATE_DIRECTORY, rpmSpecs ) );
-                log.error( e.getLocalizedMessage() );
-                throw new MojoFailureException( e.getMessage() );
-            }
-
-            File rpmSrpms = new File( getTargetDirectory(), SRPMS );
-
-            if ( !rpmSrpms.mkdirs() )
-            {
-                Exception e = new IOException( I18n.err( I18n.ERR_112_COULD_NOT_CREATE_DIRECTORY, rpmSrpms ) );
-                log.error( e.getLocalizedMessage() );
-                throw new MojoFailureException( e.getMessage() );
-            }
+            makeDir( BUILD );
+            makeDir( RPMS );
+            makeDir( SOURCES );
+            makeDir( SPECS );
+            makeDir( SRPMS );
 
             // Creating the installation and instance layouts
             createLayouts();
@@ -180,10 +143,10 @@
         MojoHelperUtils.exec( new String[]
             {
                 mojo.getRpmbuildUtility().getAbsolutePath(),
-                "--quiet",
+                "-vv",
                 "-ba",
                 "--target",
-                target.getOsArch() + "-linux",
+                target.getOsArch().getValue() + "-linux",
                 "--define",
                 "_topdir " + getTargetDirectory(),
                 "--define",
@@ -216,6 +179,19 @@
             throw new MojoFailureException( "Failed to copy generated Rpm installer file." );
         }
     }
+    
+    
+    private void makeDir( String directory ) throws MojoFailureException
+    {
+        File file = new File( getTargetDirectory(), directory );
+
+        if ( !file.mkdirs() )
+        {
+            Exception e = new IOException( I18n.err( I18n.ERR_112_COULD_NOT_CREATE_DIRECTORY, file ) );
+            log.error( e.getLocalizedMessage() );
+            throw new MojoFailureException( e.getMessage() );
+        }
+    }
 
 
     /**
@@ -236,21 +212,28 @@
         }
 
         // Verifying the currently used OS to build the installer is Linux or Mac OS X
-        String osName = System.getProperty( OS_NAME );
-
-        if ( !( Target.OS_NAME_LINUX.equalsIgnoreCase( osName ) || Target.OS_NAME_MAC_OS_X.equalsIgnoreCase( osName ) ) )
+        if ( !SystemUtils.IS_OS_MAC && !SystemUtils.IS_OS_LINUX )
         {
             log.warn( "Rpm package installer can only be built on a machine running Linux or Mac OS X!" );
             log.warn( "The build will continue, generation of this target is skipped." );
             return false;
         }
 
-        // Verifying the rpmbuild utility exists
+        // The -D configuration overloads the  pom configuration
+        // Verifying the rpmbuild utility exists in the pom.xml file
         if ( !mojo.getRpmbuildUtility().exists() )
         {
-            log.warn( "Cannot find rpmbuild utility at this location: " + mojo.getRpmbuildUtility() );
-            log.warn( "The build will continue, but please check the location of your rpmbuild utility." );
-            return false;
+            if ( !Files.exists( Paths.get( target.getRpmbuildUtility() ) ) )
+            {
+                log.warn( "Cannot find rpmbuild utility at this location: " + target.getRpmbuildUtility() );
+                log.warn( "The build will continue, but please check the location of your rpmbuild utility." );
+    
+                return false;
+            }
+            else
+            {
+                mojo.setRpmbuildUtility( new File( target.getRpmbuildUtility() ) );
+            }
         }
 
         return true;
diff --git a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/rpm/RpmTarget.java b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/rpm/RpmTarget.java
index d3a25c7..202391f 100644
--- a/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/rpm/RpmTarget.java
+++ b/installers-maven-plugin/src/main/java/org/apache/directory/server/installers/rpm/RpmTarget.java
@@ -20,7 +20,12 @@
 package org.apache.directory.server.installers.rpm;
 
 
+import org.apache.directory.server.installers.GenerateMojo;
 import org.apache.directory.server.installers.Target;
+import org.apache.directory.server.installers.TargetArch;
+import org.apache.directory.server.installers.TargetName;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
 
 
 /**
@@ -30,12 +35,35 @@
  */
 public class RpmTarget extends Target
 {
+    /** The tool to use to generate RPM files */
+    private String rpmbuildUtility = "/usr/bin/rpmbuild";
+    
+    public String getRpmbuildUtility()
+    {
+        return rpmbuildUtility;
+    }
+
+    public void setRpmbuildUtility( String rpmbuildUtility )
+    {
+        this.rpmbuildUtility = rpmbuildUtility;
+    }
+
     /**
      * Creates a new instance of RpmTarget.
      */
     public RpmTarget()
     {
-        setOsName( Target.OS_NAME_LINUX );
-        setOsArch( Target.OS_ARCH_I386 );
+        setOsName( TargetName.OS_NAME_LINUX );
+        setOsArch( TargetArch.OS_ARCH_I386 );
+    }
+    
+    
+    /**
+     * {@inheritDoc}
+     */
+    public void execute( GenerateMojo mojo ) throws MojoExecutionException, MojoFailureException
+    {
+        RpmInstallerCommand rpmCmd = new RpmInstallerCommand( mojo, this );
+        rpmCmd.execute();
     }
 }
diff --git a/installers/pom.xml b/installers/pom.xml
index 1735a81..dc927b3 100644
--- a/installers/pom.xml
+++ b/installers/pom.xml
@@ -70,13 +70,13 @@
                 <macOsXPkgTarget>
                   <id>apacheds-macosx-32bit</id>
                   <finalName>apacheds-${project.version}-32bit.dmg</finalName>
-                  <osArch>x86</osArch>
+                  <osArch>OS_ARCH_X86</osArch>
                 </macOsXPkgTarget>
                 
                 <macOsXPkgTarget>
                   <id>apacheds-macosx-64bit</id>
                   <finalName>apacheds-${project.version}-64bit.dmg</finalName>
-                  <osArch>x86_64</osArch>
+                  <osArch>OS_ARCH_X86_64</osArch>
                 </macOsXPkgTarget>
               </macOsXPkgTargets>
     
@@ -108,13 +108,13 @@
                 <binTarget>
                  <id>apacheds-bin-installer-32bit</id>
                   <finalName>apacheds-${project.version}-32bit.bin</finalName>
-                  <osArch>x86</osArch>
+                  <osArch>OS_ARCH_X86</osArch>
                 </binTarget>
                 
                 <binTarget>
                   <id>apacheds-bin-installer-64bit</id>
                   <finalName>apacheds-${project.version}-64bit.bin</finalName>
-                  <osArch>x86_64</osArch>
+                  <osArch>OS_ARCH_X86_64</osArch>
                 </binTarget>
               </binTargets>
               
@@ -123,13 +123,15 @@
                 <debTarget>
                   <id>apacheds-debian-i386</id>
                   <finalName>apacheds-${project.version}-i386.deb</finalName>
-                  <osArch>i386</osArch>
+                  <osArch>OS_ARCH_I386</osArch>
+                  <dpkgUtility>/usr/local/bin/dpkg</dpkgUtility>
                 </debTarget>
                 
                 <debTarget>
                  <id>apacheds-debian-amd64</id>
                   <finalName>apacheds-${project.version}-amd64.deb</finalName>
-                  <osArch>amd64</osArch>
+                  <osArch>OS_ARCH_AMD64</osArch>
+                  <dpkgUtility>/usr/local/bin/dpkg</dpkgUtility>
                 </debTarget>
               </debTargets>
               
@@ -138,13 +140,13 @@
                 <rpmTarget>
                   <id>apacheds-rpm-i386</id>
                   <finalName>apacheds-${project.version}-i386.rpm</finalName>
-                  <osArch>i386</osArch>
+                  <osArch>OS_ARCH_I386</osArch>
                 </rpmTarget>
                 
                 <rpmTarget>
                   <id>apacheds-rpm-x86_64</id>
                   <finalName>apacheds-${project.version}-x86_64.rpm</finalName>
-                  <osArch>x86_64</osArch>
+                  <osArch>OS_ARCH_X86_64</osArch>
                 </rpmTarget>
               </rpmTargets>
             </configuration>
@@ -183,15 +185,17 @@
               <!-- Targets for Linux .deb installer package -->
               <debTargets>
                 <debTarget>
-                 <id>apacheds-debian-i386</id>
+                  <id>apacheds-debian-i386</id>
                   <finalName>apacheds-${project.version}-i386.deb</finalName>
-                  <osArch>i386</osArch>
+                  <osArch>OS_ARCH_I386</osArch>
+                  <dpkgUtility>/usr/local/bin/dpkg</dpkgUtility>
                 </debTarget>
                 
                 <debTarget>
-                 <id>apacheds-debian-amd64</id>
+                  <id>apacheds-debian-amd64</id>
                   <finalName>apacheds-${project.version}-amd64.deb</finalName>
-                  <osArch>amd64</osArch>
+                  <osArch>OS_ARCH_AMD64</osArch>
+                  <dpkgUtility>/usr/local/bin/dpkg</dpkgUtility>
                 </debTarget>
               </debTargets>
             </configuration>
@@ -232,13 +236,15 @@
                 <rpmTarget>
                   <id>apacheds-rpm-i386</id>
                   <finalName>apacheds-${project.version}-i386.rpm</finalName>
-                  <osArch>i386</osArch>
+                  <osArch>OS_ARCH_I386</osArch>
+                  <rpmbuildUtility>/usr/local/bin/rpmbuild</rpmbuildUtility>
                 </rpmTarget>
                 
                 <rpmTarget>
                   <id>apacheds-rpm-x86_64</id>
                   <finalName>apacheds-${project.version}-x86_64.rpm</finalName>
-                  <osArch>x86_64</osArch>
+                  <osArch>OS_ARCH_X86_64</osArch>
+                  <rpmbuildUtility>/usr/local/bin/rpmbuild</rpmbuildUtility>
                 </rpmTarget>
               </rpmTargets>
             </configuration>
@@ -320,13 +326,13 @@
                 <macOsXPkgTarget>
                   <id>apacheds-macosx-32bit</id>
                   <finalName>apacheds-${project.version}-32bit.dmg</finalName>
-                  <osArch>x86</osArch>
+                  <osArch>OS_ARCH_X86</osArch>
                 </macOsXPkgTarget>
                 
                 <macOsXPkgTarget>
                   <id>apacheds-macosx-64bit</id>
                   <finalName>apacheds-${project.version}-64bit.dmg</finalName>
-                  <osArch>x86_64</osArch>
+                  <osArch>OS_ARCH_X86_64</osArch>
                 </macOsXPkgTarget>
               </macOsXPkgTargets>
             </configuration>
@@ -367,13 +373,13 @@
                 <binTarget>
                  <id>apacheds-bin-installer-32bit</id>
                   <finalName>apacheds-${project.version}-32bit.bin</finalName>
-                  <osArch>x86</osArch>
+                  <osArch>OS_ARCH_X86</osArch>
                 </binTarget>
                 
                 <binTarget>
                   <id>apacheds-bin-installer-64bit</id>
                   <finalName>apacheds-${project.version}-64bit.bin</finalName>
-                  <osArch>x86_64</osArch>
+                  <osArch>OS_ARCH_X86_64</osArch>
                 </binTarget>
               </binTargets>
             </configuration>