diff options
Diffstat (limited to 'java/test')
-rw-r--r-- | java/test/Ice/ami/AllTests.java | 8 | ||||
-rw-r--r-- | java/test/Ice/ami/Client.java | 2 | ||||
-rw-r--r-- | java/test/Ice/classLoader/AllTests.java | 56 | ||||
-rw-r--r-- | java/test/Ice/classLoader/Client.java | 2 | ||||
-rw-r--r-- | java/test/Ice/dispatcher/AllTests.java | 10 | ||||
-rw-r--r-- | java/test/Ice/dispatcher/Client.java | 16 | ||||
-rw-r--r-- | java/test/Ice/dispatcher/Dispatcher.java | 24 | ||||
-rw-r--r-- | java/test/Ice/dispatcher/Server.java | 25 | ||||
-rw-r--r-- | java/test/Ice/dispatcher/TestI.java | 9 | ||||
-rw-r--r-- | java/test/Ice/location/AllTests.java | 8 | ||||
-rw-r--r-- | java/test/Ice/location/Client.java | 3 | ||||
-rw-r--r-- | java/test/Ice/timeout/AllTests.java | 5 | ||||
-rw-r--r-- | java/test/Ice/timeout/Client.java | 3 | ||||
-rw-r--r-- | java/test/Util/Application.java | 14 |
14 files changed, 115 insertions, 70 deletions
diff --git a/java/test/Ice/ami/AllTests.java b/java/test/Ice/ami/AllTests.java index 2c1b21e98e0..1e2a58c0a1c 100644 --- a/java/test/Ice/ami/AllTests.java +++ b/java/test/Ice/ami/AllTests.java @@ -20,6 +20,7 @@ import test.Ice.ami.Test.Callback_TestIntf_op; import test.Ice.ami.Test.Callback_TestIntf_opWithResult; import test.Ice.ami.Test.Callback_TestIntf_opWithUE; import test.Ice.ami.Test.Callback_TestIntf_opWithPayload; +import test.Util.Application; public class AllTests { @@ -548,8 +549,11 @@ public class AllTests } public static void - allTests(Ice.Communicator communicator, PrintWriter out) + allTests(Application app) { + Ice.Communicator communicator = app.communicator(); + PrintWriter out = app.getWriter(); + String sref = "test:default -p 12010"; Ice.ObjectPrx obj = communicator.stringToProxy(sref); test(obj != null); @@ -1029,7 +1033,7 @@ public class AllTests // Ice.InitializationData initData = new Ice.InitializationData(); initData.properties = communicator.getProperties()._clone(); - Ice.Communicator ic = Ice.Util.initialize(initData); + Ice.Communicator ic = app.initialize(initData); Ice.ObjectPrx o = ic.stringToProxy(p.toString()); TestIntfPrx p2 = TestIntfPrxHelper.checkedCast(o); ic.destroy(); diff --git a/java/test/Ice/ami/Client.java b/java/test/Ice/ami/Client.java index 7e07b642d68..f1bed22e65d 100644 --- a/java/test/Ice/ami/Client.java +++ b/java/test/Ice/ami/Client.java @@ -13,7 +13,7 @@ public class Client extends test.Util.Application { public int run(String[] args) { - AllTests.allTests(communicator(), getWriter()); + AllTests.allTests(this); return 0; } diff --git a/java/test/Ice/classLoader/AllTests.java b/java/test/Ice/classLoader/AllTests.java index 66bc54d138d..425f5cd2c53 100644 --- a/java/test/Ice/classLoader/AllTests.java +++ b/java/test/Ice/classLoader/AllTests.java @@ -16,6 +16,7 @@ import test.Ice.classLoader.Test.ConcreteClass; import test.Ice.classLoader.Test.E; import test.Ice.classLoader.Test.InitialPrx; import test.Ice.classLoader.Test.InitialPrxHelper; +import test.Util.Application; public class AllTests { @@ -70,20 +71,24 @@ public class AllTests } public static void - allTests(boolean collocated, PrintWriter out, Ice.InitializationData initData) + allTests(Application app, boolean collocated) { + Ice.Communicator communicator = app.communicator(); + PrintWriter out = app.getWriter(); + // // Verify that the class loader is used for Slice packages. // { out.print("testing package... "); out.flush(); - Ice.InitializationData init = (Ice.InitializationData)initData.clone(); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = communicator.getProperties()._clone(); MyClassLoader classLoader = new MyClassLoader(); - init.classLoader = classLoader; - Ice.Communicator communicator = Ice.Util.initialize(init); + initData.classLoader = classLoader; + Ice.Communicator ic = app.initialize(initData); test(classLoader.check("test.Ice.classLoader.Test._Marker")); - communicator.destroy(); + ic.destroy(); out.println("ok"); } @@ -93,34 +98,34 @@ public class AllTests { out.print("testing plug-in... "); out.flush(); - Ice.InitializationData init = (Ice.InitializationData)initData.clone(); - init.properties = (Ice.Properties)initData.properties._clone(); - init.properties.setProperty("Ice.Plugin.Test", "test.Ice.classLoader.PluginFactoryI"); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = communicator.getProperties()._clone(); + initData.properties.setProperty("Ice.Plugin.Test", "test.Ice.classLoader.PluginFactoryI"); MyClassLoader classLoader = new MyClassLoader(); - init.classLoader = classLoader; - Ice.Communicator communicator = Ice.Util.initialize(init); + initData.classLoader = classLoader; + Ice.Communicator ic = app.initialize(initData); test(classLoader.check("test.Ice.classLoader.PluginFactoryI")); - communicator.destroy(); + ic.destroy(); out.println("ok"); } // // Verify that the class loader is used for IceSSL certificate verifiers and password callbacks. // - if(initData.properties.getProperty("Ice.Default.Protocol").equals("ssl")) + if(communicator.getProperties().getProperty("Ice.Default.Protocol").equals("ssl")) { out.print("testing IceSSL certificate verifier and password callback... "); out.flush(); - Ice.InitializationData init = (Ice.InitializationData)initData.clone(); - init.properties = (Ice.Properties)initData.properties._clone(); - init.properties.setProperty("IceSSL.CertVerifier", "test.Ice.classLoader.CertificateVerifierI"); - init.properties.setProperty("IceSSL.PasswordCallback", "test.Ice.classLoader.PasswordCallbackI"); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = communicator.getProperties()._clone(); + initData.properties.setProperty("IceSSL.CertVerifier", "test.Ice.classLoader.CertificateVerifierI"); + initData.properties.setProperty("IceSSL.PasswordCallback", "test.Ice.classLoader.PasswordCallbackI"); MyClassLoader classLoader = new MyClassLoader(); - init.classLoader = classLoader; - Ice.Communicator communicator = Ice.Util.initialize(init); + initData.classLoader = classLoader; + Ice.Communicator ic = app.initialize(initData); test(classLoader.check("test.Ice.classLoader.CertificateVerifierI")); test(classLoader.check("test.Ice.classLoader.PasswordCallbackI")); - communicator.destroy(); + ic.destroy(); out.println("ok"); } @@ -128,13 +133,14 @@ public class AllTests // Marshaling tests. // { - Ice.InitializationData init = (Ice.InitializationData)initData.clone(); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = communicator.getProperties()._clone(); MyClassLoader classLoader = new MyClassLoader(); - init.classLoader = classLoader; - Ice.Communicator communicator = Ice.Util.initialize(init); + initData.classLoader = classLoader; + Ice.Communicator ic = app.initialize(initData); String ref = "initial:default -p 12010"; - Ice.ObjectPrx base = communicator.stringToProxy(ref); + Ice.ObjectPrx base = ic.stringToProxy(ref); test(base != null); InitialPrx initial = InitialPrxHelper.checkedCast(base); @@ -174,7 +180,7 @@ public class AllTests test(classLoader.check("test.Ice.classLoader.Test.AbstractClass")); classLoader.reset(); - communicator.addObjectFactory(new MyObjectFactory(), "::Test::AbstractClass"); + ic.addObjectFactory(new MyObjectFactory(), "::Test::AbstractClass"); AbstractClass ac = initial.getAbstractClass(); test(ac != null); test(!classLoader.check("Test.AbstractClass")); @@ -202,7 +208,7 @@ public class AllTests out.println("ok"); initial.shutdown(); - communicator.destroy(); + ic.destroy(); } } } diff --git a/java/test/Ice/classLoader/Client.java b/java/test/Ice/classLoader/Client.java index 3c162dfd13f..7e4ace15c35 100644 --- a/java/test/Ice/classLoader/Client.java +++ b/java/test/Ice/classLoader/Client.java @@ -13,7 +13,7 @@ public class Client extends test.Util.Application { public int run(String[] args) { - AllTests.allTests(false, getWriter(), _initData); + AllTests.allTests(this, false); return 0; } diff --git a/java/test/Ice/dispatcher/AllTests.java b/java/test/Ice/dispatcher/AllTests.java index 58caf252c2f..e69c511ab1f 100644 --- a/java/test/Ice/dispatcher/AllTests.java +++ b/java/test/Ice/dispatcher/AllTests.java @@ -63,7 +63,7 @@ public class AllTests } public static void - allTests(Ice.Communicator communicator, PrintWriter out) + allTests(Ice.Communicator communicator, PrintWriter out, final Dispatcher dispatcher) { String sref = "test:default -p 12010"; Ice.ObjectPrx obj = communicator.stringToProxy(sref); @@ -87,7 +87,7 @@ public class AllTests public void response() { - test(Dispatcher.isDispatcherThread()); + test(dispatcher.isDispatcherThread()); called(); } @@ -114,7 +114,7 @@ public class AllTests exception(Ice.LocalException ex) { test(ex instanceof Ice.NoEndpointException); - test(Dispatcher.isDispatcherThread()); + test(dispatcher.isDispatcherThread()); called(); } }; @@ -127,7 +127,7 @@ public class AllTests public void response() { - test(Dispatcher.isDispatcherThread()); + test(dispatcher.isDispatcherThread()); } public void @@ -139,7 +139,7 @@ public class AllTests public void sent(boolean sentSynchronously) { - test(sentSynchronously || Dispatcher.isDispatcherThread()); + test(sentSynchronously || dispatcher.isDispatcherThread()); } }; diff --git a/java/test/Ice/dispatcher/Client.java b/java/test/Ice/dispatcher/Client.java index 67ce0ac07e9..34252606782 100644 --- a/java/test/Ice/dispatcher/Client.java +++ b/java/test/Ice/dispatcher/Client.java @@ -13,16 +13,19 @@ public class Client extends test.Util.Application { public int run(String[] args) { - AllTests.allTests(communicator(), getWriter()); + AllTests.allTests(communicator(), getWriter(), _dispatcher); + _dispatcher.terminate(); return 0; } protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { + assert(_dispatcher == null); + _dispatcher = new Dispatcher(); Ice.InitializationData initData = new Ice.InitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.dispatcher"); - initData.dispatcher = new Dispatcher(); + initData.dispatcher = _dispatcher; return initData; } @@ -30,8 +33,15 @@ public class Client extends test.Util.Application { Client app = new Client(); int result = app.main("Client", args); - Dispatcher.terminate(); System.gc(); System.exit(result); } + + // + // The Dispatcher class uses a static "_instance" member in other language + // mappings. In Java, we avoid the use of static members because we need to + // maintain support for Android (in which the client and server run in the + // same process). + // + private Dispatcher _dispatcher; } diff --git a/java/test/Ice/dispatcher/Dispatcher.java b/java/test/Ice/dispatcher/Dispatcher.java index 9b6218c7c8f..0ae05491f4f 100644 --- a/java/test/Ice/dispatcher/Dispatcher.java +++ b/java/test/Ice/dispatcher/Dispatcher.java @@ -22,8 +22,6 @@ public class Dispatcher implements Runnable, Ice.Dispatcher public Dispatcher() { - assert(_instance == null); - _instance = this; _thread = new Thread(this); _thread.start(); } @@ -84,19 +82,19 @@ public class Dispatcher implements Runnable, Ice.Dispatcher } } - static public void + public void terminate() { - synchronized(_instance) + synchronized(this) { - _instance._terminated = true; - _instance.notify(); + _terminated = true; + notify(); } while(true) { try { - _instance._thread.join(); + _thread.join(); break; } catch(java.lang.InterruptedException ex) @@ -105,15 +103,13 @@ public class Dispatcher implements Runnable, Ice.Dispatcher } } - static public boolean + public boolean isDispatcherThread() { - return Thread.currentThread() == _instance._thread; + return Thread.currentThread() == _thread; } - static Dispatcher _instance; - private java.util.Queue<Runnable> _calls = new java.util.LinkedList<Runnable>(); - Thread _thread; - boolean _terminated = false; -}; + private Thread _thread; + private boolean _terminated = false; +} diff --git a/java/test/Ice/dispatcher/Server.java b/java/test/Ice/dispatcher/Server.java index 0d9841aa952..b53e9eb5a71 100644 --- a/java/test/Ice/dispatcher/Server.java +++ b/java/test/Ice/dispatcher/Server.java @@ -19,7 +19,8 @@ public class Server extends test.Util.Application Ice.ObjectAdapter adapter = communicator().createObjectAdapter("TestAdapter"); Ice.ObjectAdapter adapter2 = communicator().createObjectAdapter("ControllerAdapter"); - adapter.add(new TestI(), communicator().stringToIdentity("test")); + assert(_dispatcher != null); + adapter.add(new TestI(_dispatcher), communicator().stringToIdentity("test")); adapter.activate(); adapter2.add(new TestControllerI(adapter), communicator().stringToIdentity("testController")); adapter2.activate(); @@ -29,23 +30,41 @@ public class Server extends test.Util.Application protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { + assert(_dispatcher == null); + _dispatcher = new Dispatcher(); Ice.InitializationData initData = new Ice.InitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.dispatcher"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); initData.properties.setProperty("ControllerAdapter.Endpoints", "tcp -p 12011"); initData.properties.setProperty("ControllerAdapter.ThreadPool.Size", "1"); - initData.dispatcher = new Dispatcher(); + initData.dispatcher = _dispatcher; return initData; } + public void terminate() + { + if(_dispatcher != null) + { + _dispatcher.terminate(); + } + } + public static void main(String[] args) { Server app = new Server(); int result = app.main("Server", args); - Dispatcher.terminate(); + app.terminate(); System.gc(); System.exit(result); } + + // + // The Dispatcher class uses a static "_instance" member in other language + // mappings. In Java, we avoid the use of static members because we need to + // maintain support for Android (in which the client and server run in the + // same process). + // + private Dispatcher _dispatcher; } diff --git a/java/test/Ice/dispatcher/TestI.java b/java/test/Ice/dispatcher/TestI.java index dcda8254fd0..204ef6a4820 100644 --- a/java/test/Ice/dispatcher/TestI.java +++ b/java/test/Ice/dispatcher/TestI.java @@ -22,20 +22,21 @@ public class TestI extends _TestIntfDisp } } - TestI() + TestI(Dispatcher dispatcher) { + _dispatcher = dispatcher; } public void op(Ice.Current current) { - test(Dispatcher.isDispatcherThread()); + test(_dispatcher.isDispatcherThread()); } public void opWithPayload(byte[] seq, Ice.Current current) { - test(Dispatcher.isDispatcherThread()); + test(_dispatcher.isDispatcherThread()); } public void @@ -43,4 +44,6 @@ public class TestI extends _TestIntfDisp { current.adapter.getCommunicator().shutdown(); } + + private Dispatcher _dispatcher; } diff --git a/java/test/Ice/location/AllTests.java b/java/test/Ice/location/AllTests.java index c5f65bfb2d4..a2fb03c618a 100644 --- a/java/test/Ice/location/AllTests.java +++ b/java/test/Ice/location/AllTests.java @@ -22,6 +22,7 @@ import test.Ice.location.Test.TestLocatorPrx; import test.Ice.location.Test.TestLocatorPrxHelper; import test.Ice.location.Test.TestLocatorRegistryPrx; import test.Ice.location.Test.TestLocatorRegistryPrxHelper; +import test.Util.Application; public class AllTests { @@ -35,9 +36,12 @@ public class AllTests } public static void - allTests(Ice.Communicator communicator, PrintWriter out) + allTests(Application app) throws Ice.AdapterAlreadyActiveException, Ice.AdapterNotFoundException, InterruptedException { + Ice.Communicator communicator = app.communicator(); + PrintWriter out = app.getWriter(); + ServerManagerPrx manager = ServerManagerPrxHelper.checkedCast( communicator.stringToProxy("ServerManager :default -p 12010")); test(manager != null); @@ -545,7 +549,7 @@ public class AllTests Ice.InitializationData initData = new Ice.InitializationData(); initData.properties = communicator.getProperties()._clone(); initData.properties.setProperty("Ice.BackgroundLocatorCacheUpdates", "1"); - Ice.Communicator ic = Ice.Util.initialize(initData); + Ice.Communicator ic = app.initialize(initData); registry.setAdapterDirectProxy("TestAdapter5", locator.findAdapterById("TestAdapter")); registry.addObject(communicator.stringToProxy("test3@TestAdapter")); diff --git a/java/test/Ice/location/Client.java b/java/test/Ice/location/Client.java index 8aa0a7a9f30..03b378b9dc9 100644 --- a/java/test/Ice/location/Client.java +++ b/java/test/Ice/location/Client.java @@ -13,10 +13,9 @@ public class Client extends test.Util.Application { public int run(String[] args) { - Ice.Communicator communicator = communicator(); try { - AllTests.allTests(communicator, getWriter()); + AllTests.allTests(this); } catch(Ice.AdapterAlreadyActiveException ex) { diff --git a/java/test/Ice/timeout/AllTests.java b/java/test/Ice/timeout/AllTests.java index e6d687b9250..8eaae86c2e5 100644 --- a/java/test/Ice/timeout/AllTests.java +++ b/java/test/Ice/timeout/AllTests.java @@ -131,9 +131,10 @@ public class AllTests } public static TimeoutPrx - allTests(test.Util.Application app, PrintWriter out) + allTests(test.Util.Application app) { Ice.Communicator communicator = app.communicator(); + PrintWriter out = app.getWriter(); String sref = "timeout:default -p 12010"; Ice.ObjectPrx obj = communicator.stringToProxy(sref); @@ -478,7 +479,7 @@ public class AllTests Ice.InitializationData initData = new Ice.InitializationData(); initData.properties = communicator.getProperties()._clone(); initData.properties.setProperty("Ice.Override.CloseTimeout", "200"); - Ice.Communicator comm = Ice.Util.initialize(initData); + Ice.Communicator comm = app.initialize(initData); Ice.Connection connection = comm.stringToProxy(sref).ice_getConnection(); timeout.holdAdapter(750); long now = System.nanoTime(); diff --git a/java/test/Ice/timeout/Client.java b/java/test/Ice/timeout/Client.java index 6fcf908f0b9..cb7af62f019 100644 --- a/java/test/Ice/timeout/Client.java +++ b/java/test/Ice/timeout/Client.java @@ -15,8 +15,7 @@ public class Client extends test.Util.Application { public int run(String[] args) { - Ice.Communicator communicator = communicator(); - TimeoutPrx timeout = AllTests.allTests(this, getWriter()); + TimeoutPrx timeout = AllTests.allTests(this); timeout.shutdown(); return 0; } diff --git a/java/test/Util/Application.java b/java/test/Util/Application.java index 02d5cc37d2d..198baba36b3 100644 --- a/java/test/Util/Application.java +++ b/java/test/Util/Application.java @@ -23,12 +23,12 @@ public abstract class Application public interface ServerReadyListener { void serverReady(); - }; + } public interface CommunicatorListener { void communicatorInitialized(Communicator c); - }; + } public Application() @@ -65,13 +65,13 @@ public abstract class Application // // We parse the properties here to extract Ice.ProgramName. - // + // StringSeqHolder argHolder = new StringSeqHolder(args); if(initializationData == null) { initializationData = getInitData(argHolder); } - + InitializationData initData; if(initializationData != null) { @@ -85,7 +85,7 @@ public abstract class Application // // If the process logger is the default logger, we replace it with a - // a logger which is using the program name for the prefix. + // a logger that uses the program name as the prefix. // if(Util.getProcessLogger() instanceof LoggerI) { @@ -167,7 +167,9 @@ public abstract class Application } } + // // Initialize a new communicator. + // public Ice.Communicator initialize(InitializationData initData) { Ice.Communicator communicator = Util.initialize(initData); @@ -180,9 +182,11 @@ public abstract class Application public abstract int run(String[] args); + // // Hook to override the initialization data. This hook is // necessary because some properties must be set prior to // communicator initialization. + // protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { return null; |