diff options
Diffstat (limited to 'framework/bundles/org.eclipse.ecf.discovery')
22 files changed, 856 insertions, 315 deletions
diff --git a/framework/bundles/org.eclipse.ecf.discovery/.classpath b/framework/bundles/org.eclipse.ecf.discovery/.classpath index ce0c7a5d4..7cdeb7319 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/.classpath +++ b/framework/bundles/org.eclipse.ecf.discovery/.classpath @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.0%Foundation-1.0"/> + <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="output" path="bin"/> </classpath> diff --git a/framework/bundles/org.eclipse.ecf.discovery/.settings/org.eclipse.jdt.core.prefs b/framework/bundles/org.eclipse.ecf.discovery/.settings/org.eclipse.jdt.core.prefs index b578b6b5b..9b677ba53 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/.settings/org.eclipse.jdt.core.prefs +++ b/framework/bundles/org.eclipse.ecf.discovery/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,330 @@ -#Fri Apr 20 14:30:58 GMT-08:00 2007 +#Fri Nov 23 16:51:32 CET 2007 eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.1 -org.eclipse.jdt.core.compiler.compliance=1.3 +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.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=warning +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.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.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=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=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.unusedDeclaredThrownExceptionWhenOverriding=enabled +org.eclipse.jdt.core.compiler.problem.unusedImport=error +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +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.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_annotation=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_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/framework/bundles/org.eclipse.ecf.discovery/.settings/org.eclipse.jdt.ui.prefs b/framework/bundles/org.eclipse.ecf.discovery/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000..1546d829a --- /dev/null +++ b/framework/bundles/org.eclipse.ecf.discovery/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,58 @@ +#Tue Aug 21 11:27:48 CDT 2007 +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=3 +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_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.make_local_variable_final=false +sp_cleanup.make_parameters_final=false +sp_cleanup.make_private_fields_final=true +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/framework/bundles/org.eclipse.ecf.discovery/META-INF/MANIFEST.MF b/framework/bundles/org.eclipse.ecf.discovery/META-INF/MANIFEST.MF index 9f5ee3f20..3596cfecf 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/META-INF/MANIFEST.MF +++ b/framework/bundles/org.eclipse.ecf.discovery/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %plugin.name Bundle-SymbolicName: org.eclipse.ecf.discovery;singleton:=true -Bundle-Version: 1.2.0.qualifier +Bundle-Version: 2.0.0.qualifier Bundle-Activator: org.eclipse.ecf.internal.discovery.DiscoveryPlugin Bundle-Vendor: %plugin.provider Bundle-Localization: plugin @@ -11,8 +11,9 @@ Export-Package: org.eclipse.ecf.discovery, org.eclipse.ecf.discovery.identity, org.eclipse.ecf.discovery.service, org.eclipse.ecf.internal.discovery;x-internal:=true -Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0, - J2SE-1.3 +Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1, + J2SE-1.4 Require-Bundle: org.eclipse.equinox.common, org.eclipse.ecf -Import-Package: org.osgi.framework;version="1.3.0" +Import-Package: org.eclipse.osgi.util;version="1.1.0", + org.osgi.framework;version="1.3.0" diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/AbstractDiscoveryContainerAdapter.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/AbstractDiscoveryContainerAdapter.java index ac01c09f1..bb8bc67b3 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/AbstractDiscoveryContainerAdapter.java +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/AbstractDiscoveryContainerAdapter.java @@ -10,40 +10,42 @@ ******************************************************************************/ package org.eclipse.ecf.discovery; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - +import java.util.*; import org.eclipse.core.runtime.Assert; import org.eclipse.ecf.core.AbstractContainer; import org.eclipse.ecf.core.IContainer; -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.identity.*; +import org.eclipse.ecf.core.util.Trace; import org.eclipse.ecf.discovery.identity.IServiceTypeID; +import org.eclipse.ecf.internal.discovery.DiscoveryDebugOption; +import org.eclipse.ecf.internal.discovery.DiscoveryPlugin; public abstract class AbstractDiscoveryContainerAdapter extends AbstractContainer implements IDiscoveryContainerAdapter, IContainer { - protected final String servicesNamespaceName; + /** + * Collection of service listeners i.e. Collection<IServiceListener>. + * NOTE: Access to this collection is synchronized, so subclasses should take this into account. + */ + protected final Set allServiceListeners; - protected final DiscoveryContainerConfig config; + private DiscoveryContainerConfig config; /** * Map of service type to collection of service listeners i.e. <String,Collection<IServiceListener>>. * NOTE: Access to this map is synchronized, so subclasses should take this into account. */ protected final Map serviceListeners; + protected final String servicesNamespaceName; /** * Collection of service type listeners i.e. Collection<IServiceTypeListener>. * NOTE: Access to this collection is synchronized, so subclasses should take this into account. */ protected final Collection serviceTypeListeners; + /** + * @param aNamespaceName + * @param aConfig + */ public AbstractDiscoveryContainerAdapter(String aNamespaceName, DiscoveryContainerConfig aConfig) { servicesNamespaceName = aNamespaceName; Assert.isNotNull(servicesNamespaceName); @@ -51,126 +53,151 @@ public abstract class AbstractDiscoveryContainerAdapter extends AbstractContaine Assert.isNotNull(config); serviceTypeListeners = Collections.synchronizedSet(new HashSet()); serviceListeners = Collections.synchronizedMap(new HashMap()); + allServiceListeners = Collections.synchronizedSet(new HashSet()); } - protected DiscoveryContainerConfig getConfig() { - return config; + /* (non-Javadoc) + * @see org.eclipse.ecf.discovery.IDiscoveryContainerAdapter#addServiceListener(org.eclipse.ecf.discovery.IServiceListener) + */ + public void addServiceListener(IServiceListener aListener) { + Assert.isNotNull(aListener); + allServiceListeners.add(aListener); } - /** - * @deprecated - * @see org.eclipse.ecf.discovery.IDiscoveryContainerAdapter#addServiceListener(java.lang.String, - * org.eclipse.ecf.discovery.IServiceListener) + /* (non-Javadoc) + * @see org.eclipse.ecf.discovery.IDiscoveryContainerAdapter#addServiceListener(org.eclipse.ecf.discovery.identity.IServiceTypeID, org.eclipse.ecf.discovery.IServiceListener) */ - public void addServiceListener(String type, IServiceListener listener) { - if (type == null || listener == null) { - return; - } + public void addServiceListener(IServiceTypeID aType, IServiceListener aListener) { + Assert.isNotNull(aListener); + Assert.isNotNull(aType); synchronized (serviceListeners) { // put-if-absent idiom race condition - Collection v = (Collection) serviceListeners.get(type); + Collection v = (Collection) serviceListeners.get(aType); if (v == null) { v = Collections.synchronizedSet(new HashSet()); - serviceListeners.put(type, v); + serviceListeners.put(aType, v); } - v.add(listener); + v.add(aListener); } } - /* - * (non-Javadoc) - * + /* (non-Javadoc) * @see org.eclipse.ecf.discovery.IDiscoveryContainerAdapter#addServiceTypeListener(org.eclipse.ecf.discovery.IServiceTypeListener) */ - public void addServiceTypeListener(IServiceTypeListener listener) { - if (listener == null) - return; - synchronized (serviceTypeListeners) { - serviceTypeListeners.add(listener); - } + public void addServiceTypeListener(IServiceTypeListener aListener) { + Assert.isNotNull(aListener); + serviceTypeListeners.add(aListener); } - /* - * (non-Javadoc) - * - * @see org.eclipse.ecf.core.IContainer#dispose() + protected void clearListeners() { + serviceListeners.clear(); + serviceTypeListeners.clear(); + allServiceListeners.clear(); + } + + /* (non-Javadoc) + * @see org.eclipse.ecf.core.AbstractContainer#dispose() */ public void dispose() { disconnect(); + clearListeners(); + config = null; super.dispose(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.ecf.core.IContainer#getConnectNamespace() + /** + * Calls {@link IServiceListener#serviceDiscovered(IServiceEvent)} for all registered {@link IServiceListener} + * @param aServiceEvent The {@link IServiceEvent} to send along the call */ - public Namespace getConnectNamespace() { - return IDFactory.getDefault().getNamespaceByName(servicesNamespaceName); + protected void fireServiceDiscovered(IServiceEvent aServiceEvent) { + Assert.isNotNull(aServiceEvent); + final Collection listeners = getListeners(aServiceEvent.getServiceInfo().getServiceID().getServiceTypeID()); + if (listeners != null) { + for (final Iterator i = listeners.iterator(); i.hasNext();) { + final IServiceListener l = (IServiceListener) i.next(); + l.serviceDiscovered(aServiceEvent); + Trace.trace(DiscoveryPlugin.PLUGIN_ID, DiscoveryDebugOption.METHODS_TRACING, this.getClass(), "fireServiceDiscovered", aServiceEvent.toString()); //$NON-NLS-1$ + } + } } - /* - * (non-Javadoc) - * - * @see org.eclipse.ecf.core.identity.IIdentifiable#getID() + /** + * Calls {@link IServiceTypeListener#serviceTypeDiscovered(IServiceTypeEvent)} for all registered {@link IServiceTypeListener} + * @param aServiceTypeEvent The {@link IServiceTypeEvent} to send along the call */ - public ID getID() { - if (config != null) { - return config.getID(); + protected void fireServiceTypeDiscovered(IServiceTypeEvent aServiceTypeEvent) { + Assert.isNotNull(aServiceTypeEvent); + List notify = null; + synchronized (serviceTypeListeners) { + notify = new ArrayList(serviceTypeListeners); + } + for (final Iterator i = notify.iterator(); i.hasNext();) { + final IServiceTypeListener l = (IServiceTypeListener) i.next(); + l.serviceTypeDiscovered(aServiceTypeEvent); + Trace.trace(DiscoveryPlugin.PLUGIN_ID, DiscoveryDebugOption.METHODS_TRACING, this.getClass(), "fireServiceTypeDiscovered", aServiceTypeEvent.toString()); //$NON-NLS-1$ } - return null; } - /* (non-Javadoc) - * @see org.eclipse.ecf.discovery.IDiscoveryContainerAdapter#removeServiceListener(org.eclipse.ecf.discovery.identity.IServiceTypeID, org.eclipse.ecf.discovery.IServiceListener) + /** + * Calls {@link IServiceListener#serviceUndiscovered(IServiceEvent)} for all registered {@link IServiceListener} + * @param aServiceEvent The {@link IServiceEvent} to send along the call */ - public void removeServiceListener(IServiceTypeID type, IServiceListener listener) { - removeServiceListener(type.getName(), listener); + protected void fireServiceUndiscovered(IServiceEvent aServiceEvent) { + Assert.isNotNull(aServiceEvent); + final Collection listeners = getListeners(aServiceEvent.getServiceInfo().getServiceID().getServiceTypeID()); + if (listeners != null) { + for (final Iterator i = listeners.iterator(); i.hasNext();) { + final IServiceListener l = (IServiceListener) i.next(); + l.serviceUndiscovered(aServiceEvent); + Trace.trace(DiscoveryPlugin.PLUGIN_ID, DiscoveryDebugOption.METHODS_TRACING, this.getClass(), "fireServiceUndiscovered", aServiceEvent.toString()); //$NON-NLS-1$ + } + } + } + + /** + * @return The {@link DiscoveryContainerConfig} of this {@link IDiscoveryContainerAdapter} + */ + protected DiscoveryContainerConfig getConfig() { + return config; } /* (non-Javadoc) - * @see org.eclipse.ecf.discovery.IDiscoveryContainerAdapter#addServiceListener(org.eclipse.ecf.discovery.identity.IServiceTypeID, org.eclipse.ecf.discovery.IServiceListener) + * @see org.eclipse.ecf.core.IContainer#getConnectNamespace() */ - public void addServiceListener(IServiceTypeID type, IServiceListener listener) { - addServiceListener(type.getName(), listener); + public Namespace getConnectNamespace() { + return IDFactory.getDefault().getNamespaceByName(servicesNamespaceName); } - /* - * (non-Javadoc) - * - * @see org.eclipse.ecf.discovery.IDiscoveryContainerAdapter#removeServiceTypeListener(org.eclipse.ecf.discovery.IServiceTypeListener) + /* (non-Javadoc) + * @see org.eclipse.ecf.core.identity.IIdentifiable#getID() */ - public void removeServiceTypeListener(IServiceTypeListener listener) { - if (listener == null) - return; - synchronized (serviceTypeListeners) { - serviceTypeListeners.remove(listener); + public ID getID() { + if (config != null) { + return config.getID(); } + return null; } + // merges the allServiceListener with the serviceListeners for the given type + /** - * @deprecated - * @see org.eclipse.ecf.discovery.IDiscoveryContainerAdapter#removeServiceListener(java.lang.String, - * org.eclipse.ecf.discovery.IServiceListener) + * Joins the {@link Collection} of {@link IServiceListener}s interested in any {@link IServiceTypeID} with + * the {@link Collection} of the {@link IServiceListener} registered for the given {@link IServiceTypeID} + * @param aServiceType The {@link IServiceTypeID} for which the {@link IServiceListener}s are returned + * @return All {@link IServiceListener}s interested in the given {@link IServiceTypeID} */ - public void removeServiceListener(String type, IServiceListener listener) { - if (type == null || listener == null) { - return; - } + protected Collection getListeners(IServiceTypeID aServiceType) { + Assert.isNotNull(aServiceType); + Collection listeners = new HashSet(); synchronized (serviceListeners) { - final Collection v = (Collection) serviceListeners.get(type); - if (v != null) { - v.remove(listener); + Collection collection = (Collection) serviceListeners.get(aServiceType); + if (collection != null) { + listeners.addAll(collection); } } - } - - protected void clearListeners() { - synchronized (serviceListeners) { - serviceListeners.clear(); - } - synchronized (serviceTypeListeners) { - serviceTypeListeners.clear(); + synchronized (allServiceListeners) { + listeners.addAll(allServiceListeners); } + return Collections.unmodifiableCollection(listeners); } /* (non-Javadoc) @@ -180,65 +207,33 @@ public abstract class AbstractDiscoveryContainerAdapter extends AbstractContaine return IDFactory.getDefault().getNamespaceByName(servicesNamespaceName); } - protected void fireServiceTypeAdded(IServiceEvent serviceEvent) { - if (serviceEvent == null) - return; - List notify = null; - synchronized (serviceTypeListeners) { - notify = new ArrayList(serviceTypeListeners); - } - for (final Iterator i = notify.iterator(); i.hasNext();) { - final IServiceTypeListener l = (IServiceTypeListener) i.next(); - l.serviceTypeAdded(serviceEvent); - } - } - - protected void fireServiceAdded(IServiceEvent serviceEvent) { - if (serviceEvent == null) - return; - Collection notify = null; - synchronized (serviceListeners) { - final Collection orig = (Collection) serviceListeners.get(serviceEvent.getServiceInfo().getServiceID().getServiceTypeID().getName()); - if (orig != null) - notify = new ArrayList(orig); - } - if (notify != null) { - for (final Iterator i = notify.iterator(); i.hasNext();) { - final IServiceListener l = (IServiceListener) i.next(); - l.serviceAdded(serviceEvent); - } - } + /* (non-Javadoc) + * @see org.eclipse.ecf.discovery.IDiscoveryContainerAdapter#removeServiceListener(org.eclipse.ecf.discovery.IServiceListener) + */ + public void removeServiceListener(IServiceListener aListener) { + Assert.isNotNull(aListener); + allServiceListeners.remove(aListener); } - protected void fireServiceRemoved(IServiceEvent serviceEvent) { - Collection notify = null; + /* (non-Javadoc) + * @see org.eclipse.ecf.discovery.IDiscoveryContainerAdapter#removeServiceListener(org.eclipse.ecf.discovery.identity.IServiceTypeID, org.eclipse.ecf.discovery.IServiceListener) + */ + public void removeServiceListener(IServiceTypeID aType, IServiceListener aListener) { + Assert.isNotNull(aListener); + Assert.isNotNull(aType); synchronized (serviceListeners) { - final Collection orig = (Collection) serviceListeners.get(serviceEvent.getServiceInfo().getServiceID().getServiceTypeID().getName()); - if (orig != null) - notify = new ArrayList(orig); - } - if (notify != null) { - for (final Iterator i = notify.iterator(); i.hasNext();) { - final IServiceListener l = (IServiceListener) i.next(); - l.serviceRemoved(serviceEvent); + final Collection v = (Collection) serviceListeners.get(aType); + if (v != null) { + v.remove(aListener); } } } - protected void fireServiceResolved(IServiceEvent serviceEvent) { - if (serviceEvent == null) - return; - Collection notify = null; - synchronized (serviceListeners) { - final Collection orig = (Collection) serviceListeners.get(serviceEvent.getServiceInfo().getServiceID().getServiceTypeID().getName()); - if (orig != null) - notify = new ArrayList(orig); - } - if (notify != null) { - for (final Iterator i = notify.iterator(); i.hasNext();) { - final IServiceListener l = (IServiceListener) i.next(); - l.serviceResolved(serviceEvent); - } - } + /* (non-Javadoc) + * @see org.eclipse.ecf.discovery.IDiscoveryContainerAdapter#removeServiceTypeListener(org.eclipse.ecf.discovery.IServiceTypeListener) + */ + public void removeServiceTypeListener(IServiceTypeListener aListener) { + Assert.isNotNull(aListener); + serviceTypeListeners.remove(aListener); } } diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IDiscoveryContainerAdapter.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IDiscoveryContainerAdapter.java index 29d794114..2fe40ad4b 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IDiscoveryContainerAdapter.java +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IDiscoveryContainerAdapter.java @@ -12,15 +12,13 @@ package org.eclipse.ecf.discovery; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.ecf.core.identity.Namespace; import org.eclipse.ecf.core.util.ECFException; -import org.eclipse.ecf.discovery.identity.IServiceID; -import org.eclipse.ecf.discovery.identity.IServiceTypeID; -import org.eclipse.ecf.discovery.identity.ServiceIDFactory; +import org.eclipse.ecf.discovery.identity.*; /** * Entry point discovery container adapter. This interface exposes the ability * to add/remove listeners for newly discovered services and service types, * register and unregister locally provided services, and get (synch) and - * request (asynch) service info from a remote service provider. + * request (asynchronous) service info from a remote service provider. * <p> * This interface can be used by container provider implementations as an * adapter so that calls to @@ -33,22 +31,13 @@ import org.eclipse.ecf.discovery.identity.ServiceIDFactory; public interface IDiscoveryContainerAdapter extends IAdaptable { /** - * Add a service type listener. The given listener will have its method - * called when a service type is discovered. - * - * @param listener - * the listener to be notified. Must not be <code>null</code>. - */ - public void addServiceTypeListener(IServiceTypeListener listener); - - /** - * Remove a service type listener. Remove the type listener. + * Add a service listener. The given listener will have its method called + * when a service is discovered. * * @param listener - * IServiceTypeListener to be removed. Must not be - * <code>null</code>. + * IServiceListener to be notified. Must not be <code>null</code>. */ - public void removeServiceTypeListener(IServiceTypeListener listener); + public void addServiceListener(IServiceListener listener); /** * Add a service listener. The given listener will have its method called @@ -57,45 +46,69 @@ public interface IDiscoveryContainerAdapter extends IAdaptable { * * @param type * String type to listen for. Must not be <code>null</code>. - * Must be formatted accroding to this specific IDiscoveryContainer + * Must be formatted according to this specific IDiscoveryContainer * @param listener * IServiceListener to be notified. Must not be <code>null</code>. - * @deprecated Use addServiceListener(IServiceTypeID, IServiceListener) instead. */ - public void addServiceListener(String type, IServiceListener listener); - public void addServiceListener(IServiceTypeID type, IServiceListener listener); /** - * Remove a service listener. Remove the listener associated with the type - * specified by the first parameter. + * Add a service type listener. The given listener will have its method + * called when a service type is discovered. * - * @param type - * String of the desired type to remove the listener. Must not be - * <code>null</code>. - * Must be formatted accroding to this specific IDiscoveryContainer * @param listener - * IServiceListener listener to be removed. Must not be + * the listener to be notified. Must not be <code>null</code>. + */ + public void addServiceTypeListener(IServiceTypeListener listener); + + /** + * Synchronously retrieve info about the service + * + * @param service + * IServiceID of the service to get info about. Must not be * <code>null</code>. - * @deprecated Use removeServiceListener(IServiceTypeID, IServiceListener) instead. + * @return IServiceInfo the service info retrieved. <code>null</code> if + * no information retrievable. */ - public void removeServiceListener(String type, IServiceListener listener); + public IServiceInfo getServiceInfo(IServiceID service); - public void removeServiceListener(IServiceTypeID type, IServiceListener listener); + /** + * Synchronously get service info about all known services + * + * @return IServiceInfo[] the resulting array of service info instances. + * Will not be <code>null</code>. May be of length 0. + */ + public IServiceInfo[] getServices(); /** - * Register the given service type. This publishes the given service type to - * the underlying publishing mechanism + * Synchronously get service info about all known services of given service type * - * @param serviceType - * String of the serviceType to be published. Must not be - * <code>null</code>. - * Must be formatted accroding to this specific IDiscoveryContainer - * @deprecated Use registerServiceType(IServiceTypeID) instead. + * @param type + * IServiceTypeID defining the type of service we are interested in + * getting service info about. Must not be <code>null</code> + * @return IServiceInfo[] the resulting array of service info instances. + * Will not be <code>null</code>. May be of length 0. */ - public void registerServiceType(String serviceType); + public IServiceInfo[] getServices(IServiceTypeID type); - public void registerServiceType(IServiceTypeID type); + /** + * Get a Namespace for services associated with this discovery container adapter. The given Namespace + * may be used via {@link ServiceIDFactory} to create IServiceIDs rather than simple IDs. For example: + * <pre> + * IServiceID serviceID = ServiceIDFactory.getDefault().createServiceID(container.getServicesNamespace(),serviceType,serviceName); + * </pre> + * + * @return Namespace for creating service IDs. Will not be <code>null</code>. + */ + public Namespace getServicesNamespace(); + + /** + * Synchronously get service info about all known services of given service type + * + * @return IServiceTypeID[] the resulting array of service type IDs. + * Will not be <code>null</code>. May be of length 0. + */ + public IServiceTypeID[] getServiceTypes(); /** * Register the given service. This publishes the service defined by the @@ -110,65 +123,45 @@ public interface IDiscoveryContainerAdapter extends IAdaptable { public void registerService(IServiceInfo serviceInfo) throws ECFException; /** - * Synchronously (within given timeout) retrieve info about the service - * defined by the first parameter. + * Remove a service listener. Remove the listener from this container * - * @param service - * IServiceID of the service to get info about. Must not be + * @param listener + * IServiceListener listener to be removed. Must not be * <code>null</code>. - * @param timeout - * int time to wait for a response (in ms) - * @return IServiceInfo the service info retrieved. <code>null</code> if - * no information retrieved within timeout. */ - public IServiceInfo getServiceInfo(IServiceID service, int timeout); + public void removeServiceListener(IServiceListener listener); /** - * Asynchronously (within given timeout) retrieve info about the service - * defined by the first parameter. Sends a request for service information - * and returns. Answers to such requests occur via {@link IServiceListener}'s - * {@link IServiceListener#serviceResolved(IServiceEvent) serviceResolved(IServiceEvent)} - * method. + * Remove a service listener. Remove the listener associated with the type + * specified by the first parameter. * - * @param service - * ServiceID of the service to get info about. Must not be + * @param type + * String of the desired type to remove the listener. Must not be * <code>null</code>. - * @param timeout - * int time to wait for a response (in ms) - */ - public void requestServiceInfo(IServiceID service, int timeout); - - /** - * Unregister service defined by serviceInfo. - * - * @param serviceInfo - * IServiceInfo defining the service to unregister. Must not be + * Must be formatted according to this specific IDiscoveryContainer + * @param listener + * IServiceListener listener to be removed. Must not be * <code>null</code>. */ - public void unregisterService(IServiceInfo serviceInfo); + public void removeServiceListener(IServiceTypeID type, IServiceListener listener); /** - * Get service info about all known services of given service type + * Remove a service type listener. Remove the type listener. * - * @param type - * String defining the type of service we are interested in - * getting service info about. Must not be <code>null</code> - * @return IServiceInfo[] the resulting array of service info instances. - * Will not be <code>null</code>. May be of length 0. - * @deprecated Use getServices(IServiceTypeID) instead. + * @param listener + * IServiceTypeListener to be removed. Must not be + * <code>null</code>. */ - public IServiceInfo[] getServices(String type); - - public IServiceInfo[] getServices(IServiceTypeID type); + public void removeServiceTypeListener(IServiceTypeListener listener); /** - * Get a namespace for services associated with this discovery container adapter. The given namespace - * may be used via {@link ServiceIDFactory} to create IServiceIDs rather than simple IDs. For example: - * <pre> - * IServiceID serviceID = ServiceIDFactory.getDefault().createServiceID(container.getServicesNamespace(),serviceType,serviceName); - * </pre> + * Unregister a previously registered service defined by serviceInfo. * - * @return Namespace for creating service IDs. Will not be <code>null</code>. + * @param serviceInfo + * IServiceInfo defining the service to unregister. Must not be + * <code>null</code>. + * @throws ECFException + * if service info cannot be unregistered with this service */ - public Namespace getServicesNamespace(); + public void unregisterService(IServiceInfo serviceInfo) throws ECFException; } diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceInfo.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceInfo.java index 1d69c496a..c58bb4fdb 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceInfo.java +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceInfo.java @@ -9,23 +9,22 @@ package org.eclipse.ecf.discovery; -import java.net.InetAddress; - +import java.net.URI; import org.eclipse.ecf.discovery.identity.IServiceID; /** - * Service information contrace. Defines the information associated with a + * Service information contract. Defines the information associated with a * remotely discoverable service * */ public interface IServiceInfo { /** - * Get InetAddress for service + * Get URI for service * - * @return InetAddress the address for the service. May be <code>null</code> if address + * @return {@link java.net.URI} the location for the service. May be <code>null</code> if location * is not known. */ - public InetAddress getAddress(); + public URI getLocation(); /** * Get ServiceID for service. @@ -35,13 +34,6 @@ public interface IServiceInfo { public IServiceID getServiceID(); /** - * The port for the service - * - * @return port - */ - public int getPort(); - - /** * The priority for the service * * @return int the priority. Zero if no priority information for service. @@ -62,13 +54,4 @@ public interface IServiceInfo { * @return Map the properties associated with this service. Will not be <code>null</code>. */ public IServiceProperties getServiceProperties(); - - /** - * Returns true if this service info has been resolved by the service - * publisher, false if not. - * - * @return true if this instance has been resolved, false if not - */ - public boolean isResolved(); - } diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceListener.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceListener.java index 6b9ff2e84..5f73d24db 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceListener.java +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceListener.java @@ -36,25 +36,18 @@ package org.eclipse.ecf.discovery; * via I/O operations or blocking UI calls. */ public interface IServiceListener { - /** - * Notification that a service has been added. - * - * @param event Will not be <code>null</code>. - */ - public void serviceAdded(IServiceEvent event); /** - * Notification that a service has been removed. + * Notification that a service has been discovered (the service is fully resolved). * - * @param event Will not be <code>null</code>. + * @param anEvent Will not be <code>null</code> */ - public void serviceRemoved(IServiceEvent event); + public void serviceDiscovered(IServiceEvent anEvent); /** - * Notification that a service has been resolved (that complete service info - * is now available). + * Notification that a previously discovered service has been undiscovered. * - * @param event Will not be <code>null</code>. + * @param anEvent Will not be <code>null</code> */ - public void serviceResolved(IServiceEvent event); + public void serviceUndiscovered(IServiceEvent anEvent); } diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceProperties.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceProperties.java index 725f772dd..b44c83f55 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceProperties.java +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceProperties.java @@ -10,6 +10,7 @@ package org.eclipse.ecf.discovery; import java.util.Enumeration; +import java.util.Properties; public interface IServiceProperties { /** @@ -95,4 +96,8 @@ public interface IServiceProperties { */ public Object setProperty(String name, Object value); + /** + * @return A copy of this {@link IServiceProperties} as a {@link Properties} + */ + public Properties asProperties(); } diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceTypeEvent.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceTypeEvent.java new file mode 100644 index 000000000..223081961 --- /dev/null +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceTypeEvent.java @@ -0,0 +1,27 @@ +/**************************************************************************** + * 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 + *****************************************************************************/ + +package org.eclipse.ecf.discovery; + +import org.eclipse.ecf.core.events.IContainerEvent; +import org.eclipse.ecf.discovery.identity.IServiceTypeID; + +/** + * Service type discovery event that provides access to service type + */ +public interface IServiceTypeEvent extends IContainerEvent { + + /** + * Get service type id for this service type event. + * @return IServiceTypeID for this service type event. Will not be <code>null</code>. + */ + public IServiceTypeID getServiceTypeID(); +} diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceTypeListener.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceTypeListener.java index 5009f78bf..4c469d1cf 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceTypeListener.java +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/IServiceTypeListener.java @@ -35,10 +35,11 @@ package org.eclipse.ecf.discovery; * via I/O operations or blocking UI calls. */ public interface IServiceTypeListener { + /** - * Notification that a service type has been added + * Notification that a service type has been discovered * * @param event Must not be <code>null</code>. */ - public void serviceTypeAdded(IServiceEvent event); + public void serviceTypeDiscovered(IServiceTypeEvent event); } diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/ServiceInfo.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/ServiceInfo.java index 1d675b983..9b9cb72ef 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/ServiceInfo.java +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/ServiceInfo.java @@ -10,8 +10,7 @@ package org.eclipse.ecf.discovery; import java.io.Serializable; -import java.net.InetAddress; - +import java.net.URI; import org.eclipse.ecf.discovery.identity.IServiceID; /** @@ -22,47 +21,48 @@ public class ServiceInfo implements IServiceInfo, Serializable { private static final long serialVersionUID = -5651115550295457142L; - public static final int DEFAULT_PRIORITY = -1; - public static final int DEFAULT_WEIGHT = -1; + public static final int DEFAULT_PRIORITY = 0; + public static final int DEFAULT_WEIGHT = 0; - protected InetAddress addr = null; + protected URI uri = null; protected IServiceID serviceID; - protected int port; - protected int priority; protected int weight; protected IServiceProperties properties; - public ServiceInfo(InetAddress address, IServiceID serviceID, int port, int priority, int weight, IServiceProperties props) { - this.addr = address; + public ServiceInfo() { + // null constructor for subclasses + } + + public ServiceInfo(URI anURI, IServiceID serviceID, int priority, int weight, IServiceProperties props) { + this.uri = anURI; this.serviceID = serviceID; - this.port = port; this.priority = priority; this.weight = weight; this.properties = props; } - public ServiceInfo(InetAddress address, IServiceID serviceID, int port, IServiceProperties props) { - this(address, serviceID, port, DEFAULT_PRIORITY, DEFAULT_WEIGHT, props); + public ServiceInfo(URI anURI, IServiceID serviceID, IServiceProperties props) { + this(anURI, serviceID, DEFAULT_PRIORITY, DEFAULT_WEIGHT, props); } - public ServiceInfo(InetAddress address, IServiceID serviceID, int port) { - this(address, serviceID, port, DEFAULT_PRIORITY, DEFAULT_WEIGHT, new ServiceProperties()); + public ServiceInfo(URI anURI, IServiceID serviceID) { + this(anURI, serviceID, DEFAULT_PRIORITY, DEFAULT_WEIGHT, new ServiceProperties()); } /* (non-Javadoc) * @see org.eclipse.ecf.discovery.IServiceInfo#getAddress() */ - public InetAddress getAddress() { - return addr; + public URI getLocation() { + return uri; } - protected void setAddress(InetAddress address) { - this.addr = address; + protected void setLocation(URI address) { + this.uri = address; } /* (non-Javadoc) @@ -73,13 +73,6 @@ public class ServiceInfo implements IServiceInfo, Serializable { } /* (non-Javadoc) - * @see org.eclipse.ecf.discovery.IServiceInfo#getPort() - */ - public int getPort() { - return port; - } - - /* (non-Javadoc) * @see org.eclipse.ecf.discovery.IServiceInfo#getPriority() */ public int getPriority() { @@ -104,7 +97,7 @@ public class ServiceInfo implements IServiceInfo, Serializable { * @see org.eclipse.ecf.discovery.IServiceInfo#isResolved() */ public boolean isResolved() { - return (addr != null); + return (uri != null); } /* (non-Javadoc) @@ -112,8 +105,8 @@ public class ServiceInfo implements IServiceInfo, Serializable { */ public String toString() { final StringBuffer buf = new StringBuffer("ServiceInfo["); //$NON-NLS-1$ - buf.append("addr=").append(addr).append(";id=").append(serviceID) //$NON-NLS-1$ //$NON-NLS-2$ - .append(";port=").append(port).append(";priority=").append( //$NON-NLS-1$ //$NON-NLS-2$ + buf.append("uri=").append(uri).append(";id=").append(serviceID) //$NON-NLS-1$ //$NON-NLS-2$ + .append(";priority=").append( //$NON-NLS-1$ priority).append(";weight=").append(weight).append( //$NON-NLS-1$ ";props=").append(properties).append("]"); //$NON-NLS-1$ //$NON-NLS-2$ return buf.toString(); diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/ServiceProperties.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/ServiceProperties.java index b0939eec7..6c365d241 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/ServiceProperties.java +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/ServiceProperties.java @@ -93,4 +93,11 @@ public class ServiceProperties implements IServiceProperties { public Object setPropertyString(String name, String value) { return props.put(name, value); } + + /* (non-Javadoc) + * @see org.eclipse.ecf.discovery.IServiceProperties#asProperties() + */ + public Properties asProperties() { + return new Properties(props); + } } diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/ServiceTypeContainerEvent.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/ServiceTypeContainerEvent.java new file mode 100644 index 000000000..18e901b98 --- /dev/null +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/ServiceTypeContainerEvent.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * 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.discovery; + +import org.eclipse.ecf.core.identity.ID; +import org.eclipse.ecf.discovery.identity.IServiceTypeID; + +/** + * Base event implementation of {@link IServiceEvent}. Subclasses + * may be created as appropriate. + */ +public class ServiceTypeContainerEvent implements IServiceTypeEvent { + + private static final long serialVersionUID = -2989101661453584041L; + + protected IServiceTypeID serviceType; + + protected ID containerID; + + public ServiceTypeContainerEvent(IServiceTypeID serviceType, ID containerID) { + this.serviceType = serviceType; + this.containerID = containerID; + } + + /* (non-Javadoc) + * @see org.eclipse.ecf.core.events.IContainerEvent#getLocalContainerID() + */ + public ID getLocalContainerID() { + return containerID; + } + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + public String toString() { + final StringBuffer buf = new StringBuffer("ServiceTypeContainerEvent["); //$NON-NLS-1$ + buf.append("servicetypeid=").append(getServiceTypeID()).append(";containerid=").append(getLocalContainerID()).append("]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return buf.toString(); + } + + /* (non-Javadoc) + * @see org.eclipse.ecf.discovery.IServiceTypeEvent#getServiceTypeID() + */ + public IServiceTypeID getServiceTypeID() { + return serviceType; + } +} diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/identity/IServiceID.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/identity/IServiceID.java index 6c326bb5d..43f3af549 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/identity/IServiceID.java +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/identity/IServiceID.java @@ -19,14 +19,6 @@ import org.eclipse.ecf.core.identity.ID; public interface IServiceID extends ID { /** - * Get service type for this ID. - * Delegates to getServiceTypeID().getName() - * @return String service type. Will not be <code>null</code>. - * @deprecated Use getServiceTypeID() instead! - */ - public String getServiceType(); - - /** * Get service type ID for this ID. * @return IServiceTypeID. Will not be <code>null</code>. */ diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/identity/ServiceID.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/identity/ServiceID.java index bf8ffbfcb..69aa7498b 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/identity/ServiceID.java +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/identity/ServiceID.java @@ -35,8 +35,7 @@ public class ServiceID extends BaseID implements IServiceID { protected String getFullyQualifiedName() { if (name == null) return type.getName(); - else - return type.getName() + "@" + name; + return type.getName() + "@" + name; //$NON-NLS-1$ } /* (non-Javadoc) @@ -47,9 +46,8 @@ public class ServiceID extends BaseID implements IServiceID { final ServiceID other = (ServiceID) o; final String typename = other.getFullyQualifiedName(); return getFullyQualifiedName().compareTo(typename); - } else { - return 1; } + return 1; } /* (non-Javadoc) diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/identity/ServiceTypeID.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/identity/ServiceTypeID.java index 27082fdcc..c6471f51e 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/identity/ServiceTypeID.java +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/identity/ServiceTypeID.java @@ -11,9 +11,12 @@ package org.eclipse.ecf.discovery.identity; +import java.util.Arrays; +import java.util.List; import org.eclipse.core.runtime.Assert; -import org.eclipse.ecf.core.identity.BaseID; -import org.eclipse.ecf.core.identity.Namespace; +import org.eclipse.ecf.core.identity.*; +import org.eclipse.ecf.core.util.StringUtils; +import org.eclipse.ecf.internal.discovery.Messages; /** * ServiceTypeID base class. @@ -50,6 +53,39 @@ public class ServiceTypeID extends BaseID implements IServiceTypeID { Assert.isNotNull(typeName); } + protected ServiceTypeID(Namespace ns, IServiceTypeID id) { + this(ns, id.getServices(), id.getScopes(), id.getProtocols(), id.getNamingAuthority()); + } + + public ServiceTypeID(String aType) throws IDCreateException { + if (aType == null) + throw new IDCreateException(Messages.ServiceTypeID_EXCEPTION_SERVICE_TYPE_ID_NOT_NULL); + try { + // remove the leading _ + String type = aType.substring(1); + + String[] split = StringUtils.split(type, "_"); //$NON-NLS-1$ + // naming authority + int offset = split.length - 1; + this.namingAuthority = split[offset]; + + // protocol and scope + String string = split[--offset]; + String[] protoAndScope = StringUtils.split(string, ".", string.indexOf(".") - 1); //$NON-NLS-1$ //$NON-NLS-2$ + this.protocols = new String[] {protoAndScope[0]}; + this.scopes = new String[] {protoAndScope[1]}; + + // services are the remaining strings in the array + List subList = Arrays.asList(split).subList(0, offset); + this.services = (String[]) subList.toArray(new String[0]); + + createType(); + } catch (Exception e) { + throw new IDCreateException(Messages.ServiceTypeID_EXCEPTION_SERVICE_TYPE_ID_NOT_PARSEABLE, e); + } + Assert.isTrue(aType.equals(typeName)); + } + protected void createType() { final StringBuffer buf = new StringBuffer(); //services @@ -61,7 +97,11 @@ public class ServiceTypeID extends BaseID implements IServiceTypeID { //protocols for (int i = 0; i < protocols.length; i++) { buf.append(protocols[i]); - buf.append(DELIM); + if (i != protocols.length - 1) { + buf.append(DELIM); + } else { + buf.append("."); //$NON-NLS-1$ + } } //scope for (int i = 0; i < scopes.length; i++) { @@ -75,6 +115,13 @@ public class ServiceTypeID extends BaseID implements IServiceTypeID { } /* (non-Javadoc) + * @see org.eclipse.ecf.core.identity.BaseID#getName() + */ + public String getName() { + return typeName; + } + + /* (non-Javadoc) * @see org.eclipse.ecf.core.identity.BaseID#namespaceCompareTo(org.eclipse.ecf.core.identity.BaseID) */ protected int namespaceCompareTo(BaseID o) { @@ -119,8 +166,8 @@ public class ServiceTypeID extends BaseID implements IServiceTypeID { * @see java.lang.Object#toString() */ public String toString() { - final StringBuffer buf = new StringBuffer("ServiceTypeID["); - buf.append("typeName=").append(typeName).append("]"); + final StringBuffer buf = new StringBuffer("ServiceTypeID["); //$NON-NLS-1$ + buf.append("typeName=").append(typeName).append("]"); //$NON-NLS-1$//$NON-NLS-2$ return buf.toString(); } @@ -166,6 +213,13 @@ public class ServiceTypeID extends BaseID implements IServiceTypeID { } /* (non-Javadoc) + * @see org.eclipse.ecf.core.identity.BaseID#hashCode() + */ + public int hashCode() { + return getName().hashCode(); + } + + /* (non-Javadoc) * @see org.eclipse.ecf.discovery.identity.IServiceTypeID#getInternal() */ public String getInternal() { diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/service/IDiscoveryService.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/service/IDiscoveryService.java index 7e3d1e5b8..7f7ba48c2 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/service/IDiscoveryService.java +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/service/IDiscoveryService.java @@ -19,5 +19,6 @@ import org.eclipse.ecf.discovery.IDiscoveryContainerAdapter; * service clients. */ public interface IDiscoveryService extends IDiscoveryContainerAdapter { + // All methods provided by superclass } diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/DiscoveryDebugOption.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/DiscoveryDebugOption.java new file mode 100644 index 000000000..82398ade0 --- /dev/null +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/DiscoveryDebugOption.java @@ -0,0 +1,26 @@ +/******************************************************************************* + * Copyright (c) 2007 Versant Corp. + * 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: + * Markus Kuppe (mkuppe <at> versant <dot> com) - initial API and implementation + ******************************************************************************/ +package org.eclipse.ecf.internal.discovery; + +public class DiscoveryDebugOption { + public static final String DEBUG = DiscoveryPlugin.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$ + + public static final String METHODS_TRACING = DEBUG + "/methods/tracing"; //$NON-NLS-1$ + +} diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/DiscoveryPlugin.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/DiscoveryPlugin.java index 72792f80c..27c7d4864 100644 --- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/DiscoveryPlugin.java +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/DiscoveryPlugin.java @@ -16,6 +16,9 @@ import org.osgi.framework.BundleContext; * The main plugin class to be used in the desktop. */ public class DiscoveryPlugin implements BundleActivator { + + public static final String PLUGIN_ID = "org.eclipse.ecf.discovery"; //$NON-NLS-1$ + // The shared instance. private static DiscoveryPlugin plugin; @@ -33,6 +36,7 @@ public class DiscoveryPlugin implements BundleActivator { * @throws Exception */ public void start(BundleContext context) throws Exception { + // nothing to do } /** diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/Messages.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/Messages.java new file mode 100644 index 000000000..db397ef0a --- /dev/null +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/Messages.java @@ -0,0 +1,31 @@ +/**************************************************************************** + * 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 + *****************************************************************************/ + +package org.eclipse.ecf.internal.discovery; + +import org.eclipse.osgi.util.NLS; + +/** + * + */ +public class Messages extends NLS { + private static final String BUNDLE_NAME = "org.eclipse.ecf.internal.discovery.messages"; //$NON-NLS-1$ + public static String ServiceTypeID_EXCEPTION_SERVICE_TYPE_ID_NOT_NULL; + public static String ServiceTypeID_EXCEPTION_SERVICE_TYPE_ID_NOT_PARSEABLE; + static { + // initialize resource bundle + NLS.initializeMessages(BUNDLE_NAME, Messages.class); + } + + private Messages() { + // Nothing to do + } +} diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/messages.properties b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/messages.properties new file mode 100644 index 000000000..3ab8c19b9 --- /dev/null +++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/messages.properties @@ -0,0 +1,2 @@ +ServiceTypeID_EXCEPTION_SERVICE_TYPE_ID_NOT_NULL=ServiceTypeID cannot be null +ServiceTypeID_EXCEPTION_SERVICE_TYPE_ID_NOT_PARSEABLE=ServiceTypeID cannot be parsed |