summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2018-09-12 14:48:57 +0200
committerJose <jose@zeroc.com>2018-09-12 14:48:57 +0200
commitf9801ab21989e330015ffa274493e775671fe865 (patch)
tree99f7cf77ab7863117aa8ee7f2f8047afc6351d58 /java
parentMissing C++ header include (diff)
downloadice-f9801ab21989e330015ffa274493e775671fe865.tar.bz2
ice-f9801ab21989e330015ffa274493e775671fe865.tar.xz
ice-f9801ab21989e330015ffa274493e775671fe865.zip
Make test controllers layout more consistent
Close #184
Diffstat (limited to 'java')
-rw-r--r--java/.gitignore1
-rw-r--r--java/.settings/org.eclipse.jdt.core.prefs384
-rw-r--r--java/.settings/org.eclipse.jdt.ui.prefs3
-rw-r--r--java/README.md165
-rw-r--r--java/android/.gitignore8
-rw-r--r--java/android/Makefile34
-rw-r--r--java/android/README.md133
-rwxr-xr-xjava/android/build.gradle36
-rw-r--r--java/android/controller/build.gradle84
-rwxr-xr-xjava/android/gradle/GRADLE_LICENSE16
-rw-r--r--java/android/gradle/library.gradle27
-rw-r--r--java/android/gradle/tests.gradle56
-rw-r--r--java/android/settings.gradle30
-rw-r--r--java/android/src/Ice/build.gradle23
-rw-r--r--java/android/src/IceBT/build.gradle23
-rw-r--r--java/android/src/IceDiscovery/build.gradle23
-rw-r--r--java/android/src/IceSSL/build.gradle23
-rw-r--r--java/android/test/build.gradle69
-rw-r--r--java/android/test/slice.gradle69
-rw-r--r--java/settings.gradle3
-rw-r--r--[-rwxr-xr-x]java/test/android/allTests.py (renamed from java/android/allTests.py)2
-rw-r--r--java/test/android/controller/build.gradle104
-rw-r--r--java/test/android/controller/gradle.properties (renamed from java/android/gradle.properties)2
-rw-r--r--java/test/android/controller/gradle/wrapper/gradle-wrapper.jar (renamed from java/android/gradle/wrapper/gradle-wrapper.jar)bin54329 -> 54708 bytes
-rw-r--r--java/test/android/controller/gradle/wrapper/gradle-wrapper.properties (renamed from java/android/gradle/wrapper/gradle-wrapper.properties)3
-rw-r--r--[-rwxr-xr-x]java/test/android/controller/gradlew (renamed from java/android/gradlew)0
-rw-r--r--java/test/android/controller/gradlew.bat (renamed from java/android/gradlew.bat)0
-rw-r--r--java/test/android/controller/src/main/AndroidManifest.xml (renamed from java/android/controller/src/main/AndroidManifest.xml)0
-rw-r--r--java/test/android/controller/src/main/assets/.gitignore (renamed from java/android/controller/src/main/assets/.gitignore)0
-rw-r--r--java/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java (renamed from java/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java)0
-rw-r--r--java/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java (renamed from java/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java)0
-rw-r--r--java/test/android/controller/src/main/res/layout/main.xml (renamed from java/android/controller/src/main/res/layout/main.xml)0
-rw-r--r--java/test/android/controller/src/main/res/raw/client.bksbin0 -> 3524 bytes
-rw-r--r--java/test/android/controller/src/main/res/raw/icon.png (renamed from java/android/controller/src/main/res/raw/icon.png)bin3180 -> 3180 bytes
-rw-r--r--java/test/android/controller/src/main/res/raw/server.bksbin0 -> 3558 bytes
-rw-r--r--java/test/android/controller/src/main/res/values/strings.xml (renamed from java/android/controller/src/main/res/values/strings.xml)0
36 files changed, 242 insertions, 1079 deletions
diff --git a/java/.gitignore b/java/.gitignore
index 60093ca1326..a2b356f9e1b 100644
--- a/java/.gitignore
+++ b/java/.gitignore
@@ -3,3 +3,4 @@ build
.gradle
*.iml
.idea
+local.properties \ No newline at end of file
diff --git a/java/.settings/org.eclipse.jdt.core.prefs b/java/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 60617a4080a..00000000000
--- a/java/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,384 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.7
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=18
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=8
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=true
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/java/.settings/org.eclipse.jdt.ui.prefs b/java/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 74e568e0217..00000000000
--- a/java/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-formatter_profile=_ZeroC
-formatter_settings_version=12
diff --git a/java/README.md b/java/README.md
index eb20642d368..3ebfde30437 100644
--- a/java/README.md
+++ b/java/README.md
@@ -12,11 +12,10 @@ you prefer, you can also download a [binary distribution][1].
* [JGoodies](#jgoodies)
* [ProGuard](#proguard)
* [Java Application Bundler](#java-application-bundler)
-* [Compiling Ice for Java](#compiling-ice-for-java)
- * [Preparing to Build](#preparing-to-build)
- * [Building Ice for Java](#building-ice-for-java-1)
+* [Building Ice for Java](#building-ice-for-java-1)
* [Installing Ice for Java](#installing-ice-for-java)
* [Running the Java Tests](#running-the-java-tests)
+* [Building the Ice for Android Tests](#building-the-ice-for-android-tests)
* [IceGrid GUI Tool](#icegrid-gui-tool)
## Build Requirements
@@ -50,12 +49,9 @@ JavaFX support, as the Metrics Graph feature is enabled dynamically.
### Gradle
Ice for Java uses the [Gradle][3] build system, and includes the Gradle wrapper
-version 2.4 in the distribution. You cannot build the Ice for Java source
-distribution without an Internet connection. Gradle will download all required
-distribution without an Internet connection. Gradle will download all required
-packages automatically from ZeroC's Maven repository located at
-
- https://repo.zeroc.com/nexus/content/repositories/thirdparty
+in the distribution. You cannot build the Ice for Java source distribution without
+an Internet connection. Gradle will download all required packages automatically
+from Maven Central repository located at http://central.maven.org/maven2/
### Bzip2 Compression
@@ -64,7 +60,9 @@ with [Apache Commons Compress][5].
The Maven package id for the commons-compress JAR file is as follows:
- groupId=org.apache.commons, version=1.14, artifactId=commons-compress
+```
+groupId=org.apache.commons, version=1.14, artifactId=commons-compress
+```
The demos and tests are automatically setup to enable protocol compression by
adding the commons-compress JAR to the manifest class path. For your own
@@ -79,13 +77,17 @@ therefore add significant latency to Ice requests.*
The IceGrid GUI tool uses the JGoodies libraries Forms and Looks. The following
versions were tested:
- JGoodies Forms 1.9.0
- JGoodies Looks 2.7.0
+```
+JGoodies Forms 1.9.0
+JGoodies Looks 2.7.0
+```
The Maven package ids for the JGoodies packages are as follows:
- groupId=com.jgoodies, version=1.9.0, artifactId=jgoodies-forms
- groupId=com.jgoodies, version=2.7.0, artifactId=jgoodies-looks
+```
+groupId=com.jgoodies, version=1.9.0, artifactId=jgoodies-forms
+groupId=com.jgoodies, version=2.7.0, artifactId=jgoodies-looks
+```
### ProGuard
@@ -94,7 +96,9 @@ GUI tool.
The Maven package id for the ProGuard package is as follows:
- groupId='net.sf.proguard', artifactId='proguard-gradle', version='6.0'
+```
+groupId='net.sf.proguard', artifactId='proguard-gradle', version='6.0'
+```
### Java Application Bundler
@@ -103,11 +107,11 @@ bundle for the IceGrid GUI tool.
The Maven package id for the application bundler package is as follows:
- groupId=com.oracle, version=1.0, artifactId=appbundler
-
-## Compiling Ice for Java
+```
+groupId=com.panayotis, version=1.0.2, artifactId=appbundler
+```
-### Preparing to Build
+## Building Ice for Java
The build system requires the Slice to Java compiler from Ice for C++. If you
have not built Ice for C++ in this source distribution, you must set the
@@ -136,10 +140,9 @@ set CPP_CONFIGURATION=Debug
The supported values for `CPP_PLATFORM` are `Win32` and `x64` and the supported
values for `CPP_CONFIGURATION` are `Debug` and `Release`.
-Before building Ice for Java, review the settings in the file
-`gradle.properties` and edit as necessary.
+Before building Ice for Java, review the settings in the file `gradle.properties`
+and edit as necessary.
-### Building Ice for Java
To build Ice, all services, and tests, run
```
@@ -165,17 +168,19 @@ gradlew install
The following JAR files will be installed to `<prefix>/lib`.
- glacier2-3.7.1.jar
- ice-3.7.1.jar
- icebox-3.7.1.jar
- icebt-3.7.1.jar
- icediscovery-3.7.1.jar
- icegrid-3.7.1.jar
- icegridgui.jar
- icelocatordiscovery-3.7.1.jar
- icepatch2-3.7.1.jar
- icessl-3.7.1.jar
- icestorm-3.7.1.jar
+```
+glacier2-3.7.1.jar
+ice-3.7.1.jar
+icebox-3.7.1.jar
+icebt-3.7.1.jar
+icediscovery-3.7.1.jar
+icegrid-3.7.1.jar
+icegridgui.jar
+icelocatordiscovery-3.7.1.jar
+icepatch2-3.7.1.jar
+icessl-3.7.1.jar
+icestorm-3.7.1.jar
+```
POM files are also installed for ease of deployment to a Maven-based
distribution system.
@@ -205,6 +210,100 @@ python allTests.py
If everything worked out, you should see lots of `ok` messages. In case of a
failure, the tests abort with `failed`.
+## Building the Ice for Android Tests
+
+The `test/android/controller` directory contains an Android Studio project for
+the Ice test suite controller.
+
+### Android Build Requirements
+
+Building any Ice application for Android requires Android Studio and the Android
+SDK build tools. We tested with the following components:
+
+- Android Studio 3.0.1
+- Android SDK 24
+- Android Build Tools 27.0.1
+
+Using Ice's Java mapping with Java 8 requires at minimum API level 24:
+
+- Android 7 (API24)
+
+If you want to target a later version of the Android API level for the test
+suite, edit `test/android/controller/gradle.properties` and change the
+following variables:
+
+```
+ice_compileSdkVersion
+ice_minSdkVersion
+ice_targetSdkVersion
+```
+
+*NOTE: Do not use Android Studio to modify the project's settings.*
+
+### Building the Android Test Controller
+
+You must first build Ice for Java refer to [Building Ice for Java](#building-ice-for-java-1)
+for instructions, then follow these steps:
+
+1. Start Android Studio
+2. Select "Open an existing Android Studio project"
+3. Navigate to and select the "java/test/android/controller" subdirectory
+4. Click OK and wait for the project to open and build
+
+### Running the Android Test Suite
+
+The Android Studio project contains a `controller` app for the Ice test
+suite. Prior to running the app, you must disable Android Studio's Instant Run
+feature, located in File / Settings / Build, Execution, Deployment /
+Instant Run.
+
+Tests are started from the dev machine using the `allTests.py` script, similar
+to the other language mappings. The script uses Ice for Python to communicate
+with the Android app, therefore you must build the [Python mapping]
+(../python) before continuing.
+
+You also need to add the `tools\bin`, `platform-tools` and `emulator`
+directories from the Android SDK to your PATH. On macOS, you can use the
+following commands:
+
+```
+export PATH=~/Library/Android/sdk/tools/bin:$PATH
+export PATH=~/Library/Android/sdk/platform-tools:$PATH
+export PATH=~/Library/Android/sdk/emulator:$PATH
+```
+
+On Windows, you can use the following commands:
+
+```
+set PATH=%LOCALAPPDATA%\Android\sdk\tools;%PATH%
+set PATH=%LOCALAPPDATA%\Android\sdk\platform-tools;%PATH%
+set PATH=%LOCALAPPDATA%\Android\sdk\emulator;%PATH%
+```
+
+Run the tests with the Android emulator by running the following command:
+
+```
+cd test/android
+python allTests.py --androidemulator --controller-app
+```
+
+To run the tests on a specific Android connected device, you can use the
+`--device` argument as shown below:
+
+```
+cd test/android
+python allTests.py --device=ZX1C2234XF --controller-app
+```
+
+You can see the list of connected devices with the `adb` command:
+
+```
+adb devices -l
+```
+
+To run the tests against a `controller` application started from Android
+Studio you should omit the `--controller-app` option from the commands above.
+
## IceGrid GUI Tool
Ice for Java includes the IceGrid GUI tool. It can be found in the file
diff --git a/java/android/.gitignore b/java/android/.gitignore
deleted file mode 100644
index 924783fa777..00000000000
--- a/java/android/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-lib
-build
-.gradle
-local.properties
-*.bks
-*.iml
-/.idea
-test/src/
diff --git a/java/android/Makefile b/java/android/Makefile
deleted file mode 100644
index b38dc1d4ddc..00000000000
--- a/java/android/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# **********************************************************************
-#
-# Copyright (c) 2003-2018 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.
-#
-# **********************************************************************
-
-ifeq ($(ANDROID_SDK_ROOT),)
-$(error Please set ANDROID_SDK_ROOT to the Android SDK installation directory)
-endif
-
-ifeq ($(GRADLE),)
-GRADLE = ./gradlew
-endif
-
-all: local.properties
- $(GRADLE) $(GRADLEARGS) build
-
-tests: local.properties
- $(GRADLE) $(GRADLEARGS) :test:assemble
-
-srcs: local.properties
- $(GRADLE) $(GRADLEARGS) dist
-
-distclean clean: local.properties
- $(GRADLE) $(GRADLEARGS) clean
-
-local.properties:
- @echo sdk.dir=$(ANDROID_SDK_ROOT) > local.properties
-
-test::
- @python ./allTests.py --androidemulator --controller-app
diff --git a/java/android/README.md b/java/android/README.md
deleted file mode 100644
index df7bb3f47de..00000000000
--- a/java/android/README.md
+++ /dev/null
@@ -1,133 +0,0 @@
-# Building the Ice for Android Test Suite
-
-This directory contains an Android Studio project for the Ice test suite. For
-ease of development and testing, this project also builds a subset of the Ice
-JAR files. This is not necessary for your own projects as it considerably
-complicates the project configuration.
-
-Building [Ice for Java](../README.md) is the only way to build all of the Ice
-JAR files from source. The JAR files produced by the Ice for Java build fully
-support Android. If you prefer, our [binary distributions][1] include
-pre-compiled JAR files.
-
-## Build Requirements
-
-### Android Development Tools
-
-Building any Ice application for Android requires Android Studio and the Android
-SDK build tools. We tested with the following components:
-
-- Android Studio 3.0.1
-- Android SDK 24
-- Android Build Tools 27.0.1
-
-Using Ice's Java mapping with Java 8 requires at minimum API level 24:
-
-- Android 7 (API24)
-
-If you want to target a later version of the Android API level for the test
-suite, edit `gradle.properties` and change the following variables:
-
-```
-ice_compileSdkVersion
-ice_minSdkVersion
-ice_targetSdkVersion
-```
-
-*NOTE: Do not use Android Studio to modify the project's settings.*
-
-### Slice to Java Compiler
-
-To build this project you'll need the Slice to Java compiler, which generates
-Java code from Slice definitions. The compiler is written in C++. If you have
-a suitable C++ development environment, you can build [Ice for C++](../../cpp)
-yourself. Otherwise, you can obtain the compiler by installing a
-[binary distribution][1].
-
-The project's Gradle-based build system will automatically search for the
-compiler in this repository and in the default installation directories used
-by the binary distributions for our supported platforms.
-
-### Bzip2 Compression
-
-Ice for Java supports protocol compression using the bzip2 classes included
-with [Apache Commons Compress][2].
-
-The Maven package id for the commons-compress JAR file is as follows:
-
-```
-groupId=org.apache.commons, version=1.14, artifactId=commons-compress
-```
-
-The demos and tests are automatically setup to enable protocol compression by
-adding the commons-compress JAR to the manifest class path. For your own
-applications you must add the commons-compress JAR to the application CLASSPATH
-to enable protocol compression.
-
-> *These classes are a pure Java implementation of the bzip2 algorithm and
-therefore add significant latency to Ice requests.*
-
-## Building the Project
-
-Follow these steps to open the project in Android Studio:
-
-1. Start Android Studio
-2. Select "Open an existing Android Studio project"
-3. Navigate to and select the "android" subdirectory
-4. Click OK and wait for the project to open and build
-
-## Running the Test Suite
-
-The Android Studio project contains a `testController` app for the Ice test
-suite. Prior to running the app, you must disable Android Studio's Instant Run
-feature, located in File / Settings / Build, Execution, Deployment /
-Instant Run.
-
-Tests are started from the dev machine using the `allTests.py` script, similar
-to the other language mappings. The script uses Ice for Python to communicate
-with the Android app, therefore you must build the [Python mapping]
-(../../python) before continuing.
-
-You also need to add the `tools\bin`, `platform-tools` and `emulator`
-directories from the Android SDK to your PATH. On macOS, you can use the
-following commands:
-
-```
-export PATH=~/Library/Android/sdk/tools/bin:$PATH
-export PATH=~/Library/Android/sdk/platform-tools:$PATH
-export PATH=~/Library/Android/sdk/emulator:$PATH
-```
-
-On Windows, you can use the following commands:
-
-```
-set PATH=%LOCALAPPDATA%\Android\sdk\tools;%PATH%
-set PATH=%LOCALAPPDATA%\Android\sdk\platform-tools;%PATH%
-set PATH=%LOCALAPPDATA%\Android\sdk\emulator;%PATH%
-```
-
-Run the tests with the Android emulator by running the following command:
-
-```
-cd android
-python allTests.py --androidemulator --controller-app
-```
-
-To run the tests on a specific Android connected device, you can use the
-`--device` argument as shown below:
-
-```
-python allTests.py --device=ZX1C2234XF --controller-app
-```
-
-You can see the list of connected devices with the `adb` command:
-
-```
-adb devices -l
-```
-
-To run the tests against a `testController` application started from Android
-Studio you should omit the `--controller-app` option from the commands above.
-
-[1]: https://zeroc.com/distributions/ice
-[2]: https://commons.apache.org/proper/commons-compress/
diff --git a/java/android/build.gradle b/java/android/build.gradle
deleted file mode 100755
index cc783940b9f..00000000000
--- a/java/android/build.gradle
+++ /dev/null
@@ -1,36 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 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.
-//
-// **********************************************************************
-
-buildscript {
- repositories {
- jcenter()
- google()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:3.1.2'
- }
-}
-
-subprojects {
- project.ext.topSrcDir = "$rootProject.projectDir/../.."
-
- project.version = iceVersion
- project.group = "com.zeroc"
-
- apply plugin: 'idea'
-}
-
-//
-// Used to build the gradle wrapper to automatically download and install
-// the version of gradle needed to build Ice.
-//
-task wrapper(type: Wrapper) {
- gradleVersion = "4.7"
- distributionType = Wrapper.DistributionType.ALL
-}
diff --git a/java/android/controller/build.gradle b/java/android/controller/build.gradle
deleted file mode 100644
index e9083328403..00000000000
--- a/java/android/controller/build.gradle
+++ /dev/null
@@ -1,84 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 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: 'com.android.application'
-apply from: "$rootProject.projectDir/../gradle/ice.gradle"
-apply from: "$rootProject.projectDir/gradle/tests.gradle"
-
-slice {
- java {
- files = fileTree(dir: "$rootProject.projectDir/../../scripts/", includes: ['*.ice'])
- }
-}
-
-repositories {
- jcenter()
- google()
-}
-
-android {
- compileSdkVersion 25
-
- defaultConfig {
- applicationId "com.zeroc.testcontroller"
- minSdkVersion ice_minSdkVersion.toInteger()
- targetSdkVersion ice_targetSdkVersion.toInteger()
- multiDexEnabled true // Necessary otherwise we'd exceed the 64K DEX limit.
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
- }
-
- buildTypes {
- debug {
- //
- // Set minifyEnabled to false because the test app loads classes dynamically.
- //
- minifyEnabled false
- }
-
- release {
- //
- // Set minifyEnabled to false because the test app loads classes dynamically.
- //
- minifyEnabled false
- }
- }
-}
-
-idea.module {
- excludeDirs -= file(buildDir)
- buildDir.listFiles({d, f ->f != 'generated-src'} as FilenameFilter).each { excludeDirs += it }
-}
-
-task copyBksTask(type: Copy) {
- from "${rootProject.projectDir}/../../certs/client.bks"
- from "${rootProject.projectDir}/../../certs/server.bks"
- into "src/main/res/raw"
-}
-preBuild.dependsOn(copyBksTask)
-
-clean {
- delete("src/main/res/raw/client.bks")
- delete("src/main/res/raw/server.bks")
-}
-
-dependencies {
- implementation localDependency('ice')
- implementation localDependency('icessl')
- implementation localDependency('icediscovery')
- implementation localDependency('icebt')
- implementation project(':test')
- tests.each {
- def name = it.replace('/', '_')
- implementation project(":test_${name}")
- }
- runtimeOnly "org.apache.commons:commons-compress:1.14"
-}
diff --git a/java/android/gradle/GRADLE_LICENSE b/java/android/gradle/GRADLE_LICENSE
deleted file mode 100755
index 80e31a864a8..00000000000
--- a/java/android/gradle/GRADLE_LICENSE
+++ /dev/null
@@ -1,16 +0,0 @@
-License Agreement for Gradle, including the Gradle Wrapper (gradlew)
---------------------------------------------------------------------
-
-Copyright 2007-2011 the original author or authors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
diff --git a/java/android/gradle/library.gradle b/java/android/gradle/library.gradle
deleted file mode 100644
index c3a062041b8..00000000000
--- a/java/android/gradle/library.gradle
+++ /dev/null
@@ -1,27 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 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.
-//
-// **********************************************************************
-
-jar {
- destinationDir = new File("${libDir}")
-}
-
-clean {
- delete("${libDir}/${jar.archiveName}")
-}
-
-task copyJars(type: Copy, dependsOn: jar) {
- from "${libDir}/${jar.archiveName}"
- into "${DESTDIR}${prefix}/lib"
-}
-task install(dependsOn: copyJars)
-
-idea.module {
- excludeDirs -= file(buildDir)
- buildDir.listFiles({d, f ->f != 'generated-src'} as FilenameFilter).each { excludeDirs += it }
-}
diff --git a/java/android/gradle/tests.gradle b/java/android/gradle/tests.gradle
deleted file mode 100644
index 3112ef64caa..00000000000
--- a/java/android/gradle/tests.gradle
+++ /dev/null
@@ -1,56 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 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 = [
- "Ice/acm",
- "Ice/adapterDeactivation",
- "Ice/admin",
- "Ice/ami",
- "Ice/background",
- "Ice/binding",
- "Ice/checksum",
- "Ice/classLoader",
- "Ice/custom",
- "Ice/defaultServant",
- "Ice/defaultValue",
- "Ice/dispatcher",
- //"Ice/echo",
- "Ice/enums",
- "Ice/exceptions",
- "Ice/facets",
- //"Ice/faultTolerance",
- //"Ice/hash",
- "Ice/hold",
- "Ice/info",
- "Ice/inheritance",
- "Ice/interceptor",
- "Ice/interrupt",
- "Ice/invoke",
- "Ice/location",
- //"Ice/metrics",
- //"Ice/networkProxy",
- "Ice/objects",
- "Ice/operations",
- "Ice/optional",
- "Ice/packagemd",
- //"Ice/plugin",
- //"Ice/properties",
- "Ice/proxy",
- "Ice/retry",
- "Ice/scope",
- "Ice/seqMapping",
- "Ice/serialize",
- "Ice/servantLocator",
- "Ice/slicing/exceptions",
- "Ice/slicing/objects",
- "Ice/stream",
- "Ice/threadPoolPriority",
- //"Ice/throughput",
- "Ice/timeout",
- "Ice/udp" ]
diff --git a/java/android/settings.gradle b/java/android/settings.gradle
deleted file mode 100644
index 3fb31cf2ad8..00000000000
--- a/java/android/settings.gradle
+++ /dev/null
@@ -1,30 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 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 from: "$rootProject.projectDir/gradle/tests.gradle"
-
-// Main source
-include ':ice'
-project(':ice').projectDir = new File('src/Ice')
-include ':icessl'
-project(':icessl').projectDir = new File('src/IceSSL')
-include ':icediscovery'
-project(':icediscovery').projectDir = new File('src/IceDiscovery')
-include ':icebt'
-project(':icebt').projectDir = new File('src/IceBT')
-
-include ':test', ':testController'
-
-project(':test').projectDir = new File('test')
-project(':testController').projectDir = new File('controller')
-tests.each {
- def name = it.replace("/", "_")
- include ":test_${name}"
- project(":test_${name}").projectDir = new File("test/src/test_${name}")
-}
diff --git a/java/android/src/Ice/build.gradle b/java/android/src/Ice/build.gradle
deleted file mode 100644
index fd6881ab6c0..00000000000
--- a/java/android/src/Ice/build.gradle
+++ /dev/null
@@ -1,23 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 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: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-apply from: "$project.ext.topSrcDir/java/src/Ice/build.gradle"
-
-sourceCompatibility = iceSourceCompatibility
-targetCompatibility = iceTargetCompatibility
-
-sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java/src/Ice/src/main/java"
- }
- }
-}
diff --git a/java/android/src/IceBT/build.gradle b/java/android/src/IceBT/build.gradle
deleted file mode 100644
index 3dd45462337..00000000000
--- a/java/android/src/IceBT/build.gradle
+++ /dev/null
@@ -1,23 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 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: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-apply from: "$project.ext.topSrcDir/java/src/IceBT/build.gradle"
-
-sourceCompatibility = iceSourceCompatibility
-targetCompatibility = iceTargetCompatibility
-
-sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java/src/IceBT/src/main/java"
- }
- }
-}
diff --git a/java/android/src/IceDiscovery/build.gradle b/java/android/src/IceDiscovery/build.gradle
deleted file mode 100644
index 76a374183e5..00000000000
--- a/java/android/src/IceDiscovery/build.gradle
+++ /dev/null
@@ -1,23 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 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: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-apply from: "$project.ext.topSrcDir/java/src/IceDiscovery/build.gradle"
-
-sourceCompatibility = iceSourceCompatibility
-targetCompatibility = iceTargetCompatibility
-
-sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java/src/IceDiscovery/src/main/java"
- }
- }
-}
diff --git a/java/android/src/IceSSL/build.gradle b/java/android/src/IceSSL/build.gradle
deleted file mode 100644
index 98e245d1c87..00000000000
--- a/java/android/src/IceSSL/build.gradle
+++ /dev/null
@@ -1,23 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 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: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-apply from: "$project.ext.topSrcDir/java/src/IceSSL/build.gradle"
-
-sourceCompatibility = iceSourceCompatibility
-targetCompatibility = iceTargetCompatibility
-
-sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java/src/IceSSL/src/main/java"
- }
- }
-}
diff --git a/java/android/test/build.gradle b/java/android/test/build.gradle
deleted file mode 100644
index 066aec819ec..00000000000
--- a/java/android/test/build.gradle
+++ /dev/null
@@ -1,69 +0,0 @@
- //**********************************************************************
-//
-// Copyright (c) 2003-2018 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/../gradle/ice.gradle"
-ext.testDir = "$rootProject.projectDir/../test/src/main/java/test"
-apply from: "slice.gradle"
-apply from: "$rootProject.projectDir/gradle/tests.gradle"
-
-sourceCompatibility = iceSourceCompatibility
-targetCompatibility = iceTargetCompatibility
-
-sourceSets {
- main {
- java {
- srcDir "$rootProject.projectDir/../test/src/main/java"
- include 'test/TestHelper.java'
- }
- }
-}
-
-idea.module {
- excludeDirs -= file(buildDir)
- buildDir.listFiles({d, f ->f != 'generated-src'} as FilenameFilter).each { excludeDirs += it }
-}
-
-dependencies {
- compile localDependency('ice')
-}
-
-jar {
- archiveName = "test.jar"
-}
-
-tests.each {
- def dirName = it
- def name = it.replace('/', '_')
-
- project(":test_${name}") {
- apply plugin: 'java'
- apply from: "$rootProject.projectDir/../gradle/ice.gradle"
-
- sourceCompatibility = iceSourceCompatibility
- targetCompatibility = iceTargetCompatibility
-
- sourceSets {
- main {
- java {
- srcDir "$rootProject.projectDir/../test/src/main/java"
- include "test/${dirName}/**"
- srcDir "$rootProject.projectDir/test/build/generated-src/"
- include "test/${dirName}/**"
- }
- }
- }
-
- dependencies {
- compile project(':test')
- compile localDependency('ice')
- compile localDependency('icessl')
- }
- }
-}
diff --git a/java/android/test/slice.gradle b/java/android/test/slice.gradle
deleted file mode 100644
index 1e200104c10..00000000000
--- a/java/android/test/slice.gradle
+++ /dev/null
@@ -1,69 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 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.
-//
-// **********************************************************************
-
-task testSliceTask {
- slice {
- java {
- set1 {
- files = fileTree(dir: testDir, includes:['Ice/acm/*.ice',
- 'Ice/adapterDeactivation/*.ice',
- 'Ice/ami/*.ice',
- 'Ice/admin/*.ice',
- 'Ice/background/*.ice',
- 'Ice/binding/*.ice',
- 'Ice/classLoader/*.ice',
- 'Ice/custom/*.ice',
- 'Ice/defaultServant/*.ice',
- 'Ice/defaultValue/*.ice',
- 'Ice/dispatcher/*.ice',
- 'Ice/enums/*.ice',
- 'Ice/exceptions/*.ice',
- 'Ice/facets/*.ice',
- 'Ice/hash/*.ice',
- 'Ice/hold/*.ice',
- 'Ice/info/*.ice',
- 'Ice/inheritance/*.ice',
- 'Ice/interceptor/*.ice',
- 'Ice/interrupt/*.ice',
- 'Ice/invoke/*.ice',
- 'Ice/location/*.ice',
- 'Ice/networkProxy/*.ice',
- 'Ice/objects/*.ice',
- 'Ice/operations/*.ice',
- 'Ice/optional/*.ice',
- 'Ice/proxy/*.ice',
- 'Ice/retry/*.ice',
- 'Ice/scope/*.ice',
- 'Ice/seqMapping/*.ice',
- 'Ice/serialize/*.ice',
- 'Ice/servantLocator/*.ice',
- 'Ice/slicing/exceptions/*.ice',
- 'Ice/slicing/objects/*.ice',
- 'Ice/stream/*.ice',
- 'Ice/threadPoolPriority/*.ice',
- 'Ice/timeout/*.ice',
- 'Ice/udp/*.ice'])
- }
- set2 {
- args = "--checksum test.Ice.checksum.Test.SliceChecksums"
- files = fileTree(dir: testDir, includes:['Ice/checksum/Test.ice',
- 'Ice/checksum/Types.ice'])
- }
- set3 {
- args = "--checksum test.Ice.checksum.server.Test.SliceChecksums"
- files = fileTree(dir: testDir, includes:['Ice/checksum/TestServer.ice',
- 'Ice/checksum/TypesServer.ice'])
- }
- set4 {
- include = ["${testDir}/Ice/packagemd"]
- files = fileTree(dir: testDir, includes:['Ice/packagemd/*.ice'])
- }
- }
- }
-}
diff --git a/java/settings.gradle b/java/settings.gradle
index cbe5d211f1f..15f061580ac 100644
--- a/java/settings.gradle
+++ b/java/settings.gradle
@@ -33,7 +33,6 @@ project(':IceGridGUI').projectDir = new File('src/IceGridGUI')
// Tests
include ':test'
+
include ':testPlugins'
project(':testPlugins').projectDir = new File('test/plugins')
-include ':testController'
-project(':testController').projectDir = new File('test/controller')
diff --git a/java/android/allTests.py b/java/test/android/allTests.py
index b5a6b3c4ec4..e3a2fc3d36f 100755..100644
--- a/java/android/allTests.py
+++ b/java/test/android/allTests.py
@@ -9,7 +9,7 @@
# **********************************************************************
import os, sys
-sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "scripts"))
+sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts"))
from Util import runTestsWithPath
diff --git a/java/test/android/controller/build.gradle b/java/test/android/controller/build.gradle
new file mode 100644
index 00000000000..26678ed7018
--- /dev/null
+++ b/java/test/android/controller/build.gradle
@@ -0,0 +1,104 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2018 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.
+//
+// **********************************************************************
+
+buildscript {
+ repositories {
+ jcenter()
+ google()
+ maven {
+ url "https://plugins.gradle.org/m2/"
+ }
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:3.1.4'
+ classpath "gradle.plugin.com.zeroc.gradle.ice-builder:slice:1.4.5"
+ }
+}
+
+apply plugin: 'com.android.application'
+apply plugin: "com.zeroc.gradle.ice-builder.slice"
+
+slice {
+ cppConfiguration = this.cppConfiguration
+ cppPlatform = this.cppPlatform
+ if(!System.env.ICE_BIN_DIST?.split(" ").find{ it == 'all' || it.contains('java')}) {
+ iceHome = this.hasProperty('iceHome') ? this.iceHome
+ : System.getenv("ICE_HOME") != null ? System.env.ICE_HOME : new File("$rootProject.projectDir/../../../..").getCanonicalPath()
+ }
+ java {
+ files = fileTree(dir: "$rootProject.projectDir/../../../../scripts/", includes: ['*.ice'])
+ }
+}
+
+repositories {
+ jcenter()
+ google()
+}
+
+android {
+ compileSdkVersion ice_compileSdkVersion.toInteger()
+
+ defaultConfig {
+ applicationId "com.zeroc.testcontroller"
+ minSdkVersion ice_minSdkVersion.toInteger()
+ targetSdkVersion ice_targetSdkVersion.toInteger()
+ multiDexEnabled true // Necessary otherwise we'd exceed the 64K DEX limit.
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+ }
+
+ buildTypes {
+ debug {
+ //
+ // Set minifyEnabled to false because the test app loads classes dynamically.
+ //
+ minifyEnabled false
+ }
+
+ release {
+ //
+ // Set minifyEnabled to false because the test app loads classes dynamically.
+ //
+ minifyEnabled false
+ }
+ }
+}
+
+task copyBksTask(type: Copy) {
+ from "${rootProject.projectDir}/../../../../certs/client.bks"
+ from "${rootProject.projectDir}/../../../../certs/server.bks"
+ into "src/main/res/raw"
+}
+preBuild.dependsOn(copyBksTask)
+
+clean {
+ delete("src/main/res/raw/client.bks")
+ delete("src/main/res/raw/server.bks")
+}
+
+ext.localDependency = { artifact ->
+ if(project.slice.srcDist || System.env.ICE_BIN_DIST == "cpp") {
+ return "com.zeroc:${artifact}:${iceVersion}"
+ }
+ else {
+ return files("${rootProject.projectDir}/../../../lib/${artifact}-${iceVersion}.jar")
+ }
+}
+dependencies {
+ implementation localDependency("glacier2")
+ implementation localDependency("ice")
+ implementation localDependency("icessl")
+ implementation localDependency("icediscovery")
+ implementation localDependency("icebt")
+
+ implementation files("${rootProject.projectDir}/../../../lib/test.jar")
+ runtimeOnly "org.apache.commons:commons-compress:1.14"
+}
diff --git a/java/android/gradle.properties b/java/test/android/controller/gradle.properties
index c16ba7a92f3..6de9d9d6288 100644
--- a/java/android/gradle.properties
+++ b/java/test/android/controller/gradle.properties
@@ -13,7 +13,7 @@
iceVersion = 3.7.1
// The Android versions used for the Ice build.
-ice_compileSdkVersion = 24
+ice_compileSdkVersion = 25
ice_minSdkVersion = 24
ice_targetSdkVersion = 24
diff --git a/java/android/gradle/wrapper/gradle-wrapper.jar b/java/test/android/controller/gradle/wrapper/gradle-wrapper.jar
index 01b8bf6b1f9..7a3265ee94c 100644
--- a/java/android/gradle/wrapper/gradle-wrapper.jar
+++ b/java/test/android/controller/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/java/android/gradle/wrapper/gradle-wrapper.properties b/java/test/android/controller/gradle/wrapper/gradle-wrapper.properties
index 73bb13d5561..08a85d50451 100644
--- a/java/android/gradle/wrapper/gradle-wrapper.properties
+++ b/java/test/android/controller/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Mon Sep 10 16:52:39 CEST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
diff --git a/java/android/gradlew b/java/test/android/controller/gradlew
index cccdd3d517f..cccdd3d517f 100755..100644
--- a/java/android/gradlew
+++ b/java/test/android/controller/gradlew
diff --git a/java/android/gradlew.bat b/java/test/android/controller/gradlew.bat
index f9553162f12..f9553162f12 100644
--- a/java/android/gradlew.bat
+++ b/java/test/android/controller/gradlew.bat
diff --git a/java/android/controller/src/main/AndroidManifest.xml b/java/test/android/controller/src/main/AndroidManifest.xml
index 20a819e4cad..20a819e4cad 100644
--- a/java/android/controller/src/main/AndroidManifest.xml
+++ b/java/test/android/controller/src/main/AndroidManifest.xml
diff --git a/java/android/controller/src/main/assets/.gitignore b/java/test/android/controller/src/main/assets/.gitignore
index 2cbf86bc394..2cbf86bc394 100644
--- a/java/android/controller/src/main/assets/.gitignore
+++ b/java/test/android/controller/src/main/assets/.gitignore
diff --git a/java/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java b/java/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java
index 87919488eaf..87919488eaf 100644
--- a/java/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java
+++ b/java/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java
diff --git a/java/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java b/java/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java
index d3582c03d7b..d3582c03d7b 100644
--- a/java/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java
+++ b/java/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java
diff --git a/java/android/controller/src/main/res/layout/main.xml b/java/test/android/controller/src/main/res/layout/main.xml
index df4c8db98c7..df4c8db98c7 100644
--- a/java/android/controller/src/main/res/layout/main.xml
+++ b/java/test/android/controller/src/main/res/layout/main.xml
diff --git a/java/test/android/controller/src/main/res/raw/client.bks b/java/test/android/controller/src/main/res/raw/client.bks
new file mode 100644
index 00000000000..7a5b88d45c1
--- /dev/null
+++ b/java/test/android/controller/src/main/res/raw/client.bks
Binary files differ
diff --git a/java/android/controller/src/main/res/raw/icon.png b/java/test/android/controller/src/main/res/raw/icon.png
index 75024841d32..75024841d32 100644
--- a/java/android/controller/src/main/res/raw/icon.png
+++ b/java/test/android/controller/src/main/res/raw/icon.png
Binary files differ
diff --git a/java/test/android/controller/src/main/res/raw/server.bks b/java/test/android/controller/src/main/res/raw/server.bks
new file mode 100644
index 00000000000..2da60311b53
--- /dev/null
+++ b/java/test/android/controller/src/main/res/raw/server.bks
Binary files differ
diff --git a/java/android/controller/src/main/res/values/strings.xml b/java/test/android/controller/src/main/res/values/strings.xml
index f96e345d87f..f96e345d87f 100644
--- a/java/android/controller/src/main/res/values/strings.xml
+++ b/java/test/android/controller/src/main/res/values/strings.xml