diff options
author | slewis | 2013-01-18 06:27:23 +0000 |
---|---|---|
committer | slewis | 2013-01-18 06:27:23 +0000 |
commit | cb4d73609ca031c5649f855b57dd03ed7cfc1b9d (patch) | |
tree | fd978c47712e959929584ace3e62984713bd213d /providers | |
parent | 15d0cf001a6ca546eb08955b67a3fe7b9b51494e (diff) | |
parent | 6e0debee6465770c617adc3ca4c9c9e04e7c49b5 (diff) | |
download | org.eclipse.ecf-cb4d73609ca031c5649f855b57dd03ed7cfc1b9d.tar.gz org.eclipse.ecf-cb4d73609ca031c5649f855b57dd03ed7cfc1b9d.tar.xz org.eclipse.ecf-cb4d73609ca031c5649f855b57dd03ed7cfc1b9d.zip |
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'providers')
66 files changed, 7709 insertions, 7709 deletions
diff --git a/providers/bundles/org.eclipse.ecf.provider.datashare/.settings/org.eclipse.jdt.core.prefs b/providers/bundles/org.eclipse.ecf.provider.datashare/.settings/org.eclipse.jdt.core.prefs index 9e50486b3..04d69e710 100644 --- a/providers/bundles/org.eclipse.ecf.provider.datashare/.settings/org.eclipse.jdt.core.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.datashare/.settings/org.eclipse.jdt.core.prefs @@ -1,354 +1,354 @@ -#Mon May 09 12:40:02 PDT 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-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.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-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=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-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=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-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=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=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.syntheticAccessEmulation=warning
-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.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-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=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-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_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=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_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_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.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_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=false
-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=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-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.format_guardian_clause_on_one_line=false
-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=4
-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_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=do not 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_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=do not 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_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_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=do not 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_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=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=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_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_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_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_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.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=800
-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=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+#Mon May 09 12:40:02 PDT 2011 +eclipse.preferences.version=1 +org.eclipse.jdt.core.builder.cleanOutputFolder=clean +org.eclipse.jdt.core.builder.duplicateResourceTask=warning +org.eclipse.jdt.core.builder.invalidClasspath=abort +org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore +org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch +org.eclipse.jdt.core.circularClasspath=error +org.eclipse.jdt.core.classpath.exclusionPatterns=enabled +org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.4 +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.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000 +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=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=error +org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore +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=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +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=warning +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=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.syntheticAccessEmulation=warning +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.undocumentedEmptyBlock=warning +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled +org.eclipse.jdt.core.compiler.problem.unusedImport=error +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=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.3 +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_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=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_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_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.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_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=false +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=false +org.eclipse.jdt.core.formatter.comment.format_line_comments=false +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false +org.eclipse.jdt.core.formatter.comment.indent_root_tags=false +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +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.format_guardian_clause_on_one_line=false +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=4 +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_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=do not 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_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=do not 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_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_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=do not 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_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=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=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_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_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_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_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.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=800 +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=false +org.eclipse.jdt.core.formatter.tabulation.char=tab +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.incompatibleJDKLevel=ignore +org.eclipse.jdt.core.incompleteClasspath=error diff --git a/providers/bundles/org.eclipse.ecf.provider.dnssd/plugin.properties b/providers/bundles/org.eclipse.ecf.provider.dnssd/plugin.properties index 045d27cdf..7799cfdf0 100644 --- a/providers/bundles/org.eclipse.ecf.provider.dnssd/plugin.properties +++ b/providers/bundles/org.eclipse.ecf.provider.dnssd/plugin.properties @@ -1,10 +1,10 @@ -############################################################################
-# Copyright (c) 2011 Composent Inc., IBM Corp. 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
-#
-############################################################################
-pluginName=ECF Discovery DNSSD Provider
-pluginProvider=Eclipse.org - ECF
+############################################################################ +# Copyright (c) 2011 Composent Inc., IBM Corp. 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 +# +############################################################################ +pluginName=ECF Discovery DNSSD Provider +pluginProvider=Eclipse.org - ECF diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient.ssl/.settings/org.eclipse.pde.api.tools.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient.ssl/.settings/org.eclipse.pde.api.tools.prefs index ab935311a..9917f9f36 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient.ssl/.settings/org.eclipse.pde.api.tools.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient.ssl/.settings/org.eclipse.pde.api.tools.prefs @@ -1,97 +1,97 @@ -ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-MISSING_EE_DESCRIPTIONS=Ignore
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error +ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error +API_USE_SCAN_FIELD_SEVERITY=Error +API_USE_SCAN_METHOD_SEVERITY=Error +API_USE_SCAN_TYPE_SEVERITY=Error +CLASS_ELEMENT_TYPE_ADDED_METHOD=Error +CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error +CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error +CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error +CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error +ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error +ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error +ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +FIELD_ELEMENT_TYPE_ADDED_VALUE=Error +FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error +FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error +FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error +FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error +ILLEGAL_EXTEND=Warning +ILLEGAL_IMPLEMENT=Warning +ILLEGAL_INSTANTIATE=Warning +ILLEGAL_OVERRIDE=Warning +ILLEGAL_REFERENCE=Warning +INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error +INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error +INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error +INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +INVALID_JAVADOC_TAG=Ignore +INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error +LEAK_EXTEND=Warning +LEAK_FIELD_DECL=Warning +LEAK_IMPLEMENT=Warning +LEAK_METHOD_PARAM=Warning +LEAK_METHOD_RETURN_TYPE=Warning +METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error +METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +MISSING_EE_DESCRIPTIONS=Ignore +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error +UNUSED_PROBLEM_FILTERS=Warning +automatically_removed_unused_problem_filters=false +eclipse.preferences.version=1 +incompatible_api_component_version=Error +incompatible_api_component_version_include_major_without_breaking_change=Disabled +incompatible_api_component_version_include_minor_without_api_change=Disabled +invalid_since_tag_version=Error +malformed_since_tag=Error +missing_since_tag=Error +report_api_breakage_when_major_version_incremented=Disabled +report_resolution_errors_api_component=Warning diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.classpath b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.classpath index 731ea5fad..2fbb7a23e 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.classpath +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.classpath @@ -1,7 +1,7 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.settings/org.eclipse.pde.api.tools.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.settings/org.eclipse.pde.api.tools.prefs index 02e96548d..dbfc74a05 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.settings/org.eclipse.pde.api.tools.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/.settings/org.eclipse.pde.api.tools.prefs @@ -1,97 +1,97 @@ -ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Ignore
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-MISSING_EE_DESCRIPTIONS=Ignore
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error +ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error +API_USE_SCAN_FIELD_SEVERITY=Error +API_USE_SCAN_METHOD_SEVERITY=Error +API_USE_SCAN_TYPE_SEVERITY=Error +CLASS_ELEMENT_TYPE_ADDED_METHOD=Error +CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error +CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error +CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error +CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error +ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error +ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error +ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +FIELD_ELEMENT_TYPE_ADDED_VALUE=Error +FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error +FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error +FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error +FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error +ILLEGAL_EXTEND=Warning +ILLEGAL_IMPLEMENT=Warning +ILLEGAL_INSTANTIATE=Warning +ILLEGAL_OVERRIDE=Warning +ILLEGAL_REFERENCE=Warning +INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error +INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error +INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error +INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +INVALID_JAVADOC_TAG=Ignore +INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error +LEAK_EXTEND=Warning +LEAK_FIELD_DECL=Warning +LEAK_IMPLEMENT=Ignore +LEAK_METHOD_PARAM=Warning +LEAK_METHOD_RETURN_TYPE=Warning +METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error +METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +MISSING_EE_DESCRIPTIONS=Ignore +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error +UNUSED_PROBLEM_FILTERS=Warning +automatically_removed_unused_problem_filters=false +eclipse.preferences.version=1 +incompatible_api_component_version=Error +incompatible_api_component_version_include_major_without_breaking_change=Disabled +incompatible_api_component_version_include_minor_without_api_change=Disabled +invalid_since_tag_version=Error +malformed_since_tag=Error +missing_since_tag=Error +report_api_breakage_when_major_version_incremented=Disabled +report_resolution_errors_api_component=Warning diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionManagerHelper.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionManagerHelper.java index 70b76860d..850d79dca 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionManagerHelper.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionManagerHelper.java @@ -1,172 +1,172 @@ -/*******************************************************************************
-* Copyright (c) 2011 IBM, 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
-******************************************************************************/
-
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient;
-
-import java.util.Map;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpConnectionManager;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
-import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
-import org.eclipse.ecf.core.util.Trace;
-import org.eclipse.ecf.filetransfer.IRetrieveFileTransferOptions;
-import org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientOptions;
-
-public class ConnectionManagerHelper {
-
- public static final int DEFAULT_CONNECTION_TIMEOUT = HttpClientOptions.RETRIEVE_DEFAULT_CONNECTION_TIMEOUT;
- public static final int DEFAULT_READ_TIMEOUT = HttpClientOptions.RETRIEVE_DEFAULT_READ_TIMEOUT;
-
- private MultiThreadedHttpConnectionManager connectionManager;
-
- public ConnectionManagerHelper() {
- // Nothing
- }
-
- private static int getIntegerProperty(String prop, int intDefault) {
- int retVal = intDefault;
- String systemProp = System.getProperty(prop);
- if (systemProp != null) {
- try {
- retVal = Integer.parseInt(systemProp);
- } catch (NumberFormatException e) {
- Trace.trace(Activator.PLUGIN_ID, "Bad value for property '" + prop + "' : " + e + ". Using default value " + intDefault + "."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- }
- }
- return retVal;
- }
-
- private static long getLongProperty(String prop, long longDefault) {
- long retVal = longDefault;
- String systemProp = System.getProperty(prop);
- if (systemProp != null) {
- try {
- retVal = Long.parseLong(systemProp);
- } catch (NumberFormatException e) {
- Trace.trace(Activator.PLUGIN_ID, "Bad value for property '" + prop + "' : " + e + ". Using default value " + longDefault + "."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- }
- }
- return retVal;
- }
-
- private static boolean shouldReuseConnectionsOption() {
- boolean retVal = ConnectionOptions.REUSE_CONNECTIONS_DEFAULT;
- String systemProp = System.getProperty(ConnectionOptions.PROP_REUSE_CONNECTIONS);
- if (systemProp != null) {
- retVal = Boolean.valueOf(systemProp).booleanValue();
- }
- return retVal;
- }
-
- public static int getConnectTimeout(final Map options) {
- int result = DEFAULT_CONNECTION_TIMEOUT;
- Map localOptions = options;
- if (localOptions != null) {
- // See if the connect timeout option is present, if so set
- Object o = localOptions.get(IRetrieveFileTransferOptions.CONNECT_TIMEOUT);
- if (o != null) {
- if (o instanceof Integer) {
- result = ((Integer) o).intValue();
- } else if (o instanceof String) {
- result = new Integer(((String) o)).intValue();
- }
- return result;
- }
- o = localOptions.get("org.eclipse.ecf.provider.filetransfer.httpclient.retrieve.connectTimeout"); //$NON-NLS-1$
- if (o != null) {
- if (o instanceof Integer) {
- result = ((Integer) o).intValue();
- } else if (o instanceof String) {
- result = new Integer(((String) o)).intValue();
- }
- }
- }
- return result;
- }
-
- public static int getSocketReadTimeout(Map options) {
- int result = DEFAULT_READ_TIMEOUT;
- Map localOptions = options;
- if (localOptions != null) {
- // See if the connect timeout option is present, if so set
- Object o = localOptions.get(IRetrieveFileTransferOptions.READ_TIMEOUT);
- if (o != null) {
- if (o instanceof Integer) {
- result = ((Integer) o).intValue();
- } else if (o instanceof String) {
- result = new Integer(((String) o)).intValue();
- }
- return result;
- }
- o = localOptions.get("org.eclipse.ecf.provider.filetransfer.httpclient.retrieve.readTimeout"); //$NON-NLS-1$
- if (o != null) {
- if (o instanceof Integer) {
- result = ((Integer) o).intValue();
- } else if (o instanceof String) {
- result = new Integer(((String) o)).intValue();
- }
- }
- }
- return result;
- }
-
- public synchronized void initConnectionManager(HttpClient httpClient, Map options) {
- if (!shouldReuseConnectionsOption()) {
- Trace.trace(Activator.PLUGIN_ID, "Connections are not reused. To reuse connections set system property '" + ConnectionOptions.PROP_REUSE_CONNECTIONS + "' to true."); //$NON-NLS-1$ //$NON-NLS-2$
- initParameters(httpClient, new MultiThreadedHttpConnectionManager(), false, options);
- return;
- }
- if (connectionManager == null) {
- connectionManager = new MultiThreadedHttpConnectionManager();
- Trace.trace(Activator.PLUGIN_ID, "Created shared connection manager."); //$NON-NLS-1$
- } else {
- Trace.trace(Activator.PLUGIN_ID, "Reusing shared connection manager."); //$NON-NLS-1$
- }
- initParameters(httpClient, connectionManager, true, options);
- }
-
- private static void initParameters(HttpClient httpClient, HttpConnectionManager cm, boolean cmIsShared, Map options) {
-
- if (cmIsShared) {
- long closeIdlePeriod = getLongProperty(ConnectionOptions.PROP_POOL_CLOSE_IDLE_PERIOD, ConnectionOptions.POOL_CLOSE_IDLE_PERIOD_DEFAULT);
- if (closeIdlePeriod > 0) {
- Trace.trace(Activator.PLUGIN_ID, "Closing connections which were idle at least " + closeIdlePeriod + " milliseconds."); //$NON-NLS-1$ //$NON-NLS-2$
- cm.closeIdleConnections(closeIdlePeriod);
- }
- }
-
- // HttpClient parameters can be traced independently
- httpClient.setHttpConnectionManager(cm);
- int readTimeout = getSocketReadTimeout(options);
- cm.getParams().setSoTimeout(readTimeout);
- int connectTimeout = getConnectTimeout(options);
- cm.getParams().setConnectionTimeout(connectTimeout);
-
- if (cmIsShared) {
- HttpConnectionManagerParams cmParams = cm.getParams();
- int maxHostConnections = getIntegerProperty(ConnectionOptions.PROP_MAX_CONNECTIONS_PER_HOST, ConnectionOptions.MAX_CONNECTIONS_PER_HOST_DEFAULT);
- int maxTotalConnections = getIntegerProperty(ConnectionOptions.PROP_MAX_TOTAL_CONNECTIONS, ConnectionOptions.MAX_TOTAL_CONNECTIONS_DEFAULT);
-
- cmParams.setDefaultMaxConnectionsPerHost(maxHostConnections);
- cmParams.setMaxTotalConnections(maxTotalConnections);
- long connectionManagerTimeout = getLongProperty(ConnectionOptions.PROP_POOL_CONNECTION_TIMEOUT, ConnectionOptions.POOL_CONNECTION_TIMEOUT_DEFAULT);
- httpClient.getParams().setConnectionManagerTimeout(connectionManagerTimeout);
- }
- }
-
- public synchronized void shutdown() {
- if (connectionManager != null) {
- connectionManager.shutdown();
- connectionManager = null;
- }
- }
-
-}
+/******************************************************************************* +* Copyright (c) 2011 IBM, 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 +******************************************************************************/ + +package org.eclipse.ecf.internal.provider.filetransfer.httpclient; + +import java.util.Map; +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpConnectionManager; +import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; +import org.apache.commons.httpclient.params.HttpConnectionManagerParams; +import org.eclipse.ecf.core.util.Trace; +import org.eclipse.ecf.filetransfer.IRetrieveFileTransferOptions; +import org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientOptions; + +public class ConnectionManagerHelper { + + public static final int DEFAULT_CONNECTION_TIMEOUT = HttpClientOptions.RETRIEVE_DEFAULT_CONNECTION_TIMEOUT; + public static final int DEFAULT_READ_TIMEOUT = HttpClientOptions.RETRIEVE_DEFAULT_READ_TIMEOUT; + + private MultiThreadedHttpConnectionManager connectionManager; + + public ConnectionManagerHelper() { + // Nothing + } + + private static int getIntegerProperty(String prop, int intDefault) { + int retVal = intDefault; + String systemProp = System.getProperty(prop); + if (systemProp != null) { + try { + retVal = Integer.parseInt(systemProp); + } catch (NumberFormatException e) { + Trace.trace(Activator.PLUGIN_ID, "Bad value for property '" + prop + "' : " + e + ". Using default value " + intDefault + "."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + } + } + return retVal; + } + + private static long getLongProperty(String prop, long longDefault) { + long retVal = longDefault; + String systemProp = System.getProperty(prop); + if (systemProp != null) { + try { + retVal = Long.parseLong(systemProp); + } catch (NumberFormatException e) { + Trace.trace(Activator.PLUGIN_ID, "Bad value for property '" + prop + "' : " + e + ". Using default value " + longDefault + "."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + } + } + return retVal; + } + + private static boolean shouldReuseConnectionsOption() { + boolean retVal = ConnectionOptions.REUSE_CONNECTIONS_DEFAULT; + String systemProp = System.getProperty(ConnectionOptions.PROP_REUSE_CONNECTIONS); + if (systemProp != null) { + retVal = Boolean.valueOf(systemProp).booleanValue(); + } + return retVal; + } + + public static int getConnectTimeout(final Map options) { + int result = DEFAULT_CONNECTION_TIMEOUT; + Map localOptions = options; + if (localOptions != null) { + // See if the connect timeout option is present, if so set + Object o = localOptions.get(IRetrieveFileTransferOptions.CONNECT_TIMEOUT); + if (o != null) { + if (o instanceof Integer) { + result = ((Integer) o).intValue(); + } else if (o instanceof String) { + result = new Integer(((String) o)).intValue(); + } + return result; + } + o = localOptions.get("org.eclipse.ecf.provider.filetransfer.httpclient.retrieve.connectTimeout"); //$NON-NLS-1$ + if (o != null) { + if (o instanceof Integer) { + result = ((Integer) o).intValue(); + } else if (o instanceof String) { + result = new Integer(((String) o)).intValue(); + } + } + } + return result; + } + + public static int getSocketReadTimeout(Map options) { + int result = DEFAULT_READ_TIMEOUT; + Map localOptions = options; + if (localOptions != null) { + // See if the connect timeout option is present, if so set + Object o = localOptions.get(IRetrieveFileTransferOptions.READ_TIMEOUT); + if (o != null) { + if (o instanceof Integer) { + result = ((Integer) o).intValue(); + } else if (o instanceof String) { + result = new Integer(((String) o)).intValue(); + } + return result; + } + o = localOptions.get("org.eclipse.ecf.provider.filetransfer.httpclient.retrieve.readTimeout"); //$NON-NLS-1$ + if (o != null) { + if (o instanceof Integer) { + result = ((Integer) o).intValue(); + } else if (o instanceof String) { + result = new Integer(((String) o)).intValue(); + } + } + } + return result; + } + + public synchronized void initConnectionManager(HttpClient httpClient, Map options) { + if (!shouldReuseConnectionsOption()) { + Trace.trace(Activator.PLUGIN_ID, "Connections are not reused. To reuse connections set system property '" + ConnectionOptions.PROP_REUSE_CONNECTIONS + "' to true."); //$NON-NLS-1$ //$NON-NLS-2$ + initParameters(httpClient, new MultiThreadedHttpConnectionManager(), false, options); + return; + } + if (connectionManager == null) { + connectionManager = new MultiThreadedHttpConnectionManager(); + Trace.trace(Activator.PLUGIN_ID, "Created shared connection manager."); //$NON-NLS-1$ + } else { + Trace.trace(Activator.PLUGIN_ID, "Reusing shared connection manager."); //$NON-NLS-1$ + } + initParameters(httpClient, connectionManager, true, options); + } + + private static void initParameters(HttpClient httpClient, HttpConnectionManager cm, boolean cmIsShared, Map options) { + + if (cmIsShared) { + long closeIdlePeriod = getLongProperty(ConnectionOptions.PROP_POOL_CLOSE_IDLE_PERIOD, ConnectionOptions.POOL_CLOSE_IDLE_PERIOD_DEFAULT); + if (closeIdlePeriod > 0) { + Trace.trace(Activator.PLUGIN_ID, "Closing connections which were idle at least " + closeIdlePeriod + " milliseconds."); //$NON-NLS-1$ //$NON-NLS-2$ + cm.closeIdleConnections(closeIdlePeriod); + } + } + + // HttpClient parameters can be traced independently + httpClient.setHttpConnectionManager(cm); + int readTimeout = getSocketReadTimeout(options); + cm.getParams().setSoTimeout(readTimeout); + int connectTimeout = getConnectTimeout(options); + cm.getParams().setConnectionTimeout(connectTimeout); + + if (cmIsShared) { + HttpConnectionManagerParams cmParams = cm.getParams(); + int maxHostConnections = getIntegerProperty(ConnectionOptions.PROP_MAX_CONNECTIONS_PER_HOST, ConnectionOptions.MAX_CONNECTIONS_PER_HOST_DEFAULT); + int maxTotalConnections = getIntegerProperty(ConnectionOptions.PROP_MAX_TOTAL_CONNECTIONS, ConnectionOptions.MAX_TOTAL_CONNECTIONS_DEFAULT); + + cmParams.setDefaultMaxConnectionsPerHost(maxHostConnections); + cmParams.setMaxTotalConnections(maxTotalConnections); + long connectionManagerTimeout = getLongProperty(ConnectionOptions.PROP_POOL_CONNECTION_TIMEOUT, ConnectionOptions.POOL_CONNECTION_TIMEOUT_DEFAULT); + httpClient.getParams().setConnectionManagerTimeout(connectionManagerTimeout); + } + } + + public synchronized void shutdown() { + if (connectionManager != null) { + connectionManager.shutdown(); + connectionManager = null; + } + } + +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionOptions.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionOptions.java index 500e23ddf..f16372130 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionOptions.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient/ConnectionOptions.java @@ -1,127 +1,127 @@ -/*******************************************************************************
-* Copyright (c) 2011 IBM, 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
-******************************************************************************/
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient;
-
-/**
- * Options to enable reusing socket connections.
- * <p>
- * System property {@link #PROP_REUSE_CONNECTIONS} determines whether this file transfer
- * provider reuses connections.
- * </p> <p>
- * Without connection reuse each transfer or browse operations uses its
- * own connection independent connection. As a result no connections are reused.
- * </p>
- * <p> With connection reuse enable a single connection pool is used. Details
- * of its behavior can be further customized with the following system properties:
- * <ul>
- * <li>{@link #PROP_MAX_TOTAL_CONNECTIONS}</li>
- * <li>{@link #PROP_MAX_CONNECTIONS_PER_HOST}</li>
- * <li>{@link #PROP_POOL_CONNECTION_TIMEOUT}</li>
- * <li>{@link #PROP_POOL_CLOSE_IDLE_PERIOD}</li>
- * </ul>
- * Changing this and any of the other system properties does not affect connections
- * already made.
- * </p>
- * @since 4.0.1
- */
-public interface ConnectionOptions {
- /**
- * System property name to enable connection reuse for this provider.
- * <p>
- * The boolean value of this system property determines connection reuse.
- * The default value of this property is {@value #REUSE_CONNECTIONS_DEFAULT} as
- * defined by {@link #REUSE_CONNECTIONS_DEFAULT}. </p>
- */
- public String PROP_REUSE_CONNECTIONS = "org.eclipse.ecf.provider.filetransfer.httpclient.reuseConnections.enabled"; //$NON-NLS-1$
- public boolean REUSE_CONNECTIONS_DEFAULT = true;
-
- /**
- * System property name to specify maximum number of total connections in connection reuse mode.
- * <p>
- * This property only applies when connection reuse is enabled by {@link #PROP_REUSE_CONNECTIONS}.
- * </p><p>
- * The default value of this property is {@value #MAX_TOTAL_CONNECTIONS_DEFAULT} as
- * defined by {@link #MAX_TOTAL_CONNECTIONS_DEFAULT}. </p>
- * <p>
- * When the maximum number of connections are being used simultaneously another connection request
- * waits until a connection becomes available to the connection pool. The maximum wait time can
- * be adjusted using {@link #PROP_POOL_CONNECTION_TIMEOUT}.
- * </p><p>
- * </p>
- */
- public String PROP_MAX_TOTAL_CONNECTIONS = "org.eclipse.ecf.provider.filetransfer.httpclient.maxConnectionsTotal"; //$NON-NLS-1$
- public int MAX_TOTAL_CONNECTIONS_DEFAULT = 200; // HttpClient default is 20.
-
- /**
- * System property name to specify maximum number of connections per host in connection reuse mode.
- * <p>
- * This property only applies when connection reuse is enabled by {@link #PROP_REUSE_CONNECTIONS}.
- * </p><p>
- * The default value of this property is {@value #MAX_CONNECTIONS_PER_HOST_DEFAULT} as
- * defined by {@link #MAX_CONNECTIONS_PER_HOST_DEFAULT}. </p>
- * <p>
- * When the maximum number of connections are being used simultaneously another connection request
- * waits until a connection becomes available to the connection pool. The maximum wait time can
- * be adjusted using {@link #PROP_POOL_CONNECTION_TIMEOUT}.
- * </p><p>
- * </p>
- */
- public String PROP_MAX_CONNECTIONS_PER_HOST = "org.eclipse.ecf.provider.filetransfer.httpclient.maxConnectionsPerHost"; //$NON-NLS-1$
- public int MAX_CONNECTIONS_PER_HOST_DEFAULT = 4; // HttpClient default is 2.
-
- /**
- * Property for connection pool timeout.
- * <p>
- * This property only applies when connection reuse is enabled by {@link #PROP_REUSE_CONNECTIONS}.
- * </p><p>
- * This is the name for a system property to change the timeout value for a
- * caller waits until a connection becomes available in the connection pool.
- * </p>
- * <p>
- * The value is a long value and its unit is milliseconds.
- * With the value 0 no timeouts are used so that the caller waits until a connection becomes available.
- * </p><p>
- * The default value of this property is {@value #POOL_CONNECTION_TIMEOUT_DEFAULT} as
- * defined by {@link #POOL_CONNECTION_TIMEOUT_DEFAULT}. </p>
- * </p>
- */
- public String PROP_POOL_CONNECTION_TIMEOUT = "org.eclipse.ecf.provider.filetransfer.httpclient.poolConnectionTimeout"; //$NON-NLS-1$
-
- public long POOL_CONNECTION_TIMEOUT_DEFAULT = 0;
-
- /**
- * Property to set period after which idle connections are closed.
- * <p>
- * This setting only applies when reusing connection is enabled (see {@link #PROP_REUSE_CONNECTIONS}.
- * <p></p>
- * This is the name for a system property to change the time period after
- * which an idle connection can be closed by the ECF HttpClient based provider.
- * Currently idle connections are only closed when another transfer is made.
- * </p>
- * <p>
- * The value is a long value and its unit is milliseconds.
- * When the value is 0 (or negative) idle connections are never closed except on shutdown.
- * </p><p>
- * The default is {@value #POOL_CLOSE_IDLE_PERIOD_DEFAULT} as
- * defined by {@link #POOL_CLOSE_IDLE_PERIOD_DEFAULT}.
- * </p>
- */
- public String PROP_POOL_CLOSE_IDLE_PERIOD = "org.eclipse.ecf.provider.filetransfer.httpclient.poolCloseIdle"; //$NON-NLS-1$
-
- /**
- * Default period before idle connections are closed.
- * <p>
- * The default period after which idle connections can be closed is 3 minutes.
- * </p>
- */
- public long POOL_CLOSE_IDLE_PERIOD_DEFAULT = 3 * 60 * 1000;
-
-}
+/******************************************************************************* +* Copyright (c) 2011 IBM, 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 +******************************************************************************/ +package org.eclipse.ecf.internal.provider.filetransfer.httpclient; + +/** + * Options to enable reusing socket connections. + * <p> + * System property {@link #PROP_REUSE_CONNECTIONS} determines whether this file transfer + * provider reuses connections. + * </p> <p> + * Without connection reuse each transfer or browse operations uses its + * own connection independent connection. As a result no connections are reused. + * </p> + * <p> With connection reuse enable a single connection pool is used. Details + * of its behavior can be further customized with the following system properties: + * <ul> + * <li>{@link #PROP_MAX_TOTAL_CONNECTIONS}</li> + * <li>{@link #PROP_MAX_CONNECTIONS_PER_HOST}</li> + * <li>{@link #PROP_POOL_CONNECTION_TIMEOUT}</li> + * <li>{@link #PROP_POOL_CLOSE_IDLE_PERIOD}</li> + * </ul> + * Changing this and any of the other system properties does not affect connections + * already made. + * </p> + * @since 4.0.1 + */ +public interface ConnectionOptions { + /** + * System property name to enable connection reuse for this provider. + * <p> + * The boolean value of this system property determines connection reuse. + * The default value of this property is {@value #REUSE_CONNECTIONS_DEFAULT} as + * defined by {@link #REUSE_CONNECTIONS_DEFAULT}. </p> + */ + public String PROP_REUSE_CONNECTIONS = "org.eclipse.ecf.provider.filetransfer.httpclient.reuseConnections.enabled"; //$NON-NLS-1$ + public boolean REUSE_CONNECTIONS_DEFAULT = true; + + /** + * System property name to specify maximum number of total connections in connection reuse mode. + * <p> + * This property only applies when connection reuse is enabled by {@link #PROP_REUSE_CONNECTIONS}. + * </p><p> + * The default value of this property is {@value #MAX_TOTAL_CONNECTIONS_DEFAULT} as + * defined by {@link #MAX_TOTAL_CONNECTIONS_DEFAULT}. </p> + * <p> + * When the maximum number of connections are being used simultaneously another connection request + * waits until a connection becomes available to the connection pool. The maximum wait time can + * be adjusted using {@link #PROP_POOL_CONNECTION_TIMEOUT}. + * </p><p> + * </p> + */ + public String PROP_MAX_TOTAL_CONNECTIONS = "org.eclipse.ecf.provider.filetransfer.httpclient.maxConnectionsTotal"; //$NON-NLS-1$ + public int MAX_TOTAL_CONNECTIONS_DEFAULT = 200; // HttpClient default is 20. + + /** + * System property name to specify maximum number of connections per host in connection reuse mode. + * <p> + * This property only applies when connection reuse is enabled by {@link #PROP_REUSE_CONNECTIONS}. + * </p><p> + * The default value of this property is {@value #MAX_CONNECTIONS_PER_HOST_DEFAULT} as + * defined by {@link #MAX_CONNECTIONS_PER_HOST_DEFAULT}. </p> + * <p> + * When the maximum number of connections are being used simultaneously another connection request + * waits until a connection becomes available to the connection pool. The maximum wait time can + * be adjusted using {@link #PROP_POOL_CONNECTION_TIMEOUT}. + * </p><p> + * </p> + */ + public String PROP_MAX_CONNECTIONS_PER_HOST = "org.eclipse.ecf.provider.filetransfer.httpclient.maxConnectionsPerHost"; //$NON-NLS-1$ + public int MAX_CONNECTIONS_PER_HOST_DEFAULT = 4; // HttpClient default is 2. + + /** + * Property for connection pool timeout. + * <p> + * This property only applies when connection reuse is enabled by {@link #PROP_REUSE_CONNECTIONS}. + * </p><p> + * This is the name for a system property to change the timeout value for a + * caller waits until a connection becomes available in the connection pool. + * </p> + * <p> + * The value is a long value and its unit is milliseconds. + * With the value 0 no timeouts are used so that the caller waits until a connection becomes available. + * </p><p> + * The default value of this property is {@value #POOL_CONNECTION_TIMEOUT_DEFAULT} as + * defined by {@link #POOL_CONNECTION_TIMEOUT_DEFAULT}. </p> + * </p> + */ + public String PROP_POOL_CONNECTION_TIMEOUT = "org.eclipse.ecf.provider.filetransfer.httpclient.poolConnectionTimeout"; //$NON-NLS-1$ + + public long POOL_CONNECTION_TIMEOUT_DEFAULT = 0; + + /** + * Property to set period after which idle connections are closed. + * <p> + * This setting only applies when reusing connection is enabled (see {@link #PROP_REUSE_CONNECTIONS}. + * <p></p> + * This is the name for a system property to change the time period after + * which an idle connection can be closed by the ECF HttpClient based provider. + * Currently idle connections are only closed when another transfer is made. + * </p> + * <p> + * The value is a long value and its unit is milliseconds. + * When the value is 0 (or negative) idle connections are never closed except on shutdown. + * </p><p> + * The default is {@value #POOL_CLOSE_IDLE_PERIOD_DEFAULT} as + * defined by {@link #POOL_CLOSE_IDLE_PERIOD_DEFAULT}. + * </p> + */ + public String PROP_POOL_CLOSE_IDLE_PERIOD = "org.eclipse.ecf.provider.filetransfer.httpclient.poolCloseIdle"; //$NON-NLS-1$ + + /** + * Default period before idle connections are closed. + * <p> + * The default period after which idle connections can be closed is 3 minutes. + * </p> + */ + public long POOL_CLOSE_IDLE_PERIOD_DEFAULT = 3 * 60 * 1000; + +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.classpath b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.classpath index 2d1a4302f..64c5e31b7 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.classpath +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.classpath @@ -1,7 +1,7 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.project b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.project index 18e8c7697..f3f36a44d 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.project +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.project @@ -1,28 +1,28 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ecf.provider.filetransfer.httpclient4.ssl</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.ecf.provider.filetransfer.httpclient4.ssl</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.jdt.core.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.jdt.core.prefs index 44217f8c0..af0f20f97 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.jdt.core.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,7 @@ -eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
+eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.pde.core.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.pde.core.prefs index b7e72d019..f29e940a0 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.pde.core.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/.settings/org.eclipse.pde.core.prefs @@ -1,3 +1,3 @@ -eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
+eclipse.preferences.version=1 +pluginProject.extensions=false +resolve.requirebundle=false diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/build.properties b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/build.properties index 41eb6ade2..34d2e4d2d 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/build.properties +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl/build.properties @@ -1,4 +1,4 @@ -source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .
+source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.classpath b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.classpath index 2d1a4302f..64c5e31b7 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.classpath +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.classpath @@ -1,7 +1,7 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.gitignore b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.gitignore index 092357e47..ba077a403 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.gitignore +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.gitignore @@ -1 +1 @@ -bin
+bin diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.options b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.options index 367808d47..788d4dfef 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.options +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.options @@ -1,16 +1,16 @@ -# Debugging options for the org.eclipse.ecf.provider.filetransfer.httpclient4 plug-in
-
-# Turn on general debugging for the org.eclipse.ecf.provider.filetransfer.httpclient4 plug-in
-org.eclipse.ecf.provider.filetransfer.httpclient4/debug=false
-org.eclipse.ecf.provider.filetransfer.httpclient4/debug/filter = *
-org.eclipse.ecf.provider.filetransfer.httpclient4/debug/flag = false
-
-# Trace when exceptions are caught
-org.eclipse.ecf.provider.filetransfer.httpclient4/debug/exceptions/catching=false
-# Trace when exceptions are thrown
-org.eclipse.ecf.provider.filetransfer.httpclient4/debug/exceptions/throwing=false
-
-# Trace when methods are entered
-org.eclipse.ecf.provider.filetransfer.httpclient4/debug/methods/entering=false
-# Trace when methods are exited
-org.eclipse.ecf.provider.filetransfer.httpclient4/debug/methods/exiting=false
+# Debugging options for the org.eclipse.ecf.provider.filetransfer.httpclient4 plug-in + +# Turn on general debugging for the org.eclipse.ecf.provider.filetransfer.httpclient4 plug-in +org.eclipse.ecf.provider.filetransfer.httpclient4/debug=false +org.eclipse.ecf.provider.filetransfer.httpclient4/debug/filter = * +org.eclipse.ecf.provider.filetransfer.httpclient4/debug/flag = false + +# Trace when exceptions are caught +org.eclipse.ecf.provider.filetransfer.httpclient4/debug/exceptions/catching=false +# Trace when exceptions are thrown +org.eclipse.ecf.provider.filetransfer.httpclient4/debug/exceptions/throwing=false + +# Trace when methods are entered +org.eclipse.ecf.provider.filetransfer.httpclient4/debug/methods/entering=false +# Trace when methods are exited +org.eclipse.ecf.provider.filetransfer.httpclient4/debug/methods/exiting=false diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.project b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.project index 7e8e9ffb3..1744ced01 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.project +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.project @@ -1,34 +1,34 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ecf.provider.filetransfer.httpclient4</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.ecf.provider.filetransfer.httpclient4</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature> + </natures> +</projectDescription> diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.core.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.core.prefs index 57766aa3f..72b35914f 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.core.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.core.prefs @@ -1,350 +1,350 @@ -eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-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.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-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=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-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=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-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_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=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_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_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.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_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=false
-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=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-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.format_guardian_clause_on_one_line=false
-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=4
-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_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=do not 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_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=do not 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_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_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=do not 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_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=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=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_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_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_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_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.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=800
-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=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+eclipse.preferences.version=1 +org.eclipse.jdt.core.builder.cleanOutputFolder=clean +org.eclipse.jdt.core.builder.duplicateResourceTask=warning +org.eclipse.jdt.core.builder.invalidClasspath=abort +org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch +org.eclipse.jdt.core.circularClasspath=error +org.eclipse.jdt.core.classpath.exclusionPatterns=enabled +org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +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.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000 +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=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore +org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +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=warning +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled +org.eclipse.jdt.core.compiler.problem.unusedImport=error +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 +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_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=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_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_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.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_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=false +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=false +org.eclipse.jdt.core.formatter.comment.format_line_comments=false +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false +org.eclipse.jdt.core.formatter.comment.indent_root_tags=false +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +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.format_guardian_clause_on_one_line=false +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=4 +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_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=do not 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_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=do not 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_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_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=do not 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_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=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=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_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_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_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_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.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=800 +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=false +org.eclipse.jdt.core.formatter.tabulation.char=tab +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.incompatibleJDKLevel=ignore +org.eclipse.jdt.core.incompleteClasspath=error diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.launching.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.launching.prefs index 4249b08a3..c7eda7aff 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.launching.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.launching.prefs @@ -1,3 +1,3 @@ -#Tue Feb 03 16:03:47 PST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
+#Tue Feb 03 16:03:47 PST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.ui.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.ui.prefs index 8af75409d..9e5e00ded 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.ui.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.jdt.ui.prefs @@ -1,61 +1,61 @@ -#Thu Mar 12 11:02:43 PDT 2009
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-internal.default.compliance=user
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=
-org.eclipse.jdt.ui.ondemandthreshold=100
-org.eclipse.jdt.ui.staticondemandthreshold=99
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-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_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_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-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=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-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_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-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_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-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
+#Thu Mar 12 11:02:43 PDT 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_profile=_core +formatter_settings_version=11 +internal.default.compliance=user +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder= +org.eclipse.jdt.ui.ondemandthreshold=100 +org.eclipse.jdt.ui.staticondemandthreshold=99 +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +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_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_to_enhanced_for_loop=false +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=false +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=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=false +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_trailing_whitespaces=false +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +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_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +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 diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.api.tools.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.api.tools.prefs index 9cff9c907..e11a1c57c 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.api.tools.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.api.tools.prefs @@ -1,97 +1,97 @@ -ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Ignore
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-MISSING_EE_DESCRIPTIONS=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error +ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error +API_USE_SCAN_FIELD_SEVERITY=Error +API_USE_SCAN_METHOD_SEVERITY=Error +API_USE_SCAN_TYPE_SEVERITY=Error +CLASS_ELEMENT_TYPE_ADDED_METHOD=Error +CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error +CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error +CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error +CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error +ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error +ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error +ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +FIELD_ELEMENT_TYPE_ADDED_VALUE=Error +FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error +FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error +FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error +FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error +ILLEGAL_EXTEND=Warning +ILLEGAL_IMPLEMENT=Warning +ILLEGAL_INSTANTIATE=Warning +ILLEGAL_OVERRIDE=Warning +ILLEGAL_REFERENCE=Warning +INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error +INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error +INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error +INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +INVALID_JAVADOC_TAG=Ignore +INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore +LEAK_EXTEND=Warning +LEAK_FIELD_DECL=Warning +LEAK_IMPLEMENT=Ignore +LEAK_METHOD_PARAM=Warning +LEAK_METHOD_RETURN_TYPE=Warning +METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error +METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +MISSING_EE_DESCRIPTIONS=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error +UNUSED_PROBLEM_FILTERS=Warning +automatically_removed_unused_problem_filters=false +eclipse.preferences.version=1 +incompatible_api_component_version=Error +incompatible_api_component_version_include_major_without_breaking_change=Disabled +incompatible_api_component_version_include_minor_without_api_change=Disabled +invalid_since_tag_version=Error +malformed_since_tag=Error +missing_since_tag=Error +report_api_breakage_when_major_version_incremented=Disabled +report_resolution_errors_api_component=Warning diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.prefs index 6d29c5fef..05ef9da1a 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/.settings/org.eclipse.pde.prefs @@ -1,27 +1,27 @@ -#Fri Jan 29 14:33:19 PST 2010
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=2
-compilers.p.build.missing.output=2
-compilers.p.deprecated=1
-compilers.p.discouraged-class=0
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
+#Fri Jan 29 14:33:19 PST 2010 +compilers.f.unresolved-features=1 +compilers.f.unresolved-plugins=1 +compilers.incompatible-environment=1 +compilers.p.build=2 +compilers.p.build.missing.output=2 +compilers.p.deprecated=1 +compilers.p.discouraged-class=0 +compilers.p.internal=1 +compilers.p.missing-packages=2 +compilers.p.missing-version-export-package=2 +compilers.p.missing-version-import-package=2 +compilers.p.missing-version-require-bundle=2 +compilers.p.no-required-att=0 +compilers.p.not-externalized-att=2 +compilers.p.unknown-attribute=1 +compilers.p.unknown-class=1 +compilers.p.unknown-element=1 +compilers.p.unknown-identifier=1 +compilers.p.unknown-resource=1 +compilers.p.unresolved-ex-points=0 +compilers.p.unresolved-import=0 +compilers.s.create-docs=false +compilers.s.doc-folder=doc +compilers.s.open-tags=1 +compilers.use-project=true +eclipse.preferences.version=1 diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/META-INF/MANIFEST.MF b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/META-INF/MANIFEST.MF index a82e21971..2effb9a08 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/META-INF/MANIFEST.MF +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/META-INF/MANIFEST.MF @@ -1,36 +1,36 @@ -Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %plugin.name
-Bundle-SymbolicName: org.eclipse.ecf.provider.filetransfer.httpclient4;singleton:=true
-Bundle-Version: 1.0.200.qualifier
-Bundle-Localization: plugin
-Bundle-Activator: org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Activator
-Require-Bundle: org.eclipse.equinox.common,
- org.eclipse.ecf.provider.filetransfer,
- org.eclipse.ecf,
- org.eclipse.ecf.filetransfer,
- org.apache.httpcomponents.httpclient;bundle-version="4.1.0",
- org.eclipse.osgi,
- org.apache.commons.logging;bundle-version="1.1.1"
-Eclipse-LazyStart: true
-Import-Package: org.apache.http;version="4.1.0",
- org.apache.http.entity;version="4.1.0",
- org.apache.http.impl;version="4.1.0",
- org.apache.http.impl.entity;version="4.1.0",
- org.apache.http.impl.io;version="4.1.0",
- org.apache.http.io;version="4.1.0",
- org.apache.http.message;version="4.1.0",
- org.apache.http.params;version="4.1.0",
- org.apache.http.protocol;version="4.1.0",
- org.apache.http.util;version="4.1.0",
- org.eclipse.core.runtime.jobs,
- org.eclipse.osgi.util;version="1.0.0",
- org.osgi.framework;version="1.3.0",
- org.osgi.service.log;version="1.3.0",
- org.osgi.service.url;version="1.0.0",
- org.osgi.util.tracker;version="1.3.2"
-Export-Package: org.eclipse.ecf.internal.provider.filetransfer.httpclient4;x-internal:=true,
- org.eclipse.ecf.provider.filetransfer.httpclient4
-Bundle-Vendor: %plugin.provider
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-ActivationPolicy: lazy
+Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %plugin.name +Bundle-SymbolicName: org.eclipse.ecf.provider.filetransfer.httpclient4;singleton:=true +Bundle-Version: 1.0.200.qualifier +Bundle-Localization: plugin +Bundle-Activator: org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Activator +Require-Bundle: org.eclipse.equinox.common, + org.eclipse.ecf.provider.filetransfer, + org.eclipse.ecf, + org.eclipse.ecf.filetransfer, + org.apache.httpcomponents.httpclient;bundle-version="4.1.0", + org.eclipse.osgi, + org.apache.commons.logging;bundle-version="1.1.1" +Eclipse-LazyStart: true +Import-Package: org.apache.http;version="4.1.0", + org.apache.http.entity;version="4.1.0", + org.apache.http.impl;version="4.1.0", + org.apache.http.impl.entity;version="4.1.0", + org.apache.http.impl.io;version="4.1.0", + org.apache.http.io;version="4.1.0", + org.apache.http.message;version="4.1.0", + org.apache.http.params;version="4.1.0", + org.apache.http.protocol;version="4.1.0", + org.apache.http.util;version="4.1.0", + org.eclipse.core.runtime.jobs, + org.eclipse.osgi.util;version="1.0.0", + org.osgi.framework;version="1.3.0", + org.osgi.service.log;version="1.3.0", + org.osgi.service.url;version="1.0.0", + org.osgi.util.tracker;version="1.3.2" +Export-Package: org.eclipse.ecf.internal.provider.filetransfer.httpclient4;x-internal:=true, + org.eclipse.ecf.provider.filetransfer.httpclient4 +Bundle-Vendor: %plugin.provider +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Bundle-ActivationPolicy: lazy diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/about.html b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/about.html index f96588935..c0dea18c5 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/about.html +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/about.html @@ -1,265 +1,265 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
- <h3>About This Content</h3>
-
- <p>May 4, 2012</p>
- <h3>License</h3>
-
- <p>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 <a href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/legal/epl-v10.html</a>.
- For purposes of the EPL, "Program" will mean the Content.</p>
-
- <p>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
- and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
- <h3>Third Party Content</h3>
- <p>The Content includes items that have been sourced from third parties as set out below. If you
- did not receive this Content directly from the Eclipse Foundation, the following is provided
- for informational purposes only, and you should look to the Redistributor's license for
- terms and conditions of use.</p>
-
-<h4>Apache HttpComponents v4.1.2</h4>
-
-<p>This plugin is based on software developed by the Apache HttpComponents project at <a href="http://hc.apache.org/">http://hc.apache.org/</a>.
-A copy of this library is distributed within this plugin and
-therefore this plugin is subject to the Apache License version 2.0, a copy of the license is contained
-in the file <a href="asl-v20.txt">asl-v20.txt</a> and
-at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>.
-</p>
-
-<h4>Apache Commons Logging v1.1.1</h4>
-
-<p>This plugin is based on software developed by the Apache Commons Codec project at <a href="http://jakarta.apache.org/commons/logging/">http://jakarta.apache.org/commons/logging/</a>.
-A copy of this library is distributed within this plugin and
-therefore this plugin is subject to the Apache License version 2.0, a copy of the license is contained
-in the file <a href="asl-v20.txt">asl-v20.txt</a> and
-at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>.
-</p>
-
-<p>Your use of the this plugin and the components listed above is subject to the terms and conditions of the Apache License v2.0
-which is available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>.
-</p>
-<p>
-More specifically:</p>
-
-<p></p>
-
-<pre>
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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.
-</pre>
-
-</body>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> + <h3>About This Content</h3> + + <p>May 4, 2012</p> + <h3>License</h3> + + <p>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 <a href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/legal/epl-v10.html</a>. + For purposes of the EPL, "Program" will mean the Content.</p> + + <p>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 + and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + + <h3>Third Party Content</h3> + <p>The Content includes items that have been sourced from third parties as set out below. If you + did not receive this Content directly from the Eclipse Foundation, the following is provided + for informational purposes only, and you should look to the Redistributor's license for + terms and conditions of use.</p> + +<h4>Apache HttpComponents v4.1.2</h4> + +<p>This plugin is based on software developed by the Apache HttpComponents project at <a href="http://hc.apache.org/">http://hc.apache.org/</a>. +A copy of this library is distributed within this plugin and +therefore this plugin is subject to the Apache License version 2.0, a copy of the license is contained +in the file <a href="asl-v20.txt">asl-v20.txt</a> and +at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>. +</p> + +<h4>Apache Commons Logging v1.1.1</h4> + +<p>This plugin is based on software developed by the Apache Commons Codec project at <a href="http://jakarta.apache.org/commons/logging/">http://jakarta.apache.org/commons/logging/</a>. +A copy of this library is distributed within this plugin and +therefore this plugin is subject to the Apache License version 2.0, a copy of the license is contained +in the file <a href="asl-v20.txt">asl-v20.txt</a> and +at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>. +</p> + +<p>Your use of the this plugin and the components listed above is subject to the terms and conditions of the Apache License v2.0 +which is available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>. +</p> +<p> +More specifically:</p> + +<p></p> + +<pre> + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. +</pre> + +</body> </html>
\ No newline at end of file diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/asl-v20.txt b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/asl-v20.txt index 75b52484e..d64569567 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/asl-v20.txt +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/asl-v20.txt @@ -1,202 +1,202 @@ -
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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.
+ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/build.properties b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/build.properties index 00bfa9051..1eb488bd4 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/build.properties +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/build.properties @@ -1,11 +1,11 @@ -source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.xml,\
- about.html,\
- plugin.properties,\
- asl-v20.txt
-src.includes = about.html,\
- asl-v20.txt
-jre.compilation.profile = J2SE-1.4
+source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml,\ + about.html,\ + plugin.properties,\ + asl-v20.txt +src.includes = about.html,\ + asl-v20.txt +jre.compilation.profile = J2SE-1.4 diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.properties b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.properties index c7379d0e8..a06c59005 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.properties +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.properties @@ -1,11 +1,11 @@ -############################################################################
-# Copyright (c) 2007 Composent Inc., IBM Corp. 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
-#
-############################################################################
-plugin.name=ECF HttpComponents Filetransfer Provider
-plugin.provider=Eclipse.org - ECF
-
+############################################################################ +# Copyright (c) 2007 Composent Inc., IBM Corp. 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 +# +############################################################################ +plugin.name=ECF HttpComponents Filetransfer Provider +plugin.provider=Eclipse.org - ECF + diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.xml b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.xml index a526acea6..00de94566 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.xml +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/plugin.xml @@ -1,32 +1,32 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
- <extension
- point="org.eclipse.ecf.provider.filetransfer.retrieveFileTransferProtocolFactory">
- <retrieveFileTransferProtocolFactory
- class="org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientRetrieveFileTransferFactory"
- protocol="http"
- priority="45">
- </retrieveFileTransferProtocolFactory>
- <retrieveFileTransferProtocolFactory
- class="org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientRetrieveFileTransferFactory"
- protocol="https"
- priority="45">
- </retrieveFileTransferProtocolFactory>
- </extension>
-
- <extension
- point="org.eclipse.ecf.provider.filetransfer.browseFileTransferProtocolFactory">
- <browseFileTransferProtocolFactory
- class="org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientBrowseFileTransferFactory"
- protocol="http"
- priority="45">
- </browseFileTransferProtocolFactory>
- <browseFileTransferProtocolFactory
- class="org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientBrowseFileTransferFactory"
- protocol="https"
- priority="45">
- </browseFileTransferProtocolFactory>
- </extension>
-
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.2"?> +<plugin> + <extension + point="org.eclipse.ecf.provider.filetransfer.retrieveFileTransferProtocolFactory"> + <retrieveFileTransferProtocolFactory + class="org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientRetrieveFileTransferFactory" + protocol="http" + priority="45"> + </retrieveFileTransferProtocolFactory> + <retrieveFileTransferProtocolFactory + class="org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientRetrieveFileTransferFactory" + protocol="https" + priority="45"> + </retrieveFileTransferProtocolFactory> + </extension> + + <extension + point="org.eclipse.ecf.provider.filetransfer.browseFileTransferProtocolFactory"> + <browseFileTransferProtocolFactory + class="org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientBrowseFileTransferFactory" + protocol="http" + priority="45"> + </browseFileTransferProtocolFactory> + <browseFileTransferProtocolFactory + class="org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientBrowseFileTransferFactory" + protocol="https" + priority="45"> + </browseFileTransferProtocolFactory> + </extension> + +</plugin> diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Activator.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Activator.java index 496bc8ad5..43cce0f16 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Activator.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Activator.java @@ -1,130 +1,130 @@ -/****************************************************************************
- * Copyright (c) 2007 IBM, Composent Inc. 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:
- * Chris Aniszczyk - initial API and implementation
- *****************************************************************************/
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-import javax.net.ssl.SSLSocketFactory;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ecf.core.util.LogHelper;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.service.log.LogService;
-import org.osgi.util.tracker.ServiceTracker;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator implements BundleActivator {
-
- // The plug-in ID
- public static final String PLUGIN_ID = "org.eclipse.ecf.provider.filetransfer.httpclient4"; //$NON-NLS-1$
-
- // The shared instance
- private static Activator plugin;
- private BundleContext context = null;
-
- private ServiceTracker logServiceTracker = null;
-
- private ServiceTracker sslSocketFactoryTracker;
-
- private ISSLSocketFactoryModifier sslSocketFactoryModifier;
-
- /**
- * The constructor
- */
- public Activator() {
- //
- }
-
- public BundleContext getContext() {
- return context;
- }
-
- public void start(BundleContext ctxt) throws Exception {
- plugin = this;
- this.context = ctxt;
- // initialize the default sslSocketFactoryModifier. This instance is then used within HttpClientRetrieveFileTransfer.setupHostAndPort
- // to set the socket factory for the specific proxy and httpclient instance
- try {
- Class socketFactoryModifierClass = Class.forName("org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ssl.SSLSocketFactoryModifier"); //$NON-NLS-1$
- sslSocketFactoryModifier = (ISSLSocketFactoryModifier) socketFactoryModifierClass.newInstance();
- } catch (ClassNotFoundException e) {
- // will occur if fragment is not installed or not on proper execution environment
- } catch (Throwable t) {
- log(new Status(IStatus.ERROR, PLUGIN_ID, "Unexpected Error in Activator.start", t)); //$NON-NLS-1$
- }
-
- }
-
- public ISSLSocketFactoryModifier getSSLSocketFactoryModifier() {
- return sslSocketFactoryModifier;
- }
-
- public void stop(BundleContext ctxt) throws Exception {
- if (sslSocketFactoryModifier != null) {
- sslSocketFactoryModifier.dispose();
- sslSocketFactoryModifier = null;
- }
-
- if (sslSocketFactoryTracker != null) {
- sslSocketFactoryTracker.close();
- }
-
- if (logServiceTracker != null) {
- logServiceTracker.close();
- }
- this.context = null;
- plugin = null;
- }
-
- /**
- * Returns the shared instance
- *
- * @return the shared instance
- */
- public synchronized static Activator getDefault() {
- if (plugin == null) {
- plugin = new Activator();
- }
- return plugin;
- }
-
- protected LogService getLogService() {
- if (logServiceTracker == null) {
- logServiceTracker = new ServiceTracker(this.context, LogService.class.getName(), null);
- logServiceTracker.open();
- }
- return (LogService) logServiceTracker.getService();
- }
-
- public void log(IStatus status) {
- LogService logService = getLogService();
- if (logService != null) {
- logService.log(LogHelper.getLogCode(status), LogHelper.getLogMessage(status), status.getException());
- }
- }
-
- public SSLSocketFactory getSSLSocketFactory() {
- if (sslSocketFactoryTracker == null) {
- sslSocketFactoryTracker = new ServiceTracker(this.context, SSLSocketFactory.class.getName(), null);
- sslSocketFactoryTracker.open();
- }
- return (SSLSocketFactory) sslSocketFactoryTracker.getService();
- }
-
- public static void logNoProxyWarning(Throwable e) {
- Activator a = getDefault();
- if (a != null) {
- a.log(new Status(IStatus.WARNING, Activator.PLUGIN_ID, IStatus.ERROR, "Warning: Platform proxy API not available", e)); //$NON-NLS-1$
- }
- }
-
-}
+/**************************************************************************** + * Copyright (c) 2007 IBM, Composent Inc. 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: + * Chris Aniszczyk - initial API and implementation + *****************************************************************************/ +package org.eclipse.ecf.internal.provider.filetransfer.httpclient4; + +import javax.net.ssl.SSLSocketFactory; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.ecf.core.util.LogHelper; +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.service.log.LogService; +import org.osgi.util.tracker.ServiceTracker; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator implements BundleActivator { + + // The plug-in ID + public static final String PLUGIN_ID = "org.eclipse.ecf.provider.filetransfer.httpclient4"; //$NON-NLS-1$ + + // The shared instance + private static Activator plugin; + private BundleContext context = null; + + private ServiceTracker logServiceTracker = null; + + private ServiceTracker sslSocketFactoryTracker; + + private ISSLSocketFactoryModifier sslSocketFactoryModifier; + + /** + * The constructor + */ + public Activator() { + // + } + + public BundleContext getContext() { + return context; + } + + public void start(BundleContext ctxt) throws Exception { + plugin = this; + this.context = ctxt; + // initialize the default sslSocketFactoryModifier. This instance is then used within HttpClientRetrieveFileTransfer.setupHostAndPort + // to set the socket factory for the specific proxy and httpclient instance + try { + Class socketFactoryModifierClass = Class.forName("org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ssl.SSLSocketFactoryModifier"); //$NON-NLS-1$ + sslSocketFactoryModifier = (ISSLSocketFactoryModifier) socketFactoryModifierClass.newInstance(); + } catch (ClassNotFoundException e) { + // will occur if fragment is not installed or not on proper execution environment + } catch (Throwable t) { + log(new Status(IStatus.ERROR, PLUGIN_ID, "Unexpected Error in Activator.start", t)); //$NON-NLS-1$ + } + + } + + public ISSLSocketFactoryModifier getSSLSocketFactoryModifier() { + return sslSocketFactoryModifier; + } + + public void stop(BundleContext ctxt) throws Exception { + if (sslSocketFactoryModifier != null) { + sslSocketFactoryModifier.dispose(); + sslSocketFactoryModifier = null; + } + + if (sslSocketFactoryTracker != null) { + sslSocketFactoryTracker.close(); + } + + if (logServiceTracker != null) { + logServiceTracker.close(); + } + this.context = null; + plugin = null; + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public synchronized static Activator getDefault() { + if (plugin == null) { + plugin = new Activator(); + } + return plugin; + } + + protected LogService getLogService() { + if (logServiceTracker == null) { + logServiceTracker = new ServiceTracker(this.context, LogService.class.getName(), null); + logServiceTracker.open(); + } + return (LogService) logServiceTracker.getService(); + } + + public void log(IStatus status) { + LogService logService = getLogService(); + if (logService != null) { + logService.log(LogHelper.getLogCode(status), LogHelper.getLogMessage(status), status.getException()); + } + } + + public SSLSocketFactory getSSLSocketFactory() { + if (sslSocketFactoryTracker == null) { + sslSocketFactoryTracker = new ServiceTracker(this.context, SSLSocketFactory.class.getName(), null); + sslSocketFactoryTracker.open(); + } + return (SSLSocketFactory) sslSocketFactoryTracker.getService(); + } + + public static void logNoProxyWarning(Throwable e) { + Activator a = getDefault(); + if (a != null) { + a.log(new Status(IStatus.WARNING, Activator.PLUGIN_ID, IStatus.ERROR, "Warning: Platform proxy API not available", e)); //$NON-NLS-1$ + } + } + +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/CloseMonitoringSocket.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/CloseMonitoringSocket.java index f455935b7..5b1454e06 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/CloseMonitoringSocket.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/CloseMonitoringSocket.java @@ -1,69 +1,69 @@ -/*******************************************************************************
-* Copyright (c) 2009 IBM, 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:
-* Thomas Joiner - extracted implementation from the Socket factories
-******************************************************************************/
-
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-import java.io.IOException;
-import java.net.Socket;
-import javax.net.ssl.SSLSocket;
-import org.eclipse.ecf.core.util.Trace;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketEvent;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketEventSource;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketListener;
-import org.eclipse.ecf.provider.filetransfer.events.socket.AbstractSocketWrapper;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketClosedEvent;
-
-class CloseMonitoringSocket extends AbstractSocketWrapper {
-
- private boolean closed = false;
- private final ISocketListener spyListener;
- private final ISocketEventSource source;
- private Socket wrappedSocket;
-
- public CloseMonitoringSocket(Socket toWrap, ISocketListener spyListener, ISocketEventSource source) {
- super(toWrap);
- this.spyListener = spyListener;
- this.source = source;
- }
-
- public synchronized void close() throws IOException {
- if (!closed) {
- closed = true;
-
- try {
- Trace.trace(Activator.PLUGIN_ID, "closing socket " + this.toString()); //$NON-NLS-1$
- super.close();
- } finally {
- fireEvent(new SocketClosedEvent(source, getSocket(), (wrappedSocket != null ? wrappedSocket : this)));
- }
- }
- }
-
- private void fireEvent(ISocketEvent event) {
- if (spyListener != null) {
- spyListener.handleSocketEvent(event);
- }
- event.getSource().fireEvent(event);
- }
-
- public boolean isSecure() {
- return getSocket() instanceof SSLSocket;
- }
-
- Socket getWrappedSocket() {
- return wrappedSocket;
- }
-
- void setWrappedSocket(Socket wrappedSocket) {
- this.wrappedSocket = wrappedSocket;
- }
-
+/******************************************************************************* +* Copyright (c) 2009 IBM, 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: +* Thomas Joiner - extracted implementation from the Socket factories +******************************************************************************/ + +package org.eclipse.ecf.internal.provider.filetransfer.httpclient4; + +import java.io.IOException; +import java.net.Socket; +import javax.net.ssl.SSLSocket; +import org.eclipse.ecf.core.util.Trace; +import org.eclipse.ecf.filetransfer.events.socket.ISocketEvent; +import org.eclipse.ecf.filetransfer.events.socket.ISocketEventSource; +import org.eclipse.ecf.filetransfer.events.socket.ISocketListener; +import org.eclipse.ecf.provider.filetransfer.events.socket.AbstractSocketWrapper; +import org.eclipse.ecf.provider.filetransfer.events.socket.SocketClosedEvent; + +class CloseMonitoringSocket extends AbstractSocketWrapper { + + private boolean closed = false; + private final ISocketListener spyListener; + private final ISocketEventSource source; + private Socket wrappedSocket; + + public CloseMonitoringSocket(Socket toWrap, ISocketListener spyListener, ISocketEventSource source) { + super(toWrap); + this.spyListener = spyListener; + this.source = source; + } + + public synchronized void close() throws IOException { + if (!closed) { + closed = true; + + try { + Trace.trace(Activator.PLUGIN_ID, "closing socket " + this.toString()); //$NON-NLS-1$ + super.close(); + } finally { + fireEvent(new SocketClosedEvent(source, getSocket(), (wrappedSocket != null ? wrappedSocket : this))); + } + } + } + + private void fireEvent(ISocketEvent event) { + if (spyListener != null) { + spyListener.handleSocketEvent(event); + } + event.getSource().fireEvent(event); + } + + public boolean isSecure() { + return getSocket() instanceof SSLSocket; + } + + Socket getWrappedSocket() { + return wrappedSocket; + } + + void setWrappedSocket(Socket wrappedSocket) { + this.wrappedSocket = wrappedSocket; + } + }
\ No newline at end of file diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ConnectingSocketMonitor.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ConnectingSocketMonitor.java index d3db774c5..9aae0dc5e 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ConnectingSocketMonitor.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ConnectingSocketMonitor.java @@ -1,46 +1,46 @@ -/*******************************************************************************
-* Copyright (c) 2009 IBM, 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
-******************************************************************************/
-
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-import java.util.*;
-import org.eclipse.ecf.filetransfer.events.socket.*;
-
-public class ConnectingSocketMonitor implements ISocketListener {
-
- private Map connectingSockets;
-
- public ConnectingSocketMonitor(int initialCapacity) {
- connectingSockets = Collections.synchronizedMap(new HashMap(initialCapacity));
- }
-
- public ConnectingSocketMonitor() {
- connectingSockets = Collections.synchronizedMap(new HashMap());
- }
-
- public Collection getConnectingSockets() {
- return Collections.unmodifiableCollection(connectingSockets.keySet());
- }
-
- public void clear() {
- connectingSockets.clear();
- }
-
- public void handleSocketEvent(ISocketEvent event) {
- if (event instanceof ISocketCreatedEvent) {
- connectingSockets.put(event.getFactorySocket(), event);
- } else if (event instanceof ISocketConnectedEvent) {
- connectingSockets.remove(event.getFactorySocket());
- } else if (event instanceof ISocketClosedEvent) {
- connectingSockets.remove(event.getFactorySocket());
- }
- }
-}
+/******************************************************************************* +* Copyright (c) 2009 IBM, 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 +******************************************************************************/ + +package org.eclipse.ecf.internal.provider.filetransfer.httpclient4; + +import java.util.*; +import org.eclipse.ecf.filetransfer.events.socket.*; + +public class ConnectingSocketMonitor implements ISocketListener { + + private Map connectingSockets; + + public ConnectingSocketMonitor(int initialCapacity) { + connectingSockets = Collections.synchronizedMap(new HashMap(initialCapacity)); + } + + public ConnectingSocketMonitor() { + connectingSockets = Collections.synchronizedMap(new HashMap()); + } + + public Collection getConnectingSockets() { + return Collections.unmodifiableCollection(connectingSockets.keySet()); + } + + public void clear() { + connectingSockets.clear(); + } + + public void handleSocketEvent(ISocketEvent event) { + if (event instanceof ISocketCreatedEvent) { + connectingSockets.put(event.getFactorySocket(), event); + } else if (event instanceof ISocketConnectedEvent) { + connectingSockets.remove(event.getFactorySocket()); + } else if (event instanceof ISocketClosedEvent) { + connectingSockets.remove(event.getFactorySocket()); + } + } +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/DebugOptions.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/DebugOptions.java index 0834c04ad..5cd542c84 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/DebugOptions.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/DebugOptions.java @@ -1,23 +1,23 @@ -/*******************************************************************************
- * Copyright (c) 2004 Composent, Inc. 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: Composent, Inc. - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-public interface DebugOptions {
-
- public static final String DEBUG = Activator.PLUGIN_ID + "/debug"; //$NON-NLS-1$
-
- public static final String EXCEPTIONS_CATCHING = DEBUG + "/exceptions/catching"; //$NON-NLS-1$
-
- public static final String EXCEPTIONS_THROWING = DEBUG + "/exceptions/throwing"; //$NON-NLS-1$
-
- public static final String METHODS_ENTERING = DEBUG + "/methods/entering"; //$NON-NLS-1$
-
- public static final String METHODS_EXITING = DEBUG + "/methods/exiting"; //$NON-NLS-1$
-
-}
+/******************************************************************************* + * Copyright (c) 2004 Composent, Inc. 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: Composent, Inc. - initial API and implementation + ******************************************************************************/ +package org.eclipse.ecf.internal.provider.filetransfer.httpclient4; + +public interface DebugOptions { + + public static final String DEBUG = Activator.PLUGIN_ID + "/debug"; //$NON-NLS-1$ + + public static final String EXCEPTIONS_CATCHING = DEBUG + "/exceptions/catching"; //$NON-NLS-1$ + + public static final String EXCEPTIONS_THROWING = DEBUG + "/exceptions/throwing"; //$NON-NLS-1$ + + public static final String METHODS_ENTERING = DEBUG + "/methods/entering"; //$NON-NLS-1$ + + public static final String METHODS_EXITING = DEBUG + "/methods/exiting"; //$NON-NLS-1$ + +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientProtocolSocketFactory.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientProtocolSocketFactory.java index ac5a32ba7..7f5d94daf 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientProtocolSocketFactory.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientProtocolSocketFactory.java @@ -1,132 +1,132 @@ -/*******************************************************************************
- * Copyright (c) 2009 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
- * Thomas Joiner - HttpClient 4 implementation
- *******************************************************************************/
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.net.UnknownHostException;
-import javax.net.SocketFactory;
-import javax.net.ssl.SSLSocket;
-import org.apache.http.conn.ConnectTimeoutException;
-import org.apache.http.conn.scheme.SchemeSocketFactory;
-import org.apache.http.params.CoreConnectionPNames;
-import org.apache.http.params.HttpParams;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.ecf.core.util.Trace;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketEvent;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketEventSource;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketListener;
-import org.eclipse.ecf.filetransfer.events.socketfactory.INonconnectedSocketFactory;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketClosedEvent;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketConnectedEvent;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketCreatedEvent;
-
-public class ECFHttpClientProtocolSocketFactory implements SchemeSocketFactory {
-
- protected ISocketEventSource source;
- private INonconnectedSocketFactory unconnectedFactory;
- private ISocketListener socketConnectListener;
-
- private static final ISocketListener NULL_SOCKET_EVENT_LISTENER = new ISocketListener() {
- public void handleSocketEvent(ISocketEvent event) {
- //empty
- }
- };
-
- public ECFHttpClientProtocolSocketFactory(INonconnectedSocketFactory unconnectedFactory, ISocketEventSource source, ISocketListener socketConnectListener) {
- super();
- Assert.isNotNull(unconnectedFactory);
- Assert.isNotNull(source);
- this.unconnectedFactory = unconnectedFactory;
- this.source = source;
- this.socketConnectListener = socketConnectListener != null ? socketConnectListener : NULL_SOCKET_EVENT_LISTENER;
- }
-
- public ECFHttpClientProtocolSocketFactory(final SocketFactory socketFactory, ISocketEventSource source, ISocketListener socketConnectListener) {
- this(new INonconnectedSocketFactory() {
- public Socket createSocket() throws IOException {
- return socketFactory.createSocket();
- }
- }, source, socketConnectListener);
- }
-
- public Socket createSocket(HttpParams params) throws IOException {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, ECFHttpClientProtocolSocketFactory.class, "createSocket"); //$NON-NLS-1$
-
- final Socket factorySocket = unconnectedFactory.createSocket();
- fireEvent(socketConnectListener, new SocketCreatedEvent(source, factorySocket));
-
- Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, ECFHttpClientProtocolSocketFactory.class, "socketCreated " + factorySocket); //$NON-NLS-1$
-
- return factorySocket;
- }
-
- public Socket connectSocket(final Socket sock, InetSocketAddress remoteAddress, InetSocketAddress localAddress, HttpParams params) throws IOException, UnknownHostException, ConnectTimeoutException {
- int timeout = params.getIntParameter(CoreConnectionPNames.SO_TIMEOUT, 0);
-
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, ECFHttpClientProtocolSocketFactory.class, "connectSocket " + remoteAddress.toString() + " timeout=" + timeout); //$NON-NLS-1$ //$NON-NLS-2$
-
- try {
- // Use String.valueOf to protect against null
- Trace.trace(Activator.PLUGIN_ID, "bind(" + String.valueOf(localAddress) + ")"); //$NON-NLS-1$//$NON-NLS-2$
- sock.bind(localAddress);
- Trace.trace(Activator.PLUGIN_ID, "connect(" + remoteAddress.toString() + ", " + timeout + ")"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
- sock.connect(remoteAddress, timeout);
- Trace.trace(Activator.PLUGIN_ID, "connected"); //$NON-NLS-1$
- } catch (IOException e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ECFHttpClientProtocolSocketFactory.class, "createSocket", e); //$NON-NLS-1$
- fireEvent(socketConnectListener, new SocketClosedEvent(source, sock, sock));
- Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, ECFHttpClientProtocolSocketFactory.class, "createSocket", e); //$NON-NLS-1$
- throw e;
- }
-
- Socket toReturn;
- Socket wrapped = new CloseMonitoringSocket(sock, socketConnectListener, source);
-
- SocketConnectedEvent connectedEvent = new SocketConnectedEvent(source, sock, wrapped);
- fireEvent(socketConnectListener, connectedEvent);
-
- // Change the wrapped socket if one of the receivers of the SocketConnectedEvent changed it
- if (connectedEvent.getSocket() != wrapped) {
- toReturn = connectedEvent.getSocket();
- ((CloseMonitoringSocket) wrapped).setWrappedSocket(toReturn);
- } else {
- toReturn = wrapped;
- }
-
- return toReturn;
- }
-
- private static void fireEvent(final ISocketListener spyListener, ISocketEvent event) {
- if (spyListener != null) {
- spyListener.handleSocketEvent(event);
- }
- event.getSource().fireEvent(event);
- }
-
- public boolean isSecure(Socket sock) throws IllegalArgumentException {
- if (sock instanceof SSLSocket) {
- throw new IllegalArgumentException("Socket not created by this factory."); //$NON-NLS-1$
- }
-
- return false;
- }
-
- public boolean equals(Object obj) {
- return (obj instanceof ECFHttpClientProtocolSocketFactory);
- }
-
- public int hashCode() {
- return ECFHttpClientProtocolSocketFactory.class.hashCode();
- }
-}
+/******************************************************************************* + * Copyright (c) 2009 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 + * Thomas Joiner - HttpClient 4 implementation + *******************************************************************************/ +package org.eclipse.ecf.internal.provider.filetransfer.httpclient4; + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.net.UnknownHostException; +import javax.net.SocketFactory; +import javax.net.ssl.SSLSocket; +import org.apache.http.conn.ConnectTimeoutException; +import org.apache.http.conn.scheme.SchemeSocketFactory; +import org.apache.http.params.CoreConnectionPNames; +import org.apache.http.params.HttpParams; +import org.eclipse.core.runtime.Assert; +import org.eclipse.ecf.core.util.Trace; +import org.eclipse.ecf.filetransfer.events.socket.ISocketEvent; +import org.eclipse.ecf.filetransfer.events.socket.ISocketEventSource; +import org.eclipse.ecf.filetransfer.events.socket.ISocketListener; +import org.eclipse.ecf.filetransfer.events.socketfactory.INonconnectedSocketFactory; +import org.eclipse.ecf.provider.filetransfer.events.socket.SocketClosedEvent; +import org.eclipse.ecf.provider.filetransfer.events.socket.SocketConnectedEvent; +import org.eclipse.ecf.provider.filetransfer.events.socket.SocketCreatedEvent; + +public class ECFHttpClientProtocolSocketFactory implements SchemeSocketFactory { + + protected ISocketEventSource source; + private INonconnectedSocketFactory unconnectedFactory; + private ISocketListener socketConnectListener; + + private static final ISocketListener NULL_SOCKET_EVENT_LISTENER = new ISocketListener() { + public void handleSocketEvent(ISocketEvent event) { + //empty + } + }; + + public ECFHttpClientProtocolSocketFactory(INonconnectedSocketFactory unconnectedFactory, ISocketEventSource source, ISocketListener socketConnectListener) { + super(); + Assert.isNotNull(unconnectedFactory); + Assert.isNotNull(source); + this.unconnectedFactory = unconnectedFactory; + this.source = source; + this.socketConnectListener = socketConnectListener != null ? socketConnectListener : NULL_SOCKET_EVENT_LISTENER; + } + + public ECFHttpClientProtocolSocketFactory(final SocketFactory socketFactory, ISocketEventSource source, ISocketListener socketConnectListener) { + this(new INonconnectedSocketFactory() { + public Socket createSocket() throws IOException { + return socketFactory.createSocket(); + } + }, source, socketConnectListener); + } + + public Socket createSocket(HttpParams params) throws IOException { + Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, ECFHttpClientProtocolSocketFactory.class, "createSocket"); //$NON-NLS-1$ + + final Socket factorySocket = unconnectedFactory.createSocket(); + fireEvent(socketConnectListener, new SocketCreatedEvent(source, factorySocket)); + + Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, ECFHttpClientProtocolSocketFactory.class, "socketCreated " + factorySocket); //$NON-NLS-1$ + + return factorySocket; + } + + public Socket connectSocket(final Socket sock, InetSocketAddress remoteAddress, InetSocketAddress localAddress, HttpParams params) throws IOException, UnknownHostException, ConnectTimeoutException { + int timeout = params.getIntParameter(CoreConnectionPNames.SO_TIMEOUT, 0); + + Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, ECFHttpClientProtocolSocketFactory.class, "connectSocket " + remoteAddress.toString() + " timeout=" + timeout); //$NON-NLS-1$ //$NON-NLS-2$ + + try { + // Use String.valueOf to protect against null + Trace.trace(Activator.PLUGIN_ID, "bind(" + String.valueOf(localAddress) + ")"); //$NON-NLS-1$//$NON-NLS-2$ + sock.bind(localAddress); + Trace.trace(Activator.PLUGIN_ID, "connect(" + remoteAddress.toString() + ", " + timeout + ")"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ + sock.connect(remoteAddress, timeout); + Trace.trace(Activator.PLUGIN_ID, "connected"); //$NON-NLS-1$ + } catch (IOException e) { + Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ECFHttpClientProtocolSocketFactory.class, "createSocket", e); //$NON-NLS-1$ + fireEvent(socketConnectListener, new SocketClosedEvent(source, sock, sock)); + Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, ECFHttpClientProtocolSocketFactory.class, "createSocket", e); //$NON-NLS-1$ + throw e; + } + + Socket toReturn; + Socket wrapped = new CloseMonitoringSocket(sock, socketConnectListener, source); + + SocketConnectedEvent connectedEvent = new SocketConnectedEvent(source, sock, wrapped); + fireEvent(socketConnectListener, connectedEvent); + + // Change the wrapped socket if one of the receivers of the SocketConnectedEvent changed it + if (connectedEvent.getSocket() != wrapped) { + toReturn = connectedEvent.getSocket(); + ((CloseMonitoringSocket) wrapped).setWrappedSocket(toReturn); + } else { + toReturn = wrapped; + } + + return toReturn; + } + + private static void fireEvent(final ISocketListener spyListener, ISocketEvent event) { + if (spyListener != null) { + spyListener.handleSocketEvent(event); + } + event.getSource().fireEvent(event); + } + + public boolean isSecure(Socket sock) throws IllegalArgumentException { + if (sock instanceof SSLSocket) { + throw new IllegalArgumentException("Socket not created by this factory."); //$NON-NLS-1$ + } + + return false; + } + + public boolean equals(Object obj) { + return (obj instanceof ECFHttpClientProtocolSocketFactory); + } + + public int hashCode() { + return ECFHttpClientProtocolSocketFactory.class.hashCode(); + } +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientSecureProtocolSocketFactory.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientSecureProtocolSocketFactory.java index d6c746e4b..14ec7fd2b 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientSecureProtocolSocketFactory.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ECFHttpClientSecureProtocolSocketFactory.java @@ -1,176 +1,176 @@ -/*******************************************************************************
- * Copyright (c) 2009 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
- * Thomas Joiner - HttpClient 4 implementation
- *******************************************************************************/
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.net.SocketException;
-import java.net.UnknownHostException;
-import javax.net.ssl.SSLSocket;
-import javax.net.ssl.SSLSocketFactory;
-import org.apache.http.conn.ConnectTimeoutException;
-import org.apache.http.conn.scheme.LayeredSchemeSocketFactory;
-import org.apache.http.params.HttpConnectionParams;
-import org.apache.http.params.HttpParams;
-import org.eclipse.ecf.core.util.Trace;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketEvent;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketEventSource;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketListener;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketClosedEvent;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketConnectedEvent;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketCreatedEvent;
-
-public final class ECFHttpClientSecureProtocolSocketFactory implements LayeredSchemeSocketFactory {
-
- private final SSLSocketFactory sslSocketFactory;
- private final ISocketEventSource source;
- private final ISocketListener socketConnectListener;
-
- public ECFHttpClientSecureProtocolSocketFactory(final SSLSocketFactory sslSocketFactory, ISocketEventSource source, ISocketListener socketConnectListener) {
- this.sslSocketFactory = sslSocketFactory;
- this.source = source;
- this.socketConnectListener = socketConnectListener;
- }
-
- public Socket createSocket(final HttpParams params) {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, ECFHttpClientSecureProtocolSocketFactory.class, "createSocket"); //$NON-NLS-1$
-
- Socket socket = new Socket();
- fireEvent(socketConnectListener, new SocketCreatedEvent(source, socket));
-
- Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, ECFHttpClientSecureProtocolSocketFactory.class, "socketCreated " + socket); //$NON-NLS-1$
- return socket;
- }
-
- public Socket connectSocket(final Socket socket, final InetSocketAddress remoteAddress, final InetSocketAddress localAddress, final HttpParams params) throws IOException, UnknownHostException, ConnectTimeoutException {
- if (remoteAddress == null) {
- throw new IllegalArgumentException("Remote address must not be null"); //$NON-NLS-1$
- }
- if (params == null) {
- throw new IllegalArgumentException("HTTP parameters must not be null"); //$NON-NLS-1$
- }
-
- if (socket == null) {
- SSLSocket sslSocket = (SSLSocket) this.sslSocketFactory.createSocket();
-
- performConnection(sslSocket, remoteAddress, localAddress, params);
-
- return wrapSocket(sslSocket);
- } else if (socket instanceof SSLSocket) {
- performConnection(socket, remoteAddress, localAddress, params);
-
- return wrapSocket(socket);
- }
-
- // If we were given a unconnected socket, we need to connect it first
- if (!socket.isConnected()) {
- performConnection(socket, remoteAddress, localAddress, params);
- }
-
- Socket layeredSocket = this.sslSocketFactory.createSocket(socket, remoteAddress.getHostName(), remoteAddress.getPort(), true);
-
- return wrapSocket(layeredSocket);
- }
-
- private void performConnection(final Socket socket, final InetSocketAddress remoteAddress, final InetSocketAddress localAddress, final HttpParams params) throws SocketException, IOException {
- try {
- socket.setReuseAddress(HttpConnectionParams.getSoReuseaddr(params));
- socket.bind(localAddress);
-
- int connectionTimeout = HttpConnectionParams.getConnectionTimeout(params);
- int socketTimeout = HttpConnectionParams.getSoTimeout(params);
-
- socket.connect(remoteAddress, connectionTimeout);
- socket.setSoTimeout(socketTimeout);
- } catch (SocketException e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ECFHttpClientSecureProtocolSocketFactory.class, "performConnection", e); //$NON-NLS-1$
- fireEvent(this.socketConnectListener, new SocketClosedEvent(source, socket, socket));
- Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, ECFHttpClientSecureProtocolSocketFactory.class, "performConnection", e); //$NON-NLS-1$
- throw e;
- } catch (IOException e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ECFHttpClientSecureProtocolSocketFactory.class, "performConnection", e); //$NON-NLS-1$
- fireEvent(this.socketConnectListener, new SocketClosedEvent(source, socket, socket));
- Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, ECFHttpClientSecureProtocolSocketFactory.class, "performConnection", e); //$NON-NLS-1$
- throw e;
- }
- }
-
- public boolean isSecure(final Socket sock) throws IllegalArgumentException {
- if (sock == null) {
- throw new IllegalArgumentException("Socket must not be null"); //$NON-NLS-1$
- }
-
- if (sock instanceof CloseMonitoringSocket) {
- return ((CloseMonitoringSocket) sock).isSecure();
- }
-
- if (!(sock instanceof SSLSocket)) {
- throw new IllegalArgumentException("Socket not created by this factory"); //$NON-NLS-1$
- }
-
- if (sock.isClosed()) {
- throw new IllegalArgumentException("Socket is closed"); //$NON-NLS-1$
- }
-
- return true;
- }
-
- public Socket createLayeredSocket(final Socket socket, final String host, final int port, final boolean autoClose) throws IOException {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, ECFHttpClientSecureProtocolSocketFactory.class, "createLayeredSocket " + host + ":" + port + ",socket=" + socket); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- SSLSocket sslSocket = null;
- try {
- Trace.trace(Activator.PLUGIN_ID, "connectingLayeredSocket(original=" + socket + ",dest=" + host + ":" + port + ")"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$
- sslSocket = (SSLSocket) this.sslSocketFactory.createSocket(socket, host, port, autoClose);
- Trace.trace(Activator.PLUGIN_ID, "connected"); //$NON-NLS-1$
- } catch (IOException e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ECFHttpClientSecureProtocolSocketFactory.class, "createLayeredSocket", e); //$NON-NLS-1$
- fireEvent(this.socketConnectListener, new SocketClosedEvent(source, sslSocket, sslSocket));
- Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, ECFHttpClientSecureProtocolSocketFactory.class, "createSocket", e); //$NON-NLS-1$
- throw e;
- }
-
- return wrapSocket(sslSocket);
- }
-
- private Socket wrapSocket(Socket toWrap) {
- CloseMonitoringSocket wrappedSocket = new CloseMonitoringSocket(toWrap, socketConnectListener, source);
-
- SocketConnectedEvent connectedEvent = new SocketConnectedEvent(source, toWrap, wrappedSocket);
- fireEvent(socketConnectListener, connectedEvent);
-
- // Change the wrapped socket if one of the receivers of the SocketConnectedEvent changed it
- Socket connectedEventSocket = connectedEvent.getSocket();
- if (connectedEventSocket != wrappedSocket) {
- wrappedSocket.setWrappedSocket(connectedEventSocket);
- return connectedEventSocket;
- }
-
- return wrappedSocket;
- }
-
- static void fireEvent(final ISocketListener spyListener, ISocketEvent event) {
- if (spyListener != null) {
- spyListener.handleSocketEvent(event);
- }
- event.getSource().fireEvent(event);
- }
-
- public boolean equals(Object obj) {
- return ((obj != null) && obj.getClass().equals(ECFHttpClientSecureProtocolSocketFactory.class));
- }
-
- public int hashCode() {
- return ECFHttpClientSecureProtocolSocketFactory.class.hashCode();
- }
-
-}
+/******************************************************************************* + * Copyright (c) 2009 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 + * Thomas Joiner - HttpClient 4 implementation + *******************************************************************************/ +package org.eclipse.ecf.internal.provider.filetransfer.httpclient4; + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.net.SocketException; +import java.net.UnknownHostException; +import javax.net.ssl.SSLSocket; +import javax.net.ssl.SSLSocketFactory; +import org.apache.http.conn.ConnectTimeoutException; +import org.apache.http.conn.scheme.LayeredSchemeSocketFactory; +import org.apache.http.params.HttpConnectionParams; +import org.apache.http.params.HttpParams; +import org.eclipse.ecf.core.util.Trace; +import org.eclipse.ecf.filetransfer.events.socket.ISocketEvent; +import org.eclipse.ecf.filetransfer.events.socket.ISocketEventSource; +import org.eclipse.ecf.filetransfer.events.socket.ISocketListener; +import org.eclipse.ecf.provider.filetransfer.events.socket.SocketClosedEvent; +import org.eclipse.ecf.provider.filetransfer.events.socket.SocketConnectedEvent; +import org.eclipse.ecf.provider.filetransfer.events.socket.SocketCreatedEvent; + +public final class ECFHttpClientSecureProtocolSocketFactory implements LayeredSchemeSocketFactory { + + private final SSLSocketFactory sslSocketFactory; + private final ISocketEventSource source; + private final ISocketListener socketConnectListener; + + public ECFHttpClientSecureProtocolSocketFactory(final SSLSocketFactory sslSocketFactory, ISocketEventSource source, ISocketListener socketConnectListener) { + this.sslSocketFactory = sslSocketFactory; + this.source = source; + this.socketConnectListener = socketConnectListener; + } + + public Socket createSocket(final HttpParams params) { + Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, ECFHttpClientSecureProtocolSocketFactory.class, "createSocket"); //$NON-NLS-1$ + + Socket socket = new Socket(); + fireEvent(socketConnectListener, new SocketCreatedEvent(source, socket)); + + Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, ECFHttpClientSecureProtocolSocketFactory.class, "socketCreated " + socket); //$NON-NLS-1$ + return socket; + } + + public Socket connectSocket(final Socket socket, final InetSocketAddress remoteAddress, final InetSocketAddress localAddress, final HttpParams params) throws IOException, UnknownHostException, ConnectTimeoutException { + if (remoteAddress == null) { + throw new IllegalArgumentException("Remote address must not be null"); //$NON-NLS-1$ + } + if (params == null) { + throw new IllegalArgumentException("HTTP parameters must not be null"); //$NON-NLS-1$ + } + + if (socket == null) { + SSLSocket sslSocket = (SSLSocket) this.sslSocketFactory.createSocket(); + + performConnection(sslSocket, remoteAddress, localAddress, params); + + return wrapSocket(sslSocket); + } else if (socket instanceof SSLSocket) { + performConnection(socket, remoteAddress, localAddress, params); + + return wrapSocket(socket); + } + + // If we were given a unconnected socket, we need to connect it first + if (!socket.isConnected()) { + performConnection(socket, remoteAddress, localAddress, params); + } + + Socket layeredSocket = this.sslSocketFactory.createSocket(socket, remoteAddress.getHostName(), remoteAddress.getPort(), true); + + return wrapSocket(layeredSocket); + } + + private void performConnection(final Socket socket, final InetSocketAddress remoteAddress, final InetSocketAddress localAddress, final HttpParams params) throws SocketException, IOException { + try { + socket.setReuseAddress(HttpConnectionParams.getSoReuseaddr(params)); + socket.bind(localAddress); + + int connectionTimeout = HttpConnectionParams.getConnectionTimeout(params); + int socketTimeout = HttpConnectionParams.getSoTimeout(params); + + socket.connect(remoteAddress, connectionTimeout); + socket.setSoTimeout(socketTimeout); + } catch (SocketException e) { + Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ECFHttpClientSecureProtocolSocketFactory.class, "performConnection", e); //$NON-NLS-1$ + fireEvent(this.socketConnectListener, new SocketClosedEvent(source, socket, socket)); + Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, ECFHttpClientSecureProtocolSocketFactory.class, "performConnection", e); //$NON-NLS-1$ + throw e; + } catch (IOException e) { + Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ECFHttpClientSecureProtocolSocketFactory.class, "performConnection", e); //$NON-NLS-1$ + fireEvent(this.socketConnectListener, new SocketClosedEvent(source, socket, socket)); + Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, ECFHttpClientSecureProtocolSocketFactory.class, "performConnection", e); //$NON-NLS-1$ + throw e; + } + } + + public boolean isSecure(final Socket sock) throws IllegalArgumentException { + if (sock == null) { + throw new IllegalArgumentException("Socket must not be null"); //$NON-NLS-1$ + } + + if (sock instanceof CloseMonitoringSocket) { + return ((CloseMonitoringSocket) sock).isSecure(); + } + + if (!(sock instanceof SSLSocket)) { + throw new IllegalArgumentException("Socket not created by this factory"); //$NON-NLS-1$ + } + + if (sock.isClosed()) { + throw new IllegalArgumentException("Socket is closed"); //$NON-NLS-1$ + } + + return true; + } + + public Socket createLayeredSocket(final Socket socket, final String host, final int port, final boolean autoClose) throws IOException { + Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, ECFHttpClientSecureProtocolSocketFactory.class, "createLayeredSocket " + host + ":" + port + ",socket=" + socket); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + SSLSocket sslSocket = null; + try { + Trace.trace(Activator.PLUGIN_ID, "connectingLayeredSocket(original=" + socket + ",dest=" + host + ":" + port + ")"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$ + sslSocket = (SSLSocket) this.sslSocketFactory.createSocket(socket, host, port, autoClose); + Trace.trace(Activator.PLUGIN_ID, "connected"); //$NON-NLS-1$ + } catch (IOException e) { + Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ECFHttpClientSecureProtocolSocketFactory.class, "createLayeredSocket", e); //$NON-NLS-1$ + fireEvent(this.socketConnectListener, new SocketClosedEvent(source, sslSocket, sslSocket)); + Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, ECFHttpClientSecureProtocolSocketFactory.class, "createSocket", e); //$NON-NLS-1$ + throw e; + } + + return wrapSocket(sslSocket); + } + + private Socket wrapSocket(Socket toWrap) { + CloseMonitoringSocket wrappedSocket = new CloseMonitoringSocket(toWrap, socketConnectListener, source); + + SocketConnectedEvent connectedEvent = new SocketConnectedEvent(source, toWrap, wrappedSocket); + fireEvent(socketConnectListener, connectedEvent); + + // Change the wrapped socket if one of the receivers of the SocketConnectedEvent changed it + Socket connectedEventSocket = connectedEvent.getSocket(); + if (connectedEventSocket != wrappedSocket) { + wrappedSocket.setWrappedSocket(connectedEventSocket); + return connectedEventSocket; + } + + return wrappedSocket; + } + + static void fireEvent(final ISocketListener spyListener, ISocketEvent event) { + if (spyListener != null) { + spyListener.handleSocketEvent(event); + } + event.getSource().fireEvent(event); + } + + public boolean equals(Object obj) { + return ((obj != null) && obj.getClass().equals(ECFHttpClientSecureProtocolSocketFactory.class)); + } + + public int hashCode() { + return ECFHttpClientSecureProtocolSocketFactory.class.hashCode(); + } + +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/HttpClientProxyCredentialProvider.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/HttpClientProxyCredentialProvider.java index d136697a7..e8407f82e 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/HttpClientProxyCredentialProvider.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/HttpClientProxyCredentialProvider.java @@ -1,77 +1,77 @@ -/*******************************************************************************
- * Copyright (c) 2009 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
- * Thomas Joiner - HttpClient 4 implementation
- *******************************************************************************/
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.Credentials;
-import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.client.CredentialsProvider;
-import org.eclipse.ecf.core.util.Proxy;
-import org.eclipse.ecf.core.util.Trace;
-
-public abstract class HttpClientProxyCredentialProvider implements CredentialsProvider {
-
- abstract protected Proxy getECFProxy();
-
- abstract protected Credentials getNTLMCredentials(Proxy proxy);
-
- private Map cachedCredentials;
-
- public HttpClientProxyCredentialProvider() {
- cachedCredentials = new HashMap();
- }
-
- public void setCredentials(AuthScope authscope, Credentials credentials) {
- this.cachedCredentials.put(authscope, credentials);
- }
-
- public Credentials getCredentials(AuthScope authscope) {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, HttpClientProxyCredentialProvider.class, "getCredentials " + authscope); //$NON-NLS-1$
-
- if (this.cachedCredentials.containsKey(authscope)) {
- return (Credentials) this.cachedCredentials.get(authscope);
- }
-
- Proxy proxy = getECFProxy();
- if (proxy == null) {
- return null;
- }
-
- Credentials credentials = null;
- if ("ntlm".equalsIgnoreCase(authscope.getScheme())) { //$NON-NLS-1$
- credentials = getNTLMCredentials(proxy);
- } else if ("basic".equalsIgnoreCase(authscope.getScheme()) || //$NON-NLS-1$
- "digest".equalsIgnoreCase(authscope.getScheme())) { //$NON-NLS-1$
- final String proxyUsername = proxy.getUsername();
- final String proxyPassword = proxy.getPassword();
- if (proxyUsername != null) {
- credentials = new UsernamePasswordCredentials(proxyUsername, proxyPassword);
- }
- } else if ("negotiate".equalsIgnoreCase(authscope.getScheme())) { //$NON-NLS-1$
- Trace.trace(Activator.PLUGIN_ID, "SPNEGO is not supported, if you can contribute support, please do so."); //$NON-NLS-1$
- } else {
- Trace.trace(Activator.PLUGIN_ID, "Unrecognized authentication scheme."); //$NON-NLS-1$
- }
-
- if (credentials != null) {
- cachedCredentials.put(authscope, credentials);
- }
-
- return credentials;
- }
-
- public void clear() {
- this.cachedCredentials.clear();
- }
-}
+/******************************************************************************* + * Copyright (c) 2009 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 + * Thomas Joiner - HttpClient 4 implementation + *******************************************************************************/ +package org.eclipse.ecf.internal.provider.filetransfer.httpclient4; + +import java.util.HashMap; +import java.util.Map; +import org.apache.http.auth.AuthScope; +import org.apache.http.auth.Credentials; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.CredentialsProvider; +import org.eclipse.ecf.core.util.Proxy; +import org.eclipse.ecf.core.util.Trace; + +public abstract class HttpClientProxyCredentialProvider implements CredentialsProvider { + + abstract protected Proxy getECFProxy(); + + abstract protected Credentials getNTLMCredentials(Proxy proxy); + + private Map cachedCredentials; + + public HttpClientProxyCredentialProvider() { + cachedCredentials = new HashMap(); + } + + public void setCredentials(AuthScope authscope, Credentials credentials) { + this.cachedCredentials.put(authscope, credentials); + } + + public Credentials getCredentials(AuthScope authscope) { + Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, HttpClientProxyCredentialProvider.class, "getCredentials " + authscope); //$NON-NLS-1$ + + if (this.cachedCredentials.containsKey(authscope)) { + return (Credentials) this.cachedCredentials.get(authscope); + } + + Proxy proxy = getECFProxy(); + if (proxy == null) { + return null; + } + + Credentials credentials = null; + if ("ntlm".equalsIgnoreCase(authscope.getScheme())) { //$NON-NLS-1$ + credentials = getNTLMCredentials(proxy); + } else if ("basic".equalsIgnoreCase(authscope.getScheme()) || //$NON-NLS-1$ + "digest".equalsIgnoreCase(authscope.getScheme())) { //$NON-NLS-1$ + final String proxyUsername = proxy.getUsername(); + final String proxyPassword = proxy.getPassword(); + if (proxyUsername != null) { + credentials = new UsernamePasswordCredentials(proxyUsername, proxyPassword); + } + } else if ("negotiate".equalsIgnoreCase(authscope.getScheme())) { //$NON-NLS-1$ + Trace.trace(Activator.PLUGIN_ID, "SPNEGO is not supported, if you can contribute support, please do so."); //$NON-NLS-1$ + } else { + Trace.trace(Activator.PLUGIN_ID, "Unrecognized authentication scheme."); //$NON-NLS-1$ + } + + if (credentials != null) { + cachedCredentials.put(authscope, credentials); + } + + return credentials; + } + + public void clear() { + this.cachedCredentials.clear(); + } +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISSLSocketFactoryModifier.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISSLSocketFactoryModifier.java index a1b52508f..56e431ed4 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISSLSocketFactoryModifier.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISSLSocketFactoryModifier.java @@ -1,30 +1,30 @@ -/****************************************************************************
- * Copyright (c) 2008, 2009 Composent, Inc., IBM 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:
- * Composent, Inc. - initial API and implementation
- * Henrich Kraemer - bug 263869, testHttpsReceiveFile fails using HTTP proxy
- *****************************************************************************/
-
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-import java.io.IOException;
-import javax.net.ssl.SSLSocketFactory;
-import org.eclipse.ecf.filetransfer.events.socketfactory.INonconnectedSocketFactory;
-
-/**
- * Internal interface to allow for use of httpclient.ssl provided socket factory
- */
-public interface ISSLSocketFactoryModifier {
-
- public SSLSocketFactory getSSLSocketFactory() throws IOException;
-
- public INonconnectedSocketFactory getNonconnnectedSocketFactory();
-
- public void dispose();
-
-}
+/**************************************************************************** + * Copyright (c) 2008, 2009 Composent, Inc., IBM 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: + * Composent, Inc. - initial API and implementation + * Henrich Kraemer - bug 263869, testHttpsReceiveFile fails using HTTP proxy + *****************************************************************************/ + +package org.eclipse.ecf.internal.provider.filetransfer.httpclient4; + +import java.io.IOException; +import javax.net.ssl.SSLSocketFactory; +import org.eclipse.ecf.filetransfer.events.socketfactory.INonconnectedSocketFactory; + +/** + * Internal interface to allow for use of httpclient.ssl provided socket factory + */ +public interface ISSLSocketFactoryModifier { + + public SSLSocketFactory getSSLSocketFactory() throws IOException; + + public INonconnectedSocketFactory getNonconnnectedSocketFactory(); + + public void dispose(); + +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISocketConnectionCallback.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISocketConnectionCallback.java index 77d4f4f24..37c1615e3 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISocketConnectionCallback.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/ISocketConnectionCallback.java @@ -1,24 +1,24 @@ -/*******************************************************************************
-* Copyright (c) 2009 IBM, 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
-******************************************************************************/
-
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-import java.io.IOException;
-import java.net.Socket;
-
-public interface ISocketConnectionCallback {
- void onSocketCreated(Socket socket);
-
- void onSocketConnected(Socket socket);
-
- void onSocketConnectionFailed(Socket socket, IOException e);
-
-}
+/******************************************************************************* +* Copyright (c) 2009 IBM, 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 +******************************************************************************/ + +package org.eclipse.ecf.internal.provider.filetransfer.httpclient4; + +import java.io.IOException; +import java.net.Socket; + +public interface ISocketConnectionCallback { + void onSocketCreated(Socket socket); + + void onSocketConnected(Socket socket); + + void onSocketConnectionFailed(Socket socket, IOException e); + +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Messages.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Messages.java index d0d54a6de..da8532508 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Messages.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/Messages.java @@ -1,46 +1,46 @@ -/****************************************************************************
- * Copyright (c) 2007 IBM, Composent Inc. 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:
- * Composent, Inc. - initial API and implementation
- *****************************************************************************/
-
-package org.eclipse.ecf.internal.provider.filetransfer.httpclient4;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- *
- */
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.ecf.internal.provider.filetransfer.httpclient4.messages"; //$NON-NLS-1$
- public static String FileTransferNamespace_Http_Protocol;
- public static String FileTransferNamespace_Https_Protocol;
- public static String HttpClientRetrieveFileTransfer_CONNECTING_JOB_NAME;
- public static String HttpClientRetrieveFileTransfer_CONNECTING_TASK_NAME;
- public static String HttpClientRetrieveFileTransfer_Proxy_Auth_Required;
- public static String HttpClientRetrieveFileTransfer_Unauthorized;
- public static String HttpClientRetrieveFileTransfer_Username_Prefix;
- public static String HttpClientRetrieveFileTransfer_RESUME_START_POSITION_LESS_THAN_ZERO;
- public static String HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE;
- public static String HttpClientRetrieveFileTransfer_EXCEPITION_INVALID_LAST_MODIFIED_FROM_SERVER;
- public static String HttpClientRetrieveFileTransfer_EXCEPTION_FILE_MODIFIED_SINCE_LAST_ACCESS;
- public static String HttpClientRetrieveFileTransfer_RESUME_ERROR_END_POSITION_LESS_THAN_START;
- public static String HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT;
- public static String HttpClientRetrieveFileTransfer_INVALID_LAST_MODIFIED_TIME;
- public static String HttpClientRetrieveFileTransfer_INVALID_SERVER_RESPONSE_TO_PARTIAL_RANGE_REQUEST;
- public static String HttpClientRetrieveFileTransfer_RESUME_START_ERROR;
-
- static {
- // initialize resource bundle
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- private Messages() {
- // Generated
- }
-}
+/**************************************************************************** + * Copyright (c) 2007 IBM, Composent Inc. 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: + * Composent, Inc. - initial API and implementation + *****************************************************************************/ + +package org.eclipse.ecf.internal.provider.filetransfer.httpclient4; + +import org.eclipse.osgi.util.NLS; + +/** + * + */ +public class Messages extends NLS { + private static final String BUNDLE_NAME = "org.eclipse.ecf.internal.provider.filetransfer.httpclient4.messages"; //$NON-NLS-1$ + public static String FileTransferNamespace_Http_Protocol; + public static String FileTransferNamespace_Https_Protocol; + public static String HttpClientRetrieveFileTransfer_CONNECTING_JOB_NAME; + public static String HttpClientRetrieveFileTransfer_CONNECTING_TASK_NAME; + public static String HttpClientRetrieveFileTransfer_Proxy_Auth_Required; + public static String HttpClientRetrieveFileTransfer_Unauthorized; + public static String HttpClientRetrieveFileTransfer_Username_Prefix; + public static String HttpClientRetrieveFileTransfer_RESUME_START_POSITION_LESS_THAN_ZERO; + public static String HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE; + public static String HttpClientRetrieveFileTransfer_EXCEPITION_INVALID_LAST_MODIFIED_FROM_SERVER; + public static String HttpClientRetrieveFileTransfer_EXCEPTION_FILE_MODIFIED_SINCE_LAST_ACCESS; + public static String HttpClientRetrieveFileTransfer_RESUME_ERROR_END_POSITION_LESS_THAN_START; + public static String HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT; + public static String HttpClientRetrieveFileTransfer_INVALID_LAST_MODIFIED_TIME; + public static String HttpClientRetrieveFileTransfer_INVALID_SERVER_RESPONSE_TO_PARTIAL_RANGE_REQUEST; + public static String HttpClientRetrieveFileTransfer_RESUME_START_ERROR; + + static { + // initialize resource bundle + NLS.initializeMessages(BUNDLE_NAME, Messages.class); + } + + private Messages() { + // Generated + } +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/messages.properties b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/messages.properties index 76b4976de..b94674d30 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/messages.properties +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/internal/provider/filetransfer/httpclient4/messages.properties @@ -1,16 +1,16 @@ -HttpClientRetrieveFileTransfer_CONNECTING_JOB_NAME=: connecting.
-HttpClientRetrieveFileTransfer_CONNECTING_TASK_NAME=\ Connecting
-HttpClientRetrieveFileTransfer_Username_Prefix=Username:
-HttpClientRetrieveFileTransfer_Unauthorized=Unauthorized
-HttpClientRetrieveFileTransfer_Proxy_Auth_Required=Proxy Authentication Required
-FileTransferNamespace_Http_Protocol=http
-FileTransferNamespace_Https_Protocol=https
-HttpClientRetrieveFileTransfer_RESUME_START_POSITION_LESS_THAN_ZERO=start position cannot be less then 0
-HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE=HttpComponents connection error response code {0}.
-HttpClientRetrieveFileTransfer_EXCEPITION_INVALID_LAST_MODIFIED_FROM_SERVER=Invalid last modified value
-HttpClientRetrieveFileTransfer_EXCEPTION_FILE_MODIFIED_SINCE_LAST_ACCESS=file modified since last access
-HttpClientRetrieveFileTransfer_RESUME_ERROR_END_POSITION_LESS_THAN_START=end position cannot be less than or equal to start position
-HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT=Could not connect to {0}
-HttpClientRetrieveFileTransfer_INVALID_LAST_MODIFIED_TIME=Invalid last modified time from response header
-HttpClientRetrieveFileTransfer_INVALID_SERVER_RESPONSE_TO_PARTIAL_RANGE_REQUEST=invalid server response to partial range request
+HttpClientRetrieveFileTransfer_CONNECTING_JOB_NAME=: connecting. +HttpClientRetrieveFileTransfer_CONNECTING_TASK_NAME=\ Connecting +HttpClientRetrieveFileTransfer_Username_Prefix=Username: +HttpClientRetrieveFileTransfer_Unauthorized=Unauthorized +HttpClientRetrieveFileTransfer_Proxy_Auth_Required=Proxy Authentication Required +FileTransferNamespace_Http_Protocol=http +FileTransferNamespace_Https_Protocol=https +HttpClientRetrieveFileTransfer_RESUME_START_POSITION_LESS_THAN_ZERO=start position cannot be less then 0 +HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE=HttpComponents connection error response code {0}. +HttpClientRetrieveFileTransfer_EXCEPITION_INVALID_LAST_MODIFIED_FROM_SERVER=Invalid last modified value +HttpClientRetrieveFileTransfer_EXCEPTION_FILE_MODIFIED_SINCE_LAST_ACCESS=file modified since last access +HttpClientRetrieveFileTransfer_RESUME_ERROR_END_POSITION_LESS_THAN_START=end position cannot be less than or equal to start position +HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT=Could not connect to {0} +HttpClientRetrieveFileTransfer_INVALID_LAST_MODIFIED_TIME=Invalid last modified time from response header +HttpClientRetrieveFileTransfer_INVALID_SERVER_RESPONSE_TO_PARTIAL_RANGE_REQUEST=invalid server response to partial range request HttpClientRetrieveFileTransfer_RESUME_START_ERROR=resume start error
\ No newline at end of file diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientBrowseFileTransferFactory.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientBrowseFileTransferFactory.java index b315ba91a..ea022ba21 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientBrowseFileTransferFactory.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientBrowseFileTransferFactory.java @@ -1,72 +1,72 @@ -/****************************************************************************
- * Copyright (c) 2007 IBM, Composent Inc. 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:
- * Composent, Inc. - initial API and implementation
- * Thomas Joiner - HttpClient 4 implementation
- *****************************************************************************/
-package org.eclipse.ecf.provider.filetransfer.httpclient4;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.ecf.core.identity.IDFactory;
-import org.eclipse.ecf.core.identity.Namespace;
-import org.eclipse.ecf.core.security.IConnectContext;
-import org.eclipse.ecf.core.util.Proxy;
-import org.eclipse.ecf.filetransfer.IRemoteFileSystemListener;
-import org.eclipse.ecf.filetransfer.IRemoteFileSystemRequest;
-import org.eclipse.ecf.filetransfer.RemoteFileSystemException;
-import org.eclipse.ecf.filetransfer.identity.IFileID;
-import org.eclipse.ecf.filetransfer.service.IRemoteFileSystemBrowser;
-import org.eclipse.ecf.filetransfer.service.IRemoteFileSystemBrowserFactory;
-import org.eclipse.ecf.provider.filetransfer.identity.FileTransferNamespace;
-import org.eclipse.osgi.util.NLS;
-
-public class HttpClientBrowseFileTransferFactory implements IRemoteFileSystemBrowserFactory {
-
- public IRemoteFileSystemBrowser newInstance() {
- return new IRemoteFileSystemBrowser() {
-
- private Proxy proxy;
- private IConnectContext connectContext;
-
- public Namespace getBrowseNamespace() {
- return IDFactory.getDefault().getNamespaceByName(FileTransferNamespace.PROTOCOL);
- }
-
- public IRemoteFileSystemRequest sendBrowseRequest(IFileID directoryOrFileId, IRemoteFileSystemListener listener) throws RemoteFileSystemException {
- Assert.isNotNull(directoryOrFileId);
- Assert.isNotNull(listener);
- URL url;
- try {
- url = directoryOrFileId.getURL();
- } catch (final MalformedURLException e) {
- throw new RemoteFileSystemException(NLS.bind("Exception creating URL for {0}", directoryOrFileId)); //$NON-NLS-1$
- }
-
- HttpClientFileSystemBrowser browser = new HttpClientFileSystemBrowser(new DefaultHttpClient(), directoryOrFileId, listener, url, connectContext, proxy);
- return browser.sendBrowseRequest();
- }
-
- public void setConnectContextForAuthentication(IConnectContext connectContext) {
- this.connectContext = connectContext;
- }
-
- public void setProxy(Proxy proxy) {
- this.proxy = proxy;
- }
-
- public Object getAdapter(Class adapter) {
- return null;
- }
-
- };
-
- }
-}
+/**************************************************************************** + * Copyright (c) 2007 IBM, Composent Inc. 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: + * Composent, Inc. - initial API and implementation + * Thomas Joiner - HttpClient 4 implementation + *****************************************************************************/ +package org.eclipse.ecf.provider.filetransfer.httpclient4; + +import java.net.MalformedURLException; +import java.net.URL; +import org.apache.http.impl.client.DefaultHttpClient; +import org.eclipse.core.runtime.Assert; +import org.eclipse.ecf.core.identity.IDFactory; +import org.eclipse.ecf.core.identity.Namespace; +import org.eclipse.ecf.core.security.IConnectContext; +import org.eclipse.ecf.core.util.Proxy; +import org.eclipse.ecf.filetransfer.IRemoteFileSystemListener; +import org.eclipse.ecf.filetransfer.IRemoteFileSystemRequest; +import org.eclipse.ecf.filetransfer.RemoteFileSystemException; +import org.eclipse.ecf.filetransfer.identity.IFileID; +import org.eclipse.ecf.filetransfer.service.IRemoteFileSystemBrowser; +import org.eclipse.ecf.filetransfer.service.IRemoteFileSystemBrowserFactory; +import org.eclipse.ecf.provider.filetransfer.identity.FileTransferNamespace; +import org.eclipse.osgi.util.NLS; + +public class HttpClientBrowseFileTransferFactory implements IRemoteFileSystemBrowserFactory { + + public IRemoteFileSystemBrowser newInstance() { + return new IRemoteFileSystemBrowser() { + + private Proxy proxy; + private IConnectContext connectContext; + + public Namespace getBrowseNamespace() { + return IDFactory.getDefault().getNamespaceByName(FileTransferNamespace.PROTOCOL); + } + + public IRemoteFileSystemRequest sendBrowseRequest(IFileID directoryOrFileId, IRemoteFileSystemListener listener) throws RemoteFileSystemException { + Assert.isNotNull(directoryOrFileId); + Assert.isNotNull(listener); + URL url; + try { + url = directoryOrFileId.getURL(); + } catch (final MalformedURLException e) { + throw new RemoteFileSystemException(NLS.bind("Exception creating URL for {0}", directoryOrFileId)); //$NON-NLS-1$ + } + + HttpClientFileSystemBrowser browser = new HttpClientFileSystemBrowser(new DefaultHttpClient(), directoryOrFileId, listener, url, connectContext, proxy); + return browser.sendBrowseRequest(); + } + + public void setConnectContextForAuthentication(IConnectContext connectContext) { + this.connectContext = connectContext; + } + + public void setProxy(Proxy proxy) { + this.proxy = proxy; + } + + public Object getAdapter(Class adapter) { + return null; + } + + }; + + } +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientDefaultSSLSocketFactoryModifier.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientDefaultSSLSocketFactoryModifier.java index f7223edaa..cb59b4120 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientDefaultSSLSocketFactoryModifier.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientDefaultSSLSocketFactoryModifier.java @@ -1,79 +1,79 @@ -/****************************************************************************
- * Copyright (c) 2004, 2009 Composent, Inc., IBM 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:
- * Composent, Inc. - initial API and implementation
- * Henrich Kraemer - bug 263869, testHttpsReceiveFile fails using HTTP proxy
- *****************************************************************************/
-
-package org.eclipse.ecf.provider.filetransfer.httpclient4;
-
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ISSLSocketFactoryModifier;
-
-import java.io.IOException;
-import java.net.Socket;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLSocketFactory;
-import javax.net.ssl.TrustManager;
-import org.eclipse.ecf.core.util.StringUtils;
-import org.eclipse.ecf.filetransfer.events.socketfactory.INonconnectedSocketFactory;
-
-public class HttpClientDefaultSSLSocketFactoryModifier implements ISSLSocketFactoryModifier, INonconnectedSocketFactory {
- public static final String DEFAULT_SSL_PROTOCOL = "https.protocols"; //$NON-NLS-1$
-
- private SSLContext sslContext = null;
-
- private String defaultProtocolNames = System.getProperty(DEFAULT_SSL_PROTOCOL);
-
- public HttpClientDefaultSSLSocketFactoryModifier() {
- // empty
- }
-
- public SSLSocketFactory getSSLSocketFactory() throws IOException {
- if (null == sslContext) {
- try {
- sslContext = getSSLContext(defaultProtocolNames);
- } catch (Exception e) {
- IOException ioe = new IOException();
- ioe.initCause(e);
- throw ioe;
- }
- }
- return (sslContext == null) ? (SSLSocketFactory) SSLSocketFactory.getDefault() : sslContext.getSocketFactory();
- }
-
- public SSLContext getSSLContext(String protocols) {
- SSLContext rtvContext = null;
-
- if (protocols != null) {
- String protocolNames[] = StringUtils.split(protocols, ","); //$NON-NLS-1$
- for (int i = 0; i < protocolNames.length; i++) {
- try {
- rtvContext = SSLContext.getInstance(protocolNames[i]);
- sslContext.init(null, new TrustManager[] {new HttpClientSslTrustManager()}, null);
- break;
- } catch (Exception e) {
- // just continue
- }
- }
- }
- return rtvContext;
- }
-
- public Socket createSocket() throws IOException {
- return getSSLSocketFactory().createSocket();
- }
-
- public void dispose() {
- // empty
- }
-
- public INonconnectedSocketFactory getNonconnnectedSocketFactory() {
- return this;
- }
-
-}
+/**************************************************************************** + * Copyright (c) 2004, 2009 Composent, Inc., IBM 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: + * Composent, Inc. - initial API and implementation + * Henrich Kraemer - bug 263869, testHttpsReceiveFile fails using HTTP proxy + *****************************************************************************/ + +package org.eclipse.ecf.provider.filetransfer.httpclient4; + +import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ISSLSocketFactoryModifier; + +import java.io.IOException; +import java.net.Socket; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; +import org.eclipse.ecf.core.util.StringUtils; +import org.eclipse.ecf.filetransfer.events.socketfactory.INonconnectedSocketFactory; + +public class HttpClientDefaultSSLSocketFactoryModifier implements ISSLSocketFactoryModifier, INonconnectedSocketFactory { + public static final String DEFAULT_SSL_PROTOCOL = "https.protocols"; //$NON-NLS-1$ + + private SSLContext sslContext = null; + + private String defaultProtocolNames = System.getProperty(DEFAULT_SSL_PROTOCOL); + + public HttpClientDefaultSSLSocketFactoryModifier() { + // empty + } + + public SSLSocketFactory getSSLSocketFactory() throws IOException { + if (null == sslContext) { + try { + sslContext = getSSLContext(defaultProtocolNames); + } catch (Exception e) { + IOException ioe = new IOException(); + ioe.initCause(e); + throw ioe; + } + } + return (sslContext == null) ? (SSLSocketFactory) SSLSocketFactory.getDefault() : sslContext.getSocketFactory(); + } + + public SSLContext getSSLContext(String protocols) { + SSLContext rtvContext = null; + + if (protocols != null) { + String protocolNames[] = StringUtils.split(protocols, ","); //$NON-NLS-1$ + for (int i = 0; i < protocolNames.length; i++) { + try { + rtvContext = SSLContext.getInstance(protocolNames[i]); + sslContext.init(null, new TrustManager[] {new HttpClientSslTrustManager()}, null); + break; + } catch (Exception e) { + // just continue + } + } + } + return rtvContext; + } + + public Socket createSocket() throws IOException { + return getSSLSocketFactory().createSocket(); + } + + public void dispose() { + // empty + } + + public INonconnectedSocketFactory getNonconnnectedSocketFactory() { + return this; + } + +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientFileSystemBrowser.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientFileSystemBrowser.java index 9ed6b8d4e..1a668b885 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientFileSystemBrowser.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientFileSystemBrowser.java @@ -1,377 +1,377 @@ -/****************************************************************************
- * Copyright (c) 2008, 2010 Composent, Inc., IBM 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:
- * Composent, Inc. - initial API and implementation
- * Henrich Kraemer - bug 263869, testHttpsReceiveFile fails using HTTP proxy
- * Thomas Joiner - HttpClient 4 implementation
- *****************************************************************************/
-
-package org.eclipse.ecf.provider.filetransfer.httpclient4;
-
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Activator;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ConnectingSocketMonitor;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.DebugOptions;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.HttpClientProxyCredentialProvider;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Messages;
-
-import java.io.IOException;
-import java.net.HttpURLConnection;
-import java.net.Socket;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.apache.http.Header;
-import org.apache.http.HttpHost;
-import org.apache.http.HttpResponse;
-import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.Credentials;
-import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.auth.params.AuthPNames;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpHead;
-import org.apache.http.client.params.AuthPolicy;
-import org.apache.http.conn.params.ConnRouteParams;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.cookie.DateUtils;
-import org.apache.http.params.CoreConnectionPNames;
-import org.apache.http.protocol.BasicHttpContext;
-import org.apache.http.protocol.HttpContext;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.ecf.core.security.Callback;
-import org.eclipse.ecf.core.security.CallbackHandler;
-import org.eclipse.ecf.core.security.IConnectContext;
-import org.eclipse.ecf.core.security.NameCallback;
-import org.eclipse.ecf.core.security.ObjectCallback;
-import org.eclipse.ecf.core.security.UnsupportedCallbackException;
-import org.eclipse.ecf.core.util.Proxy;
-import org.eclipse.ecf.core.util.ProxyAddress;
-import org.eclipse.ecf.core.util.Trace;
-import org.eclipse.ecf.filetransfer.BrowseFileTransferException;
-import org.eclipse.ecf.filetransfer.IRemoteFile;
-import org.eclipse.ecf.filetransfer.IRemoteFileSystemListener;
-import org.eclipse.ecf.filetransfer.IRemoteFileSystemRequest;
-import org.eclipse.ecf.filetransfer.identity.IFileID;
-import org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser;
-import org.eclipse.ecf.provider.filetransfer.browse.URLRemoteFile;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketEventSource;
-import org.eclipse.ecf.provider.filetransfer.util.JREProxyHelper;
-import org.eclipse.ecf.provider.filetransfer.util.ProxySetupHelper;
-import org.eclipse.osgi.util.NLS;
-
-/**
- *
- */
-public class HttpClientFileSystemBrowser extends AbstractFileSystemBrowser {
-
- private static final String CONTENT_LENGTH_HEADER = "Content-Length"; //$NON-NLS-1$
-
- // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
- // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.browse.connectTimeout
- // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
- protected static final int DEFAULT_CONNECTION_TIMEOUT = HttpClientOptions.BROWSE_DEFAULT_CONNECTION_TIMEOUT;
-
- private static final String USERNAME_PREFIX = "Username:"; //$NON-NLS-1$
-
- private JREProxyHelper proxyHelper = null;
-
- private ConnectingSocketMonitor connectingSockets;
-
- protected String username = null;
-
- protected String password = null;
-
- protected DefaultHttpClient httpClient = null;
-
- protected volatile HttpHead headMethod;
-
- /**
- * This is the response returned by {@link HttpClient} when it executes
- * {@link #headMethod}.
- * @since 5.0
- */
- protected volatile HttpResponse httpResponse;
-
- /**
- * This is the context used to retain information about the request that
- * the {@link HttpClient} gathers during the request.
- * @since 5.0
- */
- protected volatile HttpContext httpContext;
-
- /**
- * @param directoryOrFileID
- * @param listener
- * @since 5.0
- */
- public HttpClientFileSystemBrowser(DefaultHttpClient httpClient, IFileID directoryOrFileID, IRemoteFileSystemListener listener, URL directoryOrFileURL, IConnectContext connectContext, Proxy proxy) {
- super(directoryOrFileID, listener, directoryOrFileURL, connectContext, proxy);
- Assert.isNotNull(httpClient);
- this.httpClient = httpClient;
- this.httpClient.setCredentialsProvider(new HttpClientProxyCredentialProvider() {
-
- protected Proxy getECFProxy() {
- return getProxy();
- }
-
- protected Credentials getNTLMCredentials(Proxy lp) {
- if (hasForceNTLMProxyOption())
- return HttpClientRetrieveFileTransfer.createNTLMCredentials(lp);
- return null;
- }
-
- });
- this.proxyHelper = new JREProxyHelper();
- this.connectingSockets = new ConnectingSocketMonitor(1);
-
- prepareAuth();
- }
-
- private void prepareAuth() {
- // SPNEGO is not supported, so remove it from the list
- List authpref = new ArrayList(3);
- authpref.add(AuthPolicy.NTLM);
- authpref.add(AuthPolicy.DIGEST);
- authpref.add(AuthPolicy.BASIC);
-
- httpClient.getParams().setParameter(AuthPNames.PROXY_AUTH_PREF, authpref);
- httpClient.getParams().setParameter(AuthPNames.TARGET_AUTH_PREF, authpref);
- }
-
- class HttpClientRemoteFileSystemRequest extends RemoteFileSystemRequest {
- protected SocketEventSource socketEventSource;
-
- HttpClientRemoteFileSystemRequest() {
- this.socketEventSource = new SocketEventSource() {
- public Object getAdapter(Class adapter) {
- if (adapter == null) {
- return null;
- }
- if (adapter.isInstance(this)) {
- return this;
- }
- if (adapter.isInstance(HttpClientRemoteFileSystemRequest.this)) {
- return HttpClientRemoteFileSystemRequest.this;
- }
- return null;
- }
- };
- }
-
- public Object getAdapter(Class adapter) {
- if (adapter == null) {
- return null;
- }
- return socketEventSource.getAdapter(adapter);
- }
-
- public void cancel() {
- HttpClientFileSystemBrowser.this.cancel();
- }
- }
-
- protected IRemoteFileSystemRequest createRemoteFileSystemRequest() {
- return new HttpClientRemoteFileSystemRequest();
- }
-
- protected void cancel() {
- if (isCanceled()) {
- return; // break job cancel recursion
- }
- setCanceled(getException());
- super.cancel();
- if (headMethod != null) {
- if (!headMethod.isAborted()) {
- headMethod.abort();
- }
- }
- if (connectingSockets != null) {
- // this should unblock socket connect calls, if any
- for (Iterator iterator = connectingSockets.getConnectingSockets().iterator(); iterator.hasNext();) {
- Socket socket = (Socket) iterator.next();
- try {
- socket.close();
- } catch (IOException e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "cancel", e); //$NON-NLS-1$
- }
- }
- }
-
- }
-
- protected boolean hasForceNTLMProxyOption() {
- return (System.getProperties().getProperty(HttpClientOptions.FORCE_NTLM_PROP) != null);
- }
-
- protected void setupProxies() {
- // If it's been set directly (via ECF API) then this overrides platform settings
- if (proxy == null) {
- try {
- // give SOCKS priority see https://bugs.eclipse.org/bugs/show_bug.cgi?id=295030#c61
- proxy = ProxySetupHelper.getSocksProxy(directoryOrFile);
- if (proxy == null) {
- proxy = ProxySetupHelper.getProxy(directoryOrFile.toExternalForm());
- }
- } catch (NoClassDefFoundError e) {
- // If the proxy API is not available a NoClassDefFoundError will be thrown here.
- // If that happens then we just want to continue on.
- Activator.logNoProxyWarning(e);
-
- }
- }
- if (proxy != null)
- setupProxy(proxy);
- }
-
- protected void cleanUp() {
- clearProxy();
-
- super.cleanUp();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser#runRequest()
- */
- protected void runRequest() throws Exception {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "runRequest"); //$NON-NLS-1$
- setupProxies();
- // set timeout
- httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, DEFAULT_CONNECTION_TIMEOUT);
- httpClient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, DEFAULT_CONNECTION_TIMEOUT);
-
- String urlString = directoryOrFile.toString();
- // setup authentication
- setupAuthentication(urlString);
-
- headMethod = new HttpHead(urlString);
- // set max-age for cache control to 0 for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=249990
- headMethod.addHeader("Cache-Control", "max-age=0"); //$NON-NLS-1$//$NON-NLS-2$
-
- long lastModified = 0;
- long fileLength = -1;
- connectingSockets.clear();
- int code = -1;
- try {
- Trace.trace(Activator.PLUGIN_ID, "browse=" + urlString); //$NON-NLS-1$
-
- httpContext = new BasicHttpContext();
- httpResponse = httpClient.execute(headMethod, httpContext);
- code = httpResponse.getStatusLine().getStatusCode();
-
- Trace.trace(Activator.PLUGIN_ID, "browse resp=" + code); //$NON-NLS-1$
-
- // Check for NTLM proxy in response headers
- // This check is to deal with bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=252002
- boolean ntlmProxyFound = NTLMProxyDetector.detectNTLMProxy(httpContext);
- if (ntlmProxyFound && !hasForceNTLMProxyOption())
- throw new BrowseFileTransferException("HttpClient Provider is not configured to support NTLM proxy authentication.", HttpClientOptions.NTLM_PROXY_RESPONSE_CODE); //$NON-NLS-1$
-
- if (NTLMProxyDetector.detectSPNEGOProxy(httpContext))
- throw new BrowseFileTransferException("HttpClient Provider does not support the use of SPNEGO proxy authentication."); //$NON-NLS-1$
-
- if (code == HttpURLConnection.HTTP_OK) {
- Header contentLength = httpResponse.getLastHeader(CONTENT_LENGTH_HEADER);
- if (contentLength != null) {
- fileLength = Integer.parseInt(contentLength.getValue());
- }
-
- lastModified = getLastModifiedTimeFromHeader();
- } else if (code == HttpURLConnection.HTTP_NOT_FOUND) {
- throw new BrowseFileTransferException(NLS.bind("File not found: {0}", urlString), code); //$NON-NLS-1$
- } else if (code == HttpURLConnection.HTTP_UNAUTHORIZED) {
- throw new BrowseFileTransferException(Messages.HttpClientRetrieveFileTransfer_Unauthorized, code);
- } else if (code == HttpURLConnection.HTTP_FORBIDDEN) {
- throw new BrowseFileTransferException("Forbidden", code); //$NON-NLS-1$
- } else if (code == HttpURLConnection.HTTP_PROXY_AUTH) {
- throw new BrowseFileTransferException(Messages.HttpClientRetrieveFileTransfer_Proxy_Auth_Required, code);
- } else {
- throw new BrowseFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE, new Integer(code)), code);
- }
- remoteFiles = new IRemoteFile[1];
- remoteFiles[0] = new URLRemoteFile(lastModified, fileLength, fileID);
- } catch (Exception e) {
- Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, this.getClass(), "runRequest", e); //$NON-NLS-1$
- BrowseFileTransferException ex = (BrowseFileTransferException) ((e instanceof BrowseFileTransferException) ? e : new BrowseFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT, urlString), e, code));
- throw ex;
- }
- }
-
- private long getLastModifiedTimeFromHeader() throws IOException {
- Header lastModifiedHeader = httpResponse.getLastHeader("Last-Modified"); //$NON-NLS-1$
- if (lastModifiedHeader == null)
- return 0L;
- String lastModifiedString = lastModifiedHeader.getValue();
- long lastModified = 0;
- if (lastModifiedString != null) {
- try {
- lastModified = DateUtils.parseDate(lastModifiedString).getTime();
- } catch (Exception e) {
- throw new IOException(Messages.HttpClientRetrieveFileTransfer_EXCEPITION_INVALID_LAST_MODIFIED_FROM_SERVER);
- }
- }
- return lastModified;
- }
-
- Proxy getProxy() {
- return proxy;
- }
-
- /**
- * Retrieves the credentials for requesting the file.
- * @return the {@link Credentials} necessary to retrieve the file
- * @throws UnsupportedCallbackException if the callback fails
- * @throws IOException if IO fails
- * @since 5.0
- */
- protected Credentials getFileRequestCredentials() throws UnsupportedCallbackException, IOException {
- if (connectContext == null)
- return null;
- final CallbackHandler callbackHandler = connectContext.getCallbackHandler();
- if (callbackHandler == null)
- return null;
- final NameCallback usernameCallback = new NameCallback(USERNAME_PREFIX);
- final ObjectCallback passwordCallback = new ObjectCallback();
- callbackHandler.handle(new Callback[] {usernameCallback, passwordCallback});
- username = usernameCallback.getName();
- password = (String) passwordCallback.getObject();
- return new UsernamePasswordCredentials(username, password);
- }
-
- protected void setupAuthentication(String urlString) throws UnsupportedCallbackException, IOException {
- Credentials credentials = null;
- if (username == null) {
- credentials = getFileRequestCredentials();
- }
-
- if (credentials != null && username != null) {
- final AuthScope authScope = new AuthScope(HttpClientRetrieveFileTransfer.getHostFromURL(urlString), HttpClientRetrieveFileTransfer.getPortFromURL(urlString), AuthScope.ANY_REALM);
- Trace.trace(Activator.PLUGIN_ID, "browse credentials=" + credentials); //$NON-NLS-1$
- httpClient.getCredentialsProvider().setCredentials(authScope, credentials);
- }
- }
-
- protected void setupProxy(Proxy proxy) {
- if (proxy.getType().equals(Proxy.Type.HTTP)) {
- final ProxyAddress address = proxy.getAddress();
- ConnRouteParams.setDefaultProxy(httpClient.getParams(), new HttpHost(address.getHostName(), address.getPort()));
- } else if (proxy.getType().equals(Proxy.Type.SOCKS)) {
- Trace.trace(Activator.PLUGIN_ID, "brows socksproxy=" + proxy.getAddress()); //$NON-NLS-1$
- proxyHelper.setupProxy(proxy);
- }
- }
-
- /**
- * This method will clear out the proxy information (so that if this is
- * reused for a request without a proxy, it will work correctly).
- * @since 5.0
- */
- protected void clearProxy() {
- ConnRouteParams.setDefaultProxy(httpClient.getParams(), null);
- }
-
-}
+/**************************************************************************** + * Copyright (c) 2008, 2010 Composent, Inc., IBM 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: + * Composent, Inc. - initial API and implementation + * Henrich Kraemer - bug 263869, testHttpsReceiveFile fails using HTTP proxy + * Thomas Joiner - HttpClient 4 implementation + *****************************************************************************/ + +package org.eclipse.ecf.provider.filetransfer.httpclient4; + +import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Activator; +import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ConnectingSocketMonitor; +import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.DebugOptions; +import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.HttpClientProxyCredentialProvider; +import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Messages; + +import java.io.IOException; +import java.net.HttpURLConnection; +import java.net.Socket; +import java.net.URL; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import org.apache.http.Header; +import org.apache.http.HttpHost; +import org.apache.http.HttpResponse; +import org.apache.http.auth.AuthScope; +import org.apache.http.auth.Credentials; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.auth.params.AuthPNames; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpHead; +import org.apache.http.client.params.AuthPolicy; +import org.apache.http.conn.params.ConnRouteParams; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.impl.cookie.DateUtils; +import org.apache.http.params.CoreConnectionPNames; +import org.apache.http.protocol.BasicHttpContext; +import org.apache.http.protocol.HttpContext; +import org.eclipse.core.runtime.Assert; +import org.eclipse.ecf.core.security.Callback; +import org.eclipse.ecf.core.security.CallbackHandler; +import org.eclipse.ecf.core.security.IConnectContext; +import org.eclipse.ecf.core.security.NameCallback; +import org.eclipse.ecf.core.security.ObjectCallback; +import org.eclipse.ecf.core.security.UnsupportedCallbackException; +import org.eclipse.ecf.core.util.Proxy; +import org.eclipse.ecf.core.util.ProxyAddress; +import org.eclipse.ecf.core.util.Trace; +import org.eclipse.ecf.filetransfer.BrowseFileTransferException; +import org.eclipse.ecf.filetransfer.IRemoteFile; +import org.eclipse.ecf.filetransfer.IRemoteFileSystemListener; +import org.eclipse.ecf.filetransfer.IRemoteFileSystemRequest; +import org.eclipse.ecf.filetransfer.identity.IFileID; +import org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser; +import org.eclipse.ecf.provider.filetransfer.browse.URLRemoteFile; +import org.eclipse.ecf.provider.filetransfer.events.socket.SocketEventSource; +import org.eclipse.ecf.provider.filetransfer.util.JREProxyHelper; +import org.eclipse.ecf.provider.filetransfer.util.ProxySetupHelper; +import org.eclipse.osgi.util.NLS; + +/** + * + */ +public class HttpClientFileSystemBrowser extends AbstractFileSystemBrowser { + + private static final String CONTENT_LENGTH_HEADER = "Content-Length"; //$NON-NLS-1$ + + // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246 + // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.browse.connectTimeout + // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995 + protected static final int DEFAULT_CONNECTION_TIMEOUT = HttpClientOptions.BROWSE_DEFAULT_CONNECTION_TIMEOUT; + + private static final String USERNAME_PREFIX = "Username:"; //$NON-NLS-1$ + + private JREProxyHelper proxyHelper = null; + + private ConnectingSocketMonitor connectingSockets; + + protected String username = null; + + protected String password = null; + + protected DefaultHttpClient httpClient = null; + + protected volatile HttpHead headMethod; + + /** + * This is the response returned by {@link HttpClient} when it executes + * {@link #headMethod}. + * @since 5.0 + */ + protected volatile HttpResponse httpResponse; + + /** + * This is the context used to retain information about the request that + * the {@link HttpClient} gathers during the request. + * @since 5.0 + */ + protected volatile HttpContext httpContext; + + /** + * @param directoryOrFileID + * @param listener + * @since 5.0 + */ + public HttpClientFileSystemBrowser(DefaultHttpClient httpClient, IFileID directoryOrFileID, IRemoteFileSystemListener listener, URL directoryOrFileURL, IConnectContext connectContext, Proxy proxy) { + super(directoryOrFileID, listener, directoryOrFileURL, connectContext, proxy); + Assert.isNotNull(httpClient); + this.httpClient = httpClient; + this.httpClient.setCredentialsProvider(new HttpClientProxyCredentialProvider() { + + protected Proxy getECFProxy() { + return getProxy(); + } + + protected Credentials getNTLMCredentials(Proxy lp) { + if (hasForceNTLMProxyOption()) + return HttpClientRetrieveFileTransfer.createNTLMCredentials(lp); + return null; + } + + }); + this.proxyHelper = new JREProxyHelper(); + this.connectingSockets = new ConnectingSocketMonitor(1); + + prepareAuth(); + } + + private void prepareAuth() { + // SPNEGO is not supported, so remove it from the list + List authpref = new ArrayList(3); + authpref.add(AuthPolicy.NTLM); + authpref.add(AuthPolicy.DIGEST); + authpref.add(AuthPolicy.BASIC); + + httpClient.getParams().setParameter(AuthPNames.PROXY_AUTH_PREF, authpref); + httpClient.getParams().setParameter(AuthPNames.TARGET_AUTH_PREF, authpref); + } + + class HttpClientRemoteFileSystemRequest extends RemoteFileSystemRequest { + protected SocketEventSource socketEventSource; + + HttpClientRemoteFileSystemRequest() { + this.socketEventSource = new SocketEventSource() { + public Object getAdapter(Class adapter) { + if (adapter == null) { + return null; + } + if (adapter.isInstance(this)) { + return this; + } + if (adapter.isInstance(HttpClientRemoteFileSystemRequest.this)) { + return HttpClientRemoteFileSystemRequest.this; + } + return null; + } + }; + } + + public Object getAdapter(Class adapter) { + if (adapter == null) { + return null; + } + return socketEventSource.getAdapter(adapter); + } + + public void cancel() { + HttpClientFileSystemBrowser.this.cancel(); + } + } + + protected IRemoteFileSystemRequest createRemoteFileSystemRequest() { + return new HttpClientRemoteFileSystemRequest(); + } + + protected void cancel() { + if (isCanceled()) { + return; // break job cancel recursion + } + setCanceled(getException()); + super.cancel(); + if (headMethod != null) { + if (!headMethod.isAborted()) { + headMethod.abort(); + } + } + if (connectingSockets != null) { + // this should unblock socket connect calls, if any + for (Iterator iterator = connectingSockets.getConnectingSockets().iterator(); iterator.hasNext();) { + Socket socket = (Socket) iterator.next(); + try { + socket.close(); + } catch (IOException e) { + Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "cancel", e); //$NON-NLS-1$ + } + } + } + + } + + protected boolean hasForceNTLMProxyOption() { + return (System.getProperties().getProperty(HttpClientOptions.FORCE_NTLM_PROP) != null); + } + + protected void setupProxies() { + // If it's been set directly (via ECF API) then this overrides platform settings + if (proxy == null) { + try { + // give SOCKS priority see https://bugs.eclipse.org/bugs/show_bug.cgi?id=295030#c61 + proxy = ProxySetupHelper.getSocksProxy(directoryOrFile); + if (proxy == null) { + proxy = ProxySetupHelper.getProxy(directoryOrFile.toExternalForm()); + } + } catch (NoClassDefFoundError e) { + // If the proxy API is not available a NoClassDefFoundError will be thrown here. + // If that happens then we just want to continue on. + Activator.logNoProxyWarning(e); + + } + } + if (proxy != null) + setupProxy(proxy); + } + + protected void cleanUp() { + clearProxy(); + + super.cleanUp(); + } + + /* (non-Javadoc) + * @see org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser#runRequest() + */ + protected void runRequest() throws Exception { + Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "runRequest"); //$NON-NLS-1$ + setupProxies(); + // set timeout + httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, DEFAULT_CONNECTION_TIMEOUT); + httpClient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, DEFAULT_CONNECTION_TIMEOUT); + + String urlString = directoryOrFile.toString(); + // setup authentication + setupAuthentication(urlString); + + headMethod = new HttpHead(urlString); + // set max-age for cache control to 0 for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=249990 + headMethod.addHeader("Cache-Control", "max-age=0"); //$NON-NLS-1$//$NON-NLS-2$ + + long lastModified = 0; + long fileLength = -1; + connectingSockets.clear(); + int code = -1; + try { + Trace.trace(Activator.PLUGIN_ID, "browse=" + urlString); //$NON-NLS-1$ + + httpContext = new BasicHttpContext(); + httpResponse = httpClient.execute(headMethod, httpContext); + code = httpResponse.getStatusLine().getStatusCode(); + + Trace.trace(Activator.PLUGIN_ID, "browse resp=" + code); //$NON-NLS-1$ + + // Check for NTLM proxy in response headers + // This check is to deal with bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=252002 + boolean ntlmProxyFound = NTLMProxyDetector.detectNTLMProxy(httpContext); + if (ntlmProxyFound && !hasForceNTLMProxyOption()) + throw new BrowseFileTransferException("HttpClient Provider is not configured to support NTLM proxy authentication.", HttpClientOptions.NTLM_PROXY_RESPONSE_CODE); //$NON-NLS-1$ + + if (NTLMProxyDetector.detectSPNEGOProxy(httpContext)) + throw new BrowseFileTransferException("HttpClient Provider does not support the use of SPNEGO proxy authentication."); //$NON-NLS-1$ + + if (code == HttpURLConnection.HTTP_OK) { + Header contentLength = httpResponse.getLastHeader(CONTENT_LENGTH_HEADER); + if (contentLength != null) { + fileLength = Integer.parseInt(contentLength.getValue()); + } + + lastModified = getLastModifiedTimeFromHeader(); + } else if (code == HttpURLConnection.HTTP_NOT_FOUND) { + throw new BrowseFileTransferException(NLS.bind("File not found: {0}", urlString), code); //$NON-NLS-1$ + } else if (code == HttpURLConnection.HTTP_UNAUTHORIZED) { + throw new BrowseFileTransferException(Messages.HttpClientRetrieveFileTransfer_Unauthorized, code); + } else if (code == HttpURLConnection.HTTP_FORBIDDEN) { + throw new BrowseFileTransferException("Forbidden", code); //$NON-NLS-1$ + } else if (code == HttpURLConnection.HTTP_PROXY_AUTH) { + throw new BrowseFileTransferException(Messages.HttpClientRetrieveFileTransfer_Proxy_Auth_Required, code); + } else { + throw new BrowseFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE, new Integer(code)), code); + } + remoteFiles = new IRemoteFile[1]; + remoteFiles[0] = new URLRemoteFile(lastModified, fileLength, fileID); + } catch (Exception e) { + Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, this.getClass(), "runRequest", e); //$NON-NLS-1$ + BrowseFileTransferException ex = (BrowseFileTransferException) ((e instanceof BrowseFileTransferException) ? e : new BrowseFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT, urlString), e, code)); + throw ex; + } + } + + private long getLastModifiedTimeFromHeader() throws IOException { + Header lastModifiedHeader = httpResponse.getLastHeader("Last-Modified"); //$NON-NLS-1$ + if (lastModifiedHeader == null) + return 0L; + String lastModifiedString = lastModifiedHeader.getValue(); + long lastModified = 0; + if (lastModifiedString != null) { + try { + lastModified = DateUtils.parseDate(lastModifiedString).getTime(); + } catch (Exception e) { + throw new IOException(Messages.HttpClientRetrieveFileTransfer_EXCEPITION_INVALID_LAST_MODIFIED_FROM_SERVER); + } + } + return lastModified; + } + + Proxy getProxy() { + return proxy; + } + + /** + * Retrieves the credentials for requesting the file. + * @return the {@link Credentials} necessary to retrieve the file + * @throws UnsupportedCallbackException if the callback fails + * @throws IOException if IO fails + * @since 5.0 + */ + protected Credentials getFileRequestCredentials() throws UnsupportedCallbackException, IOException { + if (connectContext == null) + return null; + final CallbackHandler callbackHandler = connectContext.getCallbackHandler(); + if (callbackHandler == null) + return null; + final NameCallback usernameCallback = new NameCallback(USERNAME_PREFIX); + final ObjectCallback passwordCallback = new ObjectCallback(); + callbackHandler.handle(new Callback[] {usernameCallback, passwordCallback}); + username = usernameCallback.getName(); + password = (String) passwordCallback.getObject(); + return new UsernamePasswordCredentials(username, password); + } + + protected void setupAuthentication(String urlString) throws UnsupportedCallbackException, IOException { + Credentials credentials = null; + if (username == null) { + credentials = getFileRequestCredentials(); + } + + if (credentials != null && username != null) { + final AuthScope authScope = new AuthScope(HttpClientRetrieveFileTransfer.getHostFromURL(urlString), HttpClientRetrieveFileTransfer.getPortFromURL(urlString), AuthScope.ANY_REALM); + Trace.trace(Activator.PLUGIN_ID, "browse credentials=" + credentials); //$NON-NLS-1$ + httpClient.getCredentialsProvider().setCredentials(authScope, credentials); + } + } + + protected void setupProxy(Proxy proxy) { + if (proxy.getType().equals(Proxy.Type.HTTP)) { + final ProxyAddress address = proxy.getAddress(); + ConnRouteParams.setDefaultProxy(httpClient.getParams(), new HttpHost(address.getHostName(), address.getPort())); + } else if (proxy.getType().equals(Proxy.Type.SOCKS)) { + Trace.trace(Activator.PLUGIN_ID, "brows socksproxy=" + proxy.getAddress()); //$NON-NLS-1$ + proxyHelper.setupProxy(proxy); + } + } + + /** + * This method will clear out the proxy information (so that if this is + * reused for a request without a proxy, it will work correctly). + * @since 5.0 + */ + protected void clearProxy() { + ConnRouteParams.setDefaultProxy(httpClient.getParams(), null); + } + +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientOptions.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientOptions.java index 6307add4e..ed576d2e7 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientOptions.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientOptions.java @@ -1,47 +1,47 @@ -/*******************************************************************************
-* Copyright (c) 2009 EclipseSource 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:
-* EclipseSource - initial API and implementation
-******************************************************************************/
-package org.eclipse.ecf.provider.filetransfer.httpclient4;
-
-/**
- * @since 4.0
- */
-public interface HttpClientOptions {
- // HttpClient response code that indicates that NTLM proxy is asking for authentication
- // and httpclient cannot handle NTLMv2 proxies
- public int NTLM_PROXY_RESPONSE_CODE = 477;
- // System property that indicates that NTLM proxy usage should be forced (i.e. not rejected)
- // The property key is: org.eclipse.ecf.provider.filetransfer.httpclient4.options.ForceNTLMProxy
- // The value of the property must be non-null, but is not otherwise used.
- public String FORCE_NTLM_PROP = "org.eclipse.ecf.provider.filetransfer.httpclient4.options.ForceNTLMProxy"; //$NON-NLS-1$
-
- // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
- // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.connectTimeout
- // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
- /**
- * @since 4.0
- */
- public static final int RETRIEVE_DEFAULT_CONNECTION_TIMEOUT = new Integer(System.getProperty("org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.connectTimeout", "120000")).intValue(); //$NON-NLS-1$ //$NON-NLS-2$
- // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
- // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.readTimeout
- // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
- /**
- * @since 4.0
- */
- public static final int RETRIEVE_DEFAULT_READ_TIMEOUT = new Integer(System.getProperty("org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.readTimeout", "120000")).intValue(); //$NON-NLS-1$ //$NON-NLS-2$
-
- // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
- // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.browse.connectTimeout
- // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
- /**
- * @since 4.0
- */
- public static final int BROWSE_DEFAULT_CONNECTION_TIMEOUT = new Integer(System.getProperty("org.eclipse.ecf.provider.filetransfer.httpclient4.browse.connectTimeout", "120000")).intValue(); //$NON-NLS-1$ //$NON-NLS-2$;
-
-}
+/******************************************************************************* +* Copyright (c) 2009 EclipseSource 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: +* EclipseSource - initial API and implementation +******************************************************************************/ +package org.eclipse.ecf.provider.filetransfer.httpclient4; + +/** + * @since 4.0 + */ +public interface HttpClientOptions { + // HttpClient response code that indicates that NTLM proxy is asking for authentication + // and httpclient cannot handle NTLMv2 proxies + public int NTLM_PROXY_RESPONSE_CODE = 477; + // System property that indicates that NTLM proxy usage should be forced (i.e. not rejected) + // The property key is: org.eclipse.ecf.provider.filetransfer.httpclient4.options.ForceNTLMProxy + // The value of the property must be non-null, but is not otherwise used. + public String FORCE_NTLM_PROP = "org.eclipse.ecf.provider.filetransfer.httpclient4.options.ForceNTLMProxy"; //$NON-NLS-1$ + + // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246 + // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.connectTimeout + // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995 + /** + * @since 4.0 + */ + public static final int RETRIEVE_DEFAULT_CONNECTION_TIMEOUT = new Integer(System.getProperty("org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.connectTimeout", "120000")).intValue(); //$NON-NLS-1$ //$NON-NLS-2$ + // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246 + // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.readTimeout + // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995 + /** + * @since 4.0 + */ + public static final int RETRIEVE_DEFAULT_READ_TIMEOUT = new Integer(System.getProperty("org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.readTimeout", "120000")).intValue(); //$NON-NLS-1$ //$NON-NLS-2$ + + // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246 + // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.browse.connectTimeout + // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995 + /** + * @since 4.0 + */ + public static final int BROWSE_DEFAULT_CONNECTION_TIMEOUT = new Integer(System.getProperty("org.eclipse.ecf.provider.filetransfer.httpclient4.browse.connectTimeout", "120000")).intValue(); //$NON-NLS-1$ //$NON-NLS-2$; + +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransfer.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransfer.java index 529b059fc..0c14292ff 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransfer.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransfer.java @@ -1,1120 +1,1120 @@ -/*******************************************************************************
- * Copyright (c) 2004, 2010 Composent, Inc., IBM 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:
- * Composent, Inc. - initial API and implementation
- * Maarten Meijer - bug 237936, added gzip encoded transfer default
- * Henrich Kraemer - bug 263869, testHttpsReceiveFile fails using HTTP proxy
- * Henrich Kraemer - bug 263613, [transport] Update site contacting / downloading is not cancelable
- * Thomas Joiner - HttpClient 4 implementation
- ******************************************************************************/
-package org.eclipse.ecf.provider.filetransfer.httpclient4;
-
-import java.io.FilterInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.net.InetAddress;
-import java.net.Socket;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import javax.net.SocketFactory;
-import javax.net.ssl.SSLSocketFactory;
-import org.apache.http.Header;
-import org.apache.http.HttpHost;
-import org.apache.http.HttpResponse;
-import org.apache.http.ProtocolVersion;
-import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.Credentials;
-import org.apache.http.auth.NTCredentials;
-import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.auth.params.AuthPNames;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.params.AuthPolicy;
-import org.apache.http.client.protocol.RequestAcceptEncoding;
-import org.apache.http.client.protocol.ResponseContentEncoding;
-import org.apache.http.conn.params.ConnRouteParams;
-import org.apache.http.conn.scheme.Scheme;
-import org.apache.http.conn.scheme.SchemeRegistry;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.cookie.DateUtils;
-import org.apache.http.params.CoreConnectionPNames;
-import org.apache.http.protocol.BasicHttpContext;
-import org.apache.http.protocol.HttpContext;
-import org.apache.http.util.EntityUtils;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.security.Callback;
-import org.eclipse.ecf.core.security.CallbackHandler;
-import org.eclipse.ecf.core.security.IConnectContext;
-import org.eclipse.ecf.core.security.NameCallback;
-import org.eclipse.ecf.core.security.ObjectCallback;
-import org.eclipse.ecf.core.security.UnsupportedCallbackException;
-import org.eclipse.ecf.core.util.ECFRuntimeException;
-import org.eclipse.ecf.core.util.Proxy;
-import org.eclipse.ecf.core.util.ProxyAddress;
-import org.eclipse.ecf.core.util.Trace;
-import org.eclipse.ecf.filetransfer.BrowseFileTransferException;
-import org.eclipse.ecf.filetransfer.FileTransferJob;
-import org.eclipse.ecf.filetransfer.IFileRangeSpecification;
-import org.eclipse.ecf.filetransfer.IFileTransferPausable;
-import org.eclipse.ecf.filetransfer.IFileTransferRunnable;
-import org.eclipse.ecf.filetransfer.IRetrieveFileTransferOptions;
-import org.eclipse.ecf.filetransfer.IncomingFileTransferException;
-import org.eclipse.ecf.filetransfer.InvalidFileRangeSpecificationException;
-import org.eclipse.ecf.filetransfer.events.IFileTransferConnectStartEvent;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketEventSource;
-import org.eclipse.ecf.filetransfer.events.socket.ISocketListener;
-import org.eclipse.ecf.filetransfer.identity.IFileID;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Activator;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ConnectingSocketMonitor;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.DebugOptions;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ECFHttpClientProtocolSocketFactory;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ECFHttpClientSecureProtocolSocketFactory;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.HttpClientProxyCredentialProvider;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ISSLSocketFactoryModifier;
-import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Messages;
-import org.eclipse.ecf.provider.filetransfer.events.socket.SocketEventSource;
-import org.eclipse.ecf.provider.filetransfer.identity.FileTransferID;
-import org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer;
-import org.eclipse.ecf.provider.filetransfer.retrieve.HttpHelper;
-import org.eclipse.ecf.provider.filetransfer.util.JREProxyHelper;
-import org.eclipse.ecf.provider.filetransfer.util.ProxySetupHelper;
-import org.eclipse.osgi.util.NLS;
-
-public class HttpClientRetrieveFileTransfer extends AbstractRetrieveFileTransfer {
-
- private static final String USERNAME_PREFIX = Messages.HttpClientRetrieveFileTransfer_Username_Prefix;
-
- // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
- // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.connectTimeout
- // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
- protected static final int DEFAULT_CONNECTION_TIMEOUT = HttpClientOptions.RETRIEVE_DEFAULT_CONNECTION_TIMEOUT;
- // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246
- // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.readTimeout
- // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995
- protected static final int DEFAULT_READ_TIMEOUT = HttpClientOptions.RETRIEVE_DEFAULT_READ_TIMEOUT;
-
- protected static final int HTTP_PORT = 80;
-
- protected static final int HTTPS_PORT = 443;
-
- protected static final int MAX_RETRY = 2;
-
- protected static final String HTTPS = Messages.FileTransferNamespace_Https_Protocol;
-
- protected static final String HTTP = Messages.FileTransferNamespace_Http_Protocol;
-
- protected static final String[] supportedProtocols = {HTTP, HTTPS};
-
- private static final String LAST_MODIFIED_HEADER = "Last-Modified"; //$NON-NLS-1$
-
- private HttpGet getMethod = null;
-
- private HttpResponse httpResponse = null;
-
- private HttpContext httpContext = null;
-
- private DefaultHttpClient httpClient = null;
-
- private String username;
-
- private String password;
-
- private int responseCode = -1;
- private volatile boolean doneFired = false;
-
- private String remoteFileName;
-
- protected int httpVersion = 1;
-
- protected IFileID fileid = null;
-
- protected JREProxyHelper proxyHelper = null;
-
- private SocketEventSource socketEventSource;
-
- private ConnectingSocketMonitor connectingSockets;
- private FileTransferJob connectJob;
-
- /**
- * @since 5.0
- */
- public HttpClientRetrieveFileTransfer(DefaultHttpClient httpClient) {
- this.httpClient = httpClient;
- Assert.isNotNull(this.httpClient);
- this.httpClient.setCredentialsProvider(new ECFCredentialsProvider());
- proxyHelper = new JREProxyHelper();
- connectingSockets = new ConnectingSocketMonitor(1);
- socketEventSource = new SocketEventSource() {
- public Object getAdapter(Class adapter) {
- if (adapter == null) {
- return null;
- }
- if (adapter.isInstance(this)) {
- return this;
- }
- return HttpClientRetrieveFileTransfer.this.getAdapter(adapter);
- }
-
- };
-
- registerSchemes(socketEventSource, connectingSockets);
- }
-
- private void registerSchemes(ISocketEventSource source, ISocketListener socketListener) {
- SchemeRegistry schemeRegistry = this.httpClient.getConnectionManager().getSchemeRegistry();
-
- Scheme http = new Scheme(HttpClientRetrieveFileTransfer.HTTP, HTTP_PORT, new ECFHttpClientProtocolSocketFactory(SocketFactory.getDefault(), source, socketListener));
-
- Trace.trace(Activator.PLUGIN_ID, "registering http scheme"); //$NON-NLS-1$
- schemeRegistry.register(http);
-
- ISSLSocketFactoryModifier sslSocketFactoryModifier = Activator.getDefault().getSSLSocketFactoryModifier();
-
- if (sslSocketFactoryModifier == null) {
- sslSocketFactoryModifier = new HttpClientDefaultSSLSocketFactoryModifier();
- }
-
- SSLSocketFactory sslSocketFactory = null;
- try {
- sslSocketFactory = sslSocketFactoryModifier.getSSLSocketFactory();
- } catch (IOException e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ISSLSocketFactoryModifier.class, "getSSLSocketFactory()", e); //$NON-NLS-1$
- Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, HttpClientRetrieveFileTransfer.class, "registerSchemes()", e); //$NON-NLS-1$
- throw new ECFRuntimeException("Unable to instantiate schemes for HttpClient.", e); //$NON-NLS-1$
- }
-
- Scheme https = new Scheme(HttpClientRetrieveFileTransfer.HTTPS, HTTPS_PORT, new ECFHttpClientSecureProtocolSocketFactory(sslSocketFactory, source, socketListener));
- Trace.trace(Activator.PLUGIN_ID, "registering https scheme; modifier=" + sslSocketFactoryModifier); //$NON-NLS-1$
- schemeRegistry.register(https);
-
- // SPNEGO is not supported, so remove it from the list
- List authpref = new ArrayList(3);
- authpref.add(AuthPolicy.NTLM);
- authpref.add(AuthPolicy.DIGEST);
- authpref.add(AuthPolicy.BASIC);
-
- httpClient.getParams().setParameter(AuthPNames.PROXY_AUTH_PREF, authpref);
- httpClient.getParams().setParameter(AuthPNames.TARGET_AUTH_PREF, authpref);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#getRemoteFileName()
- */
- public String getRemoteFileName() {
- return remoteFileName;
- }
-
- public synchronized void cancel() {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "cancel"); //$NON-NLS-1$
- if (isCanceled()) {
- return; // break job cancel recursion
- }
- setDoneCanceled(exception);
- boolean fireDoneEvent = true;
- if (connectJob != null) {
- Trace.trace(Activator.PLUGIN_ID, "calling connectJob.cancel()"); //$NON-NLS-1$
- connectJob.cancel();
- }
- synchronized (jobLock) {
- if (job != null) {
- // Its the transfer jobs responsibility to throw the event.
- fireDoneEvent = false;
- Trace.trace(Activator.PLUGIN_ID, "calling transfer job.cancel()"); //$NON-NLS-1$
- job.cancel();
- }
- }
- if (getMethod != null) {
- if (!getMethod.isAborted()) {
- Trace.trace(Activator.PLUGIN_ID, "calling getMethod.abort()"); //$NON-NLS-1$
- getMethod.abort();
- }
- }
- if (connectingSockets != null) {
- // this should unblock socket connect calls, if any
- for (Iterator iterator = connectingSockets.getConnectingSockets().iterator(); iterator.hasNext();) {
- Socket socket = (Socket) iterator.next();
- try {
- Trace.trace(Activator.PLUGIN_ID, "Call socket.close() for socket=" + socket.toString()); //$NON-NLS-1$
- socket.close();
- } catch (IOException e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "cancel", e); //$NON-NLS-1$
- }
- }
- }
- hardClose();
- if (fireDoneEvent) {
- fireTransferReceiveDoneEvent();
- }
- Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, this.getClass(), "cancel");//$NON-NLS-1$
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#hardClose()
- */
- protected void hardClose() {
- // changed for addressing bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=389292
- if (getMethod != null) {
- // First, if !isDone and paused
- if (!isDone() && isPaused())
- getMethod.abort();
- // release in any case
- //getMethod.releaseConnection();
- // and set to null
- getMethod = null;
- }
- // Close output stream...if we're supposed to
- try {
- if (localFileContents != null && closeOutputStream)
- localFileContents.close();
- } catch (final IOException e) {
- Activator.getDefault().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR, "hardClose", e)); //$NON-NLS-1$
- }
- // clear input and output streams
- remoteFileContents = null;
- localFileContents = null;
- // reset response code
- responseCode = -1;
- // If we're done and proxy helper still exists, then dispose
- if (proxyHelper != null && isDone()) {
- proxyHelper.dispose();
- proxyHelper = null;
- }
- }
-
- /**
- * @since 5.0
- */
- protected Credentials getFileRequestCredentials() throws UnsupportedCallbackException, IOException {
- if (connectContext == null)
- return null;
- final CallbackHandler callbackHandler = connectContext.getCallbackHandler();
- if (callbackHandler == null)
- return null;
- final NameCallback usernameCallback = new NameCallback(USERNAME_PREFIX);
- final ObjectCallback passwordCallback = new ObjectCallback();
- callbackHandler.handle(new Callback[] {usernameCallback, passwordCallback});
- username = usernameCallback.getName();
- password = (String) passwordCallback.getObject();
- return new UsernamePasswordCredentials(username, password);
- }
-
- protected void setupProxies() {
- // If it's been set directly (via ECF API) then this overrides platform settings
- if (proxy == null) {
- try {
- // give SOCKS priority see https://bugs.eclipse.org/bugs/show_bug.cgi?id=295030#c61
- proxy = ProxySetupHelper.getSocksProxy(getRemoteFileURL());
- if (proxy == null) {
- proxy = ProxySetupHelper.getProxy(getRemoteFileURL().toExternalForm());
- }
- } catch (NoClassDefFoundError e) {
- // If the proxy API is not available a NoClassDefFoundError will be thrown here.
- // If that happens then we just want to continue on.
- Activator.logNoProxyWarning(e);
- }
- }
- if (proxy != null)
- setupProxy(proxy);
- }
-
- protected synchronized void resetDoneAndException() {
- // Doesn't match the description, but since it should be cleared before it is
- // reused, this is the best place.
- clearProxy();
-
- super.resetDoneAndException();
- }
-
- protected void setupAuthentication(String urlString) throws UnsupportedCallbackException, IOException {
- Credentials credentials = null;
- if (username == null) {
- credentials = getFileRequestCredentials();
- }
-
- if (credentials != null && username != null) {
- final AuthScope authScope = new AuthScope(getHostFromURL(urlString), getPortFromURL(urlString), AuthScope.ANY_REALM);
- Trace.trace(Activator.PLUGIN_ID, "retrieve credentials=" + credentials); //$NON-NLS-1$
- httpClient.getCredentialsProvider().setCredentials(authScope, credentials);
- }
- }
-
- protected void setRequestHeaderValues() throws InvalidFileRangeSpecificationException {
- final IFileRangeSpecification rangeSpec = getFileRangeSpecification();
- if (rangeSpec != null) {
- final long startPosition = rangeSpec.getStartPosition();
- final long endPosition = rangeSpec.getEndPosition();
- if (startPosition < 0)
- throw new InvalidFileRangeSpecificationException(Messages.HttpClientRetrieveFileTransfer_RESUME_START_POSITION_LESS_THAN_ZERO, rangeSpec);
- if (endPosition != -1L && endPosition <= startPosition)
- throw new InvalidFileRangeSpecificationException(Messages.HttpClientRetrieveFileTransfer_RESUME_ERROR_END_POSITION_LESS_THAN_START, rangeSpec);
- String rangeHeader = "bytes=" + startPosition + "-" + ((endPosition == -1L) ? "" : ("" + endPosition)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- Trace.trace(Activator.PLUGIN_ID, "retrieve range header=" + rangeHeader); //$NON-NLS-1$
- setRangeHeader(rangeHeader);
- }
- // set max-age for cache control to 0 for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=249990
- getMethod.addHeader("Cache-Control", "max-age=0"); //$NON-NLS-1$//$NON-NLS-2$
- setRequestHeaderValuesFromOptions();
- }
-
- private void setRequestHeaderValuesFromOptions() {
- Map localOptions = getOptions();
- if (localOptions != null) {
- Object o = localOptions.get(IRetrieveFileTransferOptions.REQUEST_HEADERS);
- if (o != null && o instanceof Map) {
- Map requestHeaders = (Map) o;
- for (Iterator i = requestHeaders.keySet().iterator(); i.hasNext();) {
- Object n = i.next();
- Object v = requestHeaders.get(n);
- if (n != null && n instanceof String && v != null && v instanceof String)
- getMethod.addHeader((String) n, (String) v);
- }
- }
- }
- }
-
- private void setRangeHeader(String value) {
- getMethod.addHeader("Range", value); //$NON-NLS-1$
- }
-
- private boolean isHTTP11() {
- return (httpVersion >= 1);
- }
-
- public int getResponseCode() {
- if (responseCode != -1)
- return responseCode;
- ProtocolVersion version = getMethod.getProtocolVersion();
- if (version == null) {
- responseCode = -1;
- httpVersion = 1;
- return responseCode;
- }
- httpVersion = version.getMinor();
- responseCode = httpResponse.getStatusLine().getStatusCode();
- return responseCode;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ecf.core.identity.IIdentifiable#getID()
- */
- public ID getID() {
- return fileid;
- }
-
- private long getLastModifiedTimeFromHeader() throws IOException {
- Header lastModifiedHeader = httpResponse.getLastHeader(LAST_MODIFIED_HEADER);
- if (lastModifiedHeader == null)
- throw new IOException(Messages.HttpClientRetrieveFileTransfer_INVALID_LAST_MODIFIED_TIME);
-
- String lastModifiedString = lastModifiedHeader.getValue();
- long lastModified = 0;
- if (lastModifiedString != null) {
- try {
- lastModified = DateUtils.parseDate(lastModifiedString).getTime();
- } catch (Exception e) {
- throw new IOException(Messages.HttpClientRetrieveFileTransfer_EXCEPITION_INVALID_LAST_MODIFIED_FROM_SERVER);
- }
- }
- return lastModified;
- }
-
- protected void getResponseHeaderValues() throws IOException {
- if (getResponseCode() == -1)
- throw new IOException(Messages.HttpClientRetrieveFileTransfer_INVALID_SERVER_RESPONSE_TO_PARTIAL_RANGE_REQUEST);
- Header lastModifiedHeader = httpResponse.getLastHeader(LAST_MODIFIED_HEADER);
- if (lastModifiedHeader != null) {
- setLastModifiedTime(getLastModifiedTimeFromHeader());
- }
- setFileLength(httpResponse.getEntity().getContentLength());
- fileid = new FileTransferID(getRetrieveNamespace(), getRemoteFileURL());
-
- // Get content disposition header and get remote file name from it if possible.
- Header contentDispositionHeader = httpResponse.getLastHeader(HttpHelper.CONTENT_DISPOSITION_HEADER);
- if (contentDispositionHeader != null) {
- remoteFileName = HttpHelper.getRemoteFileNameFromContentDispositionHeader(contentDispositionHeader.getValue());
- }
- // If still null, get the path from httpclient.getMethod()
- if (remoteFileName == null) {
- // No name could be extracted using Content-Disposition. Let's try the
- // path from the getMethod.
- String pathStr = getMethod.getRequestLine().getUri();
- if (pathStr != null && pathStr.length() > 0) {
- IPath path = Path.fromPortableString(pathStr);
- if (path.segmentCount() > 0)
- remoteFileName = path.lastSegment();
- }
- // If still null, use the input file name
- if (remoteFileName == null)
- // Last resort. Use the path of the initial URL request
- remoteFileName = super.getRemoteFileName();
- }
- }
-
- final class ECFCredentialsProvider extends HttpClientProxyCredentialProvider {
-
- protected Proxy getECFProxy() {
- return getProxy();
- }
-
- protected Credentials getNTLMCredentials(Proxy lp) {
- if (hasForceNTLMProxyOption())
- return HttpClientRetrieveFileTransfer.createNTLMCredentials(lp);
- return null;
- }
-
- }
-
- Proxy getProxy() {
- return proxy;
- }
-
- protected void setInputStream(InputStream ins) {
- remoteFileContents = ins;
- }
-
- protected InputStream wrapTransferReadInputStream(InputStream inputStream, IProgressMonitor monitor) {
- // Added to address bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=389292
- return new NoCloseWrapperInputStream(inputStream);
- }
-
- // Added to address bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=389292
- class NoCloseWrapperInputStream extends FilterInputStream {
-
- protected NoCloseWrapperInputStream(InputStream in) {
- super(in);
- }
-
- public void close() {
- // do nothing
- }
- }
-
- protected boolean hasForceNTLMProxyOption() {
- Map localOptions = getOptions();
- if (localOptions != null && localOptions.get(HttpClientOptions.FORCE_NTLM_PROP) != null)
- return true;
- return (System.getProperties().getProperty(HttpClientOptions.FORCE_NTLM_PROP) != null);
- }
-
- protected int getSocketReadTimeout() {
- int result = DEFAULT_READ_TIMEOUT;
- Map localOptions = getOptions();
- if (localOptions != null) {
- // See if the connect timeout option is present, if so set
- Object o = localOptions.get(IRetrieveFileTransferOptions.READ_TIMEOUT);
- if (o != null) {
- if (o instanceof Integer) {
- result = ((Integer) o).intValue();
- } else if (o instanceof String) {
- result = new Integer(((String) o)).intValue();
- }
- return result;
- }
- o = localOptions.get("org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.readTimeout"); //$NON-NLS-1$
- if (o != null) {
- if (o instanceof Integer) {
- result = ((Integer) o).intValue();
- } else if (o instanceof String) {
- result = new Integer(((String) o)).intValue();
- }
- }
- }
- return result;
- }
-
- /**
- * @since 4.0
- */
- protected int getConnectTimeout() {
- int result = DEFAULT_CONNECTION_TIMEOUT;
- Map localOptions = getOptions();
- if (localOptions != null) {
- // See if the connect timeout option is present, if so set
- Object o = localOptions.get(IRetrieveFileTransferOptions.CONNECT_TIMEOUT);
- if (o != null) {
- if (o instanceof Integer) {
- result = ((Integer) o).intValue();
- } else if (o instanceof String) {
- result = new Integer(((String) o)).intValue();
- }
- return result;
- }
- o = localOptions.get("org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.connectTimeout"); //$NON-NLS-1$
- if (o != null) {
- if (o instanceof Integer) {
- result = ((Integer) o).intValue();
- } else if (o instanceof String) {
- result = new Integer(((String) o)).intValue();
- }
- }
- }
- return result;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#openStreams()
- */
- protected void openStreams() throws IncomingFileTransferException {
-
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "openStreams"); //$NON-NLS-1$
- final String urlString = getRemoteFileURL().toString();
- this.doneFired = false;
-
- int code = -1;
-
- try {
- httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, getSocketReadTimeout());
- int connectTimeout = getConnectTimeout();
- httpClient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, connectTimeout);
-
- setupAuthentication(urlString);
-
- getMethod = new HttpGet(urlString);
- // Define a CredentialsProvider - found that possibility while debugging in org.apache.commons.httpclient.HttpMethodDirector.processProxyAuthChallenge(HttpMethod)
- // Seems to be another way to select the credentials.
- setRequestHeaderValues();
-
- Trace.trace(Activator.PLUGIN_ID, "retrieve=" + urlString); //$NON-NLS-1$
- // Set request header for possible gzip encoding, but only if
- // 1) The file range specification is null (we want the whole file)
- // 2) The target remote file does *not* end in .gz (see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=280205)
- if (getFileRangeSpecification() == null && !targetHasGzSuffix(super.getRemoteFileName())) {
- Trace.trace(Activator.PLUGIN_ID, "Accept-Encoding: gzip,deflate added to request header"); //$NON-NLS-1$
-
- // Add the interceptors to provide the gzip
- httpClient.addRequestInterceptor(new RequestAcceptEncoding());
- httpClient.addResponseInterceptor(new ResponseContentEncoding());
- } else {
- Trace.trace(Activator.PLUGIN_ID, "Accept-Encoding NOT added to header"); //$NON-NLS-1$
- }
-
- fireConnectStartEvent();
- if (checkAndHandleDone()) {
- return;
- }
-
- connectingSockets.clear();
- // Actually execute get and get response code (since redirect is set to true, then
- // redirect response code handled internally
- if (connectJob == null) {
- performConnect(new NullProgressMonitor());
- } else {
- connectJob.schedule();
- connectJob.join();
- connectJob = null;
- }
- if (checkAndHandleDone()) {
- return;
- }
-
- code = responseCode;
-
- responseHeaders = getResponseHeaders();
-
- Trace.trace(Activator.PLUGIN_ID, "retrieve resp=" + code); //$NON-NLS-1$
-
- // Check for NTLM proxy in response headers
- // This check is to deal with bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=252002
- boolean ntlmProxyFound = NTLMProxyDetector.detectNTLMProxy(httpContext);
- if (ntlmProxyFound && !hasForceNTLMProxyOption())
- throw new IncomingFileTransferException("HttpClient Provider is not configured to support NTLM proxy authentication.", HttpClientOptions.NTLM_PROXY_RESPONSE_CODE); //$NON-NLS-1$
-
- if (NTLMProxyDetector.detectSPNEGOProxy(httpContext))
- throw new BrowseFileTransferException("HttpClient Provider does not support the use of SPNEGO proxy authentication."); //$NON-NLS-1$
-
- if (code == HttpURLConnection.HTTP_PARTIAL || code == HttpURLConnection.HTTP_OK) {
- getResponseHeaderValues();
- setInputStream(httpResponse.getEntity().getContent());
- fireReceiveStartEvent();
- } else if (code == HttpURLConnection.HTTP_NOT_FOUND) {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException(NLS.bind("File not found: {0}", urlString), code); //$NON-NLS-1$
- } else if (code == HttpURLConnection.HTTP_UNAUTHORIZED) {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException(Messages.HttpClientRetrieveFileTransfer_Unauthorized, code);
- } else if (code == HttpURLConnection.HTTP_FORBIDDEN) {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException("Forbidden", code); //$NON-NLS-1$
- } else if (code == HttpURLConnection.HTTP_PROXY_AUTH) {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException(Messages.HttpClientRetrieveFileTransfer_Proxy_Auth_Required, code);
- } else {
- Trace.trace(Activator.PLUGIN_ID, EntityUtils.toString(httpResponse.getEntity()));
- // EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE, new Integer(code)), code);
- }
- } catch (final Exception e) {
- Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, this.getClass(), "openStreams", e); //$NON-NLS-1$
- if (code == -1) {
- if (!isDone()) {
- setDoneException(e);
- }
- fireTransferReceiveDoneEvent();
- } else {
- IncomingFileTransferException ex = (IncomingFileTransferException) ((e instanceof IncomingFileTransferException) ? e : new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT, urlString), e, code));
- throw ex;
- }
- }
- Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, this.getClass(), "openStreams"); //$NON-NLS-1$
- }
-
- private Map getResponseHeaders() {
- if (getMethod == null)
- return null;
- Header[] headers = httpResponse.getAllHeaders();
- Map result = null;
- if (headers != null && headers.length > 0) {
- result = new HashMap();
- for (int i = 0; i < headers.length; i++) {
- String name = headers[i].getName();
- String val = headers[i].getValue();
- if (name != null && val != null)
- result.put(name, val);
- }
- }
- return Collections.unmodifiableMap(result);
- }
-
- private boolean checkAndHandleDone() {
- if (isDone()) {
- // for cancel the done event should have been fired always.
- if (!doneFired) {
- fireTransferReceiveDoneEvent();
- }
- return true;
- }
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ecf.filetransfer.IRetrieveFileTransferContainerAdapter#setConnectContextForAuthentication(org.eclipse.ecf.core.security.IConnectContext)
- */
- public void setConnectContextForAuthentication(IConnectContext connectContext) {
- super.setConnectContextForAuthentication(connectContext);
- this.username = null;
- this.password = null;
- }
-
- protected static String getHostFromURL(String url) {
- String result = url;
- final int colonSlashSlash = url.indexOf("://"); //$NON-NLS-1$
- if (colonSlashSlash < 0)
- return ""; //$NON-NLS-1$
- if (colonSlashSlash >= 0) {
- result = url.substring(colonSlashSlash + 3);
- }
-
- final int colonPort = result.indexOf(':');
- final int requestPath = result.indexOf('/');
-
- int substringEnd;
-
- if (colonPort > 0 && requestPath > 0)
- substringEnd = Math.min(colonPort, requestPath);
- else if (colonPort > 0)
- substringEnd = colonPort;
- else if (requestPath > 0)
- substringEnd = requestPath;
- else
- substringEnd = result.length();
-
- return result.substring(0, substringEnd);
-
- }
-
- protected static int getPortFromURL(String url) {
- final int colonSlashSlash = url.indexOf("://"); //$NON-NLS-1$
- if (colonSlashSlash < 0)
- return urlUsesHttps(url) ? HTTPS_PORT : HTTP_PORT;
- // This is wrong as if the url has no colonPort before '?' then it should return the default
-
- int colonPort = url.indexOf(':', colonSlashSlash + 1);
- if (colonPort < 0)
- return urlUsesHttps(url) ? HTTPS_PORT : HTTP_PORT;
- // Make sure that the colonPort is not from some part of the rest of the URL
- int nextSlash = url.indexOf('/', colonSlashSlash + 3);
- if (nextSlash != -1 && colonPort > nextSlash)
- return urlUsesHttps(url) ? HTTPS_PORT : HTTP_PORT;
- // Make sure the colonPort is not part of the credentials in URI
- final int atServer = url.indexOf('@', colonSlashSlash + 1);
- if (atServer != -1 && colonPort < atServer && atServer < nextSlash)
- colonPort = url.indexOf(':', atServer + 1);
- if (colonPort < 0)
- return urlUsesHttps(url) ? HTTPS_PORT : HTTP_PORT;
-
- final int requestPath = url.indexOf('/', colonPort + 1);
-
- int end;
- if (requestPath < 0)
- end = url.length();
- else
- end = requestPath;
-
- return Integer.parseInt(url.substring(colonPort + 1, end));
- }
-
- protected static boolean urlUsesHttps(String url) {
- url = url.trim();
- return url.startsWith(HTTPS);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ecf.internal.provider.filetransfer.AbstractRetrieveFileTransfer#supportsProtocol(java.lang.String)
- */
- public static boolean supportsProtocol(String protocolString) {
- for (int i = 0; i < supportedProtocols.length; i++)
- if (supportedProtocols[i].equalsIgnoreCase(protocolString))
- return true;
- return false;
- }
-
- protected boolean isConnected() {
- return (getMethod != null);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#doPause()
- */
- protected boolean doPause() {
- if (isPaused() || !isConnected() || isDone())
- return false;
- this.paused = true;
- return this.paused;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#doResume()
- */
- protected boolean doResume() {
- if (!isPaused() || isConnected())
- return false;
- return openStreamsForResume();
- }
-
- protected void setResumeRequestHeaderValues() throws IOException {
- if (this.bytesReceived <= 0 || this.fileLength <= this.bytesReceived)
- throw new IOException(Messages.HttpClientRetrieveFileTransfer_RESUME_START_ERROR);
- setRangeHeader("bytes=" + this.bytesReceived + "-"); //$NON-NLS-1$ //$NON-NLS-2$
- // set max-age for cache control to 0 for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=249990
- getMethod.addHeader("Cache-Control", "max-age=0"); //$NON-NLS-1$//$NON-NLS-2$
- setRequestHeaderValuesFromOptions();
- }
-
- private boolean openStreamsForResume() {
-
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "openStreamsForResume"); //$NON-NLS-1$
- final String urlString = getRemoteFileURL().toString();
- this.doneFired = false;
-
- int code = -1;
-
- try {
- httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, getSocketReadTimeout());
- int connectTimeout = getConnectTimeout();
- httpClient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, connectTimeout);
-
- setupAuthentication(urlString);
-
- getMethod = new HttpGet(urlString);
- // Define a CredentialsProvider - found that possibility while debugging in org.apache.commons.httpclient.HttpMethodDirector.processProxyAuthChallenge(HttpMethod)
- // Seems to be another way to select the credentials.
- setResumeRequestHeaderValues();
-
- Trace.trace(Activator.PLUGIN_ID, "resume=" + urlString); //$NON-NLS-1$
-
- // Gzip encoding is not an option for resume
- fireConnectStartEvent();
- if (checkAndHandleDone()) {
- return false;
- }
-
- connectingSockets.clear();
- // Actually execute get and get response code (since redirect is set to true, then
- // redirect response code handled internally
- if (connectJob == null) {
- performConnect(new NullProgressMonitor());
- } else {
- connectJob.schedule();
- connectJob.join();
- connectJob = null;
- }
- if (checkAndHandleDone()) {
- return false;
- }
-
- code = responseCode;
-
- responseHeaders = getResponseHeaders();
-
- Trace.trace(Activator.PLUGIN_ID, "retrieve resp=" + code); //$NON-NLS-1$
-
- if (code == HttpURLConnection.HTTP_PARTIAL || code == HttpURLConnection.HTTP_OK) {
- getResumeResponseHeaderValues();
- setInputStream(httpResponse.getEntity().getContent());
- this.paused = false;
- fireReceiveResumedEvent();
- } else if (code == HttpURLConnection.HTTP_NOT_FOUND) {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException(NLS.bind("File not found: {0}", urlString), code, responseHeaders); //$NON-NLS-1$
- } else if (code == HttpURLConnection.HTTP_UNAUTHORIZED) {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException(Messages.HttpClientRetrieveFileTransfer_Unauthorized, code, responseHeaders);
- } else if (code == HttpURLConnection.HTTP_FORBIDDEN) {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException("Forbidden", code, responseHeaders); //$NON-NLS-1$
- } else if (code == HttpURLConnection.HTTP_PROXY_AUTH) {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException(Messages.HttpClientRetrieveFileTransfer_Proxy_Auth_Required, code, responseHeaders);
- } else {
- EntityUtils.consume(httpResponse.getEntity());
- throw new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE, new Integer(code)), code, responseHeaders);
- }
- Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, this.getClass(), "openStreamsForResume", Boolean.TRUE); //$NON-NLS-1$
- return true;
- } catch (final Exception e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "openStreamsForResume", e); //$NON-NLS-1$
- if (code == -1) {
- if (!isDone()) {
- setDoneException(e);
- }
- } else {
- setDoneException((e instanceof IncomingFileTransferException) ? e : new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT, urlString), e, code, responseHeaders));
- }
- fireTransferReceiveDoneEvent();
- Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, this.getClass(), "openStreamsForResume", Boolean.FALSE); //$NON-NLS-1$
- return false;
- }
- }
-
- protected void getResumeResponseHeaderValues() throws IOException {
- if (getResponseCode() != HttpURLConnection.HTTP_PARTIAL)
- throw new IOException();
- if (lastModifiedTime != getLastModifiedTimeFromHeader())
- throw new IOException(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_FILE_MODIFIED_SINCE_LAST_ACCESS);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#getAdapter(java.lang.Class)
- */
- public Object getAdapter(Class adapter) {
- if (adapter == null)
- return null;
- if (adapter.equals(IFileTransferPausable.class) && isHTTP11())
- return this;
- if (adapter.equals(ISocketEventSource.class))
- return this.socketEventSource;
- return super.getAdapter(adapter);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#setupProxy(org.eclipse.ecf.core.util.Proxy)
- */
- protected void setupProxy(Proxy proxy) {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, HttpClientRetrieveFileTransfer.class, "setupProxy " + proxy); //$NON-NLS-1$
- if (proxy.getType().equals(Proxy.Type.HTTP)) {
- final ProxyAddress address = proxy.getAddress();
- ConnRouteParams.setDefaultProxy(httpClient.getParams(), new HttpHost(address.getHostName(), address.getPort()));
- // getHostConfiguration().setProxy(address.getHostName(), address.getPort());
- } else if (proxy.getType().equals(Proxy.Type.SOCKS)) {
- Trace.trace(Activator.PLUGIN_ID, "retrieve socksproxy=" + proxy.getAddress()); //$NON-NLS-1$
- proxyHelper.setupProxy(proxy);
- }
- }
-
- /**
- * This method will clear out the proxy information (so that if this is
- * reused for a request without a proxy, it will work correctly).
- * @since 5.0
- */
- protected void clearProxy() {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, HttpClientRetrieveFileTransfer.class, "clearProxy()"); //$NON-NLS-1$
- ConnRouteParams.setDefaultProxy(httpClient.getParams(), null);
- }
-
- /**
- * @since 5.0
- */
- public static NTCredentials createNTLMCredentials(Proxy p) {
- if (p == null) {
- return null;
- }
- String un = getNTLMUserName(p);
- String domain = getNTLMDomainName(p);
- if (un == null || domain == null)
- return null;
-
- String workstation = null;
- try {
- workstation = InetAddress.getLocalHost().getHostName();
- } catch (UnknownHostException e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, HttpClientRetrieveFileTransfer.class, "createNTLMCredentials", e); //$NON-NLS-1$
- }
-
- return new NTCredentials(un, p.getPassword(), workstation, domain);
- }
-
- protected static String getNTLMDomainName(Proxy p) {
- String domainUsername = p.getUsername();
- if (domainUsername == null)
- return null;
- int slashloc = domainUsername.indexOf('\\');
- if (slashloc == -1)
- return null;
- return domainUsername.substring(0, slashloc);
- }
-
- protected static String getNTLMUserName(Proxy p) {
- String domainUsername = p.getUsername();
- if (domainUsername == null)
- return null;
- int slashloc = domainUsername.indexOf('\\');
- if (slashloc == -1)
- return null;
- return domainUsername.substring(slashloc + 1);
- }
-
- protected void fireConnectStartEvent() {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireConnectStartEvent"); //$NON-NLS-1$
- // TODO: should the following be in super.fireReceiveStartEvent();
- listener.handleTransferEvent(new IFileTransferConnectStartEvent() {
- public IFileID getFileID() {
- return remoteFileID;
- }
-
- public void cancel() {
- HttpClientRetrieveFileTransfer.this.cancel();
- }
-
- public FileTransferJob prepareConnectJob(FileTransferJob j) {
- return HttpClientRetrieveFileTransfer.this.prepareConnectJob(j);
- }
-
- public void connectUsingJob(FileTransferJob j) {
- HttpClientRetrieveFileTransfer.this.connectUsingJob(j);
- }
-
- public String toString() {
- final StringBuffer sb = new StringBuffer("IFileTransferConnectStartEvent["); //$NON-NLS-1$
- sb.append(getFileID());
- sb.append("]"); //$NON-NLS-1$
- return sb.toString();
- }
-
- public Object getAdapter(Class adapter) {
- return HttpClientRetrieveFileTransfer.this.getAdapter(adapter);
- }
- });
- }
-
- protected String createConnectJobName() {
- return getRemoteFileURL().toString() + createRangeName() + Messages.HttpClientRetrieveFileTransfer_CONNECTING_JOB_NAME;
- }
-
- protected FileTransferJob prepareConnectJob(FileTransferJob cjob) {
- if (cjob == null) {
- // Create our own
- cjob = new FileTransferJob(createJobName());
- }
- cjob.setFileTransfer(this);
- cjob.setFileTransferRunnable(fileConnectRunnable);
- return cjob;
- }
-
- protected void connectUsingJob(FileTransferJob cjob) {
- Assert.isNotNull(cjob);
- this.connectJob = cjob;
- }
-
- private IFileTransferRunnable fileConnectRunnable = new IFileTransferRunnable() {
- public IStatus performFileTransfer(IProgressMonitor monitor) {
- return performConnect(monitor);
- }
- };
-
- private IStatus performConnect(IProgressMonitor monitor) {
- // there might be more ticks in the future perhaps for
- // connect socket, certificate validation, send request, authenticate,
- int ticks = 1;
- monitor.beginTask(getRemoteFileURL().toString() + Messages.HttpClientRetrieveFileTransfer_CONNECTING_TASK_NAME, ticks);
- try {
- if (monitor.isCanceled())
- throw newUserCancelledException();
- httpContext = new BasicHttpContext();
- httpResponse = httpClient.execute(getMethod, httpContext);
- responseCode = httpResponse.getStatusLine().getStatusCode();
- Trace.trace(Activator.PLUGIN_ID, "retrieve resp=" + responseCode); //$NON-NLS-1$
- } catch (final Exception e) {
- Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "performConnect", e); //$NON-NLS-1$
- if (!isDone()) {
- setDoneException(e);
- }
- } finally {
- monitor.done();
- }
- return Status.OK_STATUS;
-
- }
-
- protected void finalize() throws Throwable {
- try {
- if (this.httpClient != null) {
- this.httpClient.getConnectionManager().shutdown();
- }
- } finally {
- super.finalize();
- }
- }
-
- protected void fireReceiveResumedEvent() {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireReceiveResumedEvent len=" + fileLength + ";rcvd=" + bytesReceived); //$NON-NLS-1$ //$NON-NLS-2$
- super.fireReceiveResumedEvent();
- }
-
- protected void fireTransferReceiveDataEvent() {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireTransferReceiveDataEvent len=" + fileLength + ";rcvd=" + bytesReceived); //$NON-NLS-1$ //$NON-NLS-2$
- super.fireTransferReceiveDataEvent();
- }
-
- protected void fireTransferReceiveDoneEvent() {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireTransferReceiveDoneEvent len=" + fileLength + ";rcvd=" + bytesReceived); //$NON-NLS-1$ //$NON-NLS-2$
- this.doneFired = true;
- super.fireTransferReceiveDoneEvent();
- }
-
- protected void fireTransferReceivePausedEvent() {
- Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireTransferReceivePausedEvent len=" + fileLength + ";rcvd=" + bytesReceived); //$NON-NLS-1$ //$NON-NLS-2$
- super.fireTransferReceivePausedEvent();
- }
-
-}
+/******************************************************************************* + * Copyright (c) 2004, 2010 Composent, Inc., IBM 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: + * Composent, Inc. - initial API and implementation + * Maarten Meijer - bug 237936, added gzip encoded transfer default + * Henrich Kraemer - bug 263869, testHttpsReceiveFile fails using HTTP proxy + * Henrich Kraemer - bug 263613, [transport] Update site contacting / downloading is not cancelable + * Thomas Joiner - HttpClient 4 implementation + ******************************************************************************/ +package org.eclipse.ecf.provider.filetransfer.httpclient4; + +import java.io.FilterInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.InetAddress; +import java.net.Socket; +import java.net.UnknownHostException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.net.SocketFactory; +import javax.net.ssl.SSLSocketFactory; +import org.apache.http.Header; +import org.apache.http.HttpHost; +import org.apache.http.HttpResponse; +import org.apache.http.ProtocolVersion; +import org.apache.http.auth.AuthScope; +import org.apache.http.auth.Credentials; +import org.apache.http.auth.NTCredentials; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.auth.params.AuthPNames; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.params.AuthPolicy; +import org.apache.http.client.protocol.RequestAcceptEncoding; +import org.apache.http.client.protocol.ResponseContentEncoding; +import org.apache.http.conn.params.ConnRouteParams; +import org.apache.http.conn.scheme.Scheme; +import org.apache.http.conn.scheme.SchemeRegistry; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.impl.cookie.DateUtils; +import org.apache.http.params.CoreConnectionPNames; +import org.apache.http.protocol.BasicHttpContext; +import org.apache.http.protocol.HttpContext; +import org.apache.http.util.EntityUtils; +import org.eclipse.core.runtime.Assert; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Status; +import org.eclipse.ecf.core.identity.ID; +import org.eclipse.ecf.core.security.Callback; +import org.eclipse.ecf.core.security.CallbackHandler; +import org.eclipse.ecf.core.security.IConnectContext; +import org.eclipse.ecf.core.security.NameCallback; +import org.eclipse.ecf.core.security.ObjectCallback; +import org.eclipse.ecf.core.security.UnsupportedCallbackException; +import org.eclipse.ecf.core.util.ECFRuntimeException; +import org.eclipse.ecf.core.util.Proxy; +import org.eclipse.ecf.core.util.ProxyAddress; +import org.eclipse.ecf.core.util.Trace; +import org.eclipse.ecf.filetransfer.BrowseFileTransferException; +import org.eclipse.ecf.filetransfer.FileTransferJob; +import org.eclipse.ecf.filetransfer.IFileRangeSpecification; +import org.eclipse.ecf.filetransfer.IFileTransferPausable; +import org.eclipse.ecf.filetransfer.IFileTransferRunnable; +import org.eclipse.ecf.filetransfer.IRetrieveFileTransferOptions; +import org.eclipse.ecf.filetransfer.IncomingFileTransferException; +import org.eclipse.ecf.filetransfer.InvalidFileRangeSpecificationException; +import org.eclipse.ecf.filetransfer.events.IFileTransferConnectStartEvent; +import org.eclipse.ecf.filetransfer.events.socket.ISocketEventSource; +import org.eclipse.ecf.filetransfer.events.socket.ISocketListener; +import org.eclipse.ecf.filetransfer.identity.IFileID; +import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Activator; +import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ConnectingSocketMonitor; +import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.DebugOptions; +import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ECFHttpClientProtocolSocketFactory; +import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ECFHttpClientSecureProtocolSocketFactory; +import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.HttpClientProxyCredentialProvider; +import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.ISSLSocketFactoryModifier; +import org.eclipse.ecf.internal.provider.filetransfer.httpclient4.Messages; +import org.eclipse.ecf.provider.filetransfer.events.socket.SocketEventSource; +import org.eclipse.ecf.provider.filetransfer.identity.FileTransferID; +import org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer; +import org.eclipse.ecf.provider.filetransfer.retrieve.HttpHelper; +import org.eclipse.ecf.provider.filetransfer.util.JREProxyHelper; +import org.eclipse.ecf.provider.filetransfer.util.ProxySetupHelper; +import org.eclipse.osgi.util.NLS; + +public class HttpClientRetrieveFileTransfer extends AbstractRetrieveFileTransfer { + + private static final String USERNAME_PREFIX = Messages.HttpClientRetrieveFileTransfer_Username_Prefix; + + // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246 + // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.connectTimeout + // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995 + protected static final int DEFAULT_CONNECTION_TIMEOUT = HttpClientOptions.RETRIEVE_DEFAULT_CONNECTION_TIMEOUT; + // changing to 2 minutes (120000) as per bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246 + // 10/26/2009: Added being able to set with system property with name org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.readTimeout + // for https://bugs.eclipse.org/bugs/show_bug.cgi?id=292995 + protected static final int DEFAULT_READ_TIMEOUT = HttpClientOptions.RETRIEVE_DEFAULT_READ_TIMEOUT; + + protected static final int HTTP_PORT = 80; + + protected static final int HTTPS_PORT = 443; + + protected static final int MAX_RETRY = 2; + + protected static final String HTTPS = Messages.FileTransferNamespace_Https_Protocol; + + protected static final String HTTP = Messages.FileTransferNamespace_Http_Protocol; + + protected static final String[] supportedProtocols = {HTTP, HTTPS}; + + private static final String LAST_MODIFIED_HEADER = "Last-Modified"; //$NON-NLS-1$ + + private HttpGet getMethod = null; + + private HttpResponse httpResponse = null; + + private HttpContext httpContext = null; + + private DefaultHttpClient httpClient = null; + + private String username; + + private String password; + + private int responseCode = -1; + private volatile boolean doneFired = false; + + private String remoteFileName; + + protected int httpVersion = 1; + + protected IFileID fileid = null; + + protected JREProxyHelper proxyHelper = null; + + private SocketEventSource socketEventSource; + + private ConnectingSocketMonitor connectingSockets; + private FileTransferJob connectJob; + + /** + * @since 5.0 + */ + public HttpClientRetrieveFileTransfer(DefaultHttpClient httpClient) { + this.httpClient = httpClient; + Assert.isNotNull(this.httpClient); + this.httpClient.setCredentialsProvider(new ECFCredentialsProvider()); + proxyHelper = new JREProxyHelper(); + connectingSockets = new ConnectingSocketMonitor(1); + socketEventSource = new SocketEventSource() { + public Object getAdapter(Class adapter) { + if (adapter == null) { + return null; + } + if (adapter.isInstance(this)) { + return this; + } + return HttpClientRetrieveFileTransfer.this.getAdapter(adapter); + } + + }; + + registerSchemes(socketEventSource, connectingSockets); + } + + private void registerSchemes(ISocketEventSource source, ISocketListener socketListener) { + SchemeRegistry schemeRegistry = this.httpClient.getConnectionManager().getSchemeRegistry(); + + Scheme http = new Scheme(HttpClientRetrieveFileTransfer.HTTP, HTTP_PORT, new ECFHttpClientProtocolSocketFactory(SocketFactory.getDefault(), source, socketListener)); + + Trace.trace(Activator.PLUGIN_ID, "registering http scheme"); //$NON-NLS-1$ + schemeRegistry.register(http); + + ISSLSocketFactoryModifier sslSocketFactoryModifier = Activator.getDefault().getSSLSocketFactoryModifier(); + + if (sslSocketFactoryModifier == null) { + sslSocketFactoryModifier = new HttpClientDefaultSSLSocketFactoryModifier(); + } + + SSLSocketFactory sslSocketFactory = null; + try { + sslSocketFactory = sslSocketFactoryModifier.getSSLSocketFactory(); + } catch (IOException e) { + Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, ISSLSocketFactoryModifier.class, "getSSLSocketFactory()", e); //$NON-NLS-1$ + Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, HttpClientRetrieveFileTransfer.class, "registerSchemes()", e); //$NON-NLS-1$ + throw new ECFRuntimeException("Unable to instantiate schemes for HttpClient.", e); //$NON-NLS-1$ + } + + Scheme https = new Scheme(HttpClientRetrieveFileTransfer.HTTPS, HTTPS_PORT, new ECFHttpClientSecureProtocolSocketFactory(sslSocketFactory, source, socketListener)); + Trace.trace(Activator.PLUGIN_ID, "registering https scheme; modifier=" + sslSocketFactoryModifier); //$NON-NLS-1$ + schemeRegistry.register(https); + + // SPNEGO is not supported, so remove it from the list + List authpref = new ArrayList(3); + authpref.add(AuthPolicy.NTLM); + authpref.add(AuthPolicy.DIGEST); + authpref.add(AuthPolicy.BASIC); + + httpClient.getParams().setParameter(AuthPNames.PROXY_AUTH_PREF, authpref); + httpClient.getParams().setParameter(AuthPNames.TARGET_AUTH_PREF, authpref); + } + + /* (non-Javadoc) + * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#getRemoteFileName() + */ + public String getRemoteFileName() { + return remoteFileName; + } + + public synchronized void cancel() { + Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "cancel"); //$NON-NLS-1$ + if (isCanceled()) { + return; // break job cancel recursion + } + setDoneCanceled(exception); + boolean fireDoneEvent = true; + if (connectJob != null) { + Trace.trace(Activator.PLUGIN_ID, "calling connectJob.cancel()"); //$NON-NLS-1$ + connectJob.cancel(); + } + synchronized (jobLock) { + if (job != null) { + // Its the transfer jobs responsibility to throw the event. + fireDoneEvent = false; + Trace.trace(Activator.PLUGIN_ID, "calling transfer job.cancel()"); //$NON-NLS-1$ + job.cancel(); + } + } + if (getMethod != null) { + if (!getMethod.isAborted()) { + Trace.trace(Activator.PLUGIN_ID, "calling getMethod.abort()"); //$NON-NLS-1$ + getMethod.abort(); + } + } + if (connectingSockets != null) { + // this should unblock socket connect calls, if any + for (Iterator iterator = connectingSockets.getConnectingSockets().iterator(); iterator.hasNext();) { + Socket socket = (Socket) iterator.next(); + try { + Trace.trace(Activator.PLUGIN_ID, "Call socket.close() for socket=" + socket.toString()); //$NON-NLS-1$ + socket.close(); + } catch (IOException e) { + Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "cancel", e); //$NON-NLS-1$ + } + } + } + hardClose(); + if (fireDoneEvent) { + fireTransferReceiveDoneEvent(); + } + Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, this.getClass(), "cancel");//$NON-NLS-1$ + + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#hardClose() + */ + protected void hardClose() { + // changed for addressing bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=389292 + if (getMethod != null) { + // First, if !isDone and paused + if (!isDone() && isPaused()) + getMethod.abort(); + // release in any case + //getMethod.releaseConnection(); + // and set to null + getMethod = null; + } + // Close output stream...if we're supposed to + try { + if (localFileContents != null && closeOutputStream) + localFileContents.close(); + } catch (final IOException e) { + Activator.getDefault().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, IStatus.ERROR, "hardClose", e)); //$NON-NLS-1$ + } + // clear input and output streams + remoteFileContents = null; + localFileContents = null; + // reset response code + responseCode = -1; + // If we're done and proxy helper still exists, then dispose + if (proxyHelper != null && isDone()) { + proxyHelper.dispose(); + proxyHelper = null; + } + } + + /** + * @since 5.0 + */ + protected Credentials getFileRequestCredentials() throws UnsupportedCallbackException, IOException { + if (connectContext == null) + return null; + final CallbackHandler callbackHandler = connectContext.getCallbackHandler(); + if (callbackHandler == null) + return null; + final NameCallback usernameCallback = new NameCallback(USERNAME_PREFIX); + final ObjectCallback passwordCallback = new ObjectCallback(); + callbackHandler.handle(new Callback[] {usernameCallback, passwordCallback}); + username = usernameCallback.getName(); + password = (String) passwordCallback.getObject(); + return new UsernamePasswordCredentials(username, password); + } + + protected void setupProxies() { + // If it's been set directly (via ECF API) then this overrides platform settings + if (proxy == null) { + try { + // give SOCKS priority see https://bugs.eclipse.org/bugs/show_bug.cgi?id=295030#c61 + proxy = ProxySetupHelper.getSocksProxy(getRemoteFileURL()); + if (proxy == null) { + proxy = ProxySetupHelper.getProxy(getRemoteFileURL().toExternalForm()); + } + } catch (NoClassDefFoundError e) { + // If the proxy API is not available a NoClassDefFoundError will be thrown here. + // If that happens then we just want to continue on. + Activator.logNoProxyWarning(e); + } + } + if (proxy != null) + setupProxy(proxy); + } + + protected synchronized void resetDoneAndException() { + // Doesn't match the description, but since it should be cleared before it is + // reused, this is the best place. + clearProxy(); + + super.resetDoneAndException(); + } + + protected void setupAuthentication(String urlString) throws UnsupportedCallbackException, IOException { + Credentials credentials = null; + if (username == null) { + credentials = getFileRequestCredentials(); + } + + if (credentials != null && username != null) { + final AuthScope authScope = new AuthScope(getHostFromURL(urlString), getPortFromURL(urlString), AuthScope.ANY_REALM); + Trace.trace(Activator.PLUGIN_ID, "retrieve credentials=" + credentials); //$NON-NLS-1$ + httpClient.getCredentialsProvider().setCredentials(authScope, credentials); + } + } + + protected void setRequestHeaderValues() throws InvalidFileRangeSpecificationException { + final IFileRangeSpecification rangeSpec = getFileRangeSpecification(); + if (rangeSpec != null) { + final long startPosition = rangeSpec.getStartPosition(); + final long endPosition = rangeSpec.getEndPosition(); + if (startPosition < 0) + throw new InvalidFileRangeSpecificationException(Messages.HttpClientRetrieveFileTransfer_RESUME_START_POSITION_LESS_THAN_ZERO, rangeSpec); + if (endPosition != -1L && endPosition <= startPosition) + throw new InvalidFileRangeSpecificationException(Messages.HttpClientRetrieveFileTransfer_RESUME_ERROR_END_POSITION_LESS_THAN_START, rangeSpec); + String rangeHeader = "bytes=" + startPosition + "-" + ((endPosition == -1L) ? "" : ("" + endPosition)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + Trace.trace(Activator.PLUGIN_ID, "retrieve range header=" + rangeHeader); //$NON-NLS-1$ + setRangeHeader(rangeHeader); + } + // set max-age for cache control to 0 for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=249990 + getMethod.addHeader("Cache-Control", "max-age=0"); //$NON-NLS-1$//$NON-NLS-2$ + setRequestHeaderValuesFromOptions(); + } + + private void setRequestHeaderValuesFromOptions() { + Map localOptions = getOptions(); + if (localOptions != null) { + Object o = localOptions.get(IRetrieveFileTransferOptions.REQUEST_HEADERS); + if (o != null && o instanceof Map) { + Map requestHeaders = (Map) o; + for (Iterator i = requestHeaders.keySet().iterator(); i.hasNext();) { + Object n = i.next(); + Object v = requestHeaders.get(n); + if (n != null && n instanceof String && v != null && v instanceof String) + getMethod.addHeader((String) n, (String) v); + } + } + } + } + + private void setRangeHeader(String value) { + getMethod.addHeader("Range", value); //$NON-NLS-1$ + } + + private boolean isHTTP11() { + return (httpVersion >= 1); + } + + public int getResponseCode() { + if (responseCode != -1) + return responseCode; + ProtocolVersion version = getMethod.getProtocolVersion(); + if (version == null) { + responseCode = -1; + httpVersion = 1; + return responseCode; + } + httpVersion = version.getMinor(); + responseCode = httpResponse.getStatusLine().getStatusCode(); + return responseCode; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ecf.core.identity.IIdentifiable#getID() + */ + public ID getID() { + return fileid; + } + + private long getLastModifiedTimeFromHeader() throws IOException { + Header lastModifiedHeader = httpResponse.getLastHeader(LAST_MODIFIED_HEADER); + if (lastModifiedHeader == null) + throw new IOException(Messages.HttpClientRetrieveFileTransfer_INVALID_LAST_MODIFIED_TIME); + + String lastModifiedString = lastModifiedHeader.getValue(); + long lastModified = 0; + if (lastModifiedString != null) { + try { + lastModified = DateUtils.parseDate(lastModifiedString).getTime(); + } catch (Exception e) { + throw new IOException(Messages.HttpClientRetrieveFileTransfer_EXCEPITION_INVALID_LAST_MODIFIED_FROM_SERVER); + } + } + return lastModified; + } + + protected void getResponseHeaderValues() throws IOException { + if (getResponseCode() == -1) + throw new IOException(Messages.HttpClientRetrieveFileTransfer_INVALID_SERVER_RESPONSE_TO_PARTIAL_RANGE_REQUEST); + Header lastModifiedHeader = httpResponse.getLastHeader(LAST_MODIFIED_HEADER); + if (lastModifiedHeader != null) { + setLastModifiedTime(getLastModifiedTimeFromHeader()); + } + setFileLength(httpResponse.getEntity().getContentLength()); + fileid = new FileTransferID(getRetrieveNamespace(), getRemoteFileURL()); + + // Get content disposition header and get remote file name from it if possible. + Header contentDispositionHeader = httpResponse.getLastHeader(HttpHelper.CONTENT_DISPOSITION_HEADER); + if (contentDispositionHeader != null) { + remoteFileName = HttpHelper.getRemoteFileNameFromContentDispositionHeader(contentDispositionHeader.getValue()); + } + // If still null, get the path from httpclient.getMethod() + if (remoteFileName == null) { + // No name could be extracted using Content-Disposition. Let's try the + // path from the getMethod. + String pathStr = getMethod.getRequestLine().getUri(); + if (pathStr != null && pathStr.length() > 0) { + IPath path = Path.fromPortableString(pathStr); + if (path.segmentCount() > 0) + remoteFileName = path.lastSegment(); + } + // If still null, use the input file name + if (remoteFileName == null) + // Last resort. Use the path of the initial URL request + remoteFileName = super.getRemoteFileName(); + } + } + + final class ECFCredentialsProvider extends HttpClientProxyCredentialProvider { + + protected Proxy getECFProxy() { + return getProxy(); + } + + protected Credentials getNTLMCredentials(Proxy lp) { + if (hasForceNTLMProxyOption()) + return HttpClientRetrieveFileTransfer.createNTLMCredentials(lp); + return null; + } + + } + + Proxy getProxy() { + return proxy; + } + + protected void setInputStream(InputStream ins) { + remoteFileContents = ins; + } + + protected InputStream wrapTransferReadInputStream(InputStream inputStream, IProgressMonitor monitor) { + // Added to address bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=389292 + return new NoCloseWrapperInputStream(inputStream); + } + + // Added to address bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=389292 + class NoCloseWrapperInputStream extends FilterInputStream { + + protected NoCloseWrapperInputStream(InputStream in) { + super(in); + } + + public void close() { + // do nothing + } + } + + protected boolean hasForceNTLMProxyOption() { + Map localOptions = getOptions(); + if (localOptions != null && localOptions.get(HttpClientOptions.FORCE_NTLM_PROP) != null) + return true; + return (System.getProperties().getProperty(HttpClientOptions.FORCE_NTLM_PROP) != null); + } + + protected int getSocketReadTimeout() { + int result = DEFAULT_READ_TIMEOUT; + Map localOptions = getOptions(); + if (localOptions != null) { + // See if the connect timeout option is present, if so set + Object o = localOptions.get(IRetrieveFileTransferOptions.READ_TIMEOUT); + if (o != null) { + if (o instanceof Integer) { + result = ((Integer) o).intValue(); + } else if (o instanceof String) { + result = new Integer(((String) o)).intValue(); + } + return result; + } + o = localOptions.get("org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.readTimeout"); //$NON-NLS-1$ + if (o != null) { + if (o instanceof Integer) { + result = ((Integer) o).intValue(); + } else if (o instanceof String) { + result = new Integer(((String) o)).intValue(); + } + } + } + return result; + } + + /** + * @since 4.0 + */ + protected int getConnectTimeout() { + int result = DEFAULT_CONNECTION_TIMEOUT; + Map localOptions = getOptions(); + if (localOptions != null) { + // See if the connect timeout option is present, if so set + Object o = localOptions.get(IRetrieveFileTransferOptions.CONNECT_TIMEOUT); + if (o != null) { + if (o instanceof Integer) { + result = ((Integer) o).intValue(); + } else if (o instanceof String) { + result = new Integer(((String) o)).intValue(); + } + return result; + } + o = localOptions.get("org.eclipse.ecf.provider.filetransfer.httpclient4.retrieve.connectTimeout"); //$NON-NLS-1$ + if (o != null) { + if (o instanceof Integer) { + result = ((Integer) o).intValue(); + } else if (o instanceof String) { + result = new Integer(((String) o)).intValue(); + } + } + } + return result; + } + + /* (non-Javadoc) + * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#openStreams() + */ + protected void openStreams() throws IncomingFileTransferException { + + Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "openStreams"); //$NON-NLS-1$ + final String urlString = getRemoteFileURL().toString(); + this.doneFired = false; + + int code = -1; + + try { + httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, getSocketReadTimeout()); + int connectTimeout = getConnectTimeout(); + httpClient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, connectTimeout); + + setupAuthentication(urlString); + + getMethod = new HttpGet(urlString); + // Define a CredentialsProvider - found that possibility while debugging in org.apache.commons.httpclient.HttpMethodDirector.processProxyAuthChallenge(HttpMethod) + // Seems to be another way to select the credentials. + setRequestHeaderValues(); + + Trace.trace(Activator.PLUGIN_ID, "retrieve=" + urlString); //$NON-NLS-1$ + // Set request header for possible gzip encoding, but only if + // 1) The file range specification is null (we want the whole file) + // 2) The target remote file does *not* end in .gz (see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=280205) + if (getFileRangeSpecification() == null && !targetHasGzSuffix(super.getRemoteFileName())) { + Trace.trace(Activator.PLUGIN_ID, "Accept-Encoding: gzip,deflate added to request header"); //$NON-NLS-1$ + + // Add the interceptors to provide the gzip + httpClient.addRequestInterceptor(new RequestAcceptEncoding()); + httpClient.addResponseInterceptor(new ResponseContentEncoding()); + } else { + Trace.trace(Activator.PLUGIN_ID, "Accept-Encoding NOT added to header"); //$NON-NLS-1$ + } + + fireConnectStartEvent(); + if (checkAndHandleDone()) { + return; + } + + connectingSockets.clear(); + // Actually execute get and get response code (since redirect is set to true, then + // redirect response code handled internally + if (connectJob == null) { + performConnect(new NullProgressMonitor()); + } else { + connectJob.schedule(); + connectJob.join(); + connectJob = null; + } + if (checkAndHandleDone()) { + return; + } + + code = responseCode; + + responseHeaders = getResponseHeaders(); + + Trace.trace(Activator.PLUGIN_ID, "retrieve resp=" + code); //$NON-NLS-1$ + + // Check for NTLM proxy in response headers + // This check is to deal with bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=252002 + boolean ntlmProxyFound = NTLMProxyDetector.detectNTLMProxy(httpContext); + if (ntlmProxyFound && !hasForceNTLMProxyOption()) + throw new IncomingFileTransferException("HttpClient Provider is not configured to support NTLM proxy authentication.", HttpClientOptions.NTLM_PROXY_RESPONSE_CODE); //$NON-NLS-1$ + + if (NTLMProxyDetector.detectSPNEGOProxy(httpContext)) + throw new BrowseFileTransferException("HttpClient Provider does not support the use of SPNEGO proxy authentication."); //$NON-NLS-1$ + + if (code == HttpURLConnection.HTTP_PARTIAL || code == HttpURLConnection.HTTP_OK) { + getResponseHeaderValues(); + setInputStream(httpResponse.getEntity().getContent()); + fireReceiveStartEvent(); + } else if (code == HttpURLConnection.HTTP_NOT_FOUND) { + EntityUtils.consume(httpResponse.getEntity()); + throw new IncomingFileTransferException(NLS.bind("File not found: {0}", urlString), code); //$NON-NLS-1$ + } else if (code == HttpURLConnection.HTTP_UNAUTHORIZED) { + EntityUtils.consume(httpResponse.getEntity()); + throw new IncomingFileTransferException(Messages.HttpClientRetrieveFileTransfer_Unauthorized, code); + } else if (code == HttpURLConnection.HTTP_FORBIDDEN) { + EntityUtils.consume(httpResponse.getEntity()); + throw new IncomingFileTransferException("Forbidden", code); //$NON-NLS-1$ + } else if (code == HttpURLConnection.HTTP_PROXY_AUTH) { + EntityUtils.consume(httpResponse.getEntity()); + throw new IncomingFileTransferException(Messages.HttpClientRetrieveFileTransfer_Proxy_Auth_Required, code); + } else { + Trace.trace(Activator.PLUGIN_ID, EntityUtils.toString(httpResponse.getEntity())); + // EntityUtils.consume(httpResponse.getEntity()); + throw new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE, new Integer(code)), code); + } + } catch (final Exception e) { + Trace.throwing(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_THROWING, this.getClass(), "openStreams", e); //$NON-NLS-1$ + if (code == -1) { + if (!isDone()) { + setDoneException(e); + } + fireTransferReceiveDoneEvent(); + } else { + IncomingFileTransferException ex = (IncomingFileTransferException) ((e instanceof IncomingFileTransferException) ? e : new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT, urlString), e, code)); + throw ex; + } + } + Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, this.getClass(), "openStreams"); //$NON-NLS-1$ + } + + private Map getResponseHeaders() { + if (getMethod == null) + return null; + Header[] headers = httpResponse.getAllHeaders(); + Map result = null; + if (headers != null && headers.length > 0) { + result = new HashMap(); + for (int i = 0; i < headers.length; i++) { + String name = headers[i].getName(); + String val = headers[i].getValue(); + if (name != null && val != null) + result.put(name, val); + } + } + return Collections.unmodifiableMap(result); + } + + private boolean checkAndHandleDone() { + if (isDone()) { + // for cancel the done event should have been fired always. + if (!doneFired) { + fireTransferReceiveDoneEvent(); + } + return true; + } + return false; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ecf.filetransfer.IRetrieveFileTransferContainerAdapter#setConnectContextForAuthentication(org.eclipse.ecf.core.security.IConnectContext) + */ + public void setConnectContextForAuthentication(IConnectContext connectContext) { + super.setConnectContextForAuthentication(connectContext); + this.username = null; + this.password = null; + } + + protected static String getHostFromURL(String url) { + String result = url; + final int colonSlashSlash = url.indexOf("://"); //$NON-NLS-1$ + if (colonSlashSlash < 0) + return ""; //$NON-NLS-1$ + if (colonSlashSlash >= 0) { + result = url.substring(colonSlashSlash + 3); + } + + final int colonPort = result.indexOf(':'); + final int requestPath = result.indexOf('/'); + + int substringEnd; + + if (colonPort > 0 && requestPath > 0) + substringEnd = Math.min(colonPort, requestPath); + else if (colonPort > 0) + substringEnd = colonPort; + else if (requestPath > 0) + substringEnd = requestPath; + else + substringEnd = result.length(); + + return result.substring(0, substringEnd); + + } + + protected static int getPortFromURL(String url) { + final int colonSlashSlash = url.indexOf("://"); //$NON-NLS-1$ + if (colonSlashSlash < 0) + return urlUsesHttps(url) ? HTTPS_PORT : HTTP_PORT; + // This is wrong as if the url has no colonPort before '?' then it should return the default + + int colonPort = url.indexOf(':', colonSlashSlash + 1); + if (colonPort < 0) + return urlUsesHttps(url) ? HTTPS_PORT : HTTP_PORT; + // Make sure that the colonPort is not from some part of the rest of the URL + int nextSlash = url.indexOf('/', colonSlashSlash + 3); + if (nextSlash != -1 && colonPort > nextSlash) + return urlUsesHttps(url) ? HTTPS_PORT : HTTP_PORT; + // Make sure the colonPort is not part of the credentials in URI + final int atServer = url.indexOf('@', colonSlashSlash + 1); + if (atServer != -1 && colonPort < atServer && atServer < nextSlash) + colonPort = url.indexOf(':', atServer + 1); + if (colonPort < 0) + return urlUsesHttps(url) ? HTTPS_PORT : HTTP_PORT; + + final int requestPath = url.indexOf('/', colonPort + 1); + + int end; + if (requestPath < 0) + end = url.length(); + else + end = requestPath; + + return Integer.parseInt(url.substring(colonPort + 1, end)); + } + + protected static boolean urlUsesHttps(String url) { + url = url.trim(); + return url.startsWith(HTTPS); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ecf.internal.provider.filetransfer.AbstractRetrieveFileTransfer#supportsProtocol(java.lang.String) + */ + public static boolean supportsProtocol(String protocolString) { + for (int i = 0; i < supportedProtocols.length; i++) + if (supportedProtocols[i].equalsIgnoreCase(protocolString)) + return true; + return false; + } + + protected boolean isConnected() { + return (getMethod != null); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#doPause() + */ + protected boolean doPause() { + if (isPaused() || !isConnected() || isDone()) + return false; + this.paused = true; + return this.paused; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#doResume() + */ + protected boolean doResume() { + if (!isPaused() || isConnected()) + return false; + return openStreamsForResume(); + } + + protected void setResumeRequestHeaderValues() throws IOException { + if (this.bytesReceived <= 0 || this.fileLength <= this.bytesReceived) + throw new IOException(Messages.HttpClientRetrieveFileTransfer_RESUME_START_ERROR); + setRangeHeader("bytes=" + this.bytesReceived + "-"); //$NON-NLS-1$ //$NON-NLS-2$ + // set max-age for cache control to 0 for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=249990 + getMethod.addHeader("Cache-Control", "max-age=0"); //$NON-NLS-1$//$NON-NLS-2$ + setRequestHeaderValuesFromOptions(); + } + + private boolean openStreamsForResume() { + + Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "openStreamsForResume"); //$NON-NLS-1$ + final String urlString = getRemoteFileURL().toString(); + this.doneFired = false; + + int code = -1; + + try { + httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, getSocketReadTimeout()); + int connectTimeout = getConnectTimeout(); + httpClient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, connectTimeout); + + setupAuthentication(urlString); + + getMethod = new HttpGet(urlString); + // Define a CredentialsProvider - found that possibility while debugging in org.apache.commons.httpclient.HttpMethodDirector.processProxyAuthChallenge(HttpMethod) + // Seems to be another way to select the credentials. + setResumeRequestHeaderValues(); + + Trace.trace(Activator.PLUGIN_ID, "resume=" + urlString); //$NON-NLS-1$ + + // Gzip encoding is not an option for resume + fireConnectStartEvent(); + if (checkAndHandleDone()) { + return false; + } + + connectingSockets.clear(); + // Actually execute get and get response code (since redirect is set to true, then + // redirect response code handled internally + if (connectJob == null) { + performConnect(new NullProgressMonitor()); + } else { + connectJob.schedule(); + connectJob.join(); + connectJob = null; + } + if (checkAndHandleDone()) { + return false; + } + + code = responseCode; + + responseHeaders = getResponseHeaders(); + + Trace.trace(Activator.PLUGIN_ID, "retrieve resp=" + code); //$NON-NLS-1$ + + if (code == HttpURLConnection.HTTP_PARTIAL || code == HttpURLConnection.HTTP_OK) { + getResumeResponseHeaderValues(); + setInputStream(httpResponse.getEntity().getContent()); + this.paused = false; + fireReceiveResumedEvent(); + } else if (code == HttpURLConnection.HTTP_NOT_FOUND) { + EntityUtils.consume(httpResponse.getEntity()); + throw new IncomingFileTransferException(NLS.bind("File not found: {0}", urlString), code, responseHeaders); //$NON-NLS-1$ + } else if (code == HttpURLConnection.HTTP_UNAUTHORIZED) { + EntityUtils.consume(httpResponse.getEntity()); + throw new IncomingFileTransferException(Messages.HttpClientRetrieveFileTransfer_Unauthorized, code, responseHeaders); + } else if (code == HttpURLConnection.HTTP_FORBIDDEN) { + EntityUtils.consume(httpResponse.getEntity()); + throw new IncomingFileTransferException("Forbidden", code, responseHeaders); //$NON-NLS-1$ + } else if (code == HttpURLConnection.HTTP_PROXY_AUTH) { + EntityUtils.consume(httpResponse.getEntity()); + throw new IncomingFileTransferException(Messages.HttpClientRetrieveFileTransfer_Proxy_Auth_Required, code, responseHeaders); + } else { + EntityUtils.consume(httpResponse.getEntity()); + throw new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_ERROR_GENERAL_RESPONSE_CODE, new Integer(code)), code, responseHeaders); + } + Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, this.getClass(), "openStreamsForResume", Boolean.TRUE); //$NON-NLS-1$ + return true; + } catch (final Exception e) { + Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "openStreamsForResume", e); //$NON-NLS-1$ + if (code == -1) { + if (!isDone()) { + setDoneException(e); + } + } else { + setDoneException((e instanceof IncomingFileTransferException) ? e : new IncomingFileTransferException(NLS.bind(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_COULD_NOT_CONNECT, urlString), e, code, responseHeaders)); + } + fireTransferReceiveDoneEvent(); + Trace.exiting(Activator.PLUGIN_ID, DebugOptions.METHODS_EXITING, this.getClass(), "openStreamsForResume", Boolean.FALSE); //$NON-NLS-1$ + return false; + } + } + + protected void getResumeResponseHeaderValues() throws IOException { + if (getResponseCode() != HttpURLConnection.HTTP_PARTIAL) + throw new IOException(); + if (lastModifiedTime != getLastModifiedTimeFromHeader()) + throw new IOException(Messages.HttpClientRetrieveFileTransfer_EXCEPTION_FILE_MODIFIED_SINCE_LAST_ACCESS); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#getAdapter(java.lang.Class) + */ + public Object getAdapter(Class adapter) { + if (adapter == null) + return null; + if (adapter.equals(IFileTransferPausable.class) && isHTTP11()) + return this; + if (adapter.equals(ISocketEventSource.class)) + return this.socketEventSource; + return super.getAdapter(adapter); + } + + /* (non-Javadoc) + * @see org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer#setupProxy(org.eclipse.ecf.core.util.Proxy) + */ + protected void setupProxy(Proxy proxy) { + Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, HttpClientRetrieveFileTransfer.class, "setupProxy " + proxy); //$NON-NLS-1$ + if (proxy.getType().equals(Proxy.Type.HTTP)) { + final ProxyAddress address = proxy.getAddress(); + ConnRouteParams.setDefaultProxy(httpClient.getParams(), new HttpHost(address.getHostName(), address.getPort())); + // getHostConfiguration().setProxy(address.getHostName(), address.getPort()); + } else if (proxy.getType().equals(Proxy.Type.SOCKS)) { + Trace.trace(Activator.PLUGIN_ID, "retrieve socksproxy=" + proxy.getAddress()); //$NON-NLS-1$ + proxyHelper.setupProxy(proxy); + } + } + + /** + * This method will clear out the proxy information (so that if this is + * reused for a request without a proxy, it will work correctly). + * @since 5.0 + */ + protected void clearProxy() { + Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, HttpClientRetrieveFileTransfer.class, "clearProxy()"); //$NON-NLS-1$ + ConnRouteParams.setDefaultProxy(httpClient.getParams(), null); + } + + /** + * @since 5.0 + */ + public static NTCredentials createNTLMCredentials(Proxy p) { + if (p == null) { + return null; + } + String un = getNTLMUserName(p); + String domain = getNTLMDomainName(p); + if (un == null || domain == null) + return null; + + String workstation = null; + try { + workstation = InetAddress.getLocalHost().getHostName(); + } catch (UnknownHostException e) { + Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, HttpClientRetrieveFileTransfer.class, "createNTLMCredentials", e); //$NON-NLS-1$ + } + + return new NTCredentials(un, p.getPassword(), workstation, domain); + } + + protected static String getNTLMDomainName(Proxy p) { + String domainUsername = p.getUsername(); + if (domainUsername == null) + return null; + int slashloc = domainUsername.indexOf('\\'); + if (slashloc == -1) + return null; + return domainUsername.substring(0, slashloc); + } + + protected static String getNTLMUserName(Proxy p) { + String domainUsername = p.getUsername(); + if (domainUsername == null) + return null; + int slashloc = domainUsername.indexOf('\\'); + if (slashloc == -1) + return null; + return domainUsername.substring(slashloc + 1); + } + + protected void fireConnectStartEvent() { + Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireConnectStartEvent"); //$NON-NLS-1$ + // TODO: should the following be in super.fireReceiveStartEvent(); + listener.handleTransferEvent(new IFileTransferConnectStartEvent() { + public IFileID getFileID() { + return remoteFileID; + } + + public void cancel() { + HttpClientRetrieveFileTransfer.this.cancel(); + } + + public FileTransferJob prepareConnectJob(FileTransferJob j) { + return HttpClientRetrieveFileTransfer.this.prepareConnectJob(j); + } + + public void connectUsingJob(FileTransferJob j) { + HttpClientRetrieveFileTransfer.this.connectUsingJob(j); + } + + public String toString() { + final StringBuffer sb = new StringBuffer("IFileTransferConnectStartEvent["); //$NON-NLS-1$ + sb.append(getFileID()); + sb.append("]"); //$NON-NLS-1$ + return sb.toString(); + } + + public Object getAdapter(Class adapter) { + return HttpClientRetrieveFileTransfer.this.getAdapter(adapter); + } + }); + } + + protected String createConnectJobName() { + return getRemoteFileURL().toString() + createRangeName() + Messages.HttpClientRetrieveFileTransfer_CONNECTING_JOB_NAME; + } + + protected FileTransferJob prepareConnectJob(FileTransferJob cjob) { + if (cjob == null) { + // Create our own + cjob = new FileTransferJob(createJobName()); + } + cjob.setFileTransfer(this); + cjob.setFileTransferRunnable(fileConnectRunnable); + return cjob; + } + + protected void connectUsingJob(FileTransferJob cjob) { + Assert.isNotNull(cjob); + this.connectJob = cjob; + } + + private IFileTransferRunnable fileConnectRunnable = new IFileTransferRunnable() { + public IStatus performFileTransfer(IProgressMonitor monitor) { + return performConnect(monitor); + } + }; + + private IStatus performConnect(IProgressMonitor monitor) { + // there might be more ticks in the future perhaps for + // connect socket, certificate validation, send request, authenticate, + int ticks = 1; + monitor.beginTask(getRemoteFileURL().toString() + Messages.HttpClientRetrieveFileTransfer_CONNECTING_TASK_NAME, ticks); + try { + if (monitor.isCanceled()) + throw newUserCancelledException(); + httpContext = new BasicHttpContext(); + httpResponse = httpClient.execute(getMethod, httpContext); + responseCode = httpResponse.getStatusLine().getStatusCode(); + Trace.trace(Activator.PLUGIN_ID, "retrieve resp=" + responseCode); //$NON-NLS-1$ + } catch (final Exception e) { + Trace.catching(Activator.PLUGIN_ID, DebugOptions.EXCEPTIONS_CATCHING, this.getClass(), "performConnect", e); //$NON-NLS-1$ + if (!isDone()) { + setDoneException(e); + } + } finally { + monitor.done(); + } + return Status.OK_STATUS; + + } + + protected void finalize() throws Throwable { + try { + if (this.httpClient != null) { + this.httpClient.getConnectionManager().shutdown(); + } + } finally { + super.finalize(); + } + } + + protected void fireReceiveResumedEvent() { + Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireReceiveResumedEvent len=" + fileLength + ";rcvd=" + bytesReceived); //$NON-NLS-1$ //$NON-NLS-2$ + super.fireReceiveResumedEvent(); + } + + protected void fireTransferReceiveDataEvent() { + Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireTransferReceiveDataEvent len=" + fileLength + ";rcvd=" + bytesReceived); //$NON-NLS-1$ //$NON-NLS-2$ + super.fireTransferReceiveDataEvent(); + } + + protected void fireTransferReceiveDoneEvent() { + Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireTransferReceiveDoneEvent len=" + fileLength + ";rcvd=" + bytesReceived); //$NON-NLS-1$ //$NON-NLS-2$ + this.doneFired = true; + super.fireTransferReceiveDoneEvent(); + } + + protected void fireTransferReceivePausedEvent() { + Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, this.getClass(), "fireTransferReceivePausedEvent len=" + fileLength + ";rcvd=" + bytesReceived); //$NON-NLS-1$ //$NON-NLS-2$ + super.fireTransferReceivePausedEvent(); + } + +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransferFactory.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransferFactory.java index 0797b6b66..54150e74d 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransferFactory.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransferFactory.java @@ -1,24 +1,24 @@ -/****************************************************************************
- * Copyright (c) 2007 IBM, Composent Inc. 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:
- * Composent, Inc. - initial API and implementation
- * Thomas Joiner - HttpClient 4 implementation
- *****************************************************************************/
-package org.eclipse.ecf.provider.filetransfer.httpclient4;
-
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.conn.SingleClientConnManager;
-import org.eclipse.ecf.filetransfer.service.IRetrieveFileTransfer;
-import org.eclipse.ecf.filetransfer.service.IRetrieveFileTransferFactory;
-
-public class HttpClientRetrieveFileTransferFactory implements IRetrieveFileTransferFactory {
-
- public IRetrieveFileTransfer newInstance() {
- return new HttpClientRetrieveFileTransfer(new DefaultHttpClient(new SingleClientConnManager()));
- }
-}
+/**************************************************************************** + * Copyright (c) 2007 IBM, Composent Inc. 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: + * Composent, Inc. - initial API and implementation + * Thomas Joiner - HttpClient 4 implementation + *****************************************************************************/ +package org.eclipse.ecf.provider.filetransfer.httpclient4; + +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.impl.conn.SingleClientConnManager; +import org.eclipse.ecf.filetransfer.service.IRetrieveFileTransfer; +import org.eclipse.ecf.filetransfer.service.IRetrieveFileTransferFactory; + +public class HttpClientRetrieveFileTransferFactory implements IRetrieveFileTransferFactory { + + public IRetrieveFileTransfer newInstance() { + return new HttpClientRetrieveFileTransfer(new DefaultHttpClient(new SingleClientConnManager())); + } +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientSslTrustManager.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientSslTrustManager.java index 28084d64d..cccabd2b3 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientSslTrustManager.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientSslTrustManager.java @@ -1,57 +1,57 @@ -/****************************************************************************
- * Copyright (c) 2004 Composent, Inc. 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:
- * Composent, Inc. - initial API and implementation
- *****************************************************************************/
-
-package org.eclipse.ecf.provider.filetransfer.httpclient4;
-
-import javax.net.ssl.X509TrustManager;
-
-public class HttpClientSslTrustManager implements X509TrustManager {
- // seems to be no purpose
- public boolean checkClientTrusted(java.security.cert.X509Certificate[] chain) {
- return true;
- }
-
- // seems to be no purpose
- public boolean isServerTrusted(java.security.cert.X509Certificate[] chain) {
- return true;
- }
-
- // seems to be no purpose
- public boolean isClientTrusted(java.security.cert.X509Certificate[] chain) {
- return true;
- }
-
- /**
- * @see javax.net.ssl.X509TrustManager#getAcceptedIssuers()
- */
- public java.security.cert.X509Certificate[] getAcceptedIssuers() {
- return null;
- }
-
- /**
- * @see javax.net.ssl.X509TrustManager#checkClientTrusted(java.security.cert.X509Certificate[],
- * java.lang.String)
- */
- public void checkClientTrusted(java.security.cert.X509Certificate[] chain,
- String authType) {
- // don't need to do any checks
- }
-
- /**
- * @see javax.net.ssl.X509TrustManager#checkServerTrusted(java.security.cert.X509Certificate[],
- * java.lang.String)
- */
- public void checkServerTrusted(java.security.cert.X509Certificate[] chain,
- String authType) {
- // don't need to do any checks
- }
-
-}
+/**************************************************************************** + * Copyright (c) 2004 Composent, Inc. 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: + * Composent, Inc. - initial API and implementation + *****************************************************************************/ + +package org.eclipse.ecf.provider.filetransfer.httpclient4; + +import javax.net.ssl.X509TrustManager; + +public class HttpClientSslTrustManager implements X509TrustManager { + // seems to be no purpose + public boolean checkClientTrusted(java.security.cert.X509Certificate[] chain) { + return true; + } + + // seems to be no purpose + public boolean isServerTrusted(java.security.cert.X509Certificate[] chain) { + return true; + } + + // seems to be no purpose + public boolean isClientTrusted(java.security.cert.X509Certificate[] chain) { + return true; + } + + /** + * @see javax.net.ssl.X509TrustManager#getAcceptedIssuers() + */ + public java.security.cert.X509Certificate[] getAcceptedIssuers() { + return null; + } + + /** + * @see javax.net.ssl.X509TrustManager#checkClientTrusted(java.security.cert.X509Certificate[], + * java.lang.String) + */ + public void checkClientTrusted(java.security.cert.X509Certificate[] chain, + String authType) { + // don't need to do any checks + } + + /** + * @see javax.net.ssl.X509TrustManager#checkServerTrusted(java.security.cert.X509Certificate[], + * java.lang.String) + */ + public void checkServerTrusted(java.security.cert.X509Certificate[] chain, + String authType) { + // don't need to do any checks + } + +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/NTLMProxyDetector.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/NTLMProxyDetector.java index 4510dd6cb..3545637c8 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/NTLMProxyDetector.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/NTLMProxyDetector.java @@ -1,64 +1,64 @@ -/*******************************************************************************
-* Copyright (c) 2009 EclipseSource 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:
-* EclipseSource - initial API and implementation
-* Thomas Joiner - changed to work with HttpClient 4.1 and added SPNEGO detection
-******************************************************************************/
-package org.eclipse.ecf.provider.filetransfer.httpclient4;
-
-import org.apache.http.auth.AuthScheme;
-import org.apache.http.auth.AuthState;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.protocol.ClientContext;
-import org.apache.http.protocol.HttpContext;
-
-public class NTLMProxyDetector {
-
- private static final String PROXY_SPNEGO_VALUE = "NEGOTIATE"; //$NON-NLS-1$
- private static final String PROXY_NTLM_VALUE = "NTLM"; //$NON-NLS-1$
-
- /**
- * This method will detect if the request connected to a NTLM proxy
- * given the {@link HttpContext} provided to one of the {@link HttpClient#execute()}
- * methods.
- *
- * @param context the {@link HttpContext} given to the {@link HttpClient} at execution time
- * @return true if it connected to an NTLM proxy
- * @since 5.0
- */
- public static boolean detectNTLMProxy(HttpContext context) {
- return isProxyType(context, PROXY_NTLM_VALUE);
- }
-
- private static boolean isProxyType(HttpContext context, String scheme) {
- if (context == null)
- return false;
- AuthState authState = (AuthState) context.getAttribute(ClientContext.PROXY_AUTH_STATE);
- if (authState == null)
- return false;
- AuthScheme authScheme = authState.getAuthScheme();
- if (authScheme == null)
- return false;
- String schemeName = authScheme.getSchemeName();
- if (schemeName == null)
- return false;
- return schemeName.equalsIgnoreCase(scheme);
- }
-
- /**
- * This method will detect if the request connected to a SPNEGO proxy
- * given the {@link HttpContext} provided to one of the {@link HttpClient#execute()}
- * methods.
- *
- * @param context the {@link HttpContext} given to the {@link HttpClient} at execution time
- * @return true if it connected to an SPNEGO proxy
- * @since 5.0
- */
- public static boolean detectSPNEGOProxy(HttpContext context) {
- return isProxyType(context, PROXY_SPNEGO_VALUE);
- }
-}
+/******************************************************************************* +* Copyright (c) 2009 EclipseSource 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: +* EclipseSource - initial API and implementation +* Thomas Joiner - changed to work with HttpClient 4.1 and added SPNEGO detection +******************************************************************************/ +package org.eclipse.ecf.provider.filetransfer.httpclient4; + +import org.apache.http.auth.AuthScheme; +import org.apache.http.auth.AuthState; +import org.apache.http.client.HttpClient; +import org.apache.http.client.protocol.ClientContext; +import org.apache.http.protocol.HttpContext; + +public class NTLMProxyDetector { + + private static final String PROXY_SPNEGO_VALUE = "NEGOTIATE"; //$NON-NLS-1$ + private static final String PROXY_NTLM_VALUE = "NTLM"; //$NON-NLS-1$ + + /** + * This method will detect if the request connected to a NTLM proxy + * given the {@link HttpContext} provided to one of the {@link HttpClient#execute()} + * methods. + * + * @param context the {@link HttpContext} given to the {@link HttpClient} at execution time + * @return true if it connected to an NTLM proxy + * @since 5.0 + */ + public static boolean detectNTLMProxy(HttpContext context) { + return isProxyType(context, PROXY_NTLM_VALUE); + } + + private static boolean isProxyType(HttpContext context, String scheme) { + if (context == null) + return false; + AuthState authState = (AuthState) context.getAttribute(ClientContext.PROXY_AUTH_STATE); + if (authState == null) + return false; + AuthScheme authScheme = authState.getAuthScheme(); + if (authScheme == null) + return false; + String schemeName = authScheme.getSchemeName(); + if (schemeName == null) + return false; + return schemeName.equalsIgnoreCase(scheme); + } + + /** + * This method will detect if the request connected to a SPNEGO proxy + * given the {@link HttpContext} provided to one of the {@link HttpClient#execute()} + * methods. + * + * @param context the {@link HttpContext} given to the {@link HttpClient} at execution time + * @return true if it connected to an SPNEGO proxy + * @since 5.0 + */ + public static boolean detectSPNEGOProxy(HttpContext context) { + return isProxyType(context, PROXY_SPNEGO_VALUE); + } +} diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.ssl/.settings/org.eclipse.pde.api.tools.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer.ssl/.settings/org.eclipse.pde.api.tools.prefs index ab935311a..9917f9f36 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.ssl/.settings/org.eclipse.pde.api.tools.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.ssl/.settings/org.eclipse.pde.api.tools.prefs @@ -1,97 +1,97 @@ -ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-MISSING_EE_DESCRIPTIONS=Ignore
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error +ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error +API_USE_SCAN_FIELD_SEVERITY=Error +API_USE_SCAN_METHOD_SEVERITY=Error +API_USE_SCAN_TYPE_SEVERITY=Error +CLASS_ELEMENT_TYPE_ADDED_METHOD=Error +CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error +CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error +CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error +CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error +ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error +ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error +ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +FIELD_ELEMENT_TYPE_ADDED_VALUE=Error +FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error +FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error +FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error +FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error +ILLEGAL_EXTEND=Warning +ILLEGAL_IMPLEMENT=Warning +ILLEGAL_INSTANTIATE=Warning +ILLEGAL_OVERRIDE=Warning +ILLEGAL_REFERENCE=Warning +INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error +INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error +INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error +INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +INVALID_JAVADOC_TAG=Ignore +INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error +LEAK_EXTEND=Warning +LEAK_FIELD_DECL=Warning +LEAK_IMPLEMENT=Warning +LEAK_METHOD_PARAM=Warning +LEAK_METHOD_RETURN_TYPE=Warning +METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error +METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +MISSING_EE_DESCRIPTIONS=Ignore +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error +UNUSED_PROBLEM_FILTERS=Warning +automatically_removed_unused_problem_filters=false +eclipse.preferences.version=1 +incompatible_api_component_version=Error +incompatible_api_component_version_include_major_without_breaking_change=Disabled +incompatible_api_component_version_include_minor_without_api_change=Disabled +invalid_since_tag_version=Error +malformed_since_tag=Error +missing_since_tag=Error +report_api_breakage_when_major_version_incremented=Disabled +report_resolution_errors_api_component=Warning diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.jdt.core.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.jdt.core.prefs index 6a019717a..8a0ed9f30 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.jdt.core.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.jdt.core.prefs @@ -1,357 +1,357 @@ -#Mon May 09 12:40:32 PDT 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-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.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-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=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-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=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-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=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=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.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=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-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=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-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_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=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_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_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.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_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=false
-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=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-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.format_guardian_clause_on_one_line=false
-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=4
-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_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=do not 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_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=do not 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_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_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=do not 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_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=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=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_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_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_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_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.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=800
-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=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+#Mon May 09 12:40:32 PDT 2011 +eclipse.preferences.version=1 +org.eclipse.jdt.core.builder.cleanOutputFolder=clean +org.eclipse.jdt.core.builder.duplicateResourceTask=warning +org.eclipse.jdt.core.builder.invalidClasspath=abort +org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch +org.eclipse.jdt.core.circularClasspath=error +org.eclipse.jdt.core.classpath.exclusionPatterns=enabled +org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.4 +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.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning +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=ignore +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore +org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore +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=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +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=warning +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=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.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=ignore +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled +org.eclipse.jdt.core.compiler.problem.unusedImport=error +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=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.3 +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_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=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_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_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.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_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=false +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=false +org.eclipse.jdt.core.formatter.comment.format_line_comments=false +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false +org.eclipse.jdt.core.formatter.comment.indent_root_tags=false +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +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.format_guardian_clause_on_one_line=false +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=4 +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_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=do not 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_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=do not 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_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_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=do not 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_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=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=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_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_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_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_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.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=800 +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=false +org.eclipse.jdt.core.formatter.tabulation.char=tab +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.incompatibleJDKLevel=ignore +org.eclipse.jdt.core.incompleteClasspath=error diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.pde.api.tools.prefs b/providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.pde.api.tools.prefs index ab935311a..9917f9f36 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.pde.api.tools.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer/.settings/org.eclipse.pde.api.tools.prefs @@ -1,97 +1,97 @@ -ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-MISSING_EE_DESCRIPTIONS=Ignore
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error +ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error +API_USE_SCAN_FIELD_SEVERITY=Error +API_USE_SCAN_METHOD_SEVERITY=Error +API_USE_SCAN_TYPE_SEVERITY=Error +CLASS_ELEMENT_TYPE_ADDED_METHOD=Error +CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error +CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error +CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error +CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error +ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error +ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error +ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +FIELD_ELEMENT_TYPE_ADDED_VALUE=Error +FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error +FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error +FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error +FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error +ILLEGAL_EXTEND=Warning +ILLEGAL_IMPLEMENT=Warning +ILLEGAL_INSTANTIATE=Warning +ILLEGAL_OVERRIDE=Warning +ILLEGAL_REFERENCE=Warning +INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error +INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error +INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error +INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +INVALID_JAVADOC_TAG=Ignore +INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error +LEAK_EXTEND=Warning +LEAK_FIELD_DECL=Warning +LEAK_IMPLEMENT=Warning +LEAK_METHOD_PARAM=Warning +LEAK_METHOD_RETURN_TYPE=Warning +METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error +METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +MISSING_EE_DESCRIPTIONS=Ignore +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error +UNUSED_PROBLEM_FILTERS=Warning +automatically_removed_unused_problem_filters=false +eclipse.preferences.version=1 +incompatible_api_component_version=Error +incompatible_api_component_version_include_major_without_breaking_change=Disabled +incompatible_api_component_version_include_minor_without_api_change=Disabled +invalid_since_tag_version=Error +malformed_since_tag=Error +missing_since_tag=Error +report_api_breakage_when_major_version_incremented=Disabled +report_resolution_errors_api_component=Warning diff --git a/providers/bundles/org.eclipse.ecf.provider.jmdns/.settings/org.eclipse.jdt.core.prefs b/providers/bundles/org.eclipse.ecf.provider.jmdns/.settings/org.eclipse.jdt.core.prefs index 793ca8bf0..9c2a43317 100644 --- a/providers/bundles/org.eclipse.ecf.provider.jmdns/.settings/org.eclipse.jdt.core.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.jmdns/.settings/org.eclipse.jdt.core.prefs @@ -1,354 +1,354 @@ -#Tue Jan 11 17:12:15 PST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-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.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-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=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-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=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-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.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=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.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=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=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=ignore
-org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore
-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=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-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_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=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_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_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.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_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=false
-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=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-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.format_guardian_clause_on_one_line=false
-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=4
-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_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=do not 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_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=do not 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_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_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=do not 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_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=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=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_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_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_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_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.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=800
-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=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+#Tue Jan 11 17:12:15 PST 2011 +eclipse.preferences.version=1 +org.eclipse.jdt.core.builder.cleanOutputFolder=clean +org.eclipse.jdt.core.builder.duplicateResourceTask=warning +org.eclipse.jdt.core.builder.invalidClasspath=abort +org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch +org.eclipse.jdt.core.circularClasspath=error +org.eclipse.jdt.core.classpath.exclusionPatterns=enabled +org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.4 +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.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000 +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=ignore +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=error +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore +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=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +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.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=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.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=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=enabled +org.eclipse.jdt.core.compiler.problem.unusedImport=error +org.eclipse.jdt.core.compiler.problem.unusedLabel=ignore +org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore +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=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.3 +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_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=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_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_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.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_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=false +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=false +org.eclipse.jdt.core.formatter.comment.format_line_comments=false +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false +org.eclipse.jdt.core.formatter.comment.indent_root_tags=false +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +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.format_guardian_clause_on_one_line=false +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=4 +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_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=do not 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_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=do not 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_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_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=do not 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_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=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=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_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_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_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_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.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=800 +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=false +org.eclipse.jdt.core.formatter.tabulation.char=tab +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.incompatibleJDKLevel=ignore +org.eclipse.jdt.core.incompleteClasspath=error diff --git a/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceListener.java b/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceListener.java index 264aee730..d9cd02252 100644 --- a/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceListener.java +++ b/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceListener.java @@ -1,42 +1,42 @@ -//Copyright 2003-2005 Arthur van Hoff, Rick Blair
-//Licensed under Apache License version 2.0
-//Original license LGPL
-
-package javax.jmdns;
-
-import java.util.EventListener;
-
-/**
- * Listener for service updates.
- *
- * @version %I%, %G%
- * @author Arthur van Hoff, Werner Randelshofer
- */
-public interface ServiceListener extends EventListener
-{
- /**
- * A service has been added.
- *
- * @param event The ServiceEvent providing the name and fully qualified type
- * of the service.
- */
- void serviceAdded(ServiceEvent event);
-
- /**
- * A service has been removed.
- *
- * @param event The ServiceEvent providing the name and fully qualified type
- * of the service.
- */
- void serviceRemoved(ServiceEvent event);
-
- /**
- * A service has been resolved. Its details are now available in the
- * ServiceInfo record.
- *
- * @param event The ServiceEvent providing the name, the fully qualified
- * type of the service, and the service info record, or null if the service
- * could not be resolved.
- */
- void serviceResolved(ServiceEvent event);
-}
+//Copyright 2003-2005 Arthur van Hoff, Rick Blair +//Licensed under Apache License version 2.0 +//Original license LGPL + +package javax.jmdns; + +import java.util.EventListener; + +/** + * Listener for service updates. + * + * @version %I%, %G% + * @author Arthur van Hoff, Werner Randelshofer + */ +public interface ServiceListener extends EventListener +{ + /** + * A service has been added. + * + * @param event The ServiceEvent providing the name and fully qualified type + * of the service. + */ + void serviceAdded(ServiceEvent event); + + /** + * A service has been removed. + * + * @param event The ServiceEvent providing the name and fully qualified type + * of the service. + */ + void serviceRemoved(ServiceEvent event); + + /** + * A service has been resolved. Its details are now available in the + * ServiceInfo record. + * + * @param event The ServiceEvent providing the name, the fully qualified + * type of the service, and the service info record, or null if the service + * could not be resolved. + */ + void serviceResolved(ServiceEvent event); +} diff --git a/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceTypeListener.java b/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceTypeListener.java index a3d1c835f..c0d63972f 100644 --- a/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceTypeListener.java +++ b/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/ServiceTypeListener.java @@ -1,24 +1,24 @@ -//Copyright 2003-2005 Arthur van Hoff, Rick Blair
-//Licensed under Apache License version 2.0
-//Original license LGPL
-
-package javax.jmdns;
-
-import java.util.EventListener;
-
-/**
- * Listener for service types.
- *
- * @version %I%, %G%
- * @author Arthur van Hoff, Werner Randelshofer
- */
-public interface ServiceTypeListener extends EventListener
-{
- /**
- * A new service type was discovered.
- *
- * @param event The service event providing the fully qualified type of
- * the service.
- */
- void serviceTypeAdded(ServiceEvent event);
-}
+//Copyright 2003-2005 Arthur van Hoff, Rick Blair +//Licensed under Apache License version 2.0 +//Original license LGPL + +package javax.jmdns; + +import java.util.EventListener; + +/** + * Listener for service types. + * + * @version %I%, %G% + * @author Arthur van Hoff, Werner Randelshofer + */ +public interface ServiceTypeListener extends EventListener +{ + /** + * A new service type was discovered. + * + * @param event The service event providing the fully qualified type of + * the service. + */ + void serviceTypeAdded(ServiceEvent event); +} diff --git a/providers/bundles/org.eclipse.ecf.provider.msn/.classpath b/providers/bundles/org.eclipse.ecf.provider.msn/.classpath index d62b365d0..6f3b481ac 100644 --- a/providers/bundles/org.eclipse.ecf.provider.msn/.classpath +++ b/providers/bundles/org.eclipse.ecf.provider.msn/.classpath @@ -1,7 +1,7 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/providers/bundles/org.eclipse.ecf.provider.msn/.settings/org.eclipse.jdt.core.prefs b/providers/bundles/org.eclipse.ecf.provider.msn/.settings/org.eclipse.jdt.core.prefs index 9172f32f3..fb1e301ab 100644 --- a/providers/bundles/org.eclipse.ecf.provider.msn/.settings/org.eclipse.jdt.core.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.msn/.settings/org.eclipse.jdt.core.prefs @@ -1,65 +1,65 @@ -#Fri Oct 15 17:08:29 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-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.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.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-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.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=ignore
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-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=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-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.unusedParameter=warning
-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.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
+#Fri Oct 15 17:08:29 PDT 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.4 +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.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.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +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.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning +org.eclipse.jdt.core.compiler.problem.nullReference=ignore +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=ignore +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore +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=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +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.unusedParameter=warning +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.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.3 diff --git a/providers/bundles/org.eclipse.ecf.provider.r_osgi/.classpath b/providers/bundles/org.eclipse.ecf.provider.r_osgi/.classpath index d62b365d0..6f3b481ac 100644 --- a/providers/bundles/org.eclipse.ecf.provider.r_osgi/.classpath +++ b/providers/bundles/org.eclipse.ecf.provider.r_osgi/.classpath @@ -1,7 +1,7 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/providers/bundles/org.eclipse.ecf.provider.r_osgi/.settings/org.eclipse.jdt.core.prefs b/providers/bundles/org.eclipse.ecf.provider.r_osgi/.settings/org.eclipse.jdt.core.prefs index 56b383382..e6127aa4b 100644 --- a/providers/bundles/org.eclipse.ecf.provider.r_osgi/.settings/org.eclipse.jdt.core.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.r_osgi/.settings/org.eclipse.jdt.core.prefs @@ -1,346 +1,346 @@ -#Fri Oct 15 17:09:07 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-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.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-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=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-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.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-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=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-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_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=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_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_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.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_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=false
-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=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-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.format_guardian_clause_on_one_line=false
-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=4
-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_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=do not 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_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=do not 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_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_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=do not 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_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=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=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_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_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_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_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.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=800
-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=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
+#Fri Oct 15 17:09:07 PDT 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.builder.cleanOutputFolder=clean +org.eclipse.jdt.core.builder.duplicateResourceTask=warning +org.eclipse.jdt.core.builder.invalidClasspath=abort +org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch +org.eclipse.jdt.core.circularClasspath=error +org.eclipse.jdt.core.classpath.exclusionPatterns=enabled +org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.4 +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.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000 +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=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore +org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore +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.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +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=warning +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled +org.eclipse.jdt.core.compiler.problem.unusedImport=error +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.3 +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_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=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_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_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.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_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=false +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=false +org.eclipse.jdt.core.formatter.comment.format_line_comments=false +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false +org.eclipse.jdt.core.formatter.comment.indent_root_tags=false +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +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.format_guardian_clause_on_one_line=false +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=4 +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_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=do not 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_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=do not 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_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_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=do not 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_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=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=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_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_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_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_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.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=800 +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=false +org.eclipse.jdt.core.formatter.tabulation.char=tab +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.incompatibleJDKLevel=ignore +org.eclipse.jdt.core.incompleteClasspath=error diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice/.settings/org.eclipse.pde.api.tools.prefs b/providers/bundles/org.eclipse.ecf.provider.remoteservice/.settings/org.eclipse.pde.api.tools.prefs index 6525bfd7e..197e26291 100644 --- a/providers/bundles/org.eclipse.ecf.provider.remoteservice/.settings/org.eclipse.pde.api.tools.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice/.settings/org.eclipse.pde.api.tools.prefs @@ -1,94 +1,94 @@ -#Sun Oct 17 11:34:32 PDT 2010
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Ignore
-LEAK_METHOD_RETURN_TYPE=Ignore
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
+#Sun Oct 17 11:34:32 PDT 2010 +ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error +ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error +CLASS_ELEMENT_TYPE_ADDED_METHOD=Error +CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error +CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error +CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error +CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error +ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error +ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error +ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +FIELD_ELEMENT_TYPE_ADDED_VALUE=Error +FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error +FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error +FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error +FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error +ILLEGAL_EXTEND=Warning +ILLEGAL_IMPLEMENT=Warning +ILLEGAL_INSTANTIATE=Warning +ILLEGAL_OVERRIDE=Warning +ILLEGAL_REFERENCE=Warning +INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error +INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error +INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error +INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +INVALID_JAVADOC_TAG=Ignore +INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore +LEAK_EXTEND=Warning +LEAK_FIELD_DECL=Warning +LEAK_IMPLEMENT=Warning +LEAK_METHOD_PARAM=Ignore +LEAK_METHOD_RETURN_TYPE=Ignore +METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error +METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error +UNUSED_PROBLEM_FILTERS=Warning +automatically_removed_unused_problem_filters=false +eclipse.preferences.version=1 +incompatible_api_component_version=Error +incompatible_api_component_version_include_major_without_breaking_change=Disabled +incompatible_api_component_version_include_minor_without_api_change=Disabled +invalid_since_tag_version=Error +malformed_since_tag=Error +missing_since_tag=Error +report_api_breakage_when_major_version_incremented=Disabled +report_resolution_errors_api_component=Warning diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/Messages.java b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/Messages.java index f85b69337..e90183387 100644 --- a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/Messages.java +++ b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/Messages.java @@ -1,85 +1,85 @@ -/*******************************************************************************
- * Copyright (c) 2004, 2007 Composent, Inc. 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:
- * Composent, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ecf.internal.provider.xmpp.ui;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.ecf.internal.provider.xmpp.ui.messages"; //$NON-NLS-1$
-
- public static String XMPPConnectWizardPage_WIZARD_TITLE;
- public static String XMPPConnectWizardPage_WIZARD_DESCRIPTION;
- public static String XMPPCompoundContributionItem_CHOOSE_FILE;
- public static String XMPPConnectWizard_RECEIVE_ERROR_MESSAGE;
-
- public static String XMPPHyperlink_CONNECT_ACCOUNT_DIALOG_MESSAGE;
-
- public static String XMPPHyperlink_CONNECT_ACCOUNT_DIALOG_TITLE;
-
- public static String XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_DIALOG_MESSAGE;
-
- public static String XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_DIALOG_TITLE;
-
- public static String XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_LOG_STATUS_MESSAGE;
-
- public static String XMPPHyperlink_MESSAGING_ERROR_MESSAGE;
-
- public static String XMPPHyperlink_MESSAGING_ERROR_TITLE;
-
- public static String XMPPHyperlink_SELECT_ACCOUNT_MESSAGE;
-
- public static String XMPPHyperlink_SELECT_ACCOUNT_TITLE;
-
- public static String XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_CANCEL;
-
- public static String XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_CONNECT;
-
- public static String XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_SEND_MESSAGE;
-
- public static String XMPPHyperlink_SELECT_ACTION_DIALOG_MESSAGE;
-
- public static String XMPPHyperlink_SELECT_ACTION_DIALOG_TITLE;
-
- public static String XMPPSConnectWizardPage_WIZARD_PAGE_TITLE;
- public static String XMPPSConnectWizardPage_WIZARD_PAGE_STATUS;
- public static String XMPPConnectWizardPage_LABEL_USERID;
- public static String XMPPConnectWizard_FILE_SAVE_TITLE;
- public static String XMPPConnectWizardPage_WIZARD_STATUS;
- public static String XMPPConnectWizardPage_WIZARD_STATUS_INCOMPLETE;
- public static String XMPPConnectWizardPage_USERID_TEMPLATE;
- public static String XMPPConnectWizardPage_WIZARD_PASSWORD;
- public static String XMPPSConnectWizardPage_WIZARD_PAGE_KEYSTORE_PASSWORD;
- public static String XMPPConnectWizardPage_WIZARD_ALT_SERVER;
- public static String XMPPConnectWizardPage_WIZARD_ALT_SERVER_TEXT;
- public static String XMPPConnectWizardPage_WIZARD_ALT_SERVER_INCOMPLETE;
- public static String XMPPConnectWizard_FILE_RECEIVE_TITLE;
- public static String XMPPConnectWizard_FILE_RECEIVE_MESSAGE;
- public static String XMPPCompoundContributionItem_SEND_FILE;
- public static String XMPPConnectWizard_RECEIVE_ERROR_TITLE;
- public static String XMPPSConnectWizardPage_WIZARD_PAGE_DESCRIPTION;
- public static String XMPPCompoundContributionItem_SEND_ERROR_TITLE;
- public static String XMPPCompoundContributionItem_SEND_ERROR_MESSAGE;
- public static String XMPPSConnectWizardPage_WIZARD_PAGE_TEMPLATE;
- public static String XMPPSConnectWizardPage_WIZARD_PAGE_PASSWORD;
- public static String XMPPCompoundContributionItem_FILE_SEND_REFUSED_TITLE;
- public static String XMPPCompoundContributionItem_FILE_SEND_REFUSED_MESSAGE;
-
- public static String XMPPConnectWizard_WIZARD_TITLE;
- public static String XMPPSConnectWizard_WIZARD_TITLE;
-
- private Messages() {
- }
-
- static {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-}
+/******************************************************************************* + * Copyright (c) 2004, 2007 Composent, Inc. 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: + * Composent, Inc. - initial API and implementation + ******************************************************************************/ + +package org.eclipse.ecf.internal.provider.xmpp.ui; + +import org.eclipse.osgi.util.NLS; + +public class Messages extends NLS { + private static final String BUNDLE_NAME = "org.eclipse.ecf.internal.provider.xmpp.ui.messages"; //$NON-NLS-1$ + + public static String XMPPConnectWizardPage_WIZARD_TITLE; + public static String XMPPConnectWizardPage_WIZARD_DESCRIPTION; + public static String XMPPCompoundContributionItem_CHOOSE_FILE; + public static String XMPPConnectWizard_RECEIVE_ERROR_MESSAGE; + + public static String XMPPHyperlink_CONNECT_ACCOUNT_DIALOG_MESSAGE; + + public static String XMPPHyperlink_CONNECT_ACCOUNT_DIALOG_TITLE; + + public static String XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_DIALOG_MESSAGE; + + public static String XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_DIALOG_TITLE; + + public static String XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_LOG_STATUS_MESSAGE; + + public static String XMPPHyperlink_MESSAGING_ERROR_MESSAGE; + + public static String XMPPHyperlink_MESSAGING_ERROR_TITLE; + + public static String XMPPHyperlink_SELECT_ACCOUNT_MESSAGE; + + public static String XMPPHyperlink_SELECT_ACCOUNT_TITLE; + + public static String XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_CANCEL; + + public static String XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_CONNECT; + + public static String XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_SEND_MESSAGE; + + public static String XMPPHyperlink_SELECT_ACTION_DIALOG_MESSAGE; + + public static String XMPPHyperlink_SELECT_ACTION_DIALOG_TITLE; + + public static String XMPPSConnectWizardPage_WIZARD_PAGE_TITLE; + public static String XMPPSConnectWizardPage_WIZARD_PAGE_STATUS; + public static String XMPPConnectWizardPage_LABEL_USERID; + public static String XMPPConnectWizard_FILE_SAVE_TITLE; + public static String XMPPConnectWizardPage_WIZARD_STATUS; + public static String XMPPConnectWizardPage_WIZARD_STATUS_INCOMPLETE; + public static String XMPPConnectWizardPage_USERID_TEMPLATE; + public static String XMPPConnectWizardPage_WIZARD_PASSWORD; + public static String XMPPSConnectWizardPage_WIZARD_PAGE_KEYSTORE_PASSWORD; + public static String XMPPConnectWizardPage_WIZARD_ALT_SERVER; + public static String XMPPConnectWizardPage_WIZARD_ALT_SERVER_TEXT; + public static String XMPPConnectWizardPage_WIZARD_ALT_SERVER_INCOMPLETE; + public static String XMPPConnectWizard_FILE_RECEIVE_TITLE; + public static String XMPPConnectWizard_FILE_RECEIVE_MESSAGE; + public static String XMPPCompoundContributionItem_SEND_FILE; + public static String XMPPConnectWizard_RECEIVE_ERROR_TITLE; + public static String XMPPSConnectWizardPage_WIZARD_PAGE_DESCRIPTION; + public static String XMPPCompoundContributionItem_SEND_ERROR_TITLE; + public static String XMPPCompoundContributionItem_SEND_ERROR_MESSAGE; + public static String XMPPSConnectWizardPage_WIZARD_PAGE_TEMPLATE; + public static String XMPPSConnectWizardPage_WIZARD_PAGE_PASSWORD; + public static String XMPPCompoundContributionItem_FILE_SEND_REFUSED_TITLE; + public static String XMPPCompoundContributionItem_FILE_SEND_REFUSED_MESSAGE; + + public static String XMPPConnectWizard_WIZARD_TITLE; + public static String XMPPSConnectWizard_WIZARD_TITLE; + + private Messages() { + } + + static { + NLS.initializeMessages(BUNDLE_NAME, Messages.class); + } +} diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/messages.properties b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/messages.properties index 59dc50acc..99daa48cb 100644 --- a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/messages.properties +++ b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/messages.properties @@ -1,55 +1,55 @@ -################################################################################
-# Copyright (c) 2007 Composent, Inc. 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:
-# Composent, Inc. - initial API and implementation
-################################################################################
-
-XMPPConnectWizardPage_WIZARD_TITLE=XMPP Connection Wizard
-XMPPConnectWizardPage_WIZARD_DESCRIPTION=Specify an XMPP account to connect to.
-XMPPCompoundContributionItem_CHOOSE_FILE=Choose File For {0}
-XMPPConnectWizard_RECEIVE_ERROR_MESSAGE=Error receiving file {0} from {1}. Error: {2}
-XMPPSConnectWizardPage_WIZARD_PAGE_TITLE=XMPPS Connection Wizard
-XMPPSConnectWizardPage_WIZARD_PAGE_STATUS=A valid User ID must be specified.
-XMPPConnectWizardPage_LABEL_USERID=User ID:
-XMPPConnectWizard_FILE_SAVE_TITLE=Save File From {0}
-XMPPConnectWizardPage_WIZARD_STATUS=A valid connect ID must be specified.
-XMPPConnectWizardPage_WIZARD_STATUS_INCOMPLETE=The User ID is malformed.
-XMPPConnectWizardPage_USERID_TEMPLATE=<user>@<xmppserver>[:port]
-XMPPConnectWizardPage_WIZARD_PASSWORD=Password:
-XMPPConnectWizardPage_WIZARD_ALT_SERVER=Alternative Server (optional):
-XMPPConnectWizardPage_WIZARD_ALT_SERVER_TEXT=(use 'talk.google.com' if User ID is a Google for Domains account)
-XMPPConnectWizardPage_WIZARD_ALT_SERVER_INCOMPLETE=The Alternative Server name is malformed.
-XMPPConnectWizard_FILE_RECEIVE_TITLE=File Receive Request From {0}
-XMPPConnectWizard_FILE_RECEIVE_MESSAGE=User {0} would like to send you a file called {1}\n\nThe size of the file is {2}\nDescription: {3}\n\nDo you want to receive this file?
-XMPPCompoundContributionItem_SEND_FILE=Send File
-XMPPConnectWizard_RECEIVE_ERROR_TITLE=Receive Error
-XMPPSConnectWizardPage_WIZARD_PAGE_DESCRIPTION=Specify an XMPPS account to connect to.
-XMPPCompoundContributionItem_SEND_ERROR_TITLE=Send Error
-XMPPCompoundContributionItem_SEND_ERROR_MESSAGE=Error sending file {0}. Error: {1}
-XMPPSConnectWizardPage_WIZARD_PAGE_TEMPLATE=<user>@<xmppsserver>[:port]
-XMPPSConnectWizardPage_WIZARD_PAGE_PASSWORD=Password:
-XMPPSConnectWizardPage_WIZARD_PAGE_KEYSTORE_PASSWORD=Keystore Passphrase (optional):
-XMPPCompoundContributionItem_FILE_SEND_REFUSED_TITLE=File Send Refused
-XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_DIALOG_TITLE=Error opening view
-XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_CONNECT=Connect to Account
-XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_CANCEL=Cancel
-XMPPHyperlink_CONNECT_ACCOUNT_DIALOG_MESSAGE=You are not currently connected so messages cannot be sent.\n\nDo you want to connect and login to {0}?
-XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_DIALOG_MESSAGE=Error opening view: {0}. See Error Log for Details
-XMPPCompoundContributionItem_FILE_SEND_REFUSED_MESSAGE=Send of {0} refused by {1}
-XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_LOG_STATUS_MESSAGE=Error opening messages view
-XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_SEND_MESSAGE=Send Message
-XMPPHyperlink_SELECT_ACCOUNT_TITLE=Select Account
-XMPPHyperlink_SELECT_ACCOUNT_MESSAGE=Select Account to Use
-XMPPHyperlink_SELECT_ACTION_DIALOG_TITLE=Select Action
-XMPPHyperlink_SELECT_ACTION_DIALOG_MESSAGE=The target host {0} is not the same as {1}.\n\nDo you want to:\n\n1) Send message to {2} from {3}?\n\n2) Connect and login to account {2}?
-XMPPHyperlink_MESSAGING_ERROR_TITLE=Messaging Error
-XMPPHyperlink_MESSAGING_ERROR_MESSAGE=You don't want to talk to yourself, do you?
-XMPPHyperlink_CONNECT_ACCOUNT_DIALOG_TITLE=Connect To Account
-
-XMPPConnectWizard_WIZARD_TITLE=New XMPP Connection
-XMPPSConnectWizard_WIZARD_TITLE=New XMPPS Connection
+################################################################################ +# Copyright (c) 2007 Composent, Inc. 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: +# Composent, Inc. - initial API and implementation +################################################################################ + +XMPPConnectWizardPage_WIZARD_TITLE=XMPP Connection Wizard +XMPPConnectWizardPage_WIZARD_DESCRIPTION=Specify an XMPP account to connect to. +XMPPCompoundContributionItem_CHOOSE_FILE=Choose File For {0} +XMPPConnectWizard_RECEIVE_ERROR_MESSAGE=Error receiving file {0} from {1}. Error: {2} +XMPPSConnectWizardPage_WIZARD_PAGE_TITLE=XMPPS Connection Wizard +XMPPSConnectWizardPage_WIZARD_PAGE_STATUS=A valid User ID must be specified. +XMPPConnectWizardPage_LABEL_USERID=User ID: +XMPPConnectWizard_FILE_SAVE_TITLE=Save File From {0} +XMPPConnectWizardPage_WIZARD_STATUS=A valid connect ID must be specified. +XMPPConnectWizardPage_WIZARD_STATUS_INCOMPLETE=The User ID is malformed. +XMPPConnectWizardPage_USERID_TEMPLATE=<user>@<xmppserver>[:port] +XMPPConnectWizardPage_WIZARD_PASSWORD=Password: +XMPPConnectWizardPage_WIZARD_ALT_SERVER=Alternative Server (optional): +XMPPConnectWizardPage_WIZARD_ALT_SERVER_TEXT=(use 'talk.google.com' if User ID is a Google for Domains account) +XMPPConnectWizardPage_WIZARD_ALT_SERVER_INCOMPLETE=The Alternative Server name is malformed. +XMPPConnectWizard_FILE_RECEIVE_TITLE=File Receive Request From {0} +XMPPConnectWizard_FILE_RECEIVE_MESSAGE=User {0} would like to send you a file called {1}\n\nThe size of the file is {2}\nDescription: {3}\n\nDo you want to receive this file? +XMPPCompoundContributionItem_SEND_FILE=Send File +XMPPConnectWizard_RECEIVE_ERROR_TITLE=Receive Error +XMPPSConnectWizardPage_WIZARD_PAGE_DESCRIPTION=Specify an XMPPS account to connect to. +XMPPCompoundContributionItem_SEND_ERROR_TITLE=Send Error +XMPPCompoundContributionItem_SEND_ERROR_MESSAGE=Error sending file {0}. Error: {1} +XMPPSConnectWizardPage_WIZARD_PAGE_TEMPLATE=<user>@<xmppsserver>[:port] +XMPPSConnectWizardPage_WIZARD_PAGE_PASSWORD=Password: +XMPPSConnectWizardPage_WIZARD_PAGE_KEYSTORE_PASSWORD=Keystore Passphrase (optional): +XMPPCompoundContributionItem_FILE_SEND_REFUSED_TITLE=File Send Refused +XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_DIALOG_TITLE=Error opening view +XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_CONNECT=Connect to Account +XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_CANCEL=Cancel +XMPPHyperlink_CONNECT_ACCOUNT_DIALOG_MESSAGE=You are not currently connected so messages cannot be sent.\n\nDo you want to connect and login to {0}? +XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_DIALOG_MESSAGE=Error opening view: {0}. See Error Log for Details +XMPPCompoundContributionItem_FILE_SEND_REFUSED_MESSAGE=Send of {0} refused by {1} +XMPPHyperlink_ERROR_OPEN_MESSAGE_VIEW_LOG_STATUS_MESSAGE=Error opening messages view +XMPPHyperlink_SELECT_ACTION_DIALOG_BUTTON_SEND_MESSAGE=Send Message +XMPPHyperlink_SELECT_ACCOUNT_TITLE=Select Account +XMPPHyperlink_SELECT_ACCOUNT_MESSAGE=Select Account to Use +XMPPHyperlink_SELECT_ACTION_DIALOG_TITLE=Select Action +XMPPHyperlink_SELECT_ACTION_DIALOG_MESSAGE=The target host {0} is not the same as {1}.\n\nDo you want to:\n\n1) Send message to {2} from {3}?\n\n2) Connect and login to account {2}? +XMPPHyperlink_MESSAGING_ERROR_TITLE=Messaging Error +XMPPHyperlink_MESSAGING_ERROR_MESSAGE=You don't want to talk to yourself, do you? +XMPPHyperlink_CONNECT_ACCOUNT_DIALOG_TITLE=Connect To Account + +XMPPConnectWizard_WIZARD_TITLE=New XMPP Connection +XMPPSConnectWizard_WIZARD_TITLE=New XMPPS Connection diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPConnectWizard.java b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPConnectWizard.java index 59782ddfa..250df13f9 100644 --- a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPConnectWizard.java +++ b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPConnectWizard.java @@ -1,324 +1,324 @@ -/****************************************************************************
- * Copyright (c) 2007, 2009 Remy Suen, Composent Inc., 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:
- * Remy Suen <remy.suen@gmail.com> - initial API and implementation
- *****************************************************************************/
-package org.eclipse.ecf.internal.provider.xmpp.ui.wizards;
-
-import java.io.*;
-import org.eclipse.ecf.core.*;
-import org.eclipse.ecf.core.events.IContainerConnectedEvent;
-import org.eclipse.ecf.core.events.IContainerEvent;
-import org.eclipse.ecf.core.identity.*;
-import org.eclipse.ecf.core.security.ConnectContextFactory;
-import org.eclipse.ecf.core.security.IConnectContext;
-import org.eclipse.ecf.filetransfer.*;
-import org.eclipse.ecf.filetransfer.events.*;
-import org.eclipse.ecf.internal.provider.xmpp.ui.Activator;
-import org.eclipse.ecf.internal.provider.xmpp.ui.Messages;
-import org.eclipse.ecf.presence.*;
-import org.eclipse.ecf.presence.im.*;
-import org.eclipse.ecf.presence.ui.MessagesView;
-import org.eclipse.ecf.presence.ui.MultiRosterView;
-import org.eclipse.ecf.ui.IConnectWizard;
-import org.eclipse.ecf.ui.actions.AsynchContainerConnectAction;
-import org.eclipse.ecf.ui.dialogs.IDCreateErrorDialog;
-import org.eclipse.ecf.ui.util.PasswordCacheHelper;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
-
-public class XMPPConnectWizard extends Wizard implements IConnectWizard,
- INewWizard {
-
- XMPPConnectWizardPage page;
-
- private Shell shell;
-
- // private IContainer container;
- protected IContainer container;
-
- private ID targetID;
-
- private IConnectContext connectContext;
-
- protected String usernameAtHost;
-
- public XMPPConnectWizard() {
- super();
- }
-
- public XMPPConnectWizard(String usernameAtHost) {
- this();
- this.usernameAtHost = usernameAtHost;
- }
-
- protected IIncomingFileTransferRequestListener requestListener = new IIncomingFileTransferRequestListener() {
- public void handleFileTransferRequest(
- final IFileTransferRequestEvent event) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- final String username = event.getRequesterID().getName();
- final IFileTransferInfo transferInfo = event
- .getFileTransferInfo();
- final String fileName = transferInfo.getFile().getName();
- final Object[] bindings = new Object[] { username,
- fileName,
- ((transferInfo.getFileSize() == -1) ? "unknown" //$NON-NLS-1$
- : (transferInfo.getFileSize() + " bytes")), //$NON-NLS-1$
- (transferInfo.getDescription() == null) ? "none" //$NON-NLS-1$
- : transferInfo.getDescription() };
- if (MessageDialog.openQuestion(shell, NLS.bind(
- Messages.XMPPConnectWizard_FILE_RECEIVE_TITLE,
- username), NLS.bind(
- Messages.XMPPConnectWizard_FILE_RECEIVE_MESSAGE,
- bindings))) {
- final FileDialog fd = new FileDialog(shell, SWT.OPEN);
- // XXX this should be some default path gotten from
- // preference. For now we'll have it be the user.home
- // system property
- fd.setFilterPath(System.getProperty("user.home")); //$NON-NLS-1$
- fd.setFileName(fileName);
- final int suffixLoc = fileName.lastIndexOf('.');
- if (suffixLoc != -1) {
- final String ext = fileName.substring(fileName
- .lastIndexOf('.'));
- fd.setFilterExtensions(new String[] { ext });
- }
- fd.setText(NLS.bind(
- Messages.XMPPConnectWizard_FILE_SAVE_TITLE,
- username));
- final String res = fd.open();
- if (res == null)
- event.reject();
- else {
- try {
- final FileOutputStream fos = new FileOutputStream(
- new File(res));
- event.accept(fos, new IFileTransferListener() {
- public void handleTransferEvent(
- IFileTransferEvent event) {
- // XXX Should have some some UI
- // for transfer events
- if (event instanceof IIncomingFileTransferReceiveDoneEvent) {
- try {
- fos.close();
- } catch (final IOException e) {
- }
- }
- }
- });
- } catch (final Exception e) {
- MessageDialog
- .openError(
- shell,
- Messages.XMPPConnectWizard_RECEIVE_ERROR_TITLE,
- NLS.bind(
- Messages.XMPPConnectWizard_RECEIVE_ERROR_MESSAGE,
- new Object[] {
- fileName,
- username,
- e.getLocalizedMessage() }));
- }
- }
- } else
- event.reject();
- }
- });
- }
-
- };
-
- public void addPages() {
- page = new XMPPConnectWizardPage(usernameAtHost);
- addPage(page);
- }
-
- public void init(IWorkbench workbench, IContainer container) {
- shell = workbench.getActiveWorkbenchWindow().getShell();
- this.container = container;
- this.workbench = workbench;
-
- setWindowTitle(Messages.XMPPConnectWizard_WIZARD_TITLE);
- }
-
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- shell = workbench.getActiveWorkbenchWindow().getShell();
- this.workbench = workbench;
- this.container = null;
- try {
- this.container = ContainerFactory.getDefault().createContainer(
- "ecf.xmpp.smack");
- } catch (final ContainerCreateException e) {
- // None
- }
-
- setWindowTitle(Messages.XMPPConnectWizard_WIZARD_TITLE);
- }
-
- private IWorkbench workbench;
- private IChatMessageSender icms;
- private ITypingMessageSender itms;
-
- private void openView() {
- try {
- final MultiRosterView view = (MultiRosterView) workbench
- .getActiveWorkbenchWindow().getActivePage()
- .showView(MultiRosterView.VIEW_ID);
- view.addContainer(container);
- } catch (final PartInitException e) {
- e.printStackTrace();
- }
- }
-
- private void displayMessage(IChatMessageEvent e) {
- final IChatMessage message = e.getChatMessage();
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- MessagesView view = (MessagesView) workbench
- .getActiveWorkbenchWindow().getActivePage()
- .findView(MessagesView.VIEW_ID);
- if (view != null) {
- final IWorkbenchSiteProgressService service = (IWorkbenchSiteProgressService) view
- .getSite().getAdapter(
- IWorkbenchSiteProgressService.class);
- view.openTab(icms, itms, targetID, message.getFromID());
- view.showMessage(message);
- service.warnOfContentChange();
- } else {
- try {
-
- final IWorkbenchPage page = workbench
- .getActiveWorkbenchWindow().getActivePage();
- view = (MessagesView) page.showView(
- MessagesView.VIEW_ID, null,
- IWorkbenchPage.VIEW_CREATE);
- if (!page.isPartVisible(view)) {
- final IWorkbenchSiteProgressService service = (IWorkbenchSiteProgressService) view
- .getSite()
- .getAdapter(
- IWorkbenchSiteProgressService.class);
- service.warnOfContentChange();
- }
- view.openTab(icms, itms, targetID, message.getFromID());
- view.showMessage(message);
- } catch (final PartInitException e) {
- e.printStackTrace();
- }
- }
- }
- });
- }
-
- private void displayTypingNotification(final ITypingMessageEvent e) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- final MessagesView view = (MessagesView) workbench
- .getActiveWorkbenchWindow().getActivePage()
- .findView(MessagesView.VIEW_ID);
- if (view != null)
- view.displayTypingNotification(e);
- }
- });
- }
-
- public boolean performCancel() {
- if (container != null) {
- container.dispose();
-
- IContainerManager containerManager = Activator.getDefault()
- .getContainerManager();
- if (containerManager != null) {
- containerManager.removeContainer(container);
- }
- }
-
- return super.performCancel();
- }
-
- public boolean performFinish() {
- final String connectID = page.getConnectID();
- final String password = page.getPassword();
-
- // Save combo text even if we don't successfully login
- page.saveComboText();
-
- connectContext = createConnectContext();
-
- try {
- targetID = IDFactory.getDefault().createID(
- container.getConnectNamespace(), connectID);
- } catch (final IDCreateException e) {
- new IDCreateErrorDialog(null, connectID, e).open();
- return false;
- }
-
- // Save combo items if targetID created successfully
- page.saveComboItems();
-
- final IPresenceContainerAdapter adapter = (IPresenceContainerAdapter) container
- .getAdapter(IPresenceContainerAdapter.class);
-
- container.addListener(new IContainerListener() {
- public void handleEvent(IContainerEvent event) {
- if (event instanceof IContainerConnectedEvent) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- openView();
- }
- });
- }
- }
- });
-
- final IChatManager icm = adapter.getChatManager();
- icms = icm.getChatMessageSender();
- itms = icm.getTypingMessageSender();
-
- icm.addMessageListener(new IIMMessageListener() {
- public void handleMessageEvent(IIMMessageEvent e) {
- if (e instanceof IChatMessageEvent) {
- displayMessage((IChatMessageEvent) e);
- } else if (e instanceof ITypingMessageEvent) {
- displayTypingNotification((ITypingMessageEvent) e);
- }
- }
- });
-
- final ISendFileTransferContainerAdapter ioftca = (ISendFileTransferContainerAdapter) container
- .getAdapter(ISendFileTransferContainerAdapter.class);
- ioftca.addListener(requestListener);
- // Connect
- new AsynchContainerConnectAction(container, targetID, connectContext,
- null, new Runnable() {
- public void run() {
- cachePassword(connectID, password);
- }
- }).run();
-
- return true;
- }
-
- protected void cachePassword(final String connectID, String password) {
- if (password != null && !password.equals("")) {
- final PasswordCacheHelper pwStorage = new PasswordCacheHelper(
- connectID);
- pwStorage.savePassword(password);
- }
- }
-
- protected IConnectContext createConnectContext() {
- return ConnectContextFactory.createPasswordConnectContext(page
- .getPassword());
- }
-}
+/**************************************************************************** + * Copyright (c) 2007, 2009 Remy Suen, Composent Inc., 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: + * Remy Suen <remy.suen@gmail.com> - initial API and implementation + *****************************************************************************/ +package org.eclipse.ecf.internal.provider.xmpp.ui.wizards; + +import java.io.*; +import org.eclipse.ecf.core.*; +import org.eclipse.ecf.core.events.IContainerConnectedEvent; +import org.eclipse.ecf.core.events.IContainerEvent; +import org.eclipse.ecf.core.identity.*; +import org.eclipse.ecf.core.security.ConnectContextFactory; +import org.eclipse.ecf.core.security.IConnectContext; +import org.eclipse.ecf.filetransfer.*; +import org.eclipse.ecf.filetransfer.events.*; +import org.eclipse.ecf.internal.provider.xmpp.ui.Activator; +import org.eclipse.ecf.internal.provider.xmpp.ui.Messages; +import org.eclipse.ecf.presence.*; +import org.eclipse.ecf.presence.im.*; +import org.eclipse.ecf.presence.ui.MessagesView; +import org.eclipse.ecf.presence.ui.MultiRosterView; +import org.eclipse.ecf.ui.IConnectWizard; +import org.eclipse.ecf.ui.actions.AsynchContainerConnectAction; +import org.eclipse.ecf.ui.dialogs.IDCreateErrorDialog; +import org.eclipse.ecf.ui.util.PasswordCacheHelper; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.osgi.util.NLS; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.*; +import org.eclipse.ui.*; +import org.eclipse.ui.progress.IWorkbenchSiteProgressService; + +public class XMPPConnectWizard extends Wizard implements IConnectWizard, + INewWizard { + + XMPPConnectWizardPage page; + + private Shell shell; + + // private IContainer container; + protected IContainer container; + + private ID targetID; + + private IConnectContext connectContext; + + protected String usernameAtHost; + + public XMPPConnectWizard() { + super(); + } + + public XMPPConnectWizard(String usernameAtHost) { + this(); + this.usernameAtHost = usernameAtHost; + } + + protected IIncomingFileTransferRequestListener requestListener = new IIncomingFileTransferRequestListener() { + public void handleFileTransferRequest( + final IFileTransferRequestEvent event) { + Display.getDefault().asyncExec(new Runnable() { + public void run() { + final String username = event.getRequesterID().getName(); + final IFileTransferInfo transferInfo = event + .getFileTransferInfo(); + final String fileName = transferInfo.getFile().getName(); + final Object[] bindings = new Object[] { username, + fileName, + ((transferInfo.getFileSize() == -1) ? "unknown" //$NON-NLS-1$ + : (transferInfo.getFileSize() + " bytes")), //$NON-NLS-1$ + (transferInfo.getDescription() == null) ? "none" //$NON-NLS-1$ + : transferInfo.getDescription() }; + if (MessageDialog.openQuestion(shell, NLS.bind( + Messages.XMPPConnectWizard_FILE_RECEIVE_TITLE, + username), NLS.bind( + Messages.XMPPConnectWizard_FILE_RECEIVE_MESSAGE, + bindings))) { + final FileDialog fd = new FileDialog(shell, SWT.OPEN); + // XXX this should be some default path gotten from + // preference. For now we'll have it be the user.home + // system property + fd.setFilterPath(System.getProperty("user.home")); //$NON-NLS-1$ + fd.setFileName(fileName); + final int suffixLoc = fileName.lastIndexOf('.'); + if (suffixLoc != -1) { + final String ext = fileName.substring(fileName + .lastIndexOf('.')); + fd.setFilterExtensions(new String[] { ext }); + } + fd.setText(NLS.bind( + Messages.XMPPConnectWizard_FILE_SAVE_TITLE, + username)); + final String res = fd.open(); + if (res == null) + event.reject(); + else { + try { + final FileOutputStream fos = new FileOutputStream( + new File(res)); + event.accept(fos, new IFileTransferListener() { + public void handleTransferEvent( + IFileTransferEvent event) { + // XXX Should have some some UI + // for transfer events + if (event instanceof IIncomingFileTransferReceiveDoneEvent) { + try { + fos.close(); + } catch (final IOException e) { + } + } + } + }); + } catch (final Exception e) { + MessageDialog + .openError( + shell, + Messages.XMPPConnectWizard_RECEIVE_ERROR_TITLE, + NLS.bind( + Messages.XMPPConnectWizard_RECEIVE_ERROR_MESSAGE, + new Object[] { + fileName, + username, + e.getLocalizedMessage() })); + } + } + } else + event.reject(); + } + }); + } + + }; + + public void addPages() { + page = new XMPPConnectWizardPage(usernameAtHost); + addPage(page); + } + + public void init(IWorkbench workbench, IContainer container) { + shell = workbench.getActiveWorkbenchWindow().getShell(); + this.container = container; + this.workbench = workbench; + + setWindowTitle(Messages.XMPPConnectWizard_WIZARD_TITLE); + } + + public void init(IWorkbench workbench, IStructuredSelection selection) { + shell = workbench.getActiveWorkbenchWindow().getShell(); + this.workbench = workbench; + this.container = null; + try { + this.container = ContainerFactory.getDefault().createContainer( + "ecf.xmpp.smack"); + } catch (final ContainerCreateException e) { + // None + } + + setWindowTitle(Messages.XMPPConnectWizard_WIZARD_TITLE); + } + + private IWorkbench workbench; + private IChatMessageSender icms; + private ITypingMessageSender itms; + + private void openView() { + try { + final MultiRosterView view = (MultiRosterView) workbench + .getActiveWorkbenchWindow().getActivePage() + .showView(MultiRosterView.VIEW_ID); + view.addContainer(container); + } catch (final PartInitException e) { + e.printStackTrace(); + } + } + + private void displayMessage(IChatMessageEvent e) { + final IChatMessage message = e.getChatMessage(); + Display.getDefault().asyncExec(new Runnable() { + public void run() { + MessagesView view = (MessagesView) workbench + .getActiveWorkbenchWindow().getActivePage() + .findView(MessagesView.VIEW_ID); + if (view != null) { + final IWorkbenchSiteProgressService service = (IWorkbenchSiteProgressService) view + .getSite().getAdapter( + IWorkbenchSiteProgressService.class); + view.openTab(icms, itms, targetID, message.getFromID()); + view.showMessage(message); + service.warnOfContentChange(); + } else { + try { + + final IWorkbenchPage page = workbench + .getActiveWorkbenchWindow().getActivePage(); + view = (MessagesView) page.showView( + MessagesView.VIEW_ID, null, + IWorkbenchPage.VIEW_CREATE); + if (!page.isPartVisible(view)) { + final IWorkbenchSiteProgressService service = (IWorkbenchSiteProgressService) view + .getSite() + .getAdapter( + IWorkbenchSiteProgressService.class); + service.warnOfContentChange(); + } + view.openTab(icms, itms, targetID, message.getFromID()); + view.showMessage(message); + } catch (final PartInitException e) { + e.printStackTrace(); + } + } + } + }); + } + + private void displayTypingNotification(final ITypingMessageEvent e) { + Display.getDefault().asyncExec(new Runnable() { + public void run() { + final MessagesView view = (MessagesView) workbench + .getActiveWorkbenchWindow().getActivePage() + .findView(MessagesView.VIEW_ID); + if (view != null) + view.displayTypingNotification(e); + } + }); + } + + public boolean performCancel() { + if (container != null) { + container.dispose(); + + IContainerManager containerManager = Activator.getDefault() + .getContainerManager(); + if (containerManager != null) { + containerManager.removeContainer(container); + } + } + + return super.performCancel(); + } + + public boolean performFinish() { + final String connectID = page.getConnectID(); + final String password = page.getPassword(); + + // Save combo text even if we don't successfully login + page.saveComboText(); + + connectContext = createConnectContext(); + + try { + targetID = IDFactory.getDefault().createID( + container.getConnectNamespace(), connectID); + } catch (final IDCreateException e) { + new IDCreateErrorDialog(null, connectID, e).open(); + return false; + } + + // Save combo items if targetID created successfully + page.saveComboItems(); + + final IPresenceContainerAdapter adapter = (IPresenceContainerAdapter) container + .getAdapter(IPresenceContainerAdapter.class); + + container.addListener(new IContainerListener() { + public void handleEvent(IContainerEvent event) { + if (event instanceof IContainerConnectedEvent) { + Display.getDefault().asyncExec(new Runnable() { + public void run() { + openView(); + } + }); + } + } + }); + + final IChatManager icm = adapter.getChatManager(); + icms = icm.getChatMessageSender(); + itms = icm.getTypingMessageSender(); + + icm.addMessageListener(new IIMMessageListener() { + public void handleMessageEvent(IIMMessageEvent e) { + if (e instanceof IChatMessageEvent) { + displayMessage((IChatMessageEvent) e); + } else if (e instanceof ITypingMessageEvent) { + displayTypingNotification((ITypingMessageEvent) e); + } + } + }); + + final ISendFileTransferContainerAdapter ioftca = (ISendFileTransferContainerAdapter) container + .getAdapter(ISendFileTransferContainerAdapter.class); + ioftca.addListener(requestListener); + // Connect + new AsynchContainerConnectAction(container, targetID, connectContext, + null, new Runnable() { + public void run() { + cachePassword(connectID, password); + } + }).run(); + + return true; + } + + protected void cachePassword(final String connectID, String password) { + if (password != null && !password.equals("")) { + final PasswordCacheHelper pwStorage = new PasswordCacheHelper( + connectID); + pwStorage.savePassword(password); + } + } + + protected IConnectContext createConnectContext() { + return ConnectContextFactory.createPasswordConnectContext(page + .getPassword()); + } +} diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizard.java b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizard.java index c58b941b7..1c8250c82 100644 --- a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizard.java +++ b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizard.java @@ -1,117 +1,117 @@ -/****************************************************************************
- * Copyright (c) 2007 Remy Suen, Composent Inc., 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:
- * Remy Suen <remy.suen@gmail.com> - initial API and implementation
- *****************************************************************************/
-package org.eclipse.ecf.internal.provider.xmpp.ui.wizards;
-
-import java.io.IOException;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.UnsupportedCallbackException;
-import org.eclipse.ecf.core.*;
-import org.eclipse.ecf.core.security.*;
-import org.eclipse.ecf.internal.provider.xmpp.ui.Messages;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-
-public final class XMPPSConnectWizard extends XMPPConnectWizard {
-
- public XMPPSConnectWizard() {
- super();
- }
-
- public XMPPSConnectWizard(String uri) {
- super(uri);
- }
-
- public void addPages() {
- page = new XMPPSConnectWizardPage(usernameAtHost);
- addPage(page);
- }
-
- public void init(IWorkbench workbench, IContainer container) {
- super.init(workbench, container);
-
- setWindowTitle(Messages.XMPPSConnectWizard_WIZARD_TITLE);
- }
-
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- super.init(workbench, selection);
- try {
- this.container = ContainerFactory.getDefault().createContainer(
- "ecf.xmpps.smack");
- } catch (ContainerCreateException e) {
- // None
- }
-
- setWindowTitle(Messages.XMPPSConnectWizard_WIZARD_TITLE);
- }
-
- protected IConnectContext createConnectContext() {
- // Extract passwords from page prior to widget disposal:
- final String password = page.getPassword();
- final String keystorePassword = ((XMPPSConnectWizardPage) page)
- .getKeystorePassword();
-
- // Use a context capable of both ECF and javax.security Callback:
- return new IConnectContext() {
- public CallbackHandler getCallbackHandler() {
- return new DualCallbackHandler(password, keystorePassword);
- }
- };
- }
-
- /**
- * <p>
- * Wrapper class for handling both ECF and javax.security Callback needs.
- * Will delegate ECF Callback to a handler created by
- * {@link ConnectContextFactory}.
- * </p>
- * <p>
- * Currently only handles
- * {@link javax.security.auth.callback.PasswordCallback} for javax.security
- * Callback for XMPPConnection class from org.jivesoftware.smack.
- * </p>
- *
- * @author T. Yueh
- */
- class DualCallbackHandler implements CallbackHandler,
- javax.security.auth.callback.CallbackHandler {
- /**
- * Handler for all ECF Callback.
- */
- CallbackHandler delegate;
-
- /**
- * User input for keystore password. Since keystore impl (PKI vs JKS vs
- * etc) is hidden via interface, all that is necessary is a password.
- */
- String keystorePassword;
-
- public DualCallbackHandler(String password, String keystorePassword) {
- delegate = ConnectContextFactory.createPasswordConnectContext(
- password).getCallbackHandler();
- this.keystorePassword = keystorePassword;
- }
-
- public void handle(Callback[] acallback) throws IOException,
- UnsupportedCallbackException {
- for (int i = 0; i < acallback.length; i++)
- if (acallback[i] instanceof PasswordCallback)
- ((javax.security.auth.callback.PasswordCallback) acallback[i])
- .setPassword(keystorePassword.toCharArray());
-
- }
-
- public void handle(org.eclipse.ecf.core.security.Callback[] callbacks)
- throws IOException,
- org.eclipse.ecf.core.security.UnsupportedCallbackException {
- delegate.handle(callbacks);
- }
- }
-}
+/**************************************************************************** + * Copyright (c) 2007 Remy Suen, Composent Inc., 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: + * Remy Suen <remy.suen@gmail.com> - initial API and implementation + *****************************************************************************/ +package org.eclipse.ecf.internal.provider.xmpp.ui.wizards; + +import java.io.IOException; +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.UnsupportedCallbackException; +import org.eclipse.ecf.core.*; +import org.eclipse.ecf.core.security.*; +import org.eclipse.ecf.internal.provider.xmpp.ui.Messages; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.IWorkbench; + +public final class XMPPSConnectWizard extends XMPPConnectWizard { + + public XMPPSConnectWizard() { + super(); + } + + public XMPPSConnectWizard(String uri) { + super(uri); + } + + public void addPages() { + page = new XMPPSConnectWizardPage(usernameAtHost); + addPage(page); + } + + public void init(IWorkbench workbench, IContainer container) { + super.init(workbench, container); + + setWindowTitle(Messages.XMPPSConnectWizard_WIZARD_TITLE); + } + + public void init(IWorkbench workbench, IStructuredSelection selection) { + super.init(workbench, selection); + try { + this.container = ContainerFactory.getDefault().createContainer( + "ecf.xmpps.smack"); + } catch (ContainerCreateException e) { + // None + } + + setWindowTitle(Messages.XMPPSConnectWizard_WIZARD_TITLE); + } + + protected IConnectContext createConnectContext() { + // Extract passwords from page prior to widget disposal: + final String password = page.getPassword(); + final String keystorePassword = ((XMPPSConnectWizardPage) page) + .getKeystorePassword(); + + // Use a context capable of both ECF and javax.security Callback: + return new IConnectContext() { + public CallbackHandler getCallbackHandler() { + return new DualCallbackHandler(password, keystorePassword); + } + }; + } + + /** + * <p> + * Wrapper class for handling both ECF and javax.security Callback needs. + * Will delegate ECF Callback to a handler created by + * {@link ConnectContextFactory}. + * </p> + * <p> + * Currently only handles + * {@link javax.security.auth.callback.PasswordCallback} for javax.security + * Callback for XMPPConnection class from org.jivesoftware.smack. + * </p> + * + * @author T. Yueh + */ + class DualCallbackHandler implements CallbackHandler, + javax.security.auth.callback.CallbackHandler { + /** + * Handler for all ECF Callback. + */ + CallbackHandler delegate; + + /** + * User input for keystore password. Since keystore impl (PKI vs JKS vs + * etc) is hidden via interface, all that is necessary is a password. + */ + String keystorePassword; + + public DualCallbackHandler(String password, String keystorePassword) { + delegate = ConnectContextFactory.createPasswordConnectContext( + password).getCallbackHandler(); + this.keystorePassword = keystorePassword; + } + + public void handle(Callback[] acallback) throws IOException, + UnsupportedCallbackException { + for (int i = 0; i < acallback.length; i++) + if (acallback[i] instanceof PasswordCallback) + ((javax.security.auth.callback.PasswordCallback) acallback[i]) + .setPassword(keystorePassword.toCharArray()); + + } + + public void handle(org.eclipse.ecf.core.security.Callback[] callbacks) + throws IOException, + org.eclipse.ecf.core.security.UnsupportedCallbackException { + delegate.handle(callbacks); + } + } +} diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizardPage.java b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizardPage.java index fbbccc09e..5d731c827 100644 --- a/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizardPage.java +++ b/providers/bundles/org.eclipse.ecf.provider.xmpp.ui/src/org/eclipse/ecf/internal/provider/xmpp/ui/wizards/XMPPSConnectWizardPage.java @@ -1,144 +1,144 @@ -/****************************************************************************
- * Copyright (c) 2007 Remy Suen, Composent Inc., 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:
- * Remy Suen <remy.suen@gmail.com> - initial API and implementation
- *****************************************************************************/
-package org.eclipse.ecf.internal.provider.xmpp.ui.wizards;
-
-import java.util.regex.Matcher;
-import org.eclipse.ecf.internal.provider.xmpp.ui.Messages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-
-final class XMPPSConnectWizardPage extends XMPPConnectWizardPage {
-
- private Text keystorePasswordText;
-
- XMPPSConnectWizardPage() {
- super();
- setTitle(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_TITLE);
- setDescription(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_DESCRIPTION);
- setPageComplete(false);
- }
-
- XMPPSConnectWizardPage(String usernameAtHost) {
- this();
- this.usernameAtHost = usernameAtHost;
- }
-
- private void verify() {
- final String text = connectText.getText();
- if (text.equals("")) { //$NON-NLS-1$
- updateStatus(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_STATUS);
- } else {
- final Matcher matcher = emailPattern.matcher(text);
- if (!matcher.matches()) {
- updateStatus(Messages.XMPPConnectWizardPage_WIZARD_STATUS_INCOMPLETE);
- } else {
- restorePassword(text);
- updateStatus(null);
- }
- }
- }
-
- public void createControl(Composite parent) {
-
- parent = new Composite(parent, SWT.NONE);
-
- parent.setLayout(new GridLayout());
- final GridData fillData = new GridData(SWT.FILL, SWT.CENTER, true,
- false);
- final GridData endData = new GridData(SWT.FILL, SWT.CENTER, true,
- false, 2, 1);
-
- Label label = new Label(parent, SWT.LEFT);
- label.setText(Messages.XMPPConnectWizardPage_LABEL_USERID);
-
- connectText = new Combo(parent, SWT.SINGLE | SWT.BORDER | SWT.DROP_DOWN);
- connectText.setLayoutData(fillData);
- connectText.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- verify();
- }
- });
- connectText.addSelectionListener(new SelectionListener() {
- public void widgetDefaultSelected(SelectionEvent e) {
- verify();
- }
-
- public void widgetSelected(SelectionEvent e) {
- verify();
- }
- });
-
- label = new Label(parent, SWT.RIGHT);
- label.setText(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_TEMPLATE);
- label.setLayoutData(endData);
-
- label = new Label(parent, SWT.LEFT);
- label.setText(Messages.XMPPConnectWizardPage_WIZARD_ALT_SERVER);
-
- serverText = new Text(parent, SWT.SINGLE | SWT.BORDER);
- serverText.setLayoutData(fillData);
- serverText.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- verify();
- }
- });
- serverText.addSelectionListener(new SelectionListener() {
- public void widgetDefaultSelected(SelectionEvent e) {
- verify();
- }
-
- public void widgetSelected(SelectionEvent e) {
- verify();
- }
- });
-
- label = new Label(parent, SWT.RIGHT);
- label.setText(Messages.XMPPConnectWizardPage_WIZARD_ALT_SERVER_TEXT);
- label.setLayoutData(endData);
-
- label = new Label(parent, SWT.LEFT);
- label.setText(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_PASSWORD);
- passwordText = new Text(parent, SWT.SINGLE | SWT.PASSWORD | SWT.BORDER);
- passwordText.setLayoutData(fillData);
-
- restoreCombo();
-
- label = new Label(parent, SWT.LEFT);
- label.setText(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_KEYSTORE_PASSWORD);
- keystorePasswordText = new Text(parent, SWT.SINGLE | SWT.PASSWORD
- | SWT.BORDER);
- keystorePasswordText.setLayoutData(fillData);
-
- if (usernameAtHost != null) {
- connectText.setText(usernameAtHost);
- restorePassword(usernameAtHost);
- passwordText.setFocus();
- }
-
- verify();
-
- if (connectText.getText().equals("")) {
- updateStatus(null);
- setPageComplete(false);
- } else if (isPageComplete())
- passwordText.setFocus();
-
- org.eclipse.jface.dialogs.Dialog.applyDialogFont(parent);
- setControl(parent);
- }
-
- String getKeystorePassword() {
- return keystorePasswordText.getText();
- }
-}
+/**************************************************************************** + * Copyright (c) 2007 Remy Suen, Composent Inc., 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: + * Remy Suen <remy.suen@gmail.com> - initial API and implementation + *****************************************************************************/ +package org.eclipse.ecf.internal.provider.xmpp.ui.wizards; + +import java.util.regex.Matcher; +import org.eclipse.ecf.internal.provider.xmpp.ui.Messages; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.*; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.*; + +final class XMPPSConnectWizardPage extends XMPPConnectWizardPage { + + private Text keystorePasswordText; + + XMPPSConnectWizardPage() { + super(); + setTitle(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_TITLE); + setDescription(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_DESCRIPTION); + setPageComplete(false); + } + + XMPPSConnectWizardPage(String usernameAtHost) { + this(); + this.usernameAtHost = usernameAtHost; + } + + private void verify() { + final String text = connectText.getText(); + if (text.equals("")) { //$NON-NLS-1$ + updateStatus(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_STATUS); + } else { + final Matcher matcher = emailPattern.matcher(text); + if (!matcher.matches()) { + updateStatus(Messages.XMPPConnectWizardPage_WIZARD_STATUS_INCOMPLETE); + } else { + restorePassword(text); + updateStatus(null); + } + } + } + + public void createControl(Composite parent) { + + parent = new Composite(parent, SWT.NONE); + + parent.setLayout(new GridLayout()); + final GridData fillData = new GridData(SWT.FILL, SWT.CENTER, true, + false); + final GridData endData = new GridData(SWT.FILL, SWT.CENTER, true, + false, 2, 1); + + Label label = new Label(parent, SWT.LEFT); + label.setText(Messages.XMPPConnectWizardPage_LABEL_USERID); + + connectText = new Combo(parent, SWT.SINGLE | SWT.BORDER | SWT.DROP_DOWN); + connectText.setLayoutData(fillData); + connectText.addModifyListener(new ModifyListener() { + public void modifyText(ModifyEvent e) { + verify(); + } + }); + connectText.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + verify(); + } + + public void widgetSelected(SelectionEvent e) { + verify(); + } + }); + + label = new Label(parent, SWT.RIGHT); + label.setText(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_TEMPLATE); + label.setLayoutData(endData); + + label = new Label(parent, SWT.LEFT); + label.setText(Messages.XMPPConnectWizardPage_WIZARD_ALT_SERVER); + + serverText = new Text(parent, SWT.SINGLE | SWT.BORDER); + serverText.setLayoutData(fillData); + serverText.addModifyListener(new ModifyListener() { + public void modifyText(ModifyEvent e) { + verify(); + } + }); + serverText.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + verify(); + } + + public void widgetSelected(SelectionEvent e) { + verify(); + } + }); + + label = new Label(parent, SWT.RIGHT); + label.setText(Messages.XMPPConnectWizardPage_WIZARD_ALT_SERVER_TEXT); + label.setLayoutData(endData); + + label = new Label(parent, SWT.LEFT); + label.setText(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_PASSWORD); + passwordText = new Text(parent, SWT.SINGLE | SWT.PASSWORD | SWT.BORDER); + passwordText.setLayoutData(fillData); + + restoreCombo(); + + label = new Label(parent, SWT.LEFT); + label.setText(Messages.XMPPSConnectWizardPage_WIZARD_PAGE_KEYSTORE_PASSWORD); + keystorePasswordText = new Text(parent, SWT.SINGLE | SWT.PASSWORD + | SWT.BORDER); + keystorePasswordText.setLayoutData(fillData); + + if (usernameAtHost != null) { + connectText.setText(usernameAtHost); + restorePassword(usernameAtHost); + passwordText.setFocus(); + } + + verify(); + + if (connectText.getText().equals("")) { + updateStatus(null); + setPageComplete(false); + } else if (isPageComplete()) + passwordText.setFocus(); + + org.eclipse.jface.dialogs.Dialog.applyDialogFont(parent); + setControl(parent); + } + + String getKeystorePassword() { + return keystorePasswordText.getText(); + } +} diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java index 620938df5..d374b4f6c 100644 --- a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java +++ b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java @@ -1,522 +1,522 @@ -/*******************************************************************************
- * Copyright (c) 2004 Composent, Inc. 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: Composent, Inc. - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ecf.internal.provider.xmpp.smack;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.ecf.core.ContainerConnectException;
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.identity.IDFactory;
-import org.eclipse.ecf.core.identity.Namespace;
-import org.eclipse.ecf.core.security.CallbackHandler;
-import org.eclipse.ecf.core.util.ECFException;
-import org.eclipse.ecf.internal.provider.xmpp.XmppPlugin;
-import org.eclipse.ecf.provider.comm.DisconnectEvent;
-import org.eclipse.ecf.provider.comm.IAsynchEventHandler;
-import org.eclipse.ecf.provider.comm.IConnectionListener;
-import org.eclipse.ecf.provider.comm.ISynchAsynchConnection;
-import org.eclipse.ecf.provider.xmpp.identity.XMPPID;
-import org.eclipse.ecf.provider.xmpp.identity.XMPPRoomID;
-import org.jivesoftware.smack.Chat;
-import org.jivesoftware.smack.ConnectionConfiguration;
-import org.jivesoftware.smack.ConnectionListener;
-import org.jivesoftware.smack.MessageListener;
-import org.jivesoftware.smack.PacketListener;
-import org.jivesoftware.smack.Roster;
-import org.jivesoftware.smack.RosterEntry;
-import org.jivesoftware.smack.SASLAuthentication;
-import org.jivesoftware.smack.SmackConfiguration;
-import org.jivesoftware.smack.XMPPConnection;
-import org.jivesoftware.smack.XMPPException;
-import org.jivesoftware.smack.packet.Bind;
-import org.jivesoftware.smack.packet.IQ;
-import org.jivesoftware.smack.packet.Message;
-import org.jivesoftware.smack.packet.Message.Type;
-import org.jivesoftware.smack.packet.Packet;
-import org.jivesoftware.smack.packet.Presence;
-
-public class ECFConnection implements ISynchAsynchConnection {
-
- /**
- *
- */
- private static final String GOOGLE_TALK_HOST = "talk.google.com";
- public static final String CLIENT_TYPE = "ecf.";
- public static final boolean DEBUG = Boolean.getBoolean("smack.debug");
-
- protected static final String STRING_ENCODING = "UTF-8";
- public static final String OBJECT_PROPERTY_NAME = ECFConnection.class
- .getName() + ".object";
- protected static final int XMPP_DEFAULT_PORT = 5222;
- protected static final int XMPPS_DEFAULT_PORT = 5223;
-
- private XMPPConnection connection = null;
- private IAsynchEventHandler handler = null;
- private boolean isStarted = false;
- private int serverPort = -1;
- private String serverResource;
- private final Map properties = null;
- private boolean isConnected = false;
- private Namespace namespace = null;
-
- private boolean google = false;
-
- private boolean disconnecting = false;
-
- private int BIND_TIMEOUT = new Integer(System.getProperty(
- "org.eclipse.ecf.provider.xmpp.ECFConnection.bindTimeout", "15000"))
- .intValue();
-
- private Object bindLock = new Object();
-
- private String jid;
-
- private CallbackHandler callbackHandler;
-
- private final PacketListener packetListener = new PacketListener() {
- public void processPacket(Packet arg0) {
- handlePacket(arg0);
- }
- };
-
- private final ConnectionListener connectionListener = new ConnectionListener() {
- public void connectionClosed() {
- handleConnectionClosed(new IOException("Connection reset by peer"));
- }
-
- public void connectionClosedOnError(Exception e) {
- handleConnectionClosed(e);
- }
-
- public void reconnectingIn(int seconds) {
- }
-
- public void reconnectionFailed(Exception e) {
- }
-
- public void reconnectionSuccessful() {
- }
- };
-
- protected void logException(String msg, Throwable t) {
- XmppPlugin.log(msg, t);
- }
-
- public Map getProperties() {
- return properties;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
- */
- public Object getAdapter(Class adapter) {
- if (adapter == null)
- return null;
- if (adapter.isInstance(this))
- return this;
- final IAdapterManager adapterManager = XmppPlugin.getDefault()
- .getAdapterManager();
- return (adapterManager == null) ? null : adapterManager.loadAdapter(
- this, adapter.getName());
- }
-
- public XMPPConnection getXMPPConnection() {
- return connection;
- }
-
- public ECFConnection(boolean google, Namespace ns, IAsynchEventHandler h) {
- this(google, ns, h, null);
- }
-
- public ECFConnection(boolean google, Namespace ns, IAsynchEventHandler h,
- CallbackHandler ch) {
- this.handler = h;
- this.namespace = ns;
- this.google = google;
- this.callbackHandler = ch;
- if (DEBUG)
- XMPPConnection.DEBUG_ENABLED = true;
- }
-
- protected String getPasswordForObject(Object data) {
- String password = null;
- try {
- password = (String) data;
- } catch (final ClassCastException e) {
- return null;
- }
- return password;
- }
-
- private XMPPID getXMPPID(ID remote) throws ECFException {
- XMPPID jabberID = null;
- try {
- jabberID = (XMPPID) remote;
- } catch (final ClassCastException e) {
- throw new ECFException(e);
- }
- return jabberID;
- }
-
- public synchronized Object connect(ID remote, Object data, int timeout)
- throws ECFException {
- if (connection != null)
- throw new ECFException("already connected");
- if (timeout > 0)
- SmackConfiguration.setPacketReplyTimeout(timeout);
- Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.manual);
-
- final XMPPID jabberURI = getXMPPID(remote);
-
- String username = jabberURI.getNodename();
- String hostname = jabberURI.getHostname();
- String hostnameOverride = null;
-
- // Check for the URI form of "joe@bloggs.org;talk.google.com", which
- // would at this point would have
- // - username = "joe"
- // - hostname = "blogs.org;talk.google.com"
- // - hostnameOverride = null
- //
- // We need to turn this into:
- // - username = "joe"
- // - hostname = "bloggs.org"
- // - hostnameOverride = "talk.google.com"
-
- int semiColonIdx = hostname.lastIndexOf(';');
- if (semiColonIdx != -1) {
- hostnameOverride = hostname.substring(semiColonIdx + 1);
- hostname = hostname.substring(0, semiColonIdx);
- }
-
- if (google && hostnameOverride == null) {
- hostnameOverride = GOOGLE_TALK_HOST;
- }
- final String serviceName = hostname;
-
- serverPort = jabberURI.getPort();
- serverResource = jabberURI.getResourceName();
- if (serverResource == null
- || serverResource.equals(XMPPID.PATH_DELIMITER)) {
- serverResource = getClientIdentifier();
- jabberURI.setResourceName(serverResource);
- }
- try {
- ConnectionConfiguration config;
- if (hostnameOverride != null) {
- config = new ConnectionConfiguration(hostnameOverride,
- XMPP_DEFAULT_PORT, serviceName);
- } else if (serverPort == -1) {
- config = new ConnectionConfiguration(serviceName);
- } else {
- config = new ConnectionConfiguration(serviceName, serverPort);
- }
- config.setSendPresence(true);
- // Handler is only used if server requires certificate for
- // authentication; handler should provide keystore password:
- if (callbackHandler instanceof javax.security.auth.callback.CallbackHandler) {
- config.setCallbackHandler((javax.security.auth.callback.CallbackHandler) callbackHandler);
- }
- connection = new XMPPConnection(config);
- connection.connect();
-
- SASLAuthentication.supportSASLMechanism("PLAIN", 0);
-
- if (google || GOOGLE_TALK_HOST.equals(hostnameOverride)) {
- username = username + "@" + serviceName;
- }
-
- connection.addPacketListener(packetListener, null);
- connection.addConnectionListener(connectionListener);
-
- // Login
- connection.login(username, (String) data, serverResource);
-
- waitForBindResult();
-
- } catch (final XMPPException e) {
- throw new ContainerConnectException("Login attempt failed", e);
- }
- return jid;
- }
-
- private void waitForBindResult() throws XMPPException {
- // We'll wait a maximum of
- long bindTimeout = System.currentTimeMillis() + BIND_TIMEOUT;
- synchronized (bindLock) {
- while (jid == null && System.currentTimeMillis() < bindTimeout) {
- try {
- bindLock.wait(1000);
- } catch (InterruptedException e) {
- }
- }
- if (jid == null)
- throw new XMPPException(
- "timeout waiting for server bind result");
- isConnected = true;
- }
- }
-
- private String getClientIdentifier() {
- return CLIENT_TYPE + handler.getEventHandlerID().getName();
- }
-
- public void sendPacket(Packet packet) throws XMPPException {
- if (connection != null)
- connection.sendPacket(packet);
- }
-
- public synchronized void disconnect() {
- disconnecting = true;
- if (isStarted()) {
- stop();
- }
- if (connection != null) {
- connection.removePacketListener(packetListener);
- connection.removeConnectionListener(connectionListener);
- connection.disconnect();
- connection = null;
- synchronized (bindLock) {
- jid = null;
- isConnected = false;
- }
- }
- }
-
- public synchronized boolean isConnected() {
- return (isConnected);
- }
-
- public synchronized ID getLocalID() {
- if (!isConnected())
- return null;
- try {
- return IDFactory.getDefault().createID(namespace.getName(),
- new Object[] { connection.getConnectionID() });
- } catch (final Exception e) {
- logException("Exception in getLocalID", e);
- return null;
- }
- }
-
- public synchronized void start() {
- if (isStarted())
- return;
- isStarted = true;
- }
-
- public boolean isStarted() {
- return isStarted;
- }
-
- public synchronized void stop() {
- isStarted = false;
- }
-
- protected void handleConnectionClosed(Exception e) {
- if (!disconnecting) {
- disconnecting = true;
- handler.handleDisconnectEvent(new DisconnectEvent(this, e, null));
- }
- }
-
- protected void handlePacket(Packet arg0) {
- handleJidPacket(arg0);
- try {
- final Object val = arg0.getProperty(OBJECT_PROPERTY_NAME);
- if (val != null) {
- handler.handleAsynchEvent(new ECFConnectionObjectPacketEvent(
- this, arg0, val));
- } else {
- handler.handleAsynchEvent(new ECFConnectionPacketEvent(this,
- arg0));
- }
- } catch (final IOException e) {
- logException("Exception in handleAsynchEvent", e);
- try {
- disconnect();
- } catch (final Exception e1) {
- logException("Exception in disconnect()", e1);
- }
- }
- }
-
- private void handleJidPacket(Packet packet) {
- if (jid != null)
- return;
- if (packet instanceof IQ) {
- IQ iqPacket = (IQ) packet;
- if (iqPacket.getType().equals(IQ.Type.RESULT)
- && iqPacket instanceof Bind) {
- Bind bindPacket = (Bind) iqPacket;
- synchronized (bindLock) {
- jid = bindPacket.getJid();
- bindLock.notify();
- }
- }
- }
- }
-
- public synchronized void sendAsynch(ID receiver, byte[] data)
- throws IOException {
- if (data == null)
- throw new IOException("no data");
- final Message aMsg = new Message();
- aMsg.setProperty(OBJECT_PROPERTY_NAME, data);
- sendMessage(receiver, aMsg);
- }
-
- protected void sendMessage(ID receiver, Message aMsg) throws IOException {
- synchronized (this) {
- if (!isConnected())
- throw new IOException("not connected");
- try {
- if (receiver == null)
- throw new IOException(
- "receiver cannot be null for xmpp instant messaging");
- else if (receiver instanceof XMPPID) {
- final XMPPID rcvr = (XMPPID) receiver;
- aMsg.setType(Message.Type.chat);
- final String receiverName = rcvr.getFQName();
- final Chat localChat = connection.getChatManager()
- .createChat(receiverName, new MessageListener() {
- public void processMessage(Chat chat,
- Message message) {
- }
- });
- localChat.sendMessage(aMsg);
- } else if (receiver instanceof XMPPRoomID) {
- final XMPPRoomID roomID = (XMPPRoomID) receiver;
- aMsg.setType(Message.Type.groupchat);
- final String to = roomID.getMucString();
- aMsg.setTo(to);
- connection.sendPacket(aMsg);
- } else
- throw new IOException(
- "receiver must be of type XMPPID or XMPPRoomID");
- } catch (final XMPPException e) {
- final IOException result = new IOException(
- "XMPPException in sendMessage: " + e.getMessage());
- result.setStackTrace(e.getStackTrace());
- throw result;
- }
- }
- }
-
- public synchronized Object sendSynch(ID receiver, byte[] data)
- throws IOException {
- if (data == null)
- throw new IOException("data cannot be null");
- // This is assumed to be disconnect...so we'll just disconnect
- // disconnect();
- return null;
- }
-
- public void addListener(IConnectionListener listener) {
- // XXX Not yet implemented
- }
-
- public void removeListener(IConnectionListener listener) {
- // XXX Not yet implemented
- }
-
- public void sendMessage(ID target, String message) throws IOException {
- if (target == null)
- throw new IOException("target cannot be null");
- if (message == null)
- throw new IOException("message cannot be null");
- final Message aMsg = new Message();
- aMsg.setBody(message);
- sendMessage(target, aMsg);
- }
-
- public static Map getPropertiesFromPacket(Packet packet) {
- final Map result = new HashMap();
- final Iterator i = packet.getPropertyNames().iterator();
- for (; i.hasNext();) {
- final String name = (String) i.next();
- result.put(name, packet.getProperty(name));
- }
- return result;
- }
-
- public static Packet setPropertiesInPacket(Packet input, Map properties) {
- if (properties != null) {
- for (final Iterator i = properties.keySet().iterator(); i.hasNext();) {
- final Object keyo = i.next();
- final Object val = properties.get(keyo);
- final String key = (keyo instanceof String) ? (String) keyo
- : keyo.toString();
- input.setProperty(key, val);
- }
- }
- return input;
- }
-
- public void sendMessage(ID target, ID thread, Type type, String subject,
- String body, Map properties2) throws IOException {
- if (target == null)
- throw new IOException("XMPP target for message cannot be null");
- if (body == null)
- body = "";
- final Message aMsg = new Message();
- aMsg.setBody(body);
- if (thread != null)
- aMsg.setThread(thread.getName());
- if (type != null)
- aMsg.setType(type);
- if (subject != null)
- aMsg.setSubject(subject);
- setPropertiesInPacket(aMsg, properties2);
- sendMessage(target, aMsg);
- }
-
- public void sendPresenceUpdate(ID target, Presence presence)
- throws IOException {
- if (presence == null)
- throw new IOException("presence cannot be null");
- presence.setFrom(connection.getUser());
- if (target != null)
- presence.setTo(target.getName());
- synchronized (this) {
- if (!isConnected())
- throw new IOException("not connected");
- connection.sendPacket(presence);
- }
- }
-
- public void sendRosterAdd(String user, String name, String[] groups)
- throws IOException, XMPPException {
- final Roster r = getRoster();
- r.createEntry(user, name, groups);
- }
-
- public void sendRosterRemove(String user) throws XMPPException, IOException {
- final Roster r = getRoster();
- final RosterEntry re = r.getEntry(user);
- r.removeEntry(re);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ecf.provider.xmpp.IIMMessageSender#getRoster()
- */
- public Roster getRoster() throws IOException {
- if (connection == null || !connection.isConnected())
- return null;
- return connection.getRoster();
- }
-
-}
+/******************************************************************************* + * Copyright (c) 2004 Composent, Inc. 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: Composent, Inc. - initial API and implementation + ******************************************************************************/ +package org.eclipse.ecf.internal.provider.xmpp.smack; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import org.eclipse.core.runtime.IAdapterManager; +import org.eclipse.ecf.core.ContainerConnectException; +import org.eclipse.ecf.core.identity.ID; +import org.eclipse.ecf.core.identity.IDFactory; +import org.eclipse.ecf.core.identity.Namespace; +import org.eclipse.ecf.core.security.CallbackHandler; +import org.eclipse.ecf.core.util.ECFException; +import org.eclipse.ecf.internal.provider.xmpp.XmppPlugin; +import org.eclipse.ecf.provider.comm.DisconnectEvent; +import org.eclipse.ecf.provider.comm.IAsynchEventHandler; +import org.eclipse.ecf.provider.comm.IConnectionListener; +import org.eclipse.ecf.provider.comm.ISynchAsynchConnection; +import org.eclipse.ecf.provider.xmpp.identity.XMPPID; +import org.eclipse.ecf.provider.xmpp.identity.XMPPRoomID; +import org.jivesoftware.smack.Chat; +import org.jivesoftware.smack.ConnectionConfiguration; +import org.jivesoftware.smack.ConnectionListener; +import org.jivesoftware.smack.MessageListener; +import org.jivesoftware.smack.PacketListener; +import org.jivesoftware.smack.Roster; +import org.jivesoftware.smack.RosterEntry; +import org.jivesoftware.smack.SASLAuthentication; +import org.jivesoftware.smack.SmackConfiguration; +import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.XMPPException; +import org.jivesoftware.smack.packet.Bind; +import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.Message; +import org.jivesoftware.smack.packet.Message.Type; +import org.jivesoftware.smack.packet.Packet; +import org.jivesoftware.smack.packet.Presence; + +public class ECFConnection implements ISynchAsynchConnection { + + /** + * + */ + private static final String GOOGLE_TALK_HOST = "talk.google.com"; + public static final String CLIENT_TYPE = "ecf."; + public static final boolean DEBUG = Boolean.getBoolean("smack.debug"); + + protected static final String STRING_ENCODING = "UTF-8"; + public static final String OBJECT_PROPERTY_NAME = ECFConnection.class + .getName() + ".object"; + protected static final int XMPP_DEFAULT_PORT = 5222; + protected static final int XMPPS_DEFAULT_PORT = 5223; + + private XMPPConnection connection = null; + private IAsynchEventHandler handler = null; + private boolean isStarted = false; + private int serverPort = -1; + private String serverResource; + private final Map properties = null; + private boolean isConnected = false; + private Namespace namespace = null; + + private boolean google = false; + + private boolean disconnecting = false; + + private int BIND_TIMEOUT = new Integer(System.getProperty( + "org.eclipse.ecf.provider.xmpp.ECFConnection.bindTimeout", "15000")) + .intValue(); + + private Object bindLock = new Object(); + + private String jid; + + private CallbackHandler callbackHandler; + + private final PacketListener packetListener = new PacketListener() { + public void processPacket(Packet arg0) { + handlePacket(arg0); + } + }; + + private final ConnectionListener connectionListener = new ConnectionListener() { + public void connectionClosed() { + handleConnectionClosed(new IOException("Connection reset by peer")); + } + + public void connectionClosedOnError(Exception e) { + handleConnectionClosed(e); + } + + public void reconnectingIn(int seconds) { + } + + public void reconnectionFailed(Exception e) { + } + + public void reconnectionSuccessful() { + } + }; + + protected void logException(String msg, Throwable t) { + XmppPlugin.log(msg, t); + } + + public Map getProperties() { + return properties; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class) + */ + public Object getAdapter(Class adapter) { + if (adapter == null) + return null; + if (adapter.isInstance(this)) + return this; + final IAdapterManager adapterManager = XmppPlugin.getDefault() + .getAdapterManager(); + return (adapterManager == null) ? null : adapterManager.loadAdapter( + this, adapter.getName()); + } + + public XMPPConnection getXMPPConnection() { + return connection; + } + + public ECFConnection(boolean google, Namespace ns, IAsynchEventHandler h) { + this(google, ns, h, null); + } + + public ECFConnection(boolean google, Namespace ns, IAsynchEventHandler h, + CallbackHandler ch) { + this.handler = h; + this.namespace = ns; + this.google = google; + this.callbackHandler = ch; + if (DEBUG) + XMPPConnection.DEBUG_ENABLED = true; + } + + protected String getPasswordForObject(Object data) { + String password = null; + try { + password = (String) data; + } catch (final ClassCastException e) { + return null; + } + return password; + } + + private XMPPID getXMPPID(ID remote) throws ECFException { + XMPPID jabberID = null; + try { + jabberID = (XMPPID) remote; + } catch (final ClassCastException e) { + throw new ECFException(e); + } + return jabberID; + } + + public synchronized Object connect(ID remote, Object data, int timeout) + throws ECFException { + if (connection != null) + throw new ECFException("already connected"); + if (timeout > 0) + SmackConfiguration.setPacketReplyTimeout(timeout); + Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.manual); + + final XMPPID jabberURI = getXMPPID(remote); + + String username = jabberURI.getNodename(); + String hostname = jabberURI.getHostname(); + String hostnameOverride = null; + + // Check for the URI form of "joe@bloggs.org;talk.google.com", which + // would at this point would have + // - username = "joe" + // - hostname = "blogs.org;talk.google.com" + // - hostnameOverride = null + // + // We need to turn this into: + // - username = "joe" + // - hostname = "bloggs.org" + // - hostnameOverride = "talk.google.com" + + int semiColonIdx = hostname.lastIndexOf(';'); + if (semiColonIdx != -1) { + hostnameOverride = hostname.substring(semiColonIdx + 1); + hostname = hostname.substring(0, semiColonIdx); + } + + if (google && hostnameOverride == null) { + hostnameOverride = GOOGLE_TALK_HOST; + } + final String serviceName = hostname; + + serverPort = jabberURI.getPort(); + serverResource = jabberURI.getResourceName(); + if (serverResource == null + || serverResource.equals(XMPPID.PATH_DELIMITER)) { + serverResource = getClientIdentifier(); + jabberURI.setResourceName(serverResource); + } + try { + ConnectionConfiguration config; + if (hostnameOverride != null) { + config = new ConnectionConfiguration(hostnameOverride, + XMPP_DEFAULT_PORT, serviceName); + } else if (serverPort == -1) { + config = new ConnectionConfiguration(serviceName); + } else { + config = new ConnectionConfiguration(serviceName, serverPort); + } + config.setSendPresence(true); + // Handler is only used if server requires certificate for + // authentication; handler should provide keystore password: + if (callbackHandler instanceof javax.security.auth.callback.CallbackHandler) { + config.setCallbackHandler((javax.security.auth.callback.CallbackHandler) callbackHandler); + } + connection = new XMPPConnection(config); + connection.connect(); + + SASLAuthentication.supportSASLMechanism("PLAIN", 0); + + if (google || GOOGLE_TALK_HOST.equals(hostnameOverride)) { + username = username + "@" + serviceName; + } + + connection.addPacketListener(packetListener, null); + connection.addConnectionListener(connectionListener); + + // Login + connection.login(username, (String) data, serverResource); + + waitForBindResult(); + + } catch (final XMPPException e) { + throw new ContainerConnectException("Login attempt failed", e); + } + return jid; + } + + private void waitForBindResult() throws XMPPException { + // We'll wait a maximum of + long bindTimeout = System.currentTimeMillis() + BIND_TIMEOUT; + synchronized (bindLock) { + while (jid == null && System.currentTimeMillis() < bindTimeout) { + try { + bindLock.wait(1000); + } catch (InterruptedException e) { + } + } + if (jid == null) + throw new XMPPException( + "timeout waiting for server bind result"); + isConnected = true; + } + } + + private String getClientIdentifier() { + return CLIENT_TYPE + handler.getEventHandlerID().getName(); + } + + public void sendPacket(Packet packet) throws XMPPException { + if (connection != null) + connection.sendPacket(packet); + } + + public synchronized void disconnect() { + disconnecting = true; + if (isStarted()) { + stop(); + } + if (connection != null) { + connection.removePacketListener(packetListener); + connection.removeConnectionListener(connectionListener); + connection.disconnect(); + connection = null; + synchronized (bindLock) { + jid = null; + isConnected = false; + } + } + } + + public synchronized boolean isConnected() { + return (isConnected); + } + + public synchronized ID getLocalID() { + if (!isConnected()) + return null; + try { + return IDFactory.getDefault().createID(namespace.getName(), + new Object[] { connection.getConnectionID() }); + } catch (final Exception e) { + logException("Exception in getLocalID", e); + return null; + } + } + + public synchronized void start() { + if (isStarted()) + return; + isStarted = true; + } + + public boolean isStarted() { + return isStarted; + } + + public synchronized void stop() { + isStarted = false; + } + + protected void handleConnectionClosed(Exception e) { + if (!disconnecting) { + disconnecting = true; + handler.handleDisconnectEvent(new DisconnectEvent(this, e, null)); + } + } + + protected void handlePacket(Packet arg0) { + handleJidPacket(arg0); + try { + final Object val = arg0.getProperty(OBJECT_PROPERTY_NAME); + if (val != null) { + handler.handleAsynchEvent(new ECFConnectionObjectPacketEvent( + this, arg0, val)); + } else { + handler.handleAsynchEvent(new ECFConnectionPacketEvent(this, + arg0)); + } + } catch (final IOException e) { + logException("Exception in handleAsynchEvent", e); + try { + disconnect(); + } catch (final Exception e1) { + logException("Exception in disconnect()", e1); + } + } + } + + private void handleJidPacket(Packet packet) { + if (jid != null) + return; + if (packet instanceof IQ) { + IQ iqPacket = (IQ) packet; + if (iqPacket.getType().equals(IQ.Type.RESULT) + && iqPacket instanceof Bind) { + Bind bindPacket = (Bind) iqPacket; + synchronized (bindLock) { + jid = bindPacket.getJid(); + bindLock.notify(); + } + } + } + } + + public synchronized void sendAsynch(ID receiver, byte[] data) + throws IOException { + if (data == null) + throw new IOException("no data"); + final Message aMsg = new Message(); + aMsg.setProperty(OBJECT_PROPERTY_NAME, data); + sendMessage(receiver, aMsg); + } + + protected void sendMessage(ID receiver, Message aMsg) throws IOException { + synchronized (this) { + if (!isConnected()) + throw new IOException("not connected"); + try { + if (receiver == null) + throw new IOException( + "receiver cannot be null for xmpp instant messaging"); + else if (receiver instanceof XMPPID) { + final XMPPID rcvr = (XMPPID) receiver; + aMsg.setType(Message.Type.chat); + final String receiverName = rcvr.getFQName(); + final Chat localChat = connection.getChatManager() + .createChat(receiverName, new MessageListener() { + public void processMessage(Chat chat, + Message message) { + } + }); + localChat.sendMessage(aMsg); + } else if (receiver instanceof XMPPRoomID) { + final XMPPRoomID roomID = (XMPPRoomID) receiver; + aMsg.setType(Message.Type.groupchat); + final String to = roomID.getMucString(); + aMsg.setTo(to); + connection.sendPacket(aMsg); + } else + throw new IOException( + "receiver must be of type XMPPID or XMPPRoomID"); + } catch (final XMPPException e) { + final IOException result = new IOException( + "XMPPException in sendMessage: " + e.getMessage()); + result.setStackTrace(e.getStackTrace()); + throw result; + } + } + } + + public synchronized Object sendSynch(ID receiver, byte[] data) + throws IOException { + if (data == null) + throw new IOException("data cannot be null"); + // This is assumed to be disconnect...so we'll just disconnect + // disconnect(); + return null; + } + + public void addListener(IConnectionListener listener) { + // XXX Not yet implemented + } + + public void removeListener(IConnectionListener listener) { + // XXX Not yet implemented + } + + public void sendMessage(ID target, String message) throws IOException { + if (target == null) + throw new IOException("target cannot be null"); + if (message == null) + throw new IOException("message cannot be null"); + final Message aMsg = new Message(); + aMsg.setBody(message); + sendMessage(target, aMsg); + } + + public static Map getPropertiesFromPacket(Packet packet) { + final Map result = new HashMap(); + final Iterator i = packet.getPropertyNames().iterator(); + for (; i.hasNext();) { + final String name = (String) i.next(); + result.put(name, packet.getProperty(name)); + } + return result; + } + + public static Packet setPropertiesInPacket(Packet input, Map properties) { + if (properties != null) { + for (final Iterator i = properties.keySet().iterator(); i.hasNext();) { + final Object keyo = i.next(); + final Object val = properties.get(keyo); + final String key = (keyo instanceof String) ? (String) keyo + : keyo.toString(); + input.setProperty(key, val); + } + } + return input; + } + + public void sendMessage(ID target, ID thread, Type type, String subject, + String body, Map properties2) throws IOException { + if (target == null) + throw new IOException("XMPP target for message cannot be null"); + if (body == null) + body = ""; + final Message aMsg = new Message(); + aMsg.setBody(body); + if (thread != null) + aMsg.setThread(thread.getName()); + if (type != null) + aMsg.setType(type); + if (subject != null) + aMsg.setSubject(subject); + setPropertiesInPacket(aMsg, properties2); + sendMessage(target, aMsg); + } + + public void sendPresenceUpdate(ID target, Presence presence) + throws IOException { + if (presence == null) + throw new IOException("presence cannot be null"); + presence.setFrom(connection.getUser()); + if (target != null) + presence.setTo(target.getName()); + synchronized (this) { + if (!isConnected()) + throw new IOException("not connected"); + connection.sendPacket(presence); + } + } + + public void sendRosterAdd(String user, String name, String[] groups) + throws IOException, XMPPException { + final Roster r = getRoster(); + r.createEntry(user, name, groups); + } + + public void sendRosterRemove(String user) throws XMPPException, IOException { + final Roster r = getRoster(); + final RosterEntry re = r.getEntry(user); + r.removeEntry(re); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ecf.provider.xmpp.IIMMessageSender#getRoster() + */ + public Roster getRoster() throws IOException { + if (connection == null || !connection.isConnected()) + return null; + return connection.getRoster(); + } + +} diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/XMPPSContainer.java b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/XMPPSContainer.java index ffe274111..036aab371 100644 --- a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/XMPPSContainer.java +++ b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/XMPPSContainer.java @@ -1,58 +1,58 @@ -/****************************************************************************
- * Copyright (c) 2004 Composent, Inc. 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:
- * Composent, Inc. - initial API and implementation
- *****************************************************************************/
-package org.eclipse.ecf.provider.xmpp;
-
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.identity.IDFactory;
-import org.eclipse.ecf.core.identity.Namespace;
-import org.eclipse.ecf.core.security.CallbackHandler;
-import org.eclipse.ecf.core.security.IConnectContext;
-import org.eclipse.ecf.internal.provider.xmpp.XmppPlugin;
-import org.eclipse.ecf.internal.provider.xmpp.smack.ECFConnection;
-import org.eclipse.ecf.provider.comm.ConnectionCreateException;
-import org.eclipse.ecf.provider.comm.ISynchAsynchConnection;
-
-public class XMPPSContainer extends XMPPContainer {
- public XMPPSContainer() throws Exception {
- super();
- }
-
- /**
- * @param ka
- * @throws Exception
- */
- public XMPPSContainer(int ka) throws Exception {
- super(ka);
- }
-
- /**
- * @param userhost
- * @param ka
- * @throws Exception
- */
- public XMPPSContainer(String userhost, int ka) throws Exception {
- super(userhost, ka);
- }
-
- public Namespace getConnectNamespace() {
- return IDFactory.getDefault().getNamespaceByName(
- XmppPlugin.getDefault().getSecureNamespaceIdentifier());
- }
-
- protected ISynchAsynchConnection createConnection(ID remoteSpace,
- Object data) throws ConnectionCreateException {
- boolean google = isGoogle(remoteSpace);
- CallbackHandler ch = data instanceof IConnectContext ? ((IConnectContext) data)
- .getCallbackHandler() : null;
- return new ECFConnection(google, getConnectNamespace(), receiver, ch);
- }
-
-}
+/**************************************************************************** + * Copyright (c) 2004 Composent, Inc. 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: + * Composent, Inc. - initial API and implementation + *****************************************************************************/ +package org.eclipse.ecf.provider.xmpp; + +import org.eclipse.ecf.core.identity.ID; +import org.eclipse.ecf.core.identity.IDFactory; +import org.eclipse.ecf.core.identity.Namespace; +import org.eclipse.ecf.core.security.CallbackHandler; +import org.eclipse.ecf.core.security.IConnectContext; +import org.eclipse.ecf.internal.provider.xmpp.XmppPlugin; +import org.eclipse.ecf.internal.provider.xmpp.smack.ECFConnection; +import org.eclipse.ecf.provider.comm.ConnectionCreateException; +import org.eclipse.ecf.provider.comm.ISynchAsynchConnection; + +public class XMPPSContainer extends XMPPContainer { + public XMPPSContainer() throws Exception { + super(); + } + + /** + * @param ka + * @throws Exception + */ + public XMPPSContainer(int ka) throws Exception { + super(ka); + } + + /** + * @param userhost + * @param ka + * @throws Exception + */ + public XMPPSContainer(String userhost, int ka) throws Exception { + super(userhost, ka); + } + + public Namespace getConnectNamespace() { + return IDFactory.getDefault().getNamespaceByName( + XmppPlugin.getDefault().getSecureNamespaceIdentifier()); + } + + protected ISynchAsynchConnection createConnection(ID remoteSpace, + Object data) throws ConnectionCreateException { + boolean google = isGoogle(remoteSpace); + CallbackHandler ch = data instanceof IConnectContext ? ((IConnectContext) data) + .getCallbackHandler() : null; + return new ECFConnection(google, getConnectNamespace(), receiver, ch); + } + +} diff --git a/providers/bundles/org.eclipse.ecf.provider.zookeeper/.settings/org.eclipse.jdt.core.prefs b/providers/bundles/org.eclipse.ecf.provider.zookeeper/.settings/org.eclipse.jdt.core.prefs index d9f2a537f..b79d790ad 100644 --- a/providers/bundles/org.eclipse.ecf.provider.zookeeper/.settings/org.eclipse.jdt.core.prefs +++ b/providers/bundles/org.eclipse.ecf.provider.zookeeper/.settings/org.eclipse.jdt.core.prefs @@ -1,77 +1,77 @@ -#Fri Oct 15 17:10:16 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-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.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=ignore
-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.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-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.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-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.nullReference=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.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=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.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-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.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+#Fri Oct 15 17:10:16 PDT 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +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.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=ignore +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.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +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.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +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.nullReference=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.rawTypeReference=ignore +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=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.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore +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.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/providers/bundles/org.eclipse.ecf.provider.zookeeper/src/org/eclipse/ecf/provider/zookeeper/node/internal/WriteRoot.java b/providers/bundles/org.eclipse.ecf.provider.zookeeper/src/org/eclipse/ecf/provider/zookeeper/node/internal/WriteRoot.java index 3d362e6a9..859737be3 100644 --- a/providers/bundles/org.eclipse.ecf.provider.zookeeper/src/org/eclipse/ecf/provider/zookeeper/node/internal/WriteRoot.java +++ b/providers/bundles/org.eclipse.ecf.provider.zookeeper/src/org/eclipse/ecf/provider/zookeeper/node/internal/WriteRoot.java @@ -1,166 +1,166 @@ -/*******************************************************************************
- * Copyright (c)2010 REMAIN B.V. The Netherlands. (http://www.remainsoftware.com).
- * 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:
- * Wim Jongman - initial API and implementation
- * Ahmed Aadel - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ecf.provider.zookeeper.node.internal;
-
-import org.apache.zookeeper.CreateMode;
-import org.apache.zookeeper.KeeperException;
-import org.apache.zookeeper.WatchedEvent;
-import org.apache.zookeeper.Watcher;
-import org.apache.zookeeper.ZooDefs.Ids;
-import org.apache.zookeeper.ZooKeeper;
-import org.apache.zookeeper.data.Stat;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.ecf.provider.zookeeper.core.ZooDiscoveryContainer;
-import org.eclipse.ecf.provider.zookeeper.util.Logger;
-import org.eclipse.ecf.provider.zookeeper.util.PrettyPrinter;
-import org.osgi.service.log.LogService;
-
-class WriteRoot implements Watcher {
- private ZooKeeper writeKeeper;
- private String ip;
- private WatchManager watchManager;
- private boolean isConnected;
- private Object connectionLock = new Object();
-
- WriteRoot(String ip, WatchManager watchManager) {
- Assert.isNotNull(ip);
- Assert.isNotNull(watchManager);
- this.ip = ip;
- this.watchManager = watchManager;
- initWriteKeeper();
- }
-
- @SuppressWarnings({ "incomplete-switch" })
- public void process(final WatchedEvent event) {
- ZooDiscoveryContainer.CACHED_THREAD_POOL.execute(new Runnable() {
- public void run() {
- synchronized (connectionLock) {
- switch (event.getState()) {
- case Disconnected:
- isConnected = false;
- watchManager.unpublishAll();
- connect();
- break;
- case Expired:
- isConnected = false;
- watchManager.unpublishAll();
- connect();
- break;
- case SyncConnected:
- if (!isConnected) {
- isConnected = true;
- watchManager.addZooKeeper(writeKeeper);
- watchManager.republishAll();
- }
- break;
- // ignore @deprecated cases
- }
- }
- }
- });
- }
-
- private void connect() {
- synchronized (connectionLock) {
- if (this.isConnected || watchManager.isDisposed()) {
- return;
- }
- try {
- if (writeKeeper != null) {
- writeKeeper.close();
- watchManager.removeZooKeeper(writeKeeper);
- writeKeeper = null;
- }
- writeKeeper = new ZooKeeper(this.ip, 3000, this);
-
- } catch (Exception e) {
- Logger.log(LogService.LOG_DEBUG, e.getMessage(), e);
- }
- }
- }
-
- private void initWriteKeeper() {
- try {
- if (watchManager.getConfig().isQuorum()
- || watchManager.getConfig().isStandAlone()) {
- // we write nodes locally but we should check for client port.
- int port = watchManager.getConfig().getClientPort();
- if (port != 0)
- ip += ":" + port;//$NON-NLS-1$
- } else if (watchManager.getConfig().isCentralized()) {
- // we write nodes to the machine with this specified IP address.
- ip = watchManager.getConfig().getServerIps();
- }
- try {
- writeKeeper = new ZooKeeper(this.ip, 3000, this);
- } catch (Exception e) {
- // FATAL
- Logger.log(LogService.LOG_ERROR,
- "Fatal error while initializing a zookeeper client to write to: "
- + ip, e);
- // halt here before the NPE's get out of house in
- // Publisher.publish()
- throw new IllegalStateException(e);
- }
- while (!this.isConnected) {
- synchronized (connectionLock) {
- if (watchManager.isDisposed()) {
- // no need for connecting, we're disposed.
- try {
- writeKeeper.close();
- } catch (Throwable t) {
- // ignore
- }
- break;
- }
- try {
- Stat s = this.writeKeeper.exists(INode.ROOT, this);
- this.isConnected = true;
- if (s == null) {
- writeKeeper.create(INode.ROOT, new byte[0],
- Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
- }
-
- } catch (KeeperException e) {
- if (e.code()
- .equals(KeeperException.Code.CONNECTIONLOSS)) {
- isConnected = false;
- PrettyPrinter.attemptingConnectionTo(this.ip);
- } else
- Logger.log(
- LogService.LOG_ERROR,
- "Error while trying to connect to " + this.ip, e); //$NON-NLS-1$
- }
- }
- }
- synchronized (this) {
- this.notifyAll();
- }
-
- } catch (Exception e) {
- Logger.log(LogService.LOG_DEBUG, e.getMessage(), e);
- }
- }
-
- public ZooKeeper getWriteKeeper() {
- return writeKeeper;
- }
-
- public boolean isConnected() {
- return isConnected;
- }
-
- public WatchManager getWatchManager() {
- return watchManager;
- }
+/******************************************************************************* + * Copyright (c)2010 REMAIN B.V. The Netherlands. (http://www.remainsoftware.com). + * 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: + * Wim Jongman - initial API and implementation + * Ahmed Aadel - initial API and implementation + *******************************************************************************/ + +package org.eclipse.ecf.provider.zookeeper.node.internal; + +import org.apache.zookeeper.CreateMode; +import org.apache.zookeeper.KeeperException; +import org.apache.zookeeper.WatchedEvent; +import org.apache.zookeeper.Watcher; +import org.apache.zookeeper.ZooDefs.Ids; +import org.apache.zookeeper.ZooKeeper; +import org.apache.zookeeper.data.Stat; +import org.eclipse.core.runtime.Assert; +import org.eclipse.ecf.provider.zookeeper.core.ZooDiscoveryContainer; +import org.eclipse.ecf.provider.zookeeper.util.Logger; +import org.eclipse.ecf.provider.zookeeper.util.PrettyPrinter; +import org.osgi.service.log.LogService; + +class WriteRoot implements Watcher { + private ZooKeeper writeKeeper; + private String ip; + private WatchManager watchManager; + private boolean isConnected; + private Object connectionLock = new Object(); + + WriteRoot(String ip, WatchManager watchManager) { + Assert.isNotNull(ip); + Assert.isNotNull(watchManager); + this.ip = ip; + this.watchManager = watchManager; + initWriteKeeper(); + } + + @SuppressWarnings({ "incomplete-switch" }) + public void process(final WatchedEvent event) { + ZooDiscoveryContainer.CACHED_THREAD_POOL.execute(new Runnable() { + public void run() { + synchronized (connectionLock) { + switch (event.getState()) { + case Disconnected: + isConnected = false; + watchManager.unpublishAll(); + connect(); + break; + case Expired: + isConnected = false; + watchManager.unpublishAll(); + connect(); + break; + case SyncConnected: + if (!isConnected) { + isConnected = true; + watchManager.addZooKeeper(writeKeeper); + watchManager.republishAll(); + } + break; + // ignore @deprecated cases + } + } + } + }); + } + + private void connect() { + synchronized (connectionLock) { + if (this.isConnected || watchManager.isDisposed()) { + return; + } + try { + if (writeKeeper != null) { + writeKeeper.close(); + watchManager.removeZooKeeper(writeKeeper); + writeKeeper = null; + } + writeKeeper = new ZooKeeper(this.ip, 3000, this); + + } catch (Exception e) { + Logger.log(LogService.LOG_DEBUG, e.getMessage(), e); + } + } + } + + private void initWriteKeeper() { + try { + if (watchManager.getConfig().isQuorum() + || watchManager.getConfig().isStandAlone()) { + // we write nodes locally but we should check for client port. + int port = watchManager.getConfig().getClientPort(); + if (port != 0) + ip += ":" + port;//$NON-NLS-1$ + } else if (watchManager.getConfig().isCentralized()) { + // we write nodes to the machine with this specified IP address. + ip = watchManager.getConfig().getServerIps(); + } + try { + writeKeeper = new ZooKeeper(this.ip, 3000, this); + } catch (Exception e) { + // FATAL + Logger.log(LogService.LOG_ERROR, + "Fatal error while initializing a zookeeper client to write to: " + + ip, e); + // halt here before the NPE's get out of house in + // Publisher.publish() + throw new IllegalStateException(e); + } + while (!this.isConnected) { + synchronized (connectionLock) { + if (watchManager.isDisposed()) { + // no need for connecting, we're disposed. + try { + writeKeeper.close(); + } catch (Throwable t) { + // ignore + } + break; + } + try { + Stat s = this.writeKeeper.exists(INode.ROOT, this); + this.isConnected = true; + if (s == null) { + writeKeeper.create(INode.ROOT, new byte[0], + Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); + } + + } catch (KeeperException e) { + if (e.code() + .equals(KeeperException.Code.CONNECTIONLOSS)) { + isConnected = false; + PrettyPrinter.attemptingConnectionTo(this.ip); + } else + Logger.log( + LogService.LOG_ERROR, + "Error while trying to connect to " + this.ip, e); //$NON-NLS-1$ + } + } + } + synchronized (this) { + this.notifyAll(); + } + + } catch (Exception e) { + Logger.log(LogService.LOG_DEBUG, e.getMessage(), e); + } + } + + public ZooKeeper getWriteKeeper() { + return writeKeeper; + } + + public boolean isConnected() { + return isConnected; + } + + public WatchManager getWatchManager() { + return watchManager; + } }
\ No newline at end of file |