Example #1
0
  public int run(String[] args) {
    if (args.length > 0) {
      System.err.println(appName() + ": too many arguments");
      return 1;
    }

    Ice.Properties properties = communicator().getProperties();

    //
    // Create an object adapter
    //
    Ice.ObjectAdapter adapter = communicator().createObjectAdapter("Library");

    //
    // Create an evictor for books.
    //
    Freeze.Evictor evictor =
        Freeze.Util.createBackgroundSaveEvictor(adapter, _envName, "books", null, null, true);
    int evictorSize = properties.getPropertyAsInt("EvictorSize");
    if (evictorSize > 0) {
      evictor.setSize(evictorSize);
    }

    adapter.addServantLocator(evictor, "book");

    //
    // Create the library, and add it to the object adapter.
    //
    LibraryI library = new LibraryI(communicator(), _envName, "authors", evictor);
    adapter.add(library, communicator().stringToIdentity("library"));

    //
    // Create and install a factory for books.
    //
    Ice.ObjectFactory bookFactory = new BookFactory(library);
    communicator().addObjectFactory(bookFactory, Demo.Book.ice_staticId());

    //
    // Everything ok, let's go.
    //
    adapter.activate();

    shutdownOnInterrupt();
    communicator().waitForShutdown();
    defaultInterrupt();

    library.close();
    return 0;
  }
Example #2
0
 LibraryI(Ice.Communicator communicator, String envName, String dbName, Freeze.Evictor evictor) {
   _evictor = evictor;
   _connection = Freeze.Util.createConnection(communicator, envName);
   _authors = new StringIsbnSeqDict(_connection, dbName, true);
 }