Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkhorne2008-02-21 16:40:51 +0000
committerkhorne2008-02-21 16:40:51 +0000
commit6f4ecf6af194a882c2c3a6e237b05df132a269ce (patch)
treeb7adf8149454786cb416139913d09bcf5296f592 /bundles/org.eclipse.equinox.transforms.hook
parentf7453e33363cd2dd39194154411c4eae7ef5fad2 (diff)
downloadrt.equinox.bundles-6f4ecf6af194a882c2c3a6e237b05df132a269ce.tar.gz
rt.equinox.bundles-6f4ecf6af194a882c2c3a6e237b05df132a269ce.tar.xz
rt.equinox.bundles-6f4ecf6af194a882c2c3a6e237b05df132a269ce.zip
Bug 218422 - Graduating the transform bundles from the incubator
Diffstat (limited to 'bundles/org.eclipse.equinox.transforms.hook')
-rw-r--r--bundles/org.eclipse.equinox.transforms.hook/.settings/org.eclipse.jdt.core.prefs323
-rw-r--r--bundles/org.eclipse.equinox.transforms.hook/.settings/org.eclipse.jdt.ui.prefs58
-rw-r--r--bundles/org.eclipse.equinox.transforms.hook/META-INF/MANIFEST.MF1
-rw-r--r--bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/CSVParser.java (renamed from bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/CSVParser.java)67
-rw-r--r--bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/LazyInputStream.java (renamed from bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/LazyInputStream.java)21
-rw-r--r--bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/ProxyStreamTransformer.java (renamed from bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/ProxyStreamTransformer.java)23
-rw-r--r--bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/StreamTransformer.java32
-rw-r--r--bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformInstanceListData.java (renamed from bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformInstanceListData.java)95
-rw-r--r--bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformTuple.java (renamed from bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformTuple.java)12
-rw-r--r--bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformedBundleEntry.java (renamed from bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformedBundleEntry.java)32
-rw-r--r--bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformedBundleFile.java (renamed from bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformedBundleFile.java)76
-rw-r--r--bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformerHook.java (renamed from bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformerHook.java)42
-rw-r--r--bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformerList.java (renamed from bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformerList.java)57
-rw-r--r--bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/StreamTransformer.java21
14 files changed, 592 insertions, 268 deletions
diff --git a/bundles/org.eclipse.equinox.transforms.hook/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.transforms.hook/.settings/org.eclipse.jdt.core.prefs
index 6b778881e..78523cd05 100644
--- a/bundles/org.eclipse.equinox.transforms.hook/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.equinox.transforms.hook/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,331 @@
-#Fri Jan 11 11:05:05 EST 2008
+#Thu Aug 16 11:00:59 EDT 2007
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+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.unsafeTypeOperation=warning
+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/bundles/org.eclipse.equinox.transforms.hook/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.transforms.hook/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 000000000..1546d829a
--- /dev/null
+++ b/bundles/org.eclipse.equinox.transforms.hook/.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/bundles/org.eclipse.equinox.transforms.hook/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.transforms.hook/META-INF/MANIFEST.MF
index b2153f9fd..63b348c46 100644
--- a/bundles/org.eclipse.equinox.transforms.hook/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.transforms.hook/META-INF/MANIFEST.MF
@@ -7,4 +7,5 @@ Bundle-Version: 1.0.0.qualifier
Fragment-Host: org.eclipse.osgi;bundle-version="[3.2.0,4.0.0)"
Bundle-RequiredExecutionEnvironment: J2SE-1.4
Bundle-Localization: bundle
+Export-Package: org.eclipse.equinox.internal.transforms;x-internal:=true
diff --git a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/CSVParser.java b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/CSVParser.java
index a2e15a6a2..6f197ef40 100644
--- a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/CSVParser.java
+++ b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/CSVParser.java
@@ -9,56 +9,32 @@
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.equinox.transforms;
+package org.eclipse.equinox.internal.transforms;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
+import java.io.*;
import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.NoSuchElementException;
-import java.util.Properties;
-import java.util.StringTokenizer;
+import java.util.*;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
-
import org.eclipse.osgi.framework.log.FrameworkLogEntry;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
+/**
+ * This class is used by the transformer hook to parse urls provided by transform developers that specifies the particular transforms that should be utilized for a particular transformer.
+ * TODO: factor this out into a new type of service the transformer uses. Then there could be CSV transforms, programatic transforms, etc.
+ */
public class CSVParser {
/**
- * Utility method that transform providers may use to parse a CSV file
- * containing mappings between bundle/path regular expressions and
- * transformer urls. The resulting transforms are registered against the
- * provided type name.
- *
- * @param context
- * the bundle context on which to register the transforms
- * @param transformMapURL
- * the url to the CSV file
- * @param typeName
- * the name under which to register any transformations
- * @return the service registration corresponding to the transforms
- * registered from the contents of the CSV
- * @throws IOException
- * thrown if there are problems parsing the CSV file
+ * Parse the given url as a CSV file containing transform tuples. The tuples have the form:
+ * <pre>
+ * bundleRegex,pathRegex,transformerResource
+ * </pre>
+ * @param transformMapURL the map url
+ * @return an array of tuples derived from the contents of the file
+ * @throws IOException thrown if there are issues parsing the file
*/
- public static ServiceRegistration register(BundleContext context,
- URL transformMapURL, String typeName) throws IOException {
- Properties properties = new Properties();
- properties.setProperty(TransformTuple.TRANSFORMER_TYPE, typeName);
- TransformTuple[] transforms = parse(context, transformMapURL);
- return context.registerService(TransformTuple[].class.getName(),
- transforms, properties);
- }
-
- public static TransformTuple[] parse(BundleContext context,
- URL transformMapURL) throws IOException {
- BufferedReader reader = new BufferedReader(new InputStreamReader(
- transformMapURL.openStream()));
+ public static TransformTuple[] parse(URL transformMapURL) throws IOException {
+ BufferedReader reader = new BufferedReader(new InputStreamReader(transformMapURL.openStream()));
String currentLine = null;
List list = new ArrayList();
while ((currentLine = reader.readLine()) != null) {
@@ -74,8 +50,7 @@ public class CSVParser {
String pathPatternString = toker.nextToken().trim();
String transformPath = toker.nextToken().trim();
try {
- Pattern bundlePattern = Pattern
- .compile(bundlePatternString);
+ Pattern bundlePattern = Pattern.compile(bundlePatternString);
Pattern pathPattern = Pattern.compile(pathPatternString);
URL transformerURL = new URL(transformMapURL, transformPath);
try {
@@ -86,14 +61,10 @@ public class CSVParser {
tuple.transformerUrl = transformerURL;
list.add(tuple);
} catch (IOException e) {
- TransformerHook.log(
- FrameworkLogEntry.ERROR,
- "Could not add transform :" + transformerURL.toString(), e); //$NON-NLS-1$
+ TransformerHook.log(FrameworkLogEntry.ERROR, "Could not add transform :" + transformerURL.toString(), e); //$NON-NLS-1$
}
} catch (PatternSyntaxException e) {
- TransformerHook.log(
- FrameworkLogEntry.ERROR,
- "Could not add compile transform matching regular expression", e); //$NON-NLS-1$
+ TransformerHook.log(FrameworkLogEntry.ERROR, "Could not add compile transform matching regular expression", e); //$NON-NLS-1$
}
} catch (NoSuchElementException e) {
diff --git a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/LazyInputStream.java b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/LazyInputStream.java
index 9ab255736..1a5a4c21b 100644
--- a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/LazyInputStream.java
+++ b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/LazyInputStream.java
@@ -9,18 +9,28 @@
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.equinox.transforms;
+package org.eclipse.equinox.internal.transforms;
import java.io.IOException;
import java.io.InputStream;
+/**
+ * An input stream that is based off of another stream.
+ * This other stream is provided as needed by an {@link InputStreamProvider} so that the underlying stream is not eagerly loaded.
+ */
public class LazyInputStream extends InputStream {
private InputStreamProvider provider;
private InputStream original = null;
+ /**
+ * Construct a new lazy stream based off the given provider.
+ * @param provider the input stream provider. Must not be <code>null</code>.
+ */
public LazyInputStream(InputStreamProvider provider) {
+ if (provider == null)
+ throw new IllegalArgumentException();
this.provider = provider;
}
@@ -109,7 +119,16 @@ public class LazyInputStream extends InputStream {
}
}
+ /**
+ * An interface to be implemented by clients that wish to utilize {@link LazyInputStream}s.
+ * The implementation of this interface should defer obtaining the desired input stream until absolutely necessary.
+ */
public static interface InputStreamProvider {
+ /**
+ * Return the input stream.
+ * @return the input stream
+ * @throws IOException thrown if there is an issue obtaining the stream
+ */
InputStream getInputStream() throws IOException;
}
}
diff --git a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/ProxyStreamTransformer.java b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/ProxyStreamTransformer.java
index 34eb8bddc..8ff88abab 100644
--- a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/ProxyStreamTransformer.java
+++ b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/ProxyStreamTransformer.java
@@ -9,7 +9,7 @@
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.equinox.transforms;
+package org.eclipse.equinox.internal.transforms;
import java.io.IOException;
import java.io.InputStream;
@@ -17,22 +17,31 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URL;
+/**
+ * A proxy stream transformer is a transformer instance that relies on reflection to obtain the "getInputStream" method from an underlying object.
+ * This class is useful due to the restrictions in the builder that prevent transformer providers from directly implementing {@link StreamTransformer} due to visibility and builder issues related to referring to classes within fragments.
+ */
public class ProxyStreamTransformer extends StreamTransformer {
private Method method;
private Object object;
+ /**
+ * Create a new proxy transformer based on the given object.
+ * @param object the object to proxy
+ * @throws SecurityException thrown if there is an issue utilizing the reflection methods
+ * @throws NoSuchMethodException thrown if the provided object does not have a "getInputStream" method that takes an {@link InputStream} and an {@link URL}
+ */
public ProxyStreamTransformer(Object object) throws SecurityException, NoSuchMethodException {
this.object = object;
method = object.getClass().getMethod("getInputStream", new Class[] {InputStream.class, URL.class}); //$NON-NLS-1$
Class returnType = method.getReturnType();
if (!returnType.equals(InputStream.class))
throw new NoSuchMethodException();
-
+
}
- public InputStream getInputStream(InputStream inputStream,
- URL transformerUrl) throws IOException {
+ public InputStream getInputStream(InputStream inputStream, URL transformerUrl) throws IOException {
try {
return (InputStream) method.invoke(object, new Object[] {inputStream, transformerUrl});
} catch (IllegalArgumentException e) {
@@ -41,11 +50,15 @@ public class ProxyStreamTransformer extends StreamTransformer {
throw new IOException(e.getMessage());
} catch (InvocationTargetException e) {
if (e.getCause() instanceof IOException)
- throw (IOException)e.getCause();
+ throw (IOException) e.getCause();
}
return null;
}
+ /**
+ * Get the object that is being proxied.
+ * @return the object. Never <code>null</code>.
+ */
public Object getTransformer() {
return object;
}
diff --git a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/StreamTransformer.java b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/StreamTransformer.java
new file mode 100644
index 000000000..95f124a93
--- /dev/null
+++ b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/StreamTransformer.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2008 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
+ *******************************************************************************/
+
+package org.eclipse.equinox.internal.transforms;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
+/**
+ * This class represents the fundamental building block of the transformer system.
+ * Implementations of this class are capable of transforming an input stream based on a given transformer url.
+ * The meaning and content of this URL are unspecified - it is the transformers responsibility to interpret these as need be.
+ */
+public abstract class StreamTransformer {
+ /**
+ * Provided a transformed version of the provided input stream.
+ * @param inputStream the original stream
+ * @param transformerUrl an url that may be used by the transformer in determining the proper transform to invoke.
+ * @return the transformed stream
+ * @throws IOException thrown if there is an issue invoking the transform
+ */
+ public abstract InputStream getInputStream(InputStream inputStream, URL transformerUrl) throws IOException;
+}
diff --git a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformInstanceListData.java b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformInstanceListData.java
index 4966cdfd0..b7dc28aa9 100644
--- a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformInstanceListData.java
+++ b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformInstanceListData.java
@@ -9,30 +9,20 @@
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.equinox.transforms;
+package org.eclipse.equinox.internal.transforms;
import java.io.IOException;
import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
+import java.util.*;
+import org.osgi.framework.*;
import org.osgi.util.tracker.ServiceTracker;
/**
- * Class that represents a dynamic list of TransformTuples that have been
- * registered against a particular transform type.
+ * Class that represents a dynamic list of TransformTuples that have been registered against a particular transform type.
*/
public class TransformInstanceListData extends ServiceTracker {
/**
- * Stale state of the transform list. Set to true whenever one of the
- * ServiceTrackerCustomization methods are invoked.
+ * Stale state of the transform list. Set to true whenever one of the ServiceTrackerCustomization methods are invoked.
*/
private volatile boolean stale = true;
@@ -47,25 +37,16 @@ public class TransformInstanceListData extends ServiceTracker {
private List rawTuples = new ArrayList();
/**
- * Map from bundle ID -> boolean representing whether or not a given bundle
- * currently has any transforms registered against it.
+ * Map from bundle ID -> boolean representing whether or not a given bundle currently has any transforms registered against it.
*/
private Map bundleIdToTransformPresence = new HashMap();
/**
- * Create a new transform list bound to the given context. If new transforms
- * are registered against the given context the contents of this list will
- * change.
- *
- * @param context
- * the bundle context
- *
- * @throws InvalidSyntaxException
- * thrown if there's an issue listening for changes to the given
- * transformer type
+ * Create a new transform list bound to the given context. If new transforms are registered against the given context the contents of this list will change.
+ * @param context the bundle context
+ * @throws InvalidSyntaxException thrown if there's an issue listening for changes to the given transformer type
*/
- public TransformInstanceListData(BundleContext context)
- throws InvalidSyntaxException {
+ public TransformInstanceListData(BundleContext context) throws InvalidSyntaxException {
super(context, context.createFilter("(&(objectClass=" //$NON-NLS-1$
+ URL.class.getName() + ")(" + TransformTuple.TRANSFORMER_TYPE //$NON-NLS-1$
+ "=*))"), null); //$NON-NLS-1$
@@ -73,13 +54,10 @@ public class TransformInstanceListData extends ServiceTracker {
}
/**
- * Return the transforms currently held by this list. If a change has been
- * detected since the last request this list will be rebuilt.
- *
+ * Return the transforms currently held by this list. If a change has been detected since the last request this list will be rebuilt.
* @return the transforms currently held by this list
*/
- public synchronized TransformTuple[] getTransformsFor(
- String transformerClass) {
+ public synchronized TransformTuple[] getTransformsFor(String transformerClass) {
if (stale)
rebuildTransformMap();
@@ -87,12 +65,8 @@ public class TransformInstanceListData extends ServiceTracker {
}
/**
- * Return whether or not there are any transforms who's bundle pattern
- * matches the ID of the provided bundle. Only transforms with a present
- * transform handler are considered during the invocation of this method.
- *
- * @param bundle
- * the bundle to test
+ * Return whether or not there are any transforms who's bundle pattern matches the ID of the provided bundle. Only transforms with a present transform handler are considered during the invocation of this method.
+ * @param bundle the bundle to test
* @return the presence of associated transforms.
*/
public synchronized boolean hasTransformsFor(Bundle bundle) {
@@ -100,8 +74,7 @@ public class TransformInstanceListData extends ServiceTracker {
rebuildTransformMap();
String bundleName = bundle.getSymbolicName();
- Boolean hasTransformsFor = (Boolean) bundleIdToTransformPresence
- .get(bundleName);
+ Boolean hasTransformsFor = (Boolean) bundleIdToTransformPresence.get(bundleName);
if (hasTransformsFor == null) {
hasTransformsFor = Boolean.FALSE;
@@ -118,6 +91,9 @@ public class TransformInstanceListData extends ServiceTracker {
return hasTransformsFor.booleanValue();
}
+ /**
+ * Consults the bundle context for services of the transformer type type and builds the internal cache.
+ */
private void rebuildTransformMap() {
transformerToTuple.clear();
rawTuples.clear();
@@ -130,22 +106,17 @@ public class TransformInstanceListData extends ServiceTracker {
for (int i = 0; i < serviceReferences.length; i++) {
ServiceReference serviceReference = serviceReferences[i];
- String type = serviceReference.getProperty(
- TransformTuple.TRANSFORMER_TYPE).toString();
+ String type = serviceReference.getProperty(TransformTuple.TRANSFORMER_TYPE).toString();
URL url = (URL) getService(serviceReference);
TransformTuple[] transforms;
try {
- transforms = CSVParser.parse(context, url);
- TransformTuple[] existing = (TransformTuple[]) transformerToTuple
- .get(type);
+ transforms = CSVParser.parse(url);
+ TransformTuple[] existing = (TransformTuple[]) transformerToTuple.get(type);
if (existing != null) {
- TransformTuple[] newTransforms = new TransformTuple[existing.length
- + transforms.length];
- System.arraycopy(existing, 0, newTransforms, 0,
- existing.length);
- System.arraycopy(transforms, 0, newTransforms,
- existing.length, transforms.length);
+ TransformTuple[] newTransforms = new TransformTuple[existing.length + transforms.length];
+ System.arraycopy(existing, 0, newTransforms, 0, existing.length);
+ System.arraycopy(transforms, 0, newTransforms, existing.length, transforms.length);
transformerToTuple.put(type, newTransforms);
} else
transformerToTuple.put(type, transforms);
@@ -160,11 +131,6 @@ public class TransformInstanceListData extends ServiceTracker {
}
}
- /*
- * (non-Javadoc)
- *
- * @see org.osgi.util.tracker.ServiceTracker#addingService(org.osgi.framework.ServiceReference)
- */
public Object addingService(ServiceReference reference) {
try {
return super.addingService(reference);
@@ -173,26 +139,13 @@ public class TransformInstanceListData extends ServiceTracker {
}
}
- /*
- * (non-Javadoc)
- *
- * @see org.osgi.util.tracker.ServiceTracker#modifiedService(org.osgi.framework.ServiceReference,
- * java.lang.Object)
- */
public void modifiedService(ServiceReference reference, Object service) {
super.modifiedService(reference, service);
stale = true;
}
- /*
- * (non-Javadoc)
- *
- * @see org.osgi.util.tracker.ServiceTracker#removedService(org.osgi.framework.ServiceReference,
- * java.lang.Object)
- */
public void removedService(ServiceReference reference, Object service) {
super.removedService(reference, service);
stale = true;
}
-
} \ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformTuple.java b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformTuple.java
index 7b35463a3..2867129cf 100644
--- a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformTuple.java
+++ b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformTuple.java
@@ -9,24 +9,20 @@
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.equinox.transforms;
+package org.eclipse.equinox.internal.transforms;
import java.net.URL;
import java.util.regex.Pattern;
/**
- * Class that represents an association between a bundle pattern, a path
- * pattern, and the location of a transformer to apply to any resource that
- * matches both the bundle and path pattern.
+ * Class that represents an association between a bundle pattern, a path pattern, and the location of a transformer to apply to any resource that matches both the bundle and path pattern.
*/
public class TransformTuple {
-
+
/**
- * Constant used when registering transform tuples to identify the type of
- * transformer they should be assigned to.
+ * Constant used when registering transform tuples to identify the type of transformer they should be assigned to.
*/
public static final String TRANSFORMER_TYPE = "transformerType"; //$NON-NLS-1$
-
public Pattern bundlePattern;
public Pattern pathPattern;
public URL transformerUrl;
diff --git a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformedBundleEntry.java b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformedBundleEntry.java
index 170e4d591..6a73d4425 100644
--- a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformedBundleEntry.java
+++ b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformedBundleEntry.java
@@ -9,19 +9,17 @@
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.equinox.transforms;
+package org.eclipse.equinox.internal.transforms;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
-
import org.eclipse.osgi.baseadaptor.bundlefile.BundleEntry;
import org.eclipse.osgi.framework.log.FrameworkLogEntry;
+/**
+ * This class is capable of providing a transformed version of an entry contained within a base bundle entity.
+ */
public class TransformedBundleEntry extends BundleEntry {
long timestamp;
@@ -29,8 +27,13 @@ public class TransformedBundleEntry extends BundleEntry {
private BundleEntry original;
private TransformedBundleFile bundleFile;
- public TransformedBundleEntry(TransformedBundleFile bundleFile,
- BundleEntry original, InputStream wrappedStream) {
+ /**
+ * Create a wrapped bundle entry. Calls to obtain the content of this entry will be resolved via the provided input stream rather than the original.
+ * @param bundleFile the host bundle file
+ * @param original the original entry
+ * @param wrappedStream the override stream
+ */
+ public TransformedBundleEntry(TransformedBundleFile bundleFile, BundleEntry original, InputStream wrappedStream) {
this.stream = wrappedStream;
this.bundleFile = bundleFile;
this.original = original;
@@ -48,7 +51,7 @@ public class TransformedBundleEntry extends BundleEntry {
return null;
}
- public InputStream getInputStream() throws IOException {
+ public InputStream getInputStream() {
return stream;
}
@@ -60,6 +63,10 @@ public class TransformedBundleEntry extends BundleEntry {
return original.getName();
}
+ /**
+ * Obtaining the size means inspecting the transformed stream.
+ * If this stream does not support marks the stream is drained and a copy is retained for later use.
+ */
public long getSize() {
ByteArrayOutputStream tempBuffer = new ByteArrayOutputStream(1024);
byte[] buffer = new byte[1024];
@@ -78,9 +85,8 @@ public class TransformedBundleEntry extends BundleEntry {
stream = new ByteArrayInputStream(tempBuffer.toByteArray());
}
} catch (IOException e) {
- TransformerHook.log(FrameworkLogEntry.ERROR,
- "Problem calculating size of stream for file. Stream may now be corrupted : " //$NON-NLS-1$
- + getName(), e);
+ TransformerHook.log(FrameworkLogEntry.ERROR, "Problem calculating size of stream for file. Stream may now be corrupted : " //$NON-NLS-1$
+ + getName(), e);
}
return tempBuffer.size();
diff --git a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformedBundleFile.java b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformedBundleFile.java
index c1379284b..038bb7fe8 100644
--- a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformedBundleFile.java
+++ b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformedBundleFile.java
@@ -9,20 +9,15 @@
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.equinox.transforms;
+package org.eclipse.equinox.internal.transforms;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.*;
import java.util.Enumeration;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-
-import org.eclipse.equinox.transforms.LazyInputStream.InputStreamProvider;
+import org.eclipse.equinox.internal.transforms.LazyInputStream.InputStreamProvider;
import org.eclipse.osgi.baseadaptor.BaseData;
-import org.eclipse.osgi.baseadaptor.bundlefile.BundleEntry;
-import org.eclipse.osgi.baseadaptor.bundlefile.BundleFile;
-import org.eclipse.osgi.baseadaptor.bundlefile.ZipBundleFile;
+import org.eclipse.osgi.baseadaptor.bundlefile.*;
import org.eclipse.osgi.framework.debug.Debug;
import org.eclipse.osgi.framework.log.FrameworkLogEntry;
import org.eclipse.osgi.internal.baseadaptor.AdaptorMsg;
@@ -30,6 +25,10 @@ import org.eclipse.osgi.internal.baseadaptor.AdaptorUtil;
import org.eclipse.osgi.util.NLS;
import org.osgi.framework.Bundle;
+/**
+ * This class is capable of providing transformed versions of entries contained within a base bundle file.
+ * For requests that transform bundle contents into local resources (such as file URLs) the transformed state of the bundle is written to the configuration area.
+ */
public class TransformedBundleFile extends BundleFile {
private BundleFile delegate;
@@ -37,9 +36,15 @@ public class TransformedBundleFile extends BundleFile {
private TransformerList transformers;
private TransformInstanceListData templates;
- public TransformedBundleFile(TransformerList transformers,
- TransformInstanceListData templates, BaseData data,
- BundleFile delegate) {
+ /**
+ * Create a wrapped bundle file.
+ * Requests into this file will be compared to the list of known transformers and transformer templates and if there's a match the transformed entity is returned instead of the original.
+ * @param transformers the list of known transformers
+ * @param templates the list of known templates
+ * @param data the original data
+ * @param delegate the original file
+ */
+ public TransformedBundleFile(TransformerList transformers, TransformInstanceListData templates, BaseData data, BundleFile delegate) {
this.transformers = transformers;
this.templates = templates;
this.data = data;
@@ -74,8 +79,7 @@ public class TransformedBundleFile extends BundleFile {
return original.getInputStream();
}
});
- InputStream wrappedStream = getInputStream(stream, data.getBundle(),
- path);
+ InputStream wrappedStream = getInputStream(stream, data.getBundle(), path);
if (wrappedStream == null)
return original;
return new TransformedBundleEntry(this, original, wrappedStream);
@@ -91,31 +95,24 @@ public class TransformedBundleFile extends BundleFile {
* the resource representing the transformer
* @return the transformed stream
*/
- protected InputStream getInputStream(InputStream inputStream,
- Bundle bundle, String path) {
+ protected InputStream getInputStream(InputStream inputStream, Bundle bundle, String path) {
String namespace = bundle.getSymbolicName();
StreamTransformer[] transformerArray = transformers.getTransformers();
for (int i = 0; i < transformerArray.length; i++) {
StreamTransformer transformer = transformerArray[i];
- Object toTest = transformer instanceof ProxyStreamTransformer ? ((ProxyStreamTransformer) transformer)
- .getTransformer()
- : transformer;
+ Object toTest = transformer instanceof ProxyStreamTransformer ? ((ProxyStreamTransformer) transformer).getTransformer() : transformer;
- TransformTuple[] transforms = templates.getTransformsFor(toTest
- .getClass().getName());
+ TransformTuple[] transforms = templates.getTransformsFor(toTest.getClass().getName());
if (transforms == null)
return null;
for (int j = 0; j < transforms.length; j++) {
TransformTuple transformTuple = transforms[j];
- if (match(transformTuple.bundlePattern, namespace)
- && match(transformTuple.pathPattern, path)) {
+ if (match(transformTuple.bundlePattern, namespace) && match(transformTuple.pathPattern, path)) {
try {
- return transformer.getInputStream(inputStream,
- transformTuple.transformerUrl);
+ return transformer.getInputStream(inputStream, transformTuple.transformerUrl);
} catch (IOException e) {
- TransformerHook.log(FrameworkLogEntry.ERROR,
- "Problem obtaining transformed stream from transformer : " //$NON-NLS-1$
- + transformer.getClass().getName(), e);
+ TransformerHook.log(FrameworkLogEntry.ERROR, "Problem obtaining transformed stream from transformer : " //$NON-NLS-1$
+ + transformer.getClass().getName(), e);
}
}
}
@@ -157,8 +154,7 @@ public class TransformedBundleFile extends BundleFile {
if (nested.exists()) {
/* the entry is already cached */
if (Debug.DEBUG && Debug.DEBUG_GENERAL)
- Debug
- .println("File already present: " + nested.getPath()); //$NON-NLS-1$
+ Debug.println("File already present: " + nested.getPath()); //$NON-NLS-1$
if (nested.isDirectory())
// must ensure the complete directory is extracted (bug
// 182585)
@@ -170,13 +166,8 @@ public class TransformedBundleFile extends BundleFile {
if (original.isDirectory()) {
if (!nested.mkdirs()) {
if (Debug.DEBUG && Debug.DEBUG_GENERAL)
- Debug
- .println("Unable to create directory: " + nested.getPath()); //$NON-NLS-1$
- throw new IOException(
- NLS
- .bind(
- AdaptorMsg.ADAPTOR_DIRECTORY_CREATE_EXCEPTION,
- nested.getAbsolutePath()));
+ Debug.println("Unable to create directory: " + nested.getPath()); //$NON-NLS-1$
+ throw new IOException(NLS.bind(AdaptorMsg.ADAPTOR_DIRECTORY_CREATE_EXCEPTION, nested.getAbsolutePath()));
}
extractDirectory(path);
} else {
@@ -191,13 +182,8 @@ public class TransformedBundleFile extends BundleFile {
File dir = new File(nested.getParent());
if (!dir.exists() && !dir.mkdirs()) {
if (Debug.DEBUG && Debug.DEBUG_GENERAL)
- Debug
- .println("Unable to create directory: " + dir.getPath()); //$NON-NLS-1$
- throw new IOException(
- NLS
- .bind(
- AdaptorMsg.ADAPTOR_DIRECTORY_CREATE_EXCEPTION,
- dir.getAbsolutePath()));
+ Debug.println("Unable to create directory: " + dir.getPath()); //$NON-NLS-1$
+ throw new IOException(NLS.bind(AdaptorMsg.ADAPTOR_DIRECTORY_CREATE_EXCEPTION, dir.getAbsolutePath()));
}
/* copy the entry to the cache */
AdaptorUtil.readFile(in, nested);
@@ -246,7 +232,7 @@ public class TransformedBundleFile extends BundleFile {
while (entries.hasMoreElements()) {
String entryPath = (String) entries.nextElement();
- if (entryPath.startsWith(dirName))
+ if (entryPath.startsWith(dirName))
getFile(entryPath, false);
}
return getExtractFile(dirName);
diff --git a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformerHook.java b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformerHook.java
index af6d42851..255c8b51a 100644
--- a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformerHook.java
+++ b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformerHook.java
@@ -9,38 +9,32 @@
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.equinox.transforms;
+package org.eclipse.equinox.internal.transforms;
import java.io.IOException;
import java.net.URLConnection;
import java.util.Properties;
-
-import org.eclipse.osgi.baseadaptor.BaseAdaptor;
-import org.eclipse.osgi.baseadaptor.BaseData;
-import org.eclipse.osgi.baseadaptor.HookConfigurator;
-import org.eclipse.osgi.baseadaptor.HookRegistry;
+import org.eclipse.osgi.baseadaptor.*;
import org.eclipse.osgi.baseadaptor.bundlefile.BundleFile;
import org.eclipse.osgi.baseadaptor.hooks.AdaptorHook;
import org.eclipse.osgi.baseadaptor.hooks.BundleFileWrapperFactoryHook;
import org.eclipse.osgi.framework.adaptor.FrameworkAdaptor;
import org.eclipse.osgi.framework.log.FrameworkLog;
import org.eclipse.osgi.framework.log.FrameworkLogEntry;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.*;
-public class TransformerHook implements BundleFileWrapperFactoryHook,
- HookConfigurator, AdaptorHook {
+/**
+ * The framework extension that is capable of applying transforms to bundle content.
+ */
+public class TransformerHook implements BundleFileWrapperFactoryHook, HookConfigurator, AdaptorHook {
private TransformerList transformers;
private TransformInstanceListData templates;
private static BaseAdaptor ADAPTOR;
- public BundleFile wrapBundleFile(BundleFile bundleFile, Object content,
- BaseData data, boolean base) throws IOException {
+ public BundleFile wrapBundleFile(BundleFile bundleFile, Object content, BaseData data, boolean base) throws IOException {
if (transformers == null || templates == null)
return null;
- return new TransformedBundleFile(transformers, templates, data,
- bundleFile);
+ return new TransformedBundleFile(transformers, templates, data, bundleFile);
}
public void addHooks(HookRegistry hookRegistry) {
@@ -49,6 +43,7 @@ public class TransformerHook implements BundleFileWrapperFactoryHook,
}
public void addProperties(Properties properties) {
+ // no properties to add
}
public FrameworkLog createFrameworkLog() {
@@ -59,21 +54,19 @@ public class TransformerHook implements BundleFileWrapperFactoryHook,
try {
this.transformers = new TransformerList(context);
} catch (InvalidSyntaxException e) {
- throw new BundleException(
- "Problem registering service tracker: transformers", e);
+ throw new BundleException("Problem registering service tracker: transformers", e); //$NON-NLS-1$
}
try {
this.templates = new TransformInstanceListData(context);
} catch (InvalidSyntaxException e) {
transformers.close();
transformers = null;
- throw new BundleException(
- "Problem registering service tracker: templates", e);
+ throw new BundleException("Problem registering service tracker: templates", e); //$NON-NLS-1$
}
}
- public void frameworkStop(BundleContext context) throws BundleException {
+ public void frameworkStop(BundleContext context) {
transformers.close();
templates.close();
}
@@ -83,17 +76,18 @@ public class TransformerHook implements BundleFileWrapperFactoryHook,
}
public void frameworkStopping(BundleContext context) {
+ //nothing to do here
}
public void handleRuntimeError(Throwable error) {
+ //no special handling by this framework extension
}
public void initialize(BaseAdaptor adaptor) {
TransformerHook.ADAPTOR = adaptor;
}
- public URLConnection mapLocationToURLConnection(String location)
- throws IOException {
+ public URLConnection mapLocationToURLConnection(String location) {
return null;
}
@@ -107,9 +101,7 @@ public class TransformerHook implements BundleFileWrapperFactoryHook,
t.printStackTrace();
return;
}
- FrameworkLogEntry entry = new FrameworkLogEntry(
- FrameworkAdaptor.FRAMEWORK_SYMBOLICNAME, severity, 0, msg, 0,
- t, null);
+ FrameworkLogEntry entry = new FrameworkLogEntry(FrameworkAdaptor.FRAMEWORK_SYMBOLICNAME, severity, 0, msg, 0, t, null);
TransformerHook.ADAPTOR.getFrameworkLog().log(entry);
}
}
diff --git a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformerList.java b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformerList.java
index 515a5db1a..b90b4f050 100644
--- a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/TransformerList.java
+++ b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/internal/transforms/TransformerList.java
@@ -9,27 +9,44 @@
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.equinox.transforms;
+package org.eclipse.equinox.internal.transforms;
import java.util.ArrayList;
-
import org.eclipse.osgi.framework.log.FrameworkLogEntry;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
+import org.osgi.framework.*;
import org.osgi.util.tracker.ServiceTracker;
+/**
+ * A dynamic list of transformers.
+ */
public class TransformerList extends ServiceTracker {
+ /**
+ * The stale state of this list. Set to true every time a new matching service instance is detected.
+ */
private volatile boolean stale = true;
+
+ /**
+ * Local cache of transformers.
+ */
private StreamTransformer[] transformers;
+ /**
+ * Create a new instance of this list.
+ * @param context the context to track
+ * @throws InvalidSyntaxException thrown if there's an issue listening for changes to the given transformer type
+ */
public TransformerList(BundleContext context) throws InvalidSyntaxException {
super(context, context.createFilter("(objectClass=" //$NON-NLS-1$
+ Object.class.getName() + ')'), null);
open();
}
+ /**
+ * Return the transformers being monitored by this list.
+ * If the list is stale it will first be rebuilt.
+ * @return the transformers.
+ */
public synchronized StreamTransformer[] getTransformers() {
if (stale) {
rebuildTransformerArray();
@@ -37,6 +54,9 @@ public class TransformerList extends ServiceTracker {
return transformers;
}
+ /**
+ * Consults the bundle context for services of the transformer type and builds the internal cache.
+ */
private void rebuildTransformerArray() {
Object[] services = getServices();
stale = false;
@@ -49,31 +69,22 @@ public class TransformerList extends ServiceTracker {
if (object instanceof StreamTransformer)
transformerList.add(object);
else {
-
ProxyStreamTransformer transformer;
try {
transformer = new ProxyStreamTransformer(object);
transformerList.add(transformer);
} catch (SecurityException e) {
- TransformerHook.log(FrameworkLogEntry.ERROR,
- "Problem creating transformer", e); //$NON-NLS-1$
+ TransformerHook.log(FrameworkLogEntry.ERROR, "Problem creating transformer", e); //$NON-NLS-1$
} catch (NoSuchMethodException e) {
- TransformerHook.log(FrameworkLogEntry.ERROR,
- "Problem creating transformer", e); //$NON-NLS-1$
+ TransformerHook.log(FrameworkLogEntry.ERROR, "Problem creating transformer", e); //$NON-NLS-1$
}
}
}
- this.transformers = (StreamTransformer[]) transformerList
- .toArray(new StreamTransformer[transformerList.size()]);
+ this.transformers = (StreamTransformer[]) transformerList.toArray(new StreamTransformer[transformerList.size()]);
}
}
- /*
- * (non-Javadoc)
- *
- * @see org.osgi.util.tracker.ServiceTracker#addingService(org.osgi.framework.ServiceReference)
- */
public Object addingService(ServiceReference reference) {
try {
return super.addingService(reference);
@@ -82,23 +93,11 @@ public class TransformerList extends ServiceTracker {
}
}
- /*
- * (non-Javadoc)
- *
- * @see org.osgi.util.tracker.ServiceTracker#modifiedService(org.osgi.framework.ServiceReference,
- * java.lang.Object)
- */
public void modifiedService(ServiceReference reference, Object service) {
super.modifiedService(reference, service);
stale = true;
}
- /*
- * (non-Javadoc)
- *
- * @see org.osgi.util.tracker.ServiceTracker#removedService(org.osgi.framework.ServiceReference,
- * java.lang.Object)
- */
public void removedService(ServiceReference reference, Object service) {
super.removedService(reference, service);
stale = true;
diff --git a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/StreamTransformer.java b/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/StreamTransformer.java
deleted file mode 100644
index f1e7f8f95..000000000
--- a/bundles/org.eclipse.equinox.transforms.hook/src/org/eclipse/equinox/transforms/StreamTransformer.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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
- *******************************************************************************/
-
-package org.eclipse.equinox.transforms;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-public abstract class StreamTransformer {
- public abstract InputStream getInputStream(InputStream inputStream,
- URL transformerUrl) throws IOException;
-}

Back to the top