Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2015-01-27 14:26:35 +0000
committerEike Stepper2015-01-27 14:26:35 +0000
commit4dc12f638545505831adcc63166feee8edffceec (patch)
tree25124b35386f0acbb419544bddd6062b0272dd2e /plugins/org.eclipse.emf.cdo.releng.version
parent50b0ecc6c1f6065c443ee7365402df9688cca65b (diff)
downloadcdo-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')
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/.classpath7
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/.project33
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.core.resources.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.jdt.core.prefs401
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.jdt.ui.prefs119
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.mylyn.team.ui.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/.settings/org.eclipse.pde.prefs31
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/META-INF/MANIFEST.MF17
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/about.html28
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/about.ini15
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/about.mappings6
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/about.properties23
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/build.properties27
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/modeling32.pngbin2414 -> 0 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/plugin.properties11
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/plugin.xml56
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/prototypes/BuckyValidator.java142
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/prototypes/TestResourceChangeListener.java171
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/Activator.java308
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/BuildState.java194
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/DeprecationUtil.java26
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/Element.java260
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/IVersionBuilderArguments.java66
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/Release.java342
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/ReleaseManager.java315
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/VersionBuilder.java1659
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/VersionBuilderArguments.java252
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/internal/version/VersionNature.java86
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IBuildState.java40
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IElement.java88
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IElementResolver.java23
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IRelease.java33
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IReleaseManager.java45
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/Markers.java262
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionUtil.java502
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionValidator.java35
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/package-info.java16
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 (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). 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, &quot;Program&quot; 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 (&quot;Redistributor&quot;) 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
deleted file mode 100644
index 6b08de2ada..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.version/modeling32.png
+++ /dev/null
Binary files differ
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;
-

Back to the top