You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pa...@apache.org on 2010/09/27 17:43:56 UTC
svn commit: r1001788 - in
/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main:
java/org/apache/directory/daemon/installers/archive/
java/org/apache/directory/daemon/installers/bin/
resources/org/apache/directory/daemon/install...
Author: pamarcelot
Date: Mon Sep 27 15:43:55 2010
New Revision: 1001788
URL: http://svn.apache.org/viewvc?rev=1001788&view=rev
Log:
Made the binary installer build again (not fully functionnal yet).
Modified:
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/archive/ArchiveInstallerCommand.java
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinInstallerCommand.java
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinTarget.java
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/bootstrap.sh
directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/createInstaller.sh
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/archive/ArchiveInstallerCommand.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/archive/ArchiveInstallerCommand.java?rev=1001788&r1=1001787&r2=1001788&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/archive/ArchiveInstallerCommand.java (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/archive/ArchiveInstallerCommand.java Mon Sep 27 15:43:55 2010
@@ -215,8 +215,7 @@ public class ArchiveInstallerCommand ext
&& !archiveType.equalsIgnoreCase( "tar.gz" ) && !archiveType.equalsIgnoreCase( "tar.bz2" ) )
{
log.warn( "Archive type is unknwown (" + archiveType + ")!" );
- log.warn( "The build will continue, but please check the archive type of this installer " );
- log.warn( "target" );
+ log.warn( "The build will continue, but please check the archive type of this installer target" );
return false;
}
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinInstallerCommand.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinInstallerCommand.java?rev=1001788&r1=1001787&r2=1001788&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinInstallerCommand.java (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinInstallerCommand.java Mon Sep 27 15:43:55 2010
@@ -42,6 +42,7 @@ public class BinInstallerCommand extends
{
/** The sh utility executable */
private File shUtility = new File( "/bin/sh" );
+
/** The final name of the installer */
private String finalName;
@@ -71,25 +72,64 @@ public class BinInstallerCommand extends
*/
public void execute() throws MojoExecutionException, MojoFailureException
{
- // TODO FIXME
- // // Verifying the target is macosx
- // if ( !target.getOsFamily().equals( "linux" ) )
- // {
- // log.warn( "Bin installer can only be targeted for linux platforms!" );
- // log.warn( "The build will continue, but please check the the platform of this installer " );
- // log.warn( "target" );
- // return;
- // }
- //
- // // Verifying the hdiutil utility exists
- // if ( !shUtility.exists() )
- // {
- // log.warn( "Cannot find sh utility at this location: " + shUtility );
- // log.warn( "The build will continue, but please check the location of your sh " );
- // log.warn( "utility." );
- // return;
- // }
- //
+ // Verifying the target
+ if ( !verifyTarget() )
+ {
+ return;
+ }
+
+ log.info( " Creating Bin installer..." );
+
+ // Creating the target directory
+ getTargetDirectory().mkdirs();
+
+ log.info( " Copying Bin installer files" );
+
+ try
+ {
+ // Creating the installation layout and copying files to it
+ copyCommonFiles( mojo );
+
+ File binShDirectory = new File( getBinInstallerDirectory(), "sh" );
+ binShDirectory.mkdirs();
+
+ // Copying shell script utilities for the installer
+ MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "bootstrap.sh" ),
+ new File( getBinInstallerDirectory(), "bootstrap.sh" ), true );
+ MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream(
+ "createInstaller.sh" ), new File( getBinInstallerDirectory(), "createInstaller.sh" ), true );
+ MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "functions.sh" ),
+ new File( binShDirectory, "functions.sh" ), false );
+ MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "install.sh" ),
+ new File( binShDirectory, "install.sh" ), false );
+ MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "variables.sh" ),
+ new File( binShDirectory, "variables.sh" ), false );
+
+ }
+ catch ( Exception e )
+ {
+ log.error( e.getMessage() );
+ throw new MojoFailureException( "Failed to copy bin installer files." );
+ }
+
+ // Generating the Bin
+ log.info( " Generating Bin Installer" );
+ Execute createBinTask = new Execute();
+ String[] cmd = new String[]
+ { shUtility.getAbsolutePath(), "createInstaller.sh" };
+ createBinTask.setCommandline( cmd );
+ createBinTask.setWorkingDirectory( getBinInstallerDirectory() );
+ try
+ {
+ createBinTask.execute();
+ }
+ catch ( IOException e )
+ {
+ log.error( e.getMessage() );
+ throw new MojoFailureException( "Failed while trying to generate the Bin: " + e.getMessage() );
+ }
+
+ //
// File baseDirectory = target.getLayout().getInstallationDirectory();
// File imagesDirectory = baseDirectory.getParentFile();
//
@@ -108,12 +148,13 @@ public class BinInstallerCommand extends
// try
// {
// copyFiles( baseDirectory, binRootFolderServerDirectory );
+ //
// }
// catch ( IOException e )
// {
// log.error( e.getMessage() );
// throw new MojoFailureException( "Failed to copy image (" + target.getLayout().getInstallationDirectory()
- // + ") to the Bin directory (" + binRootFolderDirectory + ")" );
+ // + ") to the Bin directory (" + binRootFolderDirectory + ")" );
// }
//
// // Create instance and sh directory
@@ -127,35 +168,36 @@ public class BinInstallerCommand extends
// {
// // Copying the apacheds.conf file to the server installation layout
// MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "apacheds.conf" ),
- // new File( binRootFolderServerDirectory, "conf/apacheds.conf" ), false );
+ // new File( binRootFolderServerDirectory, "conf/apacheds.conf" ), false );
//
// // Copying the default instance apacheds.conf file
// MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream(
- // "apacheds-default.conf" ), new File( binRootFolderInstanceDirectory, "apacheds.conf" ), false );
+ // "apacheds-default.conf" ), new File( binRootFolderInstanceDirectory, "apacheds.conf" ), false );
//
// // Copying the log4j.properties file for the default instance
// MojoHelperUtils.copyAsciiFile( mojo, filterProperties, new File( binRootFolderServerDirectory,
- // "conf/log4j.properties" ), new File( binRootFolderInstanceDirectory, "log4j.properties" ), false );
+ // "conf/log4j.properties" ), new File( binRootFolderInstanceDirectory, "log4j.properties" ),
+ // false );
//
// // Copying the server.xml file for the default instance
// MojoHelperUtils.copyAsciiFile( mojo, filterProperties, new File( binRootFolderServerDirectory,
- // "conf/server.xml" ), new File( binRootFolderInstanceDirectory, "server.xml" ), false );
+ // "conf/server.xml" ), new File( binRootFolderInstanceDirectory, "server.xml" ), false );
//
// // Copying the apacheds-init script file for the default instance
// MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "apacheds-init" ),
- // new File( binRootFolderInstanceDirectory, "apacheds-init" ), true );
+ // new File( binRootFolderInstanceDirectory, "apacheds-init" ), true );
//
// // Copying shell script utilities for the installer
// MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "bootstrap.sh" ),
- // new File( binDirectory, "bootstrap.sh" ), true );
+ // new File( binDirectory, "bootstrap.sh" ), true );
// MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream(
- // "createInstaller.sh" ), new File( binDirectory, "createInstaller.sh" ), true );
+ // "createInstaller.sh" ), new File( binDirectory, "createInstaller.sh" ), true );
// MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "functions.sh" ),
- // new File( binShDirectory, "functions.sh" ), false );
+ // new File( binShDirectory, "functions.sh" ), false );
// MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "install.sh" ),
- // new File( binShDirectory, "install.sh" ), false );
+ // new File( binShDirectory, "install.sh" ), false );
// MojoHelperUtils.copyAsciiFile( mojo, filterProperties, getClass().getResourceAsStream( "variables.sh" ),
- // new File( binShDirectory, "variables.sh" ), false );
+ // new File( binShDirectory, "variables.sh" ), false );
//
// // Removing the redundant server.xml file (see DIRSERVER-1112)
// new File( binRootFolderServerDirectory, "conf/server.xml" ).delete();
@@ -170,7 +212,7 @@ public class BinInstallerCommand extends
// log.info( "Generating Bin Installer" );
// Execute createBinTask = new Execute();
// String[] cmd = new String[]
- // { shUtility.getAbsolutePath(), "createInstaller.sh" };
+ // { shUtility.getAbsolutePath(), "createInstaller.sh" };
// createBinTask.setCommandline( cmd );
// createBinTask.setSpawn( true );
// createBinTask.setWorkingDirectory( binDirectory );
@@ -183,36 +225,37 @@ public class BinInstallerCommand extends
// log.error( e.getMessage() );
// throw new MojoFailureException( "Failed while trying to generate the Bin: " + e.getMessage() );
// }
- //
- // log.info( "Bin Installer generated at " + new File( imagesDirectory, finalName ) );
+
+ log.info( "Bin Installer generated at " + new File( getTargetDirectory(), finalName ) );
}
/**
- * Recursively copy files from the given source to the given destination.
+ * Verifies the target.
*
- * @param src
- * the source
- * @param dest
- * the destination
- * @throws IOException
- * If an error occurs when copying a file
+ * @return
+ * <code>true</code> if the target is correct,
+ * <code>false</code> if not.
*/
- public void copyFiles( File src, File dest ) throws IOException
+ private boolean verifyTarget()
{
- if ( src.isDirectory() )
+ // Verifying the target is Linux
+ if ( !target.isOsNameLinux() )
{
- dest.mkdirs();
-
- for ( File file : src.listFiles() )
- {
- copyFiles( file, new File( dest, file.getName() ) );
- }
+ log.warn( "Bin installer can only be targeted for Linux platforms!" );
+ log.warn( "The build will continue, but please check the the platform of this installer target" );
+ return false;
}
- else
+
+ // Verifying the sh utility exists
+ if ( !shUtility.exists() )
{
- FileUtils.copyFile( src, dest );
+ log.warn( "Cannot find sh utility at this location: " + shUtility );
+ log.warn( "The build will continue, but please check the location of your sh utility." );
+ return false;
}
+
+ return true;
}
@@ -234,16 +277,32 @@ public class BinInstallerCommand extends
}
+ /**
+ * Gets the directory for the Bin installer.
+ *
+ * @return
+ * the directory for the Bin installer.
+ */
+ private File getBinInstallerDirectory()
+ {
+ return new File( getTargetDirectory(), "bin" );
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
public File getInstallationDirectory()
{
- // TODO Auto-generated method stub
- return null;
+ return new File( getBinInstallerDirectory(), "server" );
}
+ /**
+ * {@inheritDoc}
+ */
public File getInstanceDirectory()
{
- // TODO Auto-generated method stub
- return null;
+ return new File( getBinInstallerDirectory(), "instance" );
}
}
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinTarget.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinTarget.java?rev=1001788&r1=1001787&r2=1001788&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinTarget.java (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/java/org/apache/directory/daemon/installers/bin/BinTarget.java Mon Sep 27 15:43:55 2010
@@ -33,30 +33,9 @@ import org.apache.directory.daemon.insta
*/
public class BinTarget extends Target
{
- /** The wrapper executable path */
- private String wrapperExecutablePath = "src/main/installers/wrapper/bin/wrapper-windows-x86-32.exe";
-
-
- /**
- * Gets the Wrapper executable path.
- *
- * @return
- * the wrapper executable path
- */
- public String getWrapperExecutablePath()
+ public BinTarget()
{
- return wrapperExecutablePath;
- }
-
-
- /**
- * Sets the Wrapper executable path.
- *
- * @param wrapperExecutablePath
- * the wrapper executable path
- */
- public void setWrapperExecutablePath( String wrapperExecutablePath )
- {
- this.wrapperExecutablePath = wrapperExecutablePath;
+ setOsName( Target.OS_NAME_LINUX );
+ setOsArch( Target.OS_ARCH_X86 );
}
}
\ No newline at end of file
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/bootstrap.sh
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/bootstrap.sh?rev=1001788&r1=1001787&r2=1001788&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/bootstrap.sh (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/bootstrap.sh Mon Sep 27 15:43:55 2010
@@ -27,8 +27,8 @@ verifyExitCode()
{
if [ $? -ne 0 ]
then
- echo "An error occurred when installing Apache DS."
- echo "Apache DS installation failed."
+ echo "An error occurred when installing ApacheDS."
+ echo "ApacheDS installation failed."
exit 1
fi
}
@@ -38,7 +38,7 @@ export APACHEDS_VERSION=${apacheds.versi
# Displaying welcome message and license terms
more <<"EOF"
- WELCOME TO THE APACHE DS INSTALLER PROGRAM
+ WELCOME TO THE APACHEDS INSTALLER PROGRAM
_ _ ____ ____
/ \ _ __ __ _ ___| |__ ___| _ \/ ___|
/ _ \ | '_ \ / _` |/ __| '_ \ / _ \ | | \___ \
@@ -46,7 +46,7 @@ more <<"EOF"
/_/ \_\ .__/ \__,_|\___|_| |_|\___|____/|____/
|_|
- Apache DS is distributed under the Apache Software License Version 2.0.
+ ApacheDS is distributed under the Apache Software License Version 2.0.
Please, take some time to read the license terms below.
@@ -275,5 +275,5 @@ verifyExitCode
# Finishing
echo "Done."
-echo "Apache DS has been installed successfully."
+echo "ApacheDS has been installed successfully."
exit 0
Modified: directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/createInstaller.sh
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/createInstaller.sh?rev=1001788&r1=1001787&r2=1001788&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/createInstaller.sh (original)
+++ directory/apacheds/branches/apacheds-apacheds-2.0/installers-plugin/src/main/resources/org/apache/directory/daemon/installers/bin/createInstaller.sh Mon Sep 27 15:43:55 2010
@@ -20,16 +20,16 @@
# Copying bootstrap.sh to the installer (and replacing the @lines@ variable)
lines=`wc -l < bootstrap.sh`
lines=`expr $lines + 1`
-sed -e "s/@LINES@/${lines}/" bootstrap.sh > ../${finalName}
+sed -e "s/@LINES@/${lines}/" bootstrap.sh > ../../${finalName}
# Packing the data and shell scripts
-tar czf ${tmpArchive} rootFolder/* sh/*
+tar czf ${tmpArchive} instance/* server/* sh/*
# Adding the temp archive to the installer
-cat ${tmpArchive} >> ../${finalName}
+cat ${tmpArchive} >> ../../${finalName}
# Modifying permission on the installer so it is executable
-chmod 750 ../${finalName}
+chmod +x ../../${finalName}
# Cleaning
rm ${tmpArchive}