diff options
author | Jose <jose@zeroc.com> | 2012-08-16 15:58:01 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2012-08-16 15:58:01 +0200 |
commit | 0b82edbd44b61ab36592f73728e76d1fd11a3aa2 (patch) | |
tree | 8f8a0b6d5cb22a95dfc4b2c257d0eb7c0fe62c9b /java/test/Ice/plugin/plugins/PluginFactory.java | |
parent | ICE-4820 - Service class public API (diff) | |
download | ice-0b82edbd44b61ab36592f73728e76d1fd11a3aa2.tar.bz2 ice-0b82edbd44b61ab36592f73728e76d1fd11a3aa2.tar.xz ice-0b82edbd44b61ab36592f73728e76d1fd11a3aa2.zip |
ICE-4609 - Add ability to load shared library with full path
- C++/Java now also support to load Services and Plugins from
a full path, this was already supported by .NET
- Fixed the parsing of plug-in arguments to correct split the
arguments
- Fixed Plugin manager destroy C++/Java/C#, the plugin must
are now destroyed in initialization reverse order as documented.
Diffstat (limited to 'java/test/Ice/plugin/plugins/PluginFactory.java')
-rw-r--r-- | java/test/Ice/plugin/plugins/PluginFactory.java | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/java/test/Ice/plugin/plugins/PluginFactory.java b/java/test/Ice/plugin/plugins/PluginFactory.java new file mode 100644 index 00000000000..dff16aa61f8 --- /dev/null +++ b/java/test/Ice/plugin/plugins/PluginFactory.java @@ -0,0 +1,73 @@ +// ********************************************************************** +// +// 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. +// +// ********************************************************************** + +package test.Ice.plugin.plugins; + +public class PluginFactory implements Ice.PluginFactory +{ + public Ice.Plugin create(Ice.Communicator communicator, String name, String[] args) + { + return new Plugin(communicator, args); + } + + static class Plugin implements Ice.Plugin + { + public Plugin(Ice.Communicator communicator, String[] args) + { + _communicator = communicator; + _args = args; + } + + public void initialize() + { + _initialized = true; + test(_args.length == 3); + test(_args[0].equals("C:\\Program Files\\")); + test(_args[1].equals("--DatabasePath")); + test(_args[2].equals("C:\\Program Files\\Application\\db")); + } + + public void destroy() + { + _destroyed = true; + } + + protected void finalize() throws Throwable + { + try + { + if(!_initialized) + { + System.out.println("test.Ice.plugin.plugins.Plugin not initialized"); + } + if(!_destroyed) + { + System.out.println("test.Ice.plugin.plugins.Plugin not destroyed"); + } + } + finally + { + super.finalize(); + } + } + + private static void test(boolean b) + { + if(!b) + { + throw new RuntimeException(); + } + } + + private Ice.Communicator _communicator; + private String[] _args; + private boolean _initialized = false; + private boolean _destroyed = false; + } +} |