diff options
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; |