1. /*
  2. * @(#)NameServer.java 1.12 03/12/19
  3. *
  4. * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  5. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  6. */
  7. package com.sun.corba.se.impl.naming.pcosnaming;
  8. import java.io.File;
  9. import java.util.Properties;
  10. import com.sun.corba.se.impl.orbutil.ORBConstants;
  11. import com.sun.corba.se.impl.orbutil.CorbaResourceUtil;
  12. import com.sun.corba.se.spi.orb.ORB;
  13. import com.sun.corba.se.spi.activation.InitialNameService;
  14. import com.sun.corba.se.spi.activation.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 ORB 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( ORBConstants.SERVER_ID_PROPERTY, "1000" ) ;
  41. props.put("org.omg.CORBA.ORBClass",
  42. "com.sun.corba.se.impl.orb.ORBImpl");
  43. orb = (ORB) org.omg.CORBA.ORB.init(args,props);
  44. // set up the database directory
  45. String dbDirName = props.getProperty( ORBConstants.DB_DIR_PROPERTY ) +
  46. props.getProperty("file.separator") + dbName +
  47. props.getProperty("file.separator");
  48. dbDir = new File(dbDirName);
  49. if (!dbDir.exists()) dbDir.mkdir();
  50. }
  51. protected void run()
  52. {
  53. try {
  54. // create the persistent name service
  55. NameService ns = new NameService(orb, dbDir);
  56. // add root naming context to initial naming
  57. NamingContext rootContext = ns.initialNamingContext();
  58. InitialNameService ins = InitialNameServiceHelper.narrow(
  59. orb.resolve_initial_references(
  60. ORBConstants.INITIAL_NAME_SERVICE_NAME ));
  61. ins.bind( "NameService", rootContext, true);
  62. System.out.println(CorbaResourceUtil.getText("pnameserv.success"));
  63. // wait for invocations
  64. orb.run();
  65. } catch (Exception ex) {
  66. ex.printStackTrace(System.err);
  67. }
  68. }
  69. }