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/28 09:54:25 UTC
svn commit: r373102 - in /directory/trunks/apacheds/standalone: daemon/
daemon/src/main/java/org/apache/directory/server/standalone/daemon/
daemon/src/main/manifest/
installers/plugin/src/main/resources/org/apache/directory/server/standalone/installers...
Author: akarasulu
Date: Sat Jan 28 00:54:03 2006
New Revision: 373102
URL: http://svn.apache.org/viewcvs?rev=373102&view=rev
Log:
Continuing daemon refactoring the correct way:
o It seems as thought the reflection methods must be included in the
class used by Procrun so we made the ProcrunBootstrapper extend the
Bootstrapper.
o Reinstated the MainBootstrapper for runs from the commandline for a regular
java application.
o Corrected manifest and pom of daemon to account for MainBootstrapper
o Changed the inno installer script to use the ProcrunBootstrapper
o Ignoring all other installer builds for now until we perfect procrun based
operation.
Modified:
directory/trunks/apacheds/standalone/daemon/pom.xml
directory/trunks/apacheds/standalone/daemon/src/main/java/org/apache/directory/server/standalone/daemon/Bootstrapper.java
directory/trunks/apacheds/standalone/daemon/src/main/java/org/apache/directory/server/standalone/daemon/MainBootstrapper.java
directory/trunks/apacheds/standalone/daemon/src/main/java/org/apache/directory/server/standalone/daemon/ProcrunBootstrapper.java
directory/trunks/apacheds/standalone/daemon/src/main/manifest/MANIFEST.MF
directory/trunks/apacheds/standalone/installers/plugin/src/main/resources/org/apache/directory/server/standalone/installers/inno/install.iss
directory/trunks/apacheds/standalone/installers/test/pom.xml
Modified: directory/trunks/apacheds/standalone/daemon/pom.xml
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/standalone/daemon/pom.xml?rev=373102&r1=373101&r2=373102&view=diff
==============================================================================
--- directory/trunks/apacheds/standalone/daemon/pom.xml (original)
+++ directory/trunks/apacheds/standalone/daemon/pom.xml Sat Jan 28 00:54:03 2006
@@ -42,7 +42,7 @@
<archive>
<manifestFile>src/main/manifest/MANIFEST.MF</manifestFile>
<manifest>
- <mainClass>org.apache.directory.server.standalone.daemon.Bootstrapper</mainClass>
+ <mainClass>org.apache.directory.server.standalone.daemon.MainBootstrapper</mainClass>
</manifest>
</archive>
</configuration>
Modified: directory/trunks/apacheds/standalone/daemon/src/main/java/org/apache/directory/server/standalone/daemon/Bootstrapper.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/standalone/daemon/src/main/java/org/apache/directory/server/standalone/daemon/Bootstrapper.java?rev=373102&r1=373101&r2=373102&view=diff
==============================================================================
--- directory/trunks/apacheds/standalone/daemon/src/main/java/org/apache/directory/server/standalone/daemon/Bootstrapper.java (original)
+++ directory/trunks/apacheds/standalone/daemon/src/main/java/org/apache/directory/server/standalone/daemon/Bootstrapper.java Sat Jan 28 00:54:03 2006
@@ -28,6 +28,7 @@
/**
+ * The main bootstrapper used when invoked as an application.
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
@@ -39,7 +40,7 @@
private static final String BOOTSTRAP_START_CLASS_PROP = "bootstrap.start.class";
private static final String BOOTSTRAP_STOP_CLASS_PROP = "bootstrap.stop.class";
- private static Bootstrapper instance;
+ protected static Bootstrapper instance;
private final Properties bootstrapProperties = new Properties();
private InstallationLayout install;
@@ -50,16 +51,16 @@
public void setInstallationLayout( String installationBase )
{
- log.debug( "Setting layout in Bootstrapper using base: " + installationBase );
+ log.debug( "Setting layout in Bootstrapper using base: " + installationBase );
install = new InstallationLayout( installationBase );
try
{
- install.verifyInstallation();
+ install.verifyInstallation();
}
catch( Throwable t )
{
- log.error( "Installation verification failure!", t );
+ log.error( "Installation verification failure!", t );
}
try
@@ -303,162 +304,5 @@
setInstallationLayout( args[0] );
setParentLoader( Thread.currentThread().getContextClassLoader() );
}
- }
-
-
- // ------------------------------------------------------------------------
- // The main()
- // ------------------------------------------------------------------------
-
-
- public static void prunsrvStart( String[] args )
- {
- log.debug( "prunsrvStart(String[]) called" );
-
- if ( log.isDebugEnabled() )
- {
- log.debug( "prunsrvStart(String[]) recieved args:" );
- for ( int ii = 0; ii < args.length; ii++ )
- {
- log.debug( "args[" + ii + "] = " + args[ii] );
- }
- }
-
- try
- {
- log.debug( "prunsrvStart(String[]) initializing Bootstrapper ... )" );
- instance = new Bootstrapper();
- instance.setInstallationLayout( args[0] );
- instance.setParentLoader( Bootstrapper.class.getClassLoader() );
-
- log.debug( "prunsrvStart(String[]) calling init(String[])" );
- instance.init( args );
-
- log.debug( "prunsrvStart(String[]) calling start(String[])" );
- instance.start( args );
- }
- catch ( Throwable t )
- {
- log.error( "Encountered error in prunsrvStart(String[])", t );
- System.exit( 4 );
- }
- }
-
-
- public static void prunsrvStop( String[] args )
- {
- log.debug( "prunsrvStop(String[]) called" );
- if ( log.isDebugEnabled() )
- {
- log.debug( "prunsrvStop(String[]) recieved args:" );
- for ( int ii = 0; ii < args.length; ii++ )
- {
- log.debug( "args[" + ii + "] = " + args[ii] );
- }
- }
-
- try
- {
- log.debug( "prunsrvStop(String[]) initializing Bootstrapper ... )" );
- instance = new Bootstrapper();
- instance.setInstallationLayout( args[0] );
- instance.setParentLoader( Bootstrapper.class.getClassLoader() );
-
- log.debug( "prunsrvStop(String[]) calling stop()" );
- instance.stop();
- log.debug( "prunsrvStop(String[]) calling destroy()" );
- instance.destroy();
- }
- catch ( Throwable t )
- {
- log.error( "Encountered error in prunsrvStop(String[])", t );
- System.exit( 4 );
- }
- }
-
-
- // ------------------------------------------------------------------------
- // The main()
- // ------------------------------------------------------------------------
-
-
- public static void main( String[] args )
- {
- log.debug( "main(String[]) called" );
-
- // Noticed that some starts with jar2exe.exe pass in a null arguement list
- if ( args == null )
- {
- System.err.println( "Arguements are null - how come?" );
- log.error( "main() args were null shutting down!" );
- printHelp();
- System.exit( 1 );
- }
-
- if ( log.isDebugEnabled() )
- {
- log.debug( "main() recieved args:" );
- for ( int ii = 0; ii < args.length; ii++ )
- {
- log.debug( "args[" + ii + "] = " + args[ii] );
- }
- }
-
- if ( args.length > 1 )
- {
- if ( instance == null )
- {
- log.debug( "main(String[]) initializing Bootstrapper ... )" );
- instance = new Bootstrapper();
- instance.setInstallationLayout( args[0] );
- instance.setParentLoader( Bootstrapper.class.getClassLoader() );
- log.debug( "Bootstrapper initialized" );
- }
- }
- else
- {
- String msg = "Server exiting without required installation.home or command.name.";
- System.err.println( msg );
- log.error( msg );
- printHelp();
- System.exit( 1 );
- }
-
- String command = args[args.length - 1];
- try
- {
- if ( command.equalsIgnoreCase( "start" ) )
- {
- log.debug( "calling init(String[]) from main(String[])" );
- instance.init( args );
-
- log.debug( "calling start(String[]) from main(String[])" );
- instance.start( args );
- }
- else if ( command.equalsIgnoreCase( "stop" ) )
- {
- log.debug( "calling stop() from main(String[])" );
- instance.stop();
- instance.destroy();
- }
- else
- {
- log.error( "Unrecognized command " + command );
- printHelp();
- System.exit( 3 );
- }
- }
- catch ( Throwable t )
- {
- log.error( "Encountered error while processing command: " + command );
- t.printStackTrace();
- System.exit( 4 );
- }
- }
-
-
- private static void printHelp()
- {
- System.err.println("java -jar bootstrap.jar <app.home> <command.name>");
}
}
Modified: directory/trunks/apacheds/standalone/daemon/src/main/java/org/apache/directory/server/standalone/daemon/MainBootstrapper.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/standalone/daemon/src/main/java/org/apache/directory/server/standalone/daemon/MainBootstrapper.java?rev=373102&r1=373101&r2=373102&view=diff
==============================================================================
--- directory/trunks/apacheds/standalone/daemon/src/main/java/org/apache/directory/server/standalone/daemon/MainBootstrapper.java (original)
+++ directory/trunks/apacheds/standalone/daemon/src/main/java/org/apache/directory/server/standalone/daemon/MainBootstrapper.java Sat Jan 28 00:54:03 2006
@@ -28,12 +28,16 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-public class MainBootstrapper
+public class MainBootstrapper extends Bootstrapper
{
private static final Logger log = LoggerFactory.getLogger( MainBootstrapper.class );
- private static final String[] EMPTY_STRARRAY = new String[0];
+ // ------------------------------------------------------------------------
+ // Java application main() entry point
+ // ------------------------------------------------------------------------
+
+
public static void main( String[] args )
{
log.debug( "main(String[]) called" );
@@ -44,7 +48,7 @@
System.err.println( "Arguements are null - how come?" );
log.error( "main() args were null shutting down!" );
printHelp();
- System.exit( ExitCodes.BAD_ARGUMENTS );
+ System.exit( 1 );
}
if ( log.isDebugEnabled() )
@@ -52,15 +56,20 @@
log.debug( "main() recieved args:" );
for ( int ii = 0; ii < args.length; ii++ )
{
- log.debug( "\targs[" + ii + "] = " + args[ii] );
+ log.debug( "args[" + ii + "] = " + args[ii] );
}
}
- LifecycleInvoker invoker = null;
if ( args.length > 1 )
{
- log.debug( "main(String[]) creating LifecycleInvoker ... )" );
- invoker = new LifecycleInvoker( args[0], Thread.currentThread().getContextClassLoader() );
+ if ( instance == null )
+ {
+ log.debug( "main(String[]) initializing Bootstrapper ... )" );
+ instance = new Bootstrapper();
+ instance.setInstallationLayout( args[0] );
+ instance.setParentLoader( Bootstrapper.class.getClassLoader() );
+ log.debug( "Bootstrapper initialized" );
+ }
}
else
{
@@ -76,54 +85,36 @@
{
if ( command.equalsIgnoreCase( "start" ) )
{
- log.debug( "calling application.callInit(String[]) from main(String[])" );
- if ( args.length > 2 )
- {
- String[] shifted = new String[args.length-2];
- System.arraycopy( args, 2, shifted, 0, shifted.length );
- invoker.callInit( shifted );
- }
- else
- {
- invoker.callInit( EMPTY_STRARRAY );
- }
+ log.debug( "calling init(String[]) from main(String[])" );
+ instance.init( args );
- log.debug( "calling application.callStart(String[]) from main(String[])" );
- invoker.callStart( true );
+ log.debug( "calling start(String[]) from main(String[])" );
+ instance.start( args );
}
else if ( command.equalsIgnoreCase( "stop" ) )
{
- log.debug( "calling application.callStop(String[]) from main(String[])" );
- if ( args.length > 2 )
- {
- String[] shifted = new String[args.length-2];
- System.arraycopy( args, 2, shifted, 0, shifted.length );
- invoker.callStop( shifted );
- }
- else
- {
- invoker.callStop( EMPTY_STRARRAY );
- }
- log.debug( "calling application.callDestroy() from main(String[])" );
- invoker.callDestroy();
+ log.debug( "calling stop() from main(String[])" );
+ instance.stop();
+ instance.destroy();
}
else
{
log.error( "Unrecognized command " + command );
printHelp();
- System.exit( ExitCodes.BAD_COMMAND );
+ System.exit( 3 );
}
}
catch ( Throwable t )
{
- log.error( "Encountered error while processing command: " + command, t );
- System.exit( ExitCodes.UNKNOWN );
+ log.error( "Encountered error while processing command: " + command );
+ t.printStackTrace();
+ System.exit( 4 );
}
}
private static void printHelp()
{
- System.err.println("java -jar bootstrapper.jar <install.home> [start|stop] [apparg0 apparg1 ... appargN]");
+ System.err.println("java -jar bootstrap.jar <app.home> <command.name>");
}
}
Modified: directory/trunks/apacheds/standalone/daemon/src/main/java/org/apache/directory/server/standalone/daemon/ProcrunBootstrapper.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/standalone/daemon/src/main/java/org/apache/directory/server/standalone/daemon/ProcrunBootstrapper.java?rev=373102&r1=373101&r2=373102&view=diff
==============================================================================
--- directory/trunks/apacheds/standalone/daemon/src/main/java/org/apache/directory/server/standalone/daemon/ProcrunBootstrapper.java (original)
+++ directory/trunks/apacheds/standalone/daemon/src/main/java/org/apache/directory/server/standalone/daemon/ProcrunBootstrapper.java Sat Jan 28 00:54:03 2006
@@ -28,100 +28,78 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-public class ProcrunBootstrapper
+public class ProcrunBootstrapper extends Bootstrapper
{
private final static Logger log = LoggerFactory.getLogger( ProcrunBootstrapper.class );
- private static final String[] EMPTY_STRARRAY = new String[0];
-
+
+ // -----------------------------------------------------------------------
+ // Procrun Entry Points
+ // -----------------------------------------------------------------------
+
+
public static void prunsrvStart( String[] args )
{
- ClassLoader system = Thread.currentThread().getContextClassLoader();
-
+ log.debug( "prunsrvStart(String[]) called" );
+
if ( log.isDebugEnabled() )
{
- StringBuffer buf = new StringBuffer();
- buf.append( "ENTERING ==> prunsrvStart(String[]):\n" );
+ log.debug( "prunsrvStart(String[]) recieved args:" );
for ( int ii = 0; ii < args.length; ii++ )
{
- buf.append( "\targs[" ).append( ii ).append( "] = " ).append( args[ii] ).append( "\n" );
+ log.debug( "args[" + ii + "] = " + args[ii] );
}
}
- if ( args == null || args.length < 1 )
+ try
{
- log.error( "Args were null or less than 1: need home directory. Shutting down!" );
- System.exit( ExitCodes.BAD_ARGUMENTS );
- }
+ log.debug( "prunsrvStart(String[]) initializing Bootstrapper ... )" );
+ instance = new Bootstrapper();
+ instance.setInstallationLayout( args[0] );
+ instance.setParentLoader( Bootstrapper.class.getClassLoader() );
- log.debug( "prunsrvStart(String[]) creating LifecycleInvoker ... )" );
- LifecycleInvoker invoker = new LifecycleInvoker( args[0], system );
+ log.debug( "prunsrvStart(String[]) calling init(String[])" );
+ instance.init( args );
- log.debug( "prunsrvStart(String[]) invoking application.callInit(String[]))" );
- try
- {
- if ( args.length > 1 )
- {
- String[] shifted = new String[args.length-1];
- System.arraycopy( args, 1, shifted, 0, shifted.length );
- invoker.callInit( shifted );
- }
- else
- {
- invoker.callInit( EMPTY_STRARRAY );
- }
+ log.debug( "prunsrvStart(String[]) calling start(String[])" );
+ instance.start( args );
}
catch ( Throwable t )
{
- log.error( "Failed while calling invoker.callInit(String[])", t );
- }
-
- log.debug( "prunsrvStart(String[]) invoking bootstrapper.callStart())" );
- try
- {
- invoker.callStart( false ); // must block on start (let the app decide how)
- }
- catch( Throwable t )
- {
- log.error( "Failed while calling invoker.callStart(String[])", t );
+ log.error( "Encountered error in prunsrvStart(String[])", t );
+ System.exit( 4 );
}
}
-
+
public static void prunsrvStop( String[] args )
{
+ log.debug( "prunsrvStop(String[]) called" );
if ( log.isDebugEnabled() )
{
- StringBuffer buf = new StringBuffer();
- buf.append( "ENTERING ==> prunsrvStop(String[]):\n" );
+ log.debug( "prunsrvStop(String[]) recieved args:" );
for ( int ii = 0; ii < args.length; ii++ )
{
- buf.append( "\targs[" ).append( ii ).append( "] = " ).append( args[ii] ).append( "\n" );
+ log.debug( "args[" + ii + "] = " + args[ii] );
}
}
-
- if ( args == null || args.length < 1 )
- {
- log.error( "Args were null or less than 1: need home directory. Shutting down!" );
- System.exit( ExitCodes.BAD_ARGUMENTS );
- }
- log.debug( "prunsrvStop(String[]) creating LifecycleInvoker ... )" );
- LifecycleInvoker application = new LifecycleInvoker( args[0],
- Thread.currentThread().getContextClassLoader() );
-
- log.debug( "prunsrvStop(String[]) invoking application.callStop(String[]))" );
- if ( args.length > 1 )
+ try
{
- String[] shifted = new String[args.length-1];
- System.arraycopy( args, 1, shifted, 0, shifted.length );
- application.callStop( shifted );
+ log.debug( "prunsrvStop(String[]) initializing Bootstrapper ... )" );
+ instance = new Bootstrapper();
+ instance.setInstallationLayout( args[0] );
+ instance.setParentLoader( Bootstrapper.class.getClassLoader() );
+
+ log.debug( "prunsrvStop(String[]) calling stop()" );
+ instance.stop();
+ log.debug( "prunsrvStop(String[]) calling destroy()" );
+ instance.destroy();
}
- else
+ catch ( Throwable t )
{
- application.callStop( EMPTY_STRARRAY );
+ log.error( "Encountered error in prunsrvStop(String[])", t );
+ System.exit( 4 );
}
- log.debug( "prunsrvStop(String[]) invoking application.callDestroy())" );
- application.callDestroy();
}
}
Modified: directory/trunks/apacheds/standalone/daemon/src/main/manifest/MANIFEST.MF
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/standalone/daemon/src/main/manifest/MANIFEST.MF?rev=373102&r1=373101&r2=373102&view=diff
==============================================================================
--- directory/trunks/apacheds/standalone/daemon/src/main/manifest/MANIFEST.MF (original)
+++ directory/trunks/apacheds/standalone/daemon/src/main/manifest/MANIFEST.MF Sat Jan 28 00:54:03 2006
@@ -1,5 +1,5 @@
Manifest-Version: 1.0
-Main-Class: org.apache.directory.server.standalone.daemon.Bootstrapper
+Main-Class: org.apache.directory.server.standalone.daemon.MainBootstrapper
Class-Path: logger.jar daemon.jar
Specification-Title: ApacheDS
Specification-Version: 1.0
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=373102&r1=373101&r2=373102&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 Sat Jan 28 00:54:03 2006
@@ -69,7 +69,7 @@
Name: {group}\Test Service; Filename: {app}\bin\${app}.exe; IconIndex: 0
[Run]
-Filename: {app}\bin\${app}.exe; WorkingDir: {app}\bin; Tasks: ; Languages: ; Parameters: "//IS//${app.displayname} --Description=""${app.description} Service ${app.version} - ${app.url}"" --DisplayName=${app.displayname} --Install=""{app}\bin\${app}.exe"" --StartMode=jvm --StopMode=jvm --StartClass=org.apache.directory.server.standalone.daemon.Bootstrapper --StartMethod prunsrvStart --StartParams=""{app}"" --StopClass=org.apache.directory.server.standalone.daemon.Bootstrapper --StopMethod prunsrvStop --StopParams=""{app}"" --Startup=manual --JvmOptions=""-D${app}.home={app}"" --Classpath=""{app}\bin\bootstrapper.jar;{app}\conf;{app}\bin\logger.jar;{app}\bin\daemon.jar"" --LogPath=""{app}\var\log"" --LogPrefix=${app}.log --LogLevel=debug --StdOutput=""{app}\var\log\${app}-stdout.log"" --StdError=""{app}\var\log\${app}-stderr.log"""; Flags: runhidden
+Filename: {app}\bin\${app}.exe; WorkingDir: {app}\bin; Tasks: ; Languages: ; Parameters: "//IS//${app.displayname} --Description=""${app.description} Service ${app.version} - ${app.url}"" --DisplayName=${app.displayname} --Install=""{app}\bin\${app}.exe"" --StartMode=jvm --StopMode=jvm --StartClass=org.apache.directory.server.standalone.daemon.ProcrunBootstrapper --StartMethod prunsrvStart --StartParams=""{app}"" --StopClass=org.apache.directory.server.standalone.daemon.ProcrunBootstrapper --StopMethod prunsrvStop --StopParams=""{app}"" --Startup=manual --JvmOptions=""-D${app}.home={app}"" --Classpath=""{app}\bin\bootstrapper.jar;{app}\conf;{app}\bin\logger.jar;{app}\bin\daemon.jar"" --LogPath=""{app}\var\log"" --LogPrefix=${app}.log --LogLevel=debug --StdOutput=""{app}\var\log\${app}-stdout.log"" --StdError=""{app}\var\log\${app}-stderr.log"""; Flags: runhidden
Filename: {app}\bin\${app}w.exe; Parameters: //ES//${app.displayname}; WorkingDir: {app}\bin; Flags: postinstall nowait; Description: Runs the configuration manager for the ${app} windows service
[Registry]
Modified: directory/trunks/apacheds/standalone/installers/test/pom.xml
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/standalone/installers/test/pom.xml?rev=373102&r1=373101&r2=373102&view=diff
==============================================================================
--- directory/trunks/apacheds/standalone/installers/test/pom.xml (original)
+++ directory/trunks/apacheds/standalone/installers/test/pom.xml Sat Jan 28 00:54:03 2006
@@ -106,6 +106,7 @@
<daemonFramework>procrun</daemonFramework>
</innoTarget>
</innoTargets>
+<!--
<izPackTargets>
<izPackTarget>
<id>linux-jsvc</id>
@@ -114,7 +115,6 @@
<osArch>i386</osArch>
<daemonFramework>jsvc</daemonFramework>
</izPackTarget>
- <!--
<izPackTarget>
<id>macosx-jsvc</id>
<osName>macosx</osName>
@@ -122,7 +122,6 @@
<osArch>ppc</osArch>
<daemonFramework>jsvc</daemonFramework>
</izPackTarget>
- -->
<izPackTarget>
<id>solaris-jsvc</id>
<osName>sunos</osName>
@@ -132,6 +131,7 @@
<daemonFramework>jsvc</daemonFramework>
</izPackTarget>
</izPackTargets>
+-->
</configuration>
<executions>
<execution>