diff options
29 files changed, 193 insertions, 121 deletions
diff --git a/android/.idea/gradle.xml b/android/.idea/gradle.xml index 2f43923293d..2c5b2fca98a 100644 --- a/android/.idea/gradle.xml +++ b/android/.idea/gradle.xml @@ -13,6 +13,7 @@ <option value="$PROJECT_DIR$/demo/chat" /> <option value="$PROJECT_DIR$/demo/hello" /> <option value="$PROJECT_DIR$/demo/library" /> + <option value="$PROJECT_DIR$/src/Freeze" /> <option value="$PROJECT_DIR$/src/Glacier2" /> <option value="$PROJECT_DIR$/src/Ice" /> <option value="$PROJECT_DIR$/src/IceBox" /> diff --git a/android/.idea/modules.xml b/android/.idea/modules.xml index f532c8a12fd..7952df3471f 100644 --- a/android/.idea/modules.xml +++ b/android/.idea/modules.xml @@ -2,17 +2,18 @@ <project version="4"> <component name="ProjectModuleManager"> <modules> - <module fileurl="file://$PROJECT_DIR$/src/Glacier2/Glacier2.iml" filepath="$PROJECT_DIR$/src/Glacier2/Glacier2.iml" /> - <module fileurl="file://$PROJECT_DIR$/src/Ice/Ice.iml" filepath="$PROJECT_DIR$/src/Ice/Ice.iml" /> - <module fileurl="file://$PROJECT_DIR$/src/IceBox/IceBox.iml" filepath="$PROJECT_DIR$/src/IceBox/IceBox.iml" /> - <module fileurl="file://$PROJECT_DIR$/src/IceDiscovery/IceDiscovery.iml" filepath="$PROJECT_DIR$/src/IceDiscovery/IceDiscovery.iml" /> - <module fileurl="file://$PROJECT_DIR$/src/IceGrid/IceGrid.iml" filepath="$PROJECT_DIR$/src/IceGrid/IceGrid.iml" /> - <module fileurl="file://$PROJECT_DIR$/src/IcePatch2/IcePatch2.iml" filepath="$PROJECT_DIR$/src/IcePatch2/IcePatch2.iml" /> - <module fileurl="file://$PROJECT_DIR$/src/IceStorm/IceStorm.iml" filepath="$PROJECT_DIR$/src/IceStorm/IceStorm.iml" /> <module fileurl="file://$PROJECT_DIR$/android.iml" filepath="$PROJECT_DIR$/android.iml" /> <module fileurl="file://$PROJECT_DIR$/buildSrc/buildSrc.iml" filepath="$PROJECT_DIR$/buildSrc/buildSrc.iml" /> <module fileurl="file://$PROJECT_DIR$/demo/chat/chat.iml" filepath="$PROJECT_DIR$/demo/chat/chat.iml" /> + <module fileurl="file://$PROJECT_DIR$/src/Freeze/freeze.iml" filepath="$PROJECT_DIR$/src/Freeze/freeze.iml" /> + <module fileurl="file://$PROJECT_DIR$/src/Glacier2/glacier2.iml" filepath="$PROJECT_DIR$/src/Glacier2/glacier2.iml" /> <module fileurl="file://$PROJECT_DIR$/demo/hello/hello.iml" filepath="$PROJECT_DIR$/demo/hello/hello.iml" /> + <module fileurl="file://$PROJECT_DIR$/src/Ice/ice.iml" filepath="$PROJECT_DIR$/src/Ice/ice.iml" /> + <module fileurl="file://$PROJECT_DIR$/src/IceBox/icebox.iml" filepath="$PROJECT_DIR$/src/IceBox/icebox.iml" /> + <module fileurl="file://$PROJECT_DIR$/src/IceDiscovery/icediscovery.iml" filepath="$PROJECT_DIR$/src/IceDiscovery/icediscovery.iml" /> + <module fileurl="file://$PROJECT_DIR$/src/IceGrid/icegrid.iml" filepath="$PROJECT_DIR$/src/IceGrid/icegrid.iml" /> + <module fileurl="file://$PROJECT_DIR$/src/IcePatch2/icepatch2.iml" filepath="$PROJECT_DIR$/src/IcePatch2/icepatch2.iml" /> + <module fileurl="file://$PROJECT_DIR$/src/IceStorm/icestorm.iml" filepath="$PROJECT_DIR$/src/IceStorm/icestorm.iml" /> <module fileurl="file://$PROJECT_DIR$/demo/library/library.iml" filepath="$PROJECT_DIR$/demo/library/library.iml" /> <module fileurl="file://$PROJECT_DIR$/test/test.iml" filepath="$PROJECT_DIR$/test/test.iml" /> <module fileurl="file://$PROJECT_DIR$/test/android/testApp.iml" filepath="$PROJECT_DIR$/test/android/testApp.iml" /> diff --git a/android/demo/chat/chat.iml b/android/demo/chat/chat.iml index d6a2b1593d9..8b5fe2ec0a5 100644 --- a/android/demo/chat/chat.iml +++ b/android/demo/chat/chat.iml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="android" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> +<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="com.zeroc" external.system.module.version="3.6b" type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="android-gradle" name="Android-Gradle"> <configuration> @@ -81,10 +81,10 @@ <excludeFolder url="file://$MODULE_DIR$/build/outputs" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> - <orderEntry type="jdk" jdkName="Android API 21 Platform" jdkType="Android SDK" /> + <orderEntry type="jdk" jdkName="Android API 17 Platform" jdkType="Android SDK" /> <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="library" exported="" name="Ice" level="project" /> - <orderEntry type="library" exported="" name="Glacier2" level="project" /> + <orderEntry type="library" exported="" name="glacier2-3.6b" level="project" /> + <orderEntry type="library" exported="" name="ice-3.6b" level="project" /> </component> </module> diff --git a/android/demo/chat/src/main/res/raw/client.bks b/android/demo/chat/src/main/res/raw/client.bks Binary files differindex a03b721e4bd..b1f4d3f0a6a 100644 --- a/android/demo/chat/src/main/res/raw/client.bks +++ b/android/demo/chat/src/main/res/raw/client.bks diff --git a/android/demo/hello/hello.iml b/android/demo/hello/hello.iml index 4b44ac3ad2f..76a08c5db9a 100644 --- a/android/demo/hello/hello.iml +++ b/android/demo/hello/hello.iml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="android" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> +<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="com.zeroc" external.system.module.version="3.6b" type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="android-gradle" name="Android-Gradle"> <configuration> @@ -81,9 +81,9 @@ <excludeFolder url="file://$MODULE_DIR$/build/outputs" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> - <orderEntry type="jdk" jdkName="Android API 21 Platform" jdkType="Android SDK" /> + <orderEntry type="jdk" jdkName="Android API 17 Platform" jdkType="Android SDK" /> <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="library" exported="" name="Ice" level="project" /> + <orderEntry type="library" exported="" name="ice-3.6b" level="project" /> </component> </module> diff --git a/android/demo/hello/src/main/res/raw/client.bks b/android/demo/hello/src/main/res/raw/client.bks Binary files differindex a03b721e4bd..b1f4d3f0a6a 100644 --- a/android/demo/hello/src/main/res/raw/client.bks +++ b/android/demo/hello/src/main/res/raw/client.bks diff --git a/android/demo/library/library.iml b/android/demo/library/library.iml index dfad919a020..b521fac353b 100644 --- a/android/demo/library/library.iml +++ b/android/demo/library/library.iml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="android" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> +<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="com.zeroc" external.system.module.version="3.6b" type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="android-gradle" name="Android-Gradle"> <configuration> @@ -81,10 +81,10 @@ <excludeFolder url="file://$MODULE_DIR$/build/outputs" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> - <orderEntry type="jdk" jdkName="Android API 21 Platform" jdkType="Android SDK" /> + <orderEntry type="jdk" jdkName="Android API 17 Platform" jdkType="Android SDK" /> <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="library" exported="" name="Ice" level="project" /> - <orderEntry type="library" exported="" name="Glacier2" level="project" /> + <orderEntry type="library" exported="" name="glacier2-3.6b" level="project" /> + <orderEntry type="library" exported="" name="ice-3.6b" level="project" /> </component> </module> diff --git a/android/demo/library/src/main/res/raw/client.bks b/android/demo/library/src/main/res/raw/client.bks Binary files differindex a03b721e4bd..b1f4d3f0a6a 100644 --- a/android/demo/library/src/main/res/raw/client.bks +++ b/android/demo/library/src/main/res/raw/client.bks diff --git a/android/src/Freeze/freeze.iml b/android/src/Freeze/freeze.iml new file mode 100644 index 00000000000..22667efcc7e --- /dev/null +++ b/android/src/Freeze/freeze.iml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="com.zeroc" external.system.module.version="3.6b" type="JAVA_MODULE" version="4"> + <component name="FacetManager"> + <facet type="android-gradle" name="Android-Gradle"> + <configuration> + <option name="GRADLE_PROJECT_PATH" value=":freeze" /> + </configuration> + </facet> + </component> + <component name="NewModuleRootManager" inherit-compiler-output="true"> + <exclude-output /> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + </component> +</module> + diff --git a/android/src/Glacier2/Glacier2.iml b/android/src/Glacier2/glacier2.iml index 6b6691c8110..42c077f2345 100644 --- a/android/src/Glacier2/Glacier2.iml +++ b/android/src/Glacier2/glacier2.iml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="android" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> +<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="com.zeroc" external.system.module.version="3.6b" type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="android-gradle" name="Android-Gradle"> <configuration> - <option name="GRADLE_PROJECT_PATH" value=":Glacier2" /> + <option name="GRADLE_PROJECT_PATH" value=":glacier2" /> </configuration> </facet> <facet type="java-gradle" name="Java-Gradle"> @@ -33,7 +33,7 @@ </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="module" module-name="Ice" exported="" /> + <orderEntry type="module" module-name="ice" exported="" /> </component> </module> diff --git a/android/src/Ice/Ice.iml b/android/src/Ice/ice.iml index f67164fd389..6930a46aff4 100644 --- a/android/src/Ice/Ice.iml +++ b/android/src/Ice/ice.iml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="android" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> +<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="com.zeroc" external.system.module.version="3.6b" type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="android-gradle" name="Android-Gradle"> <configuration> - <option name="GRADLE_PROJECT_PATH" value=":Ice" /> + <option name="GRADLE_PROJECT_PATH" value=":ice" /> </configuration> </facet> <facet type="java-gradle" name="Java-Gradle"> diff --git a/android/src/IceBox/IceBox.iml b/android/src/IceBox/icebox.iml index 7da3c706634..2ef993257c2 100644 --- a/android/src/IceBox/IceBox.iml +++ b/android/src/IceBox/icebox.iml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="android" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> +<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="com.zeroc" external.system.module.version="3.6b" type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="android-gradle" name="Android-Gradle"> <configuration> - <option name="GRADLE_PROJECT_PATH" value=":IceBox" /> + <option name="GRADLE_PROJECT_PATH" value=":icebox" /> </configuration> </facet> <facet type="java-gradle" name="Java-Gradle"> @@ -33,7 +33,7 @@ </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="module" module-name="Ice" exported="" /> + <orderEntry type="module" module-name="ice" exported="" /> </component> </module> diff --git a/android/src/IceDiscovery/IceDiscovery.iml b/android/src/IceDiscovery/icediscovery.iml index 09988761e6f..855cc75aa1d 100644 --- a/android/src/IceDiscovery/IceDiscovery.iml +++ b/android/src/IceDiscovery/icediscovery.iml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="android" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> +<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="com.zeroc" external.system.module.version="3.6b" type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="android-gradle" name="Android-Gradle"> <configuration> - <option name="GRADLE_PROJECT_PATH" value=":IceDiscovery" /> + <option name="GRADLE_PROJECT_PATH" value=":icediscovery" /> </configuration> </facet> <facet type="java-gradle" name="Java-Gradle"> @@ -24,6 +24,7 @@ <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" /> <excludeFolder url="file://$MODULE_DIR$/.gradle" /> <excludeFolder url="file://$MODULE_DIR$/build/classes" /> + <excludeFolder url="file://$MODULE_DIR$/build/default.d.xml" /> <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" /> <excludeFolder url="file://$MODULE_DIR$/build/set1.d.xml" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> @@ -33,7 +34,7 @@ </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="module" module-name="Ice" exported="" /> + <orderEntry type="module" module-name="ice" exported="" /> </component> </module> diff --git a/android/src/IceGrid/IceGrid.iml b/android/src/IceGrid/icegrid.iml index 225424f7823..9c76e036755 100644 --- a/android/src/IceGrid/IceGrid.iml +++ b/android/src/IceGrid/icegrid.iml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="android" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> +<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="com.zeroc" external.system.module.version="3.6b" type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="android-gradle" name="Android-Gradle"> <configuration> - <option name="GRADLE_PROJECT_PATH" value=":IceGrid" /> + <option name="GRADLE_PROJECT_PATH" value=":icegrid" /> </configuration> </facet> <facet type="java-gradle" name="Java-Gradle"> @@ -33,8 +33,8 @@ </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="module" module-name="Ice" exported="" /> - <orderEntry type="module" module-name="Glacier2" exported="" /> + <orderEntry type="module" module-name="ice" exported="" /> + <orderEntry type="module" module-name="glacier2" exported="" /> </component> </module> diff --git a/android/src/IcePatch2/IcePatch2.iml b/android/src/IcePatch2/icepatch2.iml index 5050de6d408..46363f1eb50 100644 --- a/android/src/IcePatch2/IcePatch2.iml +++ b/android/src/IcePatch2/icepatch2.iml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="android" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> +<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="com.zeroc" external.system.module.version="3.6b" type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="android-gradle" name="Android-Gradle"> <configuration> - <option name="GRADLE_PROJECT_PATH" value=":IcePatch2" /> + <option name="GRADLE_PROJECT_PATH" value=":icepatch2" /> </configuration> </facet> <facet type="java-gradle" name="Java-Gradle"> @@ -33,7 +33,7 @@ </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="module" module-name="Ice" exported="" /> + <orderEntry type="module" module-name="ice" exported="" /> </component> </module> diff --git a/android/src/IceStorm/IceStorm.iml b/android/src/IceStorm/icestorm.iml index 001e66daafd..57c7dc0bf99 100644 --- a/android/src/IceStorm/IceStorm.iml +++ b/android/src/IceStorm/icestorm.iml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="android" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> +<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="com.zeroc" external.system.module.version="3.6b" type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="android-gradle" name="Android-Gradle"> <configuration> - <option name="GRADLE_PROJECT_PATH" value=":IceStorm" /> + <option name="GRADLE_PROJECT_PATH" value=":icestorm" /> </configuration> </facet> <facet type="java-gradle" name="Java-Gradle"> @@ -33,7 +33,7 @@ </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="module" module-name="Ice" exported="" /> + <orderEntry type="module" module-name="ice" exported="" /> </component> </module> diff --git a/android/test/android/src/main/java/com/zeroc/testsuite/TestApp.java b/android/test/android/src/main/java/com/zeroc/testsuite/TestApp.java index e7d92d6aebf..aea2ef13c99 100644 --- a/android/test/android/src/main/java/com/zeroc/testsuite/TestApp.java +++ b/android/test/android/src/main/java/com/zeroc/testsuite/TestApp.java @@ -457,7 +457,39 @@ public class TestApp extends Application private int _status = 0; private int _currentTest = -1; - private boolean _ssl = false; + enum Mode { + TCP, + SSL, + WS, + WSS; + + public boolean isSSL() + { + return this == SSL || this == WSS; + } + + public void setupProtocol(List<String> args) + { + switch(this) { + case TCP: + break; + + case SSL: + args.add("--Ice.Default.Protocol=ssl"); + break; + + case WS: + args.add("--Ice.Default.Protocol=ws"); + break; + + case WSS: + args.add("--Ice.Default.Protocol=wss"); + break; + } + args.add("--Ice.Trace.Network=3"); + } + }; + private Mode _mode = Mode.TCP; private boolean _sslInitialized = false; private boolean _ipv6 = false; private SSLContext _clientContext = null; @@ -482,7 +514,7 @@ public class TestApp extends Application return _status; } - protected String[] setupAddress(String[] args, boolean ipv6) + protected void setupAddress(List<String> args, boolean ipv6) { if(ipv6) { @@ -494,10 +526,7 @@ public class TestApp extends Application "--Ice.PreferIPv6Address=1" }; - String[] nargs = new String[args.length + ipv6Args.length]; - System.arraycopy(args, 0, nargs, 0, args.length); - System.arraycopy(ipv6Args, 0, nargs, args.length, ipv6Args.length); - return nargs; + args.addAll(Arrays.asList(ipv6Args)); } else { @@ -505,39 +534,27 @@ public class TestApp extends Application { "--Ice.Default.Host=127.0.0.1", "--Ice.IPv4=1", - "--Ice.IPv6=0" + "--Ice.IPv6=0", }; - - String[] nargs = new String[args.length + ipv4Args.length]; - System.arraycopy(args, 0, nargs, 0, args.length); - System.arraycopy(ipv4Args, 0, nargs, args.length, ipv4Args.length); - return nargs; + args.addAll(Arrays.asList(ipv4Args)); } } - protected String[] setupssl(String[] args, final SSLContext context) + protected void setupssl(List<String> args, final SSLContext context) { String[] sslargs = { "--Ice.Plugin.IceSSL=IceSSL.PluginFactory", - "--Ice.Default.Protocol=ssl", "--Ice.InitPlugins=0" }; + args.addAll(Arrays.asList(sslargs)); // SDK versions < 21 only support TLSv1 with SSLEngine. if(VERSION.SDK_INT < 21) { - String[] arr = new String[sslargs.length + 1]; - System.arraycopy(sslargs, 0, arr, 0, sslargs.length); - arr[arr.length - 1] = "--IceSSL.Protocols=tls1_0"; - sslargs = arr; + args.add("--IceSSL.Protocols=tls1_0"); } - String[] nargs = new String[args.length + sslargs.length]; - System.arraycopy(args, 0, nargs, 0, args.length); - System.arraycopy(sslargs, 0, nargs, args.length, sslargs.length); - args = nargs; - _app.setCommunicatorListener(new CommunicatorListener() { public void communicatorInitialized(Communicator c) @@ -547,7 +564,6 @@ public class TestApp extends Application c.getPluginManager().initializePlugins(); } }); - return args; } } @@ -564,13 +580,14 @@ public class TestApp extends Application public void run() { - String[] args = + String[] defaultArgs = { "--Ice.NullHandleAbort=1", "--Ice.Warn.Connections=1" }; + List<String> args = new ArrayList<String>(Arrays.asList(defaultArgs)); - args = setupAddress(args, _ipv6); + setupAddress(args, _ipv6); if(_testName == "plugin") { @@ -585,11 +602,12 @@ public class TestApp extends Application } } - if(_ssl) + if(_mode.isSSL()) { - args = setupssl(args, _clientContext); + setupssl(args, _clientContext); } - _status = _app.main("Client", args); + _mode.setupProtocol(args); + _status = _app.main("Client", args.toArray(new String[0])); // If the client failed, then stop the server -- the test is over. if(_status != 0 && _server != null) { @@ -612,7 +630,7 @@ public class TestApp extends Application public void run() { - String[] args = + String[] defaultArgs = { "--Ice.NullHandleAbort=1", "--Ice.Warn.Connections=1", @@ -620,13 +638,15 @@ public class TestApp extends Application "--Ice.ThreadPool.Server.SizeMax=3", "--Ice.ThreadPool.Server.SizeWarn=0" }; + List<String> args = new ArrayList<String>(Arrays.asList(defaultArgs)); - args = setupAddress(args, _ipv6); + setupAddress(args, _ipv6); - if(_ssl) + if(_mode.isSSL()) { - args = setupssl(args, _serverContext); + setupssl(args, _serverContext); } + _mode.setupProtocol(args); _app.setServerReadyListener(new test.Util.Application.ServerReadyListener() { public void serverReady() @@ -639,7 +659,7 @@ public class TestApp extends Application } }); - _status = _app.main("Server", args); + _status = _app.main("Server", args.toArray(new String[0])); if(_clientThread != null) { while(_clientThread.isAlive()) @@ -670,18 +690,20 @@ public class TestApp extends Application public void run() { - String[] args = + String[] defaultArgs = { "--Ice.NullHandleAbort=1" }; + List<String> args = new ArrayList<String>(Arrays.asList(defaultArgs)); - args = setupAddress(args, _ipv6); + setupAddress(args, _ipv6); - if(_ssl) + if(_mode.isSSL()) { - args = setupssl(args, _clientContext); + setupssl(args, _clientContext); } - _status = _app.main("Collocated", args); + _mode.setupProtocol(args); + _status = _app.main("Collocated", args.toArray(new String[0])); } } @@ -841,7 +863,7 @@ public class TestApp extends Application synchronized public void startTest(int position) { - assert !_ssl || (_ssl && _sslInitialized); + assert !_mode.isSSL() || (_mode.isSSL() && _sslInitialized); PrintWriter pw = new PrintWriter(new MyWriter()); @@ -932,16 +954,31 @@ public class TestApp extends Application _ipv6 = ipv6; } - public void setSSL(boolean ssl) + public void setMode(int mode) { - _ssl = ssl; + switch(mode) + { + case 0: + _mode = Mode.TCP; + break; + case 1: + _mode = Mode.SSL; + break; + case 2: + _mode = Mode.WS; + break; + case 3: + _mode = Mode.WSS; + break; + } + configureTests(); if(_currentTest > _tests.size()-1) { _currentTest = _tests.size()-1; } - if(_ssl && !_sslInitialized) + if(_mode.isSSL() && !_sslInitialized) { if(_sslListener != null) { @@ -998,11 +1035,11 @@ public class TestApp extends Application _tests.clear(); for(String s : _allTests) { - if(_ssl && _sslUnsupportedTests.contains(s)) + if(_mode.isSSL() && _sslUnsupportedTests.contains(s)) { continue; } - if(!_ssl && _tcpUnsupportedTests.contains(s)) + if(!_mode.isSSL() && _tcpUnsupportedTests.contains(s)) { continue; } @@ -1013,7 +1050,7 @@ public class TestApp extends Application synchronized public void setSSLInitializationListener(SSLInitializationListener listener) { _sslListener = listener; - if(_ssl) + if(_mode.isSSL()) { if(!_sslInitialized) { diff --git a/android/test/android/src/main/java/com/zeroc/testsuite/TestSuite.java b/android/test/android/src/main/java/com/zeroc/testsuite/TestSuite.java index a2577a5aa87..edf3158abcc 100644 --- a/android/test/android/src/main/java/com/zeroc/testsuite/TestSuite.java +++ b/android/test/android/src/main/java/com/zeroc/testsuite/TestSuite.java @@ -20,10 +20,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.view.View; -import android.widget.ArrayAdapter; -import android.widget.CheckBox; -import android.widget.CompoundButton; -import android.widget.ListView; +import android.widget.*; import android.widget.CompoundButton.OnCheckedChangeListener; public class TestSuite extends ListActivity @@ -71,17 +68,29 @@ public class TestSuite extends ListActivity showDialog(DIALOG_INITIALIZING); } }); - CheckBox secure = (CheckBox)findViewById(R.id.secure); - secure.setOnCheckedChangeListener(new OnCheckedChangeListener() + Spinner mode = (Spinner)findViewById(R.id.mode); + ArrayAdapter<String> modeAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, + new String[] { "TCP", "SSL", "WS", "WSS"}); + mode.setAdapter(modeAdapter); + mode.setOnItemSelectedListener(new android.widget.AdapterView.OnItemSelectedListener() { - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) + public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { - app.setSSL(isChecked); + app.setMode((int)id); _tests.clear(); _tests.addAll(app.getTestNames()); adapter.notifyDataSetChanged(); } + + public void onNothingSelected(AdapterView<?> arg0) + { + } }); + if(savedInstanceState == null) + { + mode.setSelection(0); + } + app.setMode((int)mode.getSelectedItemId()); CheckBox ipv6 = (CheckBox)findViewById(R.id.ipv6); ipv6.setOnCheckedChangeListener(new OnCheckedChangeListener() diff --git a/android/test/android/src/main/res/layout/main.xml b/android/test/android/src/main/res/layout/main.xml index 3a8a534ecb3..289827f8793 100644 --- a/android/test/android/src/main/res/layout/main.xml +++ b/android/test/android/src/main/res/layout/main.xml @@ -26,17 +26,14 @@ android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="30" - android:text="@string/ssl" - /> - - <CheckBox - android:id="@+id/secure" - android:layout_width="0dip" - android:layout_weight="70" - android:layout_height="wrap_content" - /> - - <TextView + android:text="@string/mode" + /> + + <Spinner + android:layout_width="150dp" + android:layout_height="wrap_content" + android:id="@+id/mode"/> + <TextView android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="30" diff --git a/android/test/android/src/main/res/raw/client.bks b/android/test/android/src/main/res/raw/client.bks Binary files differindex a03b721e4bd..b1f4d3f0a6a 100644 --- a/android/test/android/src/main/res/raw/client.bks +++ b/android/test/android/src/main/res/raw/client.bks diff --git a/android/test/android/src/main/res/raw/server.bks b/android/test/android/src/main/res/raw/server.bks Binary files differindex 1216ff6f26d..276f19e74a6 100644 --- a/android/test/android/src/main/res/raw/server.bks +++ b/android/test/android/src/main/res/raw/server.bks diff --git a/android/test/android/src/main/res/values/strings.xml b/android/test/android/src/main/res/values/strings.xml index 797e31f6429..75790bc6e2c 100644 --- a/android/test/android/src/main/res/values/strings.xml +++ b/android/test/android/src/main/res/values/strings.xml @@ -2,6 +2,6 @@ <resources> <string name="app_name">Test Suite</string> <string name="next">Next</string> - <string name="ssl">SSL</string> + <string name="mode">Mode</string> <string name="ipv6">IPv6</string> </resources> diff --git a/android/test/android/testApp.iml b/android/test/android/testApp.iml index bbcb89208ba..4a27553dc0e 100644 --- a/android/test/android/testApp.iml +++ b/android/test/android/testApp.iml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="android" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> +<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="com.zeroc" external.system.module.version="3.6b" type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="android-gradle" name="Android-Gradle"> <configuration> @@ -80,9 +80,9 @@ <excludeFolder url="file://$MODULE_DIR$/build/outputs" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> - <orderEntry type="jdk" jdkName="Android API 21 Platform" jdkType="Android SDK" /> + <orderEntry type="jdk" jdkName="Android API 17 Platform" jdkType="Android SDK" /> <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="library" exported="" name="Ice" level="project" /> + <orderEntry type="library" exported="" name="ice-3.6b" level="project" /> <orderEntry type="module" module-name="test" exported="" /> <orderEntry type="module" module-name="testPlugins" exported="" /> </component> diff --git a/android/test/plugins/testPlugins.iml b/android/test/plugins/testPlugins.iml index 74e8501b7a5..ab5f5ce27ad 100644 --- a/android/test/plugins/testPlugins.iml +++ b/android/test/plugins/testPlugins.iml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="android" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> +<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="com.zeroc" external.system.module.version="3.6b" type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="android-gradle" name="Android-Gradle"> <configuration> @@ -33,7 +33,7 @@ </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="module" module-name="Ice" exported="" /> + <orderEntry type="module" module-name="ice" exported="" /> </component> </module> diff --git a/android/test/src/test_Ice_acm/test_Ice_acm.iml b/android/test/src/test_Ice_acm/test_Ice_acm.iml index c655abc99cf..f96c16a500d 100644 --- a/android/test/src/test_Ice_acm/test_Ice_acm.iml +++ b/android/test/src/test_Ice_acm/test_Ice_acm.iml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="android" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> +<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="com.zeroc" external.system.module.version="3.6b" type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="android-gradle" name="Android-Gradle"> <configuration> @@ -12,7 +12,7 @@ </configuration> </facet> </component> - <component name="NewModuleRootManager" inherit-compiler-output="false"> + <component name="NewModuleRootManager" inherit-compiler-output="true"> <output url="file://$MODULE_DIR$/build/classes/main" /> <output-test url="file://$MODULE_DIR$/build/classes/test" /> <exclude-output /> @@ -34,7 +34,6 @@ <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="module" module-name="test" exported="" /> - <orderEntry type="module" module-name="Ice" exported="" /> </component> </module> diff --git a/android/test/test.iml b/android/test/test.iml index a109c969e9c..4287a86a180 100644 --- a/android/test/test.iml +++ b/android/test/test.iml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="android" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> +<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="com.zeroc" external.system.module.version="3.6b" type="JAVA_MODULE" version="4"> <component name="FacetManager"> <facet type="android-gradle" name="Android-Gradle"> <configuration> @@ -40,7 +40,7 @@ </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="module" module-name="Ice" exported="" /> + <orderEntry type="module" module-name="ice" exported="" /> </component> </module> diff --git a/certs/client.bks b/certs/client.bks Binary files differindex a03b721e4bd..b1f4d3f0a6a 100644 --- a/certs/client.bks +++ b/certs/client.bks diff --git a/certs/server.bks b/certs/server.bks Binary files differindex 1216ff6f26d..276f19e74a6 100644 --- a/certs/server.bks +++ b/certs/server.bks diff --git a/java/src/Ice/src/main/java/IceSSL/TransceiverI.java b/java/src/Ice/src/main/java/IceSSL/TransceiverI.java index 74ff2febd4b..25eed70eea9 100644 --- a/java/src/Ice/src/main/java/IceSSL/TransceiverI.java +++ b/java/src/Ice/src/main/java/IceSSL/TransceiverI.java @@ -205,12 +205,25 @@ final class TransceiverI implements IceInternal.Transceiver fill(buf.b); } + + // If there is no more application data, do one further unwrap to ensure + // that the SSLEngine has no buffered data (Android R21 and greater only). + if(_appInput.position() == 0) + { + _netInput.flip(); + _engine.unwrap(_netInput, _appInput); + _netInput.compact(); + + // Don't check the status here since we may have already filled + // the buffer with a complete request which must be processed. + } } catch(SSLException ex) { throw new Ice.SecurityException("IceSSL: error during read", ex); } + // // Return a boolean to indicate whether more data is available. // @@ -527,9 +540,8 @@ final class TransceiverI implements IceInternal.Transceiver // Copy directly into the destination buffer's backing array. // byte[] arr = buf.array(); - int offset = buf.arrayOffset() + buf.position(); - _appInput.get(arr, offset, bytesAvailable); - buf.position(offset + bytesAvailable); + _appInput.get(arr, buf.arrayOffset() + buf.position(), bytesAvailable); + buf.position(buf.position() + bytesAvailable); } else if(_appInput.hasArray()) { @@ -537,9 +549,8 @@ final class TransceiverI implements IceInternal.Transceiver // Copy directly from the source buffer's backing array. // byte[] arr = _appInput.array(); - int offset = _appInput.arrayOffset() + _appInput.position(); - buf.put(arr, offset, bytesAvailable); - _appInput.position(offset + bytesAvailable); + buf.put(arr, _appInput.arrayOffset() + _appInput.position(), bytesAvailable); + _appInput.position(_appInput.position() + bytesAvailable); } else { |