diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2014-07-04 17:12:57 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2014-07-04 17:12:57 +0200 |
| commit | ae9571df5a41e9c35b819a6b9a496fe6d553b289 (patch) | |
| tree | b8ff26145d491aac1192cdc0bb2d96a5c3701e40 | |
| parent | 2495be9ecfa8aea47e285f63b5bb27b0c133b1f8 (diff) | |
Refactored tanuki service wrapper to a separate module
| -rw-r--r-- | pom.xml | 4 | ||||
| -rw-r--r-- | src/main/java/com/c2kernel/process/AbstractMain.java | 19 | ||||
| -rw-r--r-- | src/main/java/com/c2kernel/process/ClientShell.java | 2 | ||||
| -rw-r--r-- | src/main/java/com/c2kernel/process/Gateway.java | 2 | ||||
| -rw-r--r-- | src/main/java/com/c2kernel/process/ShutdownHandler.java | 6 | ||||
| -rw-r--r-- | src/main/java/com/c2kernel/process/StandardClient.java | 5 | ||||
| -rw-r--r-- | src/main/java/com/c2kernel/process/StandardServer.java | 86 | ||||
| -rw-r--r-- | src/main/java/com/c2kernel/scripting/ScriptConsole.java | 5 | ||||
| -rw-r--r-- | src/main/java/com/c2kernel/utils/Logger.java | 7 |
9 files changed, 35 insertions, 101 deletions
@@ -123,10 +123,6 @@ <scope>runtime</scope> </dependency> <dependency> - <groupId>tanukisoft</groupId> - <artifactId>wrapper</artifactId> - </dependency> - <dependency> <groupId>xmlunit</groupId> <artifactId>xmlunit</artifactId> </dependency> diff --git a/src/main/java/com/c2kernel/process/AbstractMain.java b/src/main/java/com/c2kernel/process/AbstractMain.java index e241ee2..202ae9e 100644 --- a/src/main/java/com/c2kernel/process/AbstractMain.java +++ b/src/main/java/com/c2kernel/process/AbstractMain.java @@ -28,7 +28,8 @@ import com.c2kernel.utils.Logger; **************************************************************************/
abstract public class AbstractMain
{
- public static boolean runningAsWrapper = false;
+ public static boolean isServer = false;
+ private static ShutdownHandler shutdownHandler;
/**************************************************************************
@@ -112,5 +113,19 @@ abstract public class AbstractMain return c2kProps;
}
-
+
+ public static void setShutdownHandler(ShutdownHandler handler) {
+ shutdownHandler = handler;
+ }
+
+ public static void shutdown(int errCode) {
+ if (shutdownHandler!= null)
+ shutdownHandler.shutdown(errCode, isServer);
+ else
+ try {
+ Gateway.close();
+ } catch (Exception ex) {
+ Logger.error(ex);
+ }
+ }
}
diff --git a/src/main/java/com/c2kernel/process/ClientShell.java b/src/main/java/com/c2kernel/process/ClientShell.java index b6afb2c..9f1d3ab 100644 --- a/src/main/java/com/c2kernel/process/ClientShell.java +++ b/src/main/java/com/c2kernel/process/ClientShell.java @@ -33,7 +33,7 @@ public class ClientShell extends StandardClient { }
System.out.print("> ");
}
- close();
+ shutdown(0);
}
public static void main(String[] args) throws Exception {
diff --git a/src/main/java/com/c2kernel/process/Gateway.java b/src/main/java/com/c2kernel/process/Gateway.java index 09700d6..7a040ac 100644 --- a/src/main/java/com/c2kernel/process/Gateway.java +++ b/src/main/java/com/c2kernel/process/Gateway.java @@ -114,7 +114,7 @@ public class Gateway // init module manager
try {
- mModules = new ModuleManager(mResource.getModuleDefURLs(), AbstractMain.runningAsWrapper);
+ mModules = new ModuleManager(mResource.getModuleDefURLs(), AbstractMain.isServer);
} catch (Exception e) {
Logger.error(e);
throw new InvalidDataException("Could not load module definitions.", "");
diff --git a/src/main/java/com/c2kernel/process/ShutdownHandler.java b/src/main/java/com/c2kernel/process/ShutdownHandler.java new file mode 100644 index 0000000..aaed899 --- /dev/null +++ b/src/main/java/com/c2kernel/process/ShutdownHandler.java @@ -0,0 +1,6 @@ +package com.c2kernel.process;
+
+public interface ShutdownHandler {
+
+ public void shutdown(int errCode, boolean isServer);
+}
diff --git a/src/main/java/com/c2kernel/process/StandardClient.java b/src/main/java/com/c2kernel/process/StandardClient.java index 5978068..d2b58a5 100644 --- a/src/main/java/com/c2kernel/process/StandardClient.java +++ b/src/main/java/com/c2kernel/process/StandardClient.java @@ -18,9 +18,4 @@ abstract public class StandardClient extends AbstractMain Gateway.init(readC2KArgs(args));
//AgentProxy user = Gateway.connect("username", "password");
}
-
- static public void close() {
- Gateway.close();
- }
-
}
diff --git a/src/main/java/com/c2kernel/process/StandardServer.java b/src/main/java/com/c2kernel/process/StandardServer.java index 43f8afa..5855d7e 100644 --- a/src/main/java/com/c2kernel/process/StandardServer.java +++ b/src/main/java/com/c2kernel/process/StandardServer.java @@ -10,9 +10,6 @@ package com.c2kernel.process;
-import org.tanukisoftware.wrapper.WrapperListener;
-import org.tanukisoftware.wrapper.WrapperManager;
-
import com.c2kernel.process.auth.Authenticator;
import com.c2kernel.utils.Logger;
@@ -22,27 +19,20 @@ import com.c2kernel.utils.Logger; * @author $Author: abranson $ $Date: 2005/04/28 13:49:43 $
* @version $Revision: 1.47 $
**************************************************************************/
-public class StandardServer extends AbstractMain implements WrapperListener
+public class StandardServer extends AbstractMain
{
protected static StandardServer server;
-
- /**************************************************************************
- * C2KRootPOA suitable for Factory objects
- **************************************************************************/
-
-
-
-
-
/**************************************************************************
* void StandardInitalisation( String[] )
*
* Set-up calls to ORB, POA and Factorys, both optional and required.
**************************************************************************/
- protected void standardInitialisation( String[] args )
+ protected static void standardInitialisation( String[] args )
throws Exception
{
+ isServer = true;
+
// read args and init Gateway
Gateway.init(readC2KArgs(args));
@@ -59,71 +49,9 @@ public class StandardServer extends AbstractMain implements WrapperListener }
-
- /**************************************************************************
- * Sets up and runs and item server
- **************************************************************************/
- @Override
- public Integer start(String[] args)
+ public static void main(String[] args) throws Exception
{
- try
- {
- //initialise everything
- standardInitialisation( args );
- }
- catch( Exception ex )
- {
- ex.printStackTrace();
- Logger.die("Startup failed");
- }
- return null;
- }
-
- public static void main(String[] args) {
- AbstractMain.runningAsWrapper = true;
- server = new StandardServer();
- WrapperManager.start( server, args );
- }
-
- /**
- *
- */
- @Override
- public void controlEvent(int event) {
- if (WrapperManager.isControlledByNativeWrapper()) {
- // The Wrapper will take care of this event
- } else {
- // We are not being controlled by the Wrapper, so
- // handle the event ourselves.
- if ((event == WrapperManager.WRAPPER_CTRL_C_EVENT) ||
- (event == WrapperManager.WRAPPER_CTRL_CLOSE_EVENT) ||
- (event == WrapperManager.WRAPPER_CTRL_SHUTDOWN_EVENT)){
- WrapperManager.stop(0);
- }
- }
-
+ //initialise everything
+ standardInitialisation( args );
}
-
- /**************************************************************************
- * Closes all listeners, quits the VM.
- * This method should be called to kill the server process
- * e.g. from the NT service wrapper
- **************************************************************************/
- @Override
- public int stop(int arg0) {
- WrapperManager.signalStopping(10000);
- try
- {
- Gateway.close();
- }
- catch( Exception ex )
- {
- Logger.error(ex);
- return 1;
- }
-
- Logger.msg("StandardServer::shutdown - complete. ");
- return 0;
- }
-
}
diff --git a/src/main/java/com/c2kernel/scripting/ScriptConsole.java b/src/main/java/com/c2kernel/scripting/ScriptConsole.java index a01e25f..6079c76 100644 --- a/src/main/java/com/c2kernel/scripting/ScriptConsole.java +++ b/src/main/java/com/c2kernel/scripting/ScriptConsole.java @@ -14,8 +14,7 @@ import java.util.StringTokenizer; import javax.script.Bindings;
import javax.script.ScriptEngine;
-import org.tanukisoftware.wrapper.WrapperManager;
-
+import com.c2kernel.process.AbstractMain;
import com.c2kernel.process.Gateway;
import com.c2kernel.utils.Logger;
import com.c2kernel.utils.server.SocketHandler;
@@ -181,7 +180,7 @@ public class ScriptConsole implements SocketHandler { // process control
if (command.equals("shutdown")) {
- WrapperManager.stop(0);
+ AbstractMain.shutdown(0);
}
else {
context.setScript(command);
diff --git a/src/main/java/com/c2kernel/utils/Logger.java b/src/main/java/com/c2kernel/utils/Logger.java index 176f190..fffd191 100644 --- a/src/main/java/com/c2kernel/utils/Logger.java +++ b/src/main/java/com/c2kernel/utils/Logger.java @@ -6,8 +6,6 @@ import java.sql.Timestamp; import java.util.HashMap;
import java.util.Iterator;
-import org.tanukisoftware.wrapper.WrapperManager;
-
import com.c2kernel.process.AbstractMain;
import com.c2kernel.process.Gateway;
import com.c2kernel.scripting.ScriptConsole;
@@ -122,10 +120,7 @@ public class Logger static public void die(String msg)
{
printMessage("FATAL : " + msg, 0);
- if (AbstractMain.runningAsWrapper)
- WrapperManager.stop(1);
- else
- System.exit(1);
+ AbstractMain.shutdown(1);
}
/**
* @param console
|
