1. /*
  2. * @(#)NameServer.java 1.10 03/01/23
  3. *
  4. * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
  5. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  6. */
  7. package com.sun.corba.se.internal.PCosNaming;
  8. import java.io.File;
  9. import java.util.Properties;
  10. import com.sun.corba.se.internal.orbutil.ORBConstants;
  11. import com.sun.corba.se.internal.orbutil.CorbaResourceUtil;
  12. import com.sun.corba.se.internal.POA.POAORB;
  13. import com.sun.corba.se.ActivationIDL.InitialNameService;
  14. import com.sun.corba.se.ActivationIDL.InitialNameServiceHelper;
  15. import org.omg.CosNaming.NamingContext;
  16. /**
  17. * Class NameServer is a standalone application which
  18. * implements a persistent and a transient name service.
  19. * It uses the PersistentNameService and TransientNameService
  20. * classes for the name service implementation.
  21. *
  22. * @version 1.1, 99/10/07
  23. * @author Hemanth Puttaswamy
  24. * @since JDK1.2
  25. */
  26. public class NameServer
  27. {
  28. private POAORB orb;
  29. private File dbDir; // name server database directory
  30. private final static String dbName = "names.db";
  31. public static void main(String args[])
  32. {
  33. NameServer ns = new NameServer(args);
  34. ns.run();
  35. }
  36. protected NameServer(String args[])
  37. {
  38. // create the ORB Object
  39. java.util.Properties props = System.getProperties();
  40. props.put("org.omg.CORBA.ORBClass",
  41. "com.sun.corba.se.internal.POA.POAORB");
  42. orb = (POAORB) org.omg.CORBA.ORB.init(args,props);
  43. // set up the database directory
  44. String dbDirName = props.getProperty( ORBConstants.DB_DIR_PROPERTY ) +
  45. props.getProperty("file.separator") + dbName +
  46. props.getProperty("file.separator");
  47. dbDir = new File(dbDirName);
  48. if (!dbDir.exists()) dbDir.mkdir();
  49. }
  50. protected void run()
  51. {
  52. try {
  53. // create the persistent name service
  54. NameService ns = new NameService(orb, dbDir);
  55. // add root naming context to initial naming
  56. NamingContext rootContext = ns.initialNamingContext();
  57. InitialNameService ins = InitialNameServiceHelper.narrow(
  58. orb.resolve_initial_references(
  59. ORBConstants.INITIAL_NAME_SERVICE_NAME ));
  60. ins.bind( "NameService", rootContext, true);
  61. System.out.println(CorbaResourceUtil.getText("pnameserv.success"));
  62. // wait for invocations
  63. orb.run();
  64. } catch (Exception ex) {
  65. ex.printStackTrace(System.err);
  66. }
  67. }
  68. }