From 2a324c450839410293c5d5e2c56dc291b4a98634 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Thu, 12 Jun 2014 19:59:32 +0200 Subject: Refactored LDAP into its own module. --- src/main/java/com/c2kernel/process/StandardServer.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/main/java/com/c2kernel/process/StandardServer.java') diff --git a/src/main/java/com/c2kernel/process/StandardServer.java b/src/main/java/com/c2kernel/process/StandardServer.java index e283cb6..43f8afa 100644 --- a/src/main/java/com/c2kernel/process/StandardServer.java +++ b/src/main/java/com/c2kernel/process/StandardServer.java @@ -13,6 +13,7 @@ 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; /************************************************************************** @@ -46,13 +47,13 @@ public class StandardServer extends AbstractMain implements WrapperListener Gateway.init(readC2KArgs(args)); // connect to LDAP as root - Gateway.connect(); + Authenticator auth = Gateway.connect(); //start console Logger.initConsole("ItemServer"); //initialize the server objects - Gateway.startServer(); + Gateway.startServer(auth); Logger.msg(5, "StandardServer::standardInitialisation - complete."); -- cgit v1.2.3 From ae9571df5a41e9c35b819a6b9a496fe6d553b289 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Fri, 4 Jul 2014 17:12:57 +0200 Subject: Refactored tanuki service wrapper to a separate module --- pom.xml | 4 - .../java/com/c2kernel/process/AbstractMain.java | 19 ++++- .../java/com/c2kernel/process/ClientShell.java | 2 +- src/main/java/com/c2kernel/process/Gateway.java | 2 +- .../java/com/c2kernel/process/ShutdownHandler.java | 6 ++ .../java/com/c2kernel/process/StandardClient.java | 5 -- .../java/com/c2kernel/process/StandardServer.java | 86 ++-------------------- .../java/com/c2kernel/scripting/ScriptConsole.java | 5 +- src/main/java/com/c2kernel/utils/Logger.java | 7 +- 9 files changed, 35 insertions(+), 101 deletions(-) create mode 100644 src/main/java/com/c2kernel/process/ShutdownHandler.java (limited to 'src/main/java/com/c2kernel/process/StandardServer.java') diff --git a/pom.xml b/pom.xml index 0264f90..119692b 100644 --- a/pom.xml +++ b/pom.xml @@ -122,10 +122,6 @@ jython runtime - - tanukisoft - wrapper - xmlunit xmlunit 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 -- cgit v1.2.3