=UTF-8
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/.settings/org.eclipse.core.runtime.prefs b/ui/org.eclipse.pde.ui.tests.smartimport/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index 5a0ad22d2a..0000000000
--- a/ui/org.eclipse.pde.ui.tests.smartimport/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/.settings/org.eclipse.jdt.core.prefs b/ui/org.eclipse.pde.ui.tests.smartimport/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index a57c61d2b6..0000000000
--- a/ui/org.eclipse.pde.ui.tests.smartimport/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,315 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
-org.eclipse.jdt.core.compiler.compliance=17
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
-org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=17
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
-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_bitwise_operator=16
-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_logical_operator=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_multiplicative_operator=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_string_concatenation=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=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_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=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-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=do not 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=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not 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_additive_operator=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_bitwise_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_logical_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=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_relational_operator=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_shift_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=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_bitwise_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_logical_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=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=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=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=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=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=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_relational_operator=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_shift_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=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=tab
-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=false
-org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/.settings/org.eclipse.jdt.ui.prefs b/ui/org.eclipse.pde.ui.tests.smartimport/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index d7de1c3d8a..0000000000
--- a/ui/org.eclipse.pde.ui.tests.smartimport/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,62 +0,0 @@
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=org.eclipse.jdt.ui.default.eclipse_profile
-formatter_settings_version=12
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=false
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=true
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=false
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-sp_cleanup.use_type_arguments=false
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/META-INF/MANIFEST.MF b/ui/org.eclipse.pde.ui.tests.smartimport/META-INF/MANIFEST.MF
deleted file mode 100644
index 9639b9e775..0000000000
--- a/ui/org.eclipse.pde.ui.tests.smartimport/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,21 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Smart Import test for PDE
-Bundle-SymbolicName: org.eclipse.pde.ui.tests.smartimport;singleton:=true
-Bundle-Version: 1.2.0.qualifier
-Bundle-Vendor: Eclipse.org
-Export-Package: org.eclipse.ui.tests.smartimport
-Require-Bundle: org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.jface,
- org.eclipse.swt,
- org.eclipse.ui.ide,
- org.eclipse.jdt.ui,
- org.eclipse.pde.ui
-Bundle-ActivationPolicy: lazy
-Eclipse-BundleShape: dir
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Automatic-Module-Name: org.eclipse.pde.ui.tests.smartimport
-Import-Package: org.junit,
- org.junit.runner,
- org.junit.runners
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/META-INF/p2.inf b/ui/org.eclipse.pde.ui.tests.smartimport/META-INF/p2.inf
deleted file mode 100644
index 1aef271eac..0000000000
--- a/ui/org.eclipse.pde.ui.tests.smartimport/META-INF/p2.inf
+++ /dev/null
@@ -1,3 +0,0 @@
-requires.0.namespace = org.eclipse.equinox.p2.iu
-requires.0.name = org.eclipse.jdt.launching.macosx
-requires.0.filter = (osgi.os=macosx)
\ No newline at end of file
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/about.html b/ui/org.eclipse.pde.ui.tests.smartimport/about.html
deleted file mode 100644
index 6f6b96c4c8..0000000000
--- a/ui/org.eclipse.pde.ui.tests.smartimport/about.html
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-About
-
-
-
-About This Content
-
-February 24, 2005
-License
-
-The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content.
-
-If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party ("Redistributor") and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.
-
-
-
\ No newline at end of file
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/build.properties b/ui/org.eclipse.pde.ui.tests.smartimport/build.properties
deleted file mode 100644
index 38c2fd6175..0000000000
--- a/ui/org.eclipse.pde.ui.tests.smartimport/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = about.html,\
- .,\
- test.xml,\
- META-INF/
-src.includes = about.html
-source.. = src/
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/pom.xml b/ui/org.eclipse.pde.ui.tests.smartimport/pom.xml
deleted file mode 100644
index 2601569976..0000000000
--- a/ui/org.eclipse.pde.ui.tests.smartimport/pom.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
- 4.0.0
-
- org.eclipse.pde
- eclipse.pde
- 4.30.0-SNAPSHOT
- ../../
-
- org.eclipse.pde.ui.tests.smartimport
- 1.2.0-SNAPSHOT
- eclipse-test-plugin
-
-
- -warn:-discouraged
- -Dignored.errors.regexp=${ignored.errors.regexp}
- -Xmx512m
- 1200
-
-
-
-
-
-
- org.eclipse.tycho
- tycho-surefire-plugin
-
- true
- false
- org.eclipse.ui.tests.smartimport
- org.eclipse.ui.tests.smartimport.AllTests
-
- ${tycho.test.jvmArgs} ${platformSystemProperties}
-
- **/*Test.class
-
-
-
-
-
-
- resources
-
- **
-
- true
-
-
-
-
-
-
- osx
-
-
- mac
-
-
-
-
- -XstartOnFirstThread
-
-
-
-
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/AllTests.java b/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/AllTests.java
deleted file mode 100644
index 71aa06b763..0000000000
--- a/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/AllTests.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Red Hat, Inc. and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ui.tests.smartimport;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-@RunWith(Suite.class)
-@SuiteClasses({
- PlainJavaProjectTest.class,
- PlainEclipseProjectTest.class,
- EclipseJavaProjectTest.class,
- FeatureProjectTest.class
- })
-public class AllTests {
-
-}
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/EclipseJavaProjectTest.java b/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/EclipseJavaProjectTest.java
deleted file mode 100644
index 4269ae595d..0000000000
--- a/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/EclipseJavaProjectTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Red Hat, Inc. and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ui.tests.smartimport;
-
-import static org.junit.Assert.assertEquals;
-
-import java.io.File;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-
-public class EclipseJavaProjectTest extends ProjectTestTemplate {
-
- private static final String JAVA_ECLIPSE_PROJECT = "JavaEclipseProject";
-
- @Override
- File getProjectPath() {
- return new File("target/resources/JavaEclipseProject");
- }
-
- @Override
- void checkImportedProject() throws CoreException {
- IProject project = getProject();
- String[] natureIds = project.getDescription().getNatureIds();
- assertEquals("Project should have exactly 1 nature", 1, natureIds.length);
- assertEquals("Project should have java nature", "org.eclipse.jdt.core.javanature", natureIds[0]);
- }
-
- @Override
- IProject getProject() {
- return ResourcesPlugin.getWorkspace().getRoot().getProject(JAVA_ECLIPSE_PROJECT);
- }
-}
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/FeatureProjectTest.java b/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/FeatureProjectTest.java
deleted file mode 100644
index ada330d8a4..0000000000
--- a/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/FeatureProjectTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Red Hat, Inc. and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ui.tests.smartimport;
-
-import static org.junit.Assert.assertEquals;
-
-import java.io.File;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-
-public class FeatureProjectTest extends ProjectTestTemplate {
-
- private static final String PROJECT_NAME = "FeatureProject";
-
- @Override
- File getProjectPath() {
- return new File("target/resources/FeatureProject");
- }
-
- @Override
- void checkImportedProject() throws CoreException {
- IProject project = getProject();
- String[] natureIds = project.getDescription().getNatureIds();
- assertEquals("Project should have exactly 1 nature", 1, natureIds.length);
- assertEquals("Project should have feature nature", "org.eclipse.pde.FeatureNature", natureIds[0]);
- }
-
- @Override
- IProject getProject() {
- return ResourcesPlugin.getWorkspace().getRoot().getProject(PROJECT_NAME);
- }
-
-}
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/PlainEclipseProjectTest.java b/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/PlainEclipseProjectTest.java
deleted file mode 100644
index 704a1bbbb6..0000000000
--- a/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/PlainEclipseProjectTest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Red Hat, Inc. and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ui.tests.smartimport;
-
-import static org.junit.Assert.assertEquals;
-
-import java.io.File;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-
-public class PlainEclipseProjectTest extends ProjectTestTemplate {
-
- private static final String PLAIN_ECLIPSE_PROJECT = "PlainEclipseProject";
-
- @Override
- File getProjectPath() {
- return new File("target/resources/PlainEclipseProject");
- }
-
- @Override
- IProject getProject() {
- return ResourcesPlugin.getWorkspace().getRoot().getProject(PLAIN_ECLIPSE_PROJECT);
- }
-
- @Override
- void checkImportedProject() throws CoreException {
- IProject project = getProject();
- String[] natureIds = project.getDescription().getNatureIds();
- assertEquals("This project should not have any nature", 0, natureIds.length);
- }
-}
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/PlainJavaProjectTest.java b/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/PlainJavaProjectTest.java
deleted file mode 100644
index 626d813317..0000000000
--- a/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/PlainJavaProjectTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Red Hat, Inc. and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ui.tests.smartimport;
-
-import static org.junit.Assert.assertEquals;
-
-import java.io.File;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-
-public class PlainJavaProjectTest extends ProjectTestTemplate {
-
- private static final String PLAIN_JAVA_PROJECT = "PlainJavaProject";
-
- @Override
- public File getProjectPath() {
- return new File("target/resources/PlainJavaProject");
- }
-
-
- @Override
- void checkImportedProject() throws CoreException {
- IProject project = getProject();
- String[] natureIds = project.getDescription().getNatureIds();
- assertEquals("Project should have exactly 1 nature", 1, natureIds.length);
- assertEquals("Project should have java nature", "org.eclipse.jdt.core.javanature", natureIds[0]);
- }
-
- @Override
- IProject getProject() {
- return ResourcesPlugin.getWorkspace().getRoot().getProject(PLAIN_JAVA_PROJECT);
- }
-}
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/ProjectTestTemplate.java b/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/ProjectTestTemplate.java
deleted file mode 100644
index 0c24ebe383..0000000000
--- a/ui/org.eclipse.pde.ui.tests.smartimport/src/org/eclipse/ui/tests/smartimport/ProjectTestTemplate.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 Red Hat, Inc. and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ui.tests.smartimport;
-
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.internal.wizards.datatransfer.SmartImportJob;
-import org.junit.After;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-public abstract class ProjectTestTemplate {
-
- public ProjectTestTemplate() {
- }
-
- @After
- public void cleanup() throws CoreException, FileNotFoundException, IOException {
- for (IProject p : ResourcesPlugin.getWorkspace().getRoot().getProjects()) {
- p.delete(true, new NullProgressMonitor());
- }
- // empty error log
- new FileWriter(Platform.getLogFileLocation().toFile(), false).close();
- }
-
- @BeforeClass
- public static void setupClass() {
- // empty error log
- try {
- new FileWriter(Platform.getLogFileLocation().toFile(), false).close();
- } catch (IOException e) {
- // ignore
- }
- }
-
- @Test
- @SuppressWarnings("restriction")
- public void testImport() throws CoreException, InterruptedException, IOException {
- SmartImportJob job = new SmartImportJob(getProjectPath(), null, true, false);
- job.run(new NullProgressMonitor());
- job.join();
-
- // check imported project
- checkErrorLog();
- checkProblemsView();
-
- checkImportedProject();
- }
-
- private void checkErrorLog() throws IOException {
- String log = Files.readString(Platform.getLogFileLocation().toFile().toPath());
- assertTrue(log.isEmpty());
- }
-
- private void checkProblemsView() throws CoreException {
- IProject project = getProject();
- IMarker[] problems = project.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE);
- List errorMarkers = Arrays.asList(problems).stream().filter(m -> {
- try {
- return m.getAttribute(IMarker.SEVERITY).equals(IMarker.SEVERITY_ERROR);
- } catch (CoreException e) {
- return false;
- }
- }).toList();
- assertTrue(
- "There should be no errors in imported project: " + System.lineSeparator() + errorMarkers.stream()
- .map(String::valueOf).collect(Collectors.joining(System.lineSeparator())),
- errorMarkers.isEmpty());
-
- }
-
- abstract File getProjectPath();
-
- abstract IProject getProject();
-
- /**
- * Checks whether the project was imported correctly.
- *
- */
- abstract void checkImportedProject() throws CoreException;
-
-}
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/test.xml b/ui/org.eclipse.pde.ui.tests.smartimport/test.xml
deleted file mode 100644
index 47023ab4ef..0000000000
--- a/ui/org.eclipse.pde.ui.tests.smartimport/test.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/AllPDETests.java b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/AllPDETests.java
index 1efac64e24..9d29fa50ab 100644
--- a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/AllPDETests.java
+++ b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/AllPDETests.java
@@ -35,6 +35,7 @@
import org.eclipse.pde.ui.tests.target.AllTargetTests;
import org.eclipse.pde.ui.tests.views.log.AllLogViewTests;
import org.eclipse.pde.ui.tests.wizards.AllNewProjectTests;
+import org.eclipse.ui.tests.smartimport.ProjectSmartImportTest;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@@ -62,7 +63,8 @@
DynamicPluginProjectReferencesTest.class, //
ClasspathResolutionTest.class, //
BundleErrorReporterTest.class, //
- AllPDECoreTests.class //
+ AllPDECoreTests.class, //
+ ProjectSmartImportTest.class, //
})
public class AllPDETests {
diff --git a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/PDETestCase.java b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/PDETestCase.java
index b0319f44b5..45d77f52f4 100644
--- a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/PDETestCase.java
+++ b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/PDETestCase.java
@@ -16,9 +16,16 @@
import static org.junit.Assert.fail;
import static org.junit.Assume.assumeTrue;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.StackWalker.Option;
+import java.net.URI;
import java.net.URISyntaxException;
+import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
+import java.nio.file.StandardCopyOption;
+import java.util.Collections;
import java.util.List;
import org.eclipse.core.resources.IProject;
@@ -29,6 +36,7 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.URIUtil;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.dialogs.MessageDialog;
@@ -46,6 +54,8 @@
import org.junit.Before;
import org.junit.Rule;
import org.junit.rules.TestName;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.FrameworkUtil;
/**
* Provides a default {@link #tearDown()} implementation to delete all
@@ -54,6 +64,8 @@
*/
public abstract class PDETestCase {
+ private static final StackWalker STACK_WALKER = StackWalker.getInstance(Option.RETAIN_CLASS_REFERENCE);
+
private static boolean welcomeClosed;
@Rule
public TestName name = new TestName();
@@ -149,4 +161,37 @@ public static void assumeRunningInStandaloneEclipseSDK() {
throw new IllegalStateException(e);
}
}
+
+ /**
+ * Copies the content of the specified directory from the callers bundle to
+ * the specified specified target directory and restores the relative
+ * structure within the given directory.
+ *
+ * This method works for bundles in directory and jar shape and is therefore
+ * suitable for tests that run in Eclipse I-builds too (where the
+ * Test-Plugins are executed as jars).
+ *
+ *
+ * @param rootPath
+ * the path of the directory to copy from this bundle
+ * @param targetRoot
+ * the target directory
+ */
+ public static void copyFromThisBundleInto(String rootPath, Path targetRoot)
+ throws IOException, URISyntaxException {
+ Class> caller = STACK_WALKER.getCallerClass();
+ Bundle bundle = FrameworkUtil.getBundle(caller);
+ URI rootEntry = bundle.getEntry(rootPath).toURI();
+ List entries = Collections.list(bundle.findEntries(rootPath, null, true));
+ for (URL entry : entries) {
+ String relativePath = URIUtil.makeRelative(entry.toURI(), rootEntry).toString();
+ if (!relativePath.endsWith("/")) {
+ Path targetPath = targetRoot.resolve(relativePath);
+ Files.createDirectories(targetPath.getParent());
+ try (InputStream is = entry.openStream()) {
+ Files.copy(is, targetPath, StandardCopyOption.REPLACE_EXISTING);
+ }
+ }
+ }
+ }
}
diff --git a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/util/ProjectUtils.java b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/util/ProjectUtils.java
index dd06a8b1c2..6c55b160ab 100644
--- a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/util/ProjectUtils.java
+++ b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/util/ProjectUtils.java
@@ -234,9 +234,9 @@ public static IProject createPluginProject(String projectName, String bundleSymb
*/
public static final TestRule DELETE_ALL_WORKSPACE_PROJECTS_BEFORE_AND_AFTER = TestUtils.getThrowingTestRule( //
() -> { // Clean-up garbage of other test-classes
- ProjectUtils.deleteWorkspaceProjects(Set.of());
+ deleteAllWorkspaceProjects();
return null;
- }, o -> deleteWorkspaceProjects(Set.of()));
+ }, o -> deleteAllWorkspaceProjects());
/**
* An (intended) {@link org.junit.Rule} that deletes the projects from the
@@ -258,6 +258,10 @@ public static IProject createPluginProject(String projectName, String bundleSymb
() -> Set.of(ResourcesPlugin.getWorkspace().getRoot().getProjects()), //
projectsBefore -> deleteWorkspaceProjects(projectsBefore));
+ public static void deleteAllWorkspaceProjects() throws CoreException {
+ deleteWorkspaceProjects(Set.of());
+ }
+
private static void deleteWorkspaceProjects(Set retainedProjects) throws CoreException {
IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
for (IProject project : projects) {
diff --git a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/ui/tests/smartimport/ProjectSmartImportTest.java b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/ui/tests/smartimport/ProjectSmartImportTest.java
new file mode 100644
index 0000000000..fa49fc3127
--- /dev/null
+++ b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/ui/tests/smartimport/ProjectSmartImportTest.java
@@ -0,0 +1,124 @@
+/*******************************************************************************
+ * Copyright (c) 2018, 2023 Red Hat, Inc. and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.ui.tests.smartimport;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.assertj.core.api.Condition;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.pde.ui.tests.PDETestCase;
+import org.eclipse.pde.ui.tests.util.ProjectUtils;
+import org.junit.After;
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameter;
+import org.junit.runners.Parameterized.Parameters;
+
+@RunWith(Parameterized.class)
+public class ProjectSmartImportTest {
+
+ @Parameters(name = "{0}")
+ public static Object[][] projects() {
+ return new Object[][] { //
+ { "JavaEclipseProject", List.of("org.eclipse.jdt.core.javanature") }, //
+ { "FeatureProject", List.of("org.eclipse.pde.FeatureNature") }, //
+ { "PlainEclipseProject", List.of() }, //
+ { "PlainJavaProject", List.of("org.eclipse.jdt.core.javanature") }, //
+ };
+ }
+
+ @ClassRule
+ public static TemporaryFolder workingDirectory = new TemporaryFolder();
+
+ @Parameter(0)
+ public String projectName;
+ @Parameter(1)
+ public List expectedNatures;
+
+ @BeforeClass
+ public static void setupClass() throws Exception {
+ // Copy imported projects to temp-directory to not pollute this project
+ // and have it unzipped for I-build tests
+ PDETestCase.copyFromThisBundleInto("tests/smartImport", workingDirectory.getRoot().toPath());
+ Files.writeString(getErrorLogFile(), ""); // empty error log
+ ProjectUtils.deleteAllWorkspaceProjects();
+ }
+
+ @After
+ public void cleanup() throws IOException, CoreException {
+ Files.writeString(getErrorLogFile(), ""); // empty error log
+ ProjectUtils.deleteAllWorkspaceProjects();
+ }
+
+ private static Path getErrorLogFile() {
+ return Platform.getLogFileLocation().toFile().toPath();
+ }
+
+ @Test
+ public void testImport() throws CoreException, InterruptedException {
+ File projectPath = new File(workingDirectory.getRoot(), projectName);
+
+ var job = new org.eclipse.ui.internal.wizards.datatransfer.SmartImportJob(projectPath, null, true, false);
+ job.run(new NullProgressMonitor());
+ job.join();
+
+ // check imported project
+ assertThat(getErrorLogFile()).isEmptyFile();
+ IWorkspaceRoot workspace = ResourcesPlugin.getWorkspace().getRoot();
+ assertThat(workspace.getProjects()).hasSize(1).allMatch(p -> p.getName().equals(projectName));
+ IProject project = workspace.getProject(projectName);
+ checkProblemsView(project);
+
+ assertThat(project).satisfies(new Condition<>(IProject::isOpen, "is open"));
+
+ assertThat(project.getDescription().getNatureIds()).containsExactlyElementsOf(expectedNatures);
+ }
+
+ private void checkProblemsView(IProject project) throws CoreException {
+ IMarker[] problems = project.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE);
+ List errorMarkers = Arrays.asList(problems).stream().filter(m -> {
+ try {
+ return m.getAttribute(IMarker.SEVERITY).equals(IMarker.SEVERITY_ERROR);
+ } catch (CoreException e) {
+ return false;
+ }
+ }).toList();
+ assertTrue(
+ "There should be no errors in imported project: " + System.lineSeparator() + errorMarkers.stream()
+ .map(String::valueOf).collect(Collectors.joining(System.lineSeparator())),
+ errorMarkers.isEmpty());
+
+ }
+
+}
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/resources/FeatureProject/build.properties b/ui/org.eclipse.pde.ui.tests/tests/smartImport/FeatureProject/build.properties
similarity index 100%
rename from ui/org.eclipse.pde.ui.tests.smartimport/resources/FeatureProject/build.properties
rename to ui/org.eclipse.pde.ui.tests/tests/smartImport/FeatureProject/build.properties
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/resources/FeatureProject/feature.xml b/ui/org.eclipse.pde.ui.tests/tests/smartImport/FeatureProject/feature.xml
similarity index 100%
rename from ui/org.eclipse.pde.ui.tests.smartimport/resources/FeatureProject/feature.xml
rename to ui/org.eclipse.pde.ui.tests/tests/smartImport/FeatureProject/feature.xml
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/resources/JavaEclipseProject/.classpath b/ui/org.eclipse.pde.ui.tests/tests/smartImport/JavaEclipseProject/.classpath
similarity index 100%
rename from ui/org.eclipse.pde.ui.tests.smartimport/resources/JavaEclipseProject/.classpath
rename to ui/org.eclipse.pde.ui.tests/tests/smartImport/JavaEclipseProject/.classpath
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/resources/JavaEclipseProject/.gitignore b/ui/org.eclipse.pde.ui.tests/tests/smartImport/JavaEclipseProject/.gitignore
similarity index 100%
rename from ui/org.eclipse.pde.ui.tests.smartimport/resources/JavaEclipseProject/.gitignore
rename to ui/org.eclipse.pde.ui.tests/tests/smartImport/JavaEclipseProject/.gitignore
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/resources/JavaEclipseProject/.project b/ui/org.eclipse.pde.ui.tests/tests/smartImport/JavaEclipseProject/.project
similarity index 100%
rename from ui/org.eclipse.pde.ui.tests.smartimport/resources/JavaEclipseProject/.project
rename to ui/org.eclipse.pde.ui.tests/tests/smartImport/JavaEclipseProject/.project
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/resources/JavaEclipseProject/src/org/eclipse/pde/test/MyClass.java b/ui/org.eclipse.pde.ui.tests/tests/smartImport/JavaEclipseProject/src/org/eclipse/pde/test/MyClass.java
similarity index 100%
rename from ui/org.eclipse.pde.ui.tests.smartimport/resources/JavaEclipseProject/src/org/eclipse/pde/test/MyClass.java
rename to ui/org.eclipse.pde.ui.tests/tests/smartImport/JavaEclipseProject/src/org/eclipse/pde/test/MyClass.java
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/resources/PlainEclipseProject/.project b/ui/org.eclipse.pde.ui.tests/tests/smartImport/PlainEclipseProject/.project
similarity index 100%
rename from ui/org.eclipse.pde.ui.tests.smartimport/resources/PlainEclipseProject/.project
rename to ui/org.eclipse.pde.ui.tests/tests/smartImport/PlainEclipseProject/.project
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/resources/PlainEclipseProject/FileInEclipseProject.txt b/ui/org.eclipse.pde.ui.tests/tests/smartImport/PlainEclipseProject/FileInEclipseProject.txt
similarity index 100%
rename from ui/org.eclipse.pde.ui.tests.smartimport/resources/PlainEclipseProject/FileInEclipseProject.txt
rename to ui/org.eclipse.pde.ui.tests/tests/smartImport/PlainEclipseProject/FileInEclipseProject.txt
diff --git a/ui/org.eclipse.pde.ui.tests.smartimport/resources/PlainJavaProject/src/org/eclipse/pde/test/MyClass.java b/ui/org.eclipse.pde.ui.tests/tests/smartImport/PlainJavaProject/src/org/eclipse/pde/test/MyClass.java
similarity index 100%
rename from ui/org.eclipse.pde.ui.tests.smartimport/resources/PlainJavaProject/src/org/eclipse/pde/test/MyClass.java
rename to ui/org.eclipse.pde.ui.tests/tests/smartImport/PlainJavaProject/src/org/eclipse/pde/test/MyClass.java
diff --git a/ui/pom.xml b/ui/pom.xml
index f1e59ea166..943c2dec2c 100644
--- a/ui/pom.xml
+++ b/ui/pom.xml
@@ -29,7 +29,6 @@
org.eclipse.pde.ui
org.eclipse.pde.ui.templates
org.eclipse.pde.ui.tests
- org.eclipse.pde.ui.tests.smartimport
org.eclipse.pde.spy.core
org.eclipse.pde.spy.bundle
org.eclipse.pde.spy.event