summaryrefslogtreecommitdiff
path: root/java/demo/Freeze/phonebook/Server.java
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2002-03-11 13:49:51 +0000
committerMatthew Newhook <matthew@zeroc.com>2002-03-11 13:49:51 +0000
commit826a7e85a43fb74c7678ae15fa565feced35b3c9 (patch)
tree3610204fd6c52ca7ade6ee036826ae7405cdfedc /java/demo/Freeze/phonebook/Server.java
parentperformance improvement (diff)
downloadice-826a7e85a43fb74c7678ae15fa565feced35b3c9.tar.bz2
ice-826a7e85a43fb74c7678ae15fa565feced35b3c9.tar.xz
ice-826a7e85a43fb74c7678ae15fa565feced35b3c9.zip
Freeze fixes. Initial version of PhoneBook server.
Diffstat (limited to 'java/demo/Freeze/phonebook/Server.java')
-rw-r--r--java/demo/Freeze/phonebook/Server.java115
1 files changed, 115 insertions, 0 deletions
diff --git a/java/demo/Freeze/phonebook/Server.java b/java/demo/Freeze/phonebook/Server.java
new file mode 100644
index 00000000000..19c407bdd87
--- /dev/null
+++ b/java/demo/Freeze/phonebook/Server.java
@@ -0,0 +1,115 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+class PhoneBookServer extends Freeze.Application
+{
+ PhoneBookServer(String dbEnvName)
+ {
+ super(dbEnvName);
+ }
+
+ public int
+ runFreeze(String[] args, Freeze.DBEnvironment dbEnv)
+ {
+ Ice.Properties properties = communicator().getProperties();
+
+ Freeze.DB dbPhoneBook = dbEnv.openDB("phonebook", true);
+ Freeze.DB dbContacts = dbEnv.openDB("contacts", true);
+
+ //
+ // Create an Evictor for contacts.
+ //
+ Freeze.Evictor evictor;
+ String value = properties.getProperty("PhoneBook.SaveAfterMutatingOperation");
+ int v = 0;
+ if (value != null)
+ {
+ try
+ {
+ v = Integer.parseInt(value);
+ }
+ catch (NumberFormatException ex)
+ {
+ }
+ }
+
+
+ if(v != 0)
+ {
+ evictor = dbContacts.createEvictor(Freeze.EvictorPersistenceMode.SaveAfterMutatingOperation);
+ }
+ else
+ {
+ evictor = dbContacts.createEvictor(Freeze.EvictorPersistenceMode.SaveUponEviction);
+ }
+
+ value = properties.getProperty("PhoneBook.EvictorSize");
+ if (value != null)
+ {
+ try
+ {
+ v = Integer.parseInt(value);
+ }
+ catch (NumberFormatException ex)
+ {
+ }
+ }
+
+ if(v != 0)
+ {
+ evictor.setSize(v);
+ }
+
+ //
+ // Create an Object Adapter, use the Evictor as Servant Locator.
+ //
+ Ice.ObjectAdapter adapter = communicator().createObjectAdapter("PhoneBookAdapter");
+ adapter.addServantLocator(evictor, "contact");
+
+ //
+ // Create the phonebook, and add it to the Object Adapter.
+ //
+ PhoneBookI phoneBook = new PhoneBookI(adapter, dbPhoneBook, evictor);
+ adapter.add(phoneBook, Ice.Util.stringToIdentity("phonebook"));
+
+ //
+ // Create and install a factory and initializer for contacts.
+ //
+ Ice.ObjectFactory contactFactory = new ContactFactory(phoneBook, evictor);
+ Freeze.ServantInitializer contactInitializer = (Freeze.ServantInitializer)contactFactory;
+ communicator().addObjectFactory(contactFactory, "::Contact");
+ evictor.installServantInitializer(contactInitializer);
+
+ //
+ // Everything ok, let's go.
+ //
+ adapter.activate();
+
+ //
+ // TODO:
+ //
+ //shutdownOnInterrupt();
+ communicator().waitForShutdown();
+
+ //ignoreInterrupt();
+
+ return 0;
+ }
+}
+
+public class Server
+{
+ static public void
+ main(String[] args)
+ {
+ PhoneBookServer app = new PhoneBookServer("db");
+ app.main("Server", args, "config");
+ }
+}