summaryrefslogtreecommitdiff
path: root/java/test/Ice/plugin/plugins/PluginFactory.java
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2012-08-16 15:58:01 +0200
committerJose <jose@zeroc.com>2012-08-16 15:58:01 +0200
commit0b82edbd44b61ab36592f73728e76d1fd11a3aa2 (patch)
tree8f8a0b6d5cb22a95dfc4b2c257d0eb7c0fe62c9b /java/test/Ice/plugin/plugins/PluginFactory.java
parentICE-4820 - Service class public API (diff)
downloadice-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.java73
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;
+ }
+}