diff --git a/.buckconfig b/.buckconfig new file mode 100644 index 0000000000..164b9d4aad --- /dev/null +++ b/.buckconfig @@ -0,0 +1,5 @@ +[buildfile] + includes = //lib/DEFS + +[java] + src_roots = java, resources diff --git a/.gitignore b/.gitignore index c87c26f20d..26c4a22780 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,10 @@ /.classpath /.project -/.settings -/.settings/org.eclipse.jdt.core.prefs /.settings/org.maven.ide.eclipse.prefs /test_site /.idea /gerrit-parent.iml *.sublime-* +/buck-cache +/buck-out +/local.properties diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000..29abf99956 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding//src/test/resources=UTF-8 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.core.runtime.prefs b/.settings/org.eclipse.core.runtime.prefs new file mode 100644 index 0000000000..8667cfd4a3 --- /dev/null +++ b/.settings/org.eclipse.core.runtime.prefs @@ -0,0 +1,3 @@ +#Tue Sep 02 16:59:24 PDT 2008 +eclipse.preferences.version=1 +line.separator=\n diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..2f45466d84 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,264 @@ +#Fri Jul 16 23:39:13 PDT 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.6 +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=16 +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=16 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16 +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=0 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=0 +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=2 +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=true +org.eclipse.jdt.core.formatter.comment.format_header=true +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=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_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=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=do not 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=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_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.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=true +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=80 +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=3 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=2 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true diff --git a/.settings/org.eclipse.jdt.ui.prefs b/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000000..d4218a5fc0 --- /dev/null +++ b/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,61 @@ +#Wed Jul 29 11:31:38 PDT 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_profile=_Google Format +formatter_settings_version=11 +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder=com.google;com;junit;net;org;java;javax; +org.eclipse.jdt.ui.ondemandthreshold=99 +org.eclipse.jdt.ui.staticondemandthreshold=99 +org.eclipse.jdt.ui.text.custom_code_templates= +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=false +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_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=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=false +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=false +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=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=false +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=false +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_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/BUCK b/BUCK new file mode 100644 index 0000000000..ba42d3e925 --- /dev/null +++ b/BUCK @@ -0,0 +1,114 @@ +include_defs('//tools/build.defs') + +gerrit_war(name = 'gerrit') +gerrit_war(name = 'chrome', ui = 'draft_safari') +gerrit_war(name = 'firefox', ui = 'draft_gecko1_8') +gerrit_war(name = 'withdocs', context = DOCS) +gerrit_war(name = 'release', context = DOCS + ['//plugins:core.zip']) + +genrule( + name = 'api', + cmd = 'echo', + srcs = [], + deps = [ + ':extension-api', + ':plugin-api', + ], + out = '__api__', +) + +java_binary(name = 'extension-api', deps = [':extension-lib']) +java_library( + name = 'extension-lib', + deps = [ + '//gerrit-extension-api:api', + '//lib/guice:guice', + '//lib/guice:guice-servlet', + '//lib:servlet-api-3_0', + ], + visibility = ['PUBLIC'], +) + +java_binary(name = 'plugin-api', deps = [':plugin-lib']) +java_library( + name = 'plugin-lib', + deps = [ + '//gerrit-server:server', + '//gerrit-sshd:sshd', + '//gerrit-httpd:httpd', + ], + visibility = ['PUBLIC'], +) + +genrule( + name = 'download', + cmd = 'buck build $(buck audit classpath --dot :eclipse_classpath' + + '| egrep \'^ "//lib/\''+ + '| cut -d\\" -f2' + + '| sort | uniq)', + srcs = [], + deps = [], + out = '__fake.download__', +) + +genrule( + name = 'eclipse', + cmd = '', + srcs = [], + deps = [ + ':_eclipse_project', + ':_eclipse_classpath', + ], + out = 'eclipse', +) + +genrule( + name = 'eclipse_project', + cmd = '', + srcs = [], + deps = [ + ':_eclipse_project', + ':_eclipse_classpath_nocompile', + ], + out = 'eclipse', +) + +java_library( + name = 'eclipse_classpath', + deps = LIBS + PGMLIBS + [ + '//gerrit-acceptance-tests:acceptance_tests', + '//gerrit-gwtdebug:gwtdebug', + '//gerrit-gwtui:ui_module', + '//gerrit-httpd:httpd_tests', + '//gerrit-main:main_lib', + '//gerrit-server:server__compile', + '//lib/prolog:compiler_lib', + ] + scan_plugins(), +) + +genrule( + name = '_eclipse_project', + cmd = '${//tools:eclipse_project} $OUT', + srcs = [], + deps = ['//tools:eclipse_project'], + out = 'eclipse_project', +) + +genrule( + name = '_eclipse_classpath', + cmd = '${//tools:eclipse_classpath} $OUT $DEPS', + srcs = [], + deps = [ + ':eclipse_classpath', + '//tools:eclipse_classpath', + ], + out = 'eclipse_classpath', +) + +genrule( + name = '_eclipse_classpath_nocompile', + cmd = '${//tools:eclipse_classpath}', + srcs = [], + deps = ['//tools:eclipse_classpath'], + out = '_eclipse_classpath_nocompile', +) diff --git a/Documentation/BUCK b/Documentation/BUCK new file mode 100644 index 0000000000..a1f5384022 --- /dev/null +++ b/Documentation/BUCK @@ -0,0 +1,55 @@ +include_defs('//Documentation/asciidoc.defs') + +MAIN = ['//gerrit-pgm:pgm', '//gerrit-gwtui:ui_module'] +SRCS = glob(['*.txt'], excludes = ['licenses.txt']) +HTML = [txt[0:-4] + '.html' for txt in SRCS] + +genrule( + name = 'html', + cmd = 'cd $TMP;' + + 'mkdir -p Documentation/images;' + + 'for s in $SRCS;do ln -s $s Documentation;done;' + + 'mv Documentation/*.{jpg,png} Documentation/images;' + + 'zip -qr $OUT *', + srcs = [genfile(d) for d in HTML] + + [genfile('licenses.html')] + + glob([ + 'images/*.jpg', + 'images/*.png', + ]), + deps = [':' + d for d in HTML] + [':licenses.html'], + out = 'html.zip', + visibility = ['PUBLIC'], +) + +genasciidoc( + name = 'generate_html', + srcs = SRCS + [genfile('licenses.txt')], + outs = HTML + ['licenses.html'], + deps = [':config', ':licenses.txt'], + attributes = ['toc', 'newline="\\n"'], + backend = 'xhtml11', + conf_file = genfile('asciidoc.conf'), +) + +genrule( + name = 'licenses.txt', + cmd = '${:licenses} >$OUT', + srcs = [], + deps = [':licenses'] + MAIN, + out = 'licenses.txt', +) + +genrule( + name = 'config', + cmd = 'cp $SRCS $OUT &&' + + 'echo "[attributes]" >>$OUT &&' + + 'echo "revision=`git describe HEAD`" >>$OUT', + srcs = ['asciidoc.conf'], + out = 'asciidoc.conf', +) + +python_binary( + name = 'licenses', + main = 'licenses.py', +) diff --git a/Documentation/asciidoc.defs b/Documentation/asciidoc.defs new file mode 100644 index 0000000000..c6df544cf9 --- /dev/null +++ b/Documentation/asciidoc.defs @@ -0,0 +1,54 @@ +# Copyright (C) 2013 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +def genasciidoc( + name, + srcs = [], + outs = [], + deps = [], + attributes = [], + backend = None, + conf_file = None, + visibility = []): + cmd = ['asciidoc', '-o', '$OUT'] + if backend: + cmd.extend(['-b', backend]) + for attribute in attributes: + cmd.extend(['-a', attribute]) + if conf_file: + cmd.append('-f') + cmd.append('$SRCS') + + for p in zip(srcs, outs): + s, o = p + if conf_file: + src_list = [conf_file, s] + else: + src_list = [s] + genrule( + name = o, + cmd = ' '.join(cmd), + srcs = src_list, + deps = deps, + out = o, + visibility = visibility, + ) + genrule( + name = name, + cmd = '', + srcs = [], + deps = [':' + o for o in outs], + out = name + '__done', + visibility = visibility, + ) diff --git a/Documentation/licenses.py b/Documentation/licenses.py new file mode 100755 index 0000000000..b05f0f898a --- /dev/null +++ b/Documentation/licenses.py @@ -0,0 +1,129 @@ +#!/usr/bin/python +# Copyright (C) 2013 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# TODO(sop): Be more detailed: version, link to Maven Central + +from collections import defaultdict, deque +import re +from shutil import copyfileobj +from subprocess import Popen, PIPE +from sys import stdout + +MAIN = ['//gerrit-pgm:pgm', '//gerrit-gwtui:ui_module'] + +def parse_graph(): + graph = defaultdict(list) + p = Popen( + ['buck', 'audit', 'classpath', '--dot'] + MAIN, + stdout = PIPE) + for line in p.stdout: + m = re.search(r'"(//.*?)" -> "(//.*?)";', line) + if not m: + continue + target, dep = m.group(1), m.group(2) + if not target.endswith('__compile'): + graph[target].append(dep) + r = p.wait() + if r != 0: + exit(r) + return graph + +graph = parse_graph() +licenses = defaultdict(set) + +queue = deque(MAIN) +while queue: + target = queue.popleft() + for dep in graph[target]: + if not dep.startswith('//lib:LICENSE-'): + continue + licenses[dep].add(target) + queue.extend(graph[target]) +used = sorted(licenses.iterkeys()) + +print """\ +Gerrit Code Review - Licenses +============================= + +Gerrit open source software licensed under the <>. Executable distributions also include other software +components that are provided under additional licenses. + +[[cryptography]] +Cryptography Notice +------------------- + +This distribution includes cryptographic software. The country +in which you currently reside may have restrictions on the import, +possession, use, and/or re-export to another country, of encryption +software. BEFORE using any encryption software, please check +your country's laws, regulations and policies concerning the +import, possession, or use, and re-export of encryption software, +to see if this is permitted. See the +link:http://www.wassenaar.org/[Wassenaar Arrangement] +for more information. + +The U.S. Government Department of Commerce, Bureau of Industry +and Security (BIS), has classified this software as Export +Commodity Control Number (ECCN) 5D002.C.1, which includes +information security software using or performing cryptographic +functions with asymmetric algorithms. The form and manner of +this distribution makes it eligible for export under the License +Exception ENC Technology Software Unrestricted (TSU) exception +(see the BIS Export Administration Regulations, Section 740.13) +for both object code and source code. + +Gerrit includes an SSH daemon (Apache SSHD), to support authenticated +uploads of changes directly from `git push` command line clients. + +Gerrit includes an SSH client (JSch), to support authenticated +replication of changes to remote systems, such as for automatic +updates of mirror servers, or realtime backups. + +For either feature to function, Gerrit requires the +link:http://java.sun.com/javase/technologies/security/[Java Cryptography extensions] +and/or the +link:http://www.bouncycastle.org/java.html[Bouncy Castle Crypto API] +to be installed by the end-user. + +Licenses +-------- +""" + +for n in used: + libs = sorted(licenses[n]) + name = n[len('//lib:LICENSE-'):] + print + print '[[%s]]' % name + print name + print '~' * len(name) + print + for d in libs: + if d.startswith('//lib:') or d.startswith('//lib/'): + p = d[len('//lib:'):] + else: + p = d[d.index(':')+1:].lower() + print '* ' + p + print + print '----' + with open(n[2:].replace(':', '/')) as fd: + copyfileobj(fd, stdout) + print '----' + +print """ +GERRIT +------ +Part of link:index.html[Gerrit Code Review] +""" diff --git a/gerrit-acceptance-tests/BUCK b/gerrit-acceptance-tests/BUCK new file mode 100644 index 0000000000..7f69e486e1 --- /dev/null +++ b/gerrit-acceptance-tests/BUCK @@ -0,0 +1,22 @@ +TEST = [ + '//gerrit-httpd:httpd', + '//gerrit-sshd:sshd', + '//gerrit-server:server', +] + +java_test( + name = 'acceptance_tests', + srcs = glob(['src/test/java/**/*.java']), + deps = TEST + [ + '//gerrit-launcher:launcher', + '//gerrit-pgm:pgm', + '//lib:servlet-api-3_0', + '//lib:h2', + '//lib:junit', + '//lib/jgit:junit', + '//lib/openid:http-client', + ], + source_under_test = TEST, + labels = ['slow'], + visibility = ['//:eclipse_classpath'], +) diff --git a/gerrit-antlr/BUCK b/gerrit-antlr/BUCK new file mode 100644 index 0000000000..a37da60871 --- /dev/null +++ b/gerrit-antlr/BUCK @@ -0,0 +1,49 @@ +ANTLR_OUTS = [ + 'QueryLexer.java', + 'QueryParser.java', +] + +java_library( + name = 'antlr', + deps = [':query'], + visibility = ['PUBLIC'], +) + +java_library( + name = 'query_exception', + srcs = ['src/main/java/com/google/gerrit/server/query/QueryParseException.java'], +) + +genantlr( + name = 'query_antlr', + srcs = ['src/main/antlr3/com/google/gerrit/server/query/Query.g'], + outs = ANTLR_OUTS, +) + +java_library( + name = 'lib', + srcs = [genfile(f) for f in ANTLR_OUTS], + deps = [ + ':query_antlr', + ':query_exception', + '//lib/antlr:java_runtime', + ], +) + +genrule( + name = 'query_link', + cmd = 'ln -s $SRCS $OUT', + srcs = [genfile('lib__lib__output/lib.jar')], + deps = [':lib'], + out = 'query.jar', +) + +prebuilt_jar( + name = 'query', + binary_jar = genfile('query.jar'), + deps = [ + ':query_link', + ':query_exception', + '//lib/antlr:java_runtime', + ], +) diff --git a/gerrit-cache-h2/BUCK b/gerrit-cache-h2/BUCK new file mode 100644 index 0000000000..638f3dcb4a --- /dev/null +++ b/gerrit-cache-h2/BUCK @@ -0,0 +1,10 @@ +java_library( + name = 'cache-h2', + srcs = glob(['src/main/java/**/*.java']), + deps = [ + '//gerrit-server:server', + '//lib:guava', + '//lib:h2', + ], + visibility = ['PUBLIC'], +) diff --git a/gerrit-common/BUCK b/gerrit-common/BUCK new file mode 100644 index 0000000000..3e7b73c78c --- /dev/null +++ b/gerrit-common/BUCK @@ -0,0 +1,54 @@ +SRC = 'src/main/java/com/google/gerrit/' +VER = 'resources/com/google/gerrit/common/Version' + +gwt_module( + name = 'client', + srcs = glob([SRC + 'common/**/*.java']), + gwtxml = SRC + 'Common.gwt.xml', + deps = [ + '//gerrit-patch-jgit:client', + '//gerrit-prettify:client', + '//gerrit-reviewdb:client', + '//lib:jsr305', + ], + visibility = ['PUBLIC'], +) + +java_library( + name = 'server', + srcs = glob( + [SRC + 'common/**/*.java'], + excludes = [SRC + 'common/ClientVersion.java'], + ), + deps = [ + '//gerrit-patch-jgit:server', + '//gerrit-prettify:server', + '//gerrit-reviewdb:server', + '//lib:jsr305', + ], + visibility = ['PUBLIC'], +) + +java_library( + name = 'version', + resources = [genfile(VER)], + deps = [':git_describe'], + visibility = ['PUBLIC'], +) + +genrule( + name = 'git_describe', + cmd = 'mkdir -p $(dirname $OUT); git describe HEAD >$OUT', + srcs = [], + out = VER, +) + +java_test( + name = 'client_tests', + srcs = glob(['src/test/java/**/*.java']), + deps = [ + ':client', + '//lib:junit', + ], + source_under_test = [':client'], +) diff --git a/gerrit-extension-api/BUCK b/gerrit-extension-api/BUCK new file mode 100644 index 0000000000..25aba72201 --- /dev/null +++ b/gerrit-extension-api/BUCK @@ -0,0 +1,10 @@ +java_library2( + name = 'api', + srcs = glob(['src/main/java/com/google/gerrit/extensions/**/*.java']), + compile_deps = [ + '//lib/guice:guice', + '//lib/guice:guice-servlet', + '//lib:servlet-api-3_0', + ], + visibility = ['PUBLIC'], +) diff --git a/gerrit-gwtdebug/BUCK b/gerrit-gwtdebug/BUCK new file mode 100644 index 0000000000..605e5b1699 --- /dev/null +++ b/gerrit-gwtdebug/BUCK @@ -0,0 +1,6 @@ +java_library( + name = 'gwtdebug', + srcs = ['src/main/java/com/google/gerrit/gwtdebug/GerritDebugLauncher.java'], + deps = ['//lib/gwt:dev'], + visibility = ['//:eclipse_classpath'], +) diff --git a/gerrit-gwtdebug/src/main/java/com/google/gerrit/gwtdebug/GerritDebugLauncher.java b/gerrit-gwtdebug/src/main/java/com/google/gerrit/gwtdebug/GerritDebugLauncher.java index d23aa35dfe..a2a770ebe6 100644 --- a/gerrit-gwtdebug/src/main/java/com/google/gerrit/gwtdebug/GerritDebugLauncher.java +++ b/gerrit-gwtdebug/src/main/java/com/google/gerrit/gwtdebug/GerritDebugLauncher.java @@ -381,9 +381,15 @@ public class GerritDebugLauncher extends ServletContainerLauncher { Server server = new Server(); server.addConnector(connector); - // warDir is "$top/gerrit-gwtui/target/gwt-hosted-mode" - // - File top = warDir.getParentFile().getParentFile().getParentFile(); + File top; + String root = System.getProperty("gerrit.source_root"); + if (root != null) { + top = new File(root); + } else { + // Under Maven warDir is "$top/gerrit-gwtui/target/gwt-hosted-mode" + top = warDir.getParentFile().getParentFile().getParentFile(); + } + File app = new File(top, "gerrit-war/src/main/webapp"); File webxml = new File(app, "WEB-INF/web.xml"); diff --git a/gerrit-gwtexpui/BUCK b/gerrit-gwtexpui/BUCK new file mode 100644 index 0000000000..199e216aa6 --- /dev/null +++ b/gerrit-gwtexpui/BUCK @@ -0,0 +1,111 @@ +SRC = 'src/main/java/com/google/gwtexpui/' + +gwt_module( + name = 'Clippy', + srcs = glob([SRC + 'clippy/client/*.java']), + gwtxml = SRC + 'clippy/Clippy.gwt.xml', + resources = [SRC + 'clippy/client/clippy.css'], + deps = [ + ':SafeHtml', + ':UserAgent', + '//lib/gwt:user', + '//lib:LICENSE-clippy', + ], + visibility = ['PUBLIC'], +) + +genrule( + name = 'clippy_swf', + cmd = 'mkdir $TMP/gerrit_ui ;' + + 'cp $SRCS $TMP/gerrit_ui;' + + 'cd $TMP;' + + 'zip -qr $OUT gerrit_ui', + srcs = [SRC + 'clippy/public/gwtexpui_clippy1.cache.swf'], + out = 'clippy_swf.zip', + visibility = ['PUBLIC'], +) + +gwt_module( + name = 'CSS', + srcs = glob([SRC + 'css/rebind/*.java']), + gwtxml = SRC + 'css/CSS.gwt.xml', + deps = ['//lib/gwt:dev'], + visibility = ['PUBLIC'], +) + +gwt_module( + name = 'GlobalKey', + srcs = glob([SRC + 'globalkey/client/*.java']), + gwtxml = SRC + 'globalkey/GlobalKey.gwt.xml', + resources = [ + SRC + 'globalkey/client/KeyConstants.properties', + SRC + 'globalkey/client/key.css', + ], + deps = [ + ':SafeHtml', + ':UserAgent', + '//lib/gwt:user', + ], + visibility = ['PUBLIC'], +) + +gwt_module( + name = 'Linker', + srcs = glob([SRC + 'linker/rebind/*.java']), + gwtxml = SRC + 'linker/ServerPlannedIFrameLinker.gwt.xml', + deps = ['//lib/gwt:dev'], + visibility = ['PUBLIC'], +) + +java_library2( + name = 'linker_server', + srcs = glob([SRC + 'linker/server/*.java']), + compile_deps = ['//lib:servlet-api-3_0'], + visibility = ['PUBLIC'], +) + +gwt_module( + name = 'Progress', + srcs = glob([SRC + 'progress/client/*.java']), + gwtxml = SRC + 'progress/Progress.gwt.xml', + resources = [SRC + 'progress/client/progress.css'], + deps = ['//lib/gwt:user'], + visibility = ['PUBLIC'], +) + +gwt_module( + name = 'SafeHtml', + srcs = glob([SRC + 'safehtml/client/*.java']), + gwtxml = SRC + 'safehtml/SafeHtml.gwt.xml', + resources = [SRC + 'safehtml/client/safehtml.css'], + deps = ['//lib/gwt:user'], + visibility = ['PUBLIC'], +) + +java_test( + name = 'SafeHtml_tests', + srcs = glob([ + 'src/test/java/com/google/gwtexpui/safehtml/client/**/*.java', + ]), + deps = [ + ':SafeHtml', + '//lib:junit', + '//lib/gwt:dev', + ], + source_under_test = [':SafeHtml'], +) + +gwt_module( + name = 'UserAgent', + srcs = glob([SRC + 'user/client/*.java']), + gwtxml = SRC + 'user/User.gwt.xml', + deps = ['//lib/gwt:user'], + visibility = ['PUBLIC'], +) + +java_library2( + name = 'server', + srcs = glob([SRC + 'server/*.java']), + compile_deps = ['//lib:servlet-api-3_0'], + visibility = ['PUBLIC'], +) diff --git a/gerrit-gwtui/BUCK b/gerrit-gwtui/BUCK new file mode 100644 index 0000000000..3591eba11e --- /dev/null +++ b/gerrit-gwtui/BUCK @@ -0,0 +1,92 @@ +include_defs('//gerrit-gwtui/DEFS') + +genrule( + name = 'ui_optdbg', + cmd = 'cd $TMP;' + + 'unzip -q $SRCDIR/ui_dbg.zip;' + + 'mv' + + ' gerrit_ui/gerrit_ui.nocache.js' + + ' gerrit_ui/gerrit_dbg.nocache.js;' + + 'unzip -qo $SRCDIR/ui_opt.zip;' + + 'mkdir -p $(dirname $OUT);' + + 'zip -qr $OUT .', + srcs = [ + genfile('ui_dbg.zip'), + genfile('ui_opt.zip'), + ], + deps = [ + ':ui_dbg', + ':ui_opt', + ], + out = 'ui_optdbg.zip', + visibility = ['PUBLIC'], +) + +gwt_application( + name = 'ui_opt', + module_target = MODULE, + compiler_opts = [ + '-strict', + '-style', 'OBF', + '-optimize', '9', + '-XdisableClassMetadata', + '-XdisableCastChecking', + ], + deps = APP_DEPS, +) + +gwt_application( + name = 'ui_dbg', + module_target = MODULE, + compiler_opts = DEBUG_OPTS + ['-strict'], + deps = APP_DEPS, + visibility = ['//:eclipse'], +) + +gwt_user_agent_permutations( + name = 'ui', + module_name = 'gerrit_ui', + module_target = MODULE, + compiler_opts = DEBUG_OPTS + ['-draftCompile'], + browsers = BROWSERS, + deps = APP_DEPS, + visibility = ['//:'], +) + +gwt_module( + name = 'ui_module', + srcs = glob(['src/main/java/**/*.java']), + gwtxml = 'src/main/java/%s.gwt.xml' % MODULE.replace('.', '/'), + resources = glob(['src/main/java/**/*']), + deps = [ + '//gerrit-gwtexpui:Clippy', + '//gerrit-gwtexpui:CSS', + '//gerrit-gwtexpui:GlobalKey', + '//gerrit-gwtexpui:Linker', + '//gerrit-gwtexpui:Progress', + '//gerrit-gwtexpui:SafeHtml', + '//gerrit-gwtexpui:UserAgent', + '//gerrit-common:client', + '//gerrit-patch-jgit:client', + '//gerrit-prettify:client', + '//gerrit-reviewdb:client', + '//lib:gwtjsonrpc', + '//lib:gwtjsonrpc_src', + '//lib/gwt:user', + ], + visibility = [ + '//:eclipse_classpath', + '//Documentation:licenses.txt', + ], +) + +java_test( + name = 'ui_tests', + srcs = glob(['src/test/java/**/*.java']), + deps = [ + ':ui_module', + '//lib:junit', + '//lib/gwt:dev', + ], + source_under_test = [':ui_module'], +) diff --git a/gerrit-gwtui/DEFS b/gerrit-gwtui/DEFS new file mode 100644 index 0000000000..baffdbb7e0 --- /dev/null +++ b/gerrit-gwtui/DEFS @@ -0,0 +1,78 @@ +# Copyright (C) 2013 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +BROWSERS = [ + 'chrome', + 'firefox', + 'gecko1_8', + 'safari', + 'msie', 'ie6', 'ie8', 'ie9', +] +ALIASES = { + 'chrome': 'safari', + 'firefox': 'gecko1_8', + 'msie': 'ie9', +} +MODULE = 'com.google.gerrit.GerritGwtUI' + +DEBUG_OPTS = [ + '-style', 'PRETTY', + '-optimize', '0', +] + +APP_DEPS = [ + ':ui_module', + '//gerrit-common:version', +] + +def gwt_user_agent_permutations( + name, + module_name, + module_target, + compiler_opts = [], + deps = [], + browsers = [], + visibility = []): + for ua in browsers: + impl = ua + if ua in ALIASES: + impl = ALIASES[ua] + xml = ''.join([ + "" % module_name, + "" % module_target, + "" % impl, + "", + "", + ]) + gwt = 'resources/%s_%s.gwt.xml' % (module_target.replace('.', '/'), ua) + genrule( + name = '%s_%s_gwtxml_gen' % (name, ua), + cmd = 'mkdir -p $(dirname $OUT);echo "%s">$OUT' % xml, + srcs = [], + deps = [], + out = gwt, + ) + java_library( + name = '%s_%s_gwtxml_lib' % (name, ua), + resources = [genfile(gwt)], + deps = [':%s_%s_gwtxml_gen' % (name, ua)], + ) + gwt_application( + name = '%s_%s' % (name, ua), + module_target = module_target + '_' + ua, + compiler_opts = compiler_opts, + deps = deps + [':%s_%s_gwtxml_lib' % (name, ua)], + visibility = visibility, + ) + diff --git a/gerrit-httpd/BUCK b/gerrit-httpd/BUCK new file mode 100644 index 0000000000..6bb3ab5735 --- /dev/null +++ b/gerrit-httpd/BUCK @@ -0,0 +1,32 @@ +java_library2( + name = 'httpd', + srcs = glob(['src/main/java/**/*.java']), + resources = glob(['src/main/resources/**/*']), + deps = [ + '//gerrit-gwtexpui:linker_server', + '//gerrit-gwtexpui:server', + '//gerrit-prettify:server', + '//gerrit-server:server', + '//lib:gwtjsonrpc', + '//lib:jsr305', + '//lib:mime-util', + '//lib:servlet-api-3_0', + '//lib/jgit:jgit-servlet', + ], + visibility = ['PUBLIC'], +) + +java_test( + name = 'httpd_tests', + srcs = glob(['src/test/java/**/*.java']), + deps = [ + ':httpd', + '//lib:easymock', + '//lib:junit', + '//lib:servlet-api-3_0', + '//lib/jgit:junit', + ], + source_under_test = [':httpd'], + # TODO(sop) Remove after Buck supports Eclipse + visibility = ['//:eclipse_classpath'], +) diff --git a/gerrit-launcher/BUCK b/gerrit-launcher/BUCK new file mode 100644 index 0000000000..8e6cb4c467 --- /dev/null +++ b/gerrit-launcher/BUCK @@ -0,0 +1,9 @@ +java_library( + name = 'launcher', + srcs = glob(['src/main/java/**/*.java']), + visibility = [ + '//gerrit-acceptance-tests:', + '//gerrit-main:main_lib', + '//gerrit-pgm:', + ], +) diff --git a/gerrit-main/BUCK b/gerrit-main/BUCK new file mode 100644 index 0000000000..b6958626a2 --- /dev/null +++ b/gerrit-main/BUCK @@ -0,0 +1,13 @@ +java_binary( + name = 'main_bin', + main_class = 'Main', + deps = [':main_lib'], + visibility = ['PUBLIC'], +) + +java_library( + name = 'main_lib', + srcs = ['src/main/java/Main.java'], + deps = ['//gerrit-launcher:launcher'], + visibility = ['//:eclipse_classpath'], +) diff --git a/gerrit-openid/BUCK b/gerrit-openid/BUCK new file mode 100644 index 0000000000..582a7de0ba --- /dev/null +++ b/gerrit-openid/BUCK @@ -0,0 +1,17 @@ +java_library( + name = 'openid', + srcs = glob(['src/main/java/**/*.java']), + resources = glob(['src/main/resources/**/*']), + deps = [ + '//gerrit-common:server', + '//gerrit-extension-api:api', + '//gerrit-httpd:httpd', + '//lib:guava', + '//lib:jsr305', + '//lib:servlet-api-3_0', + '//lib/guice:guice', + '//lib/log:api', + '//lib/openid:consumer', + ], + visibility = ['PUBLIC'], +) diff --git a/gerrit-patch-commonsnet/BUCK b/gerrit-patch-commonsnet/BUCK new file mode 100644 index 0000000000..53b382f8ea --- /dev/null +++ b/gerrit-patch-commonsnet/BUCK @@ -0,0 +1,11 @@ +java_library( + name = 'commons-net', + srcs = glob(['src/main/java/org/apache/commons/net/**/*.java']), + deps = [ + '//gerrit-util-ssl:ssl', + '//lib/commons:codec', + '//lib/commons:net', + '//lib/log:api', + ], + visibility = ['PUBLIC'], +) diff --git a/gerrit-patch-jgit/BUCK b/gerrit-patch-jgit/BUCK new file mode 100644 index 0000000000..18890acf24 --- /dev/null +++ b/gerrit-patch-jgit/BUCK @@ -0,0 +1,32 @@ +SRC = 'src/main/java/org/eclipse/jgit/' + +gwt_module( + name = 'client', + srcs = [ + SRC + 'diff/Edit_JsonSerializer.java', + SRC + 'diff/ReplaceEdit.java', + ], + gwtxml = SRC + 'JGit.gwt.xml', + deps = [ + '//lib:gwtjsonrpc', + '//lib/gwt:user', + '//lib/jgit:jgit', + '//lib/jgit:Edit', + ], + visibility = ['PUBLIC'], +) + +java_library( + name = 'server', + srcs = [ + SRC + 'diff/EditDeserializer.java', + SRC + 'diff/ReplaceEdit.java', + SRC + 'internal/storage/file/WindowCacheStatAccessor.java', + SRC + 'lib/ObjectIdSerialization.java', + ], + deps = [ + '//lib:gson', + '//lib/jgit:jgit', + ], + visibility = ['PUBLIC'], +) diff --git a/gerrit-pgm/BUCK b/gerrit-pgm/BUCK new file mode 100644 index 0000000000..77a66b3270 --- /dev/null +++ b/gerrit-pgm/BUCK @@ -0,0 +1,38 @@ +java_library2( + name = 'pgm', + srcs = glob(['src/main/java/**/*.java']), + resources = glob(['src/main/resources/**/*']), + deps = [ + '//gerrit-server:common_rules', + '//gerrit-server:server', + '//gerrit-httpd:httpd', + '//gerrit-sshd:sshd', + + '//gerrit-cache-h2:cache-h2', + '//gerrit-openid:openid', + + '//gerrit-util-cli:cli', + '//lib/jetty:servlet', + '//lib/log:log4j', + ], + compile_deps = [ + '//gerrit-launcher:launcher', + ], + visibility = [ + '//:', + '//gerrit-acceptance-tests:', + '//Documentation:licenses.txt', + ], +) + +java_test( + name = 'pgm_tests', + srcs = glob(['src/test/java/**/*.java']), + deps = [ + ':pgm', + '//lib:junit', + '//lib:easymock', + '//lib/jgit:junit', + ], + source_under_test = [':pgm'], +) diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/JettyServer.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/JettyServer.java index 3a7a874d95..d99326e114 100644 --- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/JettyServer.java +++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/JettyServer.java @@ -17,6 +17,7 @@ package com.google.gerrit.pgm.http.jetty; import static java.util.concurrent.TimeUnit.MILLISECONDS; import static java.util.concurrent.TimeUnit.SECONDS; +import com.google.common.io.ByteStreams; import com.google.gerrit.extensions.events.LifecycleListener; import com.google.gerrit.launcher.GerritLauncher; import com.google.gerrit.reviewdb.client.AuthType; @@ -49,12 +50,15 @@ import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.eclipse.jetty.util.thread.ThreadPool; import org.eclipse.jgit.lib.Config; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.io.InterruptedIOException; import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; @@ -72,6 +76,8 @@ import javax.servlet.DispatcherType; @Singleton public class JettyServer { + private static final Logger log = LoggerFactory.getLogger(JettyServer.class); + static class Lifecycle implements LifecycleListener { private final JettyServer server; @@ -368,7 +374,7 @@ public class JettyServer { private Resource getBaseResource() throws IOException { if (baseResource == null) { try { - baseResource = unpackWar(); + baseResource = unpackWar(GerritLauncher.getDistributionArchive()); } catch (FileNotFoundException err) { if (err.getMessage() == GerritLauncher.NOT_ARCHIVED) { baseResource = useDeveloperBuild(); @@ -380,9 +386,7 @@ public class JettyServer { return baseResource; } - private Resource unpackWar() throws IOException { - final File srcwar = GerritLauncher.getDistributionArchive(); - + private Resource unpackWar(File srcwar) throws IOException { // Obtain our local temporary directory, but it comes back as a file // so we have to switch it to be a directory post creation. // @@ -474,15 +478,70 @@ public class JettyServer { dir = dir.getParentFile(); } - // We should be in a Maven style output, that is $jar/target/classes. - // if (!dir.getName().equals("classes")) { throw new FileNotFoundException("Cannot find web root from " + u); } dir = dir.getParentFile(); // pop classes - if (!dir.getName().equals("target")) { + + if ("buck-out".equals(dir.getName())) { + String pkg = "gerrit-gwtui"; + String target = targetForBrowser(System.getProperty("gerrit.browser")); + File gen = new File(dir, "gen"); + String out = new File(new File(gen, pkg), target).getAbsolutePath(); + build(dir.getParentFile(), out + ".rebuild", "//" + pkg + ":" + target); + return unpackWar(new File(out + ".zip")); + } else if ("target".equals(dir.getName())) { + return useMavenDeveloperBuild(dir); + } else { throw new FileNotFoundException("Cannot find web root from " + u); } + } + + private static String targetForBrowser(String browser) { + if (browser == null || browser.isEmpty()) { + return "ui_dbg"; + } else if (browser.startsWith("ui_")) { + return browser; + } else { + return "ui_" + browser; + } + } + + private static void build(File root, String cmd, String target) + throws IOException { + long start = System.currentTimeMillis(); + log.info("buck build " + target); + Process rebuild = new ProcessBuilder(cmd, target) + .directory(root) + .redirectErrorStream(true) + .start(); + + byte[] out; + InputStream in = rebuild.getInputStream(); + try { + out = ByteStreams.toByteArray(in); + } finally { + rebuild.getOutputStream().close(); + in.close(); + } + + int status; + try { + status = rebuild.waitFor(); + } catch (InterruptedException e) { + throw new InterruptedIOException("interrupted waiting for " + cmd); + } + if (status != 0) { + System.err.write(out); + System.err.println(); + System.exit(status); + } + + long time = System.currentTimeMillis() - start; + log.info(String.format("UPDATED %s in %.3fs", target, time / 1000.0)); + } + + private Resource useMavenDeveloperBuild(File dir) throws IOException { dir = dir.getParentFile(); // pop target dir = dir.getParentFile(); // pop the module we are in diff --git a/gerrit-pgm/src/main/resources/com/google/gerrit/pgm/libraries.config b/gerrit-pgm/src/main/resources/com/google/gerrit/pgm/libraries.config index f1ecadda36..a5150e67d7 100644 --- a/gerrit-pgm/src/main/resources/com/google/gerrit/pgm/libraries.config +++ b/gerrit-pgm/src/main/resources/com/google/gerrit/pgm/libraries.config @@ -13,6 +13,7 @@ # limitations under the License. +# Version should match lib/bouncycastle/BUCK [library "bouncyCastle"] name = Bouncy Castle Crypto v144 url = http://www.bouncycastle.org/download/bcprov-jdk16-144.jar diff --git a/gerrit-prettify/BUCK b/gerrit-prettify/BUCK new file mode 100644 index 0000000000..79dc76010a --- /dev/null +++ b/gerrit-prettify/BUCK @@ -0,0 +1,47 @@ +SRC = 'src/main/java/com/google/gerrit/prettify/' + +gwt_module( + name = 'client', + srcs = glob([ + SRC + 'client/**/*.java', + SRC + 'common/**/*.java', + ]), + gwtxml = SRC + 'PrettyFormatter.gwt.xml', + resources = glob([ + 'src/main/java/com/google/gerrit/prettify/client/*.properties', + ]), + deps = [ + ':google-code-prettify', + '//gerrit-patch-jgit:client', + '//gerrit-reviewdb:client', + '//gerrit-gwtexpui:SafeHtml', + '//lib:guava', + '//lib:gwtjsonrpc', + '//lib/gwt:user', + '//lib/jgit:jgit', + ], + visibility = ['PUBLIC'], +) + +java_library( + name = 'google-code-prettify', + resources = glob([ + 'src/main/resources/com/google/gerrit/prettify/client/**/*', + ]), + deps = [ + '//lib:LICENSE-Apache2.0', + ], +) + +java_library( + name = 'server', + srcs = glob([SRC + 'common/**/*.java']), + deps = [ + '//gerrit-patch-jgit:server', + '//gerrit-reviewdb:server', + '//lib:guava', + '//lib:gwtjsonrpc', + '//lib/jgit:jgit', + ], + visibility = ['PUBLIC'], +) diff --git a/gerrit-reviewdb/BUCK b/gerrit-reviewdb/BUCK new file mode 100644 index 0000000000..05674cf1aa --- /dev/null +++ b/gerrit-reviewdb/BUCK @@ -0,0 +1,20 @@ +SRC = 'src/main/java/com/google/gerrit/reviewdb/' + +gwt_module( + name = 'client', + srcs = glob([SRC + 'client/**/*.java']), + gwtxml = SRC + 'ReviewDB.gwt.xml', + deps = [ + '//lib:gwtorm', + '//lib:gwtorm_src' + ], + visibility = ['PUBLIC'], +) + +java_library( + name = 'server', + srcs = glob([SRC + '**/*.java']), + resources = glob(['src/main/resources/**/*']), + deps = ['//lib:gwtorm'], + visibility = ['PUBLIC'], +) diff --git a/gerrit-server/BUCK b/gerrit-server/BUCK new file mode 100644 index 0000000000..86cad4e8a0 --- /dev/null +++ b/gerrit-server/BUCK @@ -0,0 +1,61 @@ +include_defs('//lib/prolog/DEFS') + +java_library2( + name = 'server', + srcs = glob(['src/main/java/**/*.java']), + resources = glob(['src/main/resources/**/*']), + deps = [ + '//gerrit-antlr:antlr', + '//gerrit-common:server', + '//gerrit-extension-api:api', + '//gerrit-util-cli:cli', + '//gerrit-util-ssl:ssl', + '//gerrit-patch-commonsnet:commons-net', + '//lib:automaton', + '//lib:guava', + '//lib:jsch', + '//lib:jsr305', + '//lib:juniversalchardet', + '//lib:mime-util', + '//lib:ow2-asm', + '//lib:ow2-asm-tree', + '//lib:ow2-asm-util', + '//lib:pegdown', + '//lib:velocity', + '//lib/commons:dbcp', + '//lib/commons:lang', + '//lib/commons:net', + '//lib/guice:guice', + '//lib/guice:guice-assistedinject', + '//lib/guice:guice-servlet', + '//lib/jgit:jgit', + '//lib/log:api', + '//lib/prolog:prolog-cafe', + ], + compile_deps = [ + '//lib/bouncycastle:bcpg', + ], + visibility = ['PUBLIC'], +) + +prolog_cafe_library( + name = 'common_rules', + srcs = ['src/main/prolog/gerrit_common.pl'], + deps = [':server'], + visibility = ['PUBLIC'], +) + +java_test( + name = 'server_tests', + srcs = glob(['src/test/java/**/*.java']), + resources = glob(['src/test/resources/**/*']), + deps = [ + ':server', + ':common_rules', + '//lib:h2', + '//lib:junit', + '//lib:easymock', + '//lib/jgit:junit', + ], + source_under_test = [':server'], +) diff --git a/gerrit-sshd/BUCK b/gerrit-sshd/BUCK new file mode 100644 index 0000000000..72e63cbf42 --- /dev/null +++ b/gerrit-sshd/BUCK @@ -0,0 +1,17 @@ +java_library2( + name = 'sshd', + srcs = glob(['src/main/java/**/*.java']), + deps = [ + '//gerrit-cache-h2:cache-h2', + '//gerrit-server:server', + '//gerrit-util-cli:cli', + '//lib/log:api', + '//lib/log:log4j', + '//lib/mina:core', + '//lib/mina:sshd', + ], + compile_deps = [ + '//lib/bouncycastle:bcprov', + ], + visibility = ['PUBLIC'], +) diff --git a/gerrit-util-cli/BUCK b/gerrit-util-cli/BUCK new file mode 100644 index 0000000000..c281e86b47 --- /dev/null +++ b/gerrit-util-cli/BUCK @@ -0,0 +1,11 @@ +java_library( + name = 'cli', + srcs = glob(['src/main/java/**/*.java']), + deps = [ + '//lib:args4j', + '//lib:guava', + '//lib/guice:guice', + '//lib/guice:guice-assistedinject', + ], + visibility = ['PUBLIC'], +) diff --git a/gerrit-util-ssl/BUCK b/gerrit-util-ssl/BUCK new file mode 100644 index 0000000000..068f34ca85 --- /dev/null +++ b/gerrit-util-ssl/BUCK @@ -0,0 +1,5 @@ +java_library( + name = 'ssl', + srcs = glob(['src/main/java/**/*.java']), + visibility = ['PUBLIC'], +) diff --git a/gerrit-war/BUCK b/gerrit-war/BUCK new file mode 100644 index 0000000000..5c1f9f8ee1 --- /dev/null +++ b/gerrit-war/BUCK @@ -0,0 +1,40 @@ +java_library( + name = 'init', + srcs = glob(['src/main/java/**/*.java']), + deps = [ + '//gerrit-server:common_rules', + '//gerrit-server:server', + '//gerrit-httpd:httpd', + '//gerrit-sshd:sshd', + '//gerrit-cache-h2:cache-h2', + '//gerrit-openid:openid', + ], + visibility = [ + '//:', + '//gerrit-gwtdebug:gwtdebug', + ], +) + +genrule( + name = 'webapp_assets', + cmd = 'cd $(dirname $OUT)/webapp_assets__srcs/src/main/webapp && ' + + 'zip -qr $OUT .', + srcs = glob(['src/main/webapp/**/*']), + deps = [], + out = 'webapp_assets.zip', + visibility = ['//:'], +) + +genrule( + name = 'log4j-config__jar', + cmd = 'jar cf $OUT -C $(dirname $SRCS) .', + srcs = ['src/main/resources/log4j.properties'], + out = 'log4j-config.jar', +) + +prebuilt_jar( + name = 'log4j-config', + binary_jar = genfile('log4j-config.jar'), + deps = [':log4j-config__jar'], + visibility = ['//:'], +) diff --git a/lib/BUCK b/lib/BUCK new file mode 100644 index 0000000000..5b44932eff --- /dev/null +++ b/lib/BUCK @@ -0,0 +1,249 @@ +include_defs('//lib/maven.defs') + +define_license(name = 'Apache1.1') +define_license(name = 'Apache2.0') +define_license(name = 'MPL1.1') +define_license(name = 'PublicDomain') +define_license(name = 'antlr') +define_license(name = 'args4j') +define_license(name = 'automaton') +define_license(name = 'bouncycastle') +define_license(name = 'clippy') +define_license(name = 'h2') +define_license(name = 'jgit') +define_license(name = 'jsch') +define_license(name = 'jsr305') +define_license(name = 'ow2') +define_license(name = 'postgresql') +define_license(name = 'prologcafe') +define_license(name = 'slf4j') +define_license(name = 'DO_NOT_DISTRIBUTE') + +maven_jar( + name = 'gwtorm', + id = 'gwtorm:gwtorm:1.6', + bin_sha1 = '61bcb92f438524260429149910b5261d48812419', + src_sha1 = '2624f9d6a750a8aa8f9a5d4b5062b70cd12d1ae7', + license = 'Apache2.0', + repository = GERRIT, +) + +maven_jar( + name = 'gwtjsonrpc', + id = 'gwtjsonrpc:gwtjsonrpc:1.3', + bin_sha1 = '1717ba11ab0c5160798c80085220a63f864691d3', + src_sha1 = '9e01c5d7bd54f8e70066450b372a43c16404789e', + license = 'Apache2.0', + repository = GERRIT, +) + +maven_jar( + name = 'gson', + id = 'com.google.code.gson:gson:2.1', + sha1 = '2e66da15851f9f5b5079228f856c2f090ba98c38', + license = 'Apache2.0', +) + +maven_jar( + name = 'guava', + id = 'com.google.guava:guava:14.0', + sha1 = '67b7be4ee7ba48e4828a42d6d5069761186d4a53', + license = 'Apache2.0', +) + +maven_jar( + name = 'asm3', + id = 'asm:asm:3.2', + sha1 = '9bc1511dec6adf302991ced13303e4140fdf9ab7', + license = 'ow2', + attach_source = False, +) + +maven_jar( + name = 'ow2-asm', + id = 'org.ow2.asm:asm:4.0', + sha1 = '659add6efc75a4715d738e73f07505246edf4d66', + license = 'ow2', +) + +maven_jar( + name = 'ow2-asm-analysis', + id = 'org.ow2.asm:asm-analysis:4.0', + sha1 = '1c45d52b6f6c638db13cf3ac12adeb56b254cdd7', + license = 'ow2', +) + +maven_jar( + name = 'ow2-asm-tree', + id = 'org.ow2.asm:asm-tree:4.0', + sha1 = '67bd266cd17adcee486b76952ece4cc85fe248b8', + license = 'ow2', +) + +maven_jar( + name = 'ow2-asm-util', + id = 'org.ow2.asm:asm-util:4.0', + sha1 = 'd7a65f54cda284f9706a750c23d64830bb740c39', + license = 'ow2', +) + +maven_jar( + name = 'velocity', + id = 'org.apache.velocity:velocity:1.6.4', + sha1 = 'fcc58693dd8fc83d714fba149789be37cc19b66d', + license = 'Apache2.0', + deps = [ + '//lib/commons:collections', + '//lib/commons:lang', + '//lib/commons:oro', + ], + exclude = ['META-INF/LICENSE', 'META-INF/NOTICE'], +) + +maven_jar( + name = 'jsch', + id = 'com.jcraft:jsch:0.1.44-1', + sha1 = '2e9ae08de5a71bd0e0d3ba2558598181bfa71d4e', + license = 'jsch', +) + +maven_jar( + name = 'servlet-api-3_0', + id = 'org.apache.tomcat:tomcat-servlet-api:7.0.32', + sha1 = 'e2f21e9868414122e6dd23ac66cf304d4290642c', + license = 'Apache2.0', + exclude = ['META-INF/NOTICE', 'META-INF/LICENSE'], +) + +maven_jar( + name = 'jsr305', + id = 'com.google.code.findbugs:jsr305:1.3.9', + sha1 = '40719ea6961c0cb6afaeb6a921eaa1f6afd4cfdf', + license = 'jsr305', + attach_source = False, + exclude_java_sources = True, +) + +maven_jar( + name = 'args4j', + id = 'args4j:args4j:2.0.16', + sha1 = '9f00fb12820743b9e05c686eba543d64dd43f2b1', + license = 'args4j', +) + +maven_jar( + name = 'mime-util', + id = 'eu.medsea.mimeutil:mime-util:2.1.3', + sha1 = '0c9cfae15c74f62491d4f28def0dff1dabe52a47', + license = 'Apache2.0', + exclude = ['LICENSE.txt', 'README.txt'], + attach_source = False, +) + +maven_jar( + name = 'juniversalchardet', + id = 'com.googlecode.juniversalchardet:juniversalchardet:1.0.3', + sha1 = 'cd49678784c46aa8789c060538e0154013bb421b', + license = 'MPL1.1', +) + +maven_jar( + name = 'automaton', + id = 'dk.brics.automaton:automaton:1.11-8', + sha1 = '6ebfa65eb431ff4b715a23be7a750cbc4cc96d0f', + license = 'automaton', +) + +maven_jar( + name = 'pegdown', + id = 'org.pegdown:pegdown:1.1.0', + sha1 = '00bcc0c5b025b09ab85bb80a8311ce5c015d005b', + license = 'Apache2.0', + deps = [':parboiled-java'], + exclude = ['META-INF/LICENSE', 'META-INF/NOTICE'], +) + +maven_jar( + name = 'parboiled-core', + id = 'org.parboiled:parboiled-core:1.1.3', + sha1 = '3fc3013adf98701efcc594a1ea99a3f841dc81bb', + license = 'Apache2.0', + attach_source = False, + visibility = [], +) + +maven_jar( + name = 'parboiled-java', + id = 'org.parboiled:parboiled-java:1.1.3', + sha1 = 'c2bf2935a8b3eca5f998557190cd6eb34f5536d0', + license = 'Apache2.0', + deps = [ + ':parboiled-core', + ':ow2-asm-tree', + ':ow2-asm-analysis', + ':ow2-asm-util', + ], + attach_source = False, + visibility = [], +) + +maven_jar( + name = 'h2', + id = 'com.h2database:h2:1.3.168', + sha1 = 'eb32936a239d95220f5b2d2973a7b17372f98b54', + license = 'h2', + attach_source = False, +) + +maven_jar( + name = 'postgresql', + id = 'postgresql:postgresql:9.1-901-1.jdbc4', + sha1 = '9bfabe48876ec38f6cbaa6931bad05c64a9ea942', + license = 'postgresql', + attach_source = False, +) + +maven_jar( + name = 'junit', + id = 'junit:junit:4.11', + sha1 = '4e031bb61df09069aeb2bffb4019e7a5034a4ee0', + license = 'DO_NOT_DISTRIBUTE', + deps = [':hamcrest-core'], +) + +maven_jar( + name = 'hamcrest-core', + id = 'org.hamcrest:hamcrest-core:1.3', + sha1 = '42a25dc3219429f0e5d060061f71acb49bf010a0', + license = 'DO_NOT_DISTRIBUTE', + visibility = ['//lib:junit'], +) + +maven_jar( + name = 'easymock', + id = 'org.easymock:easymock:3.1', + sha1 = '3e127311a86fc2e8f550ef8ee4abe094bbcf7e7e', + license = 'DO_NOT_DISTRIBUTE', + deps = [ + ':cglib-2_2', + ':objenesis', + ], +) + +maven_jar( + name = 'cglib-2_2', + id = 'cglib:cglib-nodep:2.2.2', + sha1 = '00d456bb230c70c0b95c76fb28e429d42f275941', + license = 'DO_NOT_DISTRIBUTE', + visibility = ['//lib:easymock'], + attach_source = False, +) + +maven_jar( + name = 'objenesis', + id = 'org.objenesis:objenesis:1.2', + sha1 = 'bfcb0539a071a4c5a30690388903ac48c0667f2a', + license = 'DO_NOT_DISTRIBUTE', + visibility = ['//lib:easymock'], + attach_source = False, +) diff --git a/lib/DEFS b/lib/DEFS new file mode 100644 index 0000000000..c7f975cdc8 --- /dev/null +++ b/lib/DEFS @@ -0,0 +1,158 @@ +# Copyright (C) 2013 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +def genantlr( + name, + srcs, + outs): + genrule( + name = name, + srcs = srcs, + cmd = '${//lib/antlr:antlr-tool} -o $(dirname $OUT) $SRCS', + deps = ['//lib/antlr:antlr-tool'], + out = outs[0], + ) + +def gwt_module( + name, + srcs, + gwtxml = None, + resources = [], + deps = [], + visibility = []): + if gwtxml: + resources = resources + [gwtxml] + resources = resources + srcs + java_library( + name = name, + srcs = srcs, + deps = deps, + resources = resources, + visibility = visibility, + ) + +def gwt_application( + name, + module_target, + compiler_opts = [], + compiler_jvm_flags = [], + deps = [], + visibility = []): + cmd = ['${//lib/gwt:compiler}', module_target, '$OUT'] + cmd += compiler_opts + ['--', '$DEPS'] + genrule( + name = name, + srcs = [], + cmd = ' '.join(cmd), + deps = [ + '//lib/gwt:compiler', + '//lib/gwt:dev', + ] + deps, + out = '%s.zip' % name, + visibility = visibility, + ) + +# Compiles a Java library with additional compile-time dependencies +# that do not show up as transitive dependencies to java_library() +# or java_binary() rule that depends on this library. +def java_library2( + name, + srcs = [], + resources = [], + deps = [], + compile_deps = [], + visibility = []): + c = name + '__compile' + t = name + '__link' + j = 'lib__%s__output/%s.jar' % (c, c) + o = 'lib__%s__output/%s.jar' % (name, name) + java_library( + name = c, + srcs = srcs, + resources = resources, + deps = deps + compile_deps, + visibility = ['//:eclipse_classpath'], + ) + # Break the dependency chain by passing the newly built + # JAR to consumers through a prebuilt_jar(). + genrule( + name = t, + cmd = 'mkdir -p $(dirname $OUT);ln -s $SRCS $OUT', + srcs = [genfile(j)], + deps = [':' + c], + out = o, + ) + prebuilt_jar( + name = name, + binary_jar = genfile(o), + deps = deps + [':' + t], + visibility = visibility, + ) + +def gerrit_extension( + name, + deps = [], + srcs = [], + resources = [], + manifest_file = None, + visibility = ['PUBLIC']): + gerrit_plugin( + name = name, + deps = deps, + srcs = srcs, + resources = resources, + manifest_file = manifest_file, + type = 'extension', + visibility = visibility, + ) + +def gerrit_plugin( + name, + deps = [], + srcs = [], + resources = [], + manifest_file = None, + type = 'plugin', + visibility = ['PUBLIC']): + mf_cmd = 'v=$(git describe HEAD);' + if manifest_file: + mf_src = [manifest_file] + mf_cmd += 'sed "s:@VERSION@:$v:g" $SRCS >$OUT' + else: + mf_src = [] + mf_cmd += 'echo "Manifest-Version: 1.0" >$OUT;' + mf_cmd += 'echo "Gerrit-ApiType: %s" >>$OUT;' % type + mf_cmd += 'echo "Implementation-Version: $v" >>$OUT' + genrule( + name = name + '__manifest', + cmd = mf_cmd, + srcs = mf_src, + out = 'MANIFEST.MF', + ) + java_library2( + name = name + '__plugin', + srcs = srcs, + resources = resources, + deps = deps, + compile_deps = ['//:%s-lib' % type], + ) + java_binary( + name = name, + manifest_file = genfile('MANIFEST.MF'), + deps = [ + ':%s__plugin' % name, + ':%s__manifest' % name, + ], + visibility = visibility, + ) diff --git a/lib/LICENSE-Apache1.1 b/lib/LICENSE-Apache1.1 new file mode 100644 index 0000000000..8eda4fc366 --- /dev/null +++ b/lib/LICENSE-Apache1.1 @@ -0,0 +1,51 @@ +The Apache Software License, Version 1.1 + +Copyright (c) 2000-2002 The Apache Software Foundation. All rights +reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. The end-user documentation included with the redistribution, + if any, must include the following acknowledgment: + "This product includes software developed by the + Apache Software Foundation (http://www.apache.org/)." + Alternately, this acknowledgment may appear in the software itself, + if and wherever such third-party acknowledgments normally appear. + +4. The names "Apache" and "Apache Software Foundation", "Jakarta-Oro" + must not be used to endorse or promote products derived from this + software without prior written permission. For written + permission, please contact apache@apache.org. + +5. Products derived from this software may not be called "Apache" + or "Jakarta-Oro", nor may "Apache" or "Jakarta-Oro" appear in their + name, without prior written permission of the Apache Software Foundation. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. +==================================================================== + +This software consists of voluntary contributions made by many +individuals on behalf of the Apache Software Foundation. For more +information on the Apache Software Foundation, please see +. diff --git a/lib/LICENSE-Apache2.0 b/lib/LICENSE-Apache2.0 new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/lib/LICENSE-Apache2.0 @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lib/LICENSE-DO_NOT_DISTRIBUTE b/lib/LICENSE-DO_NOT_DISTRIBUTE new file mode 100644 index 0000000000..e69de29bb2 diff --git a/lib/LICENSE-MPL1.1 b/lib/LICENSE-MPL1.1 new file mode 100644 index 0000000000..06f965147a --- /dev/null +++ b/lib/LICENSE-MPL1.1 @@ -0,0 +1,469 @@ + MOZILLA PUBLIC LICENSE + Version 1.1 + + --------------- + +1. Definitions. + + 1.0.1. "Commercial Use" means distribution or otherwise making the + Covered Code available to a third party. + + 1.1. "Contributor" means each entity that creates or contributes to + the creation of Modifications. + + 1.2. "Contributor Version" means the combination of the Original + Code, prior Modifications used by a Contributor, and the Modifications + made by that particular Contributor. + + 1.3. "Covered Code" means the Original Code or Modifications or the + combination of the Original Code and Modifications, in each case + including portions thereof. + + 1.4. "Electronic Distribution Mechanism" means a mechanism generally + accepted in the software development community for the electronic + transfer of data. + + 1.5. "Executable" means Covered Code in any form other than Source + Code. + + 1.6. "Initial Developer" means the individual or entity identified + as the Initial Developer in the Source Code notice required by Exhibit + A. + + 1.7. "Larger Work" means a work which combines Covered Code or + portions thereof with code not governed by the terms of this License. + + 1.8. "License" means this document. + + 1.8.1. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + + 1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any previous + Modifications. When Covered Code is released as a series of files, a + Modification is: + A. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. + + B. Any new file that contains any part of the Original Code or + previous Modifications. + + 1.10. "Original Code" means Source Code of computer software code + which is described in the Source Code notice required by Exhibit A as + Original Code, and which, at the time of its release under this + License is not already Covered Code governed by this License. + + 1.10.1. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, process, + and apparatus claims, in any patent Licensable by grantor. + + 1.11. "Source Code" means the preferred form of the Covered Code for + making modifications to it, including all modules it contains, plus + any associated interface definition files, scripts used to control + compilation and installation of an Executable, or source code + differential comparisons against either the Original Code or another + well known, available Covered Code of the Contributor's choice. The + Source Code can be in a compressed or archival form, provided the + appropriate decompression or de-archiving software is widely available + for no charge. + + 1.12. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, this + License or a future version of this License issued under Section 6.1. + For legal entities, "You" includes any entity which controls, is + controlled by, or is under common control with You. For purposes of + this definition, "control" means (a) the power, direct or indirect, + to cause the direction or management of such entity, whether by + contract or otherwise, or (b) ownership of more than fifty percent + (50%) of the outstanding shares or beneficial ownership of such + entity. + +2. Source Code License. + + 2.1. The Initial Developer Grant. + The Initial Developer hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual property + claims: + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Code (or portions thereof) with or without Modifications, and/or + as part of a Larger Work; and + + (b) under Patents Claims infringed by the making, using or + selling of Original Code, to make, have made, use, practice, + sell, and offer for sale, and/or otherwise dispose of the + Original Code (or portions thereof). + + (c) the licenses granted in this Section 2.1(a) and (b) are + effective on the date Initial Developer first distributes + Original Code under the terms of this License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: 1) for code that You delete from the Original Code; 2) + separate from the Original Code; or 3) for infringements caused + by: i) the modification of the Original Code or ii) the + combination of the Original Code with other software or devices. + + 2.2. Contributor Grant. + Subject to third party intellectual property claims, each Contributor + hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor, to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof) either on an + unmodified basis, with other Modifications, as Covered Code + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or + selling of Modifications made by that Contributor either alone + and/or in combination with its Contributor Version (or portions + of such combination), to make, use, sell, offer for sale, have + made, and/or otherwise dispose of: 1) Modifications made by that + Contributor (or portions thereof); and 2) the combination of + Modifications made by that Contributor with its Contributor + Version (or portions of such combination). + + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are + effective on the date Contributor first makes Commercial Use of + the Covered Code. + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: 1) for any code that Contributor has deleted from the + Contributor Version; 2) separate from the Contributor Version; + 3) for infringements caused by: i) third party modifications of + Contributor Version or ii) the combination of Modifications made + by that Contributor with other software (except as part of the + Contributor Version) or other devices; or 4) under Patent Claims + infringed by Covered Code in the absence of Modifications made by + that Contributor. + +3. Distribution Obligations. + + 3.1. Application of License. + The Modifications which You create or to which You contribute are + governed by the terms of this License, including without limitation + Section 2.2. The Source Code version of Covered Code may be + distributed only under the terms of this License or a future version + of this License released under Section 6.1, and You must include a + copy of this License with every copy of the Source Code You + distribute. You may not offer or impose any terms on any Source Code + version that alters or restricts the applicable version of this + License or the recipients' rights hereunder. However, You may include + an additional document offering the additional rights described in + Section 3.5. + + 3.2. Availability of Source Code. + Any Modification which You create or to which You contribute must be + made available in Source Code form under the terms of this License + either on the same media as an Executable version or via an accepted + Electronic Distribution Mechanism to anyone to whom you made an + Executable version available; and if made available via Electronic + Distribution Mechanism, must remain available for at least twelve (12) + months after the date it initially became available, or at least six + (6) months after a subsequent version of that particular Modification + has been made available to such recipients. You are responsible for + ensuring that the Source Code version remains available even if the + Electronic Distribution Mechanism is maintained by a third party. + + 3.3. Description of Modifications. + You must cause all Covered Code to which You contribute to contain a + file documenting the changes You made to create that Covered Code and + the date of any change. You must include a prominent statement that + the Modification is derived, directly or indirectly, from Original + Code provided by the Initial Developer and including the name of the + Initial Developer in (a) the Source Code, and (b) in any notice in an + Executable version or related documentation in which You describe the + origin or ownership of the Covered Code. + + 3.4. Intellectual Property Matters + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party's + intellectual property rights is required to exercise the rights + granted by such Contributor under Sections 2.1 or 2.2, + Contributor must include a text file with the Source Code + distribution titled "LEGAL" which describes the claim and the + party making the claim in sufficient detail that a recipient will + know whom to contact. If Contributor obtains such knowledge after + the Modification is made available as described in Section 3.2, + Contributor shall promptly modify the LEGAL file in all copies + Contributor makes available thereafter and shall take other steps + (such as notifying appropriate mailing lists or newsgroups) + reasonably calculated to inform those who received the Covered + Code that new knowledge has been obtained. + + (b) Contributor APIs. + If Contributor's Modifications include an application programming + interface and Contributor has knowledge of patent licenses which + are reasonably necessary to implement that API, Contributor must + also include this information in the LEGAL file. + + (c) Representations. + Contributor represents that, except as disclosed pursuant to + Section 3.4(a) above, Contributor believes that Contributor's + Modifications are Contributor's original creation(s) and/or + Contributor has sufficient rights to grant the rights conveyed by + this License. + + 3.5. Required Notices. + You must duplicate the notice in Exhibit A in each file of the Source + Code. If it is not possible to put such notice in a particular Source + Code file due to its structure, then You must include such notice in a + location (such as a relevant directory) where a user would be likely + to look for such a notice. If You created one or more Modification(s) + You may add your name as a Contributor to the notice described in + Exhibit A. You must also duplicate this License in any documentation + for the Source Code where You describe recipients' rights or ownership + rights relating to Covered Code. You may choose to offer, and to + charge a fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Covered Code. However, You + may do so only on Your own behalf, and not on behalf of the Initial + Developer or any Contributor. You must make it absolutely clear than + any such warranty, support, indemnity or liability obligation is + offered by You alone, and You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred by the + Initial Developer or such Contributor as a result of warranty, + support, indemnity or liability terms You offer. + + 3.6. Distribution of Executable Versions. + You may distribute Covered Code in Executable form only if the + requirements of Section 3.1-3.5 have been met for that Covered Code, + and if You include a notice stating that the Source Code version of + the Covered Code is available under the terms of this License, + including a description of how and where You have fulfilled the + obligations of Section 3.2. The notice must be conspicuously included + in any notice in an Executable version, related documentation or + collateral in which You describe recipients' rights relating to the + Covered Code. You may distribute the Executable version of Covered + Code or ownership rights under a license of Your choice, which may + contain terms different from this License, provided that You are in + compliance with the terms of this License and that the license for the + Executable version does not attempt to limit or alter the recipient's + rights in the Source Code version from the rights set forth in this + License. If You distribute the Executable version under a different + license You must make it absolutely clear that any terms which differ + from this License are offered by You alone, not by the Initial + Developer or any Contributor. You hereby agree to indemnify the + Initial Developer and every Contributor for any liability incurred by + the Initial Developer or such Contributor as a result of any such + terms You offer. + + 3.7. Larger Works. + You may create a Larger Work by combining Covered Code with other code + not governed by the terms of this License and distribute the Larger + Work as a single product. In such a case, You must make sure the + requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this + License with respect to some or all of the Covered Code due to + statute, judicial order, or regulation then You must: (a) comply with + the terms of this License to the maximum extent possible; and (b) + describe the limitations and the code they affect. Such description + must be included in the LEGAL file described in Section 3.4 and must + be included with all distributions of the Source Code. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Application of this License. + + This License applies to code to which the Initial Developer has + attached the notice in Exhibit A and to related Covered Code. + +6. Versions of the License. + + 6.1. New Versions. + Netscape Communications Corporation ("Netscape") may publish revised + and/or new versions of the License from time to time. Each version + will be given a distinguishing version number. + + 6.2. Effect of New Versions. + Once Covered Code has been published under a particular version of the + License, You may always continue to use it under the terms of that + version. You may also choose to use such Covered Code under the terms + of any subsequent version of the License published by Netscape. No one + other than Netscape has the right to modify the terms applicable to + Covered Code created under this License. + + 6.3. Derivative Works. + If You create or use a modified version of this License (which you may + only do in order to apply it to code which is not already Covered Code + governed by this License), You must (a) rename Your license so that + the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", + "MPL", "NPL" or any confusingly similar phrase do not appear in your + license (except to note that your license differs from this License) + and (b) otherwise make it clear that Your version of the license + contains terms which differ from the Mozilla Public License and + Netscape Public License. (Filling in the name of the Initial + Developer, Original Code or Contributor in the notice described in + Exhibit A shall not of themselves be deemed to be modifications of + this License.) + +7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF + DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. + THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE + IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, + YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE + COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER + OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF + ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + + 8.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to cure + such breach within 30 days of becoming aware of the breach. All + sublicenses to the Covered Code which are properly granted shall + survive any termination of this License. Provisions which, by their + nature, must remain in effect beyond the termination of this License + shall survive. + + 8.2. If You initiate litigation by asserting a patent infringement + claim (excluding declatory judgment actions) against Initial Developer + or a Contributor (the Initial Developer or Contributor against whom + You file such action is referred to as "Participant") alleging that: + + (a) such Participant's Contributor Version directly or indirectly + infringes any patent, then any and all rights granted by such + Participant to You under Sections 2.1 and/or 2.2 of this License + shall, upon 60 days notice from Participant terminate prospectively, + unless if within 60 days after receipt of notice You either: (i) + agree in writing to pay Participant a mutually agreeable reasonable + royalty for Your past and future use of Modifications made by such + Participant, or (ii) withdraw Your litigation claim with respect to + the Contributor Version against such Participant. If within 60 days + of notice, a reasonable royalty and payment arrangement are not + mutually agreed upon in writing by the parties or the litigation claim + is not withdrawn, the rights granted by Participant to You under + Sections 2.1 and/or 2.2 automatically terminate at the expiration of + the 60 day notice period specified above. + + (b) any software, hardware, or device, other than such Participant's + Contributor Version, directly or indirectly infringes any patent, then + any rights granted to You by such Participant under Sections 2.1(b) + and 2.2(b) are revoked effective as of the date You first made, used, + sold, distributed, or had made, Modifications made by that + Participant. + + 8.3. If You assert a patent infringement claim against Participant + alleging that such Participant's Contributor Version directly or + indirectly infringes any patent where such claim is resolved (such as + by license or settlement) prior to the initiation of patent + infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or 2.2 shall be taken + into account in determining the amount or value of any payment or + license. + + 8.4. In the event of termination under Sections 8.1 or 8.2 above, + all end user license agreements (excluding distributors and resellers) + which have been validly granted by You or any distributor hereunder + prior to termination shall survive termination. + +9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, + OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR + ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY + CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, + WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY + RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW + PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE + EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO + THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + + The Covered Code is a "commercial item," as that term is defined in + 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" and "commercial computer software documentation," as such + terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 + C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), + all U.S. Government End Users acquire Covered Code with only those + rights set forth herein. + +11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + California law provisions (except to the extent applicable law, if + any, provides otherwise), excluding its conflict-of-law provisions. + With respect to disputes in which at least one party is a citizen of, + or an entity chartered or registered to do business in the United + States of America, any litigation relating to this License shall be + subject to the jurisdiction of the Federal Courts of the Northern + District of California, with venue lying in Santa Clara County, + California, with the losing party responsible for costs, including + without limitation, court costs and reasonable attorneys' fees and + expenses. The application of the United Nations Convention on + Contracts for the International Sale of Goods is expressly excluded. + Any law or regulation which provides that the language of a contract + shall be construed against the drafter shall not apply to this + License. + +12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, + out of its utilization of rights under this License and You agree to + work with Initial Developer and Contributors to distribute such + responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. + +13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as + "Multiple-Licensed". "Multiple-Licensed" means that the Initial + Developer permits you to utilize portions of the Covered Code under + Your choice of the NPL or the alternative licenses, if any, specified + by the Initial Developer in the file described in Exhibit A. + +EXHIBIT A -Mozilla Public License. + + ``The contents of this file are subject to the Mozilla Public License + Version 1.1 (the "License"); you may not use this file except in + compliance with the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + License for the specific language governing rights and limitations + under the License. + + The Original Code is ______________________________________. + + The Initial Developer of the Original Code is ________________________. + Portions created by ______________________ are Copyright (C) ______ + _______________________. All Rights Reserved. + + Contributor(s): ______________________________________. + + Alternatively, the contents of this file may be used under the terms + of the _____ license (the "[___] License"), in which case the + provisions of [______] License are applicable instead of those + above. If you wish to allow use of your version of this file only + under the terms of the [____] License and not to allow others to use + your version of this file under the MPL, indicate your decision by + deleting the provisions above and replace them with the notice and + other provisions required by the [___] License. If you do not delete + the provisions above, a recipient may use your version of this file + under either the MPL or the [___] License." + + [NOTE: The text of this Exhibit A may differ slightly from the text of + the notices in the Source Code files of the Original Code. You should + use the text of this Exhibit A rather than the text found in the + Original Code Source Code for Your Modifications.] diff --git a/lib/LICENSE-PublicDomain b/lib/LICENSE-PublicDomain new file mode 100644 index 0000000000..8a71ce09b0 --- /dev/null +++ b/lib/LICENSE-PublicDomain @@ -0,0 +1 @@ +This software has been placed in the public domain by its author(s). diff --git a/lib/LICENSE-antlr b/lib/LICENSE-antlr new file mode 100644 index 0000000000..60412906a6 --- /dev/null +++ b/lib/LICENSE-antlr @@ -0,0 +1,29 @@ +Copyright (c) 2003-2008, Terence Parr +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of the author nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/lib/LICENSE-args4j b/lib/LICENSE-args4j new file mode 100644 index 0000000000..36cd75fe07 --- /dev/null +++ b/lib/LICENSE-args4j @@ -0,0 +1,32 @@ +Copyright (c) 2003, Kohsuke Kawaguchi +All rights reserved. + +Redistribution and use in source and binary forms, +with or without modification, are permitted provided +that the following conditions are met: + + * Redistributions of source code must retain + the above copyright notice, this list of + conditions and the following disclaimer. + * Redistributions in binary form must reproduce + the above copyright notice, this list of + conditions and the following disclaimer in + the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT +HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. diff --git a/lib/LICENSE-automaton b/lib/LICENSE-automaton new file mode 100644 index 0000000000..72dcb1cbb5 --- /dev/null +++ b/lib/LICENSE-automaton @@ -0,0 +1,28 @@ +Copyright (c) 2007-2009, dk.brics.automaton +All rights reserved. + +http://www.opensource.org/licenses/bsd-license.php + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the JSR305 expert group nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/lib/LICENSE-bouncycastle b/lib/LICENSE-bouncycastle new file mode 100644 index 0000000000..d17a4bc55e --- /dev/null +++ b/lib/LICENSE-bouncycastle @@ -0,0 +1,21 @@ +Copyright (c) 2000 - 2012 The Legion Of The Bouncy Castle +(http://www.bouncycastle.org) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/lib/LICENSE-clippy b/lib/LICENSE-clippy new file mode 100644 index 0000000000..b0feeaeb65 --- /dev/null +++ b/lib/LICENSE-clippy @@ -0,0 +1,20 @@ +Copyright (c) 2008 Tom Preston-Werner + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/lib/LICENSE-h2 b/lib/LICENSE-h2 new file mode 100644 index 0000000000..1be4fba895 --- /dev/null +++ b/lib/LICENSE-h2 @@ -0,0 +1,710 @@ +H2 is dual licensed and available under a modified version of the +MPL 1.1 (Mozilla Public License) or under the (unmodified) EPL 1.0. +---- + +link:http://www.h2database.com/html/license.html[H2 License] + +---- +H2 License - Version 1.0 +1. Definitions + +1.0.1. "Commercial Use" means distribution or otherwise making the + Covered Code available to a third party. + +1.1. "Contributor" means each entity that creates or contributes + to the creation of Modifications. + +1.2. "Contributor Version" means the combination of the Original + Code, prior Modifications used by a Contributor, and the + Modifications made by that particular Contributor. + +1.3. "Covered Code" means the Original Code or Modifications or + the combination of the Original Code and Modifications, in each + case including portions thereof. + +1.4. "Electronic Distribution Mechanism" means a mechanism generally + accepted in the software development community for the electronic + transfer of data. + +1.5. "Executable" means Covered Code in any form other than Source Code. + +1.6. "Initial Developer" means the individual or entity identified + as the Initial Developer in the Source Code notice required + by Exhibit A. + +1.7. "Larger Work" means a work which combines Covered Code or + portions thereof with code not governed by the terms of this + License. + +1.8. "License" means this document. + +1.8.1. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant + or subsequently acquired, any and all of the rights conveyed + herein. + +1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any + previous Modifications. When Covered Code is released as a + series of files, a Modification is: + +1.9.a. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. + +1.9.b. Any new file that contains any part of the Original Code or + previous Modifications. + +1.10. "Original Code" means Source Code of computer software + code which is described in the Source Code notice required + by Exhibit A as Original Code, and which, at the time of + its release under this License is not already Covered Code + governed by this License. + +1.10.1. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, + process, and apparatus claims, in any patent Licensable + by grantor. + +1.11. "Source Code" means the preferred form of the Covered Code + for making modifications to it, including all modules it + contains, plus any associated interface definition files, + scripts used to control compilation and installation of an + Executable, or source code differential comparisons against + either the Original Code or another well known, available + Covered Code of the Contributor's choice. The Source Code can + be in a compressed or archival form, provided the appropriate + decompression or de-archiving software is widely available + for no charge. + +1.12. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms + of, this License or a future version of this License issued + under Section 6.1. For legal entities, "You" includes any + entity which controls, is controlled by, or is under common + control with You. For purposes of this definition, "control" + means (a) the power, direct or indirect, to cause the direction + or management of such entity, whether by contract or otherwise, + or (b) ownership of more than fifty percent (50%) of the + outstanding shares or beneficial ownership of such entity. + +2. Source Code License + +2.1. The Initial Developer Grant + +The Initial Developer hereby grants You a world-wide, royalty-free, +non-exclusive license, subject to third party intellectual property +claims: + +2.1.a. under intellectual property rights (other than patent + or trademark) Licensable by Initial Developer to use, + reproduce, modify, display, perform, sublicense and distribute + the Original Code (or portions thereof) with or without + Modifications, and/or as part of a Larger Work; and + +2.1.b. under Patents Claims infringed by the making, using or selling + of Original Code, to make, have made, use, practice, sell, + and offer for sale, and/or otherwise dispose of the Original + Code (or portions thereof). + +2.1.c. the licenses granted in this Section 2.1 (a) and (b) are + effective on the date Initial Developer first distributes + Original Code under the terms of this License. + +2.1.d. Notwithstanding Section 2.1 (b) above, no patent license is + granted: 1) for code that You delete from the Original Code; + 2) separate from the Original Code; or 3) for infringements + caused by: i) the modification of the Original Code or ii) + the combination of the Original Code with other software + or devices. + +2.2. Contributor Grant + +Subject to third party intellectual property claims, each Contributor +hereby grants You a world-wide, royalty-free, non-exclusive license + +2.2.a. under intellectual property rights (other than patent or + trademark) Licensable by Contributor, to use, reproduce, + modify, display, perform, sublicense and distribute the + Modifications created by such Contributor (or portions + thereof) either on an unmodified basis, with other + Modifications, as Covered Code and/or as part of a Larger + Work; and + +2.2.b. under Patent Claims infringed by the making, using, or selling + of Modifications made by that Contributor either alone and/or + in combination with its Contributor Version (or portions + of such combination), to make, use, sell, offer for sale, + have made, and/or otherwise dispose of: 1) Modifications + made by that Contributor (or portions thereof); and 2) the + combination of Modifications made by that Contributor with + its Contributor Version (or portions of such combination). + +2.2.c. the licenses granted in Sections 2.2 (a) and 2.2 (b) are + effective on the date Contributor first makes Commercial + Use of the Covered Code. + +2.2.c. Notwithstanding Section 2.2 (b) above, no patent license is + granted: 1) for any code that Contributor has deleted from + the Contributor Version; 2) separate from the Contributor + Version; 3) for infringements caused by: i) third party + modifications of Contributor Version or ii) the combination + of Modifications made by that Contributor with other software + (except as part of the Contributor Version) or other devices; + or 4) under Patent Claims infringed by Covered Code in the + absence of Modifications made by that Contributor. + +3. Distribution Obligations + +3.1. Application of License + +The Modifications which You create or to which You contribute +are governed by the terms of this License, including without +limitation Section 2.2. The Source Code version of Covered Code may +be distributed only under the terms of this License or a future +version of this License released under Section 6.1, and You must +include a copy of this License with every copy of the Source Code +You distribute. You may not offer or impose any terms on any Source +Code version that alters or restricts the applicable version of +this License or the recipients' rights hereunder. However, You +may include an additional document offering the additional rights +described in Section 3.5. + +3.2. Availability of Source Code + +Any Modification which You create or to which You contribute must +be made available in Source Code form under the terms of this +License either on the same media as an Executable version or via +an accepted Electronic Distribution Mechanism to anyone to whom +you made an Executable version available; and if made available +via Electronic Distribution Mechanism, must remain available for +at least twelve (12) months after the date it initially became +available, or at least six (6) months after a subsequent version +of that particular Modification has been made available to such +recipients. You are responsible for ensuring that the Source Code +version remains available even if the Electronic Distribution +Mechanism is maintained by a third party. + +3.3. Description of Modifications + +You must cause all Covered Code to which You contribute to contain +a file documenting the changes You made to create that Covered +Code and the date of any change. You must include a prominent +statement that the Modification is derived, directly or indirectly, +from Original Code provided by the Initial Developer and including +the name of the Initial Developer in (a) the Source Code, and (b) +in any notice in an Executable version or related documentation in +which You describe the origin or ownership of the Covered Code. + +3.4. Intellectual Property Matters + +3.4.a. Third Party Claims: If Contributor has knowledge that + a license under a third party's intellectual property + rights is required to exercise the rights granted by such + Contributor under Sections 2.1 or 2.2, Contributor must + include a text file with the Source Code distribution titled + "LEGAL" which describes the claim and the party making the + claim in sufficient detail that a recipient will know whom + to contact. If Contributor obtains such knowledge after the + Modification is made available as described in Section 3.2, + Contributor shall promptly modify the LEGAL file in all + copies Contributor makes available thereafter and shall take + other steps (such as notifying appropriate mailing lists or + newsgroups) reasonably calculated to inform those who received + the Covered Code that new knowledge has been obtained. + +3.4.b. Contributor APIs: If Contributor's Modifications include + an application programming interface and Contributor has + knowledge of patent licenses which are reasonably necessary + to implement that API, Contributor must also include this + information in the legal file. + +3.4.c. Representations: Contributor represents that, except as + disclosed pursuant to Section 3.4 (a) above, Contributor + believes that Contributor's Modifications are Contributor's + original creation(s) and/or Contributor has sufficient rights + to grant the rights conveyed by this License. + +3.5. Required Notices + +You must duplicate the notice in Exhibit A in each file of +the Source Code. If it is not possible to put such notice in a +particular Source Code file due to its structure, then You must +include such notice in a location (such as a relevant directory) +where a user would be likely to look for such a notice. If You +created one or more Modification(s) You may add your name as a +Contributor to the notice described in Exhibit A. You must also +duplicate this License in any documentation for the Source Code +where You describe recipients' rights or ownership rights relating +to Covered Code. You may choose to offer, and to charge a fee for, +warranty, support, indemnity or liability obligations to one or +more recipients of Covered Code. However, You may do so only on +Your own behalf, and not on behalf of the Initial Developer or +any Contributor. You must make it absolutely clear than any such +warranty, support, indemnity or liability obligation is offered by +You alone, and You hereby agree to indemnify the Initial Developer +and every Contributor for any liability incurred by the Initial +Developer or such Contributor as a result of warranty, support, +indemnity or liability terms You offer. + +3.6. Distribution of Executable Versions + +You may distribute Covered Code in Executable form only if the +requirements of Sections 3.1, 3.2, 3.3, 3.4 and 3.5 have been met +for that Covered Code, and if You include a notice stating that +the Source Code version of the Covered Code is available under the +terms of this License, including a description of how and where +You have fulfilled the obligations of Section 3.2. The notice +must be conspicuously included in any notice in an Executable +version, related documentation or collateral in which You describe +recipients' rights relating to the Covered Code. You may distribute +the Executable version of Covered Code or ownership rights under +a license of Your choice, which may contain terms different from +this License, provided that You are in compliance with the terms +of this License and that the license for the Executable version +does not attempt to limit or alter the recipient's rights in the +Source Code version from the rights set forth in this License. If +You distribute the Executable version under a different license You +must make it absolutely clear that any terms which differ from this +License are offered by You alone, not by the Initial Developer or any +Contributor. You hereby agree to indemnify the Initial Developer and +every Contributor for any liability incurred by the Initial Developer +or such Contributor as a result of any such terms You offer. + +3.7. Larger Works + +You may create a Larger Work by combining Covered Code with other +code not governed by the terms of this License and distribute the +Larger Work as a single product. In such a case, You must make sure +the requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + +If it is impossible for You to comply with any of the terms of +this License with respect to some or all of the Covered Code due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description +must be included in the legal file described in Section 3.4 and +must be included with all distributions of the Source Code. Except +to the extent prohibited by statute or regulation, such description +must be sufficiently detailed for a recipient of ordinary skill to +be able to understand it. + +5. Application of this License. + +This License applies to code to which the Initial Developer has +attached the notice in Exhibit A and to related Covered Code. + +6. Versions of the License. + +6.1. New Versions + +The H2 Group may publish revised and/or new versions of the License +from time to time. Each version will be given a distinguishing +version number. + +6.2. Effect of New Versions + +Once Covered Code has been published under a particular version of +the License, You may always continue to use it under the terms of +that version. You may also choose to use such Covered Code under the +terms of any subsequent version of the License published by the H2 +Group. No one other than the H2 Group has the right to modify the +terms applicable to Covered Code created under this License. + +6.3. Derivative Works + +If You create or use a modified version of this License (which you +may only do in order to apply it to code which is not already Covered +Code governed by this License), You must (a) rename Your license so +that the phrases "H2 Group", "H2" or any confusingly similar phrase +do not appear in your license (except to note that your license +differs from this License) and (b) otherwise make it clear that +Your version of the license contains terms which differ from the +H2 License. (Filling in the name of the Initial Developer, Original +Code or Contributor in the notice described in Exhibit A shall not +of themselves be deemed to be modifications of this License.) + +7. Disclaimer of Warranty + +Covered code is provided under this license on an "as is" basis, +without warranty of any kind, either expressed or implied, +including, without limitation, warranties that the covered code +is free of defects, merchantable, fit for a particular purpose or +non-infringing. The entire risk as to the quality and performance +of the covered code is with you. Should any covered code prove +defective in any respect, you (not the initial developer or any +other contributor) assume the cost of any necessary servicing, +repair or correction. This disclaimer of warranty constitutes +an essential part of this license. No use of any covered code is +authorized hereunder except under this disclaimer. + +8. Termination + +8.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and + fail to cure such breach within 30 days of becoming aware + of the breach. All sublicenses to the Covered Code which + are properly granted shall survive any termination of this + License. Provisions which, by their nature, must remain in + effect beyond the termination of this License shall survive. + +8.2. If You initiate litigation by asserting a patent infringement + claim (excluding declaratory judgment actions) against + Initial Developer or a Contributor (the Initial Developer or + Contributor against whom You file such action is referred to as + "Participant") alleging that: + +8.2.a. such Participant's Contributor Version directly or indirectly + infringes any patent, then any and all rights granted by + such Participant to You under Sections 2.1 and/or 2.2 of this + License shall, upon 60 days notice from Participant terminate + prospectively, unless if within 60 days after receipt of + notice You either: (i) agree in writing to pay Participant + a mutually agreeable reasonable royalty for Your past and + future use of Modifications made by such Participant, or (ii) + withdraw Your litigation claim with respect to the Contributor + Version against such Participant. If within 60 days of notice, + a reasonable royalty and payment arrangement are not mutually + agreed upon in writing by the parties or the litigation claim + is not withdrawn, the rights granted by Participant to You + under Sections 2.1 and/or 2.2 automatically terminate at + the expiration of the 60 day notice period specified above. + +8.2.b. any software, hardware, or device, other than such + Participant's Contributor Version, directly or indirectly + infringes any patent, then any rights granted to You by + such Participant under Sections 2.1(b) and 2.2(b) are + revoked effective as of the date You first made, used, + sold, distributed, or had made, Modifications made by that + Participant. + +8.3. If You assert a patent infringement claim against Participant + alleging that such Participant's Contributor Version directly + or indirectly infringes any patent where such claim is resolved + (such as by license or settlement) prior to the initiation of + patent infringement litigation, then the reasonable value of + the licenses granted by such Participant under Sections 2.1 + or 2.2 shall be taken into account in determining the amount + or value of any payment or license. + +8.4. In the event of termination under Sections 8.1 or 8.2 above, + all end user license agreements (excluding distributors and + resellers) which have been validly granted by You or any + distributor hereunder prior to termination shall survive + termination. + +9. Limitation of Liability + +Under no circumstances and under no legal theory, whether tort +(including negligence), contract, or otherwise, shall you, the +initial developer, any other contributor, or any distributor of +covered code, or any supplier of any of such parties, be liable to +any person for any indirect, special, incidental, or consequential +damages of any character including, without limitation, damages for +loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses, even if such party +shall have been informed of the possibility of such damages. This +limitation of liability shall not apply to liability for death or +personal injury resulting from such party's negligence to the extent +applicable law prohibits such limitation. Some jurisdictions do not +allow the exclusion or limitation of incidental or consequential +damages, so this exclusion and limitation may not apply to you. + +10. United States Government End Users + +The Covered Code is a "commercial item", as that term is defined in +48 C.F.R. 2.101 (October 1995), consisting of "commercial computer +software" and "commercial computer software documentation", as such +terms are used in 48 C.F.R. 12.212 (September 1995). Consistent +with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 +(June 1995), all U.S. Government End Users acquire Covered Code +with only those rights set forth herein. + +11. Miscellaneous + +This License represents the complete agreement concerning subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. This License shall be governed +by California law provisions (except to the extent applicable +law, if any, provides otherwise), excluding its conflict-of-law +provisions. With respect to disputes in which at least one party is +a citizen of, or an entity chartered or registered to do business in +United States of America, any litigation relating to this License +shall be subject to the jurisdiction of the Federal Courts of the +Northern District of California, with venue lying in Santa Clara +County, California, with the losing party responsible for costs, +including without limitation, court costs and reasonable attorneys' +fees and expenses. The application of the United Nations Convention +on Contracts for the International Sale of Goods is expressly +excluded. Any law or regulation which provides that the language of +a contract shall be construed against the drafter shall not apply +to this License. + +12. Responsibility for Claims + +As between Initial Developer and the Contributors, each party is +responsible for claims and damages arising, directly or indirectly, +out of its utilization of rights under this License and You agree +to work with Initial Developer and Contributors to distribute such +responsibility on an equitable basis. Nothing herein is intended +or shall be deemed to constitute any admission of liability. + +13. Multiple-Licensed Code + +Initial Developer may designate portions of the Covered Code as +"Multiple-Licensed". "Multiple-Licensed" means that the Initial +Developer permits you to utilize portions of the Covered Code under +Your choice of this or the alternative licenses, if any, specified +by the Initial Developer in the file described in Exhibit A. + +Exhibit A + +Multiple-Licensed under the H2 License, Version 1.0, +and under the Eclipse Public License, Version 1.0 +(http://h2database.com/html/license.html). +Initial Developer: H2 Group +---- + +---- +Eclipse Public License - v 1.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE +PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION +OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + +a) in the case of the initial Contributor, the initial code and + documentation distributed under this Agreement, and +b) in the case of each subsequent Contributor: + +i) changes to the Program, and + +ii) additions to the Program; + +where such changes and/or additions to the Program originate from +and are distributed by that particular Contributor. A Contribution +'originates' from a Contributor if it was added to the Program +by such Contributor itself or anyone acting on such Contributor's +behalf. Contributions do not include additions to the Program which: +(i) are separate modules of software distributed in conjunction +with the Program under their own license agreement, and (ii) are +not derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents " mean patent claims licensable by a Contributor +which are necessarily infringed by the use or sale of its +Contribution alone or when combined with the Program. + +"Program" means the Contributions distributed in accordance with +this Agreement. + +"Recipient" means anyone who receives the Program under this +Agreement, including all Contributors. + +2. GRANT OF RIGHTS + +a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare derivative works of, publicly display, + publicly perform, distribute and sublicense the Contribution of such + Contributor, if any, and such derivative works, in source code and + object code form. + +b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in source code and object code form. This patent license + shall apply to the combination of the Contribution and the Program + if, at the time the Contribution is added by the Contributor, such + addition of the Contribution causes such combination to be covered + by the Licensed Patents. The patent license shall not apply to any + other combinations which include the Contribution. No hardware per + se is licensed hereunder. + +c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe + the patent or other intellectual property rights of any other + entity. Each Contributor disclaims any liability to Recipient + for claims brought by any other entity based on infringement + of intellectual property rights or otherwise. As a condition to + exercising the rights and licenses granted hereunder, each Recipient + hereby assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party patent + license is required to allow Recipient to distribute the Program, + it is Recipient's responsibility to acquire that license before + distributing the Program. + +d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code + form under its own license agreement, provided that: + +a) it complies with the terms and conditions of this Agreement; and + +b) its license agreement: + +i) effectively disclaims on behalf of all Contributors all warranties + and conditions, express and implied, including warranties or + conditions of title and non-infringement, and implied warranties or + conditions of merchantability and fitness for a particular purpose; + +ii) effectively excludes on behalf of all Contributors all liability + for damages, including direct, indirect, special, incidental and + consequential damages, such as lost profits; + +iii) states that any provisions which differ from this Agreement + are offered by that Contributor alone and not by any other + party; and + +iv) states that source code for the Program is available from such + Contributor, and informs licensees how to obtain it in a reasonable + manner on or through a medium customarily used for software exchange. + +When the Program is made available in source code form: + +a) it must be made available under this Agreement; and + +b) a copy of this Agreement must be included with each copy of the Program. + +Contributors may not remove or alter any copyright notices contained +within the Program. + +Each Contributor must identify itself as the originator of its +Contribution, if any, in a manner that reasonably allows subsequent +Recipients to identify the originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain +responsibilities with respect to end users, business partners and the +like. While this license is intended to facilitate the commercial +use of the Program, the Contributor who includes the Program in a +commercial product offering should do so in a manner which does not +create potential liability for other Contributors. Therefore, if a +Contributor includes the Program in a commercial product offering, +such Contributor ("Commercial Contributor") hereby agrees to defend +and indemnify every other Contributor ("Indemnified Contributor") +against any losses, damages and costs (collectively "Losses") arising +from claims, lawsuits and other legal actions brought by a third +party against the Indemnified Contributor to the extent caused by +the acts or omissions of such Commercial Contributor in connection +with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any claims +or Losses relating to any actual or alleged intellectual property +infringement. In order to qualify, an Indemnified Contributor must: +a) promptly notify the Commercial Contributor in writing of such +claim, and b) allow the Commercial Contributor to control, and +cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a +commercial product offering, Product X. That Contributor is then a +Commercial Contributor. If that Commercial Contributor then makes +performance claims, or offers warranties related to Product X, those +performance claims and warranties are such Commercial Contributor's +responsibility alone. Under this section, the Commercial Contributor +would have to defend claims against the other Contributors related +to those performance claims and warranties, and if a court requires +any other Contributor to pay any damages as a result, the Commercial +Contributor must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS +PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY +WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY +OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely +responsible for determining the appropriateness of using and +distributing the Program and assumes all risks associated with +its exercise of rights under this Agreement , including but not +limited to the risks and costs of program errors, compliance with +applicable laws, damage to or loss of data, programs or equipment, +and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT +NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY +RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed +to the minimum extent necessary to make such provision valid and +enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging +that the Program itself (excluding combinations of the Program with +other software or hardware) infringes such Recipient's patent(s), +then such Recipient's rights granted under Section 2(b) shall +terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if +it fails to comply with any of the material terms or conditions +of this Agreement and does not cure such failure in a reasonable +period of time after becoming aware of such noncompliance. If all +Recipient's rights under this Agreement terminate, Recipient agrees +to cease use and distribution of the Program as soon as reasonably +practicable. However, Recipient's obligations under this Agreement +and any licenses granted by Recipient relating to the Program shall +continue and survive. + +Everyone is permitted to copy and distribute copies of this +Agreement, but in order to avoid inconsistency the Agreement is +copyrighted and may only be modified in the following manner. The +Agreement Steward reserves the right to publish new versions +(including revisions) of this Agreement from time to time. No +one other than the Agreement Steward has the right to modify +this Agreement. The Eclipse Foundation is the initial Agreement +Steward. The Eclipse Foundation may assign the responsibility to +serve as the Agreement Steward to a suitable separate entity. Each +new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +distributed subject to the version of the Agreement under which it +was received. In addition, after a new version of the Agreement is +published, Contributor may elect to distribute the Program (including +its Contributions) under the new version. Except as expressly stated +in Sections 2(a) and 2(b) above, Recipient receives no rights or +licenses to the intellectual property of any Contributor under +this Agreement, whether expressly, by implication, estoppel or +otherwise. All rights in the Program not expressly granted under +this Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and +the intellectual property laws of the United States of America. No +party to this Agreement will bring a legal action under this +Agreement more than one year after the cause of action arose. Each +party waives its rights to a jury trial in any resulting litigation. +---- + +---- +Export Control Classification Number (ECCN) + +As far as we know, the U.S. Export Control Classification Number +(ECCN) for this software is 5D002. However, for legal reasons, we +can make no warranty that this information is correct. For details, +see also the Apache Software Foundation Export Classifications page. diff --git a/lib/LICENSE-jgit b/lib/LICENSE-jgit new file mode 100644 index 0000000000..1b85c64665 --- /dev/null +++ b/lib/LICENSE-jgit @@ -0,0 +1,37 @@ +This program and the accompanying materials are made available +under the terms of the Eclipse Distribution License v1.0 which +accompanies this distribution, is reproduced below, and is +available at http://www.eclipse.org/org/documents/edl-v10.php + +All rights reserved. + +Redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following +conditions are met: + +- Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +- Neither the name of the Eclipse Foundation, Inc. nor the + names of its contributors may be used to endorse or promote + products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/lib/LICENSE-jsch b/lib/LICENSE-jsch new file mode 100644 index 0000000000..2cb0ddd981 --- /dev/null +++ b/lib/LICENSE-jsch @@ -0,0 +1,26 @@ +Copyright (c) 2002-2012 Atsuhiko Yamanaka, JCraft,Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution. + + 3. The names of the authors may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT, +INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/lib/LICENSE-jsr305 b/lib/LICENSE-jsr305 new file mode 100644 index 0000000000..cf30ea2777 --- /dev/null +++ b/lib/LICENSE-jsr305 @@ -0,0 +1,28 @@ +Copyright (c) 2007-2009, JSR305 expert group +All rights reserved. + +http://www.opensource.org/licenses/bsd-license.php + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the JSR305 expert group nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/lib/LICENSE-ow2 b/lib/LICENSE-ow2 new file mode 100644 index 0000000000..c5aba7be47 --- /dev/null +++ b/lib/LICENSE-ow2 @@ -0,0 +1,29 @@ +Copyright (c) 2000-2011 INRIA, France Telecom +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. diff --git a/lib/LICENSE-postgresql b/lib/LICENSE-postgresql new file mode 100644 index 0000000000..fd416d2ec4 --- /dev/null +++ b/lib/LICENSE-postgresql @@ -0,0 +1,26 @@ +Copyright (c) 1997-2011, PostgreSQL Global Development Group +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +3. Neither the name of the PostgreSQL Global Development Group nor the names + of its contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/lib/LICENSE-prologcafe b/lib/LICENSE-prologcafe new file mode 100644 index 0000000000..c0964a8f39 --- /dev/null +++ b/lib/LICENSE-prologcafe @@ -0,0 +1,587 @@ +Prolog Cafe (A Prolog to Java Translator System) +Copyright (C) 1997-2009 by Mutsunori Banbara and Naoyuki Tamura + +Prolog Cafe is free software; you can redistribute it and/or modify +it under the terms of either: + + * the GNU General Public License as published by the Free Software + Foundation; either version 2 of the License, or (at your option) + any later version, or + + * the Eclipse Public License +---- + +---- + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. +---- + +---- +Eclipse Public License - v 1.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE +PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION +OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + +a) in the case of the initial Contributor, the initial code and + documentation distributed under this Agreement, and +b) in the case of each subsequent Contributor: + +i) changes to the Program, and + +ii) additions to the Program; + +where such changes and/or additions to the Program originate from +and are distributed by that particular Contributor. A Contribution +'originates' from a Contributor if it was added to the Program +by such Contributor itself or anyone acting on such Contributor's +behalf. Contributions do not include additions to the Program which: +(i) are separate modules of software distributed in conjunction +with the Program under their own license agreement, and (ii) are +not derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents " mean patent claims licensable by a Contributor +which are necessarily infringed by the use or sale of its +Contribution alone or when combined with the Program. + +"Program" means the Contributions distributed in accordance with +this Agreement. + +"Recipient" means anyone who receives the Program under this +Agreement, including all Contributors. + +2. GRANT OF RIGHTS + +a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare derivative works of, publicly display, + publicly perform, distribute and sublicense the Contribution of such + Contributor, if any, and such derivative works, in source code and + object code form. + +b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in source code and object code form. This patent license + shall apply to the combination of the Contribution and the Program + if, at the time the Contribution is added by the Contributor, such + addition of the Contribution causes such combination to be covered + by the Licensed Patents. The patent license shall not apply to any + other combinations which include the Contribution. No hardware per + se is licensed hereunder. + +c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe + the patent or other intellectual property rights of any other + entity. Each Contributor disclaims any liability to Recipient + for claims brought by any other entity based on infringement + of intellectual property rights or otherwise. As a condition to + exercising the rights and licenses granted hereunder, each Recipient + hereby assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party patent + license is required to allow Recipient to distribute the Program, + it is Recipient's responsibility to acquire that license before + distributing the Program. + +d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code + form under its own license agreement, provided that: + +a) it complies with the terms and conditions of this Agreement; and + +b) its license agreement: + +i) effectively disclaims on behalf of all Contributors all warranties + and conditions, express and implied, including warranties or + conditions of title and non-infringement, and implied warranties or + conditions of merchantability and fitness for a particular purpose; + +ii) effectively excludes on behalf of all Contributors all liability + for damages, including direct, indirect, special, incidental and + consequential damages, such as lost profits; + +iii) states that any provisions which differ from this Agreement + are offered by that Contributor alone and not by any other + party; and + +iv) states that source code for the Program is available from such + Contributor, and informs licensees how to obtain it in a reasonable + manner on or through a medium customarily used for software exchange. + +When the Program is made available in source code form: + +a) it must be made available under this Agreement; and + +b) a copy of this Agreement must be included with each copy of the Program. + +Contributors may not remove or alter any copyright notices contained +within the Program. + +Each Contributor must identify itself as the originator of its +Contribution, if any, in a manner that reasonably allows subsequent +Recipients to identify the originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain +responsibilities with respect to end users, business partners and the +like. While this license is intended to facilitate the commercial +use of the Program, the Contributor who includes the Program in a +commercial product offering should do so in a manner which does not +create potential liability for other Contributors. Therefore, if a +Contributor includes the Program in a commercial product offering, +such Contributor ("Commercial Contributor") hereby agrees to defend +and indemnify every other Contributor ("Indemnified Contributor") +against any losses, damages and costs (collectively "Losses") arising +from claims, lawsuits and other legal actions brought by a third +party against the Indemnified Contributor to the extent caused by +the acts or omissions of such Commercial Contributor in connection +with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any claims +or Losses relating to any actual or alleged intellectual property +infringement. In order to qualify, an Indemnified Contributor must: +a) promptly notify the Commercial Contributor in writing of such +claim, and b) allow the Commercial Contributor to control, and +cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a +commercial product offering, Product X. That Contributor is then a +Commercial Contributor. If that Commercial Contributor then makes +performance claims, or offers warranties related to Product X, those +performance claims and warranties are such Commercial Contributor's +responsibility alone. Under this section, the Commercial Contributor +would have to defend claims against the other Contributors related +to those performance claims and warranties, and if a court requires +any other Contributor to pay any damages as a result, the Commercial +Contributor must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS +PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY +WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY +OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely +responsible for determining the appropriateness of using and +distributing the Program and assumes all risks associated with +its exercise of rights under this Agreement , including but not +limited to the risks and costs of program errors, compliance with +applicable laws, damage to or loss of data, programs or equipment, +and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT +NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY +RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed +to the minimum extent necessary to make such provision valid and +enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging +that the Program itself (excluding combinations of the Program with +other software or hardware) infringes such Recipient's patent(s), +then such Recipient's rights granted under Section 2(b) shall +terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if +it fails to comply with any of the material terms or conditions +of this Agreement and does not cure such failure in a reasonable +period of time after becoming aware of such noncompliance. If all +Recipient's rights under this Agreement terminate, Recipient agrees +to cease use and distribution of the Program as soon as reasonably +practicable. However, Recipient's obligations under this Agreement +and any licenses granted by Recipient relating to the Program shall +continue and survive. + +Everyone is permitted to copy and distribute copies of this +Agreement, but in order to avoid inconsistency the Agreement is +copyrighted and may only be modified in the following manner. The +Agreement Steward reserves the right to publish new versions +(including revisions) of this Agreement from time to time. No +one other than the Agreement Steward has the right to modify +this Agreement. The Eclipse Foundation is the initial Agreement +Steward. The Eclipse Foundation may assign the responsibility to +serve as the Agreement Steward to a suitable separate entity. Each +new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +distributed subject to the version of the Agreement under which it +was received. In addition, after a new version of the Agreement is +published, Contributor may elect to distribute the Program (including +its Contributions) under the new version. Except as expressly stated +in Sections 2(a) and 2(b) above, Recipient receives no rights or +licenses to the intellectual property of any Contributor under +this Agreement, whether expressly, by implication, estoppel or +otherwise. All rights in the Program not expressly granted under +this Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and +the intellectual property laws of the United States of America. No +party to this Agreement will bring a legal action under this +Agreement more than one year after the cause of action arose. Each +party waives its rights to a jury trial in any resulting litigation. diff --git a/lib/LICENSE-slf4j b/lib/LICENSE-slf4j new file mode 100644 index 0000000000..f5ecafa007 --- /dev/null +++ b/lib/LICENSE-slf4j @@ -0,0 +1,21 @@ +Copyright (c) 2004-2008 QOS.ch +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/lib/antlr/BUCK b/lib/antlr/BUCK new file mode 100644 index 0000000000..732b459c21 --- /dev/null +++ b/lib/antlr/BUCK @@ -0,0 +1,48 @@ +include_defs('//lib/maven.defs') + +VERSION = '3.2' + +maven_jar( + name = 'java_runtime', + id = 'org.antlr:antlr-runtime:' + VERSION, + sha1 = '31c746001016c6226bd7356c9f87a6a084ce3715', + license = 'antlr', +) + +java_binary( + name = 'antlr-tool', + main_class = 'org.antlr.Tool', + deps = [':tool'], + visibility = ['PUBLIC'], +) + +maven_jar( + name = 'stringtemplate', + id = 'org.antlr:stringtemplate:' + VERSION, + sha1 = '6fe2e3bb57daebd1555494818909f9664376dd6c', + license = 'antlr', + attach_source = False, + visibility = [], +) + +maven_jar( + name = 'tool', + id = 'org.antlr:antlr:' + VERSION, + sha1 = '6b0acabea7bb3da058200a77178057e47e25cb69', + license = 'antlr', + deps = [ + ':java_runtime', + ':stringtemplate', + ':antlr27', + ], + visibility = [], +) + +maven_jar( + name = 'antlr27', + id = 'antlr:antlr:2.7.7', + sha1 = '83cd2cd674a217ade95a4bb83a8a14f351f48bd0', + license = 'antlr', + attach_source = False, + visibility = [], +) diff --git a/lib/bouncycastle/BUCK b/lib/bouncycastle/BUCK new file mode 100644 index 0000000000..3d76ea67c1 --- /dev/null +++ b/lib/bouncycastle/BUCK @@ -0,0 +1,20 @@ +include_defs('//lib/maven.defs') + +# This version must match the version that also appears in +# gerrit-pgm/src/main/resources/com/google/gerrit/pgm/libraries.config +VERSION = '1.44' + +maven_jar( + name = 'bcprov', + id = 'org.bouncycastle:bcprov-jdk16:' + VERSION, + sha1 = '6327a5f7a3dc45e0fd735adb5d08c5a74c05c20c', + license = 'DO_NOT_DISTRIBUTE', #'bouncycastle' +) + +maven_jar( + name = 'bcpg', + id = 'org.bouncycastle:bcpg-jdk16:' + VERSION, + sha1 = 'ee14f5a29cb3cf9c1edec034ab16e1bbd26e9647', + license = 'DO_NOT_DISTRIBUTE', #'bouncycastle' + deps = [':bcprov'], +) diff --git a/lib/commons/BUCK b/lib/commons/BUCK new file mode 100644 index 0000000000..e5c78abcd6 --- /dev/null +++ b/lib/commons/BUCK @@ -0,0 +1,79 @@ +include_defs('//lib/maven.defs') + +maven_jar( + name = 'codec', + id = 'commons-codec:commons-codec:1.4', + sha1 = '4216af16d38465bbab0f3dff8efa14204f7a399a', + license = 'Apache2.0', + exclude = ['META-INF/LICENSE.txt', 'META-INF/NOTICE.txt'], +) + +maven_jar( + name = 'collections', + id = 'commons-collections:commons-collections:3.2.1', + sha1 = '761ea405b9b37ced573d2df0d1e3a4e0f9edc668', + license = 'Apache2.0', + exclude = ['META-INF/LICENSE.txt', 'META-INF/NOTICE.txt'], + attach_source = False, + visibility = ['//lib:velocity'], +) + +maven_jar( + name = 'dbcp', + id = 'commons-dbcp:commons-dbcp:1.4', + sha1 = '30be73c965cc990b153a100aaaaafcf239f82d39', + license = 'Apache2.0', + deps = [':pool'], + exclude = [ + 'META-INF/LICENSE.txt', + 'META-INF/NOTICE.txt', + 'testpool.jocl' + ], +) + +maven_jar( + name = 'lang', + id = 'commons-lang:commons-lang:2.5', + sha1 = 'b0236b252e86419eef20c31a44579d2aee2f0a69', + license = 'Apache2.0', + exclude = ['META-INF/LICENSE.txt', 'META-INF/NOTICE.txt'], +) + +maven_jar( + name = 'logging', + id = 'commons-logging:commons-logging:1.1.1', + sha1 = '5043bfebc3db072ed80fbd362e7caf00e885d8ae', + license = 'Apache2.0', + exclude = [ + 'META-INF/LICENSE', + 'META-INF/NOTICE', + ], + attach_source = False, + visibility = ['//lib/openid:'], +) + +maven_jar( + name = 'net', + id = 'commons-net:commons-net:2.2', + sha1 = '07993c12f63c78378f8c90de4bc2ee62daa7ca3a', + license = 'Apache2.0', + exclude = ['META-INF/LICENSE.txt', 'META-INF/NOTICE.txt'], +) + +maven_jar( + name = 'pool', + id = 'commons-pool:commons-pool:1.5.5', + sha1 = '7d8ffbdc47aa0c5a8afe5dc2aaf512f369f1d19b', + license = 'Apache2.0', + attach_source = False, + exclude = ['META-INF/LICENSE.txt', 'META-INF/NOTICE.txt'], +) + +maven_jar( + name = 'oro', + id = 'oro:oro:2.0.8', + sha1 = '5592374f834645c4ae250f4c9fbb314c9369d698', + license = 'Apache1.1', + attach_source = False, + exclude = ['META-INF/LICENSE'], +) diff --git a/lib/guice/BUCK b/lib/guice/BUCK new file mode 100644 index 0000000000..0cfe5f5c59 --- /dev/null +++ b/lib/guice/BUCK @@ -0,0 +1,55 @@ +include_defs('//lib/maven.defs') + +VERSION = '3.0' +EXCLUDE = [ + 'META-INF/DEPENDENCIES', + 'META-INF/LICENSE', + 'META-INF/NOTICE', +] + +maven_jar( + name = 'guice', + id = 'com.google.inject:guice:' + VERSION, + sha1 = '9d84f15fe35e2c716a02979fb62f50a29f38aefa', + license = 'Apache2.0', + deps = [ + ':javax-inject', + ':aopalliance', + ], + exclude = EXCLUDE, +) + +maven_jar( + name = 'guice-assistedinject', + id = 'com.google.inject.extensions:guice-assistedinject:' + VERSION, + sha1 = '544449ddb19f088dcde44f055d30a08835a954a7', + license = 'Apache2.0', + deps = [':guice'], + exclude = EXCLUDE, +) + +maven_jar( + name = 'guice-servlet', + id = 'com.google.inject.extensions:guice-servlet:' + VERSION, + sha1 = '610cde0e8da5a8b7d8efb8f0b8987466ffebaaf9', + license = 'Apache2.0', + deps = [':guice'], + exclude = EXCLUDE, +) + + +maven_jar( + name = 'aopalliance', + id = 'aopalliance:aopalliance:1.0', + sha1 = '0235ba8b489512805ac13a8f9ea77a1ca5ebe3e8', + license = 'PublicDomain', + visibility = ['//lib/guice:guice'], +) + +maven_jar( + name = 'javax-inject', + id = 'javax.inject:javax.inject:1', + sha1 = '6975da39a7040257bd51d21a231b76c915872d38', + license = 'Apache2.0', + visibility = ['//lib/guice:guice'], +) diff --git a/lib/gwt/BUCK b/lib/gwt/BUCK new file mode 100644 index 0000000000..2204422c89 --- /dev/null +++ b/lib/gwt/BUCK @@ -0,0 +1,38 @@ +include_defs('//lib/maven.defs') + +VERSION = '2.5.0' + +maven_jar( + name = 'user', + id = 'com.google.gwt:gwt-user:' + VERSION, + sha1 = 'bbec0cc2ba81a2601aac55e3783ad0d0ff7d45ac', + license = 'Apache2.0', + attach_source = False, +) + +maven_jar( + name = 'dev', + id = 'com.google.gwt:gwt-dev:' + VERSION, + sha1 = '3c227524e0978036e76e73e125ac8535a9e8fd7c', + license = 'Apache2.0', + deps = [ + ':javax-validation', + ':javax-validation_src', + ], + attach_source = False, +) + +maven_jar( + name = 'javax-validation', + id = 'javax.validation:validation-api:1.0.0.GA', + bin_sha1 = 'b6bd7f9d78f6fdaa3c37dae18a4bd298915f328e', + src_sha1 = '7a561191db2203550fbfa40d534d4997624cd369', + license = 'Apache2.0', + visibility = [], +) + +python_binary( + name = 'compiler', + main = 'compiler.py', + visibility = ['PUBLIC'], +) diff --git a/lib/gwt/compiler.py b/lib/gwt/compiler.py new file mode 100755 index 0000000000..4fa3b11c6c --- /dev/null +++ b/lib/gwt/compiler.py @@ -0,0 +1,68 @@ +#!/usr/bin/python +# Copyright (C) 2013 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from multiprocessing import cpu_count +from os import environ, fchmod, makedirs, mkdir, path +from subprocess import Popen, PIPE +from sys import argv, stderr + +cp, opt, end, TMP = [], [], False, environ['TMP'] +module, outzip = argv[1], argv[2] + +for a in argv[3:]: + if end: + if a.endswith('.jar'): + cp.append(a) + elif a == '--': + end = True + else: + opt.append(a) + +if not outzip.endswith('.zip'): + print >>stderr, "%s must end with .zip" % outzip + exit(1) + +rebuild = outzip[:-4] + '.rebuild' +for d in ['deploy', 'unit_cache', 'work']: + mkdir(path.join(TMP, d)) +if not path.exists(path.dirname(outzip)): + makedirs(path.dirname(outzip)) + +cmd = [ + 'java', '-Xmx512m', + '-Djava.io.tmpdir=' + TMP, + '-Dgwt.normalizeTimestamps=true', + '-Dgwt.persistentunitcachedir=' + path.join(TMP, 'unit_cache'), + '-classpath', ':'.join(cp), + 'com.google.gwt.dev.Compiler', + '-deploy', path.join(TMP, 'deploy'), + '-workDir', path.join(TMP, 'work'), + '-war', outzip, + '-localWorkers', str(cpu_count()), +] + opt + [module] + +gwt = Popen(cmd, stdout = PIPE, stderr = PIPE) +out, err = gwt.communicate() +if gwt.returncode != 0: + print >>stderr, out + err + exit(gwt.returncode) + +with open(rebuild, 'w') as fd: + def shquote(s): + return s.replace("'", "'\\''") + print >>fd, '#!/bin/sh' + print >>fd, "PATH='%s'" % shquote(environ['PATH']) + print >>fd, 'buck build "$1" || exit' + fchmod(fd.fileno(), 0755) diff --git a/lib/jetty/BUCK b/lib/jetty/BUCK new file mode 100644 index 0000000000..b7bdbac681 --- /dev/null +++ b/lib/jetty/BUCK @@ -0,0 +1,77 @@ +include_defs('//lib/maven.defs') + +VERSION = '8.1.7.v20120910' +EXCLUDE = ['about.html'] + +maven_jar( + name = 'servlet', + id = 'org.eclipse.jetty:jetty-servlet:' + VERSION, + sha1 = '93da01e3ea26e70449e9a1a0affa5c31436be5a0', + license = 'Apache2.0', + deps = [ + ':security', + '//lib:servlet-api-3_0', + ], + exclude = EXCLUDE, +) + +maven_jar( + name = 'security', + id = 'org.eclipse.jetty:jetty-security:' + VERSION, + sha1 = '8d78beb7a07f4cccee05a3f16a264f1025946258', + license = 'Apache2.0', + deps = [':server'], + exclude = EXCLUDE, + visibility = [], +) + +maven_jar( + name = 'server', + id = 'org.eclipse.jetty:jetty-server:' + VERSION, + sha1 = '6c81f733f28713919e99c2f8952e6ca5178033cd', + license = 'Apache2.0', + deps = [ + ':continuation', + ':http', + ], + exclude = EXCLUDE, + visibility = [], +) + +maven_jar( + name = 'continuation', + id = 'org.eclipse.jetty:jetty-continuation:' + VERSION, + sha1 = 'f60cfe6267038000b459508529c88737601081e4', + license = 'Apache2.0', + exclude = EXCLUDE, + visibility = [], +) + +maven_jar( + name = 'http', + id = 'org.eclipse.jetty:jetty-http:' + VERSION, + sha1 = '10126433876cd74534695f7f99c4362596555493', + license = 'Apache2.0', + deps = [':io'], + exclude = EXCLUDE, + visibility = [], +) + +maven_jar( + name = 'io', + id = 'org.eclipse.jetty:jetty-io:' + VERSION, + sha1 = 'a81f746ae1b10c37e1bb0a01d1374c202c0bd549', + license = 'Apache2.0', + deps = [':util'], + exclude = EXCLUDE, + visibility = [], +) + +maven_jar( + name = 'util', + id = 'org.eclipse.jetty:jetty-util:' + VERSION, + sha1 = '7eb2004ab2c22fd3b00095bd9ba0f32a9e88f6a5', + license = 'Apache2.0', + exclude = EXCLUDE, + visibility = [], +) diff --git a/lib/jgit/BUCK b/lib/jgit/BUCK new file mode 100644 index 0000000000..eb44417f6f --- /dev/null +++ b/lib/jgit/BUCK @@ -0,0 +1,65 @@ +include_defs('//lib/maven.defs') + +REPO = GERRIT +VERS = '2.3.1.201302201838-r.211-g36144e1' + +maven_jar( + name = 'jgit', + id = 'org.eclipse.jgit:org.eclipse.jgit:' + VERS, + bin_sha1 = '4328d64fb5f5a5a07795965801850a10901b0979', + src_sha1 = 'e55f1e231138df01edee9014df94ca3c6cbf0d8e', + license = 'jgit', + repository = REPO, + deps = [':ewah'], + exclude = [ + 'META-INF/eclipse.inf', + 'about.html', + 'plugin.properties', + ], +) + +maven_jar( + name = 'jgit-servlet', + id = 'org.eclipse.jgit:org.eclipse.jgit.http.server:' + VERS, + sha1 = '269b4096780247a26368985b05e4b66f16785946', + license = 'jgit', + repository = REPO, + deps = [':jgit'], + exclude = [ + 'about.html', + 'plugin.properties', + ], +) + +maven_jar( + name = 'junit', + id = 'org.eclipse.jgit:org.eclipse.jgit.junit:' + VERS, + sha1 = '0fa01088b0f7a847dabafec59318221828832b36', + license = 'DO_NOT_DISTRIBUTE', + repository = REPO, + deps = [':jgit'], +) + +maven_jar( + name = 'ewah', + id = 'com.googlecode.javaewah:JavaEWAH:0.5.6', + sha1 = '1207c0fc8552d4f5f574b50f29321d923521128e', + license = 'Apache2.0', +) + +prebuilt_jar( + name = 'Edit', + binary_jar = genfile('edit-src.jar'), + deps = [':jgit_edit_src'], + visibility = ['PUBLIC'], +) + +genrule( + name = 'jgit_edit_src', + cmd = 'unzip -qd $TMP $SRCS org/eclipse/jgit/diff/Edit.java;' + + 'cd $TMP;' + + 'zip -Dq $OUT org/eclipse/jgit/diff/Edit.java', + srcs = [genfile('jgit/org.eclipse.jgit-%s-src.jar' % VERS)], + out = 'edit-src.jar', + deps = [':jgit_src'] +) diff --git a/lib/log/BUCK b/lib/log/BUCK new file mode 100644 index 0000000000..5b541c42b1 --- /dev/null +++ b/lib/log/BUCK @@ -0,0 +1,24 @@ +include_defs('//lib/maven.defs') + +maven_jar( + name = 'api', + id = 'org.slf4j:slf4j-api:1.6.1', + sha1 = '6f3b8a24bf970f17289b234284c94f43eb42f0e4', + license = 'slf4j', +) + +maven_jar( + name = 'impl_log4j', + id = 'org.slf4j:slf4j-log4j12:1.6.1', + sha1 = 'bd245d6746cdd4e6203e976e21d597a46f115802', + license = 'slf4j', + deps = [':log4j'], +) + +maven_jar( + name = 'log4j', + id = 'log4j:log4j:1.2.16', + sha1 = '7999a63bfccbc7c247a9aea10d83d4272bd492c6', + license = 'Apache2.0', + exclude = ['META-INF/LICENSE', 'META-INF/NOTICE'], +) diff --git a/lib/maven.defs b/lib/maven.defs new file mode 100644 index 0000000000..a179deb87d --- /dev/null +++ b/lib/maven.defs @@ -0,0 +1,106 @@ +# Copyright (C) 2013 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +GERRIT = 'http://gerrit-maven.commondatastorage.googleapis.com' +MAVEN_CENTRAL = 'http://repo1.maven.org/maven2' + +def define_license(name): + n = 'LICENSE-' + name + genrule( + name = n, + cmd = 'ln -s $SRCS $OUT', + srcs = [n], + out = n, + visibility = ['PUBLIC'], + ) + +def maven_jar( + name, + id, + license, + exclude = [], + exclude_java_sources = False, + deps = [], + sha1 = '', bin_sha1 = '', src_sha1 = '', + repository = MAVEN_CENTRAL, + attach_source = True, + visibility = ['PUBLIC']): + from os import path + + parts = id.split(':') + if len(parts) != 3: + raise NameError('expected id="groupId:artifactId:version"') + group, artifact, version = parts + + jar = path.join(name, artifact.lower() + '-' + version) + url = '/'.join([ + repository, + group.replace('.', '/'), artifact, version, + artifact + '-' + version]) + + binjar = jar + '.jar' + binurl = url + '.jar' + + srcjar = jar + '-src.jar' + srcurl = url + '-sources.jar' + + cmd = ['${//tools:download_jar}', '-o', '$OUT', '-u', binurl] + if sha1: + cmd.extend(['-v', sha1]) + elif bin_sha1: + cmd.extend(['-v', bin_sha1]) + for x in exclude: + cmd.extend(['-x', x]) + if exclude_java_sources: + cmd.append('--exclude_java_sources') + + genrule( + name = name + '__download_bin', + cmd = ' '.join(cmd), + srcs = [], + deps = ['//tools:download_jar'], + out = binjar, + ) + download = [':' + name + '__download_bin'] + license = ['//lib:LICENSE-' + license] + + if src_sha1 or attach_source: + cmd = ['${//tools:download_jar}', '-o', '$OUT', '-u', srcurl] + if src_sha1: + cmd.extend(['-v', src_sha1]) + genrule( + name = name + '__download_src', + cmd = ' '.join(cmd), + srcs = [], + deps = ['//tools:download_jar'], + out = srcjar, + ) + if src_sha1: + prebuilt_jar( + name = name + '_src', + binary_jar = genfile(srcjar), + deps = [':' + name + '__download_src'] + license, + visibility = visibility, + ) + download.append(':' + name + '__download_src') + else: + srcjar = None + + prebuilt_jar( + name = name, + deps = deps + download + license, + binary_jar = genfile(binjar), + source_jar = genfile(srcjar) if srcjar else None, + visibility = visibility, + ) diff --git a/lib/mina/BUCK b/lib/mina/BUCK new file mode 100644 index 0000000000..3e9558afce --- /dev/null +++ b/lib/mina/BUCK @@ -0,0 +1,24 @@ +include_defs('//lib/maven.defs') + +EXCLUDE = [ + 'META-INF/DEPENDENCIES', + 'META-INF/LICENSE', + 'META-INF/NOTICE', +] + +maven_jar( + name = 'core', + id = 'org.apache.mina:mina-core:2.0.5', + sha1 = '0e134a3761833a3c28c79331e806f64f985a9eec', + license = 'Apache2.0', + exclude = EXCLUDE, +) + +maven_jar( + name = 'sshd', + id = 'org.apache.sshd:sshd-core:0.6.0', + sha1 = '2b9a119dd77a1decec78b0c511ba400c8655e96e', + license = 'Apache2.0', + deps = [':core'], + exclude = EXCLUDE, +) diff --git a/lib/openid/BUCK b/lib/openid/BUCK new file mode 100644 index 0000000000..19ce077276 --- /dev/null +++ b/lib/openid/BUCK @@ -0,0 +1,73 @@ +include_defs('//lib/maven.defs') + +java_library( + name = 'consumer', + deps = [ + ':http-client', + ':nekohtml', + ':nodeps', + ], + visibility = ['PUBLIC'], +) + +maven_jar( + name = 'nodeps', + id = 'org.openid4java:openid4java-nodeps:0.9.6', + sha1 = '52ca394f5f6d38b78e35a5a6a0a341dc5b3aaf34', + license = 'Apache2.0', + deps = [ + '//lib/commons:logging', + '//lib/guice:guice', + ], + visibility = [], +) + +maven_jar( + name = 'nekohtml', + id = 'net.sourceforge.nekohtml:nekohtml:1.9.10', + sha1 = '14052461031a7054aa094f5573792feb6686d3de', + license = 'Apache2.0', + deps = [':xerces'], + attach_source = False, + visibility = [], +) + +maven_jar( + name = 'xerces', + id = 'xerces:xercesImpl:2.8.1', + sha1 = '25101e37ec0c907db6f0612cbf106ee519c1aef1', + license = 'Apache2.0', + attach_source = False, + visibility = [], +) + +maven_jar( + name = 'http-client', + id = 'org.apache.httpcomponents:httpclient:4.0', + sha1 = 'a76d7fd8033d48b4c67b4ccf159abb080c1059b6', + license = 'Apache2.0', + deps = [ + ':http-core', + '//lib/commons:codec', + '//lib/commons:logging', + ], + exclude = [ + 'META-INF/DEPENDENCIES', + 'META-INF/LICENSE', + 'META-INF/NOTICE', + ], + visibility = ['//gerrit-acceptance-tests:'], +) + +maven_jar( + name = 'http-core', + id = 'org.apache.httpcomponents:httpcore:4.0.1', + sha1 = 'e813b8722c387b22e1adccf7914729db09bcb4a9', + license = 'Apache2.0', + exclude = [ + 'META-INF/DEPENDENCIES', + 'META-INF/LICENSE', + 'META-INF/NOTICE', + ], + visibility = [], +) diff --git a/lib/prolog/BUCK b/lib/prolog/BUCK new file mode 100644 index 0000000000..d545c2fd81 --- /dev/null +++ b/lib/prolog/BUCK @@ -0,0 +1,23 @@ +include_defs('//lib/maven.defs') + +maven_jar( + name = 'prolog-cafe', + id = 'com.googlecode.prolog-cafe:PrologCafe:1.3', + sha1 = '5e0fbf18e8c98c4113f9acc978306884a1152870', + license = 'prologcafe', + repository = GERRIT, +) + +java_binary( + name = 'compiler', + main_class = 'BuckPrologCompiler', + deps = [':compiler_lib'], + visibility = ['PUBLIC'], +) + +java_library( + name = 'compiler_lib', + srcs = ['java/BuckPrologCompiler.java'], + deps = [':prolog-cafe'], + visibility = ['//:eclipse_classpath'], +) diff --git a/lib/prolog/DEFS b/lib/prolog/DEFS new file mode 100644 index 0000000000..38d7fe56eb --- /dev/null +++ b/lib/prolog/DEFS @@ -0,0 +1,38 @@ +# Copyright (C) 2013 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +def prolog_cafe_library( + name, + srcs, + deps = [], + visibility = []): + genrule( + name = name + '_prolog2java', + cmd = '${//lib/prolog:compiler} $SRCS $DEPS $OUT', + srcs = srcs, + deps = [ + '//lib/prolog:compiler', + '//lib/prolog:prolog-cafe', + ] + deps, + out = name + '.jar', + ) + prebuilt_jar( + name = name, + binary_jar = genfile(name + '.jar'), + deps = [ + ':' + name + '_prolog2java', + '//lib/prolog:prolog-cafe', + ] + deps, + visibility = visibility, + ) diff --git a/lib/prolog/java/BuckPrologCompiler.java b/lib/prolog/java/BuckPrologCompiler.java new file mode 100644 index 0000000000..d23e15d142 --- /dev/null +++ b/lib/prolog/java/BuckPrologCompiler.java @@ -0,0 +1,166 @@ +// Copyright (C) 2013 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; +import java.util.jar.JarEntry; +import java.util.jar.JarOutputStream; + +import javax.tools.Diagnostic; +import javax.tools.DiagnosticCollector; +import javax.tools.JavaCompiler; +import javax.tools.JavaFileObject; +import javax.tools.StandardJavaFileManager; +import javax.tools.ToolProvider; + +import com.googlecode.prolog_cafe.compiler.CompileException; +import com.googlecode.prolog_cafe.compiler.Compiler; + +public class BuckPrologCompiler { + public static void main(String[] argv) throws IOException, CompileException { + List srcs = new ArrayList(); + List jars = new ArrayList(); + for (int i = 0; i < argv.length - 1; i++) { + String s = argv[i]; + if (s.endsWith(".pl")) { + srcs.add(new File(s)); + } else if (s.endsWith(".jar")) { + jars.add(new File(s)); + } + } + + File out = new File(argv[argv.length - 1]); + File java = tmpdir("java"); + File classes = tmpdir("classes"); + for (File src : srcs) { + new Compiler().prologToJavaSource(src.getPath(), java.getPath()); + } + javac(jars, java, classes); + jar(out, classes); + } + + private static File tmpdir(String name) throws IOException { + File d = File.createTempFile(name + "_", ""); + if (!d.delete() || !d.mkdir()) { + throw new IOException("Cannot mkdir " + d); + } + return d; + } + + private static void javac(List cp, File java, File classes) + throws IOException, CompileException { + JavaCompiler javac = ToolProvider.getSystemJavaCompiler(); + if (javac == null) { + throw new CompileException("JDK required (running inside of JRE)"); + } + + DiagnosticCollector d = + new DiagnosticCollector(); + StandardJavaFileManager fm = javac.getStandardFileManager(d, null, null); + try { + StringBuilder classpath = new StringBuilder(); + for (File jar : cp) { + if (classpath.length() > 0) { + classpath.append(File.pathSeparatorChar); + } + classpath.append(jar.getPath()); + } + ArrayList args = new ArrayList(); + args.add("-g:none"); + args.add("-nowarn"); + if (classpath.length() > 0) { + args.add("-classpath"); + args.add(classpath.toString()); + } + args.add("-d"); + args.add(classes.getPath()); + if (!javac.getTask(null, fm, d, args, null, + fm.getJavaFileObjectsFromFiles(find(java, ".java"))).call()) { + StringBuilder msg = new StringBuilder(); + for (Diagnostic err : d.getDiagnostics()) { + msg.append('\n').append(err.getKind()).append(": "); + if (err.getSource() != null) { + msg.append(err.getSource().getName()); + } + msg.append(':').append(err.getLineNumber()).append(": "); + msg.append(err.getMessage(Locale.getDefault())); + } + throw new CompileException(msg.toString()); + } + } finally { + fm.close(); + } + } + + private static void jar(File jar, File classes) throws IOException { + File tmp = File.createTempFile("prolog", ".jar", jar.getParentFile()); + try { + JarOutputStream out = new JarOutputStream(new FileOutputStream(tmp)); + try { + out.setLevel(9); + add(out, classes, ""); + } finally { + out.close(); + } + if (!tmp.renameTo(jar)) { + throw new IOException("Cannot create " + jar); + } + } finally { + tmp.delete(); + } + } + + private static void add(JarOutputStream out, File classes, String prefix) + throws IOException { + for (String name : classes.list()) { + File f = new File(classes, name); + if (f.isDirectory()) { + add(out, f, prefix + name + "/"); + continue; + } + + JarEntry e = new JarEntry(prefix + name); + FileInputStream in = new FileInputStream(f); + try { + e.setTime(f.lastModified()); + out.putNextEntry(e); + byte[] buf = new byte[16 << 10]; + int n; + while (0 < (n = in.read(buf))) { + out.write(buf, 0, n); + } + } finally { + in.close(); + out.closeEntry(); + } + } + } + + private static List find(File dir, String extension) { + ArrayList list = new ArrayList(); + for (File f : dir.listFiles()) { + if (f.getName().endsWith(extension)) { + list.add(f); + } else if (f.isDirectory()) { + list.addAll(find(f, extension)); + } + } + return list; + } +} diff --git a/plugins/BUCK b/plugins/BUCK new file mode 100644 index 0000000000..707b38ebac --- /dev/null +++ b/plugins/BUCK @@ -0,0 +1,36 @@ +BASE = get_base_path() +CORE = [ + 'commit-message-length-validator', + 'replication', + 'reviewnotes', +] + +# buck audit parses and resolves all deps even if not reachable +# from the root(s) passed to audit. Filter dependencies to only +# the ones that currently exist to allow buck to parse cleanly. +# TODO(sop): buck should more lazily resolve deps +def filter(names): + from os import path + h, n = [], [] + for p in names: + if path.exists(path.join(BASE, p, 'BUCK')): + h.append(p) + else: + n.append(p) + return h, n +HAVE, NEED = filter(CORE) + +genrule( + name = 'core', + cmd = '' + + ';'.join(['echo >&2 plugins/'+n+' is required.' for n in NEED]) + + (';echo >&2;exit 1;' if NEED else '') + + 'mkdir -p $TMP/WEB-INF/plugins &&' + + 'for s in $SRCS;do ln -s $s $TMP/WEB-INF/plugins;done;' + + 'cd $TMP &&' + + 'zip -qr $OUT .', + srcs = [genfile('%s/%s.jar' % (n, n)) for n in CORE], + deps = ['//%s/%s:%s' % (BASE, n, n) for n in HAVE], + out = 'core.zip', + visibility = ['//:release'], +) diff --git a/tools/BUCK b/tools/BUCK new file mode 100644 index 0000000000..1ea86bea13 --- /dev/null +++ b/tools/BUCK @@ -0,0 +1,23 @@ +python_binary( + name = 'download_jar', + main = 'download_jar.py', + visibility = ['PUBLIC'], +) + +python_binary( + name = 'pack_war', + main = 'pack_war.py', + visibility = ['PUBLIC'], +) + +python_binary( + name = 'eclipse_classpath', + main = 'eclipse_classpath.py', + visibility = ['PUBLIC'], +) + +python_binary( + name = 'eclipse_project', + main = 'eclipse_project.py', + visibility = ['PUBLIC'], +) diff --git a/tools/build.defs b/tools/build.defs new file mode 100644 index 0000000000..42cb630c63 --- /dev/null +++ b/tools/build.defs @@ -0,0 +1,80 @@ +# Copyright (C) 2013 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +DOCS = ['//Documentation:html.zip'] +LIBS = [ + '//gerrit-common:version', + '//gerrit-war:init', + '//gerrit-war:log4j-config', + '//lib:postgresql', + '//lib/log:impl_log4j', +] +PGMLIBS = ['//gerrit-pgm:pgm'] + +def scan_plugins(): + import os + deps = [] + for n in os.listdir('plugins'): + if os.path.exists(os.path.join('plugins', n, 'BUCK')): + deps.append('//plugins/%s:%s__plugin__compile' % (n, n)) + return deps + +def war( + name, + libs = [], + pgmlibs = [], + context = [], + visibility = [] + ): + cmd = ['${//tools:pack_war}', '-o', '$OUT'] + for l in libs: + cmd.extend(['--lib', l]) + for l in pgmlibs: + cmd.extend(['--pgmlib', l]) + + src = [] + dep = [] + if context: + root = get_base_path() + if root: + root = '/'.join(['..' for _ in root.split('/')]) + '/' + for r in context: + dep.append(r[:r.rindex('.')]) + if r.startswith('//'): + r = root + r[2:] + r = r.replace(':', '/') + src.append(genfile(r)) + cmd.append('$SRCS') + + genrule( + name = name, + cmd = ' '.join(cmd), + srcs = src, + deps = libs + pgmlibs + dep + ['//tools:pack_war'], + out = name + '.war', + visibility = visibility, + ) + +def gerrit_war(name, ui = 'ui_optdbg', context = []): + war( + name = name, + libs = LIBS, + pgmlibs = PGMLIBS, + context = [ + '//gerrit-main:main_bin.jar', + '//gerrit-war:webapp_assets.zip', + '//gerrit-gwtexpui:clippy_swf.zip', + '//gerrit-gwtui:' + ui + '.zip', + ] + context, + ) diff --git a/tools/daemon_ui_chrome.launch b/tools/daemon_ui_chrome.launch new file mode 100644 index 0000000000..efe26239d4 --- /dev/null +++ b/tools/daemon_ui_chrome.launch @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/tools/daemon_ui_dbg.launch b/tools/daemon_ui_dbg.launch new file mode 100644 index 0000000000..a345f8afa2 --- /dev/null +++ b/tools/daemon_ui_dbg.launch @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/tools/daemon_ui_firefox.launch b/tools/daemon_ui_firefox.launch new file mode 100644 index 0000000000..383b0516d4 --- /dev/null +++ b/tools/daemon_ui_firefox.launch @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/tools/daemon_ui_ie9.launch b/tools/daemon_ui_ie9.launch new file mode 100644 index 0000000000..18863e728c --- /dev/null +++ b/tools/daemon_ui_ie9.launch @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/tools/daemon_ui_safari.launch b/tools/daemon_ui_safari.launch new file mode 100644 index 0000000000..55259a9110 --- /dev/null +++ b/tools/daemon_ui_safari.launch @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/tools/download_jar.py b/tools/download_jar.py new file mode 100755 index 0000000000..448a0ddd02 --- /dev/null +++ b/tools/download_jar.py @@ -0,0 +1,105 @@ +#!/usr/bin/python +# Copyright (C) 2013 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from hashlib import sha1 +from optparse import OptionParser +from os import link, makedirs, path +import shutil +from subprocess import check_call +from sys import stderr +from zipfile import ZipFile, BadZipfile, LargeZipFile + +def hashfile(p): + d = sha1() + with open(p, 'rb') as f: + while True: + b = f.read(8192) + if not b: + break + d.update(b) + return d.hexdigest() + +def safe_mkdirs(d): + if path.isdir(d): + return + try: + makedirs(d) + except OSError as err: + if not path.isdir(d): + raise err + +opts = OptionParser() +opts.add_option('-o', help='local output file') +opts.add_option('-u', help='URL to download') +opts.add_option('-v', help='expected content SHA-1') +opts.add_option('-x', action='append', help='file to delete from ZIP') +opts.add_option('--exclude_java_sources', action='store_true') +args, _ = opts.parse_args() + +root_dir = args.o +while root_dir: + root_dir, n = path.split(root_dir) + if n == 'buck-out': + break + +cache_ent = path.join( + root_dir, + 'buck-cache', + '%s-%s' % (path.basename(args.o), sha1(args.u).hexdigest())) + +if not path.exists(cache_ent): + try: + safe_mkdirs(path.dirname(cache_ent)) + check_call(['curl', '-sfo', cache_ent, args.u]) + except OSError as err: + print >>stderr, "error using curl: %s" % str(err) + exit(1) + +if args.v: + have = hashfile(cache_ent) + if args.v != have: + o = cache_ent[len(root_dir) + 1:] + print >>stderr, ( + '%s:\n' + + 'expected %s\n' + + 'received %s\n' + + ' %s\n') % (args.u, args.v, have, o) + exit(1) + +exclude = [] +if args.x: + exclude += args.x +if args.exclude_java_sources: + try: + zf = ZipFile(cache_ent, 'r') + try: + for n in zf.namelist(): + if n.endswith('.java'): + exclude.append(n) + finally: + zf.close() + except (BadZipfile, LargeZipFile) as err: + print >>stderr, "error opening %s: %s" % (cache_ent, str(err)) + exit(1) + +safe_mkdirs(path.dirname(args.o)) +if exclude: + shutil.copyfile(cache_ent, args.o) + check_call(['zip', '-d', args.o] + exclude) +else: + try: + link(cache_ent, args.o) + except OSError as err: + symlink(cache_ent, args.o) diff --git a/tools/eclipse_classpath.py b/tools/eclipse_classpath.py new file mode 100755 index 0000000000..01652bdf64 --- /dev/null +++ b/tools/eclipse_classpath.py @@ -0,0 +1,118 @@ +#!/usr/bin/python +# Copyright (C) 2013 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# TODO(sop): Remove hack after Buck supports Eclipse + +from os import path, link +import re +from subprocess import Popen, PIPE +from sys import argv +from xml.dom import minidom + +OUT = argv[1] if len(argv) >= 2 else None +ROOT = path.dirname(path.dirname(path.abspath(__file__))) +MAIN = ['//:eclipse_classpath'] +GWT = ['//gerrit-gwtui:ui_module'] +JRE = '/'.join([ + 'org.eclipse.jdt.launching.JRE_CONTAINER', + 'org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType', + 'JavaSE-1.6', +]) + +def query_classpath(targets): + deps = [] + p = Popen(['buck', 'audit', 'classpath'] + targets, stdout = PIPE) + for line in p.stdout: + deps.append(line.strip()) + s = p.wait() + if s != 0: + exit(s) + return deps + +def make_classpath(): + impl = minidom.getDOMImplementation() + return impl.createDocument(None, 'classpath', None) + +doc = make_classpath() +src = set() +lib = set() +gwt_src = set() +gwt_lib = set() + +def classpathentry(kind, path, src = None): + e = doc.createElement('classpathentry') + e.setAttribute('kind', kind) + e.setAttribute('path', path) + if src: + e.setAttribute('sourcepath', src) + doc.documentElement.appendChild(e) + +java_library = re.compile(r'[^/]+/gen/(.*)/lib__[^/]+__output/[^/]+[.]jar$') +for p in query_classpath(MAIN): + if p.endswith('-src.jar'): + # gwt_module() depends on -src.jar for Java to JavaScript compiles. + gwt_lib.add(p) + continue + + if p.startswith('buck-out/gen/lib/gwt/'): + # gwt_module() depends on huge shaded GWT JARs that import + # incorrect versions of classes for Gerrit. Collect into + # a private grouping for later use. + gwt_lib.add(p) + continue + + m = java_library.match(p) + if m: + src.add(m.group(1)) + else: + lib.add(p) + +for p in query_classpath(GWT): + m = java_library.match(p) + if m: + gwt_src.add(m.group(1)) + +for s in sorted(src): + p = path.join(s, 'java') + if path.exists(p): + classpathentry('src', p) + continue + + for env in ['main', 'test']: + for type in ['java', 'resources']: + p = path.join(s, 'src', env, type) + if path.exists(p): + classpathentry('src', p) + +for libs in [lib, gwt_lib]: + for j in sorted(libs): + s = None + if j.endswith('.jar'): + s = j[:-4] + '-src.jar' + if not path.exists(s): + s = None + classpathentry('lib', j, s) + +for s in sorted(gwt_src): + classpathentry('lib', path.join(ROOT, s, 'src', 'main', 'java')) + +classpathentry('con', JRE) +classpathentry('output', 'buck-out/classes') + +p = path.join(ROOT, '.classpath') +with open(p, 'w') as fd: + doc.writexml(fd, addindent = ' ', newl = '\n', encoding='UTF-8') +if OUT: + link(p, OUT) diff --git a/tools/eclipse_project.py b/tools/eclipse_project.py new file mode 100755 index 0000000000..5ec47be0f8 --- /dev/null +++ b/tools/eclipse_project.py @@ -0,0 +1,40 @@ +#!/usr/bin/python +# Copyright (C) 2013 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# TODO(sop): Remove hack after Buck supports Eclipse + +from os import path, symlink +from sys import argv + +OUT = argv[1] +ROOT = path.dirname(path.dirname(path.abspath(__file__))) + +p = path.join(ROOT, '.project') +with open(p, 'w') as fd: + print >>fd, """\ + + + gerrit + + + org.eclipse.jdt.core.javabuilder + + + + org.eclipse.jdt.core.javanature + +\ +""" +symlink(p, OUT) diff --git a/tools/gwt_debug.launch b/tools/gwt_debug.launch new file mode 100644 index 0000000000..e2d77d78f1 --- /dev/null +++ b/tools/gwt_debug.launch @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/tools/pack_war.py b/tools/pack_war.py new file mode 100755 index 0000000000..1c14bc8f5b --- /dev/null +++ b/tools/pack_war.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# Copyright (C) 2013 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from optparse import OptionParser +from os import environ, makedirs, path, symlink +from subprocess import check_call +try: + from subprocess import check_output +except ImportError: + from subprocess import Popen, PIPE + def check_output(*cmd): + return Popen(*cmd, stdout=PIPE).communicate()[0] + +opts = OptionParser() +opts.add_option('-o', help='path to write WAR to') +opts.add_option('--lib', action='append', help='target for WEB-INF/lib') +opts.add_option('--pgmlib', action='append', help='target for WEB-INF/pgm-lib') +args, ctx = opts.parse_args() + +war = environ['TMP'] +root = war[:war.index('buck-out')] +jars = set() + +def link_jars(libs, dir): + makedirs(dir) + cp = check_output(['buck', 'audit', 'classpath'] + libs) + for j in cp.strip().splitlines(): + if j not in jars: + jars.add(j) + n = path.basename(j) + if j.startswith('buck-out/gen/gerrit-'): + n = j.split('/')[2] + '-' + n + symlink(path.join(root, j), path.join(dir, n)) + +if args.lib: + link_jars(args.lib, path.join(war, 'WEB-INF', 'lib')) +if args.pgmlib: + link_jars(args.pgmlib, path.join(war, 'WEB-INF', 'pgm-lib')) +for s in ctx: + check_call(['unzip', '-q', '-d', war, s]) +check_call(['zip', '-9qr', args.o, '.'], cwd = war)