1 package org.sapia.ubik.rmi.naming.remote; 2 3 import org.sapia.ubik.rmi.server.Hub; 4 import org.sapia.ubik.rmi.server.Log; 5 6 7 34 public class JNDIServer { 35 55 public static void main(String [] args) { 56 JNDIServerHelper.Args argsObj = JNDIServerHelper.parseArgs(args); 57 if (argsObj != null) { 58 try { 59 EmbeddableJNDIServer server = new EmbeddableJNDIServer(argsObj.domain, 60 argsObj.port, argsObj.mcastAddress, argsObj.mcastPort); 61 62 server.start(false); 63 64 Runtime.getRuntime().addShutdownHook(new ShutdownHook(server)); 65 } catch (Throwable t) { 66 t.printStackTrace(); 67 } 68 } 69 } 70 71 public static final class ShutdownHook extends Thread { 72 private EmbeddableJNDIServer _svr; 73 74 ShutdownHook(EmbeddableJNDIServer svr) { 75 _svr = svr; 76 } 77 78 81 public void run() { 82 _svr.stop(); 83 try{ 84 Hub.shutdown(30000); 85 }catch(InterruptedException e){ 86 Log.error(getClass(), "JNDI server could not shut down properly", e); 87 } 88 } 89 } 90 } 91 | Popular Tags |