package org.tanukisoftware.wrapper.test;
/*
* Copyright (c) 1999, 2009 Tanuki Software, Ltd.
* http://www.tanukisoftware.com
* All rights reserved.
*
* This software is the proprietary information of Tanuki Software.
* You shall use it only in accordance with the terms of the
* license agreement you entered into with Tanuki Software.
* http://wrapper.tanukisoftware.org/doc/english/licenseOverview.html
*/
import org.tanukisoftware.wrapper.WrapperManager;
import org.tanukisoftware.wrapper.WrapperListener;
/**
* This test is to make sure the Wrapper works correctly when stop or restart is
* called before the start method has completed.
*
* @author Leif Mortenson <leif@tanukisoftware.com>
*/
public class StopWhileStarting implements WrapperListener {
/**************************************************************************
* Constructors
*************************************************************************/
private StopWhileStarting() {
}
/**************************************************************************
* WrapperListener Methods
*************************************************************************/
public Integer start(String[] args) {
System.out.println("start()");
switch ( WrapperManager.getJVMId() ) {
case 1:
System.out.println( "start() request restart" );
WrapperManager.restart();
break;
case 2:
System.out.println( "start() request halt(0)" );
Runtime.getRuntime().halt( 0 );
break;
case 3:
System.out.println( "start() request System.exit(99). Will restart due to on_exit configuration" );
System.exit( 99 );
break;
default:
System.out.println("start() request stop(0)");
WrapperManager.stop( 0 );
break;
}
System.out.println("start() END - Should not get here.");
return null;
}
public int stop(int exitCode) {
System.out.println("stop(" + exitCode + ")");
return exitCode;
}
public void controlEvent(int event) {
System.out.println("controlEvent(" + event + ")");
if (event == WrapperManager.WRAPPER_CTRL_C_EVENT) {
WrapperManager.stop(0);
}
}
/**************************************************************************
* Main Method
*************************************************************************/
public static void main(String[] args) {
System.out.println("Initializing...");
// Start the application. If the JVM was launched from the native
// Wrapper then the application will wait for the native Wrapper to
// call the application's start method. Otherwise the start method
// will be called immediately.
WrapperManager.start(new StopWhileStarting(), args);
}
}