+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" path="resources"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+++ /dev/null
-/bin
-/target
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.jgit.iplog</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
+++ /dev/null
-#Mon Aug 11 16:46:12 PDT 2008
-eclipse.preferences.version=1
-encoding/<project>=UTF-8
+++ /dev/null
-#Mon Mar 24 18:55:50 EDT 2008
-eclipse.preferences.version=1
-line.separator=\n
+++ /dev/null
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=warning
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=error
-org.eclipse.jdt.core.compiler.problem.deadCode=error
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=error
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=error
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-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_resources_in_try=80
-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.alignment_for_union_type_in_multicatch=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=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-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_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=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=true
-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=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-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.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-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=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-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_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=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=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=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_try=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_semicolon_in_try_resources=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=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_try=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_try=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_semicolon_in_try_resources=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=false
-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=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+++ /dev/null
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_JGit Format
-formatter_settings_version=12
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><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_missing_override_annotations_interface_methods=false
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=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
+++ /dev/null
-#Tue Jul 19 20:11:28 CEST 2011
-eclipse.preferences.version=1
-project.repository.kind=bugzilla
-project.repository.url=https\://bugs.eclipse.org/bugs
+++ /dev/null
-#Tue Jul 19 20:11:28 CEST 2011
-commit.comment.template=${task.description} \n\nBug\: ${task.key}
-eclipse.preferences.version=1
+++ /dev/null
-#Tue Oct 18 00:52:01 CEST 2011
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
+++ /dev/null
-#Thu Jan 14 14:34:32 CST 2010
-eclipse.preferences.version=1
-resolve.requirebundle=false
+++ /dev/null
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %plugin_name
-Bundle-SymbolicName: org.eclipse.jgit.iplog
-Bundle-Version: 2.3.0.qualifier
-Bundle-Vendor: %provider_name
-Bundle-Localization: plugin
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Import-Package: org.eclipse.jgit.diff;version="[2.3.0,2.4.0)",
- org.eclipse.jgit.dircache;version="[2.3.0,2.4.0)",
- org.eclipse.jgit.errors;version="[2.3.0,2.4.0)",
- org.eclipse.jgit.lib;version="[2.3.0,2.4.0)",
- org.eclipse.jgit.nls;version="[2.3.0,2.4.0)",
- org.eclipse.jgit.revplot;version="[2.3.0,2.4.0)",
- org.eclipse.jgit.revwalk;version="[2.3.0,2.4.0)",
- org.eclipse.jgit.revwalk.filter;version="[2.3.0,2.4.0)",
- org.eclipse.jgit.storage.file;version="[2.3.0,2.4.0)",
- org.eclipse.jgit.transport;version="[2.3.0,2.4.0)",
- org.eclipse.jgit.treewalk;version="[2.3.0,2.4.0)",
- org.eclipse.jgit.treewalk.filter;version="[2.3.0,2.4.0)",
- org.eclipse.jgit.util;version="[2.3.0,2.4.0)"
-Export-Package: org.eclipse.jgit.iplog;version="2.3.0"
+++ /dev/null
-# -----------------------------------------------------------
-# This document describes how to generate the Eclipse ip log
-# for the eclipse project technology.jgit using a local clone
-# of the git repository
-# git://egit.eclipse.org/jgit.git
-# starting point is a manually written file
-# .eclipse_iplog
-# located in the repository's work dir root path
-# which is describing the project, see first section of this
-# file in the jgit root directory:
-# $JGIT_BASE/.eclipse_iplog
-# -----------------------------------------------------------
-# Prepare:
-# jgit executable (assuming jgit mvn build is up to date)
-export jgit="~/src/git/jgit/org.eclipse.jgit.pgm/target/jgit"
-
-# repository work dir root path
-export WORK_DIR="~/src/git/jgit/"
-
-# cd to repository work dir root path
-cd $WORK_DIR
-
-# -----------------------------------------------------------
-# Update the CQ list:
-# - this command updates file .eclipse_iplog
-jgit eclipse-ipzilla
-
-# - if there are any updates 'git commit' them
-git add .eclipse_iplog
-git commit
-
-# - type in ipzilla user and password
-
-# -----------------------------------------------------------
-# Get the committer data from gerrit:
-# - start gerrit gsql via ssh
-# options:
-# -p : ssh port gerrit is listening on
-ssh -p 29418 username@egit.eclipse.org gerrit gsql --format PRETTY
-
-# - type in ssh passphrase for your ssh key
-# - run the SQL query (cut and paste content to interactive gerrit shell)
-# org.eclipse.jgit.iplog/src/org/eclipse/jgit/iplog/gsql_query.txt
-# - copy the query result into the file (no headers, no blank lines):
-# $WORK_DIR/.git/gerrit_committers
-
-# -----------------------------------------------------------
-# Generate the iplog:
-# options:
-# -- version : the project version the iplog is to be generated for
-# - o : the output file
-jgit eclipse-iplog --version=1.3.0 -o $WORK_DIR/jgit-1.3.0.xml
-
-
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Distribution License - Version 1.0</title>
-<style type="text/css">
- body {
- size: 8.5in 11.0in;
- margin: 0.25in 0.5in 0.25in 0.5in;
- tab-interval: 0.5in;
- }
- p {
- margin-left: auto;
- margin-top: 0.5em;
- margin-bottom: 0.5em;
- }
- p.list {
- margin-left: 0.5in;
- margin-top: 0.05em;
- margin-bottom: 0.05em;
- }
- </style>
-
-</head>
-
-<body lang="EN-US">
-
-<p><b>Eclipse Distribution License - v 1.0</b></p>
-
-<p>Copyright (c) 2007, Eclipse Foundation, Inc. and its licensors. </p>
-
-<p>All rights reserved.</p>
-<p>Redistribution and use in source and binary forms, with or without modification,
- are permitted provided that the following conditions are met:
-<ul><li>Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer. </li>
-<li>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. </li>
-<li>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. </li></ul>
-</p>
-<p>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.</p>
-
-</body>
-
-</html>
+++ /dev/null
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.properties,\
- about.html
+++ /dev/null
-plugin_name=JGit IP Log Generator
-provider_name=Eclipse.org
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2009-2010, Google Inc.
- Copyright (C) 2008, Imran M Yousuf <imyousuf@smartitengineering.com>
- and other copyright owners as documented in the project's IP log.
-
- 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.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.eclipse.jgit</groupId>
- <artifactId>org.eclipse.jgit-parent</artifactId>
- <version>2.3.0-SNAPSHOT</version>
- </parent>
-
- <artifactId>org.eclipse.jgit.iplog</artifactId>
- <name>JGit - Eclipse IP Log Generator</name>
-
- <description>
- Creates an IP log for Git based projects.
- </description>
-
- <properties>
- <translate-qualifier/>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.eclipse.jgit</groupId>
- <artifactId>org.eclipse.jgit</artifactId>
- <version>${project.version}</version>
- </dependency>
- </dependencies>
-
- <build>
- <sourceDirectory>src/</sourceDirectory>
-
- <resources>
- <resource>
- <directory>.</directory>
- <includes>
- <include>plugin.properties</include>
- <include>about.html</include>
- </includes>
- </resource>
- <resource>
- <directory>resources/</directory>
- </resource>
- </resources>
-
- <plugins>
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <configuration>
- <archive>
- <manifestFile>${bundle-manifest}</manifestFile>
- </archive>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
+++ /dev/null
-CQString=CQ {0}
-CSVParsingError=CSV parsing error: {0}
-cannotLock=Cannot lock {0}
-cannotSerializeXML=Cannot serialize XML
-cannotWrite=Cannot write {0}
-committerString=Committer {0} {1}
-configurationFileInCommitHasNoProjectsDeclared=Configuration file {0} in commit {1} has no projects declared.
-configurationFileInCommitIsInvalid=Configuration file {0} in commit {1} is invalid
-contributorString=Contributor {0}
-incorrectlyScanned=Incorrectly scanned {0}
-invalidDate=Invalid date: {0}
-invalidURIFormat=Invalid URI format: {0}
-loginFailed=Login as {0} to {1} failed: {2}
-pageTitleWas=page title was "{0}"
-projectString=Project {0} ({1})
-queryFailed=Query {0} failed: {1}
-responseNotHTMLAsExpected=Response not HTML as expected
+++ /dev/null
-/*
- * Copyright (C) 2010, Google Inc.
- * and other copyright owners as documented in the project's IP log.
- *
- * 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.
- */
-
-package org.eclipse.jgit.iplog;
-
-import static java.lang.Long.valueOf;
-
-import java.text.MessageFormat;
-import java.util.Comparator;
-
-/**
- * A contribution questionnaire stored in IPzilla.
- *
- * @see <a href="http://wiki.eclipse.org/IPzilla">IPzilla - Eclipsepedia</a>
- * @see <a href="https://dev.eclipse.org/ipzilla/">IPzilla - Login</a>
- */
-class CQ {
- /** Sorts CQs by their unique number. */
- static final Comparator<CQ> COMPARATOR = new Comparator<CQ>() {
- public int compare(CQ a, CQ b) {
- int cmp = state(a) - state(b);
- if (cmp == 0)
- cmp = compare(a.getID(), b.getID());
- return cmp;
- }
-
- private int state(CQ a) {
- if ("approved".equals(a.getState()))
- return 1;
- return 50;
- }
-
- private int compare(long a, long b) {
- return a < b ? -1 : a == b ? 0 : 1;
- }
- };
-
- private final long id;
-
- private String description;
-
- private String license;
-
- private String use;
-
- private String state;
-
- private String comments;
-
- /**
- * @param id
- */
- CQ(final long id) {
- this.id = id;
- }
-
- /** @return unique id number of the contribution questionnaire. */
- long getID() {
- return id;
- }
-
- /** @return short description of this CQ record. */
- String getDescription() {
- return description;
- }
-
- void setDescription(String description) {
- this.description = description;
- }
-
- /** @return the license the contribution is under. */
- String getLicense() {
- return license;
- }
-
- void setLicense(String license) {
- this.license = license;
- }
-
- /** @return how this code is used by the project, e.g. "unmodified binary". */
- String getUse() {
- return use;
- }
-
- void setUse(String use) {
- this.use = use;
- }
-
- /** @return TODO find out what state is */
- String getState() {
- return state;
- }
-
- void setState(String state) {
- this.state = state;
- }
-
- /** @return any additional comments about this particular CQ. */
- String getComments() {
- return comments;
- }
-
- void setComments(String comments) {
- this.comments = comments;
- }
-
- @Override
- public int hashCode() {
- return (int) getID();
- }
-
- @Override
- public boolean equals(Object other) {
- if (other instanceof CQ) {
- return ((CQ) other).getID() == getID();
- }
- return false;
- }
-
- @Override
- public String toString() {
- return MessageFormat.format(IpLogText.get().CQString, valueOf(getID()));
- }
-}
+++ /dev/null
-/*
- * Copyright (C) 2010, Google Inc.
- * and other copyright owners as documented in the project's IP log.
- *
- * 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.
- */
-
-package org.eclipse.jgit.iplog;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-/** A crude CSV file parser. */
-class CSV {
- private final BufferedReader in;
-
- private List<String> columns;
-
- CSV(BufferedReader br) throws IOException {
- in = br;
- columns = readLine();
- }
-
- Map<String, String> next() throws IOException {
- List<String> row = readLine();
- if (columns == null || row == null)
- return null;
-
- Map<String, String> r = new LinkedHashMap<String, String>();
- for (int col = 0; col < columns.size(); col++)
- r.put(columns.get(col), row.get(col));
- return r;
- }
-
- private List<String> readLine() throws IOException {
- String line = in.readLine();
- if (line == null || line.length() == 0)
- return null;
-
- ArrayList<String> row;
- if (columns != null)
- row = new ArrayList<String>(columns.size());
- else
- row = new ArrayList<String>();
-
- int p = 0;
- while (p < line.length()) {
- if (line.charAt(p) == '"') {
- p++; // skip the opening quote.
-
- StringBuilder b = new StringBuilder();
- SCAN: while (p < line.length()) {
- char c = line.charAt(p);
- switch (c) {
- case '"':
- p++;
- break SCAN;
-
- case '\\':
- b.append(line.charAt(p + 1));
- p += 2;
- break;
-
- default:
- b.append(c);
- p++;
- break;
- }
- }
- if (p < line.length() && line.charAt(p) != ',')
- throw new IOException(MessageFormat.format(IpLogText.get().CSVParsingError, line));
- row.add(b.toString());
- p++; // skip the trailing comma (if present)
-
- } else if (line.charAt(p) == ',') {
- row.add("");
- p++;
- if (p == line.length())
- row.add("");
-
- } else {
- int comma = line.indexOf(',', p);
- row.add(line.substring(p, comma));
- p = comma + 1;
- }
- }
- return row;
- }
-}
+++ /dev/null
-/*
- * Copyright (C) 2010, Google Inc.
- * and other copyright owners as documented in the project's IP log.
- *
- * 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.
- */
-
-package org.eclipse.jgit.iplog;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-/** A project committer. */
-class Committer {
- /** Sorts committers by their name first name, then last name. */
- static final Comparator<Committer> COMPARATOR = new Comparator<Committer>() {
- public int compare(Committer a, Committer b) {
- int cmp = a.firstName.compareTo(b.firstName);
- if (cmp == 0)
- cmp = a.lastName.compareTo(b.lastName);
- return cmp;
- }
- };
-
- private final String id;
-
- private String firstName;
-
- private String lastName;
-
- private String affiliation;
-
- private boolean hasCommits;
-
- private String comments;
-
- private final Set<String> emailAddresses = new HashSet<String>();
-
- private final List<ActiveRange> active = new ArrayList<ActiveRange>(2);
-
- /**
- * @param id
- * unique identity of the committer
- */
- Committer(String id) {
- this.id = id;
- }
-
- /** @return unique identity of this committer in the foundation database. */
- String getID() {
- return id;
- }
-
- /** @return first name of the committer; their given name. */
- String getFirstName() {
- return firstName;
- }
-
- void setFirstName(String firstName) {
- this.firstName = firstName;
- }
-
- /** @return last name of the committer; their surname or family name. */
- String getLastName() {
- return lastName;
- }
-
- void setLastName(String lastName) {
- this.lastName = lastName;
- }
-
- /** @return the organization the committer is affiliated with. */
- String getAffiliation() {
- return affiliation;
- }
-
- void setAffiliation(String affiliation) {
- this.affiliation = affiliation;
- }
-
- /** @return true if this committer is still an active member of the project. */
- boolean isActive() {
- if (active.isEmpty())
- return false;
- ActiveRange last = active.get(active.size() - 1);
- return last.end == null;
- }
-
- /** @return true if this committer has commits in the project. */
- boolean hasCommits() {
- return hasCommits;
- }
-
- void setHasCommits(boolean hasCommits) {
- this.hasCommits = hasCommits;
- }
-
- /** @return any additional comments about this committer. */
- String getComments() {
- return comments;
- }
-
- void setComments(String comments) {
- this.comments = comments;
- }
-
- void addEmailAddress(String email) {
- emailAddresses.add(email);
- }
-
- void addActiveRange(ActiveRange r) {
- active.add(r);
- Collections.sort(active, new Comparator<ActiveRange>() {
- public int compare(ActiveRange a, ActiveRange b) {
- return a.begin.compareTo(b.begin);
- }
- });
- }
-
- /**
- * @param when
- * @return true if the event occurred while an active committer.
- */
- boolean inRange(Date when) {
- for (ActiveRange ar : active) {
- if (ar.contains(when))
- return true;
- }
- return false;
- }
-
- @Override
- public String toString() {
- return MessageFormat.format(IpLogText.get().committerString, getFirstName(), getLastName());
- }
-
- /** Date period during which the committer was active. */
- static class ActiveRange {
- private final Date begin;
-
- private final Date end;
-
- /**
- * @param begin
- * @param end
- */
- ActiveRange(Date begin, Date end) {
- this.begin = begin;
- this.end = end;
- }
-
- /**
- * @param when
- * @return true if {@code when} is within this date span.
- */
- boolean contains(Date when) {
- if (when.compareTo(begin) < 0)
- return false;
- if (end == null)
- return true;
- return when.compareTo(end) < 0;
- }
- }
-}
+++ /dev/null
-/*
- * Copyright (C) 2010, Google Inc.
- * and other copyright owners as documented in the project's IP log.
- *
- * 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.
- */
-
-package org.eclipse.jgit.iplog;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-/** A project contributor (non-committer). */
-class Contributor {
- /** Sorts contributors by their name first name, then last name. */
- static final Comparator<Contributor> COMPARATOR = new Comparator<Contributor>() {
- public int compare(Contributor a, Contributor b) {
- return a.name.compareTo(b.name);
- }
- };
-
- private final String id;
-
- private final String name;
-
- private final List<SingleContribution> contributions = new ArrayList<SingleContribution>();
-
- /**
- * @param id
- * @param name
- */
- Contributor(String id, String name) {
- this.id = id;
- this.name = name;
- }
-
- /** @return unique identity of this contributor in the foundation database. */
- String getID() {
- return id;
- }
-
- /** @return name of the contributor. */
- String getName() {
- return name;
- }
-
- /** @return all known contributions. */
- Collection<SingleContribution> getContributions() {
- return Collections.unmodifiableCollection(contributions);
- }
-
- void add(SingleContribution bug) {
- contributions.add(bug);
- }
-
- @Override
- public String toString() {
- return MessageFormat.format(IpLogText.get().contributorString, getName());
- }
-}
+++ /dev/null
-/*
- * Copyright (C) 2010, Google Inc.
- * and other copyright owners as documented in the project's IP log.
- *
- * 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.
- */
-
-package org.eclipse.jgit.iplog;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.Reader;
-import java.io.UnsupportedEncodingException;
-import java.net.ConnectException;
-import java.net.CookieHandler;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.Proxy;
-import java.net.ProxySelector;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.net.URLEncoder;
-import java.text.MessageFormat;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.jgit.util.HttpSupport;
-
-/** A crude interface to query IPzilla. */
-class IPZillaQuery {
- private static final String RE_EPL = "^.*(Eclipse Public License|EPL).*$";
-
- private final URL base;
-
- private final String username;
-
- private final String password;
-
- private final ProxySelector proxySelector = ProxySelector.getDefault();
-
- IPZillaQuery(URL base, String username, String password) {
- this.base = base;
- this.username = username;
- this.password = password;
- }
-
- Set<CQ> getCQs(Collection<Project> projects) throws IOException {
- try {
- login();
- Set<CQ> cqs = new HashSet<CQ>();
- for (Project project : projects)
- cqs.addAll(queryOneProject(project));
- return cqs;
- } finally {
- // Kill the IPzilla session and log us out from there.
- logout();
- }
- }
-
- private Set<CQ> queryOneProject(Project project) throws IOException {
- Map<String, String> p = new LinkedHashMap<String, String>();
- p.put("bugidtype", "include");
- p.put("chfieldto", "Now");
- p.put("component", project.getID());
- p.put("field-1-0-0", "component");
- p.put("type-1-0-0", "anyexact");
- p.put("value-1-0-0", project.getID());
- p.put("ctype", "csv");
-
- StringBuilder req = new StringBuilder();
- for (Map.Entry<String, String> e : p.entrySet()) {
- if (req.length() > 0)
- req.append('&');
- req.append(URLEncoder.encode(e.getKey(), "UTF-8"));
- req.append('=');
- req.append(URLEncoder.encode(e.getValue(), "UTF-8"));
- }
- URL csv = new URL(new URL(base, "buglist.cgi").toString() + "?" + req);
-
- req = new StringBuilder();
- for (String name : new String[] { "bug_severity", "bug_status",
- "resolution", "short_desc", "cf_license", "keywords" }) {
- if (req.length() > 0)
- req.append("%20");
- req.append(name);
- }
- setCookie(csv, "COLUMNLIST", req.toString());
-
- HttpURLConnection conn = open(csv);
- if (HttpSupport.response(conn) != HttpURLConnection.HTTP_OK) {
- throw new IOException(MessageFormat.format(IpLogText.get().queryFailed
- , csv, conn.getResponseCode() + " " + conn.getResponseMessage()));
- }
-
- BufferedReader br = reader(conn);
- try {
- Set<CQ> cqs = new HashSet<CQ>();
- CSV in = new CSV(br);
- Map<String, String> row;
- while ((row = in.next()) != null) {
- CQ cq = parseOneCQ(row);
- if (cq != null)
- cqs.add(cq);
- }
- return cqs;
- } finally {
- br.close();
- }
- }
-
- private static BufferedReader reader(HttpURLConnection conn)
- throws UnsupportedEncodingException, IOException {
- String encoding = conn.getContentEncoding();
- InputStream in = conn.getInputStream();
- if (encoding != null && !encoding.equals(""))
- return new BufferedReader(new InputStreamReader(in, encoding));
- return new BufferedReader(new InputStreamReader(in));
- }
-
- private void login() throws MalformedURLException,
- UnsupportedEncodingException, ConnectException, IOException {
- final URL login = new URL(base, "index.cgi");
- StringBuilder req = new StringBuilder();
- req.append("Bugzilla_login=");
- req.append(URLEncoder.encode(username, "UTF-8"));
- req.append('&');
- req.append("Bugzilla_password=");
- req.append(URLEncoder.encode(password, "UTF-8"));
- byte[] reqbin = req.toString().getBytes("UTF-8");
-
- HttpURLConnection c = open(login);
- c.setDoOutput(true);
- c.setFixedLengthStreamingMode(reqbin.length);
- c.setRequestProperty(HttpSupport.HDR_CONTENT_TYPE,
- "application/x-www-form-urlencoded");
- OutputStream out = c.getOutputStream();
- out.write(reqbin);
- out.close();
-
- if (HttpSupport.response(c) != HttpURLConnection.HTTP_OK) {
- throw new IOException(MessageFormat.format(IpLogText.get().loginFailed
- , username, login, c.getResponseCode() + " " + c.getResponseMessage()));
- }
-
- String content = readFully(c);
- Matcher matcher = Pattern.compile("<title>(.*)</title>",
- Pattern.CASE_INSENSITIVE).matcher(content);
- if (!matcher.find()) {
- throw new IOException(MessageFormat.format(IpLogText.get().loginFailed
- , username, login, IpLogText.get().responseNotHTMLAsExpected));
- }
-
- String title = matcher.group(1);
- if (!"IPZilla Main Page".equals(title)) {
- throw new IOException(MessageFormat.format(IpLogText.get().loginFailed
- , username, login
- , MessageFormat.format(IpLogText.get().pageTitleWas, title)));
- }
- }
-
- private static String readFully(HttpURLConnection c) throws IOException {
- String enc = c.getContentEncoding();
- Reader reader;
- if (enc != null) {
- reader = new InputStreamReader(c.getInputStream(), enc);
- } else {
- reader = new InputStreamReader(c.getInputStream(), "ISO-8859-1");
- }
- try {
- StringBuilder b = new StringBuilder();
- BufferedReader r = new BufferedReader(reader);
- String line;
- while ((line = r.readLine()) != null) {
- b.append(line).append('\n');
- }
- return b.toString();
- } finally {
- reader.close();
- }
- }
-
- private void logout() throws MalformedURLException, ConnectException,
- IOException {
- HttpSupport.response(open(new URL(base, "relogin.cgi")));
- }
-
- private HttpURLConnection open(URL url) throws ConnectException,
- IOException {
- Proxy proxy = HttpSupport.proxyFor(proxySelector, url);
- HttpURLConnection c = (HttpURLConnection) url.openConnection(proxy);
- c.setUseCaches(false);
- return c;
- }
-
- private static void setCookie(URL url, String name, String value)
- throws IOException {
- Map<String, List<String>> cols = new HashMap<String, List<String>>();
- cols.put("Set-Cookie", Collections.singletonList(name + "=" + value));
- try {
- CookieHandler.getDefault().put(url.toURI(), cols);
- } catch (URISyntaxException e) {
- IOException err = new IOException(MessageFormat.format(IpLogText.get().invalidURIFormat, url));
- err.initCause(e);
- throw err;
- }
- }
-
- private static CQ parseOneCQ(Map<String, String> row) {
- long id = Long.parseLong(row.get("bug_id"));
- String state = row.get("bug_severity");
- String bug_status = row.get("bug_status");
- String resolution = row.get("resolution");
- String short_desc = row.get("short_desc");
- String license = row.get("cf_license");
-
- Set<String> keywords = new TreeSet<String>();
- for (String w : row.get("keywords").split(", *"))
- keywords.add(w);
-
- // Skip any CQs that were not accepted.
- //
- if ("closed".equalsIgnoreCase(state)
- || "rejected".equalsIgnoreCase(state)
- || "withdrawn".equalsIgnoreCase(state))
- return null;
-
- // Skip any CQs under the EPL without nonepl keyword
- // Skip any CQs with the EPL keyword
- //
- if (!keywords.contains("nonepl") && license.matches(RE_EPL))
- return null;
- if (keywords.contains("epl"))
- return null;
-
- // Work around CQs that were closed in the wrong state.
- //
- if ("new".equalsIgnoreCase(state)
- || "under_review".equalsIgnoreCase(state)
- || state.startsWith("awaiting_")) {
- if ("RESOLVED".equalsIgnoreCase(bug_status)
- || "CLOSED".equalsIgnoreCase(bug_status)) {
- if ("FIXED".equalsIgnoreCase(resolution))
- state = "approved";
- else
- return null;
- }
- }
-
- StringBuilder use = new StringBuilder();
- for (String n : new String[] { "unmodified", "modified", "source",
- "binary" }) {
- if (keywords.contains(n)) {
- if (use.length() > 0)
- use.append(' ');
- use.append(n);
- }
- }
- if (keywords.contains("sourceandbinary")) {
- if (use.length() > 0)
- use.append(' ');
- use.append("source & binary");
- }
-
- CQ cq = new CQ(id);
- cq.setDescription(short_desc);
- cq.setLicense(license);
- cq.setState(state);
- if (use.length() > 0)
- cq.setUse(use.toString().trim());
- return cq;
- }
-}
+++ /dev/null
-/*
- * Copyright (C) 2010, Google Inc.
- * and other copyright owners as documented in the project's IP log.
- *
- * 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.
- */
-
-package org.eclipse.jgit.iplog;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.text.MessageFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.TreeSet;
-
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.eclipse.jgit.diff.Edit;
-import org.eclipse.jgit.diff.EditList;
-import org.eclipse.jgit.diff.MyersDiff;
-import org.eclipse.jgit.diff.RawText;
-import org.eclipse.jgit.diff.RawTextComparator;
-import org.eclipse.jgit.errors.ConfigInvalidException;
-import org.eclipse.jgit.iplog.Committer.ActiveRange;
-import org.eclipse.jgit.lib.BlobBasedConfig;
-import org.eclipse.jgit.lib.Constants;
-import org.eclipse.jgit.lib.MutableObjectId;
-import org.eclipse.jgit.lib.ObjectReader;
-import org.eclipse.jgit.lib.PersonIdent;
-import org.eclipse.jgit.lib.Repository;
-import org.eclipse.jgit.revwalk.RevCommit;
-import org.eclipse.jgit.revwalk.RevTree;
-import org.eclipse.jgit.revwalk.RevWalk;
-import org.eclipse.jgit.treewalk.NameConflictTreeWalk;
-import org.eclipse.jgit.treewalk.TreeWalk;
-import org.eclipse.jgit.treewalk.filter.TreeFilter;
-import org.eclipse.jgit.util.RawParseUtils;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * Creates an Eclipse IP log in XML format.
- *
- * @see <a href="http://www.eclipse.org/projects/xml/iplog.xsd">IP log XSD</a>
- */
-public class IpLogGenerator {
- private static final String IPLOG_NS = "http://www.eclipse.org/projects/xml/iplog";
-
- private static final String IPLOG_PFX = "iplog:";
-
- private static final String INDENT = "{http://xml.apache.org/xslt}indent-amount";
-
- /** Projects indexed by their ID string, e.g. {@code technology.jgit}. */
- private final Map<String, Project> projects = new TreeMap<String, Project>();
-
- /** Projects indexed by their ID string, e.g. {@code technology.jgit}. */
- private final Map<String, Project> consumedProjects = new TreeMap<String, Project>();
-
- /** Known committers, indexed by their foundation ID. */
- private final Map<String, Committer> committersById = new HashMap<String, Committer>();
-
- /** Known committers, indexed by their email address. */
- private final Map<String, Committer> committersByEmail = new HashMap<String, Committer>();
-
- /** Discovered contributors. */
- private final Map<String, Contributor> contributorsByName = new HashMap<String, Contributor>();
-
- /** All known CQs matching the projects we care about. */
- private final Set<CQ> cqs = new HashSet<CQ>();
-
- /** Root commits which were scanned to gather project data. */
- private final Set<RevCommit> commits = new HashSet<RevCommit>();
-
- /** The meta file we loaded to bootstrap our definitions. */
- private IpLogMeta meta;
-
- /** URL to obtain review information about a specific contribution. */
- private String reviewUrl;
-
- private String characterEncoding = "UTF-8";
-
- private Repository db;
-
- private RevWalk rw;
-
- private NameConflictTreeWalk tw;
-
- private ObjectReader curs;
-
- private final MutableObjectId idbuf = new MutableObjectId();
-
- private Document doc;
-
- /** Create an empty generator. */
- public IpLogGenerator() {
- // Do nothing.
- }
-
- /**
- * Set the character encoding used to write the output file.
- *
- * @param encodingName
- * the character set encoding name.
- */
- public void setCharacterEncoding(String encodingName) {
- characterEncoding = encodingName;
- }
-
- /**
- * Scan a Git repository's history to compute the changes within it.
- *
- * @param repo
- * the repository to scan.
- * @param startCommit
- * commit the IP log is needed for.
- * @param version
- * symbolic label for the version.
- * @throws IOException
- * the repository cannot be read.
- * @throws ConfigInvalidException
- * the {@code .eclipse_iplog} file present at the top level of
- * {@code startId} is not a valid configuration file.
- */
- public void scan(Repository repo, RevCommit startCommit, String version)
- throws IOException, ConfigInvalidException {
- try {
- db = repo;
- curs = db.newObjectReader();
- rw = new RevWalk(curs);
- tw = new NameConflictTreeWalk(curs);
-
- RevCommit c = rw.parseCommit(startCommit);
-
- loadEclipseIpLog(version, c);
- loadCommitters(repo);
- scanProjectCommits(meta.getProjects().get(0), c);
- commits.add(c);
- } finally {
- curs.release();
- db = null;
- rw = null;
- tw = null;
- }
- }
-
- private void loadEclipseIpLog(String version, RevCommit commit)
- throws IOException, ConfigInvalidException {
- TreeWalk log = TreeWalk.forPath(db, IpLogMeta.IPLOG_CONFIG_FILE, commit
- .getTree());
- if (log == null)
- return;
-
- meta = new IpLogMeta();
- try {
- meta.loadFrom(new BlobBasedConfig(null, db, log.getObjectId(0)));
- } catch (ConfigInvalidException e) {
- throw new ConfigInvalidException(MessageFormat.format(IpLogText.get().configurationFileInCommitIsInvalid
- , log.getPathString(), commit.name()), e);
- }
-
- if (meta.getProjects().isEmpty()) {
- throw new ConfigInvalidException(MessageFormat.format(IpLogText.get().configurationFileInCommitHasNoProjectsDeclared
- , log.getPathString(), commit.name()));
- }
-
- for (Project p : meta.getProjects()) {
- p.setVersion(version);
- projects.put(p.getName(), p);
- }
- for (Project p : meta.getConsumedProjects()) {
- consumedProjects.put(p.getName(), p);
- }
- cqs.addAll(meta.getCQs());
- reviewUrl = meta.getReviewUrl();
- }
-
- private void loadCommitters(Repository repo) throws IOException {
- SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- File list = new File(repo.getDirectory(), "gerrit_committers");
- BufferedReader br = new BufferedReader(new FileReader(list));
- try {
- String line;
-
- while ((line = br.readLine()) != null) {
- String[] field = line.trim().split(" *\\| *");
- String user = field[1];
- String name = field[2];
- String email = field[3];
- Date begin = parseDate(dt, field[4]);
- Date end = parseDate(dt, field[5]);
-
- if (user.startsWith("username:"))
- user = user.substring("username:".length());
-
- Committer who = committersById.get(user);
- if (who == null) {
- who = new Committer(user);
- int sp = name.indexOf(' ');
- if (0 < sp) {
- who.setFirstName(name.substring(0, sp).trim());
- who.setLastName(name.substring(sp + 1).trim());
- } else {
- who.setFirstName(name);
- who.setLastName(null);
- }
- committersById.put(who.getID(), who);
- }
-
- who.addEmailAddress(email);
- who.addActiveRange(new ActiveRange(begin, end));
- committersByEmail.put(email, who);
- }
- } finally {
- br.close();
- }
- }
-
- private static Date parseDate(SimpleDateFormat dt, String value)
- throws IOException {
- if ("NULL".equals(value) || "".equals(value) || value == null)
- return null;
- int dot = value.indexOf('.');
- if (0 < dot)
- value = value.substring(0, dot);
- try {
- return dt.parse(value);
- } catch (ParseException e) {
- IOException err = new IOException(MessageFormat.format(IpLogText.get().invalidDate, value));
- err.initCause(e);
- throw err;
- }
- }
-
- private void scanProjectCommits(Project proj, RevCommit start)
- throws IOException {
- rw.reset();
- rw.markStart(start);
-
- RevCommit commit;
- while ((commit = rw.next()) != null) {
- if (proj.isSkippedCommit(commit)) {
- continue;
- }
-
- final PersonIdent author = commit.getAuthorIdent();
- final Date when = author.getWhen();
-
- Committer who = committersByEmail.get(author.getEmailAddress());
- if (who != null && who.inRange(when)) {
- // Commit was written by the committer while they were
- // an active committer on the project.
- //
- who.setHasCommits(true);
- continue;
- }
-
- // Commit from a non-committer contributor.
- //
- final int cnt = commit.getParentCount();
- if (2 <= cnt) {
- // Avoid a pointless merge attributed to a non-committer.
- // Skip this commit if every file matches at least one
- // of the parent commits exactly, if so then the blame
- // for code in that file can be fully passed onto that
- // parent and this non-committer isn't responsible.
- //
- tw.setFilter(TreeFilter.ANY_DIFF);
- tw.setRecursive(true);
-
- RevTree[] trees = new RevTree[1 + cnt];
- trees[0] = commit.getTree();
- for (int i = 0; i < cnt; i++)
- trees[i + 1] = commit.getParent(i).getTree();
- tw.reset(trees);
-
- boolean matchAll = true;
- while (tw.next()) {
- boolean matchOne = false;
- for (int i = 1; i <= cnt; i++) {
- if (tw.getRawMode(0) == tw.getRawMode(i)
- && tw.idEqual(0, i)) {
- matchOne = true;
- break;
- }
- }
- if (!matchOne) {
- matchAll = false;
- break;
- }
- }
- if (matchAll)
- continue;
- }
-
- Contributor contributor = contributorsByName.get(author.getName());
- if (contributor == null) {
- String id = author.getEmailAddress();
- String name = author.getName();
- contributor = new Contributor(id, name);
- contributorsByName.put(name, contributor);
- }
-
- String id = commit.name();
- String subj = commit.getShortMessage();
- SingleContribution item = new SingleContribution(id, when, subj);
-
- if (2 <= cnt) {
- item.setSize("(merge)");
- contributor.add(item);
- continue;
- }
-
- int addedLines = 0;
- if (1 == cnt) {
- final RevCommit parent = commit.getParent(0);
- tw.setFilter(TreeFilter.ANY_DIFF);
- tw.setRecursive(true);
- tw.reset(new RevTree[] { parent.getTree(), commit.getTree() });
- while (tw.next()) {
- if (tw.getFileMode(1).getObjectType() != Constants.OBJ_BLOB)
- continue;
-
- byte[] oldImage;
- if (tw.getFileMode(0).getObjectType() == Constants.OBJ_BLOB)
- oldImage = openBlob(0);
- else
- oldImage = new byte[0];
-
- EditList edits = MyersDiff.INSTANCE.diff(
- RawTextComparator.DEFAULT, new RawText(oldImage),
- new RawText(openBlob(1)));
- for (Edit e : edits)
- addedLines += e.getEndB() - e.getBeginB();
- }
-
- } else { // no parents, everything is an addition
- tw.setFilter(TreeFilter.ALL);
- tw.setRecursive(true);
- tw.reset(commit.getTree());
- while (tw.next()) {
- if (tw.getFileMode(0).getObjectType() == Constants.OBJ_BLOB) {
- byte[] buf = openBlob(0);
- for (int ptr = 0; ptr < buf.length;) {
- ptr = RawParseUtils.nextLF(buf, ptr);
- addedLines++;
- }
- }
- }
- }
-
- if (addedLines < 0)
- throw new IOException(MessageFormat.format(IpLogText.get().incorrectlyScanned, commit.name()));
- if (1 == addedLines)
- item.setSize("+1 line");
- else
- item.setSize("+" + addedLines + " lines");
- contributor.add(item);
- }
- }
-
- private byte[] openBlob(int side) throws IOException {
- tw.getObjectId(idbuf, side);
- return curs.open(idbuf, Constants.OBJ_BLOB).getCachedBytes();
- }
-
- /**
- * Dump the scanned information into an XML file.
- *
- * @param out
- * the file stream to write to. The caller is responsible for
- * closing the stream upon completion.
- * @throws IOException
- * the stream cannot be written.
- */
- public void writeTo(OutputStream out) throws IOException {
- try {
- TransformerFactory factory = TransformerFactory.newInstance();
- Transformer s = factory.newTransformer();
- s.setOutputProperty(OutputKeys.ENCODING, characterEncoding);
- s.setOutputProperty(OutputKeys.METHOD, "xml");
- s.setOutputProperty(OutputKeys.INDENT, "yes");
- s.setOutputProperty(INDENT, "2");
- s.transform(new DOMSource(toXML()), new StreamResult(out));
- } catch (ParserConfigurationException e) {
- IOException err = new IOException(IpLogText.get().cannotSerializeXML);
- err.initCause(e);
- throw err;
-
- } catch (TransformerConfigurationException e) {
- IOException err = new IOException(IpLogText.get().cannotSerializeXML);
- err.initCause(e);
- throw err;
-
- } catch (TransformerException e) {
- IOException err = new IOException(IpLogText.get().cannotSerializeXML);
- err.initCause(e);
- throw err;
- }
- }
-
- private Document toXML() throws ParserConfigurationException {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- factory.setNamespaceAware(true);
- doc = factory.newDocumentBuilder().newDocument();
-
- Element root = createElement("iplog");
- doc.appendChild(root);
-
- if (projects.size() == 1) {
- Project soleProject = projects.values().iterator().next();
- root.setAttribute("name", soleProject.getID());
- }
-
- Set<String> licenses = new TreeSet<String>();
- for (Project project : sort(projects, Project.COMPARATOR)) {
- root.appendChild(createProject(project));
- licenses.addAll(project.getLicenses());
- }
-
- if (!consumedProjects.isEmpty())
- appendBlankLine(root);
- for (Project project : sort(consumedProjects, Project.COMPARATOR)) {
- root.appendChild(createConsumes(project));
- licenses.addAll(project.getLicenses());
- }
-
- for (RevCommit c : sort(commits))
- root.appendChild(createCommitMeta(c));
-
- if (licenses.size() > 1)
- appendBlankLine(root);
- for (String name : sort(licenses))
- root.appendChild(createLicense(name));
-
- if (!cqs.isEmpty())
- appendBlankLine(root);
- for (CQ cq : sort(cqs, CQ.COMPARATOR))
- root.appendChild(createCQ(cq));
-
- if (!committersByEmail.isEmpty())
- appendBlankLine(root);
- for (Committer committer : sort(committersById, Committer.COMPARATOR))
- root.appendChild(createCommitter(committer));
-
- for (Contributor c : sort(contributorsByName, Contributor.COMPARATOR)) {
- appendBlankLine(root);
- root.appendChild(createContributor(c));
- }
-
- return doc;
- }
-
- private void appendBlankLine(Element root) {
- root.appendChild(doc.createTextNode("\n\n "));
- }
-
- private Element createProject(Project p) {
- Element project = createElement("project");
- populateProjectType(p, project);
- return project;
- }
-
- private Element createConsumes(Project p) {
- Element project = createElement("consumes");
- populateProjectType(p, project);
- return project;
- }
-
- private static void populateProjectType(Project p, Element project) {
- required(project, "id", p.getID());
- required(project, "name", p.getName());
- optional(project, "comments", p.getComments());
- optional(project, "version", p.getVersion());
- }
-
- private Element createCommitMeta(RevCommit c) {
- Element meta = createElement("meta");
- required(meta, "key", "git-commit");
- required(meta, "value", c.name());
- return meta;
- }
-
- private Element createLicense(String name) {
- Element license = createElement("license");
- required(license, "id", name);
- optional(license, "description", null);
- optional(license, "comments", null);
- return license;
- }
-
- private Element createCQ(CQ cq) {
- Element r = createElement("cq");
- required(r, "id", Long.toString(cq.getID()));
- required(r, "description", cq.getDescription());
- optional(r, "license", cq.getLicense());
- optional(r, "use", cq.getUse());
- optional(r, "state", mapCQState(cq.getState()));
- optional(r, "comments", cq.getComments());
- return r;
- }
-
- private static String mapCQState(String state) {
- // "approved" CQs shall be listed as "active" in the iplog
- if (state.equals("approved"))
- return "active";
- return state;
- }
-
- private Element createCommitter(Committer who) {
- Element r = createElement("committer");
- required(r, "id", who.getID());
- required(r, "firstName", who.getFirstName());
- required(r, "lastName", who.getLastName());
- optional(r, "affiliation", who.getAffiliation());
- required(r, "active", Boolean.toString(who.isActive()));
- required(r, "hasCommits", Boolean.toString(who.hasCommits()));
- optional(r, "comments", who.getComments());
- return r;
- }
-
- private Element createContributor(Contributor c) {
- Element r = createElement("contributor");
- required(r, "id", c.getID());
- required(r, "name", c.getName());
-
- for (SingleContribution s : sort(c.getContributions(),
- SingleContribution.COMPARATOR))
- r.appendChild(createContribution(s));
-
- return r;
- }
-
- private Element createContribution(SingleContribution s) {
- Element r = createElement("contribution");
- required(r, "id", s.getID());
- required(r, "description", s.getSummary());
- required(r, "size", s.getSize());
- if (reviewUrl != null)
- optional(r, "url", reviewUrl + s.getID());
- return r;
- }
-
- private Element createElement(String name) {
- return doc.createElementNS(IPLOG_NS, IPLOG_PFX + name);
- }
-
- private static void required(Element r, String name, String value) {
- if (value == null)
- value = "";
- r.setAttribute(name, value);
- }
-
- private static void optional(Element r, String name, String value) {
- if (value != null && value.length() > 0)
- r.setAttribute(name, value);
- }
-
- private static <T, Q extends Comparator<T>> Iterable<T> sort(
- Collection<T> objs, Q cmp) {
- ArrayList<T> sorted = new ArrayList<T>(objs);
- Collections.sort(sorted, cmp);
- return sorted;
- }
-
- private static <T, Q extends Comparator<T>> Iterable<T> sort(
- Map<?, T> objs, Q cmp) {
- return sort(objs.values(), cmp);
- }
-
- @SuppressWarnings("unchecked")
- private static <T extends Comparable> Iterable<T> sort(Collection<T> objs) {
- ArrayList<T> sorted = new ArrayList<T>(objs);
- Collections.sort(sorted);
- return sorted;
- }
-}
+++ /dev/null
-/*
- * Copyright (C) 2010, Google Inc.
- * and other copyright owners as documented in the project's IP log.
- *
- * 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.
- */
-
-package org.eclipse.jgit.iplog;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.jgit.errors.ConfigInvalidException;
-import org.eclipse.jgit.lib.Config;
-import org.eclipse.jgit.lib.Constants;
-import org.eclipse.jgit.lib.ObjectId;
-import org.eclipse.jgit.storage.file.FileBasedConfig;
-import org.eclipse.jgit.storage.file.LockFile;
-import org.eclipse.jgit.util.FS;
-import org.eclipse.jgit.util.FileUtils;
-
-/**
- * Manages the {@code .eclipse_iplog} file in a project.
- */
-public class IpLogMeta {
- /** Default name of the {@code .eclipse_iplog} file. */
- public static final String IPLOG_CONFIG_FILE = ".eclipse_iplog";
-
- private static final String S_PROJECT = "project";
-
- private static final String S_CQ = "CQ";
-
- private static final String S_CONSUMES = "consumes";
-
- private static final String S_REVIEW = "review";
-
- private static final String K_URL = "url";
-
- private static final String K_NAME = "name";
-
- private static final String K_VERSION = "version";
-
- private static final String K_COMMENTS = "comments";
-
- private static final String K_SKIP_COMMIT = "skipCommit";
-
- private static final String K_LICENSE = "license";
-
- private static final String K_DESCRIPTION = "description";
-
- private static final String K_USE = "use";
-
- private static final String K_STATE = "state";
-
- private List<Project> projects = new ArrayList<Project>();
-
- private List<Project> consumedProjects = new ArrayList<Project>();
-
- private Set<CQ> cqs = new HashSet<CQ>();
-
- private String reviewUrl;
-
- List<Project> getProjects() {
- return projects;
- }
-
- List<Project> getConsumedProjects() {
- return consumedProjects;
- }
-
- Set<CQ> getCQs() {
- return cqs;
- }
-
- String getReviewUrl() {
- return reviewUrl;
- }
-
- void loadFrom(Config cfg) {
- projects.clear();
- consumedProjects.clear();
- cqs.clear();
-
- projects.addAll(parseProjects(cfg, S_PROJECT));
- consumedProjects.addAll(parseProjects(cfg, S_CONSUMES));
-
- for (String id : cfg.getSubsections(S_CQ)) {
- CQ cq = new CQ(Long.parseLong(id));
- cq.setDescription(cfg.getString(S_CQ, id, K_DESCRIPTION));
- cq.setLicense(cfg.getString(S_CQ, id, K_LICENSE));
- cq.setUse(cfg.getString(S_CQ, id, K_USE));
- cq.setState(cfg.getString(S_CQ, id, K_STATE));
- cq.setComments(cfg.getString(S_CQ, id, K_COMMENTS));
- cqs.add(cq);
- }
-
- reviewUrl = cfg.getString(S_REVIEW, null, K_URL);
- }
-
- private static List<Project> parseProjects(final Config cfg,
- final String sectionName) {
- final List<Project> dst = new ArrayList<Project>();
- for (String id : cfg.getSubsections(sectionName)) {
- String name = cfg.getString(sectionName, id, K_NAME);
- Project project = new Project(id, name);
- project.setVersion(cfg.getString(sectionName, id, K_VERSION));
- project.setComments(cfg.getString(sectionName, id, K_COMMENTS));
-
- for (String c : cfg.getStringList(sectionName, id, K_SKIP_COMMIT))
- project.addSkipCommit(ObjectId.fromString(c));
- for (String license : cfg.getStringList(sectionName, id, K_LICENSE))
- project.addLicense(license);
- dst.add(project);
- }
- return dst;
- }
-
- /**
- * Query the Eclipse Foundation's IPzilla database for CQ records.
- * <p>
- * Updates the local {@code .eclipse_iplog} configuration file with current
- * information by deleting CQs which are no longer relevant, and adding or
- * updating any CQs which currently exist in the database.
- *
- * @param file
- * local file to update with current CQ records.
- * @param fs
- * the file system abstraction which will be necessary to perform
- * certain file system operations.
- * @param base
- * base https:// URL of the IPzilla server.
- * @param username
- * username to login to IPzilla as. Must be a Bugzilla username
- * of someone authorized to query the project's IPzilla records.
- * @param password
- * password for {@code username}.
- * @throws IOException
- * IPzilla cannot be queried, or the local file cannot be read
- * from or written to.
- * @throws ConfigInvalidException
- * the local file cannot be read, as it is not a valid
- * configuration file format.
- */
- public void syncCQs(File file, FS fs, URL base, String username,
- String password) throws IOException, ConfigInvalidException {
- FileUtils.mkdirs(file.getParentFile(), true);
-
- LockFile lf = new LockFile(file, fs);
- if (!lf.lock())
- throw new IOException(MessageFormat.format(IpLogText.get().cannotLock, file));
- try {
- FileBasedConfig cfg = new FileBasedConfig(file, fs);
- cfg.load();
- loadFrom(cfg);
-
- IPZillaQuery ipzilla = new IPZillaQuery(base, username, password);
- Set<CQ> current = ipzilla.getCQs(projects);
-
- for (CQ cq : sort(current, CQ.COMPARATOR)) {
- String id = Long.toString(cq.getID());
-
- set(cfg, S_CQ, id, K_DESCRIPTION, cq.getDescription());
- set(cfg, S_CQ, id, K_LICENSE, cq.getLicense());
- set(cfg, S_CQ, id, K_USE, cq.getUse());
- set(cfg, S_CQ, id, K_STATE, cq.getState());
- set(cfg, S_CQ, id, K_COMMENTS, cq.getComments());
- }
-
- for (CQ cq : cqs) {
- if (!current.contains(cq))
- cfg.unsetSection(S_CQ, Long.toString(cq.getID()));
- }
-
- lf.write(Constants.encode(cfg.toText()));
- if (!lf.commit())
- throw new IOException(MessageFormat.format(IpLogText.get().cannotWrite, file));
- } finally {
- lf.unlock();
- }
- }
-
- private static void set(Config cfg, String section, String subsection,
- String key, String value) {
- if (value == null || "".equals(value))
- cfg.unset(section, subsection, key);
- else
- cfg.setString(section, subsection, key, value);
- }
-
- private static <T, Q extends Comparator<T>> Iterable<T> sort(
- Collection<T> objs, Q cmp) {
- ArrayList<T> sorted = new ArrayList<T>(objs);
- Collections.sort(sorted, cmp);
- return sorted;
- }
-}
+++ /dev/null
-/*
- * Copyright (C) 2010, Sasa Zivkov <sasa.zivkov@sap.com>
- * and other copyright owners as documented in the project's IP log.
- *
- * 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.
- */
-
-package org.eclipse.jgit.iplog;
-
-import org.eclipse.jgit.nls.NLS;
-import org.eclipse.jgit.nls.TranslationBundle;
-
-/**
- * Translation bundle for JGit IP Log
- */
-public class IpLogText extends TranslationBundle {
-
- /**
- * @return an instance of this translation bundle
- */
- public static IpLogText get() {
- return NLS.getBundleFor(IpLogText.class);
- }
-
- // @formatter:off
- /***/ public String CQString;
- /***/ public String CSVParsingError;
- /***/ public String cannotLock;
- /***/ public String cannotSerializeXML;
- /***/ public String cannotWrite;
- /***/ public String committerString;
- /***/ public String configurationFileInCommitHasNoProjectsDeclared;
- /***/ public String configurationFileInCommitIsInvalid;
- /***/ public String contributorString;
- /***/ public String incorrectlyScanned;
- /***/ public String invalidDate;
- /***/ public String invalidURIFormat;
- /***/ public String loginFailed;
- /***/ public String pageTitleWas;
- /***/ public String projectString;
- /***/ public String queryFailed;
- /***/ public String responseNotHTMLAsExpected;
-}
+++ /dev/null
-/*
- * Copyright (C) 2010, Google Inc.
- * and other copyright owners as documented in the project's IP log.
- *
- * 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.
- */
-
-package org.eclipse.jgit.iplog;
-
-import java.text.MessageFormat;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Set;
-import java.util.TreeSet;
-
-import org.eclipse.jgit.lib.AnyObjectId;
-import org.eclipse.jgit.lib.ObjectId;
-import org.eclipse.jgit.lib.ObjectIdSubclassMap;
-
-/** Description of a project. */
-class Project {
- /** Sorts projects by unique identities. */
- static final Comparator<Project> COMPARATOR = new Comparator<Project>() {
- public int compare(Project a, Project b) {
- return a.getID().compareTo(b.getID());
- }
- };
-
- private final String id;
-
- private final String name;
-
- private String comments;
-
- private final Set<String> licenses = new TreeSet<String>();
-
- private final ObjectIdSubclassMap<ObjectId> skipCommits = new ObjectIdSubclassMap<ObjectId>();
-
- private String version;
-
- /**
- * @param id
- * @param name
- */
- Project(String id, String name) {
- this.id = id;
- this.name = name;
- }
-
- /** @return unique identity of this project. */
- String getID() {
- return id;
- }
-
- /** @return name of this project. */
- String getName() {
- return name;
- }
-
- /** @return any additional comments about this project. */
- String getComments() {
- return comments;
- }
-
- void setComments(String comments) {
- this.comments = comments;
- }
-
- /** @return the licenses this project is released under. */
- Set<String> getLicenses() {
- return Collections.unmodifiableSet(licenses);
- }
-
- void addLicense(String licenseName) {
- licenses.add(licenseName);
- }
-
- void addSkipCommit(AnyObjectId commit) {
- skipCommits.add(commit.copy());
- }
-
- boolean isSkippedCommit(AnyObjectId commit) {
- return skipCommits.contains(commit);
- }
-
- String getVersion() {
- return version;
- }
-
- void setVersion(String v) {
- version = v;
- }
-
- @Override
- public String toString() {
- return MessageFormat.format(IpLogText.get().projectString, getID(), getName());
- }
-}
+++ /dev/null
-/*
- * Copyright (C) 2010, Google Inc.
- * and other copyright owners as documented in the project's IP log.
- *
- * 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.
- */
-
-package org.eclipse.jgit.iplog;
-
-import java.io.IOException;
-import java.net.CookieHandler;
-import java.net.URI;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Dumb implementation of a CookieManager for the JRE.
- * <p>
- * Cookies are keyed only by the host name in the URI. Cookie attributes like
- * domain and path are ignored to simplify the implementation.
- * <p>
- * If we are running on Java 6 or later we should favor using the standard
- * {@code java.net.CookieManager} class instead.
- */
-public class SimpleCookieManager extends CookieHandler {
- private Map<String, Map<String, String>> byHost = new HashMap<String, Map<String, String>>();
-
- @Override
- public Map<String, List<String>> get(URI uri,
- Map<String, List<String>> requestHeaders) throws IOException {
- String host = hostOf(uri);
-
- Map<String, String> map = byHost.get(host);
- if (map == null || map.isEmpty())
- return requestHeaders;
-
- Map<String, List<String>> r = new HashMap<String, List<String>>();
- r.putAll(requestHeaders);
- StringBuilder buf = new StringBuilder();
- for (Map.Entry<String, String> e : map.entrySet()) {
- if (buf.length() > 0)
- buf.append("; ");
- buf.append(e.getKey());
- buf.append('=');
- buf.append(e.getValue());
- }
- r.put("Cookie", Collections.singletonList(buf.toString()));
- return Collections.unmodifiableMap(r);
- }
-
- @Override
- public void put(URI uri, Map<String, List<String>> responseHeaders)
- throws IOException {
- List<String> list = responseHeaders.get("Set-Cookie");
- if (list == null || list.isEmpty()) {
- return;
- }
-
- String host = hostOf(uri);
- Map<String, String> map = byHost.get(host);
- if (map == null) {
- map = new HashMap<String, String>();
- byHost.put(host, map);
- }
-
- for (String hdr : list) {
- String attributes[] = hdr.split(";");
- String nameValue = attributes[0].trim();
- int eq = nameValue.indexOf('=');
- String name = nameValue.substring(0, eq);
- String value = nameValue.substring(eq + 1);
-
- map.put(name, value);
- }
- }
-
- private static String hostOf(URI uri) {
- StringBuilder key = new StringBuilder();
- key.append(uri.getScheme());
- key.append(':');
- key.append(uri.getHost());
- if (0 < uri.getPort())
- key.append(':' + uri.getPort());
- return key.toString();
- }
-}
+++ /dev/null
-/*
- * Copyright (C) 2010, Google Inc.
- * and other copyright owners as documented in the project's IP log.
- *
- * 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.
- */
-
-package org.eclipse.jgit.iplog;
-
-import java.util.Comparator;
-import java.util.Date;
-
-/** A single contribution by a {@link Contributor}. */
-class SingleContribution {
- /** Sorts contributors by their name first name, then last name. */
- public static final Comparator<SingleContribution> COMPARATOR = new Comparator<SingleContribution>() {
- public int compare(SingleContribution a, SingleContribution b) {
- return a.created.compareTo(b.created);
- }
- };
-
- private final String id;
-
- private String summary;
-
- private Date created;
-
- private String size;
-
- /**
- * @param id
- * @param created
- * @param summary
- */
- SingleContribution(String id, Date created, String summary) {
- this.id = id;
- this.summary = summary;
- this.created = created;
- }
-
- /** @return unique identity of the contribution. */
- String getID() {
- return id;
- }
-
- /** @return date the contribution was created. */
- Date getCreated() {
- return created;
- }
-
- /** @return summary of the contribution. */
- String getSummary() {
- return summary;
- }
-
- String getSize() {
- return size;
- }
-
- void setSize(String sz) {
- size = sz;
- }
-}
+++ /dev/null
-# Query for Gerrit Code Review gsql to produce the .git/gerrit_committers
-# file for a project. Needing to do this manually is a horrible hack.
-
-SELECT a.account_id,
- u.external_id,
- a.full_name,
- b.email_address,
- r.added_on,
- r.removed_on
-FROM accounts a,
- account_external_ids b,
- account_groups g,
- account_group_members_audit r,
- account_external_ids u
-WHERE a.account_id = b.account_id
- AND b.email_address IS NOT NULL
- AND r.account_id = a.account_id
- AND r.group_id = g.group_id
- AND u.account_id = a.account_id
- AND u.external_id like 'username:%'
- AND g.name = 'technology.jgit-committers'
-ORDER BY a.full_name, r.added_on;
+++ /dev/null
- 1 | username:spearce | Shawn Pearce | sop@google.com | 2009-09-29 16:47:03.0 | NULL
- 1 | username:spearce | Shawn Pearce | spearce@spearce.org | 2009-09-29 16:47:03.0 | NULL
version="0.0.0"
unpack="false"/>
- <plugin
- id="org.eclipse.jgit.iplog"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
<plugin
id="org.eclipse.jgit.ui"
download-size="0"
<version>2.3.0-SNAPSHOT</version>
</dependency>
- <dependency>
- <groupId>org.eclipse.jgit</groupId>
- <artifactId>org.eclipse.jgit.iplog</artifactId>
- <version>2.3.0-SNAPSHOT</version>
- </dependency>
-
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.ui</artifactId>
org.eclipse.jgit.diff;version="[2.3.0,2.4.0)",
org.eclipse.jgit.dircache;version="[2.3.0,2.4.0)",
org.eclipse.jgit.errors;version="[2.3.0,2.4.0)",
- org.eclipse.jgit.iplog;version="[2.3.0,2.4.0)",
org.eclipse.jgit.lib;version="[2.3.0,2.4.0)",
org.eclipse.jgit.merge;version="2.3.0",
org.eclipse.jgit.nls;version="[2.3.0,2.4.0)",
org.eclipse.jgit.awtui,
org.eclipse.jgit.transport",
org.eclipse.jgit.pgm.debug;version="2.3.0",
- org.eclipse.jgit.pgm.eclipse;version="2.3.0",
org.eclipse.jgit.pgm.opt;version="2.3.0"
Main-Class: org.eclipse.jgit.pgm.Main
Implementation-Title: JGit Command Line Interface
org.eclipse.jgit.pgm.debug.TextHashFunctions
org.eclipse.jgit.pgm.debug.WriteDirCache
-org.eclipse.jgit.pgm.eclipse.Iplog
-org.eclipse.jgit.pgm.eclipse.Ipzilla
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.eclipse.jgit</groupId>
- <artifactId>org.eclipse.jgit.iplog</artifactId>
- <version>${project.version}</version>
- </dependency>
-
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.ui</artifactId>
# default meta variable defined in the org.kohsuke.args4j.spi.OneArgumentOptionHandler
N=N
-IPZillaPasswordPrompt=IPZilla Password
alreadyOnBranch=Already on ''{0}''
alreadyUpToDate=Already up-to-date.
archiveEntryModeIgnored=warning: mode of {0} ignored
usage_CreateATag=Create a tag
usage_CreateAnEmptyGitRepository=Create an empty git repository
usage_DisplayTheVersionOfJgit=Display the version of jgit
-usage_IPZillaPassword=IPZilla Password
-usage_IPZillaURL=IPZilla URL
-usage_IPZillausername=IPZilla Username
usage_MergesTwoDevelopmentHistories=Merges two development histories
usage_RepositoryToReadFrom=Repository to read from
usage_RepositoryToReceiveInto=Repository to receive into
usage_path=path
usage_performFsckStyleChecksOnReceive=perform fsck style checks on receive
usage_portNumberToListenOn=port number to listen on
-usage_produceAnEclipseIPLog=Produce an Eclipse IP log
usage_pruneStaleTrackingRefs=prune stale tracking refs
usage_recordChangesToRepository=Record changes to the repository
usage_recurseIntoSubtrees=recurse into subtrees
usage_squash=Squash commits as if a real merge happened, but do not make a commit or move the HEAD.
usage_srcPrefix=show the source prefix instead of "a/"
usage_symbolicVersionForTheProject=Symbolic version for the project
-usage_synchronizeIPZillaData=Synchronize IPZilla data
usage_tagMessage=tag message
usage_updateRemoteRefsFromAnotherRepository=Update remote refs from another repository
usage_useNameInsteadOfOriginToTrackUpstream=use <name> instead of 'origin' to track upstream
}
// @formatter:off
- /***/ public String IPZillaPasswordPrompt;
/***/ public String alreadyOnBranch;
/***/ public String alreadyUpToDate;
/***/ public String archiveEntryModeIgnored;
+++ /dev/null
-/*
- * Copyright (C) 2010, Google Inc.
- * and other copyright owners as documented in the project's IP log.
- *
- * 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.
- */
-
-package org.eclipse.jgit.pgm.eclipse;
-
-import java.io.File;
-import java.io.OutputStream;
-import java.net.CookieHandler;
-import java.text.MessageFormat;
-
-import org.eclipse.jgit.iplog.IpLogGenerator;
-import org.eclipse.jgit.iplog.SimpleCookieManager;
-import org.eclipse.jgit.lib.Constants;
-import org.eclipse.jgit.lib.ObjectId;
-import org.eclipse.jgit.pgm.CLIText;
-import org.eclipse.jgit.pgm.Command;
-import org.eclipse.jgit.pgm.TextBuiltin;
-import org.eclipse.jgit.revwalk.RevObject;
-import org.eclipse.jgit.revwalk.RevTag;
-import org.eclipse.jgit.revwalk.RevWalk;
-import org.eclipse.jgit.storage.file.LockFile;
-import org.eclipse.jgit.util.FileUtils;
-import org.kohsuke.args4j.Argument;
-import org.kohsuke.args4j.Option;
-
-@Command(name = "eclipse-iplog", common = false, usage = "usage_produceAnEclipseIPLog")
-class Iplog extends TextBuiltin {
- @Option(name = "--version", aliases = { "-r" }, metaVar = "metaVar_version", usage = "usage_symbolicVersionForTheProject")
- private String version;
-
- @Option(name = "--output", aliases = { "-o" }, metaVar = "metaVar_file", usage = "usage_outputFile")
- private File output;
-
- @Argument(index = 0, metaVar = "metaVar_commitOrTag")
- private ObjectId commitId;
-
- @Override
- protected void run() throws Exception {
- if (CookieHandler.getDefault() == null)
- CookieHandler.setDefault(new SimpleCookieManager());
-
- final IpLogGenerator log = new IpLogGenerator();
-
- if (commitId == null) {
- System.err.println(MessageFormat.format(
- CLIText.get().warningNoCommitGivenOnCommandLine, Constants.HEAD));
- commitId = db.resolve(Constants.HEAD);
- }
-
- final RevWalk rw = new RevWalk(db);
- final RevObject start = rw.parseAny(commitId);
- if (version == null && start instanceof RevTag)
- version = ((RevTag) start).getTagName();
- else if (version == null)
- throw die(MessageFormat.format(CLIText.get().notATagVersionIsRequired, start.name()));
-
- log.scan(db, rw.parseCommit(start), version);
-
- if (output != null) {
- FileUtils.mkdirs(output.getParentFile(), true);
- LockFile lf = new LockFile(output, db.getFS());
- if (!lf.lock())
- throw die(MessageFormat.format(CLIText.get().cannotLock, output));
- try {
- OutputStream os = lf.getOutputStream();
- try {
- log.writeTo(os);
- } finally {
- os.close();
- }
- if (!lf.commit())
- throw die(MessageFormat.format(CLIText.get().cannotWrite, output));
- } finally {
- lf.unlock();
- }
- } else {
- log.writeTo(outs);
- outs.flush();
- }
- }
-}
+++ /dev/null
-/*
- * Copyright (C) 2010, Google Inc.
- * and other copyright owners as documented in the project's IP log.
- *
- * 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.
- */
-
-package org.eclipse.jgit.pgm.eclipse;
-
-import java.io.File;
-import java.net.Authenticator;
-import java.net.CookieHandler;
-import java.net.PasswordAuthentication;
-import java.net.URL;
-
-import org.eclipse.jgit.iplog.IpLogMeta;
-import org.eclipse.jgit.iplog.SimpleCookieManager;
-import org.eclipse.jgit.pgm.CLIText;
-import org.eclipse.jgit.pgm.Command;
-import org.eclipse.jgit.pgm.TextBuiltin;
-import org.kohsuke.args4j.Option;
-
-@Command(name = "eclipse-ipzilla", common = false, usage = "usage_synchronizeIPZillaData")
-class Ipzilla extends TextBuiltin {
- @Option(name = "--url", metaVar = "metaVar_url", usage = "usage_IPZillaURL")
- private String url = "https://dev.eclipse.org/ipzilla/"; //$NON-NLS-1$
-
- @Option(name = "--username", metaVar = "metaVar_user", usage = "usage_IPZillaUsername")
- private String username;
-
- @Option(name = "--password", metaVar = "metaVar_pass", usage = "usage_IPZillaPassword")
- private String password;
-
- @Option(name = "--file", aliases = { "-f" }, metaVar = "metaVar_file", usage = "usage_inputOutputFile")
- private File output;
-
- @Override
- protected void run() throws Exception {
- if (CookieHandler.getDefault() == null)
- CookieHandler.setDefault(new SimpleCookieManager());
-
- final URL ipzilla = new URL(url);
- if (username == null) {
- final PasswordAuthentication auth = Authenticator
- .requestPasswordAuthentication(ipzilla.getHost(), //
- null, //
- ipzilla.getPort(), //
- ipzilla.getProtocol(), //
- CLIText.get().IPZillaPasswordPrompt, //
- ipzilla.getProtocol(), //
- ipzilla, //
- Authenticator.RequestorType.SERVER);
- username = auth.getUserName();
- password = new String(auth.getPassword());
- }
-
- if (output == null)
- output = new File(db.getWorkTree(), IpLogMeta.IPLOG_CONFIG_FILE);
-
- IpLogMeta meta = new IpLogMeta();
- meta.syncCQs(output, db.getFS(), ipzilla, username, password);
- }
-}
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.eclipse.jgit</groupId>
- <artifactId>org.eclipse.jgit.iplog</artifactId>
- <version>${project.version}</version>
- </dependency>
-
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.pgm</artifactId>
import org.eclipse.jgit.awtui.UIText;
import org.eclipse.jgit.console.ConsoleText;
import org.eclipse.jgit.internal.JGitText;
-import org.eclipse.jgit.iplog.IpLogText;
import org.eclipse.jgit.pgm.CLIText;
import org.junit.Before;
import org.junit.Test;
public void testUIText() {
NLS.getBundleFor(UIText.class);
}
-
- @Test
- public void testIpLogText() {
- NLS.getBundleFor(IpLogText.class);
- }
}
<module>org.eclipse.jgit.ant</module>
<module>org.eclipse.jgit.ui</module>
<module>org.eclipse.jgit.http.server</module>
- <module>org.eclipse.jgit.iplog</module>
<module>org.eclipse.jgit.pgm</module>
<module>org.eclipse.jgit.junit</module>
<module>org.eclipse.jgit.junit.http</module>