diff options
Diffstat (limited to 'java/demo/Freeze/library/Server.java')
-rw-r--r-- | java/demo/Freeze/library/Server.java | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/java/demo/Freeze/library/Server.java b/java/demo/Freeze/library/Server.java new file mode 100644 index 00000000000..e4a082b9cd3 --- /dev/null +++ b/java/demo/Freeze/library/Server.java @@ -0,0 +1,78 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2011 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. +// +// ********************************************************************** + +class Server extends Ice.Application +{ + 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; + } + + Server(String envName) + { + _envName = envName; + } + + static public void + main(String[] args) + { + Server app = new Server("db"); + app.main("demo.Freeze.library.Server", args, "config.server"); + } + + private String _envName; +} |