diff options
author | Matthew Newhook <matthew@zeroc.com> | 2014-11-05 16:50:16 -0330 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2014-11-05 16:50:16 -0330 |
commit | c173e3a2c70e2624372095aff7b14cfe9e003ed7 (patch) | |
tree | 0df2bf5aca5615bdd31ff3fb200536e1538fa8c4 | |
parent | Fixed copyright header on a bunch of files (diff) | |
download | ice-c173e3a2c70e2624372095aff7b14cfe9e003ed7.tar.bz2 ice-c173e3a2c70e2624372095aff7b14cfe9e003ed7.tar.xz ice-c173e3a2c70e2624372095aff7b14cfe9e003ed7.zip |
Fixes for Android to correctly support Android studio and gradle builds.
Fix to the SSL plugin for Android.
Removed some unused code in the SSL transceiver.
179 files changed, 1664 insertions, 1111 deletions
diff --git a/android/.idea/codeStyleSettings.xml b/android/.idea/codeStyleSettings.xml index 29ab470ca5f..15d5d02a710 100644 --- a/android/.idea/codeStyleSettings.xml +++ b/android/.idea/codeStyleSettings.xml @@ -3,172 +3,32 @@ <component name="ProjectCodeStyleSettingsManager"> <option name="PER_PROJECT_SETTINGS"> <value> - <option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="99" /> - <option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="99" /> - <option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND"> - <value /> - </option> - <option name="IMPORT_LAYOUT_TABLE"> - <value> - <package name="android" withSubpackages="true" static="false" /> - <emptyLine /> - <package name="com" withSubpackages="true" static="false" /> - <emptyLine /> - <package name="junit" withSubpackages="true" static="false" /> - <emptyLine /> - <package name="net" withSubpackages="true" static="false" /> - <emptyLine /> - <package name="org" withSubpackages="true" static="false" /> - <emptyLine /> - <package name="java" withSubpackages="true" static="false" /> - <emptyLine /> - <package name="javax" withSubpackages="true" static="false" /> - <emptyLine /> - <package name="" withSubpackages="true" static="false" /> - <emptyLine /> - <package name="" withSubpackages="true" static="true" /> - <emptyLine /> - </value> - </option> - <option name="RIGHT_MARGIN" value="100" /> - <AndroidXmlCodeStyleSettings> - <option name="USE_CUSTOM_SETTINGS" value="true" /> - </AndroidXmlCodeStyleSettings> <XML> <option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" /> </XML> - <codeStyleSettings language="XML"> - <option name="FORCE_REARRANGE_MODE" value="1" /> - <indentOptions> - <option name="CONTINUATION_INDENT_SIZE" value="4" /> - </indentOptions> - <arrangement> - <rules> - <rule> - <match> - <AND> - <NAME>xmlns:android</NAME> - <XML_NAMESPACE>Namespace:</XML_NAMESPACE> - </AND> - </match> - </rule> - <rule> - <match> - <AND> - <NAME>xmlns:.*</NAME> - <XML_NAMESPACE>Namespace:</XML_NAMESPACE> - </AND> - </match> - <order>BY_NAME</order> - </rule> - <rule> - <match> - <AND> - <NAME>.*:id</NAME> - <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> - </AND> - </match> - </rule> - <rule> - <match> - <AND> - <NAME>.*:name</NAME> - <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> - </AND> - </match> - </rule> - <rule> - <match> - <AND> - <NAME>name</NAME> - <XML_NAMESPACE>^$</XML_NAMESPACE> - </AND> - </match> - </rule> - <rule> - <match> - <AND> - <NAME>style</NAME> - <XML_NAMESPACE>^$</XML_NAMESPACE> - </AND> - </match> - </rule> - <rule> - <match> - <AND> - <NAME>.*</NAME> - <XML_NAMESPACE>^$</XML_NAMESPACE> - </AND> - </match> - <order>BY_NAME</order> - </rule> - <rule> - <match> - <AND> - <NAME>.*:layout_width</NAME> - <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> - </AND> - </match> - </rule> - <rule> - <match> - <AND> - <NAME>.*:layout_height</NAME> - <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> - </AND> - </match> - </rule> - <rule> - <match> - <AND> - <NAME>.*:layout_.*</NAME> - <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> - </AND> - </match> - <order>BY_NAME</order> - </rule> - <rule> - <match> - <AND> - <NAME>.*:width</NAME> - <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> - </AND> - </match> - <order>BY_NAME</order> - </rule> - <rule> - <match> - <AND> - <NAME>.*:height</NAME> - <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> - </AND> - </match> - <order>BY_NAME</order> - </rule> - <rule> - <match> - <AND> - <NAME>.*</NAME> - <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> - </AND> - </match> - <order>BY_NAME</order> - </rule> - <rule> - <match> - <AND> - <NAME>.*</NAME> - <XML_NAMESPACE>.*</XML_NAMESPACE> - </AND> - </match> - <order>BY_NAME</order> - </rule> - </rules> - </arrangement> + <codeStyleSettings language="JAVA"> + <option name="BRACE_STYLE" value="2" /> + <option name="CLASS_BRACE_STYLE" value="2" /> + <option name="METHOD_BRACE_STYLE" value="2" /> + <option name="ELSE_ON_NEW_LINE" value="true" /> + <option name="WHILE_ON_NEW_LINE" value="true" /> + <option name="CATCH_ON_NEW_LINE" value="true" /> + <option name="FINALLY_ON_NEW_LINE" value="true" /> + <option name="SPACE_BEFORE_IF_PARENTHESES" value="false" /> + <option name="SPACE_BEFORE_WHILE_PARENTHESES" value="false" /> + <option name="SPACE_BEFORE_FOR_PARENTHESES" value="false" /> + <option name="SPACE_BEFORE_TRY_PARENTHESES" value="false" /> + <option name="SPACE_BEFORE_CATCH_PARENTHESES" value="false" /> + <option name="SPACE_BEFORE_SWITCH_PARENTHESES" value="false" /> + <option name="SPACE_BEFORE_SYNCHRONIZED_PARENTHESES" value="false" /> + <option name="IF_BRACE_FORCE" value="3" /> + <option name="DOWHILE_BRACE_FORCE" value="3" /> + <option name="WHILE_BRACE_FORCE" value="3" /> + <option name="FOR_BRACE_FORCE" value="3" /> </codeStyleSettings> </value> </option> - <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default (1)" /> + <option name="USE_PER_PROJECT_SETTINGS" value="true" /> </component> </project> diff --git a/android/.idea/gradle.xml b/android/.idea/gradle.xml index ed08fa67f9a..2f43923293d 100644 --- a/android/.idea/gradle.xml +++ b/android/.idea/gradle.xml @@ -22,6 +22,49 @@ <option value="$PROJECT_DIR$/src/IceStorm" /> <option value="$PROJECT_DIR$/test" /> <option value="$PROJECT_DIR$/test/android" /> + <option value="$PROJECT_DIR$/test/plugins" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_acm" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_adapterDeactivation" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_admin" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_ami" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_background" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_binding" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_checksum" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_classLoader" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_custom" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_defaultServant" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_defaultValue" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_dispatcher" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_echo" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_enums" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_exceptions" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_facets" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_hash" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_hold" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_info" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_inheritance" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_interceptor" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_interrupt" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_invoke" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_location" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_networkProxy" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_objects" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_operations" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_optional" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_packagemd" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_plugin" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_properties" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_proxy" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_retry" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_seqMapping" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_serialize" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_servantLocator" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_slicing_exceptions" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_slicing_objects" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_stream" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_threadPoolPriority" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_timeout" /> + <option value="$PROJECT_DIR$/test/src/test_Ice_udp" /> </set> </option> </GradleProjectSettings> diff --git a/android/.idea/modules.xml b/android/.idea/modules.xml index c93f91c26d2..f532c8a12fd 100644 --- a/android/.idea/modules.xml +++ b/android/.idea/modules.xml @@ -16,6 +16,8 @@ <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" /> + <module fileurl="file://$PROJECT_DIR$/test/plugins/testPlugins.iml" filepath="$PROJECT_DIR$/test/plugins/testPlugins.iml" /> + <module fileurl="file://$PROJECT_DIR$/test/src/test_Ice_acm/test_Ice_acm.iml" filepath="$PROJECT_DIR$/test/src/test_Ice_acm/test_Ice_acm.iml" /> </modules> </component> </project> diff --git a/android/build.gradle b/android/build.gradle index 5e5ae489398..5fe204941cd 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -12,7 +12,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:0.12.2' + classpath 'com.android.tools.build:gradle:0.13.+' } } @@ -20,10 +20,10 @@ subprojects { apply plugin: 'idea' // The Android versions used by subprojects. - ext.ice_compileSdkVersion = 17 - ext.ice_buildToolsVersion = "21.0.1" - ext.ice_minSdkVersion = 17 - ext.ice_targetSdkVersion = 17 + ext.ice_compileSdkVersion = 21 + ext.ice_buildToolsVersion = "21.1.0" + ext.ice_minSdkVersion = 21 + ext.ice_targetSdkVersion = 21 repositories { maven { diff --git a/android/buildSrc/buildSrc.iml b/android/buildSrc/buildSrc.iml index 2f43c9e723a..bd7e184bff9 100644 --- a/android/buildSrc/buildSrc.iml +++ b/android/buildSrc/buildSrc.iml @@ -34,48 +34,33 @@ </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="library" exported="" name="gradle-core-1.12" level="project" /> - <orderEntry type="library" exported="" name="groovy-all-1.8.6" level="project" /> - <orderEntry type="library" exported="" name="asm-all-5.0_BETA" level="project" /> + <orderEntry type="library" exported="" name="gradle-core-2.1" level="project" /> + <orderEntry type="library" exported="" name="groovy-all-2.3.6" level="project" /> + <orderEntry type="library" exported="" name="asm-all-5.0.3" level="project" /> <orderEntry type="library" exported="" name="ant-1.9.3" level="project" /> <orderEntry type="library" exported="" name="commons-collections-3.2.1" level="project" /> <orderEntry type="library" exported="" name="commons-io-1.4" level="project" /> <orderEntry type="library" exported="" name="commons-lang-2.6" level="project" /> - <orderEntry type="library" exported="" name="ivy-2.2.0" level="project" /> <orderEntry type="library" exported="" name="logback-core-1.0.13" level="project" /> <orderEntry type="library" exported="" name="logback-classic-1.0.13" level="project" /> - <orderEntry type="library" exported="" name="guava-jdk5-14.0.1" level="project" /> + <orderEntry type="library" exported="" name="guava-jdk5-17.0" level="project" /> <orderEntry type="library" exported="" name="jcip-annotations-1.0" level="project" /> <orderEntry type="library" exported="" name="jul-to-slf4j-1.7.5" level="project" /> <orderEntry type="library" exported="" name="jarjar-1.3" level="project" /> <orderEntry type="library" exported="" name="javax.inject-1" level="project" /> - <orderEntry type="library" exported="" name="bintray-client-java-impl-0.1.0" level="project" /> - <orderEntry type="library" exported="" name="httpclient-4.2.2" level="project" /> <orderEntry type="library" exported="" name="slf4j-api-1.7.5" level="project" /> <orderEntry type="library" exported="" name="log4j-over-slf4j-1.7.5" level="project" /> <orderEntry type="library" exported="" name="jcl-over-slf4j-1.7.5" level="project" /> <orderEntry type="library" exported="" name="ant-launcher-1.9.3" level="project" /> - <orderEntry type="library" exported="" name="jsch-0.1.51" level="project" /> - <orderEntry type="library" exported="" name="joda-time-2.3" level="project" /> - <orderEntry type="library" exported="" name="bintray-client-java-api-0.1.0" level="project" /> - <orderEntry type="library" exported="" name="commons-logging-1.1.1" level="project" /> - <orderEntry type="library" exported="" name="commons-beanutils-1.8.0" level="project" /> - <orderEntry type="library" exported="" name="ezmorph-1.0.6" level="project" /> - <orderEntry type="library" exported="" name="json-lib-2.3-jdk15" level="project" /> - <orderEntry type="library" exported="" name="xml-resolver-1.2" level="project" /> - <orderEntry type="library" exported="" name="http-builder-0.6" level="project" /> - <orderEntry type="library" exported="" name="commons-codec-1.6" level="project" /> - <orderEntry type="library" exported="" name="httpcore-4.2.2" level="project" /> - <orderEntry type="library" exported="" name="jcifs-1.3.17" level="project" /> - <orderEntry type="library" exported="" name="gradle-docs-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-base-services-groovy-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-base-services-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-resources-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-cli-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-native-1.12" level="project" /> + <orderEntry type="library" exported="" name="gradle-docs-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-model-core-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-base-services-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-model-groovy-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-base-services-groovy-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-cli-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-native-2.1" level="project" /> <orderEntry type="library" exported="" name="jna-3.2.7" level="project" /> <orderEntry type="library" exported="" name="native-platform-0.10" level="project" /> - <orderEntry type="library" exported="" name="jna-posix-1.0.3" level="project" /> <orderEntry type="library" exported="" name="jansi-1.2.1" level="project" /> <orderEntry type="library" exported="" name="native-platform-osx-i386-0.10" level="project" /> <orderEntry type="library" exported="" name="native-platform-osx-amd64-0.10" level="project" /> @@ -85,13 +70,13 @@ <orderEntry type="library" exported="" name="native-platform-windows-i386-0.10" level="project" /> <orderEntry type="library" exported="" name="native-platform-freebsd-i386-0.10" level="project" /> <orderEntry type="library" exported="" name="native-platform-freebsd-amd64-0.10" level="project" /> - <orderEntry type="library" exported="" name="gradle-messaging-1.12" level="project" /> + <orderEntry type="library" exported="" name="gradle-messaging-2.1" level="project" /> <orderEntry type="library" exported="" name="kryo-2.20" level="project" /> - <orderEntry type="library" exported="" name="asm-4.0" level="project" /> <orderEntry type="library" exported="" name="reflectasm-1.07-shaded" level="project" /> <orderEntry type="library" exported="" name="minlog-1.2" level="project" /> <orderEntry type="library" exported="" name="objenesis-1.2" level="project" /> - <orderEntry type="library" exported="" name="gradle-core-impl-1.12" level="project" /> + <orderEntry type="library" exported="" name="gradle-resources-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-core-impl-2.1" level="project" /> <orderEntry type="library" exported="" name="jarjar-maven-settings-3.0.4" level="project" /> <orderEntry type="library" exported="" name="jarjar-maven-repository-metadata-3.0.4" level="project" /> <orderEntry type="library" exported="" name="jarjar-plexus-container-default-1.5.5" level="project" /> @@ -117,13 +102,24 @@ <orderEntry type="library" exported="" name="jarjar-maven-artifact-3.0.4" level="project" /> <orderEntry type="library" exported="" name="jarjar-maven-model-3.0.4" level="project" /> <orderEntry type="library" exported="" name="jarjar-aether-impl-1.13.1" level="project" /> + <orderEntry type="library" exported="" name="ivy-2.2.0" level="project" /> <orderEntry type="library" exported="" name="maven-ant-tasks-2.1.3" level="project" /> - <orderEntry type="library" exported="" name="nekohtml-1.9.14" level="project" /> + <orderEntry type="library" exported="" name="jsch-0.1.51" level="project" /> + <orderEntry type="library" exported="" name="gson-2.2.4" level="project" /> <orderEntry type="library" exported="" name="xbean-reflect-3.4" level="project" /> + <orderEntry type="library" exported="" name="bcprov-jdk15-1.46" level="project" /> + <orderEntry type="library" exported="" name="gradle-resources-http-2.1" level="project" /> + <orderEntry type="library" exported="" name="httpclient-4.2.2" level="project" /> + <orderEntry type="library" exported="" name="nekohtml-1.9.14" level="project" /> + <orderEntry type="library" exported="" name="commons-codec-1.6" level="project" /> + <orderEntry type="library" exported="" name="httpcore-4.2.2" level="project" /> + <orderEntry type="library" exported="" name="jcifs-1.3.17" level="project" /> <orderEntry type="library" exported="" name="xml-apis-1.3.04" level="project" /> <orderEntry type="library" exported="" name="xercesImpl-2.9.1" level="project" /> - <orderEntry type="library" exported="" name="gradle-tooling-api-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-plugins-1.12" level="project" /> + <orderEntry type="library" exported="" name="gradle-plugin-use-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-tooling-api-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-wrapper-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-plugins-2.1" level="project" /> <orderEntry type="library" exported="" name="junit-4.11" level="project" /> <orderEntry type="library" exported="" name="testng-6.3.1" level="project" /> <orderEntry type="library" exported="" name="commons-cli-1.2" level="project" /> @@ -131,8 +127,8 @@ <orderEntry type="library" exported="" name="jcommander-1.12" level="project" /> <orderEntry type="library" exported="" name="snakeyaml-1.6" level="project" /> <orderEntry type="library" exported="" name="hamcrest-core-1.3" level="project" /> - <orderEntry type="library" exported="" name="gradle-code-quality-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-jetty-1.12" level="project" /> + <orderEntry type="library" exported="" name="gradle-code-quality-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-jetty-2.1" level="project" /> <orderEntry type="library" exported="" name="jetty-6.1.25" level="project" /> <orderEntry type="library" exported="" name="jetty-util-6.1.25" level="project" /> <orderEntry type="library" exported="" name="servlet-api-2.5-20081211" level="project" /> @@ -143,41 +139,39 @@ <orderEntry type="library" exported="" name="jetty-naming-6.1.25" level="project" /> <orderEntry type="library" exported="" name="core-3.1.1" level="project" /> <orderEntry type="library" exported="" name="jsp-api-2.1-6.1.14" level="project" /> - <orderEntry type="library" exported="" name="gradle-antlr-1.12" level="project" /> + <orderEntry type="library" exported="" name="gradle-antlr-2.1" level="project" /> <orderEntry type="library" exported="" name="ant-antlr-1.9.3" level="project" /> <orderEntry type="library" exported="" name="antlr-2.7.7" level="project" /> - <orderEntry type="library" exported="" name="gradle-wrapper-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-osgi-1.12" level="project" /> + <orderEntry type="library" exported="" name="gradle-osgi-2.1" level="project" /> <orderEntry type="library" exported="" name="bndlib-2.1.0" level="project" /> - <orderEntry type="library" exported="" name="gradle-maven-1.12" level="project" /> + <orderEntry type="library" exported="" name="gradle-maven-2.1" level="project" /> <orderEntry type="library" exported="" name="pmaven-common-0.8-20100325" level="project" /> <orderEntry type="library" exported="" name="pmaven-groovy-0.8-20100325" level="project" /> <orderEntry type="library" exported="" name="plexus-component-annotations-1.5.2" level="project" /> - <orderEntry type="library" exported="" name="gradle-ide-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-announce-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-scala-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-sonar-1.12" level="project" /> + <orderEntry type="library" exported="" name="gradle-ide-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-announce-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-scala-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-sonar-2.1" level="project" /> <orderEntry type="library" exported="" name="sonar-runner-2.0" level="project" /> <orderEntry type="library" exported="" name="sonar-batch-bootstrapper-2.9" level="project" /> - <orderEntry type="library" exported="" name="gradle-signing-1.12" level="project" /> + <orderEntry type="library" exported="" name="gradle-signing-2.1" level="project" /> <orderEntry type="library" exported="" name="bcpg-jdk15-1.46" level="project" /> - <orderEntry type="library" exported="" name="bcprov-jdk15-1.46" level="project" /> - <orderEntry type="library" exported="" name="gradle-cpp-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-ear-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-javascript-1.12" level="project" /> + <orderEntry type="library" exported="" name="gradle-cpp-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-ear-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-javascript-2.1" level="project" /> <orderEntry type="library" exported="" name="rhino-1.7R3" level="project" /> - <orderEntry type="library" exported="" name="gson-2.2.4" level="project" /> <orderEntry type="library" exported="" name="simple-4.1.21" level="project" /> - <orderEntry type="library" exported="" name="gradle-build-comparison-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-diagnostics-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-reporting-1.12" level="project" /> + <orderEntry type="library" exported="" name="gradle-build-comparison-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-diagnostics-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-reporting-2.1" level="project" /> <orderEntry type="library" exported="" name="jatl-0.2.2" level="project" /> - <orderEntry type="library" exported="" name="gradle-publish-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-ivy-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-jacoco-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-build-init-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-language-jvm-1.12" level="project" /> - <orderEntry type="library" exported="" name="gradle-language-base-1.12" level="project" /> + <orderEntry type="library" exported="" name="gradle-publish-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-ivy-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-jacoco-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-build-init-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-language-jvm-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-language-base-2.1" level="project" /> + <orderEntry type="library" exported="" name="gradle-plugin-development-2.1" level="project" /> </component> </module> diff --git a/android/demo/chat/chat.iml b/android/demo/chat/chat.iml index 20560d268c1..d6a2b1593d9 100644 --- a/android/demo/chat/chat.iml +++ b/android/demo/chat/chat.iml @@ -10,7 +10,7 @@ <configuration> <option name="SELECTED_BUILD_VARIANT" value="debug" /> <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" /> - <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugJava" /> + <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" /> <option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" /> <option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" /> <option name="TEST_SOURCE_GEN_TASK_NAME" value="generateDebugTestSources" /> @@ -79,8 +79,9 @@ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" /> <excludeFolder url="file://$MODULE_DIR$/build/outputs" /> + <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> - <orderEntry type="jdk" jdkName="Android API 17 Platform" jdkType="Android SDK" /> + <orderEntry type="jdk" jdkName="Android API 21 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" /> diff --git a/android/demo/chat/src/main/java/com/zeroc/chat/LoginActivity.java b/android/demo/chat/src/main/java/com/zeroc/chat/LoginActivity.java index d52fd1fcf99..fcbe4de9b28 100644 --- a/android/demo/chat/src/main/java/com/zeroc/chat/LoginActivity.java +++ b/android/demo/chat/src/main/java/com/zeroc/chat/LoginActivity.java @@ -186,17 +186,6 @@ public class LoginActivity extends Activity super.onCreate(savedInstanceState); setContentView(R.layout.login); - if(VERSION.SDK_INT == 8) // android.os.Build.VERSION_CODES.FROYO (8) - { - // - // Workaround for a bug in Android 2.2 (Froyo). - // - // See http://code.google.com/p/android/issues/detail?id=9431 - // - java.lang.System.setProperty("java.net.preferIPv4Stack", "true"); - java.lang.System.setProperty("java.net.preferIPv6Addresses", "false"); - } - _login = (Button)findViewById(R.id.login); _login.setOnClickListener(new android.view.View.OnClickListener() { @@ -243,7 +232,7 @@ public class LoginActivity extends Activity _password = (EditText)findViewById(R.id.password); _secure = (CheckBox)findViewById(R.id.secure); - _secure.setEnabled(VERSION.SDK_INT >= 8); // android.os.Build.VERSION_CODES.FROYO (8) + _secure.setEnabled(true); _prefs = getPreferences(MODE_PRIVATE); diff --git a/android/demo/chat/src/main/java/com/zeroc/chat/service/AppSession.java b/android/demo/chat/src/main/java/com/zeroc/chat/service/AppSession.java index 28bf2e16d04..22edfec9862 100644 --- a/android/demo/chat/src/main/java/com/zeroc/chat/service/AppSession.java +++ b/android/demo/chat/src/main/java/com/zeroc/chat/service/AppSession.java @@ -15,6 +15,7 @@ import java.util.LinkedList; import java.util.List; import java.util.UUID; +import android.os.Build; import com.zeroc.chat.R; import android.content.res.Resources; @@ -56,6 +57,12 @@ public class AppSession initData.properties.setProperty("IceSSL.TruststoreType", "BKS"); initData.properties.setProperty("IceSSL.Password", "password"); + // SDK versions < 21 only support TLSv1 with SSLEngine. + if(Build.VERSION.SDK_INT < 21) + { + initData.properties.setProperty("IceSSL.Protocols", "tls1_0"); + } + _communicator = Ice.Util.initialize(initData); _hostname = hostname; diff --git a/android/demo/hello/hello.iml b/android/demo/hello/hello.iml index 7e3188ac8f1..4b44ac3ad2f 100644 --- a/android/demo/hello/hello.iml +++ b/android/demo/hello/hello.iml @@ -10,7 +10,7 @@ <configuration> <option name="SELECTED_BUILD_VARIANT" value="debug" /> <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" /> - <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugJava" /> + <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" /> <option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" /> <option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" /> <option name="TEST_SOURCE_GEN_TASK_NAME" value="generateDebugTestSources" /> @@ -79,8 +79,9 @@ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" /> <excludeFolder url="file://$MODULE_DIR$/build/outputs" /> + <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> - <orderEntry type="jdk" jdkName="Android API 17 Platform" jdkType="Android SDK" /> + <orderEntry type="jdk" jdkName="Android API 21 Platform" jdkType="Android SDK" /> <orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="library" exported="" name="Ice" level="project" /> </component> diff --git a/android/demo/hello/project.properties b/android/demo/hello/project.properties deleted file mode 100644 index a3ee5ab64f5..00000000000 --- a/android/demo/hello/project.properties +++ /dev/null @@ -1,14 +0,0 @@ -# This file is automatically generated by Android Tools. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must be checked in Version Control Systems. -# -# To customize properties used by the Ant build system edit -# "ant.properties", and override values to adapt the script to your -# project structure. -# -# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): -#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt - -# Project target. -target=android-17 diff --git a/android/demo/hello/src/main/java/com/zeroc/hello/.gitignore b/android/demo/hello/src/main/java/com/zeroc/hello/.gitignore deleted file mode 100644 index 48c0296968b..00000000000 --- a/android/demo/hello/src/main/java/com/zeroc/hello/.gitignore +++ /dev/null @@ -1 +0,0 @@ -R.java diff --git a/android/demo/hello/src/main/java/com/zeroc/hello/HelloApp.java b/android/demo/hello/src/main/java/com/zeroc/hello/HelloApp.java index 8923e84f28b..b53905d4502 100644 --- a/android/demo/hello/src/main/java/com/zeroc/hello/HelloApp.java +++ b/android/demo/hello/src/main/java/com/zeroc/hello/HelloApp.java @@ -27,17 +27,6 @@ public class HelloApp extends Application { super.onCreate(); - if(VERSION.SDK_INT == 8) // android.os.Build.VERSION_CODES.FROYO (8) - { - // - // Workaround for a bug in Android 2.2 (Froyo). - // - // See http://code.google.com/p/android/issues/detail?id=9431 - // - java.lang.System.setProperty("java.net.preferIPv4Stack", "true"); - java.lang.System.setProperty("java.net.preferIPv6Addresses", "false"); - } - // SSL initialization can take some time. To avoid blocking the // calling thread, we perform the initialization in a separate thread. new Thread(new Runnable() @@ -96,35 +85,32 @@ public class HelloApp extends Application initData.properties = Ice.Util.createProperties(); initData.properties.setProperty("Ice.Trace.Network", "3"); - // - // Only configure IceSSL if we are using Froyo or later. - // - if(VERSION.SDK_INT >= 8) // android.os.Build.VERSION_CODES.FROYO (8) + initData.properties.setProperty("IceSSL.Trace.Security", "3"); + initData.properties.setProperty("IceSSL.KeystoreType", "BKS"); + initData.properties.setProperty("IceSSL.TruststoreType", "BKS"); + initData.properties.setProperty("IceSSL.Password", "password"); + initData.properties.setProperty("Ice.InitPlugins", "0"); + initData.properties.setProperty("Ice.Plugin.IceSSL", "IceSSL.PluginFactory"); + + // SDK versions < 21 only support TLSv1 with SSLEngine. + if(VERSION.SDK_INT < 21) { - initData.properties.setProperty("IceSSL.Trace.Security", "3"); - initData.properties.setProperty("IceSSL.KeystoreType", "BKS"); - initData.properties.setProperty("IceSSL.TruststoreType", "BKS"); - initData.properties.setProperty("IceSSL.Password", "password"); - initData.properties.setProperty("Ice.InitPlugins", "0"); - initData.properties.setProperty("Ice.Plugin.IceSSL", "IceSSL.PluginFactory"); + initData.properties.setProperty("IceSSL.Protocols", "tls1_0"); } communicator = Ice.Util.initialize(initData); - if(VERSION.SDK_INT >= 8) // android.os.Build.VERSION_CODES.FROYO (8) - { - IceSSL.Plugin plugin = (IceSSL.Plugin)communicator.getPluginManager().getPlugin("IceSSL"); - // - // Be sure to pass the same input stream to the SSL plug-in for - // both the keystore and the truststore. This makes startup a - // little faster since the plugin will not initialize - // two keystores. - // - java.io.InputStream certs = getResources().openRawResource(R.raw.client); - plugin.setKeystoreStream(certs); - plugin.setTruststoreStream(certs); - communicator.getPluginManager().initializePlugins(); - } + IceSSL.Plugin plugin = (IceSSL.Plugin)communicator.getPluginManager().getPlugin("IceSSL"); + // + // Be sure to pass the same input stream to the SSL plug-in for + // both the keystore and the truststore. This makes startup a + // little faster since the plugin will not initialize + // two keystores. + // + java.io.InputStream certs = getResources().openRawResource(R.raw.client); + plugin.setKeystoreStream(certs); + plugin.setTruststoreStream(certs); + communicator.getPluginManager().initializePlugins(); synchronized(this) { diff --git a/android/demo/library/library.iml b/android/demo/library/library.iml index c908958c7b6..dfad919a020 100644 --- a/android/demo/library/library.iml +++ b/android/demo/library/library.iml @@ -10,7 +10,7 @@ <configuration> <option name="SELECTED_BUILD_VARIANT" value="debug" /> <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" /> - <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugJava" /> + <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" /> <option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" /> <option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" /> <option name="TEST_SOURCE_GEN_TASK_NAME" value="generateDebugTestSources" /> @@ -79,8 +79,9 @@ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" /> <excludeFolder url="file://$MODULE_DIR$/build/outputs" /> + <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> - <orderEntry type="jdk" jdkName="Android API 17 Platform" jdkType="Android SDK" /> + <orderEntry type="jdk" jdkName="Android API 21 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" /> diff --git a/android/demo/library/src/main/java/com/zeroc/library/LoginActivity.java b/android/demo/library/src/main/java/com/zeroc/library/LoginActivity.java index fea2265b217..4f3d3795f86 100644 --- a/android/demo/library/src/main/java/com/zeroc/library/LoginActivity.java +++ b/android/demo/library/src/main/java/com/zeroc/library/LoginActivity.java @@ -134,17 +134,6 @@ public class LoginActivity extends Activity super.onCreate(savedInstanceState); setContentView(R.layout.login); - if(VERSION.SDK_INT == 8) // android.os.Build.VERSION_CODES.FROYO (8) - { - // - // Workaround for a bug in Android 2.2 (Froyo). - // - // See http://code.google.com/p/android/issues/detail?id=9431 - // - java.lang.System.setProperty("java.net.preferIPv4Stack", "true"); - java.lang.System.setProperty("java.net.preferIPv6Addresses", "false"); - } - _login = (Button) findViewById(R.id.login); _login.setOnClickListener(new android.view.View.OnClickListener() { @@ -171,7 +160,7 @@ public class LoginActivity extends Activity }); _secure = (android.widget.CheckBox) findViewById(R.id.secure); - _secure.setEnabled(VERSION.SDK_INT >= 8); // android.os.Build.VERSION_CODES.FROYO (8) + _secure.setEnabled(true); _glacier2 = (android.widget.CheckBox) findViewById(R.id.glacier2); diff --git a/android/demo/library/src/main/java/com/zeroc/library/controller/LoginController.java b/android/demo/library/src/main/java/com/zeroc/library/controller/LoginController.java index a2bc3e304ea..36c93399063 100644 --- a/android/demo/library/src/main/java/com/zeroc/library/controller/LoginController.java +++ b/android/demo/library/src/main/java/com/zeroc/library/controller/LoginController.java @@ -9,6 +9,7 @@ package com.zeroc.library.controller; +import android.os.Build; import com.zeroc.library.R; import android.content.res.Resources; @@ -67,6 +68,13 @@ public class LoginController initData.properties.setProperty("IceSSL.Password", "password"); initData.properties.setProperty("Ice.InitPlugins", "0"); initData.properties.setProperty("Ice.Plugin.IceSSL", "IceSSL.PluginFactory"); + + // SDK versions < 21 only support TLSv1 with SSLEngine. + if(Build.VERSION.SDK_INT < 21) + { + initData.properties.setProperty("IceSSL.Protocols", "tls1_0"); + } + java.io.InputStream certStream; certStream = resources.openRawResource(R.raw.client); _communicator = Ice.Util.initialize(initData); diff --git a/android/gradle/dex.gradle b/android/gradle/dex.gradle new file mode 100644 index 00000000000..bd4513dec5f --- /dev/null +++ b/android/gradle/dex.gradle @@ -0,0 +1,24 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2014 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. +// +// ********************************************************************** + +import org.apache.tools.ant.taskdefs.condition.Os + +// Discover the Android SDK home. +// It either comes from the environment or from sdk.dir defined +// in local.properties at the root of the android project. +ext.androidSdkDir = System.env.ANDROID_HOME +if(ext.androidSdkDir == null) { + Properties localProps = new Properties() + localProps.load(new FileInputStream(file("$rootProject.projectDir/local.properties"))) + + ext.androidSdkDir = localProps['sdk.dir'] +} + +def cmdExt = Os.isFamily(Os.FAMILY_WINDOWS) ? '.bat' : '' +ext.dxCmd = "${androidSdkDir}/build-tools/${ice_buildToolsVersion}/dx${cmdExt}"
\ No newline at end of file diff --git a/android/gradle/tests.gradle b/android/gradle/tests.gradle new file mode 100644 index 00000000000..8a14a3b3eff --- /dev/null +++ b/android/gradle/tests.gradle @@ -0,0 +1,51 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2014 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. +// +// ********************************************************************** + +ext.tests = [ "acm", + "adapterDeactivation", + "admin", + "ami", + "background", + "binding", + "checksum", + "classLoader", + "custom", + "defaultServant", + "defaultValue", + "dispatcher", + "echo", + "enums", + "exceptions", + "facets", + "hash", + "hold", + "info", + "inheritance", + "interceptor", + "interrupt", + "invoke", + "location", + "networkProxy", + "objects", + "operations", + "optional", + "packagemd", + "plugin", + "properties", + "proxy", + "retry", + "seqMapping", + "serialize", + "servantLocator", + "slicing_exceptions", + "slicing_objects", + "stream", + "threadPoolPriority", + "timeout", + "udp" ] diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 1e61d1fd3a9..e5347d805ed 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Apr 10 15:27:10 PDT 2013 +#Mon Nov 03 10:36:54 NST 2014 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-all.zip diff --git a/android/settings.gradle b/android/settings.gradle index 458743b4059..dc291e41619 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -7,8 +7,15 @@ // // ********************************************************************** +apply from: "$rootProject.projectDir/gradle/tests.gradle" + +tests.each { + include ":test_Ice_${it}" + project(":test_Ice_${it}").projectDir = new File("test/src/test_Ice_${it}") +} + // Main source -include ':hello', ':Ice', ':Glacier2', ':IceBox', ':IceDiscovery', ':IceGrid', ':IcePatch2', ':IceStorm', ':chat', ':library', ":test", ':testApp' +include ':hello', ':Ice', ':Glacier2', ':IceBox', ':IceDiscovery', ':IceGrid', ':IcePatch2', ':IceStorm', ':chat', ':library', ':test', ':testPlugins', ':testApp', ':test_Ice_acm' project(':Ice').projectDir = new File('src/Ice') project(':Glacier2').projectDir = new File('src/Glacier2') project(':IceBox').projectDir = new File('src/IceBox') @@ -20,4 +27,5 @@ project(':hello').projectDir = new File('demo/hello') project(':chat').projectDir = new File('demo/chat') project(':library').projectDir = new File('demo/library') project(':test').projectDir = new File('test') -project(':testApp').projectDir = new File('test/android')
\ No newline at end of file +project(':testPlugins').projectDir = new File('test/plugins') +project(':testApp').projectDir = new File('test/android') diff --git a/android/src/Glacier2/Glacier2.iml b/android/src/Glacier2/Glacier2.iml index c3d0e66fb20..6b6691c8110 100644 --- a/android/src/Glacier2/Glacier2.iml +++ b/android/src/Glacier2/Glacier2.iml @@ -25,6 +25,7 @@ <excludeFolder url="file://$MODULE_DIR$/.gradle" /> <excludeFolder url="file://$MODULE_DIR$/build/classes" /> <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" /> + <excludeFolder url="file://$MODULE_DIR$/build/set1.d.xml" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> <content url="file://$MODULE_DIR$/../../../java/src/Glacier2/src/main/java"> diff --git a/android/src/Ice/Ice.iml b/android/src/Ice/Ice.iml index 457f010fe0f..f67164fd389 100644 --- a/android/src/Ice/Ice.iml +++ b/android/src/Ice/Ice.iml @@ -25,6 +25,8 @@ <excludeFolder url="file://$MODULE_DIR$/.gradle" /> <excludeFolder url="file://$MODULE_DIR$/build/classes" /> <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" /> + <excludeFolder url="file://$MODULE_DIR$/build/nostream.d.xml" /> + <excludeFolder url="file://$MODULE_DIR$/build/stream.d.xml" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> <content url="file://$MODULE_DIR$/../../../java/src/Ice/src/main/java"> diff --git a/android/src/IceBox/IceBox.iml b/android/src/IceBox/IceBox.iml index f8fe17041cf..7da3c706634 100644 --- a/android/src/IceBox/IceBox.iml +++ b/android/src/IceBox/IceBox.iml @@ -25,6 +25,7 @@ <excludeFolder url="file://$MODULE_DIR$/.gradle" /> <excludeFolder url="file://$MODULE_DIR$/build/classes" /> <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" /> + <excludeFolder url="file://$MODULE_DIR$/build/set1.d.xml" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> <content url="file://$MODULE_DIR$/../../../java/src/IceBox/src/main/java"> diff --git a/android/src/IceDiscovery/IceDiscovery.iml b/android/src/IceDiscovery/IceDiscovery.iml index 79f6501f161..09988761e6f 100644 --- a/android/src/IceDiscovery/IceDiscovery.iml +++ b/android/src/IceDiscovery/IceDiscovery.iml @@ -25,6 +25,7 @@ <excludeFolder url="file://$MODULE_DIR$/.gradle" /> <excludeFolder url="file://$MODULE_DIR$/build/classes" /> <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" /> + <excludeFolder url="file://$MODULE_DIR$/build/set1.d.xml" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> <content url="file://$MODULE_DIR$/../../../java/src/IceDiscovery/src/main/java"> diff --git a/android/src/IceGrid/IceGrid.iml b/android/src/IceGrid/IceGrid.iml index 8c615e2f7cb..225424f7823 100644 --- a/android/src/IceGrid/IceGrid.iml +++ b/android/src/IceGrid/IceGrid.iml @@ -25,6 +25,7 @@ <excludeFolder url="file://$MODULE_DIR$/.gradle" /> <excludeFolder url="file://$MODULE_DIR$/build/classes" /> <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" /> + <excludeFolder url="file://$MODULE_DIR$/build/set1.d.xml" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> <content url="file://$MODULE_DIR$/../../../java/src/IceGrid/src/main/java"> diff --git a/android/src/IcePatch2/IcePatch2.iml b/android/src/IcePatch2/IcePatch2.iml index 19b888c38e8..5050de6d408 100644 --- a/android/src/IcePatch2/IcePatch2.iml +++ b/android/src/IcePatch2/IcePatch2.iml @@ -25,6 +25,7 @@ <excludeFolder url="file://$MODULE_DIR$/.gradle" /> <excludeFolder url="file://$MODULE_DIR$/build/classes" /> <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" /> + <excludeFolder url="file://$MODULE_DIR$/build/set1.d.xml" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> <content url="file://$MODULE_DIR$/../../../java/src/IcePatch2/src/main/java"> diff --git a/android/src/IceStorm/IceStorm.iml b/android/src/IceStorm/IceStorm.iml index 8dde8b531bf..001e66daafd 100644 --- a/android/src/IceStorm/IceStorm.iml +++ b/android/src/IceStorm/IceStorm.iml @@ -25,6 +25,7 @@ <excludeFolder url="file://$MODULE_DIR$/.gradle" /> <excludeFolder url="file://$MODULE_DIR$/build/classes" /> <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" /> + <excludeFolder url="file://$MODULE_DIR$/build/set1.d.xml" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> <content url="file://$MODULE_DIR$/../../../java/src/IceStorm/src/main/java"> diff --git a/android/test/android/build.gradle b/android/test/android/build.gradle index e9b8193afde..c013be1c3df 100644 --- a/android/test/android/build.gradle +++ b/android/test/android/build.gradle @@ -9,6 +9,7 @@ apply plugin: 'com.android.application' apply from: "$rootProject.projectDir/../java/gradle/ice.gradle" +apply from: "$rootProject.projectDir/gradle/tests.gradle" android { compileSdkVersion ice_compileSdkVersion @@ -26,7 +27,7 @@ android { buildTypes { debug { - runProguard true + runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg' } @@ -37,11 +38,46 @@ android { } } +// Copy the IceTestPlugins.dex file into the android test assets +// directory. +// +// I don't like this approach very much. It would be preferable for +// the test app to extract the dex file from the jar file but I can't +// figure out how to do that. +task copyTask(type: Copy) { + from "${rootProject.projectDir}/test/plugins/build/classes/main/IceTestPlugins.dex" + into "src/main/assets" +} +preBuild.dependsOn(copyTask) +copyTask.dependsOn(':testPlugins:dexClasses') + +clean { + delete("src/main/assets/IceTestPlugins.dex") +} + idea.module { excludeDirs -= file(buildDir) buildDir.listFiles({d, f ->f != 'generated-src'} as FilenameFilter).each { excludeDirs += it } } +tests.each { + def name = it + def taskName = "copyTask-${name}" + def testName = ":test_Ice_${name}" + def dexName = "IceTest_${name}.dex" + task "${taskName}"(type: Copy, dependsOn: "${testName}:dexClasses") { + from "${rootProject.projectDir}/test/src/test_Ice_${name}/build/classes/main/${dexName}" + into "src/main/assets" + } + preBuild.dependsOn(tasks[taskName]) + + clean { + delete("src/main/assets/${dexName}") + } +} + dependencies { + compile project(':Ice') compile project(':test') + compile project(':testPlugins') } diff --git a/android/test/android/proguard.cfg b/android/test/android/proguard.cfg index b1feb1a51bd..4f1735013b0 100644 --- a/android/test/android/proguard.cfg +++ b/android/test/android/proguard.cfg @@ -67,6 +67,10 @@ *; } -keep interface test.Ice.** +-keep interface Ice.** +-keep interface IceInternal.** +-keep class Ice.** +-keep class IceInternal.** # For debugging. -keepattributes LocalVariableTable, LocalVariableTypeTable diff --git a/android/test/android/src/main/AndroidManifest.xml b/android/test/android/src/main/AndroidManifest.xml index 154b6e9a941..0809dd4a3f4 100644 --- a/android/test/android/src/main/AndroidManifest.xml +++ b/android/test/android/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ android:versionCode="1" android:versionName="1.0.0"> <uses-permission android:name="android.permission.INTERNET"></uses-permission> + <!-- http://developer.android.com/guide/topics/manifest/uses-sdk-element.html --> diff --git a/android/test/android/src/main/assets/.gitignore b/android/test/android/src/main/assets/.gitignore new file mode 100644 index 00000000000..2cbf86bc394 --- /dev/null +++ b/android/test/android/src/main/assets/.gitignore @@ -0,0 +1 @@ +*.dex 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 811d8060f44..fa96d70976d 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 @@ -9,42 +9,99 @@ package com.zeroc.testsuite; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.Writer; +import java.io.*; import java.security.KeyManagementException; import java.security.KeyStore; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.UnrecoverableKeyException; import java.security.cert.CertificateException; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; +import java.util.*; + +import Ice.Logger; +import Ice.Communicator; import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManagerFactory; -import test.Util.Application.CommunicatorListener; -import Ice.Communicator; +import dalvik.system.DexClassLoader; +import android.content.Context; +import android.util.Log; import android.app.Application; import android.os.Handler; import android.os.Build.VERSION; +import test.Util.Application.CommunicatorListener; + public class TestApp extends Application { - static private class TestSuiteEntry + private final String TAG = "TestApp"; + + private ClassLoader getDEXClassLoader(String classDir, ClassLoader parent) throws IOException { + if(parent == null) + { + parent = getClassLoader(); + } + + File dexInternalStoragePath = new java.io.File(getDir("dex", Context.MODE_PRIVATE), classDir); + + BufferedInputStream bis = new BufferedInputStream(getAssets().open(classDir)); + OutputStream dexWriter = new BufferedOutputStream(new FileOutputStream(dexInternalStoragePath)); + final int sz = 8 * 1024; + byte[] buf = new byte[sz]; + int len; + while((len = bis.read(buf, 0, sz)) > 0) + { + dexWriter.write(buf, 0, len); + } + dexWriter.close(); + bis.close(); + + // Internal storage where the DexClassLoader writes the optimized dex file to + final File optimizedDexOutputPath = getDir("outdex", Context.MODE_PRIVATE); + + return new DexClassLoader( + dexInternalStoragePath.getAbsolutePath(), + optimizedDexOutputPath.getAbsolutePath(), + null, + parent); + } + + static private class TestSuiteBundle { - TestSuiteEntry(String name, Class<? extends test.Util.Application> client, - Class<? extends test.Util.Application> server, - Class<? extends test.Util.Application> collocated) + TestSuiteBundle(String name, ClassLoader loader) { _name = name; - _client = client; - _server = server; - _collocated = collocated; + _loader = loader; + + String className = "test.Ice." + _name.replace('_', '.'); + try + { + _client = (Class<? extends test.Util.Application>)_loader.loadClass(className + ".Client"); + } + catch(ClassNotFoundException e) + { + } + try + { + _server = (Class<? extends test.Util.Application>)_loader.loadClass(className + ".Server"); + } + catch(ClassNotFoundException e) + { + } + try + { + _collocated = (Class<? extends test.Util.Application>)_loader.loadClass(className + ".Collocated"); + } + catch(ClassNotFoundException e) + { + } + } + + ClassLoader getClassLoader() + { + return _loader; } String getName() @@ -53,7 +110,7 @@ public class TestApp extends Application } test.Util.Application getClient() - throws IllegalAccessException, InstantiationException + throws IllegalAccessException, InstantiationException { if(_client == null) { @@ -63,7 +120,7 @@ public class TestApp extends Application } test.Util.Application getServer() - throws IllegalAccessException, InstantiationException + throws IllegalAccessException, InstantiationException { if(_server == null) { @@ -74,7 +131,7 @@ public class TestApp extends Application } test.Util.Application getCollocated() - throws IllegalAccessException, InstantiationException + throws IllegalAccessException, InstantiationException { if(_collocated == null) { @@ -85,121 +142,272 @@ public class TestApp extends Application } private String _name; + private ClassLoader _loader; private Class<? extends test.Util.Application> _client; private Class<? extends test.Util.Application> _server; private Class<? extends test.Util.Application> _collocated; } - static final private TestSuiteEntry[] _tests = + private Map<String, TestSuiteBundle> _bundles = new HashMap<String, TestSuiteBundle>(); + + static final private String _allTests[] = { - new TestSuiteEntry("adapterDeactivation", test.Ice.adapterDeactivation.Client.class, - test.Ice.adapterDeactivation.Server.class, test.Ice.adapterDeactivation.Collocated.class), - new TestSuiteEntry("admin", test.Ice.admin.Client.class, test.Ice.admin.Server.class, null), - new TestSuiteEntry("ami", test.Ice.ami.Client.class, test.Ice.ami.Server.class, null), - new TestSuiteEntry("binding", test.Ice.binding.Client.class, test.Ice.binding.Server.class, null), - new TestSuiteEntry("checksum", test.Ice.checksum.Client.class, test.Ice.checksum.Server.class, null), - new TestSuiteEntry("classLoader", test.Ice.classLoader.Client.class, test.Ice.classLoader.Server.class, null), - new TestSuiteEntry("custom", test.Ice.custom.Client.class, test.Ice.custom.Server.class, - test.Ice.custom.Collocated.class), - new TestSuiteEntry("defaultServant", test.Ice.defaultServant.Client.class, null, null), - new TestSuiteEntry("defaultValue", test.Ice.defaultValue.Client.class, null, null), - new TestSuiteEntry("dispatcher", test.Ice.dispatcher.Client.class, test.Ice.dispatcher.Server.class, null), - new TestSuiteEntry("enums", test.Ice.enums.Client.class, test.Ice.enums.Server.class, null), - new TestSuiteEntry("exceptions", test.Ice.exceptions.Client.class, test.Ice.exceptions.Server.class, - test.Ice.exceptions.Collocated.class), - new TestSuiteEntry("facets", test.Ice.facets.Client.class, test.Ice.facets.Server.class, - test.Ice.facets.Collocated.class), - // Require SSL - //new TestSuiteEntry("hash", test.Ice.hash.Client.class, null, null), - new TestSuiteEntry("hold", test.Ice.hold.Client.class, test.Ice.hold.Server.class, null), + "acm", + "adapterDeactivation", + "admin", + "ami", + "background", + "binding", + "checksum", + "classLoader", + "custom", + "defaultServant", + "defaultValue", + "dispatcher", + // Echo test is only for client side only mappings. + "enums", + "exceptions", + "facets", + // Fault tolerance test requires a special setup, so we don't support it. + // hash requires too much memory. + //"hash", + "hold", // The info test is not currently enabled - it relies on sockets to accurately return - // address and port information, which really only works in Android 2.3+. - //new TestSuiteEntry("info", test.Ice.info.Client.class, test.Ice.info.Server.class, null), - new TestSuiteEntry("inheritance", test.Ice.inheritance.Client.class, test.Ice.inheritance.Server.class, - test.Ice.inheritance.Collocated.class), - new TestSuiteEntry("interceptor", test.Ice.interceptor.Client.class, null, null), - new TestSuiteEntry("invoke", test.Ice.invoke.Client.class, test.Ice.invoke.Server.class, null), - new TestSuiteEntry("location", test.Ice.location.Client.class, test.Ice.location.Server.class, null), + // address and port information, which really only works jjin Android 2.3+. + //"info" + "inheritance", + "interceptor", + "interrupt", + "invoke", + "location", // The metrics test uses too much memory. - //new TestSuiteEntry("metrics", test.Ice.metrics.Client.class, test.Ice.metrics.Server.class, null), - new TestSuiteEntry("objects", test.Ice.objects.Client.class, test.Ice.objects.Server.class, - test.Ice.objects.Collocated.class), - new TestSuiteEntry("operations", test.Ice.operations.Client.class, test.Ice.operations.Server.class, - test.Ice.operations.Collocated.class), - new TestSuiteEntry("optional", test.Ice.optional.Client.class, test.Ice.optional.Server.class, null), - new TestSuiteEntry("packagemd", test.Ice.packagemd.Client.class, test.Ice.packagemd.Server.class, null), - new TestSuiteEntry("proxy", test.Ice.proxy.Client.class, test.Ice.proxy.Server.class, - test.Ice.proxy.Collocated.class), - new TestSuiteEntry("retry", test.Ice.retry.Client.class, test.Ice.retry.Server.class, null), - new TestSuiteEntry("seqMapping", test.Ice.seqMapping.Client.class, test.Ice.seqMapping.Server.class, - test.Ice.seqMapping.Collocated.class), - new TestSuiteEntry("serialize", test.Ice.serialize.Client.class, test.Ice.serialize.Server.class, null), - new TestSuiteEntry("servantLocator", test.Ice.servantLocator.Client.class, - test.Ice.servantLocator.Server.class, test.Ice.servantLocator.Collocated.class), - new TestSuiteEntry("slicing/exceptions", test.Ice.slicing.exceptions.Client.class, - test.Ice.slicing.exceptions.Server.class, null), - new TestSuiteEntry("slicing/objects", test.Ice.slicing.objects.Client.class, - test.Ice.slicing.objects.Server.class, null), - new TestSuiteEntry("stream", test.Ice.stream.Client.class, null, null), + //"metrics", + // networkProxy support isn't supported due to lack of SOCKS support. + // "networkProxy", + "objects", + "operations", + "optional", + "packagemd", + "plugin", + // Properties test isn't supported since it loads files. + "proxy", + "retry", + "seqMapping", + "serialize", + "servantLocator", + "slicing_exceptions", + "slicing_objects", + "stream", + "threadPoolPriority", // The throughput test uses too much memory. - //new TestSuiteEntry("throughput", test.Ice.throughput.Client.class, test.Ice.throughput.Server.class, null), - new TestSuiteEntry("timeout", test.Ice.timeout.Client.class, test.Ice.timeout.Server.class, null), + //"throughput", test.Ice.throughput.Client.class, test.Ice.throughput.Server.class, null), + "timeout", + "udp" }; - static final private TestSuiteEntry[] _ssltests = + static final private String _tcpUnsupportedTestsValues[] = { - new TestSuiteEntry("adapterDeactivation", test.Ice.adapterDeactivation.Client.class, - test.Ice.adapterDeactivation.Server.class, test.Ice.adapterDeactivation.Collocated.class), - new TestSuiteEntry("ami", test.Ice.ami.Client.class, test.Ice.ami.Server.class, null), - new TestSuiteEntry("binding", test.Ice.binding.Client.class, test.Ice.binding.Server.class, null), - new TestSuiteEntry("checksum", test.Ice.checksum.Client.class, test.Ice.checksum.Server.class, null), - new TestSuiteEntry("classLoader", test.Ice.classLoader.Client.class, test.Ice.classLoader.Server.class, null), - new TestSuiteEntry("custom", test.Ice.custom.Client.class, test.Ice.custom.Server.class, - test.Ice.custom.Collocated.class), - new TestSuiteEntry("defaultServant", test.Ice.defaultServant.Client.class, null, null), - new TestSuiteEntry("defaultValue", test.Ice.defaultValue.Client.class, null, null), - new TestSuiteEntry("dispatcher", test.Ice.dispatcher.Client.class, test.Ice.dispatcher.Server.class, null), - new TestSuiteEntry("enums", test.Ice.enums.Client.class, test.Ice.enums.Server.class, null), - new TestSuiteEntry("exceptions", test.Ice.exceptions.Client.class, test.Ice.exceptions.Server.class, - test.Ice.exceptions.Collocated.class), - new TestSuiteEntry("facets", test.Ice.facets.Client.class, test.Ice.facets.Server.class, - test.Ice.facets.Collocated.class), - // The hash test uses too much memory. - //new TestSuiteEntry("hash", test.Ice.hash.Client.class, null, null), - new TestSuiteEntry("hold", test.Ice.hold.Client.class, test.Ice.hold.Server.class, null), - // The info test is not currently enabled - it relies on sockets to accurately return - // address and port information, which really only works in Android 2.3+. - //new TestSuiteEntry("info", test.Ice.info.Client.class, test.Ice.info.Server.class, null), - new TestSuiteEntry("inheritance", test.Ice.inheritance.Client.class, test.Ice.inheritance.Server.class, - test.Ice.inheritance.Collocated.class), - new TestSuiteEntry("interceptor", test.Ice.interceptor.Client.class, null, null), - new TestSuiteEntry("invoke", test.Ice.invoke.Client.class, test.Ice.invoke.Server.class, null), - new TestSuiteEntry("location", test.Ice.location.Client.class, test.Ice.location.Server.class, null), - // The metrics test uses too much memory. - //new TestSuiteEntry("metrics", test.Ice.metrics.Client.class, test.Ice.metrics.Server.class, null), - new TestSuiteEntry("objects", test.Ice.objects.Client.class, test.Ice.objects.Server.class, - test.Ice.objects.Collocated.class), - new TestSuiteEntry("operations", test.Ice.operations.Client.class, test.Ice.operations.Server.class, - test.Ice.operations.Collocated.class), - new TestSuiteEntry("optional", test.Ice.optional.Client.class, test.Ice.optional.Server.class, null), - new TestSuiteEntry("packagemd", test.Ice.packagemd.Client.class, test.Ice.packagemd.Server.class, null), - new TestSuiteEntry("proxy", test.Ice.proxy.Client.class, test.Ice.proxy.Server.class, - test.Ice.proxy.Collocated.class), - new TestSuiteEntry("retry", test.Ice.retry.Client.class, test.Ice.retry.Server.class, null), - new TestSuiteEntry("serialize", test.Ice.serialize.Client.class, test.Ice.serialize.Server.class, null), - new TestSuiteEntry("seqMapping", test.Ice.seqMapping.Client.class, test.Ice.seqMapping.Server.class, - test.Ice.seqMapping.Collocated.class), - new TestSuiteEntry("servantLocator", test.Ice.servantLocator.Client.class, - test.Ice.servantLocator.Server.class, test.Ice.servantLocator.Collocated.class), - new TestSuiteEntry("slicing/exceptions", test.Ice.slicing.exceptions.Client.class, - test.Ice.slicing.exceptions.Server.class, null), - new TestSuiteEntry("slicing/objects", test.Ice.slicing.objects.Client.class, - test.Ice.slicing.objects.Server.class, null), - new TestSuiteEntry("stream", test.Ice.stream.Client.class, null, null), - new TestSuiteEntry("timeout", test.Ice.timeout.Client.class, test.Ice.timeout.Server.class, null), }; - private TestSuiteEntry[] _curtests = _tests; - + static final private Set<String> _tcpUnsupportedTests = new HashSet<String>(Arrays.asList(_tcpUnsupportedTestsValues)); + + static final private String _sslUnsupportedTestsValues[] = + { + "background", + "binding", + "plugin", + "timeout", + "udp" + }; + static final private Set<String> _sslUnsupportedTests = new HashSet<String>(Arrays.asList(_sslUnsupportedTestsValues)); + + private List<String> _tests = new ArrayList<String>(); + + class LogOutput + { + private BufferedWriter _writer; + + LogOutput() + { + reopen(); + } + + void reopen() + { + try + { + + if(_writer != null) + { + _writer.close(); + _writer = null; + } + File logFile = new File(getFilesDir(), "log.txt"); + if(!logFile.exists()) + { + logFile.createNewFile(); + } + _writer = new BufferedWriter(new FileWriter(logFile, false)); + } + catch (IOException e) + { + Log.i(TAG, "cannot open log file", e); + } + } + + void + write(StringBuilder message, boolean indent) + { + if(_writer == null) + { + return; + } + + if(indent) + { + int idx = 0; + while((idx = message.indexOf("\n", idx)) != -1) + { + message.insert(idx + 1, " "); + ++idx; + } + } + synchronized(this) + { + try + { + _writer.newLine(); + _writer.append(message.toString()); + _writer.flush(); + } + catch(java.io.IOException ex) + { + } + } + } + } + private LogOutput _logOutput; + + class AndroidLogger implements Ice.Logger + { + private final String _prefix; + private String _formattedPrefix = ""; + private final java.text.DateFormat _date = java.text.DateFormat.getDateInstance(java.text.DateFormat.SHORT); + private final java.text.SimpleDateFormat _time = new java.text.SimpleDateFormat(" HH:mm:ss:SSS"); + + AndroidLogger(String prefix) + { + _prefix = prefix; + if(prefix.length() > 0) + { + _formattedPrefix = prefix + ": "; + } + } + @Override + public void print(String message) + { + if(_logOutput != null) + { + StringBuilder s = new StringBuilder(256); + s.append("-- "); + synchronized(this) + { + s.append(_date.format(new java.util.Date())); + s.append(_time.format(new java.util.Date())); + } + s.append(' '); + s.append(_formattedPrefix); + s.append(message); + _logOutput.write(s, false); + } + + Log.d(TAG, message); + } + + @Override + public void trace(String category, String message) + { + if(_logOutput != null) + { + StringBuilder s = new StringBuilder(256); + s.append("-- "); + synchronized(this) + { + s.append(_date.format(new java.util.Date())); + s.append(_time.format(new java.util.Date())); + } + s.append(' '); + s.append(_formattedPrefix); + s.append(category); + s.append(": "); + s.append(message); + _logOutput.write(s, true); + } + + Log.v(category, message); + } + + @Override + public void warning(String message) + { + if(_logOutput != null) + { + + StringBuilder s = new StringBuilder(256); + s.append("-! "); + synchronized(this) + { + s.append(_date.format(new java.util.Date())); + s.append(_time.format(new java.util.Date())); + } + s.append(' '); + s.append(_formattedPrefix); + s.append("warning: "); + s.append(Thread.currentThread().getName()); + s.append(": "); + s.append(message); + _logOutput.write(s, true); + } + + Log.w(TAG, message); + } + + @Override + public void error(String message) + { + if(_logOutput != null) + { + StringBuilder s = new StringBuilder(256); + s.append("!! "); + synchronized(this) + { + s.append(_date.format(new java.util.Date())); + s.append(_time.format(new java.util.Date())); + } + s.append(' '); + s.append(_formattedPrefix); + s.append("error: "); + s.append(Thread.currentThread().getName()); + s.append(": "); + s.append(message); + _logOutput.write(s, true); + } + + Log.e(TAG, message); + } + + @Override + public String getPrefix() + { + return _prefix; + } + + @Override + public Logger cloneWithPrefix(String s) + { + return new AndroidLogger(s); + } + } + class MyWriter extends Writer { @Override @@ -251,20 +459,22 @@ public class TestApp extends Application private boolean _ssl = false; private boolean _sslInitialized = false; - private boolean _sslSupported = false; private boolean _ipv6 = false; private SSLContext _clientContext = null; private SSLContext _serverContext = null; - private SSLInitializationListener _ssllistener; + private SSLInitializationListener _sslListener; static abstract class TestThread extends Thread { + String _testName; test.Util.Application _app; protected int _status; - TestThread(test.Util.Application app) + TestThread(String testName, ClassLoader classLoader, test.Util.Application app) { + _testName = testName; _app = app; + _app.setClassLoader(classLoader); } public int getStatus() @@ -281,7 +491,7 @@ public class TestApp extends Application "--Ice.Default.Host=0:0:0:0:0:0:0:1", "--Ice.IPv4=1", "--Ice.IPv6=1", - "--Ice.PreferIPv6Address=1", + "--Ice.PreferIPv6Address=1" }; String[] nargs = new String[args.length + ipv6Args.length]; @@ -309,18 +519,18 @@ public class TestApp extends Application { String[] sslargs = { - "--Ice.Plugin.IceSSL=IceSSL.PluginFactory", "--Ice.Default.Protocol=ssl", "--Ice.InitPlugins=0" + "--Ice.Plugin.IceSSL=IceSSL.PluginFactory", + "--Ice.Default.Protocol=ssl", + "--Ice.InitPlugins=0", + "--Ice.Trace.Network=3", "--Ice.Trace.Protocol=3" }; - // - // Froyo apparently still suffers from Harmony bug 6047, requiring that we - // disable server-side verification of client certificates. - // - if(VERSION.SDK_INT == 8) // android.os.Build.VERSION_CODES.FROYO (8) + // 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.VerifyPeer=0"; + arr[arr.length - 1] = "--IceSSL.Protocols=tls1_0"; sslargs = arr; } @@ -328,6 +538,7 @@ public class TestApp extends Application 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) @@ -345,9 +556,9 @@ public class TestApp extends Application { private test.Util.Application _server; - ClientThread(test.Util.Application c, test.Util.Application s) + ClientThread(String testName, ClassLoader classLoader, test.Util.Application c, test.Util.Application s) { - super(c); + super(testName, classLoader, c); _server = s; setName("ClientThread"); } @@ -356,11 +567,25 @@ public class TestApp extends Application { String[] args = { - "--Ice.NullHandleAbort=1", "--Ice.Warn.Connections=1" + "--Ice.NullHandleAbort=1", + "--Ice.Warn.Connections=1" }; args = setupAddress(args, _ipv6); - + + if(_testName == "plugin") + { + try + { + _app.setClassLoader(getDEXClassLoader("IceTestPlugins.dex", _app.getClassLoader())); + } + catch(IOException e) + { + // The plugin test will fail. + Log.e(TAG, "IOException loading IceTestPlugins.dex", e); + } + } + if(_ssl) { args = setupssl(args, _clientContext); @@ -379,9 +604,9 @@ public class TestApp extends Application private test.Util.Application _client; private ClientThread _clientThread; - ServerThread(test.Util.Application c, test.Util.Application s) + ServerThread(String testName, ClassLoader classLoader, test.Util.Application c, test.Util.Application s) { - super(s); + super(testName, classLoader, s); setName("ServerThread"); _client = c; } @@ -409,7 +634,7 @@ public class TestApp extends Application { if(_client != null) { - _clientThread = new ClientThread(_client, _app); + _clientThread = new ClientThread(_testName, _app.getClassLoader(), _client, _app); _clientThread.start(); } } @@ -438,9 +663,9 @@ public class TestApp extends Application class CollocatedThread extends TestThread { - CollocatedThread(test.Util.Application c) + CollocatedThread(String testName, ClassLoader classLoader, test.Util.Application c) { - super(c); + super(testName, classLoader, c); setName("CollocatedThread"); } @@ -545,9 +770,9 @@ public class TestApp extends Application _serverContext = serverContext; _sslInitialized = true; - if(_ssllistener != null) + if(_sslListener != null) { - final SSLInitializationListener listener = _ssllistener; + final SSLInitializationListener listener = _sslListener; if(_clientContext == null | _serverContext == null) { _handler.post(new Runnable() @@ -574,23 +799,11 @@ public class TestApp extends Application @Override public void onCreate() { + // By default we don't log to a file. + //_logOutput = new LogOutput(); + Ice.Util.setProcessLogger(new AndroidLogger("")); _handler = new Handler(); - - if(VERSION.SDK_INT == 8) // android.os.Build.VERSION_CODES.FROYO (8) - { - // - // Workaround for a bug in Android 2.2 (Froyo). - // - // See http://code.google.com/p/android/issues/detail?id=9431 - // - java.lang.System.setProperty("java.net.preferIPv4Stack", "true"); - java.lang.System.setProperty("java.net.preferIPv6Addresses", "false"); - } - - // - // The SSLEngine class only works properly in Froyo (or later). - // - _sslSupported = VERSION.SDK_INT >= 8; + configureTests(); } @Override @@ -598,14 +811,10 @@ public class TestApp extends Application { } + public List<String> getTestNames() { - List<String> s = new ArrayList<String>(); - for(TestSuiteEntry t : _curtests) - { - s.add(t.getName()); - } - return s; + return _tests; } synchronized public void setTestListener(TestListener listener) @@ -613,7 +822,7 @@ public class TestApp extends Application _listener = listener; if(_listener != null && _currentTest != -1) { - _listener.onStartTest(_curtests[_currentTest].getName()); + _listener.onStartTest(_tests.get(_currentTest)); for(String s : _strings) { _listener.onOutput(s); @@ -628,7 +837,7 @@ public class TestApp extends Application public void startNextTest() { assert _complete; - startTest((_currentTest + 1) % _curtests.length); + startTest((_currentTest + 1) % _tests.size()); } synchronized public void startTest(int position) @@ -641,63 +850,83 @@ public class TestApp extends Application _complete = false; _strings.clear(); - TestSuiteEntry entry = _curtests[position]; + String testName = _tests.get(position); + test.Util.Application client; test.Util.Application server; test.Util.Application collocated; - + ClassLoader classLoader; if(_listener != null) { - _listener.onStartTest(entry.getName()); + _listener.onStartTest(testName); } try { - client = entry.getClient(); - server = entry.getServer(); - collocated = entry.getCollocated(); + TestSuiteBundle bundle = _bundles.get(testName); + if(bundle == null) + { + bundle = new TestSuiteBundle(testName, getDEXClassLoader("IceTest_" + testName + ".dex", null)); + _bundles.put(testName, bundle); + } + classLoader = bundle.getClassLoader(); + client = bundle.getClient(); + server = bundle.getServer(); + collocated = bundle.getCollocated(); } catch(IllegalAccessException e) { - e.printStackTrace(pw); + Log.w(TAG, "IllegalAccessException: test " + testName, e); postOnComplete(-1); return; } catch(InstantiationException e) { - e.printStackTrace(pw); + Log.w(TAG, "InstantiationException: test " + testName, e); postOnComplete(-1); return; } + catch(IOException e) + { + Log.w(TAG, "IOException: test " + testName, e); + postOnComplete(-1); + return; + } + + // Uncomment this if you want to reopen the logfile for each test. + //if(_logOutput != null) + //{ + // _logOutput.reopen(); + //} List<TestThread> l = new ArrayList<TestThread>(); if(server != null) { + server.setLogger(new AndroidLogger(testName + "_server")); server.setWriter(new MyWriter()); // All servers must have a client. assert client != null; - client.setWriter(new MyWriter()); - l.add(new ServerThread(client, server)); + client.setWriter(new MyWriter()); + client.setLogger(new AndroidLogger(testName + "_client")); + l.add(new ServerThread(testName, classLoader, client, server)); if(collocated != null) { + collocated.setLogger(new AndroidLogger(testName + "_collocated")); collocated.setWriter(new MyWriter()); - l.add(new CollocatedThread(collocated)); + l.add(new CollocatedThread(testName, classLoader, collocated)); } } else { client.setWriter(new MyWriter()); - l.add(new ClientThread(client, null)); + client.setLogger(new AndroidLogger(testName + "_client")); + l.add(new ClientThread(testName, classLoader, client, null)); } TestRunner r = new TestRunner(l); r.setDaemon(true); r.start(); } - public boolean isSSLSupported() - { - return _sslSupported; - } public void setIPv6(boolean ipv6) { @@ -706,26 +935,18 @@ public class TestApp extends Application public void setSSL(boolean ssl) { - assert(!ssl || (ssl && _sslSupported)); _ssl = ssl; - if(_ssl) + configureTests(); + if(_currentTest > _tests.size()-1) { - _curtests = _ssltests; - } - else - { - _curtests = _tests; - } - if(_currentTest > _curtests.length-1) - { - _currentTest = _curtests.length-1; + _currentTest = _tests.size()-1; } if(_ssl && !_sslInitialized) { - if(_ssllistener != null) + if(_sslListener != null) { - _ssllistener.onWait(); + _sslListener.onWait(); } Runnable r = new Runnable() { @@ -760,7 +981,7 @@ public class TestApp extends Application } catch(Exception ex) { - ex.printStackTrace(); + Log.w(TAG, "Exception", ex); } sslContextInitialized(clientContext, serverContext); } @@ -773,9 +994,26 @@ public class TestApp extends Application } } + private void configureTests() + { + _tests.clear(); + for(String s : _allTests) + { + if(_ssl && _sslUnsupportedTests.contains(s)) + { + continue; + } + if(!_ssl && _tcpUnsupportedTests.contains(s)) + { + continue; + } + _tests.add(s); + } + } + synchronized public void setSSLInitializationListener(SSLInitializationListener listener) { - _ssllistener = listener; + _sslListener = listener; if(_ssl) { 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 0b0a1178d6f..a2577a5aa87 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 @@ -72,24 +72,17 @@ public class TestSuite extends ListActivity } }); CheckBox secure = (CheckBox)findViewById(R.id.secure); - if(app.isSSLSupported()) + secure.setOnCheckedChangeListener(new OnCheckedChangeListener() { - secure.setOnCheckedChangeListener(new OnCheckedChangeListener() + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) - { - app.setSSL(isChecked); - _tests.clear(); - _tests.addAll(app.getTestNames()); - adapter.notifyDataSetChanged(); - } - }); - } - else - { - secure.setEnabled(false); - } - + app.setSSL(isChecked); + _tests.clear(); + _tests.addAll(app.getTestNames()); + adapter.notifyDataSetChanged(); + } + }); + CheckBox ipv6 = (CheckBox)findViewById(R.id.ipv6); ipv6.setOnCheckedChangeListener(new OnCheckedChangeListener() { diff --git a/android/test/android/testApp.iml b/android/test/android/testApp.iml index 829e330b6bc..bbcb89208ba 100644 --- a/android/test/android/testApp.iml +++ b/android/test/android/testApp.iml @@ -10,7 +10,7 @@ <configuration> <option name="SELECTED_BUILD_VARIANT" value="debug" /> <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" /> - <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugJava" /> + <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" /> <option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" /> <option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" /> <option name="TEST_SOURCE_GEN_TASK_NAME" value="generateDebugTestSources" /> @@ -78,11 +78,13 @@ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" /> <excludeFolder url="file://$MODULE_DIR$/build/outputs" /> + <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> - <orderEntry type="jdk" jdkName="Android API 17 Platform" jdkType="Android SDK" /> + <orderEntry type="jdk" jdkName="Android API 21 Platform" jdkType="Android SDK" /> <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="library" exported="" name="IceTest" level="project" /> <orderEntry type="library" exported="" name="Ice" level="project" /> + <orderEntry type="module" module-name="test" exported="" /> + <orderEntry type="module" module-name="testPlugins" exported="" /> </component> </module> diff --git a/android/test/build.gradle b/android/test/build.gradle index b5bde9e83fa..8444ad17fff 100644 --- a/android/test/build.gradle +++ b/android/test/build.gradle @@ -12,32 +12,15 @@ apply from: "$rootProject.projectDir/../java/gradle/ice.gradle" ext.testDir = "$rootProject.projectDir/../java/test/src/main/java/test" apply from: "$rootProject.projectDir/../java/test/slice.gradle" - -sourceCompatibility = 1.7 -targetCompatibility = 1.7 +apply from: "$rootProject.projectDir/gradle/tests.gradle" +apply from: "$rootProject.projectDir/gradle/dex.gradle" sourceSets { main { java { srcDir "$rootProject.projectDir/../java/test/src/main/java" - exclude 'Ice/translator' - exclude 'Slice/generation' - exclude '**/lambda' - exclude 'ejb' - exclude '**/Freeze' - exclude '**/Glacier2' - exclude '**/IceBox' - exclude '**/IceDiscovery' - exclude '**/IceGrid' - exclude '**/Slice' - exclude '**/IceSSL' - exclude '**/Ice/faultTolerance' - exclude '**/Ice/hash' - exclude '**/Ice/metrics' - exclude '**/Ice/plugin' - exclude '**/Ice/properties' - exclude '**/Ice/threadPoolPriority' - exclude '**/Ice/throughput' + include 'test/Util/**' + exclude 'test/Ice/**/lambda' } } } @@ -51,11 +34,49 @@ dependencies { compile project(':Ice') } -jar { - archiveName = "IceTest.jar" - destinationDir = new File("$rootProject.projectDir/lib/") -} +tests.each { + + def name = it + def dirName = name.replace('_', '/') + project(":test_Ice_${name}") { + apply plugin: 'java' + apply from: "$rootProject.projectDir/../java/gradle/ice.gradle" + + sourceSets { + main { + java { + srcDir "$rootProject.projectDir/../java/test/src/main/java" + include "test/Ice/${dirName}/**" + exclude 'test/Ice/**/lambda' + srcDir "$rootProject.projectDir/test/build/generated-src/" + include "test/Ice/${dirName}/**" + } + } + } + + def dexName = "IceTest_${name}.dex" + task dexClasses { + inputs.dir "${buildDir}/classes/main" + outputs.file "${buildDir}/classes/main/${dexName}" + doLast { + exec { + commandLine "${dxCmd}", '--dex', + "--output=${buildDir}/classes/main/${dexName}", + "${buildDir}/classes/main" + } + } + } + + dexClasses.dependsOn('classes') + + configure(jar) { + include "${dexName}" + } + jar.dependsOn(dexClasses) -clean { - delete("$rootProject.projectDir/lib/IceTest.jar") + dependencies { + compile project(':test') + compile project(':Ice') + } + } } diff --git a/android/test/plugins/build.gradle b/android/test/plugins/build.gradle new file mode 100644 index 00000000000..a36daf037fb --- /dev/null +++ b/android/test/plugins/build.gradle @@ -0,0 +1,46 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2014 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. +// +// ********************************************************************** + +apply plugin: 'java' +apply from: "$rootProject.projectDir/../java/gradle/ice.gradle" +apply from: "$rootProject.projectDir/gradle/dex.gradle" + +sourceSets { + main { + java { + srcDir "$rootProject.projectDir/../java/test/plugins/src/main/java" + include 'test/Ice/plugin/plugins/**' + } + } +} + +task dexClasses << { + exec { + commandLine "${dxCmd}", '--dex', + "--output=${buildDir}/classes/main/IceTestPlugins.dex", + "${buildDir}/classes/main" + } +} + +dexClasses.dependsOn('classes') + +// The jar file should only include IceTestPlugins.dex +configure(jar) { + include 'IceTestPlugins.dex' +} +jar.dependsOn(dexClasses) + +idea.module { + excludeDirs -= file(buildDir) + buildDir.listFiles({d, f ->f != 'generated-src'} as FilenameFilter).each { excludeDirs += it } +} + +dependencies { + compile project(':Ice') +} diff --git a/android/test/plugins/testPlugins.iml b/android/test/plugins/testPlugins.iml new file mode 100644 index 00000000000..74e8501b7a5 --- /dev/null +++ b/android/test/plugins/testPlugins.iml @@ -0,0 +1,39 @@ +<?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"> + <component name="FacetManager"> + <facet type="android-gradle" name="Android-Gradle"> + <configuration> + <option name="GRADLE_PROJECT_PATH" value=":testPlugins" /> + </configuration> + </facet> + <facet type="java-gradle" name="Java-Gradle"> + <configuration> + <option name="BUILD_FOLDER_PATH" /> + </configuration> + </facet> + </component> + <component name="NewModuleRootManager" inherit-compiler-output="false"> + <output url="file://$MODULE_DIR$/build/classes/main" /> + <output-test url="file://$MODULE_DIR$/build/classes/test" /> + <exclude-output /> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/build/generated-src" isTestSource="false" /> + <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> + <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> + <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> + <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/dependency-cache" /> + <excludeFolder url="file://$MODULE_DIR$/build/libs" /> + <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> + </content> + <content url="file://$MODULE_DIR$/../../../java/test/plugins/src/main/java"> + <sourceFolder url="file://$MODULE_DIR$/../../../java/test/plugins/src/main/java" isTestSource="false" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + <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 new file mode 100644 index 00000000000..c655abc99cf --- /dev/null +++ b/android/test/src/test_Ice_acm/test_Ice_acm.iml @@ -0,0 +1,40 @@ +<?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"> + <component name="FacetManager"> + <facet type="android-gradle" name="Android-Gradle"> + <configuration> + <option name="GRADLE_PROJECT_PATH" value=":test_Ice_acm" /> + </configuration> + </facet> + <facet type="java-gradle" name="Java-Gradle"> + <configuration> + <option name="BUILD_FOLDER_PATH" /> + </configuration> + </facet> + </component> + <component name="NewModuleRootManager" inherit-compiler-output="false"> + <output url="file://$MODULE_DIR$/build/classes/main" /> + <output-test url="file://$MODULE_DIR$/build/classes/test" /> + <exclude-output /> + <content url="file://$MODULE_DIR$/../../build/generated-src"> + <sourceFolder url="file://$MODULE_DIR$/../../build/generated-src" isTestSource="false" /> + </content> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> + <sourceFolder url="file://$MODULE_DIR$/build/generated-src" isTestSource="false" /> + <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> + <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> + <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" /> + <excludeFolder url="file://$MODULE_DIR$/.gradle" /> + <excludeFolder url="file://$MODULE_DIR$/build" /> + </content> + <content url="file://$MODULE_DIR$/../../../../java/test/src/main/java"> + <sourceFolder url="file://$MODULE_DIR$/../../../../java/test/src/main/java" isTestSource="false" /> + </content> + <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 ee8c862c3ce..a109c969e9c 100644 --- a/android/test/test.iml +++ b/android/test/test.iml @@ -25,6 +25,14 @@ <excludeFolder url="file://$MODULE_DIR$/.gradle" /> <excludeFolder url="file://$MODULE_DIR$/build/classes" /> <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" /> + <excludeFolder url="file://$MODULE_DIR$/build/libs" /> + <excludeFolder url="file://$MODULE_DIR$/build/set1.d.xml" /> + <excludeFolder url="file://$MODULE_DIR$/build/set2.d.xml" /> + <excludeFolder url="file://$MODULE_DIR$/build/set3.d.xml" /> + <excludeFolder url="file://$MODULE_DIR$/build/set4.d.xml" /> + <excludeFolder url="file://$MODULE_DIR$/build/set5.d.xml" /> + <excludeFolder url="file://$MODULE_DIR$/build/set6.d.xml" /> + <excludeFolder url="file://$MODULE_DIR$/build/slice2freezej.df.xml" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> <content url="file://$MODULE_DIR$/../../java/test/src/main/java"> diff --git a/java/src/Ice/src/main/java/Ice/ConnectionI.java b/java/src/Ice/src/main/java/Ice/ConnectionI.java index 57ec2b58b49..5a12142973e 100644 --- a/java/src/Ice/src/main/java/Ice/ConnectionI.java +++ b/java/src/Ice/src/main/java/Ice/ConnectionI.java @@ -2607,9 +2607,9 @@ public final class ConnectionI extends IceInternal.EventHandler case IceInternal.Protocol.replyMsg: { - IceInternal.TraceUtil.traceRecv(info.stream, _logger, _traceLevels); info.requestId = info.stream.readInt(); + IceInternal.OutgoingAsync outAsync = _asyncRequests.remove(info.requestId); if(outAsync != null && outAsync.completed(info.stream)) { @@ -2993,6 +2993,7 @@ public final class ConnectionI extends IceInternal.EventHandler s.append(_endpoint.protocol()); s.append("\n"); s.append(toString()); + _instance.initializationData().logger.trace(_instance.traceLevels().networkCat, s.toString()); } return op; diff --git a/java/src/Ice/src/main/java/IceInternal/EndpointHostResolver.java b/java/src/Ice/src/main/java/IceInternal/EndpointHostResolver.java index 896eb21b8a1..e0ea6773d1b 100644 --- a/java/src/Ice/src/main/java/IceInternal/EndpointHostResolver.java +++ b/java/src/Ice/src/main/java/IceInternal/EndpointHostResolver.java @@ -211,7 +211,12 @@ class EndpointHostResolver // Wait for the executor to terminate. try { - _executor.awaitTermination(Long.MAX_VALUE, java.util.concurrent.TimeUnit.NANOSECONDS); + while(!_executor.isTerminated()) + { + // A very long time. + _executor.awaitTermination(100000, java.util.concurrent.TimeUnit.SECONDS); + } + } finally { diff --git a/java/src/Ice/src/main/java/IceInternal/Instance.java b/java/src/Ice/src/main/java/IceInternal/Instance.java index ebe7dd118df..0fa1a9d77bc 100644 --- a/java/src/Ice/src/main/java/IceInternal/Instance.java +++ b/java/src/Ice/src/main/java/IceInternal/Instance.java @@ -129,7 +129,11 @@ public final class Instance throws InterruptedException { shutdown(); - awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS); + while(!isTerminated()) + { + // A very long time. + awaitTermination(100000, java.util.concurrent.TimeUnit.SECONDS); + } } private final ThreadObserverHelper _observerHelper; @@ -727,6 +731,12 @@ public final class Instance return Util.findClass(className, _initData.classLoader); } + public ClassLoader + getClassLoader() + { + return _initData.classLoader; + } + public synchronized String getClassForType(String type) { @@ -991,7 +1001,9 @@ public final class Instance // // If Ice.ThreadInterruptSafe is set or we're running on Android all - // IO is done on the background thread. + // IO is done on the background thread. For Android we use the queue + // executor as Android doesn't allow any network invocations on the main + // thread even if the call is non-blocking. // if(_initData.properties.getPropertyAsInt("Ice.ThreadInterruptSafe") > 0 || Util.isAndroid()) { @@ -1342,7 +1354,11 @@ public final class Instance } if(_timer != null) { - _timer.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS); + while(!_timer.isTerminated()) + { + // A very long time. + _timer.awaitTermination(100000, java.util.concurrent.TimeUnit.SECONDS); + } } } catch(InterruptedException ex) diff --git a/java/src/Ice/src/main/java/IceInternal/StreamSocket.java b/java/src/Ice/src/main/java/IceInternal/StreamSocket.java index 9ab185a42d5..c0be3b3ba61 100644 --- a/java/src/Ice/src/main/java/IceInternal/StreamSocket.java +++ b/java/src/Ice/src/main/java/IceInternal/StreamSocket.java @@ -11,11 +11,12 @@ package IceInternal; public class StreamSocket { - public StreamSocket(ProtocolInstance instance, + public StreamSocket(ProtocolInstance instance, NetworkProxy proxy, java.net.InetSocketAddress addr, java.net.InetSocketAddress sourceAddr) { + _instance = instance; _proxy = proxy; _addr = addr; _fd = Network.createTcpSocket(); @@ -23,7 +24,7 @@ public class StreamSocket try { - init(instance); + init(); if(Network.doConnect(_fd, _proxy != null ? _proxy.getAddress() : _addr, sourceAddr)) { _state = StateConnected; @@ -41,6 +42,7 @@ public class StreamSocket public StreamSocket(ProtocolInstance instance, java.nio.channels.SocketChannel fd) { + _instance = instance; _proxy = null; _addr = null; _fd = fd; @@ -48,7 +50,7 @@ public class StreamSocket try { - init(instance); + init(); } catch(Exception ex) { @@ -174,11 +176,7 @@ public class StreamSocket assert(_fd != null); int read = 0; - if(_buffer != null && _buffer.hasRemaining()) - { - read = readBuffered(buf); - } - + while(buf.hasRemaining()) { try @@ -192,7 +190,7 @@ public class StreamSocket { return read; } - + read += ret; } catch(java.io.InterruptedIOException ex) @@ -274,10 +272,10 @@ public class StreamSocket return _desc; } - private void init(ProtocolInstance instance) + private void init() { Network.setBlock(_fd, false); - Network.setTcpBufSize(_fd, instance.properties(), instance.logger()); + Network.setTcpBufSize(_fd, _instance.properties(), _instance.logger()); if(System.getProperty("os.name").startsWith("Windows")) { @@ -294,28 +292,6 @@ public class StreamSocket } } - private int readBuffered(java.nio.ByteBuffer buf) - { - assert(_buffer != null); - int length = buf.remaining(); - if(length < _buffer.remaining()) - { - int limit = _buffer.limit(); - _buffer.limit(_buffer.position() + length); - buf.put(_buffer); - _buffer.position(_buffer.limit()); - _buffer.limit(limit); - return length; - } - else - { - int read = _buffer.remaining(); - buf.put(_buffer); - _buffer.clear(); - return read; - } - } - private int toState(int operation) { switch(operation) @@ -329,6 +305,8 @@ public class StreamSocket } } + private final ProtocolInstance _instance; + final private NetworkProxy _proxy; final private java.net.InetSocketAddress _addr; @@ -336,7 +314,6 @@ public class StreamSocket private int _maxSendPacketSize; private int _state; private String _desc; - private java.nio.ByteBuffer _buffer; private static final int StateNeedConnect = 0; private static final int StateConnectPending = 1; diff --git a/java/src/Ice/src/main/java/IceInternal/TraceUtil.java b/java/src/Ice/src/main/java/IceInternal/TraceUtil.java index f3c269aa9d5..6af4c41de3b 100644 --- a/java/src/Ice/src/main/java/IceInternal/TraceUtil.java +++ b/java/src/Ice/src/main/java/IceInternal/TraceUtil.java @@ -303,7 +303,7 @@ public final class TraceUtil try { byte mode = stream.readByte(); - out.write("\nmode = " + (int)mode + ' '); + out.write("\nmode = " + (int) mode + ' '); switch(Ice.OperationMode.values()[mode]) { case Normal: @@ -337,7 +337,7 @@ public final class TraceUtil { String key = stream.readString(); String value = stream.readString(); - out.write(key + '/'+ value); + out.write(key + '/' + value); if(sz > 0) { out.write(", "); diff --git a/java/src/Ice/src/main/java/IceSSL/SSLEngine.java b/java/src/Ice/src/main/java/IceSSL/SSLEngine.java index 5601d3f2312..9e121635fc8 100644 --- a/java/src/Ice/src/main/java/IceSSL/SSLEngine.java +++ b/java/src/Ice/src/main/java/IceSSL/SSLEngine.java @@ -48,7 +48,7 @@ class SSLEngine // Protocols selects which protocols to enable, by default we only enable TLS1.0 // TLS1.1 and TLS1.2 to avoid security issues with SSLv3 // - String[] protocols = + String[] protocols = properties.getPropertyAsListWithDefault(prefix + "Protocols", new String[]{"tls1_0", "tls1_1", "tls1_2"}); if(protocols.length != 0) { diff --git a/java/src/Ice/src/main/java/IceSSL/TransceiverI.java b/java/src/Ice/src/main/java/IceSSL/TransceiverI.java index 937d6cea068..7799dcf2caa 100644 --- a/java/src/Ice/src/main/java/IceSSL/TransceiverI.java +++ b/java/src/Ice/src/main/java/IceSSL/TransceiverI.java @@ -184,14 +184,17 @@ final class TransceiverI implements IceInternal.Transceiver _netInput.flip(); SSLEngineResult result = _engine.unwrap(_netInput, _appInput); _netInput.compact(); - switch(result.getStatus()) - { - case BUFFER_OVERFLOW: + + Status status = result.getStatus(); + assert status != Status.BUFFER_OVERFLOW; + + if(status == Status.CLOSED) { - assert(false); - break; + throw new Ice.ConnectionLostException(); } - case BUFFER_UNDERFLOW: + // Android API 21 SSLEngine doesn't report underflow, so look at the absence of + // network data and application data to signal a network read. + else if(status == Status.BUFFER_UNDERFLOW || (_appInput.position() == 0 && _netInput.position() == 0)) { if(_stream.read(_netInput) == 0) { @@ -199,15 +202,6 @@ final class TransceiverI implements IceInternal.Transceiver } continue; } - case CLOSED: - { - throw new Ice.ConnectionLostException(); - } - case OK: - { - break; - } - } fill(buf.b); } @@ -220,7 +214,8 @@ final class TransceiverI implements IceInternal.Transceiver // // Return a boolean to indicate whether more data is available. // - moreData.value = _netInput.position() > 0; + moreData.value = _netInput.position() > 0 || _appInput.position() > 0; + return IceInternal.SocketOperation.None; } @@ -325,7 +320,7 @@ final class TransceiverI implements IceInternal.Transceiver try { HandshakeStatus status = _engine.getHandshakeStatus(); - while(true) + while(!_engine.isOutboundDone() && !_engine.isInboundDone()) { SSLEngineResult result = null; switch(status) @@ -347,6 +342,11 @@ final class TransceiverI implements IceInternal.Transceiver } case NEED_UNWRAP: { + if(_netInput.position() == 0 && _stream.read(_netInput) == 0) + { + return IceInternal.SocketOperation.Read; + } + // // The engine needs more data. We might already have enough data in // the _netInput buffer to satisfy the engine. If not, the engine @@ -396,6 +396,7 @@ final class TransceiverI implements IceInternal.Transceiver { return IceInternal.SocketOperation.Write; } + // // FINISHED is only returned from wrap or unwrap, not from engine.getHandshakeResult(). // @@ -427,6 +428,7 @@ final class TransceiverI implements IceInternal.Transceiver { throw new Ice.SecurityException("IceSSL: handshake error", ex); } + return IceInternal.SocketOperation.None; } private int writeNonBlocking(ByteBuffer buf) @@ -445,6 +447,7 @@ final class TransceiverI implements IceInternal.Transceiver // // Encrypt the buffer. // + int position = _netOutput.position(); SSLEngineResult result = _engine.wrap(buf, _netOutput); switch(result.getStatus()) { diff --git a/java/test/src/main/java/test/Freeze/evictor/Client.java b/java/test/src/main/java/test/Freeze/evictor/Client.java index 82f8c8c3265..4de8cf8b1bc 100644 --- a/java/test/src/main/java/test/Freeze/evictor/Client.java +++ b/java/test/src/main/java/test/Freeze/evictor/Client.java @@ -1040,7 +1040,7 @@ public class Client extends test.Util.Application protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Freeze.evictor"); return initData; diff --git a/java/test/src/main/java/test/Freeze/evictor/Server.java b/java/test/src/main/java/test/Freeze/evictor/Server.java index e457fdf619e..f296e288d86 100644 --- a/java/test/src/main/java/test/Freeze/evictor/Server.java +++ b/java/test/src/main/java/test/Freeze/evictor/Server.java @@ -85,7 +85,7 @@ public class Server extends test.Util.Application protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Evictor.Endpoints", "default -p 12010"); initData.properties.setProperty("Ice.Package.Test", "test.Freeze.evictor"); diff --git a/java/test/src/main/java/test/Glacier2/router/Client.java b/java/test/src/main/java/test/Glacier2/router/Client.java index 257e81c12cd..4a05d8eb0cb 100644 --- a/java/test/src/main/java/test/Glacier2/router/Client.java +++ b/java/test/src/main/java/test/Glacier2/router/Client.java @@ -463,7 +463,7 @@ public class Client extends test.Util.Application protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Warn.Dispatch", "0"); initData.properties.setProperty("Ice.Warn.Connections", "0"); diff --git a/java/test/src/main/java/test/Glacier2/router/Server.java b/java/test/src/main/java/test/Glacier2/router/Server.java index 78ad7b573ce..e2182c1a091 100644 --- a/java/test/src/main/java/test/Glacier2/router/Server.java +++ b/java/test/src/main/java/test/Glacier2/router/Server.java @@ -32,7 +32,7 @@ public class Server extends test.Util.Application protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Glacier2.router"); diff --git a/java/test/src/main/java/test/Glacier2/sessionHelper/Client.java b/java/test/src/main/java/test/Glacier2/sessionHelper/Client.java index f61f84d0051..64ac7dafdf0 100644 --- a/java/test/src/main/java/test/Glacier2/sessionHelper/Client.java +++ b/java/test/src/main/java/test/Glacier2/sessionHelper/Client.java @@ -34,7 +34,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - _initData = new Ice.InitializationData(); + _initData = createInitializationData(); _initData.properties = Ice.Util.createProperties(argsH); _initData.properties.setProperty("Ice.Default.Router", "Glacier2/router:default -p 12347"); _initData.dispatcher = new Ice.Dispatcher() diff --git a/java/test/src/main/java/test/Glacier2/sessionHelper/Server.java b/java/test/src/main/java/test/Glacier2/sessionHelper/Server.java index d0cfd717a14..0429387cb80 100644 --- a/java/test/src/main/java/test/Glacier2/sessionHelper/Server.java +++ b/java/test/src/main/java/test/Glacier2/sessionHelper/Server.java @@ -25,7 +25,7 @@ public class Server extends test.Util.Application protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Glacier2.router"); diff --git a/java/test/src/main/java/test/Ice/acm/AllTests.java b/java/test/src/main/java/test/Ice/acm/AllTests.java index a700cdb26b6..4a219511f65 100644 --- a/java/test/src/main/java/test/Ice/acm/AllTests.java +++ b/java/test/src/main/java/test/Ice/acm/AllTests.java @@ -16,9 +16,11 @@ import test.Ice.acm.Test.RemoteCommunicatorPrxHelper; import test.Ice.acm.Test.RemoteObjectAdapterPrx; import test.Ice.acm.Test.TestIntfPrx; import test.Ice.acm.Test.TestIntfPrxHelper; +import test.Util.Application; public class AllTests { + private static Ice.Communicator communicator; private static void test(boolean b) { @@ -118,8 +120,9 @@ public class AllTests static abstract class TestCase implements Ice.ConnectionCallback { - public TestCase(String name, RemoteCommunicatorPrx com, java.io.PrintWriter out) + public TestCase(Application app, String name, RemoteCommunicatorPrx com, PrintWriter out) { + _app = app; _name = name; _com = com; _logger = new LoggerI(out); @@ -141,7 +144,8 @@ public class AllTests _adapter = _com.createObjectAdapter(_serverACMTimeout, _serverACMClose, _serverACMHeartbeat); Ice.InitializationData initData = new Ice.InitializationData(); - initData.properties = _com.ice_getCommunicator().getProperties()._clone(); + initData.classLoader = IceInternal.Util.getInstance(_app.communicator()).getClassLoader(); + initData.properties = _app.communicator().getProperties()._clone(); initData.logger = _logger; initData.properties.setProperty("Ice.ACM.Timeout", "1"); if(_clientACMTimeout >= 0) @@ -158,7 +162,7 @@ public class AllTests } //initData.properties.setProperty("Ice.Trace.Protocol", "2"); //initData.properties.setProperty("Ice.Trace.Network", "2"); - _communicator = Ice.Util.initialize(initData); + _communicator = _app.initialize(initData); _thread = new Thread( new Runnable() @@ -247,6 +251,7 @@ public class AllTests _serverACMHeartbeat = heartbeat; } + private final Application _app; private String _name; private RemoteCommunicatorPrx _com; private String _msg; @@ -269,9 +274,9 @@ public class AllTests static class InvocationHeartbeatTest extends TestCase { - public InvocationHeartbeatTest(RemoteCommunicatorPrx com, java.io.PrintWriter out) + public InvocationHeartbeatTest(Application app, RemoteCommunicatorPrx com, java.io.PrintWriter out) { - super("invocation heartbeat", com, out); + super(app, "invocation heartbeat", com, out); } public void runTestCase(RemoteObjectAdapterPrx adapter, TestIntfPrx proxy) @@ -279,13 +284,13 @@ public class AllTests proxy.sleep(2); test(_heartbeat >= 2); } - }; + } static class InvocationHeartbeatOnHoldTest extends TestCase { - public InvocationHeartbeatOnHoldTest(RemoteCommunicatorPrx com, java.io.PrintWriter out) + public InvocationHeartbeatOnHoldTest(Application app, RemoteCommunicatorPrx com, java.io.PrintWriter out) { - super("invocation with heartbeat on hold", com, out); + super(app, "invocation with heartbeat on hold", com, out); // Use default ACM configuration. } @@ -310,13 +315,13 @@ public class AllTests } } } - }; + } static class InvocationNoHeartbeatTest extends TestCase { - public InvocationNoHeartbeatTest(RemoteCommunicatorPrx com, java.io.PrintWriter out) + public InvocationNoHeartbeatTest(Application app, RemoteCommunicatorPrx com, java.io.PrintWriter out) { - super("invocation with no heartbeat", com, out); + super(app, "invocation with no heartbeat", com, out); setServerACM(1, 2, 0); // Disable heartbeat on invocations } @@ -341,13 +346,13 @@ public class AllTests } } } - }; + } static class InvocationHeartbeatCloseOnIdleTest extends TestCase { - public InvocationHeartbeatCloseOnIdleTest(RemoteCommunicatorPrx com, java.io.PrintWriter out) + public InvocationHeartbeatCloseOnIdleTest(Application app, RemoteCommunicatorPrx com, java.io.PrintWriter out) { - super("invocation with no heartbeat and close on idle", com, out); + super(app, "invocation with no heartbeat and close on idle", com, out); setClientACM(1, 1, 0); // Only close on idle. setServerACM(1, 2, 0); // Disable heartbeat on invocations } @@ -364,13 +369,13 @@ public class AllTests test(!_closed); } } - }; + } static class CloseOnIdleTest extends TestCase { - public CloseOnIdleTest(RemoteCommunicatorPrx com, java.io.PrintWriter out) + public CloseOnIdleTest(Application app, RemoteCommunicatorPrx com, java.io.PrintWriter out) { - super("close on idle", com, out); + super(app, "close on idle", com, out); setClientACM(1, 1, 0); // Only close on idle } @@ -390,13 +395,13 @@ public class AllTests test(_closed); } } - }; + } static class CloseOnInvocationTest extends TestCase { - public CloseOnInvocationTest(RemoteCommunicatorPrx com, java.io.PrintWriter out) + public CloseOnInvocationTest(Application app, RemoteCommunicatorPrx com, java.io.PrintWriter out) { - super("close on invocation", com, out); + super(app, "close on invocation", com, out); setClientACM(1, 2, 0); // Only close on invocation } @@ -416,13 +421,13 @@ public class AllTests test(!_closed); } } - }; + } static class CloseOnIdleAndInvocationTest extends TestCase { - public CloseOnIdleAndInvocationTest(RemoteCommunicatorPrx com, java.io.PrintWriter out) + public CloseOnIdleAndInvocationTest(Application app, RemoteCommunicatorPrx com, java.io.PrintWriter out) { - super("close on idle and invocation", com, out); + super(app, "close on idle and invocation", com, out); setClientACM(1, 3, 0); // Only close on idle and invocation } @@ -462,13 +467,13 @@ public class AllTests test(_closed); // Connection should be closed this time. } } - }; + } static class ForcefulCloseOnIdleAndInvocationTest extends TestCase { - public ForcefulCloseOnIdleAndInvocationTest(RemoteCommunicatorPrx com, java.io.PrintWriter out) + public ForcefulCloseOnIdleAndInvocationTest(Application app, RemoteCommunicatorPrx com, java.io.PrintWriter out) { - super("forceful close on idle and invocation", com, out); + super(app, "forceful close on idle and invocation", com, out); setClientACM(1, 4, 0); // Only close on idle and invocation } @@ -489,13 +494,13 @@ public class AllTests test(_closed); // Connection closed forcefully by ACM } } - }; + } static class HeartbeatOnIdleTest extends TestCase { - public HeartbeatOnIdleTest(RemoteCommunicatorPrx com, java.io.PrintWriter out) + public HeartbeatOnIdleTest(Application app, RemoteCommunicatorPrx com, java.io.PrintWriter out) { - super("heartbeat on idle", com, out); + super(app, "heartbeat on idle", com, out); setServerACM(1, -1, 2); // Enable server heartbeats. } @@ -514,13 +519,13 @@ public class AllTests test(_heartbeat >= 3); } } - }; + } static class HeartbeatAlwaysTest extends TestCase { - public HeartbeatAlwaysTest(RemoteCommunicatorPrx com, java.io.PrintWriter out) + public HeartbeatAlwaysTest(Application app, RemoteCommunicatorPrx com, java.io.PrintWriter out) { - super("heartbeat always", com, out); + super(app, "heartbeat always", com, out); setServerACM(1, -1, 3); // Enable server heartbeats. } @@ -543,13 +548,13 @@ public class AllTests test(_heartbeat >= 3); } } - }; + } static class SetACMTest extends TestCase { - public SetACMTest(RemoteCommunicatorPrx com, java.io.PrintWriter out) + public SetACMTest(Application app, RemoteCommunicatorPrx com, java.io.PrintWriter out) { - super("setACM/getACM", com, out); + super(app, "setACM/getACM", com, out); setClientACM(15, 4, 2); } @@ -576,29 +581,30 @@ public class AllTests test(acm.close == Ice.ACMClose.CloseOnInvocationAndIdle); test(acm.heartbeat == Ice.ACMHeartbeat.HeartbeatOnInvocation); } - }; + } public static void - allTests(Ice.Communicator communicator, PrintWriter out) + allTests(test.Util.Application app, PrintWriter out) { + Ice.Communicator communicator = app.communicator(); String ref = "communicator:default -p 12010"; RemoteCommunicatorPrx com = RemoteCommunicatorPrxHelper.uncheckedCast(communicator.stringToProxy(ref)); java.util.List<TestCase> tests = new java.util.ArrayList<TestCase>(); - tests.add(new InvocationHeartbeatTest(com, out)); - tests.add(new InvocationHeartbeatOnHoldTest(com, out)); - tests.add(new InvocationNoHeartbeatTest(com, out)); - tests.add(new InvocationHeartbeatCloseOnIdleTest(com, out)); + tests.add(new InvocationHeartbeatTest(app, com, out)); + tests.add(new InvocationHeartbeatOnHoldTest(app, com, out)); + tests.add(new InvocationNoHeartbeatTest(app, com, out)); + tests.add(new InvocationHeartbeatCloseOnIdleTest(app, com, out)); - tests.add(new CloseOnIdleTest(com, out)); - tests.add(new CloseOnInvocationTest(com, out)); - tests.add(new CloseOnIdleAndInvocationTest(com, out)); - tests.add(new ForcefulCloseOnIdleAndInvocationTest(com, out)); + tests.add(new CloseOnIdleTest(app, com, out)); + tests.add(new CloseOnInvocationTest(app, com, out)); + tests.add(new CloseOnIdleAndInvocationTest(app, com, out)); + tests.add(new ForcefulCloseOnIdleAndInvocationTest(app, com, out)); - tests.add(new HeartbeatOnIdleTest(com, out)); - tests.add(new HeartbeatAlwaysTest(com, out)); - tests.add(new SetACMTest(com, out)); + tests.add(new HeartbeatOnIdleTest(app, com, out)); + tests.add(new HeartbeatAlwaysTest(app, com, out)); + tests.add(new SetACMTest(app, com, out)); for(TestCase test : tests) { diff --git a/java/test/src/main/java/test/Ice/acm/Client.java b/java/test/src/main/java/test/Ice/acm/Client.java index c6045f9a6ca..192716c7817 100644 --- a/java/test/src/main/java/test/Ice/acm/Client.java +++ b/java/test/src/main/java/test/Ice/acm/Client.java @@ -13,13 +13,13 @@ public class Client extends test.Util.Application { public int run(String[] args) { - AllTests.allTests(communicator(), getWriter()); + AllTests.allTests(this, getWriter()); return 0; } protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.acm"); initData.properties.setProperty("Ice.Warn.Connections", "0"); diff --git a/java/test/src/main/java/test/Ice/acm/Server.java b/java/test/src/main/java/test/Ice/acm/Server.java index e267b9fa498..9b98038e083 100644 --- a/java/test/src/main/java/test/Ice/acm/Server.java +++ b/java/test/src/main/java/test/Ice/acm/Server.java @@ -28,7 +28,7 @@ public class Server extends test.Util.Application protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.acm"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/adapterDeactivation/AllTests.java b/java/test/src/main/java/test/Ice/adapterDeactivation/AllTests.java index 05cbc8f3d59..09dfee83406 100644 --- a/java/test/src/main/java/test/Ice/adapterDeactivation/AllTests.java +++ b/java/test/src/main/java/test/Ice/adapterDeactivation/AllTests.java @@ -24,8 +24,9 @@ public class AllTests } public static TestIntfPrx - allTests(Ice.Communicator communicator, java.io.PrintWriter out) + allTests(test.Util.Application app, java.io.PrintWriter out) { + Ice.Communicator communicator = app.communicator(); out.print("testing stringToProxy... "); out.flush(); String ref = "test:default -p 12010"; @@ -73,8 +74,9 @@ public class AllTests for(int i = 0; i < 10; ++i) { Ice.InitializationData initData = new Ice.InitializationData(); + initData.classLoader = IceInternal.Util.getInstance(communicator).getClassLoader(); initData.properties = communicator.getProperties()._clone(); - Ice.Communicator comm = Ice.Util.initialize(initData); + Ice.Communicator comm = app.initialize(initData); comm.stringToProxy("test:default -p 12010").begin_ice_ping(); comm.destroy(); } diff --git a/java/test/src/main/java/test/Ice/adapterDeactivation/Client.java b/java/test/src/main/java/test/Ice/adapterDeactivation/Client.java index d5e66de93b6..98c362fa1b6 100644 --- a/java/test/src/main/java/test/Ice/adapterDeactivation/Client.java +++ b/java/test/src/main/java/test/Ice/adapterDeactivation/Client.java @@ -14,13 +14,13 @@ public class Client extends test.Util.Application public int run(String[] args) { - AllTests.allTests(communicator(), getWriter()); + AllTests.allTests(this, getWriter()); return 0; } protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.adapterDeactivation"); return initData; diff --git a/java/test/src/main/java/test/Ice/adapterDeactivation/Collocated.java b/java/test/src/main/java/test/Ice/adapterDeactivation/Collocated.java index 2ddd551b6ac..1b440ea3beb 100644 --- a/java/test/src/main/java/test/Ice/adapterDeactivation/Collocated.java +++ b/java/test/src/main/java/test/Ice/adapterDeactivation/Collocated.java @@ -18,7 +18,7 @@ public class Collocated extends test.Util.Application Ice.ServantLocator locator = new ServantLocatorI(); adapter.addServantLocator(locator, ""); - AllTests.allTests(communicator(), getWriter()); + AllTests.allTests(this, getWriter()); adapter.waitForDeactivate(); return 0; @@ -26,9 +26,9 @@ public class Collocated extends test.Util.Application protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); - if(initData.properties.getPropertyAsInt("Ice.ThreadInterruptSafe") > 0) + if(initData.properties.getPropertyAsInt("Ice.ThreadInterruptSafe") > 0 || isAndroid()) { initData.properties.setProperty("Ice.ThreadPool.Server.Size", "2"); } diff --git a/java/test/src/main/java/test/Ice/adapterDeactivation/Server.java b/java/test/src/main/java/test/Ice/adapterDeactivation/Server.java index 56d9ccd5c6b..60cdba6b7c6 100644 --- a/java/test/src/main/java/test/Ice/adapterDeactivation/Server.java +++ b/java/test/src/main/java/test/Ice/adapterDeactivation/Server.java @@ -26,7 +26,7 @@ public class Server extends test.Util.Application protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.adapterDeactivation"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010:udp"); diff --git a/java/test/src/main/java/test/Ice/admin/AllTests.java b/java/test/src/main/java/test/Ice/admin/AllTests.java index abc85ce0b86..93e72d1ccd0 100644 --- a/java/test/src/main/java/test/Ice/admin/AllTests.java +++ b/java/test/src/main/java/test/Ice/admin/AllTests.java @@ -108,7 +108,7 @@ public class AllTests // // Test: Exercise addAdminFacet, findAdminFacet, removeAdminFacet with a typical configuration. // - Ice.InitializationData init = new Ice.InitializationData(); + Ice.InitializationData init = app.createInitializationData(); init.properties = Ice.Util.createProperties(); init.properties.setProperty("Ice.Admin.Endpoints", "tcp -h 127.0.0.1"); init.properties.setProperty("Ice.Admin.InstanceName", "Test"); @@ -120,7 +120,7 @@ public class AllTests // // Test: Verify that the operations work correctly in the presence of facet filters. // - Ice.InitializationData init = new Ice.InitializationData(); + Ice.InitializationData init = app.createInitializationData(); init.properties = Ice.Util.createProperties(); init.properties.setProperty("Ice.Admin.Endpoints", "tcp -h 127.0.0.1"); init.properties.setProperty("Ice.Admin.InstanceName", "Test"); @@ -141,7 +141,7 @@ public class AllTests // // Test: Verify that the operations work correctly when Ice.Admin.Enabled is set // - Ice.InitializationData init = new Ice.InitializationData(); + Ice.InitializationData init = app.createInitializationData(); init.properties = Ice.Util.createProperties(); init.properties.setProperty("Ice.Admin.Enabled", "1"); Ice.Communicator com = Ice.Util.initialize(init); @@ -167,7 +167,7 @@ public class AllTests // // Test: Verify that the operations work correctly when creation of the Admin object is delayed. // - Ice.InitializationData init = new Ice.InitializationData(); + Ice.InitializationData init = app.createInitializationData(); init.properties = Ice.Util.createProperties(); init.properties.setProperty("Ice.Admin.Endpoints", "tcp -h 127.0.0.1"); init.properties.setProperty("Ice.Admin.InstanceName", "Test"); diff --git a/java/test/src/main/java/test/Ice/admin/RemoteCommunicatorFactoryI.java b/java/test/src/main/java/test/Ice/admin/RemoteCommunicatorFactoryI.java index 3100081f816..64242e524be 100644 --- a/java/test/src/main/java/test/Ice/admin/RemoteCommunicatorFactoryI.java +++ b/java/test/src/main/java/test/Ice/admin/RemoteCommunicatorFactoryI.java @@ -19,16 +19,17 @@ public class RemoteCommunicatorFactoryI extends _RemoteCommunicatorFactoryDisp // // Prepare the property set using the given properties. // - Ice.InitializationData init = new Ice.InitializationData(); - init.properties = Ice.Util.createProperties(); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.classLoader = IceInternal.Util.getInstance(current.adapter.getCommunicator()).getClassLoader(); + initData.properties = Ice.Util.createProperties(); for(java.util.Map.Entry<String, String> e : props.entrySet()) { - init.properties.setProperty(e.getKey(), e.getValue()); + initData.properties.setProperty(e.getKey(), e.getValue()); } - if(init.properties.getPropertyAsInt("NullLogger") > 0) + if(initData.properties.getPropertyAsInt("NullLogger") > 0) { - init.logger = new Ice.Logger() { + initData.logger = new Ice.Logger() { @Override public void print(String message) { } @@ -60,7 +61,7 @@ public class RemoteCommunicatorFactoryI extends _RemoteCommunicatorFactoryDisp // // Initialize a new communicator. // - Ice.Communicator communicator = Ice.Util.initialize(init); + Ice.Communicator communicator = Ice.Util.initialize(initData); // // Install a custom admin facet. diff --git a/java/test/src/main/java/test/Ice/admin/Server.java b/java/test/src/main/java/test/Ice/admin/Server.java index a29e6a6d5a2..0f9b4222509 100644 --- a/java/test/src/main/java/test/Ice/admin/Server.java +++ b/java/test/src/main/java/test/Ice/admin/Server.java @@ -24,7 +24,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.proxy"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010:udp"); diff --git a/java/test/src/main/java/test/Ice/ami/AMI.java b/java/test/src/main/java/test/Ice/ami/AMI.java index 14384350c7f..4b35e6b0363 100644 --- a/java/test/src/main/java/test/Ice/ami/AMI.java +++ b/java/test/src/main/java/test/Ice/ami/AMI.java @@ -23,6 +23,33 @@ import test.Util.Application; public class AMI { + private static class Counter + { + private int _count = 0; + + synchronized void decrement() + { + --_count; + if(_count == 0) + { + notifyAll(); + } + } + + synchronized void increment() + { + ++_count; + } + + synchronized void waitComplete() throws InterruptedException + { + while(_count > 0) + { + wait(); + } + } + } + private static void test(boolean b) { @@ -1145,6 +1172,7 @@ public class AMI if(p.ice_getConnection() != null) { Ice.InitializationData initData = new Ice.InitializationData(); + initData.classLoader = IceInternal.Util.getInstance(communicator).getClassLoader(); initData.properties = communicator.getProperties()._clone(); Ice.Communicator ic = app.initialize(initData); Ice.ObjectPrx o = ic.stringToProxy(p.toString()); @@ -1366,146 +1394,146 @@ public class AMI final SentCallback cb = new SentCallback(); p.begin_ice_isA("", new Ice.Callback_Object_ice_isA() + { + @Override + public void + response(boolean r) { - @Override - public void - response(boolean r) - { - cb.isA(r); - } + cb.isA(r); + } - @Override - public void - exception(Ice.LocalException ex) - { - cb.ex(ex); - } + @Override + public void + exception(Ice.LocalException ex) + { + cb.ex(ex); + } - @Override - public void - sent(boolean ss) - { - cb.sent(ss); - } - }); + @Override + public void + sent(boolean ss) + { + cb.sent(ss); + } + }); cb.check(); p.begin_ice_ping(new Ice.Callback_Object_ice_ping() + { + @Override + public void + response() { - @Override - public void - response() - { - cb.ping(); - } + cb.ping(); + } - @Override - public void - exception(Ice.LocalException ex) - { - cb.ex(ex); - } + @Override + public void + exception(Ice.LocalException ex) + { + cb.ex(ex); + } - @Override - public void - sent(boolean ss) - { - cb.sent(ss); - } - }); + @Override + public void + sent(boolean ss) + { + cb.sent(ss); + } + }); cb.check(); p.begin_ice_id(new Ice.Callback_Object_ice_id() + { + @Override + public void + response(String id) { - @Override - public void - response(String id) - { - cb.id(id); - } + cb.id(id); + } - @Override - public void - exception(Ice.LocalException ex) - { - cb.ex(ex); - } + @Override + public void + exception(Ice.LocalException ex) + { + cb.ex(ex); + } - @Override - public void - sent(boolean ss) - { - cb.sent(ss); - } - }); + @Override + public void + sent(boolean ss) + { + cb.sent(ss); + } + }); cb.check(); p.begin_ice_ids(new Ice.Callback_Object_ice_ids() + { + @Override + public void + response(String[] ids) { - @Override - public void - response(String[] ids) - { - cb.ids(ids); - } + cb.ids(ids); + } - @Override - public void - exception(Ice.LocalException ex) - { - cb.ex(ex); - } + @Override + public void + exception(Ice.LocalException ex) + { + cb.ex(ex); + } - @Override - public void - sent(boolean ss) - { - cb.sent(ss); - } - }); + @Override + public void + sent(boolean ss) + { + cb.sent(ss); + } + }); cb.check(); p.begin_op(new Callback_TestIntf_op() + { + @Override + public void + response() { - @Override - public void - response() - { - cb.op(); - } + cb.op(); + } - @Override - public void - exception(Ice.LocalException ex) - { - cb.ex(ex); - } + @Override + public void + exception(Ice.LocalException ex) + { + cb.ex(ex); + } - @Override - public void - sent(boolean ss) - { - cb.sent(ss); - } - }); + @Override + public void + sent(boolean ss) + { + cb.sent(ss); + } + }); cb.check(); p.begin_op(new Ice.Callback() + { + @Override + public void + completed(Ice.AsyncResult result) { - @Override - public void - completed(Ice.AsyncResult result) - { - cb.opAsync(result); - } + cb.opAsync(result); + } - @Override - public void - sent(Ice.AsyncResult result) - { - cb.sent(result); - } - }); + @Override + public void + sent(Ice.AsyncResult result) + { + cb.sent(result); + } + }); cb.check(); java.util.List<SentCallback> cbs = new java.util.ArrayList<SentCallback>(); @@ -1513,33 +1541,38 @@ public class AMI new java.util.Random().nextBytes(seq); // Make sure the request doesn't compress too well. Ice.AsyncResult r; testController.holdAdapter(); + + final Counter counter = new Counter(); try { do { final SentCallback cb2 = new SentCallback(); r = p.begin_opWithPayload(seq, new Callback_TestIntf_opWithPayload() + { + @Override + public void + response() { - @Override - public void - response() - { - } - - @Override - public void - exception(Ice.LocalException ex) - { - cb2.ex(ex); - } + counter.decrement(); + } - @Override - public void - sent(boolean ss) - { - cb2.sent(ss); - } - }); + @Override + public void + exception(Ice.LocalException ex) + { + counter.decrement(); + cb2.ex(ex); + } + + @Override + public void + sent(boolean ss) + { + cb2.sent(ss); + } + }); + counter.increment(); cbs.add(cb2); } while(r.sentSynchronously()); @@ -1552,6 +1585,13 @@ public class AMI { cb3.check(); } + try + { + counter.waitComplete(); + } + catch(InterruptedException e) + { + } } out.println("ok"); diff --git a/java/test/src/main/java/test/Ice/ami/Client.java b/java/test/src/main/java/test/Ice/ami/Client.java index 3e547a17ec0..5aeff920530 100644 --- a/java/test/src/main/java/test/Ice/ami/Client.java +++ b/java/test/src/main/java/test/Ice/ami/Client.java @@ -21,7 +21,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.ami"); initData.properties.setProperty("Ice.Warn.AMICallback", "0"); diff --git a/java/test/src/main/java/test/Ice/ami/Collocated.java b/java/test/src/main/java/test/Ice/ami/Collocated.java index 227ccb25457..ae593ec9cf1 100644 --- a/java/test/src/main/java/test/Ice/ami/Collocated.java +++ b/java/test/src/main/java/test/Ice/ami/Collocated.java @@ -29,7 +29,7 @@ public class Collocated extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.ami"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/ami/Server.java b/java/test/src/main/java/test/Ice/ami/Server.java index b22e052fa06..3a78eb875e7 100644 --- a/java/test/src/main/java/test/Ice/ami/Server.java +++ b/java/test/src/main/java/test/Ice/ami/Server.java @@ -29,7 +29,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.ami"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/background/Client.java b/java/test/src/main/java/test/Ice/background/Client.java index 1955472ebab..98aa68487b8 100644 --- a/java/test/src/main/java/test/Ice/background/Client.java +++ b/java/test/src/main/java/test/Ice/background/Client.java @@ -30,7 +30,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); // For this test, we want to disable retries. @@ -41,7 +41,6 @@ public class Client extends test.Util.Application // This test kills connections, so we don't want warnings. // initData.properties.setProperty("Ice.Warn.Connections", "0"); - initData.properties.setProperty("Ice.MessageSizeMax", "50000"); // diff --git a/java/test/src/main/java/test/Ice/background/Collocated.java b/java/test/src/main/java/test/Ice/background/Collocated.java index 7505dfefd58..74276e20abc 100644 --- a/java/test/src/main/java/test/Ice/background/Collocated.java +++ b/java/test/src/main/java/test/Ice/background/Collocated.java @@ -9,16 +9,29 @@ package test.Ice.background; -public class Collocated +public class Collocated extends test.Util.Application { static Thread _clientThread; static int result; - public static void - main(String[] args) + public static void main(String[] args) + { + Collocated app = new Collocated(); + int result = app.main("Collocated", args); + System.gc(); + System.exit(result); + } + + @Override + public int + run(String[] args) { final Client client = new Client(); + client.setClassLoader(getClassLoader()); + client.setWriter(getWriter()); final Server server = new Server(); + server.setClassLoader(getClassLoader()); + server.setWriter(getWriter()); Thread t = new Thread(new Runnable() { @Override @@ -80,7 +93,7 @@ public class Collocated catch(InterruptedException ex) { } - System.gc(); - System.exit(result); + + return 0; } } diff --git a/java/test/src/main/java/test/Ice/background/Server.java b/java/test/src/main/java/test/Ice/background/Server.java index b93c96e5d07..e6e959c1e46 100644 --- a/java/test/src/main/java/test/Ice/background/Server.java +++ b/java/test/src/main/java/test/Ice/background/Server.java @@ -109,14 +109,13 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); // // This test kills connections, so we don't want warnings. // initData.properties.setProperty("Ice.Warn.Connections", "0"); - initData.properties.setProperty("Ice.MessageSizeMax", "50000"); // diff --git a/java/test/src/main/java/test/Ice/binding/AllTests.java b/java/test/src/main/java/test/Ice/binding/AllTests.java index 88aa196b157..2217fcb247f 100644 --- a/java/test/src/main/java/test/Ice/binding/AllTests.java +++ b/java/test/src/main/java/test/Ice/binding/AllTests.java @@ -906,6 +906,7 @@ public class AllTests for(Ice.Properties p : serverProps) { Ice.InitializationData serverInitData = new Ice.InitializationData(); + serverInitData.classLoader = IceInternal.Util.getInstance(communicator).getClassLoader(); serverInitData.properties = p; Ice.Communicator serverCommunicator = Ice.Util.initialize(serverInitData); Ice.ObjectAdapter oa; @@ -933,6 +934,7 @@ public class AllTests for(Ice.Properties q : clientProps) { Ice.InitializationData clientInitData = new Ice.InitializationData(); + clientInitData.classLoader = IceInternal.Util.getInstance(communicator).getClassLoader(); clientInitData.properties = q; Ice.Communicator clientCommunicator = Ice.Util.initialize(clientInitData); Ice.ObjectPrx prx = clientCommunicator.stringToProxy(strPrx); diff --git a/java/test/src/main/java/test/Ice/binding/Client.java b/java/test/src/main/java/test/Ice/binding/Client.java index 30d087baac3..e566234255d 100644 --- a/java/test/src/main/java/test/Ice/binding/Client.java +++ b/java/test/src/main/java/test/Ice/binding/Client.java @@ -21,7 +21,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.binding"); return initData; diff --git a/java/test/src/main/java/test/Ice/binding/Server.java b/java/test/src/main/java/test/Ice/binding/Server.java index 9c2926cdc3b..af9d5ad2afa 100644 --- a/java/test/src/main/java/test/Ice/binding/Server.java +++ b/java/test/src/main/java/test/Ice/binding/Server.java @@ -27,7 +27,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.binding"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010:udp"); diff --git a/java/test/src/main/java/test/Ice/checksum/Client.java b/java/test/src/main/java/test/Ice/checksum/Client.java index 34d4f3ab1b8..44f97f41895 100644 --- a/java/test/src/main/java/test/Ice/checksum/Client.java +++ b/java/test/src/main/java/test/Ice/checksum/Client.java @@ -27,7 +27,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.checksum"); return initData; diff --git a/java/test/src/main/java/test/Ice/checksum/Server.java b/java/test/src/main/java/test/Ice/checksum/Server.java index c64042283e4..a0c0b023379 100644 --- a/java/test/src/main/java/test/Ice/checksum/Server.java +++ b/java/test/src/main/java/test/Ice/checksum/Server.java @@ -27,7 +27,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.checksum.server"); return initData; diff --git a/java/test/src/main/java/test/Ice/classLoader/AllTests.java b/java/test/src/main/java/test/Ice/classLoader/AllTests.java index d0181cff1a6..3259d47e51d 100644 --- a/java/test/src/main/java/test/Ice/classLoader/AllTests.java +++ b/java/test/src/main/java/test/Ice/classLoader/AllTests.java @@ -43,6 +43,10 @@ public class AllTests private static class MyClassLoader extends ClassLoader { + MyClassLoader(ClassLoader parent) { + super(parent); + } + @Override protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException @@ -86,8 +90,9 @@ public class AllTests out.print("testing package... "); out.flush(); Ice.InitializationData initData = new Ice.InitializationData(); + initData.classLoader = IceInternal.Util.getInstance(communicator).getClassLoader(); initData.properties = communicator.getProperties()._clone(); - MyClassLoader classLoader = new MyClassLoader(); + MyClassLoader classLoader = new MyClassLoader(initData.classLoader); initData.classLoader = classLoader; Ice.Communicator ic = app.initialize(initData); test(classLoader.check("test.Ice.classLoader.Test._Marker")); @@ -102,9 +107,10 @@ public class AllTests out.print("testing plug-in... "); out.flush(); Ice.InitializationData initData = new Ice.InitializationData(); + initData.classLoader = IceInternal.Util.getInstance(communicator).getClassLoader(); initData.properties = communicator.getProperties()._clone(); initData.properties.setProperty("Ice.Plugin.Test", "test.Ice.classLoader.PluginFactoryI"); - MyClassLoader classLoader = new MyClassLoader(); + MyClassLoader classLoader = new MyClassLoader(initData.classLoader); initData.classLoader = classLoader; Ice.Communicator ic = app.initialize(initData); test(classLoader.check("test.Ice.classLoader.PluginFactoryI")); @@ -120,10 +126,11 @@ public class AllTests out.print("testing IceSSL certificate verifier and password callback... "); out.flush(); Ice.InitializationData initData = new Ice.InitializationData(); + initData.classLoader = IceInternal.Util.getInstance(communicator).getClassLoader(); 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(); + MyClassLoader classLoader = new MyClassLoader(initData.classLoader); initData.classLoader = classLoader; Ice.Communicator ic = app.initialize(initData); test(classLoader.check("test.Ice.classLoader.CertificateVerifierI")); @@ -137,8 +144,9 @@ public class AllTests // { Ice.InitializationData initData = new Ice.InitializationData(); + initData.classLoader = IceInternal.Util.getInstance(communicator).getClassLoader(); initData.properties = communicator.getProperties()._clone(); - MyClassLoader classLoader = new MyClassLoader(); + MyClassLoader classLoader = new MyClassLoader(initData.classLoader); initData.classLoader = classLoader; Ice.Communicator ic = app.initialize(initData); diff --git a/java/test/src/main/java/test/Ice/classLoader/Client.java b/java/test/src/main/java/test/Ice/classLoader/Client.java index 20152d6b598..1a546da6b9d 100644 --- a/java/test/src/main/java/test/Ice/classLoader/Client.java +++ b/java/test/src/main/java/test/Ice/classLoader/Client.java @@ -21,7 +21,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - _initData = new Ice.InitializationData(); + _initData = createInitializationData(); _initData.properties = Ice.Util.createProperties(argsH); _initData.properties.setProperty("Ice.Package.Test", "test.Ice.classLoader"); return _initData; diff --git a/java/test/src/main/java/test/Ice/classLoader/Server.java b/java/test/src/main/java/test/Ice/classLoader/Server.java index 79abca86364..6041e4b031c 100644 --- a/java/test/src/main/java/test/Ice/classLoader/Server.java +++ b/java/test/src/main/java/test/Ice/classLoader/Server.java @@ -26,7 +26,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.classLoader"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/custom/Client.java b/java/test/src/main/java/test/Ice/custom/Client.java index 17ad54b561f..ab1e8fd6eb8 100644 --- a/java/test/src/main/java/test/Ice/custom/Client.java +++ b/java/test/src/main/java/test/Ice/custom/Client.java @@ -25,7 +25,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.custom"); initData.properties.setProperty("Ice.CacheMessageBuffers", "0"); diff --git a/java/test/src/main/java/test/Ice/custom/Collocated.java b/java/test/src/main/java/test/Ice/custom/Collocated.java index 2d8fd94f500..ce4dba24deb 100644 --- a/java/test/src/main/java/test/Ice/custom/Collocated.java +++ b/java/test/src/main/java/test/Ice/custom/Collocated.java @@ -27,7 +27,7 @@ public class Collocated extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.custom"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/custom/Server.java b/java/test/src/main/java/test/Ice/custom/Server.java index fe959c086ff..db5f69378b8 100644 --- a/java/test/src/main/java/test/Ice/custom/Server.java +++ b/java/test/src/main/java/test/Ice/custom/Server.java @@ -27,7 +27,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.custom"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/dispatcher/Client.java b/java/test/src/main/java/test/Ice/dispatcher/Client.java index 9b490d763c1..66074ff8205 100644 --- a/java/test/src/main/java/test/Ice/dispatcher/Client.java +++ b/java/test/src/main/java/test/Ice/dispatcher/Client.java @@ -23,7 +23,7 @@ public class Client extends test.Util.Application { assert(_dispatcher == null); _dispatcher = new Dispatcher(); - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.dispatcher"); initData.dispatcher = _dispatcher; diff --git a/java/test/src/main/java/test/Ice/dispatcher/Collocated.java b/java/test/src/main/java/test/Ice/dispatcher/Collocated.java index dfeb2f674a8..37e37db8d74 100644 --- a/java/test/src/main/java/test/Ice/dispatcher/Collocated.java +++ b/java/test/src/main/java/test/Ice/dispatcher/Collocated.java @@ -32,7 +32,7 @@ public class Collocated extends test.Util.Application { assert(_dispatcher == null); _dispatcher = new Dispatcher(); - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.dispatcher"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/dispatcher/Server.java b/java/test/src/main/java/test/Ice/dispatcher/Server.java index c4ef87e7451..217823dad85 100644 --- a/java/test/src/main/java/test/Ice/dispatcher/Server.java +++ b/java/test/src/main/java/test/Ice/dispatcher/Server.java @@ -32,7 +32,7 @@ public class Server extends test.Util.Application { assert(_dispatcher == null); _dispatcher = new Dispatcher(); - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.dispatcher"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/echo/Server.java b/java/test/src/main/java/test/Ice/echo/Server.java index 88daf466e01..63bc52202dd 100644 --- a/java/test/src/main/java/test/Ice/echo/Server.java +++ b/java/test/src/main/java/test/Ice/echo/Server.java @@ -54,7 +54,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.echo"); return initData; diff --git a/java/test/src/main/java/test/Ice/enums/Client.java b/java/test/src/main/java/test/Ice/enums/Client.java index f27ee458960..6f7c349a7b2 100644 --- a/java/test/src/main/java/test/Ice/enums/Client.java +++ b/java/test/src/main/java/test/Ice/enums/Client.java @@ -25,7 +25,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.enums"); return initData; diff --git a/java/test/src/main/java/test/Ice/enums/Server.java b/java/test/src/main/java/test/Ice/enums/Server.java index 24ef6d00730..943b65703a5 100644 --- a/java/test/src/main/java/test/Ice/enums/Server.java +++ b/java/test/src/main/java/test/Ice/enums/Server.java @@ -27,7 +27,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.enums"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/exceptions/AMDServer.java b/java/test/src/main/java/test/Ice/exceptions/AMDServer.java index 0ee384ac865..89e6d819db0 100644 --- a/java/test/src/main/java/test/Ice/exceptions/AMDServer.java +++ b/java/test/src/main/java/test/Ice/exceptions/AMDServer.java @@ -31,7 +31,7 @@ public class AMDServer extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); // // For this test, we need a dummy logger, otherwise the // assertion test will print an error message. diff --git a/java/test/src/main/java/test/Ice/exceptions/Client.java b/java/test/src/main/java/test/Ice/exceptions/Client.java index ef66546fa26..d055648d7ca 100644 --- a/java/test/src/main/java/test/Ice/exceptions/Client.java +++ b/java/test/src/main/java/test/Ice/exceptions/Client.java @@ -25,7 +25,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.exceptions"); initData.properties.setProperty("Ice.Warn.Connections", "0"); diff --git a/java/test/src/main/java/test/Ice/exceptions/Collocated.java b/java/test/src/main/java/test/Ice/exceptions/Collocated.java index 2ba65669947..05b34266f0c 100644 --- a/java/test/src/main/java/test/Ice/exceptions/Collocated.java +++ b/java/test/src/main/java/test/Ice/exceptions/Collocated.java @@ -28,7 +28,7 @@ public class Collocated extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); // // For this test, we need a dummy logger, otherwise the // assertion test will print an error message. diff --git a/java/test/src/main/java/test/Ice/exceptions/Server.java b/java/test/src/main/java/test/Ice/exceptions/Server.java index bb0140e0a5d..a999e44e15e 100644 --- a/java/test/src/main/java/test/Ice/exceptions/Server.java +++ b/java/test/src/main/java/test/Ice/exceptions/Server.java @@ -31,7 +31,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; // // For this test, we need a dummy logger, otherwise the // assertion test will print an error message. diff --git a/java/test/src/main/java/test/Ice/facets/Client.java b/java/test/src/main/java/test/Ice/facets/Client.java index 22867839eb7..b18db1e6123 100644 --- a/java/test/src/main/java/test/Ice/facets/Client.java +++ b/java/test/src/main/java/test/Ice/facets/Client.java @@ -25,7 +25,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.binding"); return initData; diff --git a/java/test/src/main/java/test/Ice/facets/Collocated.java b/java/test/src/main/java/test/Ice/facets/Collocated.java index 9503a7e7748..054c870eb90 100644 --- a/java/test/src/main/java/test/Ice/facets/Collocated.java +++ b/java/test/src/main/java/test/Ice/facets/Collocated.java @@ -33,7 +33,7 @@ public class Collocated extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.facets"); return initData; diff --git a/java/test/src/main/java/test/Ice/facets/Server.java b/java/test/src/main/java/test/Ice/facets/Server.java index 0bba8b89cdf..f3fcd0dcad4 100644 --- a/java/test/src/main/java/test/Ice/facets/Server.java +++ b/java/test/src/main/java/test/Ice/facets/Server.java @@ -32,7 +32,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.facets"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/faultTolerance/Client.java b/java/test/src/main/java/test/Ice/faultTolerance/Client.java index 7f2fb23b80e..deae605df01 100644 --- a/java/test/src/main/java/test/Ice/faultTolerance/Client.java +++ b/java/test/src/main/java/test/Ice/faultTolerance/Client.java @@ -84,7 +84,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.faultTolerance"); // diff --git a/java/test/src/main/java/test/Ice/faultTolerance/Server.java b/java/test/src/main/java/test/Ice/faultTolerance/Server.java index 18d113fdeae..efcd3dd29ea 100644 --- a/java/test/src/main/java/test/Ice/faultTolerance/Server.java +++ b/java/test/src/main/java/test/Ice/faultTolerance/Server.java @@ -73,7 +73,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.faultTolerance"); // Two minutes. diff --git a/java/test/src/main/java/test/Ice/hash/Client.java b/java/test/src/main/java/test/Ice/hash/Client.java index 6a01bf62285..dadc30f6644 100644 --- a/java/test/src/main/java/test/Ice/hash/Client.java +++ b/java/test/src/main/java/test/Ice/hash/Client.java @@ -48,7 +48,7 @@ public class Client extends test.Util.Application int maxCollisions = 10; int maxIterations = 10000; - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(args); initData.properties.setProperty("Ice.Plugin.IceSSL", "IceSSL.PluginFactory"); Ice.Communicator communicator = Ice.Util.initialize(args, initData); diff --git a/java/test/src/main/java/test/Ice/hold/AllTests.java b/java/test/src/main/java/test/Ice/hold/AllTests.java index 77d0c84b066..6eeb43704b4 100644 --- a/java/test/src/main/java/test/Ice/hold/AllTests.java +++ b/java/test/src/main/java/test/Ice/hold/AllTests.java @@ -84,8 +84,9 @@ public class AllTests }; public static void - allTests(Ice.Communicator communicator, PrintWriter out) + allTests(test.Util.Application app, PrintWriter out) { + Ice.Communicator communicator = app.communicator(); out.print("testing stringToProxy... "); out.flush(); String ref = "hold:default -p 12010"; @@ -193,7 +194,8 @@ public class AllTests int value = 0; holdSerialized.set(value, 0); Ice.AsyncResult result = null; - for(int i = 0; i < 10000; ++i) + int max = app.isAndroid() ? 5000 : 10000; + for(int i = 0; i < max; ++i) { // Create a new proxy for each request result = ((HoldPrx)holdSerialized.ice_oneway()).begin_setOneway(value + 1, value); diff --git a/java/test/src/main/java/test/Ice/hold/Client.java b/java/test/src/main/java/test/Ice/hold/Client.java index 58e4e1abd32..5e4f2b41d83 100644 --- a/java/test/src/main/java/test/Ice/hold/Client.java +++ b/java/test/src/main/java/test/Ice/hold/Client.java @@ -14,15 +14,14 @@ public class Client extends test.Util.Application @Override public int run(String[] args) { - Ice.Communicator communicator = communicator(); - AllTests.allTests(communicator, getWriter()); + AllTests.allTests(this, getWriter()); return 0; } @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.hold"); return initData; diff --git a/java/test/src/main/java/test/Ice/hold/Server.java b/java/test/src/main/java/test/Ice/hold/Server.java index 97019f8021e..c97b28d3844 100644 --- a/java/test/src/main/java/test/Ice/hold/Server.java +++ b/java/test/src/main/java/test/Ice/hold/Server.java @@ -37,7 +37,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.hold"); initData.properties.setProperty("TestAdapter1.Endpoints", "default -p 12010:udp"); diff --git a/java/test/src/main/java/test/Ice/info/Client.java b/java/test/src/main/java/test/Ice/info/Client.java index 2cd0d5b1f8b..69af1c600fd 100644 --- a/java/test/src/main/java/test/Ice/info/Client.java +++ b/java/test/src/main/java/test/Ice/info/Client.java @@ -21,7 +21,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.info"); return initData; diff --git a/java/test/src/main/java/test/Ice/info/Server.java b/java/test/src/main/java/test/Ice/info/Server.java index ebb4046e721..3baa7a452ad 100644 --- a/java/test/src/main/java/test/Ice/info/Server.java +++ b/java/test/src/main/java/test/Ice/info/Server.java @@ -24,7 +24,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.proxy"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010:udp -p 12010"); diff --git a/java/test/src/main/java/test/Ice/inheritance/Client.java b/java/test/src/main/java/test/Ice/inheritance/Client.java index 1fc5bdb3214..6b929e0d949 100644 --- a/java/test/src/main/java/test/Ice/inheritance/Client.java +++ b/java/test/src/main/java/test/Ice/inheritance/Client.java @@ -25,7 +25,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.inheritance"); return initData; diff --git a/java/test/src/main/java/test/Ice/inheritance/Collocated.java b/java/test/src/main/java/test/Ice/inheritance/Collocated.java index 3c92c35545c..f05f3317d4e 100644 --- a/java/test/src/main/java/test/Ice/inheritance/Collocated.java +++ b/java/test/src/main/java/test/Ice/inheritance/Collocated.java @@ -27,7 +27,7 @@ public class Collocated extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.inheritance"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/inheritance/Server.java b/java/test/src/main/java/test/Ice/inheritance/Server.java index 7ff0278c2a6..9fd81d5329d 100644 --- a/java/test/src/main/java/test/Ice/inheritance/Server.java +++ b/java/test/src/main/java/test/Ice/inheritance/Server.java @@ -25,7 +25,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.inheritance"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/interceptor/Client.java b/java/test/src/main/java/test/Ice/interceptor/Client.java index 12c913296b0..58cb7bb80e4 100644 --- a/java/test/src/main/java/test/Ice/interceptor/Client.java +++ b/java/test/src/main/java/test/Ice/interceptor/Client.java @@ -251,7 +251,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.interceptor"); return initData; diff --git a/java/test/src/main/java/test/Ice/interrupt/AllTests.java b/java/test/src/main/java/test/Ice/interrupt/AllTests.java index 14286ea6896..c768ea171da 100644 --- a/java/test/src/main/java/test/Ice/interrupt/AllTests.java +++ b/java/test/src/main/java/test/Ice/interrupt/AllTests.java @@ -337,8 +337,10 @@ public class AllTests testController.holdAdapter(); Ice.AsyncResult r = null; + // The sequence needs to be large enough to fill the write/recv buffers - byte[] seq = new byte[20000000]; + int bufSize = (test.Util.Application.isAndroid()) ? 2500000 : 20000000; + byte[] seq = new byte[bufSize]; r = p.begin_opWithPayload(seq); try { @@ -362,7 +364,10 @@ public class AllTests // The executor is all done. // executor.shutdown(); - executor.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS); + while(!executor.isTerminated()) + { + executor.awaitTermination(1000, TimeUnit.SECONDS); + } } out.println("ok"); @@ -564,6 +569,7 @@ public class AllTests // Check that CommunicatorDestroyedException is raised directly. // Ice.InitializationData initData = new Ice.InitializationData(); + initData.classLoader = IceInternal.Util.getInstance(communicator).getClassLoader(); initData.properties = communicator.getProperties()._clone(); Ice.Communicator ic = app.initialize(initData); @@ -652,7 +658,10 @@ public class AllTests cb.check(); executor.shutdown(); - executor.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS); + while(!executor.isTerminated()) + { + executor.awaitTermination(1000, TimeUnit.SECONDS); + } } out.println("ok"); @@ -707,6 +716,7 @@ public class AllTests final Thread mainThread = Thread.currentThread(); ExecutorService executor = java.util.concurrent.Executors.newFixedThreadPool(1); Ice.InitializationData initData = new Ice.InitializationData(); + initData.classLoader = IceInternal.Util.getInstance(communicator).getClassLoader(); initData.properties = communicator.getProperties()._clone(); initData.properties.setProperty("ClientTestAdapter.Endpoints", "default -p 12030"); Ice.Communicator ic = app.initialize(initData); @@ -798,7 +808,10 @@ public class AllTests ic.destroy(); executor.shutdown(); - executor.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS); + while(!executor.isTerminated()) + { + executor.awaitTermination(1000, TimeUnit.SECONDS); + } } out.println("ok"); diff --git a/java/test/src/main/java/test/Ice/interrupt/Client.java b/java/test/src/main/java/test/Ice/interrupt/Client.java index edd6dfaa6ae..028e21b7862 100644 --- a/java/test/src/main/java/test/Ice/interrupt/Client.java +++ b/java/test/src/main/java/test/Ice/interrupt/Client.java @@ -29,7 +29,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.interrupt"); // diff --git a/java/test/src/main/java/test/Ice/interrupt/Collocated.java b/java/test/src/main/java/test/Ice/interrupt/Collocated.java index 8f82f8de45d..9f72490974c 100644 --- a/java/test/src/main/java/test/Ice/interrupt/Collocated.java +++ b/java/test/src/main/java/test/Ice/interrupt/Collocated.java @@ -38,7 +38,7 @@ public class Collocated extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.interrupt"); // diff --git a/java/test/src/main/java/test/Ice/interrupt/Server.java b/java/test/src/main/java/test/Ice/interrupt/Server.java index 9ec7a725d77..9421572f466 100644 --- a/java/test/src/main/java/test/Ice/interrupt/Server.java +++ b/java/test/src/main/java/test/Ice/interrupt/Server.java @@ -30,7 +30,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.interrupt"); // diff --git a/java/test/src/main/java/test/Ice/invoke/Client.java b/java/test/src/main/java/test/Ice/invoke/Client.java index e589d32075c..1952815d7fc 100644 --- a/java/test/src/main/java/test/Ice/invoke/Client.java +++ b/java/test/src/main/java/test/Ice/invoke/Client.java @@ -52,7 +52,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.invoke"); return initData; diff --git a/java/test/src/main/java/test/Ice/invoke/Server.java b/java/test/src/main/java/test/Ice/invoke/Server.java index a6f315d5cf9..17547c44807 100644 --- a/java/test/src/main/java/test/Ice/invoke/Server.java +++ b/java/test/src/main/java/test/Ice/invoke/Server.java @@ -33,7 +33,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.invoke"); return initData; diff --git a/java/test/src/main/java/test/Ice/location/AllTests.java b/java/test/src/main/java/test/Ice/location/AllTests.java index 636376a0253..da933f4cf17 100644 --- a/java/test/src/main/java/test/Ice/location/AllTests.java +++ b/java/test/src/main/java/test/Ice/location/AllTests.java @@ -547,6 +547,7 @@ public class AllTests out.flush(); { Ice.InitializationData initData = new Ice.InitializationData(); + initData.classLoader = IceInternal.Util.getInstance(communicator).getClassLoader(); initData.properties = communicator.getProperties()._clone(); initData.properties.setProperty("Ice.BackgroundLocatorCacheUpdates", "1"); Ice.Communicator ic = app.initialize(initData); diff --git a/java/test/src/main/java/test/Ice/location/Client.java b/java/test/src/main/java/test/Ice/location/Client.java index 4fc8e67893b..93339add7db 100644 --- a/java/test/src/main/java/test/Ice/location/Client.java +++ b/java/test/src/main/java/test/Ice/location/Client.java @@ -40,7 +40,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.location"); initData.properties.setProperty("Ice.Default.Locator", "locator:default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/location/Server.java b/java/test/src/main/java/test/Ice/location/Server.java index 4b09338d2ee..89fece45324 100644 --- a/java/test/src/main/java/test/Ice/location/Server.java +++ b/java/test/src/main/java/test/Ice/location/Server.java @@ -49,7 +49,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.location"); initData.properties.setProperty("Ice.ThreadPool.Server.Size", "2"); diff --git a/java/test/src/main/java/test/Ice/metrics/AMDServer.java b/java/test/src/main/java/test/Ice/metrics/AMDServer.java index dc559764811..e567faed6a6 100644 --- a/java/test/src/main/java/test/Ice/metrics/AMDServer.java +++ b/java/test/src/main/java/test/Ice/metrics/AMDServer.java @@ -30,7 +30,7 @@ public class AMDServer extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.retry"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/metrics/Client.java b/java/test/src/main/java/test/Ice/metrics/Client.java index 48acc9244b1..edf9767b951 100644 --- a/java/test/src/main/java/test/Ice/metrics/Client.java +++ b/java/test/src/main/java/test/Ice/metrics/Client.java @@ -34,7 +34,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.metrics"); initData.properties.setProperty("Ice.Admin.Endpoints", "tcp"); diff --git a/java/test/src/main/java/test/Ice/metrics/Collocated.java b/java/test/src/main/java/test/Ice/metrics/Collocated.java index ad2446563d1..726f545c05a 100644 --- a/java/test/src/main/java/test/Ice/metrics/Collocated.java +++ b/java/test/src/main/java/test/Ice/metrics/Collocated.java @@ -44,7 +44,7 @@ public class Collocated extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); if(initData.properties.getPropertyAsInt("Ice.ThreadInterruptSafe") > 0) { diff --git a/java/test/src/main/java/test/Ice/metrics/Server.java b/java/test/src/main/java/test/Ice/metrics/Server.java index 70788ea876f..71712c6d021 100644 --- a/java/test/src/main/java/test/Ice/metrics/Server.java +++ b/java/test/src/main/java/test/Ice/metrics/Server.java @@ -30,7 +30,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.retry"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/networkProxy/Client.java b/java/test/src/main/java/test/Ice/networkProxy/Client.java index 411b276ac9a..0694da90466 100644 --- a/java/test/src/main/java/test/Ice/networkProxy/Client.java +++ b/java/test/src/main/java/test/Ice/networkProxy/Client.java @@ -23,7 +23,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.networkProxy"); return initData; diff --git a/java/test/src/main/java/test/Ice/networkProxy/Server.java b/java/test/src/main/java/test/Ice/networkProxy/Server.java index fe6e7c04ea9..58100d7fb44 100644 --- a/java/test/src/main/java/test/Ice/networkProxy/Server.java +++ b/java/test/src/main/java/test/Ice/networkProxy/Server.java @@ -34,7 +34,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.networkProxy"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/objects/Client.java b/java/test/src/main/java/test/Ice/objects/Client.java index 3d9f3803bc5..73a83143f75 100644 --- a/java/test/src/main/java/test/Ice/objects/Client.java +++ b/java/test/src/main/java/test/Ice/objects/Client.java @@ -84,7 +84,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.objects"); return initData; diff --git a/java/test/src/main/java/test/Ice/objects/Collocated.java b/java/test/src/main/java/test/Ice/objects/Collocated.java index 06d1f4bf5fd..37c67949785 100644 --- a/java/test/src/main/java/test/Ice/objects/Collocated.java +++ b/java/test/src/main/java/test/Ice/objects/Collocated.java @@ -92,7 +92,7 @@ public class Collocated extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.objects"); return initData; diff --git a/java/test/src/main/java/test/Ice/objects/Server.java b/java/test/src/main/java/test/Ice/objects/Server.java index d327e7d5b53..1230290db13 100644 --- a/java/test/src/main/java/test/Ice/objects/Server.java +++ b/java/test/src/main/java/test/Ice/objects/Server.java @@ -62,7 +62,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.objects"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/operations/AMDServer.java b/java/test/src/main/java/test/Ice/operations/AMDServer.java index 063af513e84..23aa19cc091 100644 --- a/java/test/src/main/java/test/Ice/operations/AMDServer.java +++ b/java/test/src/main/java/test/Ice/operations/AMDServer.java @@ -24,7 +24,7 @@ public class AMDServer extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); // // It's possible to have batch oneway requests dispatched diff --git a/java/test/src/main/java/test/Ice/operations/AMDTieServer.java b/java/test/src/main/java/test/Ice/operations/AMDTieServer.java index af88539eb00..b9e2bf066eb 100644 --- a/java/test/src/main/java/test/Ice/operations/AMDTieServer.java +++ b/java/test/src/main/java/test/Ice/operations/AMDTieServer.java @@ -26,7 +26,7 @@ public class AMDTieServer extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); // // It's possible to have batch oneway requests dispatched diff --git a/java/test/src/main/java/test/Ice/operations/Client.java b/java/test/src/main/java/test/Ice/operations/Client.java index f0177c41adb..d6cc946dcd5 100644 --- a/java/test/src/main/java/test/Ice/operations/Client.java +++ b/java/test/src/main/java/test/Ice/operations/Client.java @@ -38,7 +38,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.ThreadPool.Client.Size", "2"); initData.properties.setProperty("Ice.ThreadPool.Client.SizeWarn", "0"); diff --git a/java/test/src/main/java/test/Ice/operations/Collocated.java b/java/test/src/main/java/test/Ice/operations/Collocated.java index 276eed6e03a..2539ffca0e2 100644 --- a/java/test/src/main/java/test/Ice/operations/Collocated.java +++ b/java/test/src/main/java/test/Ice/operations/Collocated.java @@ -33,9 +33,9 @@ public class Collocated extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); - if(initData.properties.getPropertyAsInt("Ice.ThreadInterruptSafe") > 0) + if(initData.properties.getPropertyAsInt("Ice.ThreadInterruptSafe") > 0 || isAndroid()) { initData.properties.setProperty("Ice.ThreadPool.Server.Size", "2"); } diff --git a/java/test/src/main/java/test/Ice/operations/Server.java b/java/test/src/main/java/test/Ice/operations/Server.java index 22dba1da02b..a45912deabd 100644 --- a/java/test/src/main/java/test/Ice/operations/Server.java +++ b/java/test/src/main/java/test/Ice/operations/Server.java @@ -24,7 +24,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); // // It's possible to have batch oneway requests dispatched diff --git a/java/test/src/main/java/test/Ice/operations/TieServer.java b/java/test/src/main/java/test/Ice/operations/TieServer.java index 26bbdc7b7b5..61a6ff50710 100644 --- a/java/test/src/main/java/test/Ice/operations/TieServer.java +++ b/java/test/src/main/java/test/Ice/operations/TieServer.java @@ -26,7 +26,7 @@ public class TieServer extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); // // It's possible to have batch oneway requests dispatched diff --git a/java/test/src/main/java/test/Ice/operations/Twoways.java b/java/test/src/main/java/test/Ice/operations/Twoways.java index 4c99870b32b..0a2fba2ed99 100644 --- a/java/test/src/main/java/test/Ice/operations/Twoways.java +++ b/java/test/src/main/java/test/Ice/operations/Twoways.java @@ -844,6 +844,7 @@ class Twoways for(int i = 0; i < 2; i++) { Ice.InitializationData initData = new Ice.InitializationData(); + initData.classLoader = IceInternal.Util.getInstance(communicator).getClassLoader(); initData.properties = communicator.getProperties()._clone(); initData.properties.setProperty("Ice.ImplicitContext", impls[i]); diff --git a/java/test/src/main/java/test/Ice/operations/TwowaysAMI.java b/java/test/src/main/java/test/Ice/operations/TwowaysAMI.java index 4fa98529216..df5a224a008 100644 --- a/java/test/src/main/java/test/Ice/operations/TwowaysAMI.java +++ b/java/test/src/main/java/test/Ice/operations/TwowaysAMI.java @@ -1679,6 +1679,7 @@ class TwowaysAMI for(int i = 0; i < 2; i++) { Ice.InitializationData initData = new Ice.InitializationData(); + initData.classLoader = IceInternal.Util.getInstance(communicator).getClassLoader(); initData.properties = communicator.getProperties()._clone(); initData.properties.setProperty("Ice.ImplicitContext", impls[i]); diff --git a/java/test/src/main/java/test/Ice/optional/AMDServer.java b/java/test/src/main/java/test/Ice/optional/AMDServer.java index b05e5b28f3c..3dacb84a760 100644 --- a/java/test/src/main/java/test/Ice/optional/AMDServer.java +++ b/java/test/src/main/java/test/Ice/optional/AMDServer.java @@ -24,7 +24,7 @@ public class AMDServer extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.optional.AMD"); return initData; diff --git a/java/test/src/main/java/test/Ice/optional/Client.java b/java/test/src/main/java/test/Ice/optional/Client.java index 22f05e262bc..a9178497d0b 100644 --- a/java/test/src/main/java/test/Ice/optional/Client.java +++ b/java/test/src/main/java/test/Ice/optional/Client.java @@ -25,7 +25,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.optional"); return initData; diff --git a/java/test/src/main/java/test/Ice/optional/Server.java b/java/test/src/main/java/test/Ice/optional/Server.java index 15446ac47b5..e9bfa491ea5 100644 --- a/java/test/src/main/java/test/Ice/optional/Server.java +++ b/java/test/src/main/java/test/Ice/optional/Server.java @@ -24,7 +24,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.optional"); return initData; diff --git a/java/test/src/main/java/test/Ice/packagemd/Client.java b/java/test/src/main/java/test/Ice/packagemd/Client.java index 8081a790e76..7f6bf0cab98 100644 --- a/java/test/src/main/java/test/Ice/packagemd/Client.java +++ b/java/test/src/main/java/test/Ice/packagemd/Client.java @@ -24,7 +24,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Warn.Dispatch", "0"); initData.properties.setProperty("Ice.Package.Test", "test.Ice.packagemd"); diff --git a/java/test/src/main/java/test/Ice/packagemd/Server.java b/java/test/src/main/java/test/Ice/packagemd/Server.java index 61bbb0dd2c6..0e3f61ab09e 100644 --- a/java/test/src/main/java/test/Ice/packagemd/Server.java +++ b/java/test/src/main/java/test/Ice/packagemd/Server.java @@ -25,7 +25,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.packagemd"); initData.properties.setProperty("Ice.Package.Test1", "test.Ice.packagemd"); diff --git a/java/test/src/main/java/test/Ice/plugin/Client.java b/java/test/src/main/java/test/Ice/plugin/Client.java index 19dd8aa30f7..52e1c615250 100644 --- a/java/test/src/main/java/test/Ice/plugin/Client.java +++ b/java/test/src/main/java/test/Ice/plugin/Client.java @@ -16,7 +16,17 @@ public class Client extends test.Util.Application @Override public int run(String[] args) { - String libDir = "../../../../../../../lib/"; + // Under Android the class comes from the communicators classloader which + // is setup in the android test driver. + String jarFile; + if(isAndroid()) + { + jarFile = ""; + } + else + { + jarFile = "../../../../../../../lib/IceTestPlugins.jar"; + } Ice.Communicator communicator = communicator(); PrintWriter printWriter = getWriter(); @@ -24,10 +34,9 @@ public class Client extends test.Util.Application printWriter.flush(); try { - Ice.InitializationData initData = new Ice.InitializationData(); - initData.properties = Ice.Util.createProperties(); + Ice.InitializationData initData = createInitData(); initData.properties.setProperty("Ice.Plugin.Test", - libDir + "IceTestPlugins.jar:test.Ice.plugin.plugins.PluginFactory " + + jarFile + ":test.Ice.plugin.plugins.PluginFactory " + "'C:\\Program Files\\' --DatabasePath 'C:\\Program Files\\Application\\db'"); communicator = Ice.Util.initialize(args, initData); communicator.destroy(); @@ -44,10 +53,9 @@ public class Client extends test.Util.Application communicator = null; try { - Ice.InitializationData initData = new Ice.InitializationData(); - initData.properties = Ice.Util.createProperties(); + Ice.InitializationData initData = createInitData(); initData.properties.setProperty("Ice.Plugin.Test", - libDir + "IceTestPlugins.jar:test.Ice.plugin.plugins.PluginInitializeFailFactory"); + jarFile + ":test.Ice.plugin.plugins.PluginInitializeFailFactory"); communicator = Ice.Util.initialize(args, initData); test(false); } @@ -62,14 +70,13 @@ public class Client extends test.Util.Application printWriter.flush(); try { - Ice.InitializationData initData = new Ice.InitializationData(); - initData.properties = Ice.Util.createProperties(); + Ice.InitializationData initData = createInitData(); initData.properties.setProperty("Ice.Plugin.PluginOne", - libDir + "IceTestPlugins.jar:test.Ice.plugin.plugins.PluginOneFactory"); + jarFile + ":test.Ice.plugin.plugins.PluginOneFactory"); initData.properties.setProperty("Ice.Plugin.PluginTwo", - libDir + "IceTestPlugins.jar:test.Ice.plugin.plugins.PluginTwoFactory"); + jarFile + ":test.Ice.plugin.plugins.PluginTwoFactory"); initData.properties.setProperty("Ice.Plugin.PluginThree", - libDir + "IceTestPlugins.jar:test.Ice.plugin.plugins.PluginThreeFactory"); + jarFile + ":test.Ice.plugin.plugins.PluginThreeFactory"); initData.properties.setProperty("Ice.PluginLoadOrder", "PluginOne, PluginTwo"); // Exclude PluginThree communicator = Ice.Util.initialize(args, initData); communicator.destroy(); @@ -85,14 +92,13 @@ public class Client extends test.Util.Application printWriter.flush(); try { - Ice.InitializationData initData = new Ice.InitializationData(); - initData.properties = Ice.Util.createProperties(); + Ice.InitializationData initData = createInitData(); initData.properties.setProperty("Ice.Plugin.PluginOne", - libDir + "IceTestPlugins.jar:test.Ice.plugin.plugins.PluginOneFactory"); + jarFile + ":test.Ice.plugin.plugins.PluginOneFactory"); initData.properties.setProperty("Ice.Plugin.PluginTwo", - libDir + "IceTestPlugins.jar:test.Ice.plugin.plugins.PluginTwoFactory"); + jarFile + ":test.Ice.plugin.plugins.PluginTwoFactory"); initData.properties.setProperty("Ice.Plugin.PluginThree", - libDir + "IceTestPlugins.jar:test.Ice.plugin.plugins.PluginThreeFactory"); + jarFile + ":test.Ice.plugin.plugins.PluginThreeFactory"); initData.properties.setProperty("Ice.PluginLoadOrder", "PluginOne, PluginTwo"); initData.properties.setProperty("Ice.InitPlugins", "0"); communicator = Ice.Util.initialize(args, initData); @@ -126,14 +132,13 @@ public class Client extends test.Util.Application communicator = null; try { - Ice.InitializationData initData = new Ice.InitializationData(); - initData.properties = Ice.Util.createProperties(); + Ice.InitializationData initData = createInitData(); initData.properties.setProperty("Ice.Plugin.PluginOneFail", - libDir + "IceTestPlugins.jar:test.Ice.plugin.plugins.PluginOneFailFactory"); + jarFile + ":test.Ice.plugin.plugins.PluginOneFailFactory"); initData.properties.setProperty("Ice.Plugin.PluginTwoFail", - libDir + "IceTestPlugins.jar:test.Ice.plugin.plugins.PluginTwoFailFactory"); + jarFile + ":test.Ice.plugin.plugins.PluginTwoFailFactory"); initData.properties.setProperty("Ice.Plugin.PluginThreeFail", - libDir + "IceTestPlugins.jar:test.Ice.plugin.plugins.PluginThreeFailFactory"); + jarFile + ":test.Ice.plugin.plugins.PluginThreeFailFactory"); initData.properties.setProperty("Ice.PluginLoadOrder", "PluginOneFail, PluginTwoFail, PluginThreeFail"); communicator = Ice.Util.initialize(args, initData); } @@ -152,11 +157,22 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); return initData; } + private Ice.InitializationData createInitData() + { + Ice.InitializationData initData = createInitializationData() ; + if(classLoader() != null) + { + initData.classLoader = classLoader(); + } + initData.properties = Ice.Util.createProperties(); + return initData; + } + private static void test(boolean b) { if(!b) diff --git a/java/test/src/main/java/test/Ice/proxy/AMDServer.java b/java/test/src/main/java/test/Ice/proxy/AMDServer.java index 3629cf905b0..0633df18bda 100644 --- a/java/test/src/main/java/test/Ice/proxy/AMDServer.java +++ b/java/test/src/main/java/test/Ice/proxy/AMDServer.java @@ -25,7 +25,7 @@ public class AMDServer extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.proxy.AMD"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010:udp"); diff --git a/java/test/src/main/java/test/Ice/proxy/Client.java b/java/test/src/main/java/test/Ice/proxy/Client.java index 1ad397216c9..54ab8ae6d1b 100644 --- a/java/test/src/main/java/test/Ice/proxy/Client.java +++ b/java/test/src/main/java/test/Ice/proxy/Client.java @@ -25,7 +25,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.proxy"); return initData; diff --git a/java/test/src/main/java/test/Ice/proxy/Collocated.java b/java/test/src/main/java/test/Ice/proxy/Collocated.java index 103451157d0..d47a3a0a721 100644 --- a/java/test/src/main/java/test/Ice/proxy/Collocated.java +++ b/java/test/src/main/java/test/Ice/proxy/Collocated.java @@ -28,7 +28,7 @@ public class Collocated extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.proxy"); initData.properties.setProperty("Ice.Warn.Dispatch", "0"); diff --git a/java/test/src/main/java/test/Ice/proxy/Server.java b/java/test/src/main/java/test/Ice/proxy/Server.java index ae09627cfe5..0ceaf40550f 100644 --- a/java/test/src/main/java/test/Ice/proxy/Server.java +++ b/java/test/src/main/java/test/Ice/proxy/Server.java @@ -24,7 +24,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.proxy"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010:udp"); diff --git a/java/test/src/main/java/test/Ice/retry/AllTests.java b/java/test/src/main/java/test/Ice/retry/AllTests.java index 3a0b7b1ceff..8686e56d67b 100644 --- a/java/test/src/main/java/test/Ice/retry/AllTests.java +++ b/java/test/src/main/java/test/Ice/retry/AllTests.java @@ -113,7 +113,7 @@ public class AllTests } public static RetryPrx - allTests(Ice.Communicator communicator, PrintWriter out) + allTests(Ice.Communicator communicator, PrintWriter out, Instrumentation instrumentation) { out.print("testing stringToProxy... "); out.flush(); @@ -139,7 +139,7 @@ public class AllTests retry1.op(false); out.println("ok"); - Instrumentation.testInvocationCount(3); + instrumentation.testInvocationCount(3); out.print("calling operation to kill connection with second proxy... "); out.flush(); @@ -155,17 +155,17 @@ public class AllTests catch(Ice.ConnectionLostException ex) { } - Instrumentation.testInvocationCount(1); - Instrumentation.testFailureCount(1); - Instrumentation.testRetryCount(0); + instrumentation.testInvocationCount(1); + instrumentation.testFailureCount(1); + instrumentation.testRetryCount(0); out.println("ok"); out.print("calling regular operation with first proxy again... "); out.flush(); retry1.op(false); - Instrumentation.testInvocationCount(1); - Instrumentation.testFailureCount(0); - Instrumentation.testRetryCount(0); + instrumentation.testInvocationCount(1); + instrumentation.testFailureCount(0); + instrumentation.testRetryCount(0); out.println("ok"); AMIRegular cb1 = new AMIRegular(); @@ -174,36 +174,36 @@ public class AllTests out.print("calling regular AMI operation with first proxy... "); retry1.begin_op(false, cb1); cb1.check(); - Instrumentation.testInvocationCount(1); - Instrumentation.testFailureCount(0); - Instrumentation.testRetryCount(0); + instrumentation.testInvocationCount(1); + instrumentation.testFailureCount(0); + instrumentation.testRetryCount(0); out.println("ok"); out.print("calling AMI operation to kill connection with second proxy... "); retry2.begin_op(true, cb2); cb2.check(); - Instrumentation.testInvocationCount(1); - Instrumentation.testFailureCount(1); - Instrumentation.testRetryCount(0); + instrumentation.testInvocationCount(1); + instrumentation.testFailureCount(1); + instrumentation.testRetryCount(0); out.println("ok"); out.print("calling regular AMI operation with first proxy again... "); retry1.begin_op(false, cb1); cb1.check(); - Instrumentation.testInvocationCount(1); - Instrumentation.testFailureCount(0); - Instrumentation.testRetryCount(0); + instrumentation.testInvocationCount(1); + instrumentation.testFailureCount(0); + instrumentation.testRetryCount(0); out.println("ok"); out.print("testing idempotent operation... "); test(retry1.opIdempotent(4) == 4); - Instrumentation.testInvocationCount(1); - Instrumentation.testFailureCount(0); - Instrumentation.testRetryCount(4); + instrumentation.testInvocationCount(1); + instrumentation.testFailureCount(0); + instrumentation.testRetryCount(4); test(retry1.end_opIdempotent(retry1.begin_opIdempotent(4)) == 4); - Instrumentation.testInvocationCount(1); - Instrumentation.testFailureCount(0); - Instrumentation.testRetryCount(4); + instrumentation.testInvocationCount(1); + instrumentation.testFailureCount(0); + instrumentation.testRetryCount(4); out.println("ok"); out.print("testing non-idempotent operation... "); @@ -215,9 +215,9 @@ public class AllTests catch(Ice.LocalException ex) { } - Instrumentation.testInvocationCount(1); - Instrumentation.testFailureCount(1); - Instrumentation.testRetryCount(0); + instrumentation.testInvocationCount(1); + instrumentation.testFailureCount(1); + instrumentation.testRetryCount(0); try { retry1.end_opNotIdempotent(retry1.begin_opNotIdempotent()); @@ -226,14 +226,14 @@ public class AllTests catch(Ice.LocalException ex) { } - Instrumentation.testInvocationCount(1); - Instrumentation.testFailureCount(1); - Instrumentation.testRetryCount(0); + instrumentation.testInvocationCount(1); + instrumentation.testFailureCount(1); + instrumentation.testRetryCount(0); out.println("ok"); if(retry1.ice_getConnection() == null) { - Instrumentation.testInvocationCount(1); + instrumentation.testInvocationCount(1); out.print("testing system exception... "); try @@ -244,9 +244,9 @@ public class AllTests catch(SystemFailure ex) { } - Instrumentation.testInvocationCount(1); - Instrumentation.testFailureCount(1); - Instrumentation.testRetryCount(0); + instrumentation.testInvocationCount(1); + instrumentation.testFailureCount(1); + instrumentation.testRetryCount(0); try { retry1.end_opSystemException(retry1.begin_opSystemException()); @@ -255,9 +255,9 @@ public class AllTests catch(SystemFailure ex) { } - Instrumentation.testInvocationCount(1); - Instrumentation.testFailureCount(1); - Instrumentation.testRetryCount(0); + instrumentation.testInvocationCount(1); + instrumentation.testFailureCount(1); + instrumentation.testRetryCount(0); out.println("ok"); } @@ -271,9 +271,9 @@ public class AllTests } catch(Ice.InvocationTimeoutException ex) { - Instrumentation.testRetryCount(2); + instrumentation.testRetryCount(2); retry1.opIdempotent(-1); // Reset the counter - Instrumentation.testRetryCount(-1); + instrumentation.testRetryCount(-1); } try { @@ -284,9 +284,9 @@ public class AllTests } catch(Ice.InvocationTimeoutException ex) { - Instrumentation.testRetryCount(2); + instrumentation.testRetryCount(2); retry1.opIdempotent(-1); // Reset the counter - Instrumentation.testRetryCount(-1); + instrumentation.testRetryCount(-1); } out.println("ok"); diff --git a/java/test/src/main/java/test/Ice/retry/Client.java b/java/test/src/main/java/test/Ice/retry/Client.java index 0ed2b3c0bfd..f3cc1455550 100644 --- a/java/test/src/main/java/test/Ice/retry/Client.java +++ b/java/test/src/main/java/test/Ice/retry/Client.java @@ -13,11 +13,13 @@ import test.Ice.retry.Test.RetryPrx; public class Client extends test.Util.Application { + private Instrumentation instrumentation = new Instrumentation(); + @Override public int run(String[] args) { Ice.Communicator communicator = communicator(); - RetryPrx retry = AllTests.allTests(communicator, getWriter()); + RetryPrx retry = AllTests.allTests(communicator, getWriter(), instrumentation); retry.shutdown(); return 0; } @@ -25,9 +27,9 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); - initData.observer = Instrumentation.getObserver(); + initData.observer = instrumentation.getObserver(); initData.properties.setProperty("Ice.Package.Test", "test.Ice.retry"); diff --git a/java/test/src/main/java/test/Ice/retry/Collocated.java b/java/test/src/main/java/test/Ice/retry/Collocated.java index 481c1f6c661..61f5dcf0f5b 100644 --- a/java/test/src/main/java/test/Ice/retry/Collocated.java +++ b/java/test/src/main/java/test/Ice/retry/Collocated.java @@ -13,6 +13,8 @@ import test.Ice.retry.Test.RetryPrx; public class Collocated extends test.Util.Application { + private Instrumentation instrumentation = new Instrumentation(); + @Override public int run(String[] args) { @@ -21,7 +23,7 @@ public class Collocated extends test.Util.Application adapter.add(new RetryI(), communicator.stringToIdentity("retry")); //adapter.activate(); // Don't activate OA to ensure collocation is used. - RetryPrx retry = AllTests.allTests(communicator, getWriter()); + RetryPrx retry = AllTests.allTests(communicator, getWriter(), instrumentation); retry.shutdown(); return 0; } @@ -29,9 +31,9 @@ public class Collocated extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); - initData.observer = Instrumentation.getObserver(); + initData.observer = instrumentation.getObserver(); initData.properties.setProperty("Ice.Package.Test", "test.Ice.retry"); @@ -51,7 +53,7 @@ public class Collocated extends test.Util.Application public static void main(String[] args) { Collocated app = new Collocated(); - int result = app.main("Client", args); + int result = app.main("Collocated", args); System.gc(); System.exit(result); } diff --git a/java/test/src/main/java/test/Ice/retry/Instrumentation.java b/java/test/src/main/java/test/Ice/retry/Instrumentation.java index 609a8225ef2..2a756d3d34b 100644 --- a/java/test/src/main/java/test/Ice/retry/Instrumentation.java +++ b/java/test/src/main/java/test/Ice/retry/Instrumentation.java @@ -20,7 +20,7 @@ public class Instrumentation } } - static class InvocationObserverI implements Ice.Instrumentation.InvocationObserver + class InvocationObserverI implements Ice.Instrumentation.InvocationObserver { @Override public void @@ -79,9 +79,9 @@ public class Instrumentation } }; - static private Ice.Instrumentation.InvocationObserver invocationObserver = new InvocationObserverI(); + private Ice.Instrumentation.InvocationObserver invocationObserver = new InvocationObserverI(); - static class CommunicatorObserverI implements Ice.Instrumentation.CommunicatorObserver + class CommunicatorObserverI implements Ice.Instrumentation.CommunicatorObserver { @Override public Ice.Instrumentation.Observer @@ -138,9 +138,9 @@ public class Instrumentation } }; - static private Ice.Instrumentation.CommunicatorObserver communicatorObserver = new CommunicatorObserverI(); + private Ice.Instrumentation.CommunicatorObserver communicatorObserver = new CommunicatorObserverI(); - static public Ice.Instrumentation.CommunicatorObserver + public Ice.Instrumentation.CommunicatorObserver getObserver() { return communicatorObserver; @@ -181,25 +181,25 @@ public class Instrumentation value.value = 0; } - static public void + public void testRetryCount(int expected) { testEqual(nRetry, expected); } - static public void + public void testFailureCount(int expected) { testEqual(nFailure, expected); } - static public void + public void testInvocationCount(int expected) { testEqual(nInvocation, expected); } - static private Ice.IntHolder nRetry = new Ice.IntHolder(0); - static private Ice.IntHolder nFailure = new Ice.IntHolder(0); - static private Ice.IntHolder nInvocation = new Ice.IntHolder(0); + private Ice.IntHolder nRetry = new Ice.IntHolder(0); + private Ice.IntHolder nFailure = new Ice.IntHolder(0); + private Ice.IntHolder nInvocation = new Ice.IntHolder(0); }; diff --git a/java/test/src/main/java/test/Ice/retry/Server.java b/java/test/src/main/java/test/Ice/retry/Server.java index 678839b36a5..a744748958b 100644 --- a/java/test/src/main/java/test/Ice/retry/Server.java +++ b/java/test/src/main/java/test/Ice/retry/Server.java @@ -24,7 +24,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.retry"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/seqMapping/AMDServer.java b/java/test/src/main/java/test/Ice/seqMapping/AMDServer.java index 5c3e9bc5fc0..a8649ee3648 100644 --- a/java/test/src/main/java/test/Ice/seqMapping/AMDServer.java +++ b/java/test/src/main/java/test/Ice/seqMapping/AMDServer.java @@ -25,7 +25,7 @@ public class AMDServer extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.seqMapping.AMD"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010:udp"); diff --git a/java/test/src/main/java/test/Ice/seqMapping/Client.java b/java/test/src/main/java/test/Ice/seqMapping/Client.java index 2124aefda4d..893a2b13806 100644 --- a/java/test/src/main/java/test/Ice/seqMapping/Client.java +++ b/java/test/src/main/java/test/Ice/seqMapping/Client.java @@ -32,7 +32,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.seqMapping"); return initData; diff --git a/java/test/src/main/java/test/Ice/seqMapping/Collocated.java b/java/test/src/main/java/test/Ice/seqMapping/Collocated.java index bf83972f114..90cb687b9db 100644 --- a/java/test/src/main/java/test/Ice/seqMapping/Collocated.java +++ b/java/test/src/main/java/test/Ice/seqMapping/Collocated.java @@ -28,7 +28,7 @@ public class Collocated extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.seqMapping"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/seqMapping/Server.java b/java/test/src/main/java/test/Ice/seqMapping/Server.java index eea5e6536dd..3aacb34f3ba 100644 --- a/java/test/src/main/java/test/Ice/seqMapping/Server.java +++ b/java/test/src/main/java/test/Ice/seqMapping/Server.java @@ -25,7 +25,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.seqMapping"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010:udp"); diff --git a/java/test/src/main/java/test/Ice/serialize/Client.java b/java/test/src/main/java/test/Ice/serialize/Client.java index ffa339ba2ca..39b32270c57 100644 --- a/java/test/src/main/java/test/Ice/serialize/Client.java +++ b/java/test/src/main/java/test/Ice/serialize/Client.java @@ -25,7 +25,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.serialize"); return initData; diff --git a/java/test/src/main/java/test/Ice/serialize/Server.java b/java/test/src/main/java/test/Ice/serialize/Server.java index 19346017593..8b786c3280e 100644 --- a/java/test/src/main/java/test/Ice/serialize/Server.java +++ b/java/test/src/main/java/test/Ice/serialize/Server.java @@ -27,7 +27,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.serialize"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/servantLocator/AMDServer.java b/java/test/src/main/java/test/Ice/servantLocator/AMDServer.java index 29f8754170a..080dc5452fa 100644 --- a/java/test/src/main/java/test/Ice/servantLocator/AMDServer.java +++ b/java/test/src/main/java/test/Ice/servantLocator/AMDServer.java @@ -27,7 +27,7 @@ public class AMDServer extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.servantLocator.AMD"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/servantLocator/Client.java b/java/test/src/main/java/test/Ice/servantLocator/Client.java index c781cb5ac50..40a8551aae9 100644 --- a/java/test/src/main/java/test/Ice/servantLocator/Client.java +++ b/java/test/src/main/java/test/Ice/servantLocator/Client.java @@ -24,7 +24,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.servantLocator"); return initData; diff --git a/java/test/src/main/java/test/Ice/servantLocator/Collocated.java b/java/test/src/main/java/test/Ice/servantLocator/Collocated.java index 612602d933d..d1f9c9cf5df 100644 --- a/java/test/src/main/java/test/Ice/servantLocator/Collocated.java +++ b/java/test/src/main/java/test/Ice/servantLocator/Collocated.java @@ -27,7 +27,7 @@ public class Collocated extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.servantLocator"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/servantLocator/Server.java b/java/test/src/main/java/test/Ice/servantLocator/Server.java index bd3dfdc7288..053ce4d6648 100644 --- a/java/test/src/main/java/test/Ice/servantLocator/Server.java +++ b/java/test/src/main/java/test/Ice/servantLocator/Server.java @@ -26,7 +26,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.servantLocator"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/slicing/exceptions/AMDServer.java b/java/test/src/main/java/test/Ice/slicing/exceptions/AMDServer.java index acca7cf53e8..ad02ce47c79 100644 --- a/java/test/src/main/java/test/Ice/slicing/exceptions/AMDServer.java +++ b/java/test/src/main/java/test/Ice/slicing/exceptions/AMDServer.java @@ -24,7 +24,7 @@ public class AMDServer extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.slicing.exceptions.serverAMD"); initData.properties.setProperty("Ice.Warn.Dispatch", "0"); diff --git a/java/test/src/main/java/test/Ice/slicing/exceptions/Client.java b/java/test/src/main/java/test/Ice/slicing/exceptions/Client.java index bee392fe3b3..f52615b2901 100644 --- a/java/test/src/main/java/test/Ice/slicing/exceptions/Client.java +++ b/java/test/src/main/java/test/Ice/slicing/exceptions/Client.java @@ -16,7 +16,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.slicing.exceptions.client"); return initData; diff --git a/java/test/src/main/java/test/Ice/slicing/exceptions/Server.java b/java/test/src/main/java/test/Ice/slicing/exceptions/Server.java index 0844dd92275..899aedfa165 100644 --- a/java/test/src/main/java/test/Ice/slicing/exceptions/Server.java +++ b/java/test/src/main/java/test/Ice/slicing/exceptions/Server.java @@ -24,7 +24,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.slicing.exceptions.server"); initData.properties.setProperty("Ice.Warn.Dispatch", "0"); diff --git a/java/test/src/main/java/test/Ice/slicing/objects/AMDServer.java b/java/test/src/main/java/test/Ice/slicing/objects/AMDServer.java index c905976b193..37cc88cfb47 100644 --- a/java/test/src/main/java/test/Ice/slicing/objects/AMDServer.java +++ b/java/test/src/main/java/test/Ice/slicing/objects/AMDServer.java @@ -25,7 +25,7 @@ public class AMDServer extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData(); initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.slicing.objects.serverAMD"); initData.properties.setProperty("Ice.Warn.Dispatch", "0"); diff --git a/java/test/src/main/java/test/Ice/slicing/objects/Client.java b/java/test/src/main/java/test/Ice/slicing/objects/Client.java index e725c725339..c0cd30ccaab 100644 --- a/java/test/src/main/java/test/Ice/slicing/objects/Client.java +++ b/java/test/src/main/java/test/Ice/slicing/objects/Client.java @@ -25,7 +25,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.slicing.objects.client"); return initData; diff --git a/java/test/src/main/java/test/Ice/slicing/objects/Server.java b/java/test/src/main/java/test/Ice/slicing/objects/Server.java index fded6895de1..82f1d71e73f 100644 --- a/java/test/src/main/java/test/Ice/slicing/objects/Server.java +++ b/java/test/src/main/java/test/Ice/slicing/objects/Server.java @@ -25,7 +25,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.slicing.objects.server"); initData.properties.setProperty("Ice.Warn.Dispatch", "0"); diff --git a/java/test/src/main/java/test/Ice/stream/Client.java b/java/test/src/main/java/test/Ice/stream/Client.java index 5d88f303e5d..b43c3de47f1 100644 --- a/java/test/src/main/java/test/Ice/stream/Client.java +++ b/java/test/src/main/java/test/Ice/stream/Client.java @@ -944,7 +944,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.stream"); return initData; diff --git a/java/test/src/main/java/test/Ice/threadPoolPriority/Server.java b/java/test/src/main/java/test/Ice/threadPoolPriority/Server.java index a1bdc6a0a31..f311b3f3b61 100644 --- a/java/test/src/main/java/test/Ice/threadPoolPriority/Server.java +++ b/java/test/src/main/java/test/Ice/threadPoolPriority/Server.java @@ -19,14 +19,13 @@ public class Server extends test.Util.Application adapter.add(new PriorityI(), communicator().stringToIdentity("test")); adapter.activate(); - communicator().waitForShutdown(); - return 0; + return WAIT; } @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.ThreadPool.Server.ThreadPriority", "10"); return initData; diff --git a/java/test/src/main/java/test/Ice/throughput/Client.java b/java/test/src/main/java/test/Ice/throughput/Client.java index b508b11bc96..cf6b390d085 100644 --- a/java/test/src/main/java/test/Ice/throughput/Client.java +++ b/java/test/src/main/java/test/Ice/throughput/Client.java @@ -476,7 +476,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Demo", "test.Ice.throughput"); initData.properties.setProperty("Throughput.Proxy", "throughput:default -p 10000 -h 127.0.0.1"); diff --git a/java/test/src/main/java/test/Ice/throughput/Server.java b/java/test/src/main/java/test/Ice/throughput/Server.java index 95737f3dc10..6d2df86a930 100644 --- a/java/test/src/main/java/test/Ice/throughput/Server.java +++ b/java/test/src/main/java/test/Ice/throughput/Server.java @@ -24,7 +24,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Demo", "test.Ice.throughput"); initData.properties.setProperty("Throughput.Endpoints", "default -p 10000 -h 127.0.0.1"); diff --git a/java/test/src/main/java/test/Ice/timeout/AllTests.java b/java/test/src/main/java/test/Ice/timeout/AllTests.java index 7f0239f32c5..eb9a2c94e99 100644 --- a/java/test/src/main/java/test/Ice/timeout/AllTests.java +++ b/java/test/src/main/java/test/Ice/timeout/AllTests.java @@ -189,8 +189,9 @@ public class AllTests } out.println("ok"); - // The sequence needs to be large enough to fill the write/recv buffers - byte[] seq = new byte[20000000]; + // The sequence needs to be large enough to fill the write/recv buffers + int bufSize = (test.Util.Application.isAndroid()) ? 10000000 : 20000000; + byte[] seq = new byte[bufSize]; out.print("testing connection timeout... "); out.flush(); @@ -363,6 +364,7 @@ public class AllTests // endpoint timeouts. // Ice.InitializationData initData = new Ice.InitializationData(); + initData.classLoader = IceInternal.Util.getInstance(communicator).getClassLoader(); initData.properties = communicator.getProperties()._clone(); initData.properties.setProperty("Ice.Override.Timeout", "250"); Ice.Communicator comm = app.initialize(initData); @@ -399,6 +401,7 @@ public class AllTests // Test Ice.Override.ConnectTimeout. // Ice.InitializationData initData = new Ice.InitializationData(); + initData.classLoader = IceInternal.Util.getInstance(communicator).getClassLoader(); initData.properties = communicator.getProperties()._clone(); initData.properties.setProperty("Ice.Override.ConnectTimeout", "250"); @@ -452,6 +455,7 @@ public class AllTests // Test Ice.Override.CloseTimeout. // Ice.InitializationData initData = new Ice.InitializationData(); + initData.classLoader = IceInternal.Util.getInstance(communicator).getClassLoader(); initData.properties = communicator.getProperties()._clone(); initData.properties.setProperty("Ice.Override.CloseTimeout", "200"); Ice.Communicator comm = app.initialize(initData); diff --git a/java/test/src/main/java/test/Ice/timeout/Client.java b/java/test/src/main/java/test/Ice/timeout/Client.java index 7476eb5c0e8..f963c6bf0c6 100644 --- a/java/test/src/main/java/test/Ice/timeout/Client.java +++ b/java/test/src/main/java/test/Ice/timeout/Client.java @@ -24,7 +24,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.timeout"); diff --git a/java/test/src/main/java/test/Ice/timeout/Server.java b/java/test/src/main/java/test/Ice/timeout/Server.java index b4006770863..8451ab4c5fa 100644 --- a/java/test/src/main/java/test/Ice/timeout/Server.java +++ b/java/test/src/main/java/test/Ice/timeout/Server.java @@ -24,7 +24,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.timeout"); initData.properties.setProperty("TestAdapter.Endpoints", "default -p 12010"); diff --git a/java/test/src/main/java/test/Ice/udp/AllTests.java b/java/test/src/main/java/test/Ice/udp/AllTests.java index 49e8b91de29..2db68f5f54a 100644 --- a/java/test/src/main/java/test/Ice/udp/AllTests.java +++ b/java/test/src/main/java/test/Ice/udp/AllTests.java @@ -11,6 +11,8 @@ package test.Ice.udp; import test.Ice.udp.Test.*; +import java.io.PrintWriter; + public class AllTests { private static void @@ -67,8 +69,11 @@ public class AllTests } public static void - allTests(Ice.Communicator communicator) + allTests(test.Util.Application app) { + Ice.Communicator communicator = app.communicator(); + PrintWriter out = app.getWriter(); + communicator.getProperties().setProperty("ReplyAdapter.Endpoints", "udp -p 12030"); Ice.ObjectAdapter adapter = communicator.createObjectAdapter("ReplyAdapter"); PingReplyI replyI = new PingReplyI(); @@ -77,8 +82,8 @@ public class AllTests (PingReplyPrx)PingReplyPrxHelper.uncheckedCast(adapter.addWithUUID(replyI)).ice_datagram(); adapter.activate(); - System.out.print("testing udp... "); - System.out.flush(); + out.print("testing udp... "); + out.flush(); Ice.ObjectPrx base = communicator.stringToProxy("test -d:udp -p 12010"); TestIntfPrx obj = TestIntfPrxHelper.uncheckedCast(base); @@ -141,72 +146,75 @@ public class AllTests } } - System.out.println("ok"); + out.println("ok"); - System.out.print("testing udp multicast... "); - System.out.flush(); - String endpoint; - if(communicator.getProperties().getProperty("Ice.IPv6").equals("1")) + if(!app.isAndroid()) { - if(System.getProperty("os.name").contains("OS X")) + out.print("testing udp multicast... "); + out.flush(); + String endpoint; + if(communicator.getProperties().getProperty("Ice.IPv6").equals("1")) { - endpoint = "udp -h \"ff15::1:1\" -p 12020 --interface \"::1\""; + if(System.getProperty("os.name").contains("OS X")) + { + endpoint = "udp -h \"ff02::1:1\" -p 12020 --interface \"lo0\""; + } + else + { + endpoint = "udp -h \"ff01::1:1\" -p 12020"; + } } else { - endpoint = "udp -h \"ff15::1:1\" -p 12020"; + endpoint = "udp -h 239.255.1.1 -p 12020"; } - } - else - { - endpoint = "udp -h 239.255.1.1 -p 12020"; - } - base = communicator.stringToProxy("test -d:" + endpoint); - TestIntfPrx objMcast = TestIntfPrxHelper.uncheckedCast(base); + base = communicator.stringToProxy("test -d:" + endpoint); + TestIntfPrx objMcast = TestIntfPrxHelper.uncheckedCast(base); - nRetry = 5; - while(nRetry-- > 0) - { - replyI.reset(); - objMcast.ping(reply); - ret = replyI.waitReply(5, 2000); - if(ret) + nRetry = 5; + while(nRetry-- > 0) { - break; // Success + replyI.reset(); + objMcast.ping(reply); + ret = replyI.waitReply(5, 2000); + if(ret) + { + break; // Success + } + replyI = new PingReplyI(); + reply = (PingReplyPrx) PingReplyPrxHelper.uncheckedCast(adapter.addWithUUID(replyI)).ice_datagram(); + } + if(!ret) + { + out.println("failed (is a firewall enabled?)"); + } + else + { + out.println("ok"); } - replyI = new PingReplyI(); - reply = (PingReplyPrx)PingReplyPrxHelper.uncheckedCast(adapter.addWithUUID(replyI)).ice_datagram(); - } - if(!ret) - { - System.out.println("failed (is a firewall enabled?)"); - } - else - { - System.out.println("ok"); - } - System.out.print("testing udp bi-dir connection... "); - System.out.flush(); - obj.ice_getConnection().setAdapter(adapter); - objMcast.ice_getConnection().setAdapter(adapter); - nRetry = 5; - while(nRetry-- > 0) - { - replyI.reset(); - obj.pingBiDir(reply.ice_getIdentity()); - obj.pingBiDir(reply.ice_getIdentity()); - obj.pingBiDir(reply.ice_getIdentity()); - ret = replyI.waitReply(3, 2000); - if(ret) + out.print("testing udp bi-dir connection... "); + out.flush(); + obj.ice_getConnection().setAdapter(adapter); + objMcast.ice_getConnection().setAdapter(adapter); + nRetry = 5; + while(nRetry-- > 0) { - break; // Success + replyI.reset(); + obj.pingBiDir(reply.ice_getIdentity()); + obj.pingBiDir(reply.ice_getIdentity()); + obj.pingBiDir(reply.ice_getIdentity()); + ret = replyI.waitReply(3, 2000); + if(ret) + { + break; // Success + } + replyI = new PingReplyI(); + reply = (PingReplyPrx) PingReplyPrxHelper.uncheckedCast(adapter.addWithUUID(replyI)).ice_datagram(); } - replyI = new PingReplyI(); - reply = (PingReplyPrx)PingReplyPrxHelper.uncheckedCast(adapter.addWithUUID(replyI)).ice_datagram(); + test(ret); + out.println("ok"); } - test(ret); - System.out.println("ok"); // // Sending the replies back on the multicast UDP connection doesn't work for most @@ -214,7 +222,7 @@ public class AllTests // Windows...). For Windows, see UdpTransceiver constructor for the details. So // we don't run this test. // -// System.out.print("testing udp bi-dir connection... "); +// out.print("testing udp bi-dir connection... "); // nRetry = 5; // while(nRetry-- > 0) // { @@ -231,11 +239,11 @@ public class AllTests // if(!ret) // { -// System.out.println("failed (is a firewall enabled?)"); +// out.println("failed (is a firewall enabled?)"); // } // else // { -// System.out.println("ok"); +// out.println("ok"); // } } } diff --git a/java/test/src/main/java/test/Ice/udp/Client.java b/java/test/src/main/java/test/Ice/udp/Client.java index afd4927a470..8f787b40751 100644 --- a/java/test/src/main/java/test/Ice/udp/Client.java +++ b/java/test/src/main/java/test/Ice/udp/Client.java @@ -16,16 +16,16 @@ public class Client extends test.Util.Application @Override public int run(String[] args) { - AllTests.allTests(communicator()); + AllTests.allTests(this); int num; try { - num = args.length == 1 ? Integer.parseInt(args[0]) : 0; + num = args.length == 1 ? Integer.parseInt(args[0]) : 1; } catch(NumberFormatException ex) { - num = 0; + num = 1; } for(int i = 0; i < num; ++i) { @@ -37,7 +37,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.udp"); initData.properties.setProperty("Ice.Warn.Connections", "0"); diff --git a/java/test/src/main/java/test/Ice/udp/Server.java b/java/test/src/main/java/test/Ice/udp/Server.java index 2664d3147bf..b7aecab21b8 100644 --- a/java/test/src/main/java/test/Ice/udp/Server.java +++ b/java/test/src/main/java/test/Ice/udp/Server.java @@ -37,9 +37,12 @@ public class Server extends test.Util.Application adapter2.activate(); } - Ice.ObjectAdapter mcastAdapter = communicator().createObjectAdapter("McastTestAdapter"); - mcastAdapter.add(new TestIntfI(), communicator().stringToIdentity("test")); - mcastAdapter.activate(); + if(!isAndroid()) + { + Ice.ObjectAdapter mcastAdapter = communicator().createObjectAdapter("McastTestAdapter"); + mcastAdapter.add(new TestIntfI(), communicator().stringToIdentity("test")); + mcastAdapter.activate(); + } return WAIT; } @@ -47,30 +50,33 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.Ice.udp"); initData.properties.setProperty("Ice.Warn.Connections", "0"); initData.properties.setProperty("Ice.UDP.RcvSize", "16384"); initData.properties.setProperty("Ice.UDP.SndSize", "16384"); - String endpoint; - if(initData.properties.getProperty("Ice.IPv6").equals("1")) + if(!isAndroid()) { - if(System.getProperty("os.name").contains("OS X")) + String endpoint; + if(initData.properties.getProperty("Ice.IPv6").equals("1")) { - endpoint = "udp -h \"ff15::1:1\" -p 12020 --interface \"::1\""; + if(System.getProperty("os.name").contains("OS X")) + { + endpoint = "udp -h \"ff15::1:1\" -p 12020 --interface \"::1\""; + } + else + { + endpoint = "udp -h \"ff15::1:1\" -p 12020"; + } } else { - endpoint = "udp -h \"ff15::1:1\" -p 12020"; + endpoint = "udp -h 239.255.1.1 -p 12020"; } + initData.properties.setProperty("McastTestAdapter.Endpoints", endpoint); } - else - { - endpoint = "udp -h 239.255.1.1 -p 12020"; - } - initData.properties.setProperty("McastTestAdapter.Endpoints", endpoint); return initData; } diff --git a/java/test/src/main/java/test/IceBox/configuration/Client.java b/java/test/src/main/java/test/IceBox/configuration/Client.java index 39785e9de8a..c693f2ad179 100644 --- a/java/test/src/main/java/test/IceBox/configuration/Client.java +++ b/java/test/src/main/java/test/IceBox/configuration/Client.java @@ -28,7 +28,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.IceBox.configuration"); return initData; diff --git a/java/test/src/main/java/test/IceGrid/simple/AllTests.java b/java/test/src/main/java/test/IceGrid/simple/AllTests.java index d18a5da35fa..0288b56a179 100644 --- a/java/test/src/main/java/test/IceGrid/simple/AllTests.java +++ b/java/test/src/main/java/test/IceGrid/simple/AllTests.java @@ -84,6 +84,7 @@ public class AllTests // registries and make sure locator requests are forwarded. // Ice.InitializationData initData = new Ice.InitializationData(); + initData.classLoader = IceInternal.Util.getInstance(communicator).getClassLoader(); initData.properties = communicator.getProperties()._clone(); initData.properties.setProperty("Ice.Default.Locator", ""); initData.properties.setProperty("Ice.Plugin.IceGridDiscovery", "IceGrid:IceGrid.DiscoveryPluginFactoryI"); diff --git a/java/test/src/main/java/test/IceGrid/simple/Client.java b/java/test/src/main/java/test/IceGrid/simple/Client.java index 0da92bbeffe..9fd18b7967e 100644 --- a/java/test/src/main/java/test/IceGrid/simple/Client.java +++ b/java/test/src/main/java/test/IceGrid/simple/Client.java @@ -40,7 +40,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.IceGrid.simple"); return initData; diff --git a/java/test/src/main/java/test/IceGrid/simple/Server.java b/java/test/src/main/java/test/IceGrid/simple/Server.java index 1b349a70773..67c58c19479 100644 --- a/java/test/src/main/java/test/IceGrid/simple/Server.java +++ b/java/test/src/main/java/test/IceGrid/simple/Server.java @@ -38,7 +38,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); // // Its possible to have batch oneway requests dispatched diff --git a/java/test/src/main/java/test/IceSSL/configuration/AllTests.java b/java/test/src/main/java/test/IceSSL/configuration/AllTests.java index 1e955c8c1f5..c19dbe0f2e5 100644 --- a/java/test/src/main/java/test/IceSSL/configuration/AllTests.java +++ b/java/test/src/main/java/test/IceSSL/configuration/AllTests.java @@ -32,21 +32,21 @@ public class AllTests private static Ice.InitializationData createClientProps(Ice.Properties defaultProperties, String defaultDir, String defaultHost) { - Ice.InitializationData result = new Ice.InitializationData(); - result.properties = Ice.Util.createProperties(); - result.properties.setProperty("Ice.Plugin.IceSSL", "IceSSL.PluginFactory"); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = Ice.Util.createProperties(); + initData.properties.setProperty("Ice.Plugin.IceSSL", "IceSSL.PluginFactory"); if(defaultProperties.getProperty("Ice.IPv6").length() > 0) { - result.properties.setProperty("Ice.IPv6", defaultProperties.getProperty("Ice.IPv6")); + initData.properties.setProperty("Ice.IPv6", defaultProperties.getProperty("Ice.IPv6")); } - result.properties.setProperty("Ice.RetryIntervals", "-1"); - result.properties.setProperty("IceSSL.DefaultDir", defaultDir); - result.properties.setProperty("IceSSL.Random", "seed.dat"); + initData.properties.setProperty("Ice.RetryIntervals", "-1"); + initData.properties.setProperty("IceSSL.DefaultDir", defaultDir); + initData.properties.setProperty("IceSSL.Random", "seed.dat"); if(defaultHost.length() > 0) { - result.properties.setProperty("Ice.Default.Host", defaultHost); + initData.properties.setProperty("Ice.Default.Host", defaultHost); } - return result; + return initData; } private static java.util.Map<String, String> diff --git a/java/test/src/main/java/test/IceSSL/configuration/Client.java b/java/test/src/main/java/test/IceSSL/configuration/Client.java index 36ecfde860d..3894ec17ef7 100644 --- a/java/test/src/main/java/test/IceSSL/configuration/Client.java +++ b/java/test/src/main/java/test/IceSSL/configuration/Client.java @@ -34,7 +34,7 @@ public class Client extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.IceSSL.configuration"); return initData; diff --git a/java/test/src/main/java/test/IceSSL/configuration/Server.java b/java/test/src/main/java/test/IceSSL/configuration/Server.java index 9438f73d419..60de476a19a 100644 --- a/java/test/src/main/java/test/IceSSL/configuration/Server.java +++ b/java/test/src/main/java/test/IceSSL/configuration/Server.java @@ -29,7 +29,7 @@ public class Server extends test.Util.Application @Override protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - Ice.InitializationData initData = new Ice.InitializationData(); + Ice.InitializationData initData = createInitializationData() ; initData.properties = Ice.Util.createProperties(argsH); initData.properties.setProperty("Ice.Package.Test", "test.IceSSL.configuration"); return initData; diff --git a/java/test/src/main/java/test/Util/Application.java b/java/test/src/main/java/test/Util/Application.java index 07c7d28b54e..97e39644391 100644 --- a/java/test/src/main/java/test/Util/Application.java +++ b/java/test/src/main/java/test/Util/Application.java @@ -9,17 +9,14 @@ package test.Util; -import Ice.Communicator; -import Ice.InitializationData; -import Ice.LocalException; -import Ice.LoggerI; -import Ice.StringSeqHolder; -import Ice.Util; +import Ice.*; public abstract class Application { public final int WAIT = 2; + + public interface ServerReadyListener { void serverReady(); @@ -48,6 +45,7 @@ public abstract class Application { Ice.StringSeqHolder argsH = new Ice.StringSeqHolder(args); Ice.InitializationData initData = getInitData(argsH); + initData.classLoader = _classLoader; return main(appName, argsH.value, initData); } @@ -181,6 +179,16 @@ public abstract class Application return communicator; } + public Ice.Communicator initialize() + { + Ice.Communicator communicator = Util.initialize(); + if(_communicatorListener != null) + { + _communicatorListener.communicatorInitialized(communicator); + } + return communicator; + } + public abstract int run(String[] args); // @@ -190,7 +198,7 @@ public abstract class Application // protected Ice.InitializationData getInitData(Ice.StringSeqHolder argsH) { - return null; + return createInitializationData(); } public java.io.PrintWriter getWriter() @@ -203,6 +211,11 @@ public abstract class Application _printWriter = new java.io.PrintWriter(writer); } + public void setLogger(Ice.Logger logger) + { + _logger = logger; + } + public void setServerReadyListener(ServerReadyListener cb) { _cb = cb; @@ -221,23 +234,50 @@ public abstract class Application } } + static public boolean isAndroid() + { + return IceInternal.Util.isAndroid(); + } // // Return the application name, i.e., argv[0]. // - public String - appName() + public String appName() { return _testName; } - public Communicator - communicator() + public Communicator communicator() { return _communicator; } + public void setClassLoader(ClassLoader c) + { + _classLoader = c; + } + + public ClassLoader getClassLoader() + { + return _classLoader; + } + + public InitializationData createInitializationData() + { + Ice.InitializationData initData = new Ice.InitializationData(); + initData.classLoader = _classLoader; + initData.logger = _logger; + return initData; + } + + public ClassLoader classLoader() + { + return _classLoader; + } + + private ClassLoader _classLoader; private String _testName; private Communicator _communicator; + private Ice.Logger _logger = null; private java.io.PrintWriter _printWriter = new java.io.PrintWriter(new java.io.OutputStreamWriter(System.out)); private ServerReadyListener _cb = null; private CommunicatorListener _communicatorListener = null; |