diff options
author | Eike Stepper | 2015-01-27 14:26:35 +0000 |
---|---|---|
committer | Eike Stepper | 2015-01-27 14:26:35 +0000 |
commit | 4dc12f638545505831adcc63166feee8edffceec (patch) | |
tree | 25124b35386f0acbb419544bddd6062b0272dd2e /plugins/org.eclipse.emf.cdo.releng.version | |
parent | 50b0ecc6c1f6065c443ee7365402df9688cca65b (diff) | |
download | cdo-4dc12f638545505831adcc63166feee8edffceec.tar.gz cdo-4dc12f638545505831adcc63166feee8edffceec.tar.xz cdo-4dc12f638545505831adcc63166feee8edffceec.zip |
[Releng] Remove projects that moved to Oomph
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.releng.version')
39 files changed, 0 insertions, 5652 deletions
diff --git a/plugins/org.eclipse.emf.cdo.releng.version/.classpath b/plugins/org.eclipse.emf.cdo.releng.version/.classpath deleted file mode 100644 index 64c5e31b7a..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/.classpath +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <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="src" path="src"/> - <classpathentry kind="output" path="bin"/> -</classpath> diff --git a/plugins/org.eclipse.emf.cdo.releng.version/.project b/plugins/org.eclipse.emf.cdo.releng.version/.project deleted file mode 100644 index 27acd6a1fe..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/.project +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.emf.cdo.releng.version</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.emf.cdo.releng.version.VersionBuilder</name> - <arguments> - <dictionary> - <key>release.path</key> - <value>/org.eclipse.emf.cdo.releng.release/release.xml</value> - </dictionary> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.pde.PluginNature</nature> - <nature>org.eclipse.jdt.core.javanature</nature> - <nature>org.eclipse.emf.cdo.releng.version.VersionNature</nature> - </natures> -</projectDescription> diff --git a/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 95f1a410ee..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,3 +0,0 @@ -eclipse.preferences.version=1 -encoding/.project=UTF-8 - diff --git a/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index f4a56bc04a..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,401 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.codeComplete.argumentPrefixes= -org.eclipse.jdt.core.codeComplete.argumentSuffixes= -org.eclipse.jdt.core.codeComplete.fieldPrefixes= -org.eclipse.jdt.core.codeComplete.fieldSuffixes= -org.eclipse.jdt.core.codeComplete.localPrefixes= -org.eclipse.jdt.core.codeComplete.localSuffixes= -org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= -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=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=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=ignore -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=error -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore -org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public -org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public -org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag -org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -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=ignore -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning -org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -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=warning -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -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=ignore -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore -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=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore -org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore -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=warning -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.5 -org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled -org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW -org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED -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=next_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=next_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true -org.eclipse.jdt.core.formatter.comment.format_block_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=false -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=120 -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=2 -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_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=do not 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=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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=120 -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=space -org.eclipse.jdt.core.formatter.tabulation.size=2 -org.eclipse.jdt.core.formatter.use_on_off_tags=false -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 diff --git a/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 72f4c75fe8..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,119 +0,0 @@ -cleanup.add_default_serial_version_id=true -cleanup.add_generated_serial_version_id=false -cleanup.add_missing_annotations=true -cleanup.add_missing_deprecated_annotations=true -cleanup.add_missing_methods=false -cleanup.add_missing_nls_tags=false -cleanup.add_missing_override_annotations=true -cleanup.add_missing_override_annotations_interface_methods=true -cleanup.add_serial_version_id=true -cleanup.always_use_blocks=true -cleanup.always_use_parentheses_in_expressions=false -cleanup.always_use_this_for_non_static_field_access=false -cleanup.always_use_this_for_non_static_method_access=false -cleanup.convert_to_enhanced_for_loop=false -cleanup.correct_indentation=true -cleanup.format_source_code=true -cleanup.format_source_code_changes_only=false -cleanup.make_local_variable_final=true -cleanup.make_parameters_final=false -cleanup.make_private_fields_final=true -cleanup.make_type_abstract_if_missing_method=false -cleanup.make_variable_declarations_final=false -cleanup.never_use_blocks=false -cleanup.never_use_parentheses_in_expressions=true -cleanup.organize_imports=true -cleanup.qualify_static_field_accesses_with_declaring_class=false -cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -cleanup.qualify_static_member_accesses_with_declaring_class=false -cleanup.qualify_static_method_accesses_with_declaring_class=false -cleanup.remove_private_constructors=true -cleanup.remove_trailing_whitespaces=true -cleanup.remove_trailing_whitespaces_all=true -cleanup.remove_trailing_whitespaces_ignore_empty=false -cleanup.remove_unnecessary_casts=true -cleanup.remove_unnecessary_nls_tags=true -cleanup.remove_unused_imports=true -cleanup.remove_unused_local_variables=false -cleanup.remove_unused_private_fields=true -cleanup.remove_unused_private_members=false -cleanup.remove_unused_private_methods=true -cleanup.remove_unused_private_types=true -cleanup.sort_members=false -cleanup.sort_members_all=false -cleanup.use_blocks=true -cleanup.use_blocks_only_for_return_and_throw=false -cleanup.use_parentheses_in_expressions=true -cleanup.use_this_for_non_static_field_access=true -cleanup.use_this_for_non_static_field_access_only_if_necessary=true -cleanup.use_this_for_non_static_method_access=true -cleanup.use_this_for_non_static_method_access_only_if_necessary=true -cleanup_profile=_EMFT -cleanup_settings_version=2 -eclipse.preferences.version=1 -editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true -formatter_profile=_EMFT -formatter_settings_version=12 -org.eclipse.jdt.ui.exception.name=ex -org.eclipse.jdt.ui.gettersetter.use.is=true -org.eclipse.jdt.ui.ignorelowercasenames=true -org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java; -org.eclipse.jdt.ui.javadoc=true -org.eclipse.jdt.ui.keywordthis=false -org.eclipse.jdt.ui.ondemandthreshold=99 -org.eclipse.jdt.ui.overrideannotation=true -org.eclipse.jdt.ui.staticondemandthreshold=99 -org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n * Copyright (c) 2004-2014 Eike Stepper (Berlin, Germany) and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n * \r\n * Contributors\:\r\n * Eike Stepper - initial API and implementation\r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author Eike Stepper\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> -sp_cleanup.add_default_serial_version_id=true -sp_cleanup.add_generated_serial_version_id=false -sp_cleanup.add_missing_annotations=true -sp_cleanup.add_missing_deprecated_annotations=true -sp_cleanup.add_missing_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=true -sp_cleanup.format_source_code=true -sp_cleanup.format_source_code_changes_only=false -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=true -sp_cleanup.qualify_static_field_accesses_with_declaring_class=false -sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -sp_cleanup.qualify_static_member_accesses_with_declaring_class=false -sp_cleanup.qualify_static_method_accesses_with_declaring_class=false -sp_cleanup.remove_private_constructors=true -sp_cleanup.remove_trailing_whitespaces=true -sp_cleanup.remove_trailing_whitespaces_all=true -sp_cleanup.remove_trailing_whitespaces_ignore_empty=false -sp_cleanup.remove_unnecessary_casts=true -sp_cleanup.remove_unnecessary_nls_tags=true -sp_cleanup.remove_unused_imports=true -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=true -sp_cleanup.use_blocks_only_for_return_and_throw=false -sp_cleanup.use_parentheses_in_expressions=true -sp_cleanup.use_this_for_non_static_field_access=true -sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true -sp_cleanup.use_this_for_non_static_method_access=true -sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.ltk.core.refactoring.prefs deleted file mode 100644 index 864e30fe5d..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.ltk.core.refactoring.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Thu Feb 04 09:44:24 CET 2010 -eclipse.preferences.version=1 -org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false diff --git a/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.mylyn.tasks.ui.prefs deleted file mode 100644 index b050639a54..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.mylyn.tasks.ui.prefs +++ /dev/null @@ -1,4 +0,0 @@ -#Thu Feb 04 09:44:24 CET 2010 -eclipse.preferences.version=1 -project.repository.kind=bugzilla -project.repository.url=https\://bugs.eclipse.org/bugs diff --git a/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.mylyn.team.ui.prefs deleted file mode 100644 index 2f50f36c0c..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.mylyn.team.ui.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Thu Feb 04 09:44:24 CET 2010 -commit.comment.template=[${task.id}] ${task.description} \r\n${task.url} -eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.pde.prefs deleted file mode 100644 index fe01bb701d..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.pde.prefs +++ /dev/null @@ -1,31 +0,0 @@ -#Thu Feb 04 09:44:24 CET 2010 -compilers.f.unresolved-features=1 -compilers.f.unresolved-plugins=1 -compilers.incompatible-environment=1 -compilers.p.build=1 -compilers.p.build.bin.includes=1 -compilers.p.build.java.compliance=1 -compilers.p.build.missing.output=2 -compilers.p.build.output.library=1 -compilers.p.build.source.library=1 -compilers.p.build.src.includes=1 -compilers.p.deprecated=2 -compilers.p.discouraged-class=1 -compilers.p.internal=1 -compilers.p.missing-packages=1 -compilers.p.missing-version-export-package=1 -compilers.p.missing-version-import-package=1 -compilers.p.missing-version-require-bundle=1 -compilers.p.no-required-att=0 -compilers.p.not-externalized-att=2 -compilers.p.unknown-attribute=1 -compilers.p.unknown-class=1 -compilers.p.unknown-element=1 -compilers.p.unknown-identifier=1 -compilers.p.unknown-resource=1 -compilers.p.unresolved-ex-points=0 -compilers.p.unresolved-import=0 -compilers.s.create-docs=false -compilers.s.doc-folder=doc -compilers.s.open-tags=1 -eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.version/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.version/META-INF/MANIFEST.MF deleted file mode 100644 index 18e53b2128..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/META-INF/MANIFEST.MF +++ /dev/null @@ -1,17 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.emf.cdo.releng.version;singleton:=true -Bundle-Version: 1.1.100.qualifier -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-Localization: plugin -Bundle-ActivationPolicy: lazy -Bundle-Activator: org.eclipse.emf.cdo.releng.internal.version.Activator -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Bundle-ClassPath: . -Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", - org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)", - org.eclipse.pde.core;bundle-version="[3.5.0,4.0.0)" -Export-Package: org.eclipse.emf.cdo.releng.internal.version;version="1.1.100";x-friends:="org.eclipse.emf.cdo.releng.version.ui", - org.eclipse.emf.cdo.releng.version;version="1.1.100" -Eclipse-BuddyPolicy: dependent diff --git a/plugins/org.eclipse.emf.cdo.releng.version/about.html b/plugins/org.eclipse.emf.cdo.releng.version/about.html deleted file mode 100644 index d35d5aed64..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/about.html +++ /dev/null @@ -1,28 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> -<title>About</title> -</head> -<body lang="EN-US"> -<h2>About This Content</h2> - -<p>June 5, 2007</p> -<h3>License</h3> - -<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise -indicated below, the Content is provided to you under the terms and conditions of the -Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available -at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. -For purposes of the EPL, "Program" will mean the Content.</p> - -<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is -being redistributed by another party ("Redistributor") and different terms and conditions may -apply to your use of any object code in the Content. Check the Redistributor's license that was -provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise -indicated below, the terms and conditions of the EPL still apply to any source code in the Content -and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> - -</body> -</html> diff --git a/plugins/org.eclipse.emf.cdo.releng.version/about.ini b/plugins/org.eclipse.emf.cdo.releng.version/about.ini deleted file mode 100644 index 32006ae5d6..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/about.ini +++ /dev/null @@ -1,15 +0,0 @@ -# about.ini -# contains information about a feature -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# "%key" are externalized strings defined in about.properties -# This file does not need to be translated. - -# Property "aboutText" contains blurb for "About" dialog (translated) -aboutText=%featureText - -# Property "featureImage" contains path to feature image (32x32) -featureImage=modeling32.png - -# Property "appName" contains name of the application (translated) -appName=%featureName - diff --git a/plugins/org.eclipse.emf.cdo.releng.version/about.mappings b/plugins/org.eclipse.emf.cdo.releng.version/about.mappings deleted file mode 100644 index bddaab4310..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/about.mappings +++ /dev/null @@ -1,6 +0,0 @@ -# about.mappings -# contains fill-ins for about.properties -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# This file does not need to be translated. - -0=@build@
\ No newline at end of file diff --git a/plugins/org.eclipse.emf.cdo.releng.version/about.properties b/plugins/org.eclipse.emf.cdo.releng.version/about.properties deleted file mode 100644 index 8af241a205..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/about.properties +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright (c) 2011-2013 Eike Stepper (Berlin, Germany) and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Eike Stepper - initial API and implementation - -# NLS_MESSAGEFORMAT_VAR - -# ============================================================================== -# Do not change the properties between this line and the last line containing: -# %%% END OF TRANSLATED PROPERTIES %%% -# Instead, either redefine an existing property, or create a new property, -# append it to the end of the file, and change the code to use the new name. -# ============================================================================== - -featureName = Version Management -featureText = Version Management\n\ -Version: {featureVersion}\n\ -Build id: {0}\n\ -\n\ diff --git a/plugins/org.eclipse.emf.cdo.releng.version/build.properties b/plugins/org.eclipse.emf.cdo.releng.version/build.properties deleted file mode 100644 index f23e67c2a3..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/build.properties +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Eike Stepper - initial API and implementation - -# NLS_MESSAGEFORMAT_VAR - -source.. = src/ -output.. = bin/ -bin.includes = META-INF/,\ - .,\ - about.html,\ - plugin.properties,\ - plugin.xml,\ - about.ini,\ - about.mappings,\ - about.properties,\ - modeling32.png -src.includes = about.html - -doc.project = org.eclipse.emf.cdo.releng.version.doc - -generateSourceReferences = true diff --git a/plugins/org.eclipse.emf.cdo.releng.version/modeling32.png b/plugins/org.eclipse.emf.cdo.releng.version/modeling32.png Binary files differdeleted file mode 100644 index 6b08de2ada..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/modeling32.png +++ /dev/null diff --git a/plugins/org.eclipse.emf.cdo.releng.version/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.version/plugin.properties deleted file mode 100644 index f2ec709e12..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/plugin.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Copyright (c) 2011-2013 Eike Stepper (Berlin, Germany) and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Eike Stepper - initial API and implementation - -pluginName = Version Management -providerName = Eclipse Modeling Project diff --git a/plugins/org.eclipse.emf.cdo.releng.version/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.version/plugin.xml deleted file mode 100644 index 3867d762f8..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/plugin.xml +++ /dev/null @@ -1,56 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<?eclipse version="3.4"?> -<!-- - Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others. - All rights reserved. This program and the accompanying materials - are made available under the terms of the Eclipse Public License v1.0 - which accompanies this distribution, and is available at - http://www.eclipse.org/legal/epl-v10.html - - Contributors: - Eike Stepper - initial API and implementation ---> - -<plugin> - - <extension - id="VersionNature" - name="Version Nature" - point="org.eclipse.core.resources.natures"> - <runtime> - <run - class="org.eclipse.emf.cdo.releng.internal.version.VersionNature"> - </run> - </runtime> - <builder - id="org.eclipse.emf.cdo.releng.version.VersionBuilder"> - </builder> - </extension> - - <extension - id="VersionBuilder" - name="Version Builder" - point="org.eclipse.core.resources.builders"> - <builder - callOnEmptyDelta="false" - hasNature="true" - isConfigurable="true"> - <run - class="org.eclipse.emf.cdo.releng.internal.version.VersionBuilder"> - </run> - </builder> - </extension> - - <extension - id="VersionProblem" - name="Version Problem" - point="org.eclipse.core.resources.markers"> - <super - type="org.eclipse.core.resources.problemmarker"> - </super> - <persistent - value="true"> - </persistent> - </extension> - -</plugin> diff --git a/plugins/org.eclipse.emf.cdo.releng.version/prototypes/BuckyValidator.java b/plugins/org.eclipse.emf.cdo.releng.version/prototypes/BuckyValidator.java deleted file mode 100644 index 9d3fc3acba..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/prototypes/BuckyValidator.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.version.bucky; - -import org.eclipse.emf.cdo.releng.version.BuildState; -import org.eclipse.emf.cdo.releng.version.Release; -import org.eclipse.emf.cdo.releng.version.VersionBuilder; -import org.eclipse.emf.cdo.releng.version.VersionValidator; - -import org.eclipse.buckminster.cvspkg.internal.CVSSession; -import org.eclipse.buckminster.cvspkg.internal.RepositoryMetaData; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IResourceDelta; -import org.eclipse.core.resources.IResourceVisitor; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.team.core.RepositoryProvider; -import org.eclipse.team.internal.ccvs.core.CVSTag; -import org.eclipse.team.internal.ccvs.core.CVSTeamProvider; -import org.eclipse.team.internal.ccvs.core.ICVSFolder; -import org.eclipse.team.internal.ccvs.core.ICVSResource; -import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot; -import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo; - -import java.util.Date; - -/** - * @author Eike Stepper - */ -@SuppressWarnings("restriction") -public class BuckyValidator extends VersionValidator -{ - public BuckyValidator() - { - } - - @Override - public void updateBuildState(BuildState buildState, String releasePath, Release release, IProject project, - IResourceDelta delta, IProgressMonitor monitor) throws Exception - { - if (delta != null) - { - buildState.setChangedSinceRelease(true); - return; - } - - LocalModificationVisitor visitor = new LocalModificationVisitor(monitor); - project.accept(visitor); - if (visitor.isChanged()) - { - buildState.setChangedSinceRelease(true); - return; - } - - CVSTeamProvider provider = (CVSTeamProvider)RepositoryProvider.getProvider(project); - CVSWorkspaceRoot root = provider.getCVSWorkspaceRoot(); - String location = root.getRemoteLocation().getLocation(false); - String module = root.getLocalRoot().getRepositoryRelativePath(); - String repositoryLocation = location + "," + module; - - VersionBuilder.trace("Bucky: Getting release timestamp..."); - CVSTag releaseTag = new CVSTag(release.getTag(), CVSTag.VERSION); - Date releaseModification = getLastModification(repositoryLocation, releaseTag, monitor); - - ICVSFolder cvsProject = CVSWorkspaceRoot.getCVSFolderFor(project); - FolderSyncInfo syncInfo = cvsProject.getFolderSyncInfo(); - CVSTag projectTag = syncInfo.getTag(); - if (projectTag == null) - { - projectTag = new CVSTag(); - } - - VersionBuilder.trace("Bucky: Getting project timestamp..."); - Date projectModification = getLastModification(repositoryLocation, projectTag, monitor); - buildState.setChangedSinceRelease(!releaseModification.equals(projectModification)); - } - - private Date getLastModification(String repositoryLocation, CVSTag tag, IProgressMonitor monitor) - throws CoreException - { - org.eclipse.buckminster.cvspkg.internal.CVSSession session = null; - - try - { - session = new CVSSession(repositoryLocation); - RepositoryMetaData metaData = RepositoryMetaData.getMetaData(session, tag, monitor); - return metaData.getLastModification(); - } - finally - { - if (session != null) - { - session.close(); - } - } - } - - /** - * @author Eike Stepper - */ - private static final class LocalModificationVisitor implements IResourceVisitor - { - private IProgressMonitor monitor; - - private boolean changed; - - private LocalModificationVisitor(IProgressMonitor monitor) - { - this.monitor = monitor; - } - - public boolean isChanged() - { - return changed; - } - - public boolean visit(IResource resource) throws CoreException - { - ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource); - if (cvsResource.isManaged()) - { - VersionBuilder.trace("Bucky: " + resource.getFullPath()); - if (cvsResource.isModified(monitor)) - { - changed = true; - return false; - } - } - - return true; - } - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/prototypes/TestResourceChangeListener.java b/plugins/org.eclipse.emf.cdo.releng.version/prototypes/TestResourceChangeListener.java deleted file mode 100644 index aa8dc90480..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/prototypes/TestResourceChangeListener.java +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.version.test; - -import org.eclipse.core.resources.IResourceChangeEvent; -import org.eclipse.core.resources.IResourceChangeListener; -import org.eclipse.core.resources.IResourceDelta; -import org.eclipse.core.resources.IResourceDeltaVisitor; -import org.eclipse.core.runtime.CoreException; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author Eike Stepper - */ -public final class TestResourceChangeListener implements IResourceChangeListener -{ - public void resourceChanged(IResourceChangeEvent event) - { - try - { - System.out.println(getType(event)); - IResourceDelta delta = event.getDelta(); - if (delta != null) - { - delta.accept(new IResourceDeltaVisitor() - { - public boolean visit(IResourceDelta delta) throws CoreException - { - System.out.println(" " + delta.getFullPath() + " --> " + getKind(delta) + " " + getFlags(delta)); - return true; - } - }); - } - } - catch (CoreException ex) - { - ex.printStackTrace(); - } - } - - public static String getType(IResourceChangeEvent event) - { - switch (event.getType()) - { - case IResourceChangeEvent.POST_BUILD: - return "POST_BUILD"; - case IResourceChangeEvent.POST_CHANGE: - return "POST_CHANGE"; - case IResourceChangeEvent.PRE_BUILD: - return "PRE_BUILD"; - case IResourceChangeEvent.PRE_CLOSE: - return "PRE_CLOSE"; - case IResourceChangeEvent.PRE_DELETE: - return "PRE_DELETE"; - case IResourceChangeEvent.PRE_REFRESH: - return "PRE_REFRESH"; - default: - return "Unknown event type: " + event.getType(); - } - } - - public static String getKind(IResourceDelta delta) - { - switch (delta.getKind()) - { - case IResourceDelta.ADDED: - return "ADDED"; - case IResourceDelta.REMOVED: - return "REMOVED"; - case IResourceDelta.CHANGED: - return "CHANGED"; - case IResourceDelta.ADDED_PHANTOM: - return "ADDED_PHANTOM"; - case IResourceDelta.REMOVED_PHANTOM: - return "REMOVED_PHANTOM"; - default: - return "Unknown delta kind: " + delta.getKind(); - } - } - - public static String getFlags(IResourceDelta delta) - { - List<String> list = new ArrayList<String>(); - if (hasFlag(delta, IResourceDelta.CONTENT)) - { - list.add("CONTENT"); - } - - if (hasFlag(delta, IResourceDelta.DERIVED_CHANGED)) - { - list.add("DERIVED_CHANGED"); - } - - if (hasFlag(delta, IResourceDelta.DESCRIPTION)) - { - list.add("DESCRIPTION"); - } - - if (hasFlag(delta, IResourceDelta.ENCODING)) - { - list.add("ENCODING"); - } - - if (hasFlag(delta, IResourceDelta.LOCAL_CHANGED)) - { - list.add("LOCAL_CHANGED"); - } - - if (hasFlag(delta, IResourceDelta.OPEN)) - { - list.add("OPEN"); - } - - if (hasFlag(delta, IResourceDelta.MOVED_TO)) - { - list.add("MOVED_TO"); - } - - if (hasFlag(delta, IResourceDelta.MOVED_FROM)) - { - list.add("MOVED_FROM"); - } - - if (hasFlag(delta, IResourceDelta.COPIED_FROM)) - { - list.add("COPIED_FROM"); - } - - if (hasFlag(delta, IResourceDelta.TYPE)) - { - list.add("TYPE"); - } - - if (hasFlag(delta, IResourceDelta.SYNC)) - { - list.add("SYNC"); - } - - if (hasFlag(delta, IResourceDelta.MARKERS)) - { - list.add("MARKERS"); - } - - if (hasFlag(delta, IResourceDelta.REPLACED)) - { - list.add("REPLACED"); - } - - if (list.isEmpty()) - { - return ""; - } - - return list.toString(); - } - - public static boolean hasFlag(IResourceDelta delta, int flag) - { - return (delta.getFlags() & flag) != 0; - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/Activator.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/Activator.java deleted file mode 100644 index f0692530a5..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/Activator.java +++ /dev/null @@ -1,308 +0,0 @@ -/* - * Copyright (c) 2012, 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.internal.version; - -import org.eclipse.emf.cdo.releng.version.VersionUtil; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResourceChangeListener; -import org.eclipse.core.resources.IWorkspaceRoot; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Plugin; -import org.eclipse.core.runtime.Status; - -import org.osgi.framework.BundleContext; -import org.osgi.service.prefs.BackingStoreException; -import org.osgi.service.prefs.Preferences; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Map.Entry; -import java.util.Set; - -/** - * @author Eike Stepper - */ -public class Activator extends Plugin -{ - public static final String PLUGIN_ID = "org.eclipse.emf.cdo.releng.version"; - - private static final String BUILD_STATES = "buildStates.bin"; - - private static Activator plugin; - - private static IResourceChangeListener postBuildListener; - - private static BuildStates buildStates; - - public Activator() - { - } - - @Override - public void start(BundleContext context) throws Exception - { - super.start(context); - plugin = this; - - try - { - buildStates = load(BUILD_STATES); - } - catch (Throwable t) - { - //$FALL-THROUGH$ - } - finally - { - File stateFile = getStateFile(BUILD_STATES); - if (stateFile.exists()) - { - stateFile.delete(); // Future indication for possible workspace crash - } - - if (buildStates == null) - { - buildStates = new BuildStates(); - } - } - } - - @Override - public void stop(BundleContext context) throws Exception - { - if (postBuildListener != null) - { - ResourcesPlugin.getWorkspace().removeResourceChangeListener(postBuildListener); - postBuildListener = null; - } - - if (!buildStates.isEmpty()) - { - IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); - for (Iterator<Entry<String, BuildState>> it = buildStates.entrySet().iterator(); it.hasNext();) - { - Entry<String, BuildState> entry = it.next(); - String projectName = entry.getKey(); - IProject project = root.getProject(projectName); - if (!project.exists()) - { - it.remove(); - } - else - { - BuildState buildState = entry.getValue(); - buildState.serializeValidatorState(); - } - } - - save(BUILD_STATES, buildStates); - } - - buildStates = null; - plugin = null; - super.stop(context); - } - - public static void setPostBuildListener(IResourceChangeListener postBuildListener) - { - Activator.postBuildListener = postBuildListener; - } - - private static final String PREFERENCE_NODE = "/instance/" + PLUGIN_ID; - - public static Set<String> getReleasePaths() - { - Preferences root = Platform.getPreferencesService().getRootNode(); - try - { - if (root.nodeExists(PREFERENCE_NODE)) - { - Preferences node = root.node(PREFERENCE_NODE); - return new HashSet<String>(Arrays.asList(node.keys())); - } - } - catch (BackingStoreException ex) - { - Activator.log(ex); - } - - return Collections.emptySet(); - } - - public static ReleaseCheckMode getReleaseCheckMode(String releasePath) - { - Preferences root = Platform.getPreferencesService().getRootNode(); - try - { - if (root.nodeExists(PREFERENCE_NODE)) - { - Preferences node = root.node(PREFERENCE_NODE); - String value = node.get(releasePath, null); - if (value != null) - { - return ReleaseCheckMode.valueOf(value); - } - } - } - catch (BackingStoreException ex) - { - Activator.log(ex); - } - - return null; - } - - public static void setReleaseCheckMode(String releasePath, ReleaseCheckMode releaseCheckMode) - { - Preferences root = Platform.getPreferencesService().getRootNode(); - Preferences node = root.node(PREFERENCE_NODE); - node.put(releasePath, releaseCheckMode.toString()); - try - { - node.flush(); - } - catch (BackingStoreException ex) - { - log(ex); - } - } - - public static BuildState getBuildState(IProject project) - { - String name = project.getName(); - BuildState buildState = buildStates.get(name); - if (buildState == null) - { - buildState = new BuildState(); - buildStates.put(name, buildState); - } - - return buildState; - } - - public static void clearBuildState(IProject project) - { - String name = project.getName(); - buildStates.remove(name); - } - - public static void log(String message) - { - plugin.getLog().log(new Status(IStatus.INFO, PLUGIN_ID, message)); - } - - public static void log(IStatus status) - { - plugin.getLog().log(status); - } - - public static String log(Throwable t) - { - IStatus status = getStatus(t); - log(status); - return status.getMessage(); - } - - public static IStatus getStatus(Throwable t) - { - if (t instanceof CoreException) - { - CoreException coreException = (CoreException)t; - return coreException.getStatus(); - } - - String msg = t.getLocalizedMessage(); - if (msg == null || msg.length() == 0) - { - msg = t.getClass().getName(); - } - - return new Status(IStatus.ERROR, PLUGIN_ID, msg, t); - } - - private static File getStateFile(String name) - { - File stateFolder = Platform.getStateLocation(plugin.getBundle()).toFile(); - return new File(stateFolder, name); - } - - private static <T> T load(String fileName) throws IOException, ClassNotFoundException - { - ObjectInputStream stream = null; - - try - { - File stateFile = getStateFile(fileName); - stream = new ObjectInputStream(new FileInputStream(stateFile)); - - @SuppressWarnings("unchecked") - T object = (T)stream.readObject(); - return object; - } - finally - { - VersionUtil.close(stream); - } - } - - private static void save(String fileName, Object object) - { - ObjectOutputStream stream = null; - - try - { - File file = getStateFile(fileName); - stream = new ObjectOutputStream(new FileOutputStream(file)); - stream.writeObject(object); - } - catch (Throwable ex) - { - log(ex); - } - finally - { - VersionUtil.close(stream); - } - } - - /** - * @author Eike Stepper - */ - public enum ReleaseCheckMode - { - NONE, PARTIAL, FULL - } - - /** - * @author Eike Stepper - */ - private static final class BuildStates extends HashMap<String, BuildState> - { - private static final long serialVersionUID = 2L; - - public BuildStates() - { - } - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/BuildState.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/BuildState.java deleted file mode 100644 index b1c997a138..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/BuildState.java +++ /dev/null @@ -1,194 +0,0 @@ -/* - * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.internal.version; - -import org.eclipse.emf.cdo.releng.version.IBuildState; -import org.eclipse.emf.cdo.releng.version.VersionUtil; - -import java.io.Serializable; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -/** - * @author Eike Stepper - */ -public class BuildState implements IBuildState, Serializable -{ - private static final long serialVersionUID = 1L; - - private Map<String, String> arguments; - - private byte[] releaseSpecDigest; - - private long propertiesTimeStamp; - - private boolean deviations; - - private boolean integration; - - private Set<String> rootProjects; - - private Set<String> ignoredReferences; - - private boolean changedSinceRelease; - - private long validatorTimeStamp; - - private String validatorClass; - - private String validatorVersion; - - private byte[] validatorBytes; - - private transient Serializable validatorState; - - BuildState() - { - } - - public Map<String, String> getArguments() - { - return arguments == null ? new HashMap<String, String>() : arguments; - } - - public void setArguments(Map<String, String> arguments) - { - this.arguments = arguments; - } - - public byte[] getReleaseSpecDigest() - { - return releaseSpecDigest; - } - - public void setReleaseSpecDigest(byte[] releaseSpecDigest) - { - this.releaseSpecDigest = releaseSpecDigest; - } - - public long getPropertiesTimeStamp() - { - return propertiesTimeStamp; - } - - public void setPropertiesTimeStamp(long propertiesTimeStamp) - { - this.propertiesTimeStamp = propertiesTimeStamp; - } - - public boolean isDeviations() - { - return deviations; - } - - public void setDeviations(boolean deviations) - { - this.deviations = deviations; - } - - public boolean isIntegration() - { - return integration; - } - - public void setIntegration(boolean integration) - { - this.integration = integration; - } - - public Set<String> getRootProjects() - { - return rootProjects; - } - - public void setRootProjects(Set<String> rootProjects) - { - this.rootProjects = rootProjects; - } - - public Set<String> getIgnoredReferences() - { - return ignoredReferences; - } - - public void setIgnoredReferences(Set<String> ignoredReferences) - { - this.ignoredReferences = ignoredReferences; - } - - public long getValidatorTimeStamp() - { - return validatorTimeStamp; - } - - public void setValidatorTimeStamp(long validatorTimeStamp) - { - this.validatorTimeStamp = validatorTimeStamp; - } - - public String getValidatorClass() - { - return validatorClass; - } - - public void setValidatorClass(String validatorClass) - { - this.validatorClass = validatorClass; - } - - public String getValidatorVersion() - { - return validatorVersion; - } - - public void setValidatorVersion(String validatorVersion) - { - this.validatorVersion = validatorVersion; - } - - public boolean isChangedSinceRelease() - { - return changedSinceRelease; - } - - public void setChangedSinceRelease(boolean changedSinceRelease) - { - this.changedSinceRelease = changedSinceRelease; - } - - public Serializable getValidatorState() - { - if (validatorState == null) - { - if (validatorBytes != null) - { - validatorState = VersionUtil.deserialize(validatorBytes); - } - } - - return validatorState; - } - - public void setValidatorState(Serializable validatorState) - { - this.validatorState = validatorState; - validatorBytes = null; - } - - void serializeValidatorState() - { - if (validatorBytes == null && validatorState != null) - { - validatorBytes = VersionUtil.serialize(validatorState); - } - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/DeprecationUtil.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/DeprecationUtil.java deleted file mode 100644 index f46153a868..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/DeprecationUtil.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.internal.version; - -/** - * @author Eike Stepper - */ -public class DeprecationUtil -{ - /** - * @deprecated This method exists so that others can produce a reliable compiler warning by calling it. A - * <code>@SuppressWarnings("deprecation")</code> annotation will never become unnecessary then. - */ - @Deprecated - public static void someDeprecatedCode() - { - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/Element.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/Element.java deleted file mode 100644 index 90357cc861..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/Element.java +++ /dev/null @@ -1,260 +0,0 @@ -/* - * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.internal.version; - -import org.eclipse.emf.cdo.releng.version.IElement; -import org.eclipse.emf.cdo.releng.version.IElementResolver; -import org.eclipse.emf.cdo.releng.version.IReleaseManager; -import org.eclipse.emf.cdo.releng.version.VersionUtil; - -import org.eclipse.pde.core.IModel; - -import org.osgi.framework.Version; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -/** - * @author Eike Stepper - */ -public class Element implements IElement -{ - private Element.Type type; - - private String name; - - private Version version; - - private boolean licenseFeature; - - private List<IElement> children = new ArrayList<IElement>(); - - private Set<IElement> allChildren; - - public Element(Element.Type type, String name, Version version) - { - this.type = type; - this.name = name; - this.version = VersionUtil.normalize(version); - } - - public Element(Element.Type type, String name, String version) - { - this(type, name, new Version(version)); - } - - public Element(Type type, String name) - { - this.type = type; - this.name = name; - version = Version.emptyVersion; - } - - public Type getType() - { - return type; - } - - public String getTag() - { - return type == Type.PLUGIN ? Release.PLUGIN_TAG : Release.FEATURE_TAG; - } - - public String getName() - { - return name; - } - - public Version getVersion() - { - return version; - } - - public boolean isLicenseFeature() - { - return licenseFeature; - } - - public void setLicenseFeature(boolean licenseFeature) - { - this.licenseFeature = licenseFeature; - } - - public List<IElement> getChildren() - { - return children; - } - - public Set<IElement> getAllChildren(IElementResolver resolver, IElementResolver otherResolver) - { - if (allChildren == null) - { - allChildren = new HashSet<IElement>(); - for (IElement child : children) - { - recurseChildren(resolver, otherResolver, child); - } - } - - return allChildren; - } - - private void recurseChildren(IElementResolver resolver, IElementResolver otherResolver, IElement element) - { - if (allChildren.add(element)) - { - IElement topElement = resolver.resolveElement(element); - if (topElement == null) - { - // If we fail to find it with an exact version, we try it with an omni version and use that for the children. - // - topElement = resolver.resolveElement(element.trimVersion()); - if (topElement == null) - { - return; - } - } - - IElement otherTopElement = otherResolver.resolveElement(element); - if (otherTopElement == null) - { - // If we fail to find it with an exact version, we try it with an omni version and use that for the children. - // - otherTopElement = resolver.resolveElement(element.trimVersion()); - if (otherTopElement == null) - { - return; - } - } - - if (otherTopElement.isVersionUnresolved()) - { - return; - } - - for (IElement child : topElement.getChildren()) - { - if (!child.isLicenseFeature()) - { - recurseChildren(resolver, otherResolver, child); - } - } - } - } - - public IElement getChild(IElementResolver resolver, IElementResolver otherResolver, IElement key) - { - Set<IElement> allChildren = getAllChildren(resolver, otherResolver); - for (IElement child : allChildren) - { - if (child.equals(key)) - { - return child; - } - } - - return null; - } - - @Override - public String toString() - { - return "Element[type=" + type + ", name=" + name + ", version=" + version + "]"; - } - - @Override - public int hashCode() - { - final int prime = 31; - int result = 1; - result = prime * result + (name == null ? 0 : name.hashCode()); - result = prime * result + (getType() == null ? 0 : getType().hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) - { - if (this == obj) - { - return true; - } - - if (obj == null) - { - return false; - } - - if (!(obj instanceof Element)) - { - return false; - } - - Element other = (Element)obj; - if (name == null) - { - if (other.name != null) - { - return false; - } - } - else if (!name.equals(other.name)) - { - return false; - } - - if (getType() != other.getType()) - { - return false; - } - - if (!version.equals(Version.emptyVersion) && !other.getVersion().equals(Version.emptyVersion)) - { - if (!version.equals(other.getVersion())) - { - return false; - } - } - - return true; - } - - public IElement trimVersion() - { - return new Element(type, name); - } - - public boolean isVersionUnresolved() - { - return version.equals(Version.emptyVersion); - } - - void resolveVersion() - { - version = getResolvedVersion(); - } - - public Version getResolvedVersion() - { - if (isVersionUnresolved()) - { - IModel componentModel = IReleaseManager.INSTANCE.getComponentModel(this); - if (componentModel != null) - { - return VersionUtil.getComponentVersion(componentModel); - } - } - - return version; - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/IVersionBuilderArguments.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/IVersionBuilderArguments.java deleted file mode 100644 index 674399bc05..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/IVersionBuilderArguments.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.internal.version; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.CoreException; - -import java.util.Map; - -/** - * @author Eike Stepper - */ -public interface IVersionBuilderArguments extends Map<String, String> -{ - public static final String DEFAULT_VALIDATOR_CLASS_NAME = "org.eclipse.emf.cdo.releng.version.digest.DigestValidator$BuildModel"; - - public static final String RELEASE_PATH_ARGUMENT = "release.path"; - - public static final String VALIDATOR_CLASS_ARGUMENT = "validator.class"; - - public static final String IGNORE_MALFORMED_VERSIONS_ARGUMENT = "ignore.malformed.versions"; - - public static final String IGNORE_SCHEMA_BUILDER_ARGUMENT = "ignore.schema.builder"; - - public static final String IGNORE_FEATURE_NATURE_ARGUMENT = "ignore.feature.nature"; - - public static final String IGNORE_DEBUG_OPTIONS_ARGUMENT = "ignore.debug.options"; - - public static final String IGNORE_DEPENDENCY_RANGES_ARGUMENT = "ignore.missing.dependency.ranges"; - - public static final String IGNORE_EXPORT_VERSIONS_ARGUMENT = "ignore.missing.export.versions"; - - public static final String IGNORE_CONTENT_REDUNDANCY_ARGUMENT = "ignore.feature.content.redundancy"; - - public static final String IGNORE_CONTENT_CHANGES_ARGUMENT = "ignore.feature.content.changes"; - - public String getReleasePath(); - - public String getValidatorClassName(); - - public boolean isIgnoreMalformedVersions(); - - public boolean isIgnoreFeatureNature(); - - public boolean isIgnoreSchemaBuilder(); - - public boolean isIgnoreDebugOptions(); - - public boolean isIgnoreMissingDependencyRanges(); - - public boolean isIgnoreMissingExportVersions(); - - public boolean isIgnoreFeatureContentRedundancy(); - - public boolean isIgnoreFeatureContentChanges(); - - public void applyTo(IProject project) throws CoreException; -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/Release.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/Release.java deleted file mode 100644 index 460a92abcc..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/Release.java +++ /dev/null @@ -1,342 +0,0 @@ -/* - * Copyright (c) 2012, 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.internal.version; - -import org.eclipse.emf.cdo.releng.version.IElement; -import org.eclipse.emf.cdo.releng.version.IRelease; -import org.eclipse.emf.cdo.releng.version.Markers; -import org.eclipse.emf.cdo.releng.version.VersionUtil; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IMarker; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.NullProgressMonitor; - -import org.osgi.framework.Version; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.SAXParseException; -import org.xml.sax.helpers.DefaultHandler; - -import javax.xml.parsers.SAXParser; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author Eike Stepper - */ -public class Release implements IRelease -{ - public static final String RELEASE_TAG = "release"; - - public static final String FEATURE_TAG = "feature"; - - public static final String PLUGIN_TAG = "plugin"; - - public static final String NAME_ATTRIBUTE = "name"; - - public static final String VERSION_ATTRIBUTE = "version"; - - public static final String LICENSE_ATTRIBUTE = "license"; - - private static final String INDENT = "\t"; - - private IFile file; - - private byte[] digest; - - private Map<IElement, IElement> elements = new HashMap<IElement, IElement>(); - - public Release(IFile file) - { - this.file = file; - } - - public Release(SAXParser parser, IFile file) throws CoreException, IOException, SAXException, - NoSuchAlgorithmException - { - this.file = file; - - XMLHandler handler = new XMLHandler(); - InputStream contents = null; - - try - { - contents = file.getContents(); - parser.parse(contents, handler); - - if (!handler.hasReleaseTag()) - { - throw new IOException("Release specification file does not contain a <release> element: " + file.getFullPath()); - } - - digest = VersionUtil.getSHA1(file); - } - finally - { - VersionUtil.close(contents); - } - } - - public IFile getFile() - { - return file; - } - - public byte[] getDigest() - { - return digest; - } - - public Map<IElement, IElement> getElements() - { - return elements; - } - - public IElement resolveElement(IElement key) - { - return elements.get(key); - } - - public int getSize() - { - return elements.size(); - } - - public void write() throws IOException, CoreException, NoSuchAlgorithmException - { - StringBuilder builder = new StringBuilder(); - writeRelease(builder); - - String xml = builder.toString(); - xml = xml.replace("\n", VersionUtil.getLineDelimiter(file)); - ByteArrayInputStream contents = new ByteArrayInputStream(xml.getBytes("UTF-8")); - if (file.exists()) - { - file.setContents(contents, true, true, new NullProgressMonitor()); - } - else - { - file.create(contents, true, new NullProgressMonitor()); - } - - digest = VersionUtil.getSHA1(file); - } - - private void writeRelease(StringBuilder builder) - { - builder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); - builder.append("<" + RELEASE_TAG + ">\n"); - - List<IElement> list = new ArrayList<IElement>(elements.keySet()); - Collections.sort(list, new Comparator<IElement>() - { - public int compare(IElement o1, IElement o2) - { - int result = o1.getType().compareTo(o2.getType()); - if (result == 0) - { - result = o1.getName().compareTo(o2.getName()); - } - - if (result == 0) - { - result = o1.getVersion().compareTo(o2.getVersion()); - } - - return result; - } - }); - - for (IElement element : list) - { - writeElement(builder, element, INDENT); - } - - builder.append("</" + RELEASE_TAG + ">\n"); - } - - private void writeElement(StringBuilder builder, IElement element, String indent) - { - String name = element.getName(); - Version version = element.getVersion(); - - builder.append(indent + "<" + element.getTag() + " " + NAME_ATTRIBUTE + "=\"" + name + "\" " + VERSION_ATTRIBUTE - + "=\"" + version + "\"" + (element.isLicenseFeature() ? " license=\"true\"" : "")); - - List<IElement> content = element.getChildren(); - if (content.isEmpty()) - { - builder.append("/"); - writeElementEnd(builder, element); - } - else - { - writeElementEnd(builder, element); - - for (IElement child : content) - { - writeElement(builder, child, indent + INDENT); - } - - builder.append(indent + "</" + element.getTag() + ">\n"); - } - } - - private void writeElementEnd(StringBuilder builder, IElement element) - { - builder.append(">"); - if (element.getVersion().equals(Version.emptyVersion)) - { - builder.append(" <!-- UNRESOLVED -->"); - } - - builder.append("\n"); - } - - /** - * @author Eike Stepper - */ - public class XMLHandler extends DefaultHandler - { - private IElement parent; - - private int level; - - public XMLHandler() - { - } - - public boolean hasReleaseTag() - { - return level == 1; - } - - @Override - public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException - { - if (RELEASE_TAG.equalsIgnoreCase(qName)) - { - ++level; - } - else if (FEATURE_TAG.equalsIgnoreCase(qName)) - { - if (level == 0) - { - return; - } - - IElement element = createElement(IElement.Type.FEATURE, attributes); - if (++level == 2) - { - elements.put(element, element); - parent = element; - } - else - { - parent.getChildren().add(element); - } - } - else if (PLUGIN_TAG.equalsIgnoreCase(qName)) - { - if (level == 0) - { - return; - } - - IElement element = createElement(IElement.Type.PLUGIN, attributes); - if (++level == 2) - { - elements.put(element, element); - parent = element; - } - else - { - parent.getChildren().add(element); - } - } - } - - private IElement createElement(IElement.Type type, Attributes attributes) throws SAXException - { - String name = getString(attributes, NAME_ATTRIBUTE); - Version version = new Version(getString(attributes, VERSION_ATTRIBUTE)); - Element element = new Element(type, name, version); - - String license = getString(attributes, LICENSE_ATTRIBUTE); - if ("true".equals(license)) - { - element.setLicenseFeature(true); - } - - return element; - } - - @Override - public void endElement(String uri, String localName, String qName) throws SAXException - { - if (FEATURE_TAG.equalsIgnoreCase(qName) || PLUGIN_TAG.equalsIgnoreCase(qName)) - { - --level; - } - } - - private String getString(Attributes attributes, String name) throws SAXException - { - String value = attributes.getValue(name); - if (value != null || LICENSE_ATTRIBUTE.equals(name)) - { - return value; - } - - throw new SAXException("Illegal value for " + name); - } - - @Override - public void error(SAXParseException exception) throws SAXException - { - addMarker(exception, IMarker.SEVERITY_ERROR); - } - - @Override - public void fatalError(SAXParseException exception) throws SAXException - { - addMarker(exception, IMarker.SEVERITY_ERROR); - } - - @Override - public void warning(SAXParseException exception) throws SAXException - { - addMarker(exception, IMarker.SEVERITY_WARNING); - } - - private void addMarker(SAXParseException e, int severity) - { - try - { - Markers.addMarker(file, e.getMessage(), severity, e.getLineNumber()); - } - catch (Exception ex) - { - Activator.log(ex); - } - } - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/ReleaseManager.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/ReleaseManager.java deleted file mode 100644 index 771b56c2a9..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/ReleaseManager.java +++ /dev/null @@ -1,315 +0,0 @@ -/* - * Copyright (c) 2012, 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.internal.version; - -import org.eclipse.emf.cdo.releng.internal.version.Activator.ReleaseCheckMode; -import org.eclipse.emf.cdo.releng.version.IElement; -import org.eclipse.emf.cdo.releng.version.IElement.Type; -import org.eclipse.emf.cdo.releng.version.IRelease; -import org.eclipse.emf.cdo.releng.version.IReleaseManager; -import org.eclipse.emf.cdo.releng.version.VersionUtil; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.osgi.service.resolver.BundleDescription; -import org.eclipse.pde.core.IModel; -import org.eclipse.pde.core.plugin.IPluginModelBase; -import org.eclipse.pde.core.plugin.PluginRegistry; - -import org.osgi.framework.Version; -import org.xml.sax.SAXException; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; -import java.util.WeakHashMap; - -/** - * @author Eike Stepper - */ -public class ReleaseManager implements IReleaseManager -{ - private Map<IRelease, Long> releases = new WeakHashMap<IRelease, Long>(); - - private SAXParserFactory parserFactory; - - public ReleaseManager() - { - } - - private SAXParser getParser() throws ParserConfigurationException, SAXException - { - if (parserFactory == null) - { - parserFactory = SAXParserFactory.newInstance(); - } - - return parserFactory.newSAXParser(); - } - - public synchronized IRelease getRelease(IFile file) throws CoreException - { - try - { - for (Entry<IRelease, Long> entry : releases.entrySet()) - { - IRelease release = entry.getKey(); - if (release.getFile().equals(file)) - { - long timeStamp = entry.getValue(); - if (file.getLocalTimeStamp() == timeStamp) - { - return release; - } - - releases.remove(release); - break; - } - } - - String releasePath = file.getFullPath().toString(); - ReleaseCheckMode releaseCheckMode = Activator.getReleaseCheckMode(releasePath); - if (releaseCheckMode == null) - { - Activator.setReleaseCheckMode(releasePath, ReleaseCheckMode.FULL); - } - - if (!file.exists()) - { - throw new FileNotFoundException(releasePath); - } - - IRelease release = new Release(getParser(), file); - releases.put(release, file.getLocalTimeStamp()); - return release; - } - catch (CoreException ex) - { - throw ex; - } - catch (Exception ex) - { - throw new CoreException(new Status(IStatus.ERROR, Activator.PLUGIN_ID, ex.getLocalizedMessage(), ex)); - } - } - - public Map<IElement, IElement> createElements(String path, boolean resolve) - { - Map<IElement, IElement> elements = new HashMap<IElement, IElement>(); - for (IProject project : ResourcesPlugin.getWorkspace().getRoot().getProjects()) - { - if (project.isOpen()) - { - VersionBuilderArguments args = new VersionBuilderArguments(project); - String releasePath = args.getReleasePath(); - if (path.equals(releasePath)) - { - IModel componentModel = VersionUtil.getComponentModel(project); - IElement element = createElement(componentModel, true, resolve); - elements.put(element, element); - } - } - } - - Set<IElement> keySet = elements.keySet(); - ArrayList<IElement> queue = new ArrayList<IElement>(keySet); - for (int i = 0; i < queue.size(); i++) - { - IElement element = queue.get(i); - for (IElement child : element.getChildren()) - { - if (!elements.containsKey(child)) - { - IModel childModel = getComponentModel(child.trimVersion()); - if (childModel != null) - { - IElement topElement = createElement(childModel, true, resolve); - queue.add(topElement); - elements.put(topElement, topElement); - } - else - { - elements.put(child, child); - } - } - } - } - return elements; - } - - public synchronized IRelease createRelease(IFile file) throws CoreException, IOException, NoSuchAlgorithmException - { - Release release = new Release(file); - String path = file.getFullPath().toString(); - - release.getElements().putAll(createElements(path, true)); - - release.write(); - releases.put(release, file.getLocalTimeStamp()); - return release; - } - - public IElement createElement(IModel componentModel, boolean withFeatureContent, boolean resolve) - { - if (componentModel instanceof IPluginModelBase) - { - IPluginModelBase pluginModel = (IPluginModelBase)componentModel; - BundleDescription description = pluginModel.getBundleDescription(); - if (description == null) - { - throw new IllegalStateException("No bundle description for " + pluginModel.getInstallLocation()); - } - - String name = description.getSymbolicName(); - Version version = description.getVersion(); - return new Element(Type.PLUGIN, name, version); - } - - return createFeatureElement(componentModel, withFeatureContent, resolve); - } - - @SuppressWarnings("restriction") - private IElement createFeatureElement(IModel componentModel, boolean withContent, boolean resolve) - { - org.eclipse.pde.internal.core.ifeature.IFeatureModel featureModel = (org.eclipse.pde.internal.core.ifeature.IFeatureModel)componentModel; - org.eclipse.pde.internal.core.ifeature.IFeature feature = featureModel.getFeature(); - - String name = feature.getId(); - Version version = new Version(feature.getVersion()); - IElement element = new Element(Type.FEATURE, name, version); - - if (withContent) - { - String licenseFeatureID = feature.getLicenseFeatureID(); - if (licenseFeatureID.length() != 0) - { - Element child = new Element(IElement.Type.FEATURE, licenseFeatureID, feature.getLicenseFeatureVersion()); - if (resolve) - { - child.resolveVersion(); - } - - child.setLicenseFeature(true); - element.getChildren().add(child); - } - - for (org.eclipse.pde.internal.core.ifeature.IFeatureChild versionable : feature.getIncludedFeatures()) - { - Element child = new Element(IElement.Type.FEATURE, versionable.getId(), versionable.getVersion()); - if (resolve) - { - child.resolveVersion(); - } - - element.getChildren().add(child); - } - - for (org.eclipse.pde.internal.core.ifeature.IFeaturePlugin versionable : feature.getPlugins()) - { - Element child = new Element(IElement.Type.PLUGIN, versionable.getId(), versionable.getVersion()); - if (resolve) - { - child.resolveVersion(); - } - - element.getChildren().add(child); - } - } - - return element; - } - - @SuppressWarnings("restriction") - public IModel getComponentModel(IElement element) - { - String name = element.getName(); - if (element.getType() == IElement.Type.PLUGIN) - { - IPluginModelBase model = PluginRegistry.findModel(name); - if (!element.isVersionUnresolved()) - { - Version pluginVersion = VersionUtil.normalize(model.getBundleDescription().getVersion()); - if (!element.getVersion().equals(pluginVersion)) - { - return null; - } - } - - return model; - } - - org.eclipse.pde.internal.core.FeatureModelManager manager = org.eclipse.pde.internal.core.PDECore.getDefault() - .getFeatureModelManager(); - org.eclipse.pde.internal.core.ifeature.IFeatureModel[] featureModels = manager.getWorkspaceModels(); - - org.eclipse.pde.internal.core.ifeature.IFeatureModel featureModel = getFeatureModel(name, featureModels); - if (featureModel == null) - { - featureModels = manager.getExternalModels(); - featureModel = getFeatureModel(name, featureModels); - } - - if (!element.isVersionUnresolved()) - { - org.eclipse.pde.internal.core.ifeature.IFeature feature = featureModel.getFeature(); - Version featureVersion = VersionUtil.normalize(new Version(feature.getVersion())); - if (!element.getVersion().equals(featureVersion)) - { - return null; - } - } - - return featureModel; - } - - @SuppressWarnings("restriction") - private org.eclipse.pde.internal.core.ifeature.IFeatureModel getFeatureModel(String name, - org.eclipse.pde.internal.core.ifeature.IFeatureModel[] featureModels) - { - Version highestVersion = null; - org.eclipse.pde.internal.core.ifeature.IFeatureModel highestModel = null; - - for (org.eclipse.pde.internal.core.ifeature.IFeatureModel featureModel : featureModels) - { - org.eclipse.pde.internal.core.ifeature.IFeature feature = featureModel.getFeature(); - String id = feature.getId(); - if (id.equals(name)) - { - Version newVersion = new Version(feature.getVersion()); - if (highestVersion == null || highestVersion.compareTo(newVersion) < 0) - { - highestVersion = newVersion; - highestModel = featureModel; - } - } - } - - if (highestModel == null) - { - return null; - } - - return highestModel; - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/VersionBuilder.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/VersionBuilder.java deleted file mode 100644 index 2225fdb673..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/VersionBuilder.java +++ /dev/null @@ -1,1659 +0,0 @@ -/* - * Copyright (c) 2012, 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.internal.version; - -import org.eclipse.emf.cdo.releng.internal.version.Activator.ReleaseCheckMode; -import org.eclipse.emf.cdo.releng.version.IElement; -import org.eclipse.emf.cdo.releng.version.IElement.Type; -import org.eclipse.emf.cdo.releng.version.IElementResolver; -import org.eclipse.emf.cdo.releng.version.IRelease; -import org.eclipse.emf.cdo.releng.version.IReleaseManager; -import org.eclipse.emf.cdo.releng.version.Markers; -import org.eclipse.emf.cdo.releng.version.VersionUtil; -import org.eclipse.emf.cdo.releng.version.VersionValidator; - -import org.eclipse.core.resources.ICommand; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IMarker; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IProjectDescription; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IResourceChangeEvent; -import org.eclipse.core.resources.IResourceChangeListener; -import org.eclipse.core.resources.IResourceDelta; -import org.eclipse.core.resources.IncrementalProjectBuilder; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.core.runtime.Path; -import org.eclipse.osgi.service.resolver.BundleDescription; -import org.eclipse.osgi.service.resolver.BundleSpecification; -import org.eclipse.osgi.service.resolver.ExportPackageDescription; -import org.eclipse.osgi.service.resolver.ImportPackageSpecification; -import org.eclipse.osgi.service.resolver.VersionRange; -import org.eclipse.pde.core.IModel; -import org.eclipse.pde.core.plugin.IPluginBase; -import org.eclipse.pde.core.plugin.IPluginExtensionPoint; -import org.eclipse.pde.core.plugin.IPluginModelBase; -import org.eclipse.pde.core.plugin.PluginRegistry; - -import org.osgi.framework.Version; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.Set; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * @author Eike Stepper - */ -public class VersionBuilder extends IncrementalProjectBuilder implements IElementResolver -{ - private static final Path DESCRIPTION_PATH = new Path(".project"); - - private static final Path OPTIONS_PATH = new Path(".options"); - - private static final Path MANIFEST_PATH = new Path("META-INF/MANIFEST.MF"); - - private static final Path FEATURE_PATH = new Path("feature.xml"); - - public static final String INTEGRATION_PROPERTY_KEY = "baseline.for.integration"; - - public static final String DEVIATIONS_PROPERTY_KEY = "show.deviations"; - - public static final String ROOT_PROJECTS_KEY = "root.projects"; - - public static final String IGNORED_REFERENCES_KEY = "ignored.references"; - - private static final Pattern DEBUG_OPTION_PATTERN = Pattern.compile("^( *)([^/ \\n\\r]+)/([^ =]+)( *=.*)$", - Pattern.MULTILINE); - - private static IResourceChangeListener postBuildListener; - - private static final Set<String> releasePaths = new HashSet<String>(); - - private static final Map<IElement, IElement> elementCache = new HashMap<IElement, IElement>(); - - private static final Map<IElement, Set<IElement>> elementReferences = new HashMap<IElement, Set<IElement>>(); - - private IRelease release; - - private Boolean integration; - - private Boolean deviations; - - private Set<String> rootProjects; - - private Set<String> ignoredReferences; - - private VersionBuilderArguments arguments; - - public VersionBuilder() - { - } - - public IElement resolveElement(IElement key) - { - try - { - ensureCacheExists(); - return elementCache.get(key); - } - catch (Exception ex) - { - Activator.log(ex); - return null; - } - } - - public Set<IElement> resolveReferences(IElement key) - { - try - { - ensureCacheExists(); - return elementReferences.get(key); - } - catch (Exception ex) - { - Activator.log(ex); - return null; - } - } - - private void ensureCacheExists() throws NoSuchAlgorithmException, CoreException, IOException - { - String path = arguments.getReleasePath(); - if (releasePaths.add(path)) - { - Map<IElement, IElement> elements = IReleaseManager.INSTANCE.createElements(arguments.getReleasePath(), false); - elementCache.putAll(elements); - for (IElement element : elements.keySet()) - { - if (element.getType() == IElement.Type.FEATURE) - { - for (IElement child : element.getChildren()) - { - Set<IElement> references = elementReferences.get(child); - if (references == null) - { - references = new HashSet<IElement>(); - elementReferences.put(child, references); - } - - references.add(element); - } - } - } - } - } - - @Override - protected void clean(IProgressMonitor monitor) throws CoreException - { - IProject project = getProject(); - - monitor.beginTask("", 1); - monitor.subTask("Cleaning versio validity problems of " + project.getName()); - - try - { - Activator.clearBuildState(project); - Markers.deleteAllMarkers(project); - } - finally - { - monitor.done(); - } - } - - @Override - protected final IProject[] build(int kind, Map<String, String> args, IProgressMonitor monitor) throws CoreException - { - List<IProject> buildDpependencies = new ArrayList<IProject>(); - build(kind, args, monitor, buildDpependencies); - return buildDpependencies.toArray(new IProject[buildDpependencies.size()]); - } - - private void build(int kind, Map<String, String> args, IProgressMonitor monitor, List<IProject> buildDpependencies) - throws CoreException - { - arguments = new VersionBuilderArguments(args); - VersionValidator validator = null; - - IProject project = getProject(); - IFile projectDescription = project.getFile(DESCRIPTION_PATH); - - if (postBuildListener == null) - { - postBuildListener = new IResourceChangeListener() - { - public void resourceChanged(IResourceChangeEvent event) - { - elementCache.clear(); - elementReferences.clear(); - releasePaths.clear(); - arguments = null; - } - }; - - project.getWorkspace().addResourceChangeListener(postBuildListener, IResourceChangeEvent.POST_BUILD); - Activator.setPostBuildListener(postBuildListener); - } - - BuildState buildState = Activator.getBuildState(project); - byte[] releaseSpecDigest = buildState.getReleaseSpecDigest(); - - VersionBuilderArguments oldVersionBuilderArguments = new VersionBuilderArguments(buildState.getArguments()); - buildState.setArguments(arguments); - - IResourceDelta delta = releaseSpecDigest == null || kind == FULL_BUILD || kind == CLEAN_BUILD - || !oldVersionBuilderArguments.equals(arguments) ? null : getDelta(project); - - monitor.beginTask("", 1); - monitor.subTask("Checking version validity of " + project.getName()); - - try - { - IModel componentModel = VersionUtil.getComponentModel(project); - IFile componentModelFile = (IFile)componentModel.getUnderlyingResource(); - - /* - * Determine release data to validate against - */ - - String releasePathArg = arguments.getReleasePath(); - if (releasePathArg == null) - { - String msg = "Path to release spec file is not configured"; - Markers.addMarker(projectDescription, msg, IMarker.SEVERITY_ERROR, "(" + VersionUtil.BUILDER_ID + ")"); - return; - } - - if (Activator.getReleaseCheckMode(releasePathArg) == ReleaseCheckMode.NONE) - { - return; - } - - IPath releasePath = new Path(releasePathArg); - - try - { - IFile releaseSpecFile = ResourcesPlugin.getWorkspace().getRoot().getFile(releasePath); - buildDpependencies.add(releaseSpecFile.getProject()); - - IRelease release; - if (!releaseSpecFile.exists()) - { - release = IReleaseManager.INSTANCE.createRelease(releaseSpecFile); - } - else - { - release = IReleaseManager.INSTANCE.getRelease(releaseSpecFile); - } - - byte[] digest = VersionUtil.getSHA1(releaseSpecFile); - if (releaseSpecDigest == null || !MessageDigest.isEqual(digest, releaseSpecDigest)) - { - buildState.setReleaseSpecDigest(digest); - delta = null; - } - - this.release = release; - } - catch (Exception ex) - { - Activator.log(ex); - String msg = "Problem with release spec: " + releasePath + " (" + ex.getMessage() + ")"; - IMarker marker = Markers.addMarker(projectDescription, msg, IMarker.SEVERITY_ERROR, "(" - + releasePath.toString().replace(".", "\\.") + ")"); - if (marker != null) - { - marker.setAttribute(Markers.PROBLEM_TYPE, Markers.RELEASE_PATH_PROBLEM); - } - - return; - } - - IFile propertiesFile = VersionUtil.getFile(releasePath, "properties"); - long propertiesTimeStamp = propertiesFile.getLocalTimeStamp(); - boolean formerDeviations = buildState.isDeviations(); - if (buildState.getPropertiesTimeStamp() != propertiesTimeStamp) - { - if (initReleaseProperties(propertiesFile)) - { - delta = null; - } - - buildState.setDeviations(deviations); - buildState.setIntegration(integration); - buildState.setRootProjects(rootProjects); - buildState.setIgnoredReferences(ignoredReferences); - buildState.setPropertiesTimeStamp(propertiesTimeStamp); - - if (formerDeviations && !deviations) - { - Markers.deleteAllMarkers(componentModelFile, Markers.DEVIATION_INFO); - } - } - else - { - deviations = formerDeviations; - integration = buildState.isIntegration(); - rootProjects = buildState.getRootProjects(); - ignoredReferences = buildState.getIgnoredReferences(); - } - - IPath componentModelPath = componentModelFile.getProjectRelativePath(); - boolean checkComponentModel = delta == null || delta.findMember(componentModelPath) != null; - - IElement element = IReleaseManager.INSTANCE.createElement(componentModel, true, false); - for (IElement child : element.getAllChildren(this, release)) - { - IProject childProject = getProject(child); - if (childProject != null) - { - buildDpependencies.add(childProject); - if (checkComponentModel) - { - IModel childProjectComponentModel = VersionUtil.getComponentModel(childProject); - if (childProjectComponentModel != null) - { - IResource underlyingResource = childProjectComponentModel.getUnderlyingResource(); - Markers.deleteAllMarkers(underlyingResource, Markers.UNREFERENCED_ELEMENT_PROBLEM); - } - } - } - } - - Markers.deleteAllMarkers(componentModelFile, Markers.UNREFERENCED_ELEMENT_PROBLEM); - if (Activator.getReleaseCheckMode(releasePathArg) == ReleaseCheckMode.FULL - && !rootProjects.contains(project.getName())) - { - Set<IElement> elementReference = resolveReferences(element); - if (elementReference == null || elementReference.isEmpty()) - { - addUnreferencedElementMarker(componentModelFile, element); - } - } - - if (componentModel instanceof IPluginModelBase) - { - if (!arguments.isIgnoreSchemaBuilder()) - { - if (delta == null || delta.findMember(DESCRIPTION_PATH) != null) - { - checkSchemaBuilder((IPluginModelBase)componentModel, projectDescription); - } - } - else if (!oldVersionBuilderArguments.isIgnoreSchemaBuilder()) - { - Markers.deleteAllMarkers(projectDescription, Markers.SCHEMA_BUILDER_PROBLEM); - } - - if (!arguments.isIgnoreDebugOptions()) - { - if (delta == null || delta.findMember(OPTIONS_PATH) != null) - { - checkDebugOptions((IPluginModelBase)componentModel); - } - } - else if (!oldVersionBuilderArguments.isIgnoreDebugOptions()) - { - Markers.deleteAllMarkers(project.getFile(OPTIONS_PATH), Markers.DEBUG_OPTION_PROBLEM); - } - - if (!arguments.isIgnoreMissingDependencyRanges()) - { - if (checkComponentModel) - { - checkDependencyRanges((IPluginModelBase)componentModel); - } - } - else if (!oldVersionBuilderArguments.isIgnoreMissingDependencyRanges()) - { - Markers.deleteAllMarkers(getProject().getFile(MANIFEST_PATH), Markers.DEPENDENCY_RANGE_PROBLEM); - } - - if (!arguments.isIgnoreMissingExportVersions()) - { - if (checkComponentModel) - { - checkPackageExports((IPluginModelBase)componentModel); - } - } - else if (!oldVersionBuilderArguments.isIgnoreMissingExportVersions()) - { - Markers.deleteAllMarkers(getProject().getFile(MANIFEST_PATH), Markers.EXPORT_VERSION_PROBLEM); - } - - if (hasAPIToolsMarker((IPluginModelBase)componentModel)) - { - return; - } - } - else - { - if (!arguments.isIgnoreFeatureNature()) - { - if (delta == null || delta.findMember(DESCRIPTION_PATH) != null) - { - checkFeatureNature(projectDescription); - } - } - else if (!oldVersionBuilderArguments.isIgnoreFeatureNature()) - { - Markers.deleteAllMarkers(projectDescription, Markers.FEATURE_NATURE_PROBLEM); - } - } - - if (!arguments.isIgnoreMalformedVersions()) - { - if (checkComponentModel) - { - if (checkMalformedVersions(componentModel)) - { - return; - } - } - } - else if (!oldVersionBuilderArguments.isIgnoreMalformedVersions()) - { - Markers.deleteAllMarkers(componentModelFile, Markers.MALFORMED_VERSION_PROBLEM); - } - - IElement releaseElement = release.getElements().get(element.trimVersion()); - if (releaseElement == null) - { - if (VersionUtil.DEBUG) - { - System.out.println("Project has not been released: " + project.getName()); - } - - return; - } - - Markers.deleteAllMarkers(componentModelFile, Markers.VERSION_NATURE_PROBLEM); - for (IElement child : element.getChildren()) - { - IModel childComponentModel = ReleaseManager.INSTANCE.getComponentModel(child); - if (childComponentModel != null) - { - IResource childComponentModelFile = childComponentModel.getUnderlyingResource(); - if (childComponentModelFile != null) - { - IProject childProject = childComponentModelFile.getProject(); - if (!childProject.hasNature(VersionNature.NATURE_ID)) - { - Type childType = child.getType(); - String name = child.getName(); - String label = childType.toString(); - String tag = childType.getTag(); - String msg = label + " '" + name + "' is missing the version management builder"; - IMarker marker = addFeatureChildMarker(componentModelFile, Markers.VERSION_NATURE_PROBLEM, tag, name, - msg, child.isLicenseFeature(), false, null, IMarker.SEVERITY_ERROR); - marker.setAttribute(Markers.QUICK_FIX_NATURE, VersionNature.NATURE_ID); - marker.setAttribute(Markers.QUICK_FIX_PROJECT, childProject.getName()); - } - } - } - } - - Version elementVersion = element.getVersion(); - Version releaseVersion = releaseElement.getVersion(); - Version nextMicroVersion = getNextMicroVersion(releaseVersion); - - int comparison = releaseVersion.compareTo(elementVersion); - if (comparison != 0 && deviations && checkComponentModel) - { - addDeviationMarker(componentModelFile, element, releaseVersion); - } - - Markers.deleteAllMarkers(componentModelFile, Markers.COMPONENT_VERSION_PROBLEM); - boolean microVersionProperlyIncreased = false; - - if (comparison < 0) - { - microVersionProperlyIncreased = nextMicroVersion.equals(elementVersion); - if (!microVersionProperlyIncreased) - { - boolean noOtherIncrements = elementVersion.getMajor() == nextMicroVersion.getMajor() - && elementVersion.getMinor() == nextMicroVersion.getMinor(); - if (noOtherIncrements) - { - addVersionMarker(componentModelFile, "Version should be " + nextMicroVersion, nextMicroVersion); - } - } - - if (element.getType() == IElement.Type.PLUGIN) - { - return; - } - } - - if (comparison > 0) - { - addVersionMarker(componentModelFile, "Version has been decreased after release " + releaseVersion, - releaseVersion); - return; - } - - if (element.getType() == IElement.Type.FEATURE) - { - if (!arguments.isIgnoreFeatureContentRedundancy()) - { - checkFeatureRedundancy(componentModelFile, element); - } - - if (!arguments.isIgnoreFeatureContentChanges()) - { - List<Problem> problems = new ArrayList<Problem>(); - checkFeatureReferences(componentModelFile, element, problems); - if (!problems.isEmpty()) - { - createMarkers(componentModelFile, problems, ComponentReferenceType.UNRESOLVED); - return; - } - - ComponentReferenceType change = checkFeatureContentChanges(element, releaseElement, problems); - if (change != ComponentReferenceType.UNCHANGED) - { - Version nextFeatureVersion = getNextFeatureVersion(releaseVersion, nextMicroVersion, change); - if (elementVersion.compareTo(nextFeatureVersion) < 0) - { - IMarker marker = addVersionMarker(componentModelFile, "Version must be increased to " - + nextFeatureVersion + " because the feature's references have changed", nextFeatureVersion); - if (marker != null) - { - marker.setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, - IVersionBuilderArguments.IGNORE_CONTENT_CHANGES_ARGUMENT); - } - - createMarkers(componentModelFile, problems, change); - } - - return; - } - - if (!elementVersion.equals(releaseVersion)) - { - return; - } - } - } - - if (microVersionProperlyIncreased) - { - return; - } - - /* - * Determine validator to use - */ - - String validatorClassName = arguments.getValidatorClassName(); - if (validatorClassName == null) - { - validatorClassName = IVersionBuilderArguments.DEFAULT_VALIDATOR_CLASS_NAME; - } - - try - { - Markers.deleteAllMarkers(projectDescription, Markers.VALIDATOR_CLASS_PROBLEM); - - Class<?> c = Class.forName(validatorClassName, true, VersionBuilder.class.getClassLoader()); - validator = (VersionValidator)c.newInstance(); - - if (VersionUtil.DEBUG) - { - System.out.println(validator.getClass().getName() + ": " + project.getName()); - } - } - catch (Exception ex) - { - String msg = ex.getLocalizedMessage() + ": " + validatorClassName; - IMarker marker = Markers.addMarker(projectDescription, msg, IMarker.SEVERITY_ERROR, ".*(" + validatorClassName - + ").*"); - if (marker != null) - { - marker.setAttribute(Markers.PROBLEM_TYPE, Markers.VALIDATOR_CLASS_PROBLEM); - } - - return; - } - - String validatorVersion = validator.getVersion(); - if (!VersionUtil.equals(validatorClassName, buildState.getValidatorClass()) - || !VersionUtil.equals(validatorVersion, buildState.getValidatorVersion())) - { - buildState.setValidatorState(null); - delta = null; - } - - buildState.setValidatorClass(validatorClassName); - buildState.setValidatorVersion(validatorVersion); - - /* - * Do the validation - */ - - validator.updateBuildState(buildState, release, project, delta, componentModel, monitor); - - if (buildState.isChangedSinceRelease()) - { - addVersionMarker(componentModelFile, "Version must be increased to " + nextMicroVersion - + " because the project's contents have changed", nextMicroVersion); - } - } - catch (Exception ex) - { - try - { - if (validator != null) - { - validator.abort(buildState, project, ex, monitor); - } - - Activator.log(ex); - } - catch (Exception ignore) - { - Activator.log(ignore); - } - } - finally - { - deviations = null; - integration = null; - release = null; - monitor.done(); - } - } - - private void createMarkers(IFile componentModelFile, List<Problem> problems, ComponentReferenceType change) - { - for (Problem problem : problems) - { - ComponentReferenceType componentReferenceType = problem.getComponentReferenceType(); - if (componentReferenceType.ordinal() >= change.ordinal()) - { - addIncludeMarker(componentModelFile, problem.getElement(), problem.getSeverity(), problem.getVersion(), - componentReferenceType); - } - } - } - - private boolean hasAPIToolsMarker(IPluginModelBase pluginModel) - { - try - { - IResource manifest = pluginModel.getUnderlyingResource(); - for (IMarker marker : manifest.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_ZERO)) - { - if (marker.getType().startsWith("org.eclipse.pde.api.tools")) - { - return true; - } - } - } - catch (CoreException ex) - { - Activator.log(ex); - } - - return false; - } - - private boolean initReleaseProperties(IFile propertiesFile) throws CoreException, IOException - { - if (propertiesFile.exists()) - { - InputStream contents = null; - - try - { - contents = propertiesFile.getContents(); - - Properties properties = new Properties(); - properties.load(contents); - - deviations = Boolean.valueOf(properties.getProperty(DEVIATIONS_PROPERTY_KEY, "false")); - - rootProjects = new HashSet<String>(); - for (String rootProject : Arrays.asList(properties.getProperty(ROOT_PROJECTS_KEY, "").split(" "))) - { - rootProjects.add(rootProject.replace("\\ ", " ").replace("\\\\", "\\")); - } - - ignoredReferences = new HashSet<String>(); - for (String ignoredReference : Arrays.asList(properties.getProperty(IGNORED_REFERENCES_KEY, "").split(" "))) - { - ignoredReferences.add(ignoredReference.replace("\\ ", " ").replace("\\\\", "\\")); - } - - Boolean newValue = Boolean.valueOf(properties.getProperty(INTEGRATION_PROPERTY_KEY, "true")); - if (!newValue.equals(integration)) - { - integration = newValue; - return true; - } - - return false; - } - finally - { - VersionUtil.close(contents); - } - } - - deviations = false; - integration = true; - rootProjects = new HashSet<String>(); - ignoredReferences = new HashSet<String>(); - - String lineDelimiter = VersionUtil.getLineDelimiter(propertiesFile); - String contents = INTEGRATION_PROPERTY_KEY + " = " + integration + lineDelimiter + DEVIATIONS_PROPERTY_KEY + " = " - + deviations + lineDelimiter + ROOT_PROJECTS_KEY + " = "; - - String charsetName = propertiesFile.getCharset(); - byte[] bytes = contents.getBytes(charsetName); - - ByteArrayInputStream bais = new ByteArrayInputStream(bytes); - propertiesFile.create(bais, true, new NullProgressMonitor()); - return true; - } - - private Version getNextMicroVersion(Version releaseVersion) - { - return new Version(releaseVersion.getMajor(), releaseVersion.getMinor(), releaseVersion.getMicro() - + (integration ? 100 : 1)); - } - - private Version getNextFeatureVersion(Version releaseVersion, Version nextImplementationVersion, - ComponentReferenceType change) - { - switch (change) - { - case REMOVED: - case MAJOR_CHANGED: - return new Version(releaseVersion.getMajor() + 1, 0, 0); - case ADDED: - case MINOR_CHANGED: - return new Version(releaseVersion.getMajor(), releaseVersion.getMinor() + 1, 0); - case MICRO_CHANGED: - return nextImplementationVersion; - default: - throw new IllegalArgumentException(); - } - } - - private void checkFeatureReferences(IFile file, IElement element, List<Problem> problems) - { - for (IElement child : element.getChildren()) - { - // PDE already warns for unresolved references, except for license features, see bug 387750 - // - boolean hasSpecificVersion = !child.isVersionUnresolved(); - if (hasSpecificVersion) - { - IElement resolvedChild = resolveElement(child); - if (resolvedChild == null) - { - resolvedChild = resolveElement(child.trimVersion()); - Version resolvedChildVersion = resolvedChild == null ? null : resolvedChild.getVersion(); - addProblem(child, IMarker.SEVERITY_ERROR, ComponentReferenceType.UNRESOLVED, resolvedChildVersion, problems); - } - } - } - } - - private void checkFeatureRedundancy(IFile file, IElement element) - { - int i = 0; - List<IElement> children = element.getChildren(); - for (IElement pluginChild : children) - { - if (pluginChild.getType() == IElement.Type.PLUGIN) - { - for (IElement featureChild : children) - { - if (featureChild.getType() == IElement.Type.FEATURE) - { - featureChild = resolveElement(featureChild); - if (featureChild != null) - { - Set<IElement> allChildren = featureChild.getAllChildren(this, release); - if (allChildren.contains(pluginChild)) - { - try - { - addRedundancyMarker(file, pluginChild, featureChild); - } - catch (Exception ex) - { - Activator.log(ex); - } - } - } - } - } - - if (children.indexOf(pluginChild) != i) - { - addRedundancyMarker(file, pluginChild, null); - } - } - - ++i; - } - } - - private ComponentReferenceType checkFeatureContentChanges(IElement element, IElement releasedElement, - List<Problem> problems) - { - ComponentReferenceType biggestChange = ComponentReferenceType.UNCHANGED; - Set<IElement> allChildren = element.getAllChildren(this, release); - for (IElement child : allChildren) - { - ComponentReferenceType change = checkFeatureContentChanges(element, releasedElement, child, problems); - biggestChange = ComponentReferenceType.values()[Math.max(biggestChange.ordinal(), change.ordinal())]; - } - - for (IElement releasedElementsChild : releasedElement.getAllChildren(release, this)) - { - IElement trimmedVersion = releasedElementsChild.trimVersion(); - if (!allChildren.contains(trimmedVersion)) - { - // IElement resolvedElement = resolveElement(trimmedVersion); - // if (resolvedElement != null && !resolvedElement.isVersionUnresolved()) - { - if (addProblem(releasedElementsChild, IMarker.SEVERITY_WARNING, ComponentReferenceType.REMOVED, null, - problems)) - { - biggestChange = ComponentReferenceType.REMOVED; - } - } - } - } - - return biggestChange; - } - - private ComponentReferenceType checkFeatureContentChanges(IElement element, IElement releasedElement, - IElement childElement, List<Problem> problems) - { - IElement releasedElementsChild = releasedElement.getChild(release, this, childElement); - if (releasedElementsChild == null) - { - // Don't consider it added if it was present with a different version. - // - releasedElementsChild = releasedElement.getChild(release, this, childElement.trimVersion()); - if (releasedElementsChild == null) - { - if (addProblem(childElement, IMarker.SEVERITY_WARNING, ComponentReferenceType.ADDED, null, problems)) - { - return ComponentReferenceType.ADDED; - } - } - } - - IElement childsReleasedElement = release.getElements().get(childElement); - if (childsReleasedElement == null) - { - childsReleasedElement = release.getElements().get(childElement.trimVersion()); - if (childsReleasedElement == null) - { - return ComponentReferenceType.UNCHANGED; - } - } - - if (!childsReleasedElement.isVersionUnresolved()) - { - Version releasedVersion = childsReleasedElement.getVersion(); - Version version = childElement.trimVersion().getResolvedVersion(); - if (!version.equals(Version.emptyVersion)) - { - if (version.getMajor() != releasedVersion.getMajor()) - { - if (addProblem(childsReleasedElement, IMarker.SEVERITY_WARNING, ComponentReferenceType.MAJOR_CHANGED, - version, problems)) - { - return ComponentReferenceType.MAJOR_CHANGED; - } - } - - if (version.getMinor() != releasedVersion.getMinor()) - { - if (addProblem(childsReleasedElement, IMarker.SEVERITY_WARNING, ComponentReferenceType.MINOR_CHANGED, - version, problems)) - { - return ComponentReferenceType.MINOR_CHANGED; - } - } - - if (version.getMicro() != releasedVersion.getMicro()) - { - if (addProblem(childsReleasedElement, IMarker.SEVERITY_WARNING, ComponentReferenceType.MICRO_CHANGED, - version, problems)) - { - return ComponentReferenceType.MICRO_CHANGED; - } - } - } - } - - return ComponentReferenceType.UNCHANGED; - } - - private boolean addProblem(IElement element, int severity, ComponentReferenceType componentReferenceType, - Version version, List<Problem> problems) - { - String elementName = element.getName(); - if (!ignoredReferences.contains(elementName)) - { - problems.add(new Problem(element, severity, componentReferenceType, version)); - return true; - } - - return false; - } - - private IProject getProject(IElement element) - { - String name = element.getName(); - if (element.getType() == IElement.Type.PLUGIN) - { - return getPluginProject(name); - } - - return getFeatureProject(name); - } - - private IProject getPluginProject(String name) - { - IPluginModelBase pluginModel = PluginRegistry.findModel(name); - if (pluginModel != null) - { - IResource resource = pluginModel.getUnderlyingResource(); - if (resource != null) - { - return resource.getProject(); - } - } - - return null; - } - - @SuppressWarnings("restriction") - private IProject getFeatureProject(String name) - { - org.eclipse.pde.internal.core.ifeature.IFeatureModel[] featureModels = org.eclipse.pde.internal.core.PDECore - .getDefault().getFeatureModelManager().getWorkspaceModels(); - - for (org.eclipse.pde.internal.core.ifeature.IFeatureModel featureModel : featureModels) - { - IResource resource = featureModel.getUnderlyingResource(); - if (resource != null && featureModel.getFeature().getId().equals(name)) - { - return resource.getProject(); - } - } - - return null; - } - - private boolean checkMalformedVersions(IModel componentModel) throws CoreException - { - IResource underlyingResource = componentModel.getUnderlyingResource(); - if (underlyingResource != null) - { - Markers.deleteAllMarkers(underlyingResource, Markers.MALFORMED_VERSION_PROBLEM); - - IProject project = underlyingResource.getProject(); - if (project.isAccessible()) - { - IFile file = null; - String regex = null; - if (componentModel instanceof IPluginModelBase) - { - file = project.getFile(MANIFEST_PATH); - regex = "Bundle-Version: *(\\d+(\\.\\d+(\\.\\d+(\\.[-_a-zA-Z0-9]+)?)?)?)"; - } - else - { - file = project.getFile(FEATURE_PATH); - regex = "feature.*?version\\s*=\\s*[\"'](\\d+(\\.\\d+(\\.\\d+(\\.[-_a-zA-Z0-9]+)?)?)?)"; - } - - if (file.exists()) - { - try - { - String content = VersionUtil.getContents(file); - Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.DOTALL); - Matcher matcher = pattern.matcher(content); - if (matcher.find()) - { - String version = matcher.group(1); - if (matcher.groupCount() < 4 || !".qualifier".equals(matcher.group(4))) - { - Version expectedVersion = new Version(version); - addMalformedVersionMarker(file, regex, - new Version(expectedVersion.getMajor(), expectedVersion.getMinor(), expectedVersion.getMicro(), - "qualifier")); - return true; - } - } - } - catch (Exception ex) - { - Activator.log(ex); - } - } - } - } - - return false; - } - - private void checkDependencyRanges(IPluginModelBase pluginModel) throws CoreException, IOException - { - BundleDescription description = pluginModel.getBundleDescription(); - if (description == null) - { - return; - } - - IFile file = getProject().getFile(MANIFEST_PATH); - Markers.deleteAllMarkers(file, Markers.DEPENDENCY_RANGE_PROBLEM); - - for (BundleSpecification requiredBundle : description.getRequiredBundles()) - { - VersionRange range = requiredBundle.getVersionRange(); - if (isUnspecified(getMaximum(range))) - { - addRequireMarker(file, requiredBundle.getName(), "dependency must specify a version range"); - } - else - { - if (!range.getIncludeMinimum()) - { - addRequireMarker(file, requiredBundle.getName(), "dependency range must include the minimum"); - } - - if (range.getIncludeMaximum()) - { - addRequireMarker(file, requiredBundle.getName(), "dependency range must not include the maximum"); - } - } - } - - for (ImportPackageSpecification importPackage : description.getImportPackages()) - { - VersionRange range = importPackage.getVersionRange(); - if (isUnspecified(getMaximum(range))) - { - addImportMarker(file, importPackage.getName(), "dependency must specify a version range"); - } - else - { - if (!range.getIncludeMinimum()) - { - addImportMarker(file, importPackage.getName(), "dependency range must include the minimum"); - } - - if (range.getIncludeMaximum()) - { - addImportMarker(file, importPackage.getName(), "dependency range must not include the maximum"); - } - } - } - } - - @SuppressWarnings("deprecation") - private Version getMaximum(VersionRange range) - { - DeprecationUtil.someDeprecatedCode(); // Just make sure that this method refers to some deprecated code - return range.getMaximum(); - } - - private boolean isUnspecified(Version version) - { - if (version.getMajor() != Integer.MAX_VALUE) - { - return false; - } - - if (version.getMinor() != Integer.MAX_VALUE) - { - return false; - } - - if (version.getMicro() != Integer.MAX_VALUE) - { - return false; - } - - return true; - } - - private void checkPackageExports(IPluginModelBase pluginModel) throws CoreException, IOException - { - IFile file = getProject().getFile(MANIFEST_PATH); - Markers.deleteAllMarkers(file, Markers.EXPORT_VERSION_PROBLEM); - - BundleDescription description = pluginModel.getBundleDescription(); - String bundleName = description.getSymbolicName(); - Version bundleVersion = VersionUtil.normalize(description.getVersion()); - - for (ExportPackageDescription packageExport : description.getExportPackages()) - { - String packageName = packageExport.getName(); - if (isBundlePackage(packageName, bundleName)) - { - Version packageVersion = packageExport.getVersion(); - if (packageVersion != null && !packageVersion.equals(Version.emptyVersion) - && !packageVersion.equals(bundleVersion)) - { - addExportMarker(file, packageName, bundleVersion); - } - } - } - } - - private void checkFeatureNature(IFile file) throws CoreException, IOException - { - IProject project = file.getProject(); - Markers.deleteAllMarkers(project, Markers.FEATURE_NATURE_PROBLEM); - IProjectDescription description = project.getDescription(); - - // Check that FeatureBuilder is configured. - for (ICommand command : description.getBuildSpec()) - { - if ("org.eclipse.pde.FeatureBuilder".equals(command.getBuilderName())) - { - if (project.hasNature("org.eclipse.pde.FeatureNature")) - { - return; - } - } - } - - String regex = "<buildSpec\\s*>()"; - String msg = "Feature builder is missing"; - IMarker marker = Markers.addMarker(file, msg, IMarker.SEVERITY_WARNING, regex); - marker.setAttribute(Markers.PROBLEM_TYPE, Markers.FEATURE_NATURE_PROBLEM); - marker.setAttribute(Markers.QUICK_FIX_NATURE, "org.eclipse.pde.FeatureNature"); - marker.setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, IVersionBuilderArguments.IGNORE_FEATURE_NATURE_ARGUMENT); - } - - private void checkSchemaBuilder(IPluginModelBase pluginModel, IFile file) throws CoreException, IOException - { - Markers.deleteAllMarkers(file, Markers.SCHEMA_BUILDER_PROBLEM); - IProjectDescription description = getProject().getDescription(); - - IPluginBase pluginBase = pluginModel.getPluginBase(); - if (pluginBase != null) - { - IPluginExtensionPoint[] extensionPoints = pluginBase.getExtensionPoints(); - if (extensionPoints != null & extensionPoints.length != 0) - { - // Plugin has an extension point. Check that SchemaBuilder is configured. - for (ICommand command : description.getBuildSpec()) - { - if ("org.eclipse.pde.SchemaBuilder".equals(command.getBuilderName())) - { - return; - } - } - - String regex = "<buildCommand\\s*>\\s*<name>\\s*org.eclipse.pde.ManifestBuilder\\s*</name>.*?</buildCommand>(\\s*)"; - String msg = "Schema builder is missing"; - - IMarker marker = Markers.addMarker(file, msg, IMarker.SEVERITY_WARNING, regex); - marker.setAttribute(Markers.PROBLEM_TYPE, Markers.SCHEMA_BUILDER_PROBLEM); - marker.setAttribute(Markers.QUICK_FIX_PATTERN, regex); - String lineDelimiter = VersionUtil.getLineDelimiter(file); - marker.setAttribute(Markers.QUICK_FIX_REPLACEMENT, lineDelimiter + "\t\t<buildCommand>" + lineDelimiter - + "\t\t\t<name>org.eclipse.pde.SchemaBuilder</name>" + lineDelimiter + "\t\t\t<arguments>" + lineDelimiter - + "\t\t\t</arguments>" + lineDelimiter + "\t\t</buildCommand>" + lineDelimiter + "\t\t"); - marker - .setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, IVersionBuilderArguments.IGNORE_SCHEMA_BUILDER_ARGUMENT); - return; - } - } - - // Plugin has no extension point(s). Check that SchemaBuilder is not configured. - for (ICommand command : description.getBuildSpec()) - { - if ("org.eclipse.pde.SchemaBuilder".equals(command.getBuilderName())) - { - String regex = "(<buildCommand\\s*>\\s*<name>\\s*org.eclipse.pde.SchemaBuilder\\s*</name>.*?</buildCommand>)\\s*"; - String msg = "No schema builder is needed because no extension point is declared"; - - IMarker marker = Markers.addMarker(file, msg, IMarker.SEVERITY_WARNING, regex); - marker.setAttribute(Markers.PROBLEM_TYPE, Markers.SCHEMA_BUILDER_PROBLEM); - marker.setAttribute(Markers.QUICK_FIX_PATTERN, regex); - marker - .setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, IVersionBuilderArguments.IGNORE_SCHEMA_BUILDER_ARGUMENT); - break; - } - } - } - - private void checkDebugOptions(IPluginModelBase pluginModel) throws CoreException, IOException - { - IFile file = getProject().getFile(OPTIONS_PATH); - if (file.isAccessible()) - { - Markers.deleteAllMarkers(file, Markers.DEBUG_OPTION_PROBLEM); - - String symbolicName = pluginModel.getBundleDescription().getSymbolicName(); - String content = VersionUtil.getContents(file); - - Matcher matcher = DEBUG_OPTION_PATTERN.matcher(content); - while (matcher.find()) - { - String pluginID = matcher.group(2); - if (!symbolicName.equals(pluginID)) - { - String prefix = matcher.group(1); - String suffix = "/" + (matcher.group(3) + matcher.group(4)).replace(".", "\\."); - pluginID = pluginID.replace(".", "\\."); - - String regex = prefix + "(" + pluginID + ")" + suffix; - String msg = "Debug option should be '" + symbolicName + "/" + matcher.group(3) + "'"; - - IMarker marker = Markers.addMarker(file, msg, IMarker.SEVERITY_ERROR, regex); - marker.setAttribute(Markers.PROBLEM_TYPE, Markers.DEBUG_OPTION_PROBLEM); - marker.setAttribute(Markers.QUICK_FIX_PATTERN, regex); - marker.setAttribute(Markers.QUICK_FIX_REPLACEMENT, symbolicName); - marker.setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, - IVersionBuilderArguments.IGNORE_DEBUG_OPTIONS_ARGUMENT); - } - } - } - } - - private boolean isBundlePackage(String packageName, String bundleName) - { - if (packageName.startsWith(bundleName)) - { - return true; - } - - int lastDot = bundleName.lastIndexOf('.'); - if (lastDot != -1) - { - String bundleStart = bundleName.substring(0, lastDot); - String bundleEnd = bundleName.substring(lastDot + 1); - if (packageName.startsWith(bundleStart + ".internal." + bundleEnd)) - { - return true; - } - - if (packageName.startsWith(bundleStart + ".spi." + bundleEnd)) - { - return true; - } - } - - return false; - } - - private void addRequireMarker(IFile file, String name, String message) - { - try - { - String regex = name.replace(".", "\\.") + ";bundle-version=\"([^\\\"]*)\""; - - IMarker marker = Markers.addMarker(file, "'" + name + "' " + message, IMarker.SEVERITY_ERROR, regex); - if (marker != null) - { - marker.setAttribute(Markers.PROBLEM_TYPE, Markers.DEPENDENCY_RANGE_PROBLEM); - marker.setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, - IVersionBuilderArguments.IGNORE_DEPENDENCY_RANGES_ARGUMENT); - } - } - catch (Exception ex) - { - Activator.log(ex); - } - } - - private void addImportMarker(IFile file, String name, String message) - { - try - { - String regex = name.replace(".", "\\.") + ";version=\"([^\\\"]*)\""; - - IMarker marker = Markers.addMarker(file, "'" + name + "' " + message, IMarker.SEVERITY_ERROR, regex); - if (marker != null) - { - marker.setAttribute(Markers.PROBLEM_TYPE, Markers.DEPENDENCY_RANGE_PROBLEM); - marker.setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, - IVersionBuilderArguments.IGNORE_DEPENDENCY_RANGES_ARGUMENT); - } - } - catch (Exception ex) - { - Activator.log(ex); - } - } - - private void addExportMarker(IFile file, String name, Version bundleVersion) - { - String versionString = bundleVersion.toString(); - - try - { - String message = "Export of package '" + name + "' should have the version " + versionString; - String regex = name.replace(".", "\\.") + ";version=\"([0123456789\\.]*)\""; - - IMarker marker = Markers.addMarker(file, message, IMarker.SEVERITY_ERROR, regex); - marker.setAttribute(Markers.PROBLEM_TYPE, Markers.EXPORT_VERSION_PROBLEM); - marker.setAttribute(Markers.QUICK_FIX_PATTERN, regex); - marker.setAttribute(Markers.QUICK_FIX_REPLACEMENT, versionString); - marker.setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, IVersionBuilderArguments.IGNORE_EXPORT_VERSIONS_ARGUMENT); - } - catch (Exception ex) - { - Activator.log(ex); - } - } - - private void addMalformedVersionMarker(IFile file, String regex, Version version) - { - try - { - String versionString = version.toString(); - IMarker marker = Markers.addMarker(file, "The version should be of the form '" + versionString + "'", - IMarker.SEVERITY_ERROR, regex); - marker.setAttribute(Markers.PROBLEM_TYPE, Markers.MALFORMED_VERSION_PROBLEM); - marker.setAttribute(Markers.QUICK_FIX_PATTERN, regex); - marker.setAttribute(Markers.QUICK_FIX_REPLACEMENT, versionString); - marker.setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, - IVersionBuilderArguments.IGNORE_MALFORMED_VERSIONS_ARGUMENT); - } - catch (Exception ex) - { - Activator.log(ex); - } - } - - private IMarker addUnreferencedElementMarker(IFile file, IElement element) - { - try - { - String type; - if (element.getType() == IElement.Type.PLUGIN) - { - type = "Plug-in"; - } - else - { - type = "Feature"; - } - - String message = type + " '" + element.getName() + "' is not referenced by any other feature"; - String regex; - if (file.getFullPath().lastSegment().equals("MANIFEST.MF")) - { - regex = "Bundle-SymbolicName: *([^;\n\r]*)"; - } - else - { - regex = "feature.*?id\\s*=\\s*[\"']([^\"']*)"; - } - - IMarker marker = Markers.addMarker(file, message, IMarker.SEVERITY_ERROR, regex); - if (marker != null) - { - marker.setAttribute(Markers.PROBLEM_TYPE, Markers.UNREFERENCED_ELEMENT_PROBLEM); - } - - return marker; - } - catch (Exception ex) - { - Activator.log(ex); - return null; - } - } - - private IMarker addDeviationMarker(IFile file, IElement element, Version releasedVersion) - { - try - { - String type; - if (element.getType() == IElement.Type.PLUGIN) - { - type = "Plug-in"; - } - else - { - type = "Feature"; - } - - Version version = element.getVersion(); - String message = type + " '" + element.getName() + "' has been changed from " + releasedVersion + " to " - + version; - IMarker marker = addVersionMarker(file, message, version, IMarker.SEVERITY_INFO); - if (marker != null) - { - marker.setAttribute(Markers.PROBLEM_TYPE, Markers.DEVIATION_INFO); - } - - return marker; - } - catch (Exception ex) - { - Activator.log(ex); - return null; - } - } - - private IMarker addVersionMarker(IFile file, String message, Version version) - { - try - { - IMarker marker = addVersionMarker(file, message, version, IMarker.SEVERITY_ERROR); - if (marker != null) - { - marker.setAttribute(Markers.PROBLEM_TYPE, Markers.COMPONENT_VERSION_PROBLEM); - } - - return marker; - } - catch (Exception ex) - { - Activator.log(ex); - return null; - } - } - - private IMarker addVersionMarker(IFile file, String message, Version version, int severity) - { - try - { - String regex; - if (file.getFullPath().lastSegment().equals("MANIFEST.MF")) - { - regex = "Bundle-Version: *(\\d+(\\.\\d+(\\.\\d+)?)?)"; - } - else - { - regex = "feature.*?version\\s*=\\s*[\"'](\\d+(\\.\\d+(\\.\\d+)?)?)"; - } - - IMarker marker = Markers.addMarker(file, message, severity, regex); - if (severity != IMarker.SEVERITY_INFO) - { - marker.setAttribute(Markers.QUICK_FIX_PATTERN, regex); - marker.setAttribute(Markers.QUICK_FIX_REPLACEMENT, version.toString()); - } - - return marker; - } - catch (Exception ex) - { - Activator.log(ex); - return null; - } - } - - private void addRedundancyMarker(IFile file, IElement pluginChild, IElement featureChild) - { - try - { - String name = pluginChild.getName(); - String cause = featureChild != null ? "feature '" + featureChild.getName() + "' already includes it" - : " because it occurs more than once in this feature"; - String msg = "Plug-in reference '" + name + "' is redundant because " + cause; - - IMarker marker = addFeatureChildMarker(file, Markers.COMPONENT_VERSION_PROBLEM, "plugin", name, msg, false, true, - null, IMarker.SEVERITY_WARNING); - marker.setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, - IVersionBuilderArguments.IGNORE_CONTENT_REDUNDANCY_ARGUMENT); - } - catch (Exception ex) - { - Activator.log(ex); - } - } - - private void addIncludeMarker(IFile file, IElement element, int severity, Version version, - ComponentReferenceType componentReferenceType) - { - try - { - String label; - String tag; - if (element.getType() == IElement.Type.PLUGIN) - { - label = "Plug-in"; - tag = "plugin"; - } - else - { - label = "Feature"; - tag = "includes"; - } - - String name = element.getName(); - - if (componentReferenceType == ComponentReferenceType.REMOVED) - { - String msg = label + " reference '" + name + "' has been removed"; - IMarker marker = Markers.addMarker(file, msg, severity); - marker.setAttribute(Markers.PROBLEM_TYPE, Markers.COMPONENT_VERSION_PROBLEM); - marker.setAttribute(Markers.QUICK_FIX_REFERENCE, name); - } - else - { - String msg; - Version replacementVersion = null; - switch (componentReferenceType) - { - case UNRESOLVED: - { - if (version == null) - { - msg = label + " reference '" + name + "' cannot be resolved "; - } - else - { - msg = label + " reference '" + name + "' resolves to the different version " + version; - replacementVersion = version; - } - break; - } - case ADDED: - { - msg = label + " reference '" + name + "' has been added with " + element.getResolvedVersion(); - break; - } - case MAJOR_CHANGED: - case MINOR_CHANGED: - case MICRO_CHANGED: - { - msg = label + " reference '" + name + "' has been changed from " + element.getVersion() + " to " + version; - break; - } - default: - { - throw new IllegalStateException("This should be unreachable code"); - } - } - - IMarker marker = addFeatureChildMarker(file, Markers.COMPONENT_VERSION_PROBLEM, tag, name, msg, - element.isLicenseFeature(), componentReferenceType == ComponentReferenceType.ADDED, replacementVersion, - severity); - if (severity == IMarker.SEVERITY_ERROR) - { - marker.setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, - IVersionBuilderArguments.IGNORE_CONTENT_CHANGES_ARGUMENT); - } - else - { - marker.setAttribute(Markers.QUICK_FIX_REFERENCE, name); - } - } - } - catch (Exception ex) - { - Activator.log(ex); - } - } - - private IMarker addFeatureChildMarker(IFile file, String problemType, String tag, String name, String msg, - boolean isLicense, boolean hasQuickFix, Version version, int severity) throws CoreException, IOException - { - String regex = isLicense ? "\\s+.*?license-feature-version\\s*=\\s*[\"']([^\"']*)[\"']" - : version != null ? "[ \\t\\x0B\\f]*<" + tag + "\\s+[^<]*id\\s*=\\s*[\"']" + name.replace(".", "\\.") - + "[\"'].*?version\\s*=\\s*[\"']([^\"']*)[\"'].*?/>([ \\t\\x0B\\f]*[\\n\\r])*" : "[ \\t\\x0B\\f]*<" + tag - + "\\s+[^<]*id\\s*=\\s*[\"'](" + name.replace(".", "\\.") + ")[\"'].*?/>([ \\t\\x0B\\f]*[\\n\\r])*"; - IMarker marker = Markers.addMarker(file, msg, severity, regex); - marker.setAttribute(Markers.PROBLEM_TYPE, problemType); - if (version != null) - { - marker.setAttribute(Markers.QUICK_FIX_PATTERN, regex); - marker.setAttribute(Markers.QUICK_FIX_REPLACEMENT, version.toString()); - marker.setAttribute(Markers.QUICK_FIX_ALTERNATIVE_REPLACEMENT, "0.0.0"); - } - else if (hasQuickFix) - { - marker.setAttribute(Markers.QUICK_FIX_PATTERN, regex); - } - - return marker; - } - - /** - * Order of the enumerations is important for determining the "biggest" change. - * @author Eike Stepper - */ - private static enum ComponentReferenceType - { - UNRESOLVED, UNCHANGED, MICRO_CHANGED, MINOR_CHANGED, ADDED, MAJOR_CHANGED, REMOVED - } - - private static class Problem - { - private IElement element; - - private int severity; - - private ComponentReferenceType componentReferenceType; - - private Version version; - - public Problem(IElement element, int severity, ComponentReferenceType componentReferenceType, Version version) - { - this.element = element; - this.severity = severity; - this.componentReferenceType = componentReferenceType; - this.version = version; - } - - public IElement getElement() - { - return element; - } - - public int getSeverity() - { - return severity; - } - - public ComponentReferenceType getComponentReferenceType() - { - return componentReferenceType; - } - - public Version getVersion() - { - return version; - } - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/VersionBuilderArguments.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/VersionBuilderArguments.java deleted file mode 100644 index 95588ddf11..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/VersionBuilderArguments.java +++ /dev/null @@ -1,252 +0,0 @@ -/* - * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.internal.version; - -import org.eclipse.emf.cdo.releng.version.VersionUtil; - -import org.eclipse.core.resources.ICommand; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IProjectDescription; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.NullProgressMonitor; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * @author Eike Stepper - */ -public class VersionBuilderArguments extends HashMap<String, String> implements IVersionBuilderArguments -{ - private static final long serialVersionUID = 1L; - - public VersionBuilderArguments() - { - } - - public VersionBuilderArguments(int initialCapacity, float loadFactor) - { - super(initialCapacity, loadFactor); - } - - public VersionBuilderArguments(int initialCapacity) - { - super(initialCapacity); - } - - public VersionBuilderArguments(Map<? extends String, ? extends String> m) - { - super(m); - } - - public VersionBuilderArguments(IProject project) - { - this(getArgumentsFromProject(project)); - } - - public String getReleasePath() - { - return get(IVersionBuilderArguments.RELEASE_PATH_ARGUMENT); - } - - public void setReleasePath(String value) - { - setString(IVersionBuilderArguments.RELEASE_PATH_ARGUMENT, value); - } - - public String getValidatorClassName() - { - return get(IVersionBuilderArguments.VALIDATOR_CLASS_ARGUMENT); - } - - public void setValidatorClassName(String value) - { - setString(IVersionBuilderArguments.VALIDATOR_CLASS_ARGUMENT, value); - } - - public boolean isIgnoreMalformedVersions() - { - return "true".equals(get(IVersionBuilderArguments.IGNORE_MALFORMED_VERSIONS_ARGUMENT)); - } - - public void setIgnoreMalformedVersions(boolean value) - { - setBoolean(IVersionBuilderArguments.IGNORE_MALFORMED_VERSIONS_ARGUMENT, value); - } - - public boolean isIgnoreFeatureNature() - { - return "true".equals(get(IVersionBuilderArguments.IGNORE_FEATURE_NATURE_ARGUMENT)); - } - - public void setIgnoreFeatureNature(boolean value) - { - setBoolean(IVersionBuilderArguments.IGNORE_FEATURE_NATURE_ARGUMENT, value); - } - - public boolean isIgnoreSchemaBuilder() - { - return "true".equals(get(IVersionBuilderArguments.IGNORE_SCHEMA_BUILDER_ARGUMENT)); - } - - public void setIgnoreSchemaBuilder(boolean value) - { - setBoolean(IVersionBuilderArguments.IGNORE_SCHEMA_BUILDER_ARGUMENT, value); - } - - public boolean isIgnoreDebugOptions() - { - return "true".equals(get(IVersionBuilderArguments.IGNORE_DEBUG_OPTIONS_ARGUMENT)); - } - - public void setIgnoreDebugOptions(boolean value) - { - setBoolean(IVersionBuilderArguments.IGNORE_DEBUG_OPTIONS_ARGUMENT, value); - } - - public boolean isIgnoreMissingDependencyRanges() - { - return "true".equals(get(IVersionBuilderArguments.IGNORE_DEPENDENCY_RANGES_ARGUMENT)); - } - - public void setIgnoreMissingDependencyRanges(boolean value) - { - setBoolean(IVersionBuilderArguments.IGNORE_DEPENDENCY_RANGES_ARGUMENT, value); - } - - public boolean isIgnoreMissingExportVersions() - { - return "true".equals(get(IVersionBuilderArguments.IGNORE_EXPORT_VERSIONS_ARGUMENT)); - } - - public void setIgnoreMissingExportVersions(boolean value) - { - setBoolean(IVersionBuilderArguments.IGNORE_EXPORT_VERSIONS_ARGUMENT, value); - } - - public boolean isIgnoreFeatureContentRedundancy() - { - return "true".equals(get(IVersionBuilderArguments.IGNORE_CONTENT_REDUNDANCY_ARGUMENT)); - } - - public void setIgnoreFeatureContentRedundancy(boolean value) - { - setBoolean(IVersionBuilderArguments.IGNORE_CONTENT_REDUNDANCY_ARGUMENT, value); - } - - public boolean isIgnoreFeatureContentChanges() - { - return "true".equals(get(IVersionBuilderArguments.IGNORE_CONTENT_CHANGES_ARGUMENT)); - } - - public void setIgnoreFeatureContentChanges(boolean value) - { - setBoolean(IVersionBuilderArguments.IGNORE_CONTENT_CHANGES_ARGUMENT, value); - } - - public void applyTo(IProject project) throws CoreException - { - IProjectDescription description = project.getDescription(); - - List<String> ids = getOtherNatures(description); - ids.add(VersionNature.NATURE_ID); - description.setNatureIds(ids.toArray(new String[ids.size()])); - - List<ICommand> commands = getOtherBuildCommands(description); - commands.add(createBuildCommand(description)); - description.setBuildSpec(commands.toArray(new ICommand[commands.size()])); - - project.setDescription(description, new NullProgressMonitor()); - } - - private ICommand createBuildCommand(IProjectDescription description) - { - ICommand command = description.newCommand(); - command.setBuilderName(VersionUtil.BUILDER_ID); - command.setArguments(this); - return command; - } - - private void setString(String key, String value) - { - if (value != null) - { - put(key, value); - } - else - { - remove(key); - } - } - - private void setBoolean(String key, boolean value) - { - if (value) - { - put(key, Boolean.toString(true)); - } - else - { - remove(key); - } - } - - public static List<String> getOtherNatures(IProjectDescription description) - { - String[] natureIds = description.getNatureIds(); - List<String> ids = new ArrayList<String>(Arrays.asList(natureIds)); - ids.remove(VersionNature.NATURE_ID); - return ids; - } - - private static List<ICommand> getOtherBuildCommands(IProjectDescription description) - { - ICommand[] buildSpec = description.getBuildSpec(); - - List<ICommand> commands = new ArrayList<ICommand>(Arrays.asList(buildSpec)); - for (Iterator<ICommand> it = commands.iterator(); it.hasNext();) - { - ICommand command = it.next(); - if (VersionUtil.BUILDER_ID.equals(command.getBuilderName())) - { - it.remove(); - break; - } - } - - return commands; - } - - private static Map<String, String> getArgumentsFromProject(IProject project) - { - try - { - IProjectDescription description = project.getDescription(); - for (ICommand command : description.getBuildSpec()) - { - if (VersionUtil.BUILDER_ID.equals(command.getBuilderName())) - { - return command.getArguments(); - } - } - } - catch (CoreException ex) - { - Activator.log(ex); - } - - return new HashMap<String, String>(); - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/VersionNature.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/VersionNature.java deleted file mode 100644 index ade85fd9f8..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/VersionNature.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.internal.version; - -import org.eclipse.emf.cdo.releng.version.Markers; -import org.eclipse.emf.cdo.releng.version.VersionUtil; - -import org.eclipse.core.resources.ICommand; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IProjectDescription; -import org.eclipse.core.resources.IProjectNature; -import org.eclipse.core.runtime.CoreException; - -/** - * @author Eike Stepper - */ -public class VersionNature implements IProjectNature -{ - public static final String NATURE_ID = "org.eclipse.emf.cdo.releng.version.VersionNature"; - - private IProject project; - - public VersionNature() - { - } - - public IProject getProject() - { - return project; - } - - public void setProject(IProject project) - { - this.project = project; - } - - public void configure() throws CoreException - { - IProjectDescription desc = project.getDescription(); - ICommand[] commands = desc.getBuildSpec(); - - for (int i = 0; i < commands.length; ++i) - { - if (commands[i].getBuilderName().equals(VersionUtil.BUILDER_ID)) - { - return; - } - } - - ICommand[] newCommands = new ICommand[commands.length + 1]; - System.arraycopy(commands, 0, newCommands, 0, commands.length); - ICommand command = desc.newCommand(); - command.setBuilderName(VersionUtil.BUILDER_ID); - newCommands[newCommands.length - 1] = command; - desc.setBuildSpec(newCommands); - project.setDescription(desc, null); - } - - public void deconfigure() throws CoreException - { - Markers.deleteAllMarkers(project); - - IProjectDescription description = getProject().getDescription(); - ICommand[] commands = description.getBuildSpec(); - for (int i = 0; i < commands.length; ++i) - { - if (commands[i].getBuilderName().equals(VersionUtil.BUILDER_ID)) - { - ICommand[] newCommands = new ICommand[commands.length - 1]; - System.arraycopy(commands, 0, newCommands, 0, i); - System.arraycopy(commands, i + 1, newCommands, i, commands.length - i - 1); - description.setBuildSpec(newCommands); - project.setDescription(description, null); - return; - } - } - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IBuildState.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IBuildState.java deleted file mode 100644 index 5a03c67d5f..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IBuildState.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.version; - -import org.eclipse.core.resources.IProject; - -import java.io.Serializable; -import java.util.Map; - -/** - * Provides access to those parts of a {@link IProject project}'s build state that {@link VersionValidator version validators} need to access. - * - * @author Eike Stepper - * @noextend This interface is not intended to be extended by clients. - * @noimplement This interface is not intended to be implemented by clients. - */ -public interface IBuildState -{ - public long getValidatorTimeStamp(); - - public void setValidatorTimeStamp(long validatorTimeStamp); - - public Serializable getValidatorState(); - - public void setValidatorState(Serializable validatorState); - - public void setChangedSinceRelease(boolean changedSinceRelease); - - public Map<String, String> getArguments(); - - public void setArguments(Map<String, String> arguments); -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IElement.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IElement.java deleted file mode 100644 index 5020750ae6..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IElement.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.version; - -import org.osgi.framework.Version; - -import java.util.List; -import java.util.Set; - -/** - * A light abstraction of a component, i.e. a plug-in or a feature. - * - * @author Eike Stepper - * @noextend This interface is not intended to be extended by clients. - * @noimplement This interface is not intended to be implemented by clients. - */ -public interface IElement -{ - public Type getType(); - - public String getTag(); - - public String getName(); - - public Version getVersion(); - - public Version getResolvedVersion(); - - public boolean isLicenseFeature(); - - public List<IElement> getChildren(); - - public Set<IElement> getAllChildren(IElementResolver resolver, IElementResolver otherResolver); - - public IElement getChild(IElementResolver resolver, IElementResolver otherResolver, IElement key); - - public IElement trimVersion(); - - public boolean isVersionUnresolved(); - - /** - * Enumerates the possible types of a {@link IElement component}. - * - * @author Eike Stepper - */ - public static enum Type - { - FEATURE - { - @Override - public String getTag() - { - return "includes"; - } - - @Override - public String toString() - { - return "Feature"; - } - }, - - PLUGIN - { - @Override - public String getTag() - { - return "plugin"; - } - - @Override - public String toString() - { - return "Plug-in"; - } - }; - - public abstract String getTag(); - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IElementResolver.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IElementResolver.java deleted file mode 100644 index 5e6be97308..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IElementResolver.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.version; - -/** - * Resolves {@link IElement components} by a given component key. - * - * @author Eike Stepper - * @noextend This interface is not intended to be extended by clients. - * @noimplement This interface is not intended to be implemented by clients. - */ -public interface IElementResolver -{ - public IElement resolveElement(IElement key); -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IRelease.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IRelease.java deleted file mode 100644 index f050255ceb..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IRelease.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.version; - -import org.eclipse.core.resources.IFile; - -import java.util.Map; - -/** - * Represents the released state of a set of {@link IElement components}. - * - * @author Eike Stepper - * @noextend This interface is not intended to be extended by clients. - * @noimplement This interface is not intended to be implemented by clients. - */ -public interface IRelease extends IElementResolver -{ - public IFile getFile(); - - public byte[] getDigest(); - - public Map<IElement, IElement> getElements(); - - public int getSize(); -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IReleaseManager.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IReleaseManager.java deleted file mode 100644 index 37c92ef8f9..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IReleaseManager.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.version; - -import org.eclipse.emf.cdo.releng.internal.version.ReleaseManager; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IWorkspace; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.pde.core.IModel; - -import java.io.IOException; -import java.security.NoSuchAlgorithmException; -import java.util.Map; - -/** - * Manages the {@link IRelease releases} that are specified by the version managed {@link IElement components} in the {@link IWorkspace workspace}. - * - * @author Eike Stepper - * @noextend This interface is not intended to be extended by clients. - * @noimplement This interface is not intended to be implemented by clients. - */ -public interface IReleaseManager -{ - public static final IReleaseManager INSTANCE = new ReleaseManager(); - - public Map<IElement, IElement> createElements(String path, boolean resolve) throws CoreException, IOException, - NoSuchAlgorithmException; - - public IRelease getRelease(IFile file) throws CoreException; - - public IRelease createRelease(IFile file) throws CoreException, IOException, NoSuchAlgorithmException; - - public IElement createElement(IModel componentModel, boolean withFeatureContent, boolean resolve); - - public IModel getComponentModel(IElement element); -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/Markers.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/Markers.java deleted file mode 100644 index 2e58a38c29..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/Markers.java +++ /dev/null @@ -1,262 +0,0 @@ -/* - * Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.version; - -import org.eclipse.emf.cdo.releng.internal.version.Activator; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IMarker; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; - -import java.io.IOException; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * Provides static utility methods that may be helpful when dealing with {@link IMarker markers}. - * - * @author Eike Stepper - */ -public final class Markers -{ - public static final String MARKER_TYPE = "org.eclipse.emf.cdo.releng.version.VersionProblem"; - - public static final String PROBLEM_TYPE = "problemType"; - - public static final String DEVIATION_INFO = "deviation"; - - public static final String RELEASE_PATH_PROBLEM = "release.path"; - - public static final String MALFORMED_VERSION_PROBLEM = "malformed.version"; - - public static final String SCHEMA_BUILDER_PROBLEM = "schema.builder"; - - public static final String FEATURE_NATURE_PROBLEM = "feature.nature"; - - public static final String VERSION_NATURE_PROBLEM = "version.nature"; - - public static final String DEBUG_OPTION_PROBLEM = "debug.option"; - - public static final String DEPENDENCY_RANGE_PROBLEM = "dependency.range"; - - public static final String EXPORT_VERSION_PROBLEM = "export.version"; - - public static final String UNREFERENCED_ELEMENT_PROBLEM = "unreferenced.element"; - - public static final String COMPONENT_VERSION_PROBLEM = "component.version"; - - public static final String VALIDATOR_CLASS_PROBLEM = "validator.class"; - - public static final String RESOURCE_ATTRIBUTE = "<resource>"; - - public static final String QUICK_FIX_PATTERN = "quickFixPattern"; - - public static final String QUICK_FIX_REPLACEMENT = "quickFixReplacement"; - - public static final String QUICK_FIX_ALTERNATIVE_REPLACEMENT = "quickFixAlternativeReplacement"; - - public static final String QUICK_FIX_NATURE = "quickFixNature"; - - public static final String QUICK_FIX_PROJECT = "quickFixProject"; - - public static final String QUICK_FIX_REFERENCE = "quickFixReference"; - - public static final String QUICK_FIX_CONFIGURE_OPTION = "quickFixConfigureOption"; - - private static final Pattern NL_PATTERN = Pattern.compile("([\\n][\\r]?|[\\r][\\n]?)", Pattern.MULTILINE); - - private Markers() - { - } - - public static String getProblemType(IMarker marker) - { - return getAttribute(marker, PROBLEM_TYPE); - } - - public static String getQuickFixPattern(IMarker marker) - { - return getAttribute(marker, QUICK_FIX_PATTERN); - } - - public static String getQuickFixReplacement(IMarker marker) - { - return getAttribute(marker, QUICK_FIX_REPLACEMENT); - } - - public static String getQuickFixAlternativeReplacement(IMarker marker) - { - return getAttribute(marker, QUICK_FIX_ALTERNATIVE_REPLACEMENT); - } - - public static String getQuickFixNature(IMarker marker) - { - return getAttribute(marker, QUICK_FIX_NATURE); - } - - public static String getQuickFixProject(IMarker marker) - { - return getAttribute(marker, QUICK_FIX_PROJECT); - } - - public static String getQuickFixReference(IMarker marker) - { - return getAttribute(marker, QUICK_FIX_REFERENCE); - } - - public static String getQuickFixConfigureOption(IMarker marker) - { - return getAttribute(marker, QUICK_FIX_CONFIGURE_OPTION); - } - - public static String getAttribute(IMarker marker, String attributeName) - { - Object value = getAttributeValue(marker, attributeName); - return value == null ? null : value.toString(); - } - - public static Comparable<?> getAttributeValue(IMarker marker, String attributeName) - { - try - { - if (RESOURCE_ATTRIBUTE.equals(attributeName)) - { - return marker.getResource().getFullPath().toString(); - } - - return (Comparable<?>)marker.getAttribute(attributeName); - } - catch (CoreException ex) - { - Activator.log(ex); - return null; - } - } - - @SuppressWarnings({ "rawtypes", "unchecked" }) - public static int compareAttributes(String attributeName, IMarker m1, IMarker m2) - { - Comparable v1 = getAttributeValue(m1, attributeName); - Comparable v2 = getAttributeValue(m2, attributeName); - - if (v1 == null) - { - if (v2 == null) - { - return 0; - } - - return -1; - } - - if (v2 == null) - { - return 1; - } - - return v1.compareTo(v2); - } - - public static IMarker addMarker(IResource resource, String message) throws CoreException - { - return addMarker(resource, message, IMarker.SEVERITY_ERROR); - } - - public static IMarker addMarker(IResource resource, String message, int severity) throws CoreException - { - IMarker marker = resource.createMarker(MARKER_TYPE); - marker.setAttribute(IMarker.MESSAGE, message); - marker.setAttribute(IMarker.SEVERITY, severity); - return marker; - } - - public static IMarker addMarker(IResource resource, String message, int severity, int lineNumber) - throws CoreException - { - IMarker marker = resource.createMarker(MARKER_TYPE); - marker.setAttribute(IMarker.MESSAGE, message); - marker.setAttribute(IMarker.SEVERITY, severity); - if (lineNumber == -1) - { - lineNumber = 1; - } - - marker.setAttribute(IMarker.LINE_NUMBER, lineNumber); - return marker; - } - - public static IMarker addMarker(IFile file, String message, int severity, int lineNumber, int charStart, int charEnd) - throws CoreException - { - if (lineNumber < 1) - { - lineNumber = 1; - } - - IMarker marker = file.createMarker(MARKER_TYPE); - marker.setAttribute(IMarker.MESSAGE, message); - marker.setAttribute(IMarker.SEVERITY, severity); - marker.setAttribute(IMarker.LINE_NUMBER, lineNumber); - marker.setAttribute(IMarker.CHAR_START, charStart); - marker.setAttribute(IMarker.CHAR_END, charEnd); - return marker; - } - - public static IMarker addMarker(IFile file, String message, int severity, String regex) throws CoreException, - IOException - { - String string = VersionUtil.getContents(file); - - Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.DOTALL); - Matcher matcher = pattern.matcher(string); - - if (matcher.find()) - { - int startChar = matcher.start(1); - int endChar = matcher.end(1); - - matcher = NL_PATTERN.matcher(string); - int line = 1; - while (matcher.find()) - { - if (matcher.start(1) > startChar) - { - break; - } - - ++line; - } - - return addMarker(file, message, severity, line, startChar, endChar); - } - - return addMarker(file, message, severity); - } - - public static void deleteAllMarkers(IResource resource) throws CoreException - { - resource.deleteMarkers(MARKER_TYPE, false, IResource.DEPTH_INFINITE); - } - - public static void deleteAllMarkers(IResource resource, String problemType) throws CoreException - { - IMarker[] markers = resource.findMarkers(MARKER_TYPE, false, IResource.DEPTH_INFINITE); - for (IMarker marker : markers) - { - Object value = marker.getAttribute(PROBLEM_TYPE); - if (problemType.equals(value)) - { - marker.delete(); - } - } - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionUtil.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionUtil.java deleted file mode 100644 index d10cd097ef..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionUtil.java +++ /dev/null @@ -1,502 +0,0 @@ -/* - * Copyright (c) 2012, 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.version; - -import org.eclipse.emf.cdo.releng.internal.version.Activator; -import org.eclipse.emf.cdo.releng.internal.version.VersionBuilderArguments; - -import org.eclipse.core.resources.IBuildConfiguration; -import org.eclipse.core.resources.ICommand; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IWorkspace; -import org.eclipse.core.resources.IWorkspaceRoot; -import org.eclipse.core.resources.IncrementalProjectBuilder; -import org.eclipse.core.resources.ProjectScope; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.core.runtime.preferences.IScopeContext; -import org.eclipse.core.runtime.preferences.InstanceScope; -import org.eclipse.pde.core.IModel; -import org.eclipse.pde.core.build.IBuild; -import org.eclipse.pde.core.build.IBuildModel; -import org.eclipse.pde.core.plugin.IPluginModelBase; -import org.eclipse.pde.core.plugin.PluginRegistry; - -import org.osgi.framework.Version; - -import java.io.BufferedReader; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.CharArrayWriter; -import java.io.Closeable; -import java.io.File; -import java.io.FilterInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.OutputStream; -import java.io.Reader; -import java.io.Serializable; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.List; - -/** - * Provides static utility methods for {@link Version versions}, I/O tasks and access to the {@link IElement component} model. - * - * @author Eike Stepper - */ -public final class VersionUtil -{ - public static final String BUILDER_ID = "org.eclipse.emf.cdo.releng.version.VersionBuilder"; - - public static final boolean DEBUG = Boolean.valueOf(System.getProperty("org.eclipse.emf.cdo.releng.version.debug", - "false")); - - private static final IWorkspace WORKSPACE = ResourcesPlugin.getWorkspace(); - - private static final byte[] BUFFER = new byte[8192]; - - private VersionUtil() - { - } - - public static boolean equals(Object o1, Object o2) - { - if (o1 == null) - { - return o2 == null; - } - - return o1.equals(o2); - } - - public static byte[] serialize(Serializable object) - { - try - { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - - ObjectOutputStream stream = new ObjectOutputStream(baos); - stream.writeObject(object); - stream.flush(); - - return baos.toByteArray(); - } - catch (Exception ex) - { - Activator.log(ex); - return null; - } - } - - public static Serializable deserialize(byte[] bytes) - { - try - { - ObjectInputStream stream = new ObjectInputStream(new ByteArrayInputStream(bytes)); - return (Serializable)stream.readObject(); - } - catch (Exception ex) - { - Activator.log(ex); - return null; - } - } - - public static Version normalize(Version version) - { - return new Version(version.getMajor(), version.getMinor(), version.getMicro()); - } - - public static IFile getFile(IPath path, String extension) - { - IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); - IFile file = root.getFile(path); - IPath newPath = file.getFullPath().removeFileExtension().addFileExtension(extension); - return root.getFile(newPath); - } - - public static String getContents(IFile file) throws CoreException, IOException - { - InputStream contents = null; - - try - { - contents = file.getContents(); - BufferedReader reader = new BufferedReader(new InputStreamReader(contents, file.getCharset())); - CharArrayWriter caw = new CharArrayWriter(); - - int c; - while ((c = reader.read()) != -1) - { - caw.write(c); - } - - return caw.toString(); - } - finally - { - close(contents); - } - } - - @SuppressWarnings("resource") - public static String getLineDelimiter(IFile file) throws IOException - { - InputStream inputStream = null; - try - { - inputStream = file.getContents(); - String encoding = file.getCharset(); - Reader reader = encoding == null ? new InputStreamReader(inputStream) : new InputStreamReader(inputStream, - encoding); - char[] text = new char[4048]; - char target = 0; - for (int count = reader.read(text); count > -1; count = reader.read(text)) - { - for (int i = 0; i < count; ++i) - { - char character = text[i]; - if (character == '\n') - { - if (target == '\n') - { - return "\n"; - } - else if (target == '\r') - { - return "\r\n"; - } - else - { - target = '\n'; - } - } - else if (character == '\r') - { - if (target == '\n') - { - return "\n\r"; - } - else if (target == '\r') - { - return "\r"; - } - else - { - target = '\r'; - } - } - } - } - } - catch (Exception exception) - { - // If we can't determine it by reading the file, - // look at the preferences instead. - } - finally - { - if (inputStream != null) - { - inputStream.close(); - } - } - - return Platform.getPreferencesService().getString(Platform.PI_RUNTIME, Platform.PREF_LINE_SEPARATOR, - System.getProperty(Platform.PREF_LINE_SEPARATOR), - new IScopeContext[] { new ProjectScope(file.getProject()), InstanceScope.INSTANCE }); - } - - public static synchronized byte[] getSHA1(IFile file) throws NoSuchAlgorithmException, CoreException, IOException - { - InputStream stream = null; - - try - { - final MessageDigest digest = MessageDigest.getInstance("SHA-1"); - stream = new FilterInputStream(file.getContents()) - { - @Override - public int read() throws IOException - { - for (;;) - { - int ch = super.read(); - switch (ch) - { - case -1: - return -1; - - case 10: - case 13: - continue; - } - - digest.update((byte)ch); - return ch; - } - } - - @Override - public int read(byte[] b, int off, int len) throws IOException - { - int read = super.read(b, off, len); - if (read == -1) - { - return -1; - } - - for (int i = off; i < off + read; i++) - { - byte c = b[i]; - if (c == 10 || c == 13) - { - if (i + 1 < off + read) - { - System.arraycopy(b, i + 1, b, i, read - i - 1); - --i; - } - - --read; - } - } - - digest.update(b, off, read); - return read; - } - }; - - synchronized (BUFFER) - { - while (stream.read(BUFFER) != -1) - { - // Do nothing - } - } - - return digest.digest(); - } - finally - { - close(stream); - } - } - - public static void copy(InputStream in, OutputStream out) throws IOException - { - synchronized (BUFFER) - { - int n; - while ((n = in.read(BUFFER)) != -1) - { - out.write(BUFFER, 0, n); - } - } - } - - public static void close(Closeable closeable) - { - if (closeable != null) - { - try - { - closeable.close(); - } - catch (Exception ex) - { - Activator.log(ex); - } - } - } - - public static int delete(File file) - { - if (file == null) - { - return 0; - } - - int deleted = 0; - if (file.isDirectory()) - { - for (File child : file.listFiles()) - { - deleted += delete(child); - } - } - - if (file.delete()) - { - return deleted + 1; - } - - file.deleteOnExit(); - return deleted; - } - - public static IModel getComponentModel(IProject project) - { - IModel componentModel = PluginRegistry.findModel(project); - if (componentModel == null) - { - componentModel = getFeatureModel(project); - if (componentModel == null) - { - throw new IllegalStateException("The project " + project.getName() + " is neither a plugin nor a feature"); - } - } - - return componentModel; - } - - @SuppressWarnings("restriction") - public static org.eclipse.pde.internal.core.ifeature.IFeatureModel getFeatureModel(IProject project) - { - org.eclipse.pde.internal.core.ifeature.IFeatureModel[] featureModels = org.eclipse.pde.internal.core.PDECore - .getDefault().getFeatureModelManager().getWorkspaceModels(); - - for (org.eclipse.pde.internal.core.ifeature.IFeatureModel featureModel : featureModels) - { - if (featureModel.getUnderlyingResource().getProject() == project) - { - return featureModel; - } - } - - return null; - } - - @SuppressWarnings("restriction") - public static Version getComponentVersion(IModel componentModel) - { - if (componentModel instanceof IPluginModelBase) - { - IPluginModelBase pluginModel = (IPluginModelBase)componentModel; - return normalize(pluginModel.getBundleDescription().getVersion()); - } - - Version version = new Version(((org.eclipse.pde.internal.core.ifeature.IFeatureModel)componentModel).getFeature() - .getVersion()); - return normalize(version); - } - - public static void cleanReleaseProjects(final String releasePath) - { - new Job("Cleaning workspace") - { - @Override - protected IStatus run(IProgressMonitor monitor) - { - try - { - IBuildConfiguration[] buildConfigs = getBuildConfigs(releasePath); - WORKSPACE.build(buildConfigs, IncrementalProjectBuilder.CLEAN_BUILD, true, monitor); - return Status.OK_STATUS; - } - catch (CoreException ex) - { - return ex.getStatus(); - } - } - }.schedule(); - } - - private static IBuildConfiguration[] getBuildConfigs(String releasePath) - { - List<IBuildConfiguration> buildConfigs = new ArrayList<IBuildConfiguration>(); - for (IProject project : WORKSPACE.getRoot().getProjects()) - { - if (project.isAccessible()) - { - try - { - ICommand[] commands = project.getDescription().getBuildSpec(); - for (ICommand command : commands) - { - if (BUILDER_ID.equals(command.getBuilderName())) - { - VersionBuilderArguments arguments = new VersionBuilderArguments(project); - String projectReleasePath = arguments.getReleasePath(); - if (releasePath.equals(projectReleasePath)) - { - IBuildConfiguration buildConfig = project.getActiveBuildConfig(); - buildConfigs.add(buildConfig); - } - - break; - } - } - } - catch (Exception ex) - { - Activator.log(ex); - } - } - } - - return buildConfigs.toArray(new IBuildConfiguration[buildConfigs.size()]); - } - - public static IBuild getBuild(IModel componentModel) throws CoreException - { - IBuildModel buildModel = getBuildModel(componentModel); - - IBuild build = buildModel.getBuild(); - if (build == null) - { - throw new IllegalStateException("Could not determine build model for " + getName(componentModel)); - } - - return build; - } - - @SuppressWarnings("restriction") - public static IBuildModel getBuildModel(IModel componentModel) throws CoreException - { - IProject project = componentModel.getUnderlyingResource().getProject(); - if (project != null) - { - IFile buildFile = org.eclipse.pde.internal.core.project.PDEProject.getBuildProperties(project); - if (buildFile.exists()) - { - IBuildModel buildModel = new org.eclipse.pde.internal.core.build.WorkspaceBuildModel(buildFile); - buildModel.load(); - return buildModel; - } - } - - throw new IllegalStateException("Could not determine build model for " + getName(componentModel)); - } - - @SuppressWarnings("restriction") - private static String getName(IModel componentModel) - { - if (componentModel instanceof IPluginModelBase) - { - IPluginModelBase pluginModel = (IPluginModelBase)componentModel; - return pluginModel.getBundleDescription().getSymbolicName(); - } - - return ((org.eclipse.pde.internal.core.ifeature.IFeatureModel)componentModel).getFeature().getId(); - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionValidator.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionValidator.java deleted file mode 100644 index eb601429a8..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionValidator.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.version; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResourceDelta; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.pde.core.IModel; - -/** - * The abstract base class that all version validator implementations must extend. - * - * @author Eike Stepper - */ -public abstract class VersionValidator -{ - public abstract String getVersion(); - - public abstract void updateBuildState(IBuildState buildState, IRelease release, IProject project, - IResourceDelta delta, IModel componentModel, IProgressMonitor monitor) throws Exception; - - public void abort(IBuildState buildState, IProject project, Exception exception, IProgressMonitor monitor) - throws Exception - { - buildState.setValidatorState(null); - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/package-info.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/package-info.java deleted file mode 100644 index 9aa892fb78..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/package-info.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ - -/** - * Types needed for extenders. - */ -package org.eclipse.emf.cdo.releng.version; - |