diff options
| author | hmalphettes | 2011-10-17 18:27:44 +0000 |
|---|---|---|
| committer | Thomas Watson | 2011-10-17 18:27:44 +0000 |
| commit | a18668e8865ae512d2e3fdf2397c95acd64b0275 (patch) | |
| tree | 12d732fe1caa5c0a1f240d862832afeb6042917e | |
| parent | 74d3bf16ff8a135cd1916c3a581e4de875211c94 (diff) | |
| download | rt.equinox.bundles-a18668e8865ae512d2e3fdf2397c95acd64b0275.tar.gz rt.equinox.bundles-a18668e8865ae512d2e3fdf2397c95acd64b0275.tar.xz rt.equinox.bundles-a18668e8865ae512d2e3fdf2397c95acd64b0275.zip | |
Bug 309529 - Migrate equinox to jetty8 v20111017-1643
19 files changed, 1726 insertions, 0 deletions
diff --git a/bundles/org.eclipse.equinox.http.jetty8/.classpath b/bundles/org.eclipse.equinox.http.jetty8/.classpath new file mode 100644 index 000000000..ce7393340 --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/.classpath @@ -0,0 +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/J2SE-1.4"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/bundles/org.eclipse.equinox.http.jetty8/.project b/bundles/org.eclipse.equinox.http.jetty8/.project new file mode 100644 index 000000000..7fc5ac165 --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/.project @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.equinox.http.jetty8</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature> + </natures> +</projectDescription> diff --git a/bundles/org.eclipse.equinox.http.jetty8/.settings/.api_filters b/bundles/org.eclipse.equinox.http.jetty8/.settings/.api_filters new file mode 100644 index 000000000..736d67ce1 --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/.settings/.api_filters @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<component id="org.eclipse.equinox.http.jetty6" version="2"> + <resource path="src/org/eclipse/equinox/http/jetty/JettyConstants.java" type="org.eclipse.equinox.http.jetty.JettyConstants"> + <filter id="1209008130"> + <message_arguments> + <message_argument value="1.1"/> + <message_argument value="2.0"/> + <message_argument value="CUSTOMIZER_CLASS"/> + </message_arguments> + </filter> + <filter id="1209008130"> + <message_arguments> + <message_argument value="1.1"/> + <message_argument value="2.0"/> + <message_argument value="HTTP_NIO"/> + </message_arguments> + </filter> + </resource> + <resource path="src/org/eclipse/equinox/http/jetty/JettyCustomizer.java" type="org.eclipse.equinox.http.jetty.JettyCustomizer"> + <filter id="1108344834"> + <message_arguments> + <message_argument value="1.1"/> + <message_argument value="2.0"/> + <message_argument value="org.eclipse.equinox.http.jetty.JettyCustomizer"/> + </message_arguments> + </filter> + </resource> +</component> diff --git a/bundles/org.eclipse.equinox.http.jetty8/.settings/.svn/entries b/bundles/org.eclipse.equinox.http.jetty8/.settings/.svn/entries new file mode 100644 index 000000000..bc56382d4 --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/.settings/.svn/entries @@ -0,0 +1,49 @@ +10 + +dir +0 +svn+ssh://hmalphett@dev.eclipse.org/svnroot/rt/org.eclipse.jetty/eclipse/trunk/equinox-incubation/bundles/org.eclipse.equinox.http.jetty7/.settings +svn+ssh://hmalphett@dev.eclipse.org/svnroot/rt/org.eclipse.jetty +add + + + + + + + + + + + + + + + + + + + +7e9141cc-0065-0410-87d8-b60c137991c4 + +.api_filters +file + + + +add + +org.eclipse.jdt.core.prefs +file + + + +add + +org.eclipse.jdt.ui.prefs +file + + + +add + diff --git a/bundles/org.eclipse.equinox.http.jetty8/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.http.jetty8/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..43e642593 --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,329 @@ +#Fri Jan 23 14:33:36 CST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.builder.cleanOutputFolder=clean +org.eclipse.jdt.core.builder.duplicateResourceTask=warning +org.eclipse.jdt.core.builder.invalidClasspath=abort +org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch +org.eclipse.jdt.core.circularClasspath=error +org.eclipse.jdt.core.classpath.exclusionPatterns=enabled +org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.4 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.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_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.http.jetty8/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.http.jetty8/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000..2939a483a --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,57 @@ +#Tue Aug 21 11:29:42 CDT 2007 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_profile=_core +formatter_settings_version=11 +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder=; +org.eclipse.jdt.ui.ondemandthreshold=3 +org.eclipse.jdt.ui.staticondemandthreshold=3 +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.http.jetty8/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.http.jetty8/META-INF/MANIFEST.MF new file mode 100755 index 000000000..0a0abb406 --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/META-INF/MANIFEST.MF @@ -0,0 +1,32 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %bundleName +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-SymbolicName: org.eclipse.equinox.http.jetty +Bundle-Version: 3.0.0.qualifier +Bundle-Activator: org.eclipse.equinox.http.jetty.internal.Activator +Import-Package: javax.servlet;version="[3.0.0,4.0.0)", + javax.servlet.http;version="[3.0.0,4.0.0)", + org.eclipse.equinox.http.servlet;version="1.0.0", + org.eclipse.jetty.http;version="[8.0.0,9.0.0)", + org.eclipse.jetty.io.bio;version="[8.0.0,9.0.0)", + org.eclipse.jetty.io.nio;version="[8.0.0,9.0.0)", + org.eclipse.jetty.server;version="[8.0.0,9.0.0)", + org.eclipse.jetty.server.bio;version="[8.0.0,9.0.0)", + org.eclipse.jetty.server.handler;version="[8.0.0,9.0.0)", + org.eclipse.jetty.server.nio;version="[8.0.0,9.0.0)", + org.eclipse.jetty.server.session;version="[8.0.0,9.0.0)", + org.eclipse.jetty.server.ssl;version="[8.0.0,9.0.0)", + org.eclipse.jetty.servlet;version="[8.0.0,9.0.0)", + org.eclipse.jetty.util;version="[8.0.0,9.0.0)", + org.eclipse.jetty.util.component;version="[8.0.0,9.0.0)", + org.eclipse.jetty.util.log;version="[8.0.0,9.0.0)", + org.osgi.framework;version="1.3.0", + org.osgi.service.cm;version="1.2.0", + org.osgi.service.startlevel;version="1.0" +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.eclipse.equinox.http.jetty;version="1.1.0" +Comment-Header: Both Eclipse-LazyStart and Bundle-ActivationPolicy are specified for compatibility with 3.2 +Eclipse-LazyStart: true +Bundle-ActivationPolicy: lazy diff --git a/bundles/org.eclipse.equinox.http.jetty8/OSGI-INF/metatype/config.xml b/bundles/org.eclipse.equinox.http.jetty8/OSGI-INF/metatype/config.xml new file mode 100755 index 000000000..cb766a9d7 --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/OSGI-INF/metatype/config.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<MetaData xmlns="http://www.osgi.org/xmlns/metatype/v1.0.0"> + <OCD name="%configurationName" id="server.config" description="%configurationDescription"> + <AD id="http.enabled" type="Boolean" default="true"/> + <AD id="http.port" type="Integer" default="0"/> + <AD id="http.host" type="String" cardinality="1"/> + <AD id="http.nio" type="Boolean" default="true"/> + <AD id="https.enabled" type="Boolean" default="false"/> + <AD id="https.port" type="Integer" default="0"/> + <AD id="https.host" type="String" cardinality="1"/> + <AD id="ssl.keystore" type="String" cardinality="1"/> + <AD id="ssl.password" type="String" cardinality="1"/> + <AD id="ssl.keypassword" type="String" cardinality="1"/> + <AD id="ssl.needclientauth" type="Boolean" cardinality="1"/> + <AD id="ssl.wantclientauth" type="Boolean" cardinality="1"/> + <AD id="ssl.protocol" type="String" cardinality="1"/> + <AD id="ssl.algorithm" type="String" cardinality="1"/> + <AD id="ssl.keystoretype" type="String" cardinality="1"/> + <AD id="context.path" type="String" cardinality="1"/> + <AD id="context.sessioninactiveinterval" type="Integer" cardinality="1"/> + <AD id="other.info" type="String" cardinality="1"/> + </OCD> + <Designate pid="org.eclipse.equinox.http.jetty.config.designate" factoryPid="org.eclipse.equinox.http.jetty.config" bundle="*"> + <Object ocdref="server.config"/> + </Designate> +</MetaData> diff --git a/bundles/org.eclipse.equinox.http.jetty8/about.html b/bundles/org.eclipse.equinox.http.jetty8/about.html new file mode 100755 index 000000000..d7e1cdf1e --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/about.html @@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>January 30, 2007</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p> + +</body> +</html>
\ No newline at end of file diff --git a/bundles/org.eclipse.equinox.http.jetty8/build.properties b/bundles/org.eclipse.equinox.http.jetty8/build.properties new file mode 100755 index 000000000..c51e68ea3 --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/build.properties @@ -0,0 +1,18 @@ +############################################################################### +# Copyright (c) 2005, 2007 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 +############################################################################### +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + OSGI-INF/,\ + about.html,\ + plugin.properties +src.includes = about.html diff --git a/bundles/org.eclipse.equinox.http.jetty8/jetty6-to-jetty7.patch b/bundles/org.eclipse.equinox.http.jetty8/jetty6-to-jetty7.patch new file mode 100644 index 000000000..d55a157b8 --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/jetty6-to-jetty7.patch @@ -0,0 +1,204 @@ +Index: .project +=================================================================== +RCS file: /cvsroot/rt/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.jetty6/.project,v +retrieving revision 1.3 +diff -u -r1.3 .project +--- .project 25 Apr 2008 14:38:54 -0000 1.3 ++++ .project 16 Apr 2010 21:35:58 -0000 +@@ -1,6 +1,6 @@ + <?xml version="1.0" encoding="UTF-8"?> + <projectDescription> +- <name>org.eclipse.equinox.http.jetty6</name> ++ <name>org.eclipse.equinox.http.jetty7</name> + <comment></comment> + <projects> + </projects> +Index: META-INF/MANIFEST.MF +=================================================================== +RCS file: /cvsroot/rt/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.jetty6/META-INF/MANIFEST.MF,v +retrieving revision 1.24 +diff -u -r1.24 MANIFEST.MF +--- META-INF/MANIFEST.MF 24 Apr 2009 20:54:41 -0000 1.24 ++++ META-INF/MANIFEST.MF 16 Apr 2010 21:35:58 -0000 +@@ -4,23 +4,28 @@ + Bundle-Vendor: %providerName + Bundle-Localization: plugin + Bundle-SymbolicName: org.eclipse.equinox.http.jetty +-Bundle-Version: 2.0.0.qualifier ++Bundle-Version: 3.0.0.qualifier + Bundle-Activator: org.eclipse.equinox.http.jetty.internal.Activator + Import-Package: javax.servlet;version="[2.5.0,2.6.0)", + javax.servlet.http;version="[2.5.0,2.6.0)", + org.eclipse.equinox.http.servlet;version="1.0.0", +- org.mortbay.component;version="[6.1.0,7.0.0)", +- org.mortbay.jetty;version="[6.1.0,7.0.0)", +- org.mortbay.jetty.bio;version="[6.1.0,7.0.0)", +- org.mortbay.jetty.handler;version="[6.1.0,7.0.0)", +- org.mortbay.jetty.nio;version="[6.1.0,7.0.0)", +- org.mortbay.jetty.security;version="[6.1.0,7.0.0)", +- org.mortbay.jetty.servlet;version="[6.1.0,7.0.0)", +- org.mortbay.log;version="[6.1.0,7.0.0)", ++ org.eclipse.jetty.http;version="[7.0.0,8.0.0)", ++ org.eclipse.jetty.io.bio;version="[7.0.0,8.0.0)", ++ org.eclipse.jetty.io.nio;version="[7.0.0,8.0.0)", ++ org.eclipse.jetty.server;version="[7.0.0,8.0.0)", ++ org.eclipse.jetty.server.bio;version="[7.0.0,8.0.0)", ++ org.eclipse.jetty.server.handler;version="[7.0.0,8.0.0)", ++ org.eclipse.jetty.server.nio;version="[7.0.0,8.0.0)", ++ org.eclipse.jetty.server.session;version="[7.0.0,8.0.0)", ++ org.eclipse.jetty.server.ssl;version="[7.0.0,8.0.0)", ++ org.eclipse.jetty.servlet;version="[7.0.0,8.0.0)", ++ org.eclipse.jetty.util;version="[7.0.0,8.0.0)", ++ org.eclipse.jetty.util.component;version="[7.0.0,8.0.0)", ++ org.eclipse.jetty.util.log;version="[7.0.0,8.0.0)", + org.osgi.framework;version="1.3.0", + org.osgi.service.cm;version="1.2.0", + org.osgi.service.startlevel;version="1.0" +-Bundle-RequiredExecutionEnvironment: J2SE-1.4 ++Bundle-RequiredExecutionEnvironment: J2SE-1.5 + Export-Package: org.eclipse.equinox.http.jetty;version="1.1.0" + Comment-Header: Both Eclipse-LazyStart and Bundle-ActivationPolicy are specified for compatibility with 3.2 + Eclipse-LazyStart: true +Index: src/org/eclipse/equinox/http/jetty/JettyCustomizer.java +=================================================================== +RCS file: /cvsroot/rt/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.jetty6/src/org/eclipse/equinox/http/jetty/JettyCustomizer.java,v +retrieving revision 1.2 +diff -u -r1.2 JettyCustomizer.java +--- src/org/eclipse/equinox/http/jetty/JettyCustomizer.java 17 Apr 2009 21:58:58 -0000 1.2 ++++ src/org/eclipse/equinox/http/jetty/JettyCustomizer.java 16 Apr 2010 21:35:58 -0000 +@@ -33,13 +33,13 @@ + * framework. Changing those may cause breakage and thus must be avoided. + * </p> + * @param context +- * the Jetty context; in case of Jetty 6 the context is of +- * type <code>org.mortbay.jetty.servlet.Context</code> ++ * the Jetty context; in case of Jetty 7 the context is of ++ * type <code>org.eclipse.jetty.servlet.ServletContextHandler</code> + * @param settings + * the settings as passed to {@link JettyConfigurator#startServer(String, Dictionary)} + * @return context +- * the customized context; in case of Jetty 6 the context is of +- * type <code>org.mortbay.jetty.servlet.Context</code> ++ * the customized context; in case of Jetty 7 the context is of ++ * type <code>org.eclipse.jetty.servlet.ServletContextHandler</code> + */ + public Object customizeContext(Object context, Dictionary settings) { + return context; +@@ -52,13 +52,13 @@ + * Implementors may perform additional configuration of the Jetty Connector. + * </p> + * @param connector +- * the Jetty connector; in case of Jetty 6 the context is of +- * type <code>org.mortbay.jetty.Connector</code> ++ * the Jetty connector; in case of Jetty 7 the context is of ++ * type <code>org.eclipse.jetty.server.Connector</code> + * @param settings + * the settings as passed to {@link JettyConfigurator#startServer(String, Dictionary)} + * @return connector + * the customized connector; in case of Jetty 6 the connector is of +- * type <code>org.mortbay.jetty.Connector</code> ++ * type <code>org.eclipse.jetty.server.Connector</code> + */ + public Object customizeHttpConnector(Object connector, Dictionary settings) { + return connector; +@@ -71,13 +71,13 @@ + * Implementors may perform additional configuration of the Jetty Connector. + * </p> + * @param connector +- * the Jetty connector; in case of Jetty 6 the connector is of +- * type <code>org.mortbay.jetty.Connector</code> ++ * the Jetty connector; in case of Jetty 7 the connector is of ++ * type <code>oorg.eclipse.jetty.server.Connector</code> + * @param settings + * the settings as passed to {@link JettyConfigurator#startServer(String, Dictionary)} + * @return connector +- * the customized connector; in case of Jetty 6 the connector is of +- * type <code>org.mortbay.jetty.Connector</code> ++ * the customized connector; in case of Jetty 7 the connector is of ++ * type <code>org.eclipse.jetty.server.Connector</code> + */ + public Object customizeHttpsConnector(Object connector, Dictionary settings) { + return connector; +Index: src/org/eclipse/equinox/http/jetty/internal/HttpServerManager.java +=================================================================== +RCS file: /cvsroot/rt/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.jetty6/src/org/eclipse/equinox/http/jetty/internal/HttpServerManager.java,v +retrieving revision 1.20 +diff -u -r1.20 HttpServerManager.java +--- src/org/eclipse/equinox/http/jetty/internal/HttpServerManager.java 20 May 2009 21:12:37 -0000 1.20 ++++ src/org/eclipse/equinox/http/jetty/internal/HttpServerManager.java 16 Apr 2010 21:35:58 -0000 +@@ -18,12 +18,15 @@ + import org.eclipse.equinox.http.jetty.JettyConstants; + import org.eclipse.equinox.http.jetty.JettyCustomizer; + import org.eclipse.equinox.http.servlet.HttpServiceServlet; +-import org.mortbay.jetty.Connector; +-import org.mortbay.jetty.Server; +-import org.mortbay.jetty.bio.SocketConnector; +-import org.mortbay.jetty.nio.SelectChannelConnector; +-import org.mortbay.jetty.security.SslSocketConnector; +-import org.mortbay.jetty.servlet.*; ++import org.eclipse.jetty.server.Connector; ++import org.eclipse.jetty.server.Server; ++import org.eclipse.jetty.server.bio.SocketConnector; ++import org.eclipse.jetty.server.nio.SelectChannelConnector; ++import org.eclipse.jetty.server.session.HashSessionManager; ++import org.eclipse.jetty.server.session.SessionHandler; ++import org.eclipse.jetty.server.ssl.SslSocketConnector; ++import org.eclipse.jetty.servlet.ServletContextHandler; ++import org.eclipse.jetty.servlet.ServletHolder; + import org.osgi.framework.Constants; + import org.osgi.service.cm.ConfigurationException; + import org.osgi.service.cm.ManagedServiceFactory; +@@ -98,12 +101,12 @@ + if (otherInfo != null) + holder.setInitParameter(JettyConstants.OTHER_INFO, otherInfo); + +- Context httpContext = createHttpContext(dictionary); ++ ServletContextHandler httpContext = createHttpContext(dictionary); + if (null != customizer) +- httpContext = (Context) customizer.customizeContext(httpContext, dictionary); ++ httpContext = (ServletContextHandler) customizer.customizeContext(httpContext, dictionary); + + httpContext.addServlet(holder, "/*"); //$NON-NLS-1$ +- server.addHandler(httpContext); ++ server.setHandler(httpContext); + + try { + server.start(); +@@ -241,8 +244,8 @@ + return sslConnector; + } + +- private Context createHttpContext(Dictionary dictionary) { +- Context httpContext = new Context(); ++ private ServletContextHandler createHttpContext(Dictionary dictionary) { ++ ServletContextHandler httpContext = new ServletContextHandler(); + httpContext.setAttribute(INTERNAL_CONTEXT_CLASSLOADER, Thread.currentThread().getContextClassLoader()); + httpContext.setClassLoader(this.getClass().getClassLoader()); + +Index: src/org/slf4j/Logger.java +=================================================================== +RCS file: /cvsroot/rt/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.jetty6/src/org/slf4j/Logger.java,v +retrieving revision 1.2 +diff -u -r1.2 Logger.java +--- src/org/slf4j/Logger.java 17 Apr 2009 20:24:43 -0000 1.2 ++++ src/org/slf4j/Logger.java 16 Apr 2010 21:35:58 -0000 +@@ -10,8 +10,8 @@ + *******************************************************************************/ + package org.slf4j; + +-import org.mortbay.log.Log; +-import org.mortbay.log.StdErrLog; ++import org.eclipse.jetty.util.log.Log; ++import org.eclipse.jetty.util.log.StdErrLog; + + // NOTE: This class is not a real SLF4J implementation and MUST NOT be exported as a general implementation! + // It is a place-holder to allow overriding the default logging done in Jetty +@@ -80,7 +80,7 @@ + setDebugEnabled(true); + } + +- public org.mortbay.log.Logger getLogger(String name) { ++ public org.eclipse.jetty.util.log.Logger getLogger(String name) { + if ((name == null && this.localName == null) || (name != null && name.equals(this.localName))) + return this; + return new Logger(name); diff --git a/bundles/org.eclipse.equinox.http.jetty8/plugin.properties b/bundles/org.eclipse.equinox.http.jetty8/plugin.properties new file mode 100755 index 000000000..aae3bad6d --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/plugin.properties @@ -0,0 +1,14 @@ +############################################################################### +# Copyright (c) 2005, 2009 IBM Corporation and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# IBM Corporation - initial API and implementation +############################################################################### +bundleName = Jetty Http Service +providerName = Eclipse.org - Equinox +configurationName = Http Server Configuration +configurationDescription = Provides Http Server Configuration Parameters
\ No newline at end of file diff --git a/bundles/org.eclipse.equinox.http.jetty8/pom.xml b/bundles/org.eclipse.equinox.http.jetty8/pom.xml new file mode 100644 index 000000000..bb8e810c3 --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/pom.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + <parent> + <artifactId>jetty-equinox</artifactId> + <version>7.0.2-SNAPSHOT</version> + <groupId>org.eclipse.jetty.equinox</groupId> + <relativePath>../../pom.xml</relativePath> + </parent> + <version>3.0.0-SNAPSHOT</version> + <artifactId>org.eclipse.equinox.http.jetty</artifactId> + <packaging>eclipse-plugin</packaging> + <build> + <plugins> + <plugin> + <groupId>org.sonatype.tycho</groupId> + <artifactId>maven-osgi-source-plugin</artifactId> + </plugin> + </plugins> + </build> +</project> diff --git a/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/JettyConfigurator.java b/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/JettyConfigurator.java new file mode 100755 index 000000000..8a5b2a08c --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/JettyConfigurator.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2007, 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.http.jetty; + +import java.security.Permission; +import java.util.Dictionary; +import org.eclipse.equinox.http.jetty.internal.Activator; +import org.osgi.framework.Constants; +import org.osgi.service.cm.ConfigurationPermission; + +/** + * <p> + * JettyConfigurator provides API level access for creating configured instances of a Jetty-based Http Service. + * The created instances are not persistent across re-starts of the bundle. + * </p> + * + * @see org.eclipse.equinox.http.jetty.JettyConstants + * @noextend This class is not intended to be subclassed by clients. + * @noinstantiate This class is not intended to be instantiated by clients. + */ +public class JettyConfigurator { + private static final String PID_PREFIX = "org.eclipse.equinox.http.jetty.JettyConfigurator."; //$NON-NLS-1$ + private static Permission configurationPermission = new ConfigurationPermission("*", ConfigurationPermission.CONFIGURE); //$NON-NLS-1$ + + /** + * Creates an instance of Jetty parameterized with a dictionary of settings + * @param id The identifier for the server instance + * @param settings The dictionary of settings used to configure the server instance + * @throws Exception If the server failed to start for any reason + */ + public static void startServer(String id, Dictionary settings) throws Exception { + checkConfigurationPermission(); + String pid = PID_PREFIX + id; + settings.put(Constants.SERVICE_PID, pid); + Activator.startServer(pid, settings); + } + + /** + * Stops a previously started instance of Jetty. If the identified instance is not started this will call will do nothing. + * @param id The identifier for the server instance + * @throws Exception If the server failed to stop for any reason. + */ + public static void stopServer(String id) throws Exception { + checkConfigurationPermission(); + Activator.stopServer(PID_PREFIX + id); + } + + private static void checkConfigurationPermission() throws SecurityException { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkPermission(configurationPermission); + } +} diff --git a/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/JettyConstants.java b/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/JettyConstants.java new file mode 100755 index 000000000..4e1a3fa39 --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/JettyConstants.java @@ -0,0 +1,123 @@ +/******************************************************************************* + * Copyright (c) 2007, 2009 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.equinox.http.jetty; + +/** + * <p> + * Provides configuration constants for use with JettyConfigurator. + * </p> + * @since 1.1 + * @noextend This interface is not intended to be extended by clients. + * @noimplement This interface is not intended to be implemented by clients. + */ +public interface JettyConstants { + + /** + * name="http.enabled" type="Boolean" (default: true) + */ + public static final String HTTP_ENABLED = "http.enabled"; //$NON-NLS-1$ + + /** + * name="http.port" type="Integer" (default: 0 -- first available port) + */ + public static final String HTTP_PORT = "http.port"; //$NON-NLS-1$ + + /** + * name="http.host" type="String" (default: 0.0.0.0 -- all network adapters) + */ + public static final String HTTP_HOST = "http.host"; //$NON-NLS-1$ + + /** + * name="http.nio" type="Boolean" (default: true, with some exceptions for JREs with known NIO problems) + * @since 1.1 + */ + public static final String HTTP_NIO = "http.nio"; //$NON-NLS-1$ + + /** + * name="https.enabled" type="Boolean" (default: false) + */ + public static final String HTTPS_ENABLED = "https.enabled"; //$NON-NLS-1$ + + /** + * name="https.host" type="String" (default: 0.0.0.0 -- all network adapters) + */ + public static final String HTTPS_HOST = "https.host"; //$NON-NLS-1$ + + /** + * name="https.port" type="Integer" (default: 0 -- first available port) + */ + public static final String HTTPS_PORT = "https.port"; //$NON-NLS-1$ + + /** + * name="ssl.keystore" type="String" + */ + public static final String SSL_KEYSTORE = "ssl.keystore"; //$NON-NLS-1$ + + /** + * name="ssl.password" type="String" + */ + public static final String SSL_PASSWORD = "ssl.password"; //$NON-NLS-1$ + + /** + * name="ssl.keypassword" type="String" + */ + public static final String SSL_KEYPASSWORD = "ssl.keypassword"; //$NON-NLS-1$ + + /** + * name="ssl.needclientauth" type="Boolean" + */ + public static final String SSL_NEEDCLIENTAUTH = "ssl.needclientauth"; //$NON-NLS-1$ + + /** + * name="ssl.wantclientauth" type="Boolean" + */ + public static final String SSL_WANTCLIENTAUTH = "ssl.wantclientauth"; //$NON-NLS-1$ + + /** + * name="ssl.protocol" type="String" + */ + public static final String SSL_PROTOCOL = "ssl.protocol"; //$NON-NLS-1$ + + /** + * name="ssl.algorithm" type="String" + */ + public static final String SSL_ALGORITHM = "ssl.algorithm"; //$NON-NLS-1$ + + /** + * name="ssl.keystoretype" type="String" + */ + public static final String SSL_KEYSTORETYPE = "ssl.keystoretype"; //$NON-NLS-1$ + + /** + * name="context.path" type="String" + */ + public static final String CONTEXT_PATH = "context.path"; //$NON-NLS-1$ + + /** + * name="context.sessioninactiveinterval" type="Integer" + */ + public static final String CONTEXT_SESSIONINACTIVEINTERVAL = "context.sessioninactiveinterval"; //$NON-NLS-1$ + + /** + * name="customizer.class" type="String" <br /> + * (full qualified name of the class that implements + * <code>org.eclipse.equinox.http.jetty.JettyCustomizer</code> and has a public no-arg constructor; + * the class must be supplied via a fragment to this bundle's classpath)</code> + * @since 1.1 + */ + public static final String CUSTOMIZER_CLASS = "customizer.class"; //$NON-NLS-1$ + + /** + * name="other.info" type="String" + */ + public static final String OTHER_INFO = "other.info"; //$NON-NLS-1$ + +} diff --git a/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/JettyCustomizer.java b/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/JettyCustomizer.java new file mode 100644 index 000000000..986ac2396 --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/JettyCustomizer.java @@ -0,0 +1,85 @@ +/******************************************************************************* + * Copyright (c) 2008, 2009 Gunnar Wagenknecht, 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: + * Gunnar Wagenknecht - initial API and implementation + * IBM Corporation - improvements and ongoing maintenance + *******************************************************************************/ +package org.eclipse.equinox.http.jetty; + +import java.util.Dictionary; + +/** + * Jetty Customizer allows one to customize Jetty contexts and connectors. + * <p> + * This abstract class must be extended by clients which wish to customize + * the created Jetty contexts or connectors further. + * </p> + * @since 1.1 + */ +public abstract class JettyCustomizer { + + /** + * Called by the framework when the Jetty context has been created + * and initialized. + * <p> + * Implementors may perform additional configuration of the Jetty context. + * However, they must be aware that changing certain central functionalities + * of the context such as class loading are already configured by the + * framework. Changing those may cause breakage and thus must be avoided. + * </p> + * @param context + * the Jetty context; in case of Jetty 7 the context is of + * type <code>org.eclipse.jetty.servlet.ServletContextHandler</code> + * @param settings + * the settings as passed to {@link JettyConfigurator#startServer(String, Dictionary)} + * @return context + * the customized context; in case of Jetty 7 the context is of + * type <code>org.eclipse.jetty.servlet.ServletContextHandler</code> + */ + public Object customizeContext(Object context, Dictionary settings) { + return context; + } + + /** + * Called by the framework when the Jetty Http Connector has been created + * and initialized. + * <p> + * Implementors may perform additional configuration of the Jetty Connector. + * </p> + * @param connector + * the Jetty connector; in case of Jetty 7 the context is of + * type <code>org.eclipse.jetty.server.Connector</code> + * @param settings + * the settings as passed to {@link JettyConfigurator#startServer(String, Dictionary)} + * @return connector + * the customized connector; in case of Jetty 6 the connector is of + * type <code>org.eclipse.jetty.server.Connector</code> + */ + public Object customizeHttpConnector(Object connector, Dictionary settings) { + return connector; + } + + /** + * Called by the framework when the Jetty Https Connector has been created + * and initialized. + * <p> + * Implementors may perform additional configuration of the Jetty Connector. + * </p> + * @param connector + * the Jetty connector; in case of Jetty 7 the connector is of + * type <code>oorg.eclipse.jetty.server.Connector</code> + * @param settings + * the settings as passed to {@link JettyConfigurator#startServer(String, Dictionary)} + * @return connector + * the customized connector; in case of Jetty 7 the connector is of + * type <code>org.eclipse.jetty.server.Connector</code> + */ + public Object customizeHttpsConnector(Object connector, Dictionary settings) { + return connector; + } +} diff --git a/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/internal/Activator.java b/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/internal/Activator.java new file mode 100755 index 000000000..8e359f32a --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/internal/Activator.java @@ -0,0 +1,242 @@ +/******************************************************************************* + * Copyright (c) 2005, 2009 Cognos Incorporated, 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: + * Cognos Incorporated - initial API and implementation + * IBM Corporation - bug fixes and enhancements + *******************************************************************************/ + +package org.eclipse.equinox.http.jetty.internal; + +import java.io.File; +import java.lang.reflect.Method; +import java.util.Dictionary; +import java.util.Hashtable; +import org.eclipse.equinox.http.jetty.JettyConstants; +import org.osgi.framework.*; +import org.osgi.service.cm.ManagedServiceFactory; +import org.osgi.service.startlevel.StartLevel; + +public class Activator implements BundleActivator { + + private static final String JETTY_WORK_DIR = "jettywork"; //$NON-NLS-1$ + private static final String DEFAULT_PID = "default"; //$NON-NLS-1$ + private static final String MANAGED_SERVICE_FACTORY_PID = "org.eclipse.equinox.http.jetty.config"; //$NON-NLS-1$ + + // OSGi Http Service suggest these properties for setting the default ports + private static final String ORG_OSGI_SERVICE_HTTP_PORT = "org.osgi.service.http.port"; //$NON-NLS-1$ + private static final String ORG_OSGI_SERVICE_HTTP_PORT_SECURE = "org.osgi.service.http.port.secure"; //$NON-NLS-1$ + + // controls whether start() should automatically start an Http Service based on BundleContext properties (default is true) + // Note: only used if the bundle is explicitly started (e.g. not "lazy" activated) + private static final String AUTOSTART = "org.eclipse.equinox.http.jetty.autostart"; //$NON-NLS-1$ + + // Jetty will use a basic stderr logger if no other logging mechanism is provided. + // This setting can be used to over-ride the stderr logger threshold(and only this default logger) + // Valid values are in increasing threshold: "debug", "info", "warn", "error", and "off" + // (default threshold is "warn") + private static final String LOG_STDERR_THRESHOLD = "org.eclipse.equinox.http.jetty.log.stderr.threshold"; //$NON-NLS-1$ + + // The staticServerManager is use by the start and stopServer methods and must be accessed in a static synchronized block + // to ensure it is correctly handled in terms of the bundle life-cycle. + private static HttpServerManager staticServerManager; + + private HttpServerManager httpServerManager; + private ServiceRegistration registration; + + public void start(BundleContext context) throws Exception { + File jettyWorkDir = new File(context.getDataFile(""), JETTY_WORK_DIR); //$NON-NLS-1$ + jettyWorkDir.mkdir(); + setStdErrLogThreshold(context.getProperty(LOG_STDERR_THRESHOLD)); + httpServerManager = new HttpServerManager(jettyWorkDir); + + String autostart = context.getProperty(AUTOSTART); + if ((autostart == null || Boolean.valueOf(autostart).booleanValue()) && !isBundleActivationPolicyUsed(context)) { + Dictionary defaultSettings = createDefaultSettings(context); + httpServerManager.updated(DEFAULT_PID, defaultSettings); + } + + Dictionary dictionary = new Hashtable(); + dictionary.put(Constants.SERVICE_PID, MANAGED_SERVICE_FACTORY_PID); + + registration = context.registerService(ManagedServiceFactory.class.getName(), httpServerManager, dictionary); + setStaticServerManager(httpServerManager); + } + + private void setStdErrLogThreshold(String property) { + try { + Class clazz = Class.forName("org.slf4j.Logger"); + Method method = clazz.getMethod("setThresholdLogger", new Class[] {String.class}); + method.invoke(null, new Object[] {property}); + } catch (Throwable t) { + // ignore + } + } + + private boolean isBundleActivationPolicyUsed(BundleContext context) { + ServiceReference reference = context.getServiceReference(StartLevel.class.getName()); + StartLevel sl = ((reference != null) ? (StartLevel) context.getService(reference) : null); + if (sl != null) { + try { + Bundle bundle = context.getBundle(); + Method isBundleActivationPolicyUsed = StartLevel.class.getMethod("isBundleActivationPolicyUsed", new Class[] {Bundle.class}); //$NON-NLS-1$ + Boolean result = (Boolean) isBundleActivationPolicyUsed.invoke(sl, new Object[] {bundle}); + return result.booleanValue(); + } catch (Exception e) { + // ignore + // Bundle Activation Policy only available in StartLevel Service 1.1 + } finally { + context.ungetService(reference); + } + } + return false; + } + + public void stop(BundleContext context) throws Exception { + setStaticServerManager(null); + registration.unregister(); + registration = null; + + httpServerManager.shutdown(); + httpServerManager = null; + } + + private Dictionary createDefaultSettings(BundleContext context) { + final String PROPERTY_PREFIX = "org.eclipse.equinox.http.jetty."; //$NON-NLS-1$ + Dictionary defaultSettings = new Hashtable(); + + // PID + defaultSettings.put(Constants.SERVICE_PID, DEFAULT_PID); + + // HTTP Enabled (default is true) + String httpEnabledProperty = context.getProperty(PROPERTY_PREFIX + JettyConstants.HTTP_ENABLED); + Boolean httpEnabled = (httpEnabledProperty == null) ? Boolean.TRUE : new Boolean(httpEnabledProperty); + defaultSettings.put(JettyConstants.HTTP_ENABLED, httpEnabled); + + // HTTP Port + String httpPortProperty = context.getProperty(PROPERTY_PREFIX + JettyConstants.HTTP_PORT); + if (httpPortProperty == null) + httpPortProperty = context.getProperty(ORG_OSGI_SERVICE_HTTP_PORT); + + int httpPort = 80; + if (httpPortProperty != null) { + try { + httpPort = Integer.parseInt(httpPortProperty); + } catch (NumberFormatException e) { + //(log this) ignore and use default + } + } + defaultSettings.put(JettyConstants.HTTP_PORT, new Integer(httpPort)); + + // HTTP Host (default is 0.0.0.0) + String httpHost = context.getProperty(PROPERTY_PREFIX + JettyConstants.HTTP_HOST); + if (httpHost != null) + defaultSettings.put(JettyConstants.HTTP_HOST, httpHost); + + // HTTPS Enabled (default is false) + Boolean httpsEnabled = new Boolean(context.getProperty(PROPERTY_PREFIX + JettyConstants.HTTPS_ENABLED)); + defaultSettings.put(JettyConstants.HTTPS_ENABLED, httpsEnabled); + + if (httpsEnabled.booleanValue()) { + // HTTPS Port + String httpsPortProperty = context.getProperty(PROPERTY_PREFIX + JettyConstants.HTTPS_PORT); + if (httpsPortProperty == null) + httpsPortProperty = context.getProperty(ORG_OSGI_SERVICE_HTTP_PORT_SECURE); + + int httpsPort = 443; + if (httpsPortProperty != null) { + try { + httpsPort = Integer.parseInt(httpsPortProperty); + } catch (NumberFormatException e) { + //(log this) ignore and use default + } + } + defaultSettings.put(JettyConstants.HTTPS_PORT, new Integer(httpsPort)); + + // HTTPS Host (default is 0.0.0.0) + String httpsHost = context.getProperty(PROPERTY_PREFIX + JettyConstants.HTTPS_HOST); + if (httpsHost != null) + defaultSettings.put(JettyConstants.HTTPS_HOST, httpsHost); + + // SSL SETTINGS + String keystore = context.getProperty(PROPERTY_PREFIX + JettyConstants.SSL_KEYSTORE); + if (keystore != null) + defaultSettings.put(JettyConstants.SSL_KEYSTORE, keystore); + + String password = context.getProperty(PROPERTY_PREFIX + JettyConstants.SSL_PASSWORD); + if (password != null) + defaultSettings.put(JettyConstants.SSL_PASSWORD, password); + + String keypassword = context.getProperty(PROPERTY_PREFIX + JettyConstants.SSL_KEYPASSWORD); + if (keypassword != null) + defaultSettings.put(JettyConstants.SSL_KEYPASSWORD, keypassword); + + String needclientauth = context.getProperty(PROPERTY_PREFIX + JettyConstants.SSL_NEEDCLIENTAUTH); + if (needclientauth != null) + defaultSettings.put(JettyConstants.SSL_NEEDCLIENTAUTH, new Boolean(needclientauth)); + + String wantclientauth = context.getProperty(PROPERTY_PREFIX + JettyConstants.SSL_WANTCLIENTAUTH); + if (wantclientauth != null) + defaultSettings.put(JettyConstants.SSL_WANTCLIENTAUTH, new Boolean(wantclientauth)); + + String protocol = context.getProperty(PROPERTY_PREFIX + JettyConstants.SSL_PROTOCOL); + if (protocol != null) + defaultSettings.put(JettyConstants.SSL_PROTOCOL, protocol); + + String algorithm = context.getProperty(PROPERTY_PREFIX + JettyConstants.SSL_ALGORITHM); + if (algorithm != null) + defaultSettings.put(JettyConstants.SSL_ALGORITHM, algorithm); + + String keystoretype = context.getProperty(PROPERTY_PREFIX + JettyConstants.SSL_KEYSTORETYPE); + if (keystoretype != null) + defaultSettings.put(JettyConstants.SSL_KEYSTORETYPE, keystoretype); + } + + // Servlet Context Path + String contextpath = context.getProperty(PROPERTY_PREFIX + JettyConstants.CONTEXT_PATH); + if (contextpath != null) + defaultSettings.put(JettyConstants.CONTEXT_PATH, contextpath); + + // Session Inactive Interval (timeout) + String sessionInactiveInterval = context.getProperty(PROPERTY_PREFIX + JettyConstants.CONTEXT_SESSIONINACTIVEINTERVAL); + if (sessionInactiveInterval != null) { + try { + defaultSettings.put(JettyConstants.CONTEXT_SESSIONINACTIVEINTERVAL, new Integer(sessionInactiveInterval)); + } catch (NumberFormatException e) { + //(log this) ignore + } + } + + // Other Info + String otherInfo = context.getProperty(PROPERTY_PREFIX + JettyConstants.OTHER_INFO); + if (otherInfo != null) + defaultSettings.put(JettyConstants.OTHER_INFO, otherInfo); + + // customizer + String customizerClass = context.getProperty(PROPERTY_PREFIX + JettyConstants.CUSTOMIZER_CLASS); + if (customizerClass != null) + defaultSettings.put(JettyConstants.CUSTOMIZER_CLASS, customizerClass); + + return defaultSettings; + } + + public synchronized static void startServer(String pid, Dictionary settings) throws Exception { + if (staticServerManager == null) + throw new IllegalStateException("Inactive"); //$NON-NLS-1$ + + staticServerManager.updated(pid, settings); + } + + public synchronized static void stopServer(String pid) throws Exception { + if (staticServerManager != null) + staticServerManager.deleted(pid); + } + + private synchronized static void setStaticServerManager(HttpServerManager httpServerManager) { + staticServerManager = httpServerManager; + } +} diff --git a/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/internal/HttpServerManager.java b/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/internal/HttpServerManager.java new file mode 100755 index 000000000..2ccf9bdc8 --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/internal/HttpServerManager.java @@ -0,0 +1,350 @@ +/******************************************************************************* + * Copyright (c) 2007, 2009 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +package org.eclipse.equinox.http.jetty.internal; + +import java.io.File; +import java.io.IOException; +import java.util.*; +import javax.servlet.*; +import org.eclipse.equinox.http.jetty.JettyConstants; +import org.eclipse.equinox.http.jetty.JettyCustomizer; +import org.eclipse.equinox.http.servlet.HttpServiceServlet; +import org.eclipse.jetty.server.Connector; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.server.bio.SocketConnector; +import org.eclipse.jetty.server.nio.SelectChannelConnector; +import org.eclipse.jetty.server.session.HashSessionManager; +import org.eclipse.jetty.server.session.SessionHandler; +import org.eclipse.jetty.server.ssl.SslSocketConnector; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.servlet.ServletHolder; +import org.osgi.framework.Constants; +import org.osgi.service.cm.ConfigurationException; +import org.osgi.service.cm.ManagedServiceFactory; + +public class HttpServerManager implements ManagedServiceFactory { + + private static final String CONTEXT_TEMPDIR = "javax.servlet.context.tempdir"; //$NON-NLS-1$ + private static final String DIR_PREFIX = "pid_"; //$NON-NLS-1$ + private static final String INTERNAL_CONTEXT_CLASSLOADER = "org.eclipse.equinox.http.jetty.internal.ContextClassLoader"; //$NON-NLS-1$ + + private Map servers = new HashMap(); + private File workDir; + + public HttpServerManager(File workDir) { + this.workDir = workDir; + } + + public synchronized void deleted(String pid) { + Server server = (Server) servers.remove(pid); + if (server != null) { + try { + server.stop(); + } catch (Exception e) { + // TODO: consider logging this, but we should still continue cleaning up + e.printStackTrace(); + } + File contextWorkDir = new File(workDir, DIR_PREFIX + pid.hashCode()); + deleteDirectory(contextWorkDir); + } + } + + public String getName() { + return this.getClass().getName(); + } + + public synchronized void updated(String pid, Dictionary dictionary) throws ConfigurationException { + deleted(pid); + Server server = new Server(); + + JettyCustomizer customizer = createJettyCustomizer(dictionary); + + Connector httpConnector = createHttpConnector(dictionary); + if (null != customizer) + httpConnector = (Connector) customizer.customizeHttpConnector(httpConnector, dictionary); + + if (httpConnector != null) + server.addConnector(httpConnector); + + Connector httpsConnector = createHttpsConnector(dictionary); + if (null != customizer) + httpsConnector = (Connector) customizer.customizeHttpsConnector(httpsConnector, dictionary); + if (httpsConnector != null) + server.addConnector(httpsConnector); + + ServletHolder holder = new ServletHolder(new InternalHttpServiceServlet()); + holder.setInitOrder(0); + holder.setInitParameter(Constants.SERVICE_VENDOR, "Eclipse.org"); //$NON-NLS-1$ + holder.setInitParameter(Constants.SERVICE_DESCRIPTION, "Equinox Jetty-based Http Service"); //$NON-NLS-1$ + if (httpConnector != null) { + int port = httpConnector.getLocalPort(); + if (port == -1) + port = httpConnector.getPort(); + holder.setInitParameter(JettyConstants.HTTP_PORT, Integer.toString(port)); + } + if (httpsConnector != null) { + int port = httpsConnector.getLocalPort(); + if (port == -1) + port = httpsConnector.getPort(); + holder.setInitParameter(JettyConstants.HTTPS_PORT, Integer.toString(port)); + } + String otherInfo = (String) dictionary.get(JettyConstants.OTHER_INFO); + if (otherInfo != null) + holder.setInitParameter(JettyConstants.OTHER_INFO, otherInfo); + + ServletContextHandler httpContext = createHttpContext(dictionary); + if (null != customizer) + httpContext = (ServletContextHandler) customizer.customizeContext(httpContext, dictionary); + + httpContext.addServlet(holder, "/*"); //$NON-NLS-1$ + server.setHandler(httpContext); + + try { + server.start(); + } catch (Exception e) { + throw new ConfigurationException(pid, e.getMessage(), e); + } + servers.put(pid, server); + } + + public synchronized void shutdown() throws Exception { + for (Iterator it = servers.values().iterator(); it.hasNext();) { + Server server = (Server) it.next(); + server.stop(); + } + servers.clear(); + } + + private Connector createHttpConnector(Dictionary dictionary) { + Boolean httpEnabled = (Boolean) dictionary.get(JettyConstants.HTTP_ENABLED); + if (httpEnabled != null && !httpEnabled.booleanValue()) + return null; + + Integer httpPort = (Integer) dictionary.get(JettyConstants.HTTP_PORT); + if (httpPort == null) + return null; + + Boolean nioEnabled = (Boolean) dictionary.get(JettyConstants.HTTP_NIO); + if (nioEnabled == null) + nioEnabled = getDefaultNIOEnablement(); + + Connector connector; + if (nioEnabled.booleanValue()) + connector = new SelectChannelConnector(); + else + connector = new SocketConnector(); + + connector.setPort(httpPort.intValue()); + + String httpHost = (String) dictionary.get(JettyConstants.HTTP_HOST); + if (httpHost != null) { + connector.setHost(httpHost); + } + + if (connector.getPort() == 0) { + try { + connector.open(); + } catch (IOException e) { + // this would be unexpected since we're opening the next available port + e.printStackTrace(); + } + } + return connector; + } + + private Boolean getDefaultNIOEnablement() { + Properties systemProperties = System.getProperties(); + String javaVendor = systemProperties.getProperty("java.vendor", ""); //$NON-NLS-1$ //$NON-NLS-2$ + if (javaVendor.equals("IBM Corporation")) { //$NON-NLS-1$ + String javaVersion = systemProperties.getProperty("java.version", ""); //$NON-NLS-1$ //$NON-NLS-2$ + if (javaVersion.startsWith("1.4")) //$NON-NLS-1$ + return Boolean.FALSE; + // Note: no problems currently logged with 1.5 + if (javaVersion.equals("1.6.0")) { //$NON-NLS-1$ + String jclVersion = systemProperties.getProperty("java.jcl.version", ""); //$NON-NLS-1$ //$NON-NLS-2$ + if (jclVersion.startsWith("2007")) //$NON-NLS-1$ + return Boolean.FALSE; + if (jclVersion.startsWith("2008") && !jclVersion.startsWith("200811") && !jclVersion.startsWith("200812")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return Boolean.FALSE; + } + } + return Boolean.TRUE; + } + + private Connector createHttpsConnector(Dictionary dictionary) { + Boolean httpsEnabled = (Boolean) dictionary.get(JettyConstants.HTTPS_ENABLED); + if (httpsEnabled == null || !httpsEnabled.booleanValue()) + return null; + + Integer httpsPort = (Integer) dictionary.get(JettyConstants.HTTPS_PORT); + if (httpsPort == null) + return null; + + SslSocketConnector sslConnector = new SslSocketConnector(); + sslConnector.setPort(httpsPort.intValue()); + + String httpsHost = (String) dictionary.get(JettyConstants.HTTPS_HOST); + if (httpsHost != null) { + sslConnector.setHost(httpsHost); + } + + String keyStore = (String) dictionary.get(JettyConstants.SSL_KEYSTORE); + if (keyStore != null) + sslConnector.setKeystore(keyStore); + + String password = (String) dictionary.get(JettyConstants.SSL_PASSWORD); + if (password != null) + sslConnector.setPassword(password); + + String keyPassword = (String) dictionary.get(JettyConstants.SSL_KEYPASSWORD); + if (keyPassword != null) + sslConnector.setKeyPassword(keyPassword); + + Object needClientAuth = dictionary.get(JettyConstants.SSL_NEEDCLIENTAUTH); + if (needClientAuth != null) { + if (needClientAuth instanceof String) + needClientAuth = Boolean.valueOf((String) needClientAuth); + + sslConnector.setNeedClientAuth(((Boolean) needClientAuth).booleanValue()); + } + + Object wantClientAuth = dictionary.get(JettyConstants.SSL_WANTCLIENTAUTH); + if (wantClientAuth != null) { + if (wantClientAuth instanceof String) + wantClientAuth = Boolean.valueOf((String) wantClientAuth); + + sslConnector.setWantClientAuth(((Boolean) wantClientAuth).booleanValue()); + } + + String protocol = (String) dictionary.get(JettyConstants.SSL_PROTOCOL); + if (protocol != null) + sslConnector.setProtocol(protocol); + + String keystoreType = (String) dictionary.get(JettyConstants.SSL_KEYSTORETYPE); + if (keystoreType != null) + sslConnector.setKeystoreType(keystoreType); + + if (sslConnector.getPort() == 0) { + try { + sslConnector.open(); + } catch (IOException e) { + // this would be unexpected since we're opening the next available port + e.printStackTrace(); + } + } + return sslConnector; + } + + private ServletContextHandler createHttpContext(Dictionary dictionary) { + ServletContextHandler httpContext = new ServletContextHandler(); + httpContext.setAttribute(INTERNAL_CONTEXT_CLASSLOADER, Thread.currentThread().getContextClassLoader()); + httpContext.setClassLoader(this.getClass().getClassLoader()); + + String contextPathProperty = (String) dictionary.get(JettyConstants.CONTEXT_PATH); + if (contextPathProperty == null) + contextPathProperty = "/"; //$NON-NLS-1$ + httpContext.setContextPath(contextPathProperty); + + File contextWorkDir = new File(workDir, DIR_PREFIX + dictionary.get(Constants.SERVICE_PID).hashCode()); + contextWorkDir.mkdir(); + httpContext.setAttribute(CONTEXT_TEMPDIR, contextWorkDir); + + HashSessionManager sessionManager = new HashSessionManager(); + Integer sessionInactiveInterval = (Integer) dictionary.get(JettyConstants.CONTEXT_SESSIONINACTIVEINTERVAL); + if (sessionInactiveInterval != null) + sessionManager.setMaxInactiveInterval(sessionInactiveInterval.intValue()); + + httpContext.setSessionHandler(new SessionHandler(sessionManager)); + + return httpContext; + } + + private JettyCustomizer createJettyCustomizer(Dictionary dictionary) { + String customizerClass = (String) dictionary.get(JettyConstants.CUSTOMIZER_CLASS); + if (null == customizerClass) + return null; + + try { + return (JettyCustomizer) Class.forName(customizerClass).newInstance(); + } catch (Exception e) { + // TODO: consider logging this, but we should still continue + e.printStackTrace(); + return null; + } + } + + public static class InternalHttpServiceServlet implements Servlet { + // private static final long serialVersionUID = 7477982882399972088L; + private Servlet httpServiceServlet = new HttpServiceServlet(); + private ClassLoader contextLoader; + + public void init(ServletConfig config) throws ServletException { + ServletContext context = config.getServletContext(); + contextLoader = (ClassLoader) context.getAttribute(INTERNAL_CONTEXT_CLASSLOADER); + + Thread thread = Thread.currentThread(); + ClassLoader current = thread.getContextClassLoader(); + thread.setContextClassLoader(contextLoader); + try { + httpServiceServlet.init(config); + } finally { + thread.setContextClassLoader(current); + } + } + + public void destroy() { + Thread thread = Thread.currentThread(); + ClassLoader current = thread.getContextClassLoader(); + thread.setContextClassLoader(contextLoader); + try { + httpServiceServlet.destroy(); + } finally { + thread.setContextClassLoader(current); + } + contextLoader = null; + } + + public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { + Thread thread = Thread.currentThread(); + ClassLoader current = thread.getContextClassLoader(); + thread.setContextClassLoader(contextLoader); + try { + httpServiceServlet.service(req, res); + } finally { + thread.setContextClassLoader(current); + } + } + + public ServletConfig getServletConfig() { + return httpServiceServlet.getServletConfig(); + } + + public String getServletInfo() { + return httpServiceServlet.getServletInfo(); + } + } + + // deleteDirectory is a convenience method to recursively delete a directory + private static boolean deleteDirectory(File directory) { + if (directory.exists() && directory.isDirectory()) { + File[] files = directory.listFiles(); + for (int i = 0; i < files.length; i++) { + if (files[i].isDirectory()) { + deleteDirectory(files[i]); + } else { + files[i].delete(); + } + } + } + return directory.delete(); + } +} diff --git a/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/package.html b/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/package.html new file mode 100755 index 000000000..e3ea751dc --- /dev/null +++ b/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/package.html @@ -0,0 +1,17 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <title>Package-level Javadoc</title> +</head> +<body> +Provides core support for the Jetty-based Http Service. +<h2> +Package Specification</h2> +<p> +This package specifies API for configuring an instance of the Jetty-based Http Service. +<p> +@since 1.0 +<p> +</body> +</html> |
