summaryrefslogtreecommitdiff
path: root/java/test
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2011-05-02 19:33:59 -0700
committerMark Spruiell <mes@zeroc.com>2011-05-02 19:33:59 -0700
commit29fa72f67e9eceebc765d7cbc997a4626797d9b5 (patch)
tree239719dc3ff622d4b3225aa2414bd90091b60357 /java/test
parentupdates for PHP 5.3.6 (diff)
downloadice-29fa72f67e9eceebc765d7cbc997a4626797d9b5.tar.bz2
ice-29fa72f67e9eceebc765d7cbc997a4626797d9b5.tar.xz
ice-29fa72f67e9eceebc765d7cbc997a4626797d9b5.zip
bug 5002 - fixing several Java tests for Android compatibility
Diffstat (limited to 'java/test')
-rw-r--r--java/test/Ice/ami/AllTests.java8
-rw-r--r--java/test/Ice/ami/Client.java2
-rw-r--r--java/test/Ice/classLoader/AllTests.java56
-rw-r--r--java/test/Ice/classLoader/Client.java2
-rw-r--r--java/test/Ice/dispatcher/AllTests.java10
-rw-r--r--java/test/Ice/dispatcher/Client.java16
-rw-r--r--java/test/Ice/dispatcher/Dispatcher.java24
-rw-r--r--java/test/Ice/dispatcher/Server.java25
-rw-r--r--java/test/Ice/dispatcher/TestI.java9
-rw-r--r--java/test/Ice/location/AllTests.java8
-rw-r--r--java/test/Ice/location/Client.java3
-rw-r--r--java/test/Ice/timeout/AllTests.java5
-rw-r--r--java/test/Ice/timeout/Client.java3
-rw-r--r--java/test/Util/Application.java14
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;