summaryrefslogtreecommitdiff
path: root/java/demo/book/map_filesystem/Server.java
diff options
context:
space:
mode:
authorMichi Henning <michi@zeroc.com>2008-05-12 00:26:34 +1000
committerMichi Henning <michi@zeroc.com>2008-05-12 00:26:34 +1000
commitc4597d776f109d48a29031e01a99a4a8664b470c (patch)
treefad36531d09c263ba8428495649162b922584e89 /java/demo/book/map_filesystem/Server.java
parentFixed incorrect file permissions. (diff)
downloadice-c4597d776f109d48a29031e01a99a4a8664b470c.tar.bz2
ice-c4597d776f109d48a29031e01a99a4a8664b470c.tar.xz
ice-c4597d776f109d48a29031e01a99a4a8664b470c.zip
Added map filesystem demo for Java.
Fixed a few bugs and style issues in C++ map filesystem demo.
Diffstat (limited to 'java/demo/book/map_filesystem/Server.java')
-rw-r--r--java/demo/book/map_filesystem/Server.java87
1 files changed, 87 insertions, 0 deletions
diff --git a/java/demo/book/map_filesystem/Server.java b/java/demo/book/map_filesystem/Server.java
new file mode 100644
index 00000000000..b9666633b71
--- /dev/null
+++ b/java/demo/book/map_filesystem/Server.java
@@ -0,0 +1,87 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2008 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+import Filesystem.*;
+import FilesystemI.*;
+
+public class Server extends Ice.Application
+{
+ public
+ Server(String envName)
+ {
+ _envName = envName;
+ }
+
+ public int
+ run(String[] args)
+ {
+ //
+ // Terminate cleanly on receipt of a signal.
+ //
+ shutdownOnInterrupt();
+
+ //
+ // Install object factories.
+ //
+ communicator().addObjectFactory(PersistentFile.ice_factory(), PersistentFile.ice_staticId());
+ communicator().addObjectFactory(PersistentDirectory.ice_factory(), PersistentDirectory.ice_staticId());
+
+ //
+ // Create an object adapter.
+ //
+ Ice.ObjectAdapter adapter =
+ communicator().createObjectAdapterWithEndpoints("MapFilesystem", "default -p 10000");
+
+ DirectoryI._envName = _envName;
+ DirectoryI._dbName = "mapfs";
+ FileI._envName = _envName;
+ FileI._dbName = "mapfs";
+
+ //
+ // Find the persistent node for the root directory,
+ // or create it if not found.
+ //
+ Freeze.Connection connection = Freeze.Util.createConnection(communicator(), _envName);
+ IdentityNodeMap persistentMap = new IdentityNodeMap(connection, FileI._dbName, true);
+
+ Ice.Identity rootId = communicator().stringToIdentity("RootDir");
+ PersistentDirectory pRoot = (PersistentDirectory)persistentMap.get(rootId);
+ if(pRoot == null)
+ {
+ pRoot = new PersistentDirectory();
+ pRoot.name ="/";
+ pRoot.nodes = new java.util.HashMap<java.lang.String, NodeDesc>();
+ persistentMap.put(rootId, pRoot);
+ }
+ DirectoryI dir = new DirectoryI(adapter, rootId, pRoot, null);
+ dir.activate(adapter);
+
+ //
+ // Ready to accept requests now.
+ //
+ adapter.activate();
+
+ //
+ // Wait until we are done.
+ //
+ communicator().waitForShutdown();
+
+ return 0;
+ }
+
+ public static void
+ main(String[] args)
+ {
+ Server app = new Server("db");
+ int status = app.main("Server", args, "config.server");
+ System.exit(status);
+ }
+
+ private String _envName;
+}