Bug 459732 - Bower IDE contribution

Bower IDE is added. This includes the following plug-ins:

Node.js Core (SemVer) API plug-in is added
Bower Core plug-in is added
Bower IDE plug-in is added
Bower IDE UI plug-in is added
Node.js Core (SemVer) Tests plug-in is added
Features are updated with new plug-ins

Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
Change-Id: I58623383c9f9ec57f56c27b1da3d320f6edb8f3e
Signed-off-by: vrubezhny <vrubezhny@exadel.com>
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/.classpath b/bundles/org.eclipse.wst.jsdt.bower.core/.classpath
new file mode 100644
index 0000000..32a9aa4
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/.classpath
@@ -0,0 +1,7 @@
+<?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/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/.project b/bundles/org.eclipse.wst.jsdt.bower.core/.project
new file mode 100644
index 0000000..ed8a542
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.wst.jsdt.bower.core</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..fb89267
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,410 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=warning
+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.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=error
+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=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=error
+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=enabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+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=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=error
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=error
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=error
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+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=ignore
+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=error
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+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=error
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
+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=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+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.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=52
+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=0
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=1
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=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=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=110
+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=true
+org.eclipse.jdt.core.formatter.indentation.size=8
+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_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=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_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_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_lambda_arrow=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=do not 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=110
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=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=false
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..03a084a
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_JSDT
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=com;java;javax;org;\#org.junit;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" 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">/**\n * Returns the ${bare_field_name}.\n * \n * @return The ${bare_field_name}\n */</template><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">/**\n * Sets the ${bare_field_name}.\n *\n * @param ${param} The ${bare_field_name} to set\n */</template><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">/**\n * The constructor.\n * \n * ${tags}\n */</template><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">/*******************************************************************************\n * Copyright (c) 2015.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     ${user} - initial API and implementation\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">/**\n * @author ${user}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><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">/**\n * {@inheritDoc}\n *\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\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">\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">\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">\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">\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\="false" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return this.${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=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=true
+sp_cleanup.correct_indentation=true
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=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_redundant_type_arguments=false
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=false
+sp_cleanup.remove_unnecessary_nls_tags=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_anonymous_class_creation=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=false
+sp_cleanup.use_parentheses_in_expressions=true
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_type_arguments=false
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..fdcba94
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,97 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=false
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 0000000..f29e940
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..52f7384
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+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.encodings=2
+compilers.p.build.java.compiler=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=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=2
+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=1
+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/bundles/org.eclipse.wst.jsdt.bower.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.jsdt.bower.core/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..6f5fe64
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.wst.jsdt.bower.core;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: %Bundle-Vendor
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-Localization: bundle
+Export-Package: org.eclipse.wst.jsdt.bower.core.api;version="1.0.0",
+ org.eclipse.wst.jsdt.bower.core.api.utils;version="1.0.0"
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.wst.jsdt.nodejs.core,
+ org.apache.httpcomponents.httpcore,
+ org.apache.httpcomponents.httpclient,
+ org.eclipse.jgit,
+ com.google.gson,
+ com.google.guava
+Bundle-Activator: org.eclipse.wst.jsdt.bower.core.internal.BowerCorePlugin
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/OSGI-INF/i18n/messages.properties b/bundles/org.eclipse.wst.jsdt.bower.core/OSGI-INF/i18n/messages.properties
new file mode 100644
index 0000000..79981dd
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/OSGI-INF/i18n/messages.properties
@@ -0,0 +1,11 @@
+#################################################################################
+## Copyright (c) 2014 Obeo 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:
+##     Obeo - initial API and implementation
+#################################################################################
+Downloading.Label=Downloading {0}...
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/about.html b/bundles/org.eclipse.wst.jsdt.bower.core/about.html
new file mode 100644
index 0000000..4602330
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 2, 2006</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>
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/build.properties b/bundles/org.eclipse.wst.jsdt.bower.core/build.properties
new file mode 100644
index 0000000..db70be9
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/build.properties
@@ -0,0 +1,23 @@
+#################################################################################
+## Copyright (c) 2014 Obeo 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:
+##     Obeo - initial API and implementation
+#################################################################################
+source.. = src/main/java/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               bundle.properties,\
+               OSGI-INF/
+javacProjectSettings = true
+additional.bundles = com.google.guava,\
+                     com.google.gson,\
+                     org.apache.httpcomponents.httpclient,\
+                     org.apache.httpcomponents.httpcore,\
+                     org.eclipse.jgit,\
+                     org.eclipse.wst.jsdt.nodejs.core
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/bundle.properties b/bundles/org.eclipse.wst.jsdt.bower.core/bundle.properties
new file mode 100644
index 0000000..bb46f5b
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/bundle.properties
@@ -0,0 +1,12 @@
+#################################################################################
+## Copyright (c) 2014 Obeo 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:
+##     Obeo - initial API and implementation
+#################################################################################
+Bundle-Name = JSDT Bower Core
+Bundle-Vendor = Eclipse Web Tools Platform
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/pom.xml b/bundles/org.eclipse.wst.jsdt.bower.core/pom.xml
new file mode 100644
index 0000000..3e1d561
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/pom.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright (c) 2012, 2014 Eclipse Foundation and others.
+  All rights reserved. This program and the accompanying materials
+  are made available under the terms of the Eclipse Distribution License v1.0
+  which accompanies this distribution, and is available at
+  http://www.eclipse.org/org/documents/edl-v10.php
+ 
+  Contributors:
+    Thanh Ha (Eclipse Foundation) - initial implementation
+    Mickael Istria (Red Hat Inc.) - 425796 intermediary pom for factorization
+-->
+
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.webtools.jsdt</groupId>
+    <artifactId>bundles</artifactId>
+    <version>3.6.0-SNAPSHOT</version>
+  </parent>
+
+  <groupId>org.eclipse.webtools.jsdt.bundles</groupId>
+  <artifactId>org.eclipse.wst.jsdt.bower.core</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/AbstractBowerCommand.java b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/AbstractBowerCommand.java
new file mode 100644
index 0000000..eda1e8f
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/AbstractBowerCommand.java
@@ -0,0 +1,317 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.core.api;
+
+import com.google.common.base.Optional;
+import com.google.common.io.Files;
+import com.google.gson.Gson;
+import com.google.gson.JsonSyntaxException;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.Charset;
+import java.util.List;
+
+import org.apache.http.HttpResponse;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.eclipse.jgit.lib.ProgressMonitor;
+import org.eclipse.wst.jsdt.bower.core.api.utils.IBowerConstants;
+import org.eclipse.wst.jsdt.bower.core.internal.BowerCorePlugin;
+import org.eclipse.wst.jsdt.nodejs.core.api.utils.ILogger;
+
+/**
+ * The bower command is used to perform a bower-related operation.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ * @param <BOWER_COMMAND>
+ *            The type of the subclass
+ */
+public abstract class AbstractBowerCommand<BOWER_COMMAND extends AbstractBowerCommand<?>> {
+	/**
+	 * The prefixes to consider to determines if a package id is the URL of a Git repository or just its name.
+	 */
+	private static String[] PREFIXES = new String[] {IBowerConstants.GIT_PREFIX, IBowerConstants.HTTP_PREFIX,
+		IBowerConstants.HTTPS_PREFIX, IBowerConstants.SSH_PREFIX };
+
+	/**
+	 * The URL of the bower server on which the request should be made.
+	 */
+	protected String bowerServerURL = IBowerConstants.DEFAULT_BOWER_SERVER_URL;
+
+	/**
+	 * The progress monitor.
+	 */
+	protected Optional<ProgressMonitor> monitor = Optional.absent();
+
+	/**
+	 * The logger.
+	 */
+	protected ILogger logger = BowerCorePlugin.getInstance().getLogger();
+
+	/**
+	 * The content of the bower.json file.
+	 */
+	protected Optional<BowerJson> bowerJson = Optional.absent();
+
+	/**
+	 * The directory in which the dependencies will be downloaded.
+	 */
+	protected Optional<File> outputDirectory = Optional.absent();
+
+	/**
+	 * Indicates if the given package id is the URL of a Git repository.
+	 *
+	 * @param packageId
+	 *            The package id
+	 * @return <code>true</code> if it is the URL of a Git repository, <code>false</code> otherwise.
+	 */
+	protected boolean isGitUrl(String packageId) {
+		for (String prefix : PREFIXES) {
+			if (packageId.startsWith(prefix)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * Returns the name of a package from its package id.
+	 *
+	 * @param packageId
+	 *            The package id
+	 * @return The package id itself if it is not the URL of a Git repository or the last segment of the
+	 *         package id minus the Git extension if it is the URL of a Git repository
+	 */
+	protected String getNameFromPackageId(String packageId) {
+		if (this.isGitUrl(packageId)) {
+			String name = packageId;
+			if (name.endsWith(IBowerConstants.GIT_EXTENSION)) {
+				name = name.substring(0, name.length() - IBowerConstants.GIT_EXTENSION.length());
+				if (name.contains(IBowerConstants.SEPARATOR)) {
+					name = name.substring(name.lastIndexOf(IBowerConstants.SEPARATOR
+							+ IBowerConstants.SEPARATOR.length()));
+				}
+			}
+		}
+		return packageId;
+	}
+
+	/**
+	 * Returns the Git URL from a package id.
+	 *
+	 * @param packageId
+	 *            The package id
+	 * @return The package id itself if it is a Git URL or the Git URL from the Bower package descriptor
+	 *         retrieved from a Bower registry.
+	 */
+	protected Optional<String> getGitUrlFromPackageId(String packageId) {
+		if (this.isGitUrl(packageId)) {
+			return Optional.of(packageId);
+		}
+
+		Optional<String> result = Optional.absent();
+
+		Optional<BowerPackageDescriptor> descriptor = this.getDescriptor(packageId);
+		if (descriptor.isPresent()) {
+			result = Optional.of(descriptor.get().getUrl());
+		}
+
+		return result;
+	}
+
+	/**
+	 * Returns the folder where the bower components should be downloaded for the given project.
+	 *
+	 * @param bowerProject
+	 *            The folder containing the file bower.json.
+	 * @return The older where the bower components should be downloaded
+	 */
+	protected File getBowerComponentsFolder(File bowerProject) {
+		File bowerComponents = new File(bowerProject, IBowerConstants.BOWER_COMPONENTS);
+
+		File bowerrc = new File(bowerProject, IBowerConstants.BOWER_RC);
+		if (bowerrc.exists()) {
+			BufferedReader bufferedReader = null;
+			try {
+				bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(bowerrc)));
+
+				BowerRc bowerRcContent = new Gson().fromJson(bufferedReader, BowerRc.class);
+				if (bowerRcContent.getDirectory() != null && bowerRcContent.getDirectory().length() > 0) {
+					bowerComponents = new File(bowerProject, bowerRcContent.getDirectory());
+				}
+			} catch (IOException e) {
+				logger.log(IBowerConstants.BOWER_CORE_BUNDLE_ID, ILogger.ERROR, e);
+			} finally {
+				if (bufferedReader != null) {
+					try {
+						bufferedReader.close();
+					} catch (IOException e) {
+						logger.log(IBowerConstants.BOWER_CORE_BUNDLE_ID, ILogger.ERROR, e);
+					}
+				}
+			}
+		}
+
+		return bowerComponents;
+	}
+
+	/**
+	 * Returns the bower package descriptor from a bower registry.
+	 *
+	 * @param packageId
+	 *            The package id
+	 * @return The bower packaged descriptor for the package with the given id
+	 */
+	protected Optional<BowerPackageDescriptor> getDescriptor(String packageId) {
+		HttpClient client = new DefaultHttpClient();
+		HttpGet request = new HttpGet(this.bowerServerURL + IBowerConstants.PACKAGES_PATH + packageId);
+
+		try {
+			HttpResponse response = client.execute(request);
+			InputStreamReader inputStreamReader = new InputStreamReader(response.getEntity().getContent());
+
+			BufferedReader reader = null;
+			try {
+				reader = new BufferedReader(inputStreamReader);
+
+				Gson gson = new Gson();
+				BowerPackageDescriptor bowerPackageDescriptor = gson.fromJson(reader,
+						BowerPackageDescriptor.class);
+				return Optional.of(bowerPackageDescriptor);
+			} finally {
+				if (reader != null) {
+					try {
+						reader.close();
+					} catch (Exception e) {
+						logger.log(IBowerConstants.BOWER_CORE_BUNDLE_ID, ILogger.ERROR, e);
+					}
+				}
+			}
+		} catch (IOException e) {
+			logger.log(IBowerConstants.BOWER_CORE_BUNDLE_ID, ILogger.ERROR, e);
+		}
+		return Optional.absent();
+	}
+
+	/**
+	 * Executes the command.
+	 */
+	public abstract void call();
+
+	/**
+	 * Sets the monitor.
+	 *
+	 * @param monitor
+	 *            The monitor to set
+	 * @return The current object
+	 */
+	@SuppressWarnings("unchecked")
+	public BOWER_COMMAND setMonitor(ProgressMonitor monitor) {
+		this.monitor = Optional.fromNullable(monitor);
+		return (BOWER_COMMAND)this;
+	}
+
+	/**
+	 * Sets URL of the bowser server.
+	 *
+	 * @param bowerServerURL
+	 *            The URL of the bowser server
+	 * @return The current object
+	 */
+	@SuppressWarnings("unchecked")
+	public BOWER_COMMAND setBowerServerURL(String bowerServerURL) {
+		if (bowerServerURL != null) {
+			this.bowerServerURL = bowerServerURL;
+			if (this.bowerServerURL.endsWith(IBowerConstants.SEPARATOR)) {
+				this.bowerServerURL = this.bowerServerURL.substring(0, this.bowerServerURL.length() - 1
+						- IBowerConstants.SEPARATOR.length());
+			}
+		}
+		return (BOWER_COMMAND)this;
+	}
+
+	/**
+	 * Sets the bowerJson.
+	 *
+	 * @param bowerJson
+	 *            The bowerJson to set
+	 * @return The current object
+	 */
+	@SuppressWarnings("unchecked")
+	public BOWER_COMMAND setBowerJson(BowerJson bowerJson) {
+		this.bowerJson = Optional.fromNullable(bowerJson);
+		return (BOWER_COMMAND)this;
+	}
+
+	/**
+	 * Sets the outputDirectory, where the dependencies will be downloaded.
+	 *
+	 * @param outputDirectory
+	 *            The outputDirectory to set
+	 * @return The current object
+	 */
+	@SuppressWarnings("unchecked")
+	public BOWER_COMMAND setOutputDirectory(File outputDirectory) {
+		this.outputDirectory = Optional.fromNullable(outputDirectory);
+		return (BOWER_COMMAND)this;
+	}
+
+	/**
+	 * Delete the given file. If it is a directory, delete its content recursively.
+	 *
+	 * @param file
+	 *            The file
+	 * @throws IOException
+	 *             In case of error during the deletion.
+	 */
+	protected void delete(File file) throws IOException {
+		if (file.isDirectory()) {
+			for (File c : file.listFiles()) {
+				delete(c);
+			}
+		}
+		if (!file.delete()) {
+			throw new FileNotFoundException(file.getAbsolutePath());
+		}
+	}
+
+	/**
+	 * Returns the content of the file bower.json.
+	 *
+	 * @param bowerJsonFile
+	 *            The file bower.json
+	 * @return The content of the file
+	 */
+	protected Optional<BowerJson> getBowerJson(File bowerJsonFile) {
+		if (bowerJsonFile.exists()) {
+			try {
+				List<String> lines = Files.readLines(bowerJsonFile, Charset.forName("UTF-8")); //$NON-NLS-1$
+
+				StringBuilder content = new StringBuilder();
+				for (String line : lines) {
+					content.append(line);
+				}
+				return Optional.fromNullable(new Gson().fromJson(content.toString(), BowerJson.class));
+			} catch (JsonSyntaxException e) {
+				logger.log(IBowerConstants.BOWER_CORE_BUNDLE_ID, ILogger.ERROR, e);
+			} catch (IOException e) {
+				logger.log(IBowerConstants.BOWER_CORE_BUNDLE_ID, ILogger.ERROR, e);
+			}
+		}
+		return Optional.absent();
+	}
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/Bower.java b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/Bower.java
new file mode 100644
index 0000000..390ba39
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/Bower.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.core.api;
+
+/**
+ * This class will be used to configure and run bower-related operations. This is the main entry point to be
+ * used by clients.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class Bower {
+	/**
+	 * Creates an install command used to download all the dependencies of a bower project.
+	 *
+	 * @return An {@link InstallCommand}.
+	 */
+	public static InstallCommand install() {
+		return new InstallCommand();
+	}
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/BowerJson.java b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/BowerJson.java
new file mode 100644
index 0000000..15147f5
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/BowerJson.java
@@ -0,0 +1,291 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.core.api;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The bower.json file content. See <a href="https://github.com/bower/bower.json-spec">the bower.json
+ * specification for more details</a>.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class BowerJson {
+	/**
+	 * The name.
+	 */
+	private String name = ""; //$NON-NLS-1$
+
+	/**
+	 * The description.
+	 */
+	private String description = ""; //$NON-NLS-1$
+
+	/**
+	 * The version.
+	 */
+	private String version = ""; //$NON-NLS-1$
+
+	/**
+	 * The main files.
+	 */
+	private List<String> main = new ArrayList<String>();
+
+	/**
+	 * The licenses
+	 */
+	private List<String> licenses = new ArrayList<String>();
+
+	/**
+	 * The files to ignore.
+	 */
+	private List<String> ignore = new ArrayList<String>();
+
+	/**
+	 * The authors.
+	 */
+	private List<String> authors = new ArrayList<String>();
+
+	/**
+	 * The homepage.
+	 */
+	private String homepage = ""; //$NON-NLS-1$
+
+	/**
+	 * The dependencies.
+	 */
+	private Map<String, String> dependencies = new HashMap<String, String>();
+
+	/**
+	 * The development dependencies.
+	 */
+	private Map<String, String> devDependencies = new HashMap<String, String>();
+
+	/**
+	 * Indicates if the package is private.
+	 */
+	@SerializedName("private")
+	private boolean isPrivate;
+
+	/**
+	 * Returns the name.
+	 *
+	 * @return the name
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * Sets the name
+	 *
+	 * @param name
+	 *            the name to set
+	 */
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	/**
+	 * Returns the description.
+	 *
+	 * @return The description
+	 */
+	public String getDescription() {
+		return this.description;
+	}
+
+	/**
+	 * Sets the description.
+	 *
+	 * @param description
+	 *            The description to set
+	 */
+	public void setDescription(String description) {
+		this.description = description;
+	}
+
+	/**
+	 * Returns the version
+	 *
+	 * @return the version
+	 */
+	public String getVersion() {
+		return version;
+	}
+
+	/**
+	 * Sets the version
+	 *
+	 * @param version
+	 *            the version to set
+	 */
+	public void setVersion(String version) {
+		this.version = version;
+	}
+
+	/**
+	 * Returns the main.
+	 *
+	 * @return The main
+	 */
+	public List<String> getMain() {
+		return this.main;
+	}
+
+	/**
+	 * Sets the main.
+	 *
+	 * @param main
+	 *            The main to set
+	 */
+	public void setMain(List<String> main) {
+		this.main = main;
+	}
+
+	/**
+	 * Returns the licenses.
+	 *
+	 * @return The licenses
+	 */
+	public List<String> getLicenses() {
+		return this.licenses;
+	}
+
+	/**
+	 * Sets the licenses.
+	 *
+	 * @param licenses
+	 *            The licenses to set
+	 */
+	public void setLicenses(List<String> licenses) {
+		this.licenses = licenses;
+	}
+
+	/**
+	 * Returns the ignore.
+	 *
+	 * @return The ignore
+	 */
+	public List<String> getIgnore() {
+		return this.ignore;
+	}
+
+	/**
+	 * Sets the ignore.
+	 *
+	 * @param ignore
+	 *            The ignore to set
+	 */
+	public void setIgnore(List<String> ignore) {
+		this.ignore = ignore;
+	}
+
+	/**
+	 * Returns the authors.
+	 *
+	 * @return The authors
+	 */
+	public List<String> getAuthors() {
+		return this.authors;
+	}
+
+	/**
+	 * Sets the authors.
+	 *
+	 * @param authors
+	 *            The authors to set
+	 */
+	public void setAuthors(List<String> authors) {
+		this.authors = authors;
+	}
+
+	/**
+	 * Returns the homepage.
+	 *
+	 * @return The homepage
+	 */
+	public String getHomepage() {
+		return this.homepage;
+	}
+
+	/**
+	 * Sets the homepage.
+	 *
+	 * @param homepage
+	 *            The homepage to set
+	 */
+	public void setHomepage(String homepage) {
+		this.homepage = homepage;
+	}
+
+	/**
+	 * Returns the dependencies.
+	 *
+	 * @return the dependencies
+	 */
+	public Map<String, String> getDependencies() {
+		return dependencies;
+	}
+
+	/**
+	 * The dependencies to set.
+	 *
+	 * @param dependencies
+	 *            the dependencies to set
+	 */
+	public void setDependencies(Map<String, String> dependencies) {
+		this.dependencies = dependencies;
+	}
+
+	/**
+	 * Returns the devDependencies.
+	 *
+	 * @return the devDependencies
+	 */
+	public Map<String, String> getDevDependencies() {
+		return devDependencies;
+	}
+
+	/**
+	 * The devDependencies to set.
+	 *
+	 * @param devDependencies
+	 *            the devDependencies to set
+	 */
+	public void setDevDependencies(Map<String, String> devDependencies) {
+		this.devDependencies = devDependencies;
+	}
+
+	/**
+	 * Returns the isPrivate.
+	 *
+	 * @return The isPrivate
+	 */
+	public boolean isPrivate() {
+		return this.isPrivate;
+	}
+
+	/**
+	 * Sets the isPrivate.
+	 *
+	 * @param isPrivate
+	 *            The isPrivate to set
+	 */
+	public void setPrivate(boolean isPrivate) {
+		this.isPrivate = isPrivate;
+	}
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/BowerPackageDescriptor.java b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/BowerPackageDescriptor.java
new file mode 100644
index 0000000..04f061f
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/BowerPackageDescriptor.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo.
+ * 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.core.api;
+
+/**
+ * This descriptor only contains the name of a bower package and its repository URL.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class BowerPackageDescriptor {
+	/**
+	 * The name of the package.
+	 */
+	private String name;
+
+	/**
+	 * The URL of the package.
+	 */
+	private String url;
+
+	/**
+	 * Sets the name.
+	 *
+	 * @param name
+	 *            The name to set
+	 */
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	/**
+	 * Returns the name.
+	 *
+	 * @return The name
+	 */
+	public String getName() {
+		return this.name;
+	}
+
+	/**
+	 * Sets the url.
+	 *
+	 * @param url
+	 *            The url to set
+	 */
+	public void setUrl(String url) {
+		this.url = url;
+	}
+
+	/**
+	 * Returns the URL.
+	 *
+	 * @return The url
+	 */
+	public String getUrl() {
+		return this.url;
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/BowerRc.java b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/BowerRc.java
new file mode 100644
index 0000000..0409793
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/BowerRc.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.core.api;
+
+/**
+ * This class will be used to hold the content of the file ".bowerrc". This file is used to store preferences
+ * for bower.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class BowerRc {
+	/**
+	 * The directory where the bower dependencies will be stored.
+	 */
+	private String directory = ""; //$NON-NLS-1$
+
+	/**
+	 * Returns the directory.
+	 *
+	 * @return The directory
+	 */
+	public String getDirectory() {
+		return this.directory;
+	}
+
+	/**
+	 * Sets the directory.
+	 *
+	 * @param directory
+	 *            The directory to set
+	 */
+	public void setDirectory(String directory) {
+		this.directory = directory;
+	}
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/BowerReaders.java b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/BowerReaders.java
new file mode 100644
index 0000000..2714b57
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/BowerReaders.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.core.api;
+
+import com.google.gson.Gson;
+import com.google.gson.JsonIOException;
+import com.google.gson.JsonSyntaxException;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+import org.eclipse.wst.jsdt.bower.core.api.utils.IBowerConstants;
+import org.eclipse.wst.jsdt.nodejs.core.api.utils.ILogger;
+
+/**
+ * Utility class used to read the content of the bower files.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class BowerReaders {
+	/**
+	 * Returns the content of bower.json from the given input stream.
+	 *
+	 * @param inputStream
+	 *            The input stream
+	 * @param logger
+	 *            The logger
+	 * @return The content of bower.json
+	 */
+	public static final BowerJson getBowerJson(InputStream inputStream, ILogger logger) {
+		BowerJson bowerJson = null;
+		BufferedReader bowerJsonBufferedReader = null;
+
+		try {
+			bowerJsonBufferedReader = new BufferedReader(new InputStreamReader(inputStream));
+			bowerJson = new Gson().fromJson(bowerJsonBufferedReader, BowerJson.class);
+		} catch (JsonSyntaxException e) {
+			logger.log(IBowerConstants.BOWER_CORE_BUNDLE_ID, ILogger.ERROR, e);
+		} catch (JsonIOException e) {
+			logger.log(IBowerConstants.BOWER_CORE_BUNDLE_ID, ILogger.ERROR, e);
+		} finally {
+			if (bowerJsonBufferedReader != null) {
+				try {
+					bowerJsonBufferedReader.close();
+				} catch (IOException e) {
+					logger.log(IBowerConstants.BOWER_CORE_BUNDLE_ID, ILogger.ERROR, e);
+				}
+			}
+		}
+
+		return bowerJson;
+	}
+
+	/**
+	 * Returns the content of .bowerrc from the given input stream.
+	 *
+	 * @param inputStream
+	 *            The input stream
+	 * @param logger
+	 *            The logger
+	 * @return The content of .bowerrc
+	 */
+	public static final BowerRc getBowerRc(InputStream inputStream, ILogger logger) {
+		BowerRc bowerRc = null;
+		BufferedReader bowerRcBufferedReader = null;
+
+		try {
+			bowerRcBufferedReader = new BufferedReader(new InputStreamReader(inputStream));
+			bowerRc = new Gson().fromJson(bowerRcBufferedReader, BowerRc.class);
+		} catch (JsonSyntaxException e) {
+			logger.log(IBowerConstants.BOWER_CORE_BUNDLE_ID, ILogger.ERROR, e);
+		} catch (JsonIOException e) {
+			logger.log(IBowerConstants.BOWER_CORE_BUNDLE_ID, ILogger.ERROR, e);
+		} finally {
+			if (bowerRcBufferedReader != null) {
+				try {
+					bowerRcBufferedReader.close();
+				} catch (IOException e) {
+					logger.log(IBowerConstants.BOWER_CORE_BUNDLE_ID, ILogger.ERROR, e);
+				}
+			}
+		}
+
+		return bowerRc;
+	}
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/InstallCommand.java b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/InstallCommand.java
new file mode 100644
index 0000000..d0171b4
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/InstallCommand.java
@@ -0,0 +1,180 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.core.api;
+
+import com.google.common.base.Optional;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.api.errors.GitAPIException;
+import org.eclipse.jgit.lib.Ref;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
+import org.eclipse.wst.jsdt.bower.core.api.utils.IBowerConstants;
+import org.eclipse.wst.jsdt.bower.core.internal.utils.I18n;
+import org.eclipse.wst.jsdt.bower.core.internal.utils.I18nKeys;
+import org.eclipse.wst.jsdt.nodejs.core.api.semver.Range;
+import org.eclipse.wst.jsdt.nodejs.core.api.semver.Version;
+import org.eclipse.wst.jsdt.nodejs.core.api.utils.ILogger;
+
+/**
+ * This command let you install recursively all the packages described in the bower.json description of the
+ * dependencies of the project. You can specify where you want the dependencies to be downloaded.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class InstallCommand extends AbstractBowerCommand<InstallCommand> {
+	/**
+	 * Install all the dependencies detailled in the bower.json file into the given location.
+	 */
+	@Override
+	public void call() {
+		if (this.bowerJson.isPresent()) {
+			Map<String, String> dependenciesToDownload = new HashMap<String, String>();
+			dependenciesToDownload.putAll(this.bowerJson.get().getDependencies());
+			dependenciesToDownload.putAll(this.bowerJson.get().getDevDependencies());
+
+			Map<String, String> dependencies = new HashMap<String, String>();
+
+			Set<Entry<String, String>> entrySet = dependenciesToDownload.entrySet();
+			for (Entry<String, String> entry : entrySet) {
+				String packageId = entry.getKey();
+				String rangeExpression = entry.getValue();
+
+				Map<String, String> additionalDependencies = this.download(packageId, rangeExpression);
+				dependencies.putAll(additionalDependencies);
+			}
+
+			// Download recursively the additional dependencies
+			this.downloadAdditionalDependencies(dependencies);
+		}
+	}
+
+	/**
+	 * Download recursively the given dependencies.
+	 *
+	 * @param dependencies
+	 *            The map of dependencies to download
+	 */
+	private void downloadAdditionalDependencies(Map<String, String> dependencies) {
+		Map<String, String> additionalDependencies = new HashMap<String, String>();
+
+		Set<Entry<String, String>> entrySet = dependencies.entrySet();
+		for (Entry<String, String> entry : entrySet) {
+			String packageId = entry.getKey();
+			String rangeExpression = entry.getValue();
+
+			additionalDependencies.putAll(this.download(packageId, rangeExpression));
+		}
+
+		if (additionalDependencies.size() > 0) {
+			this.downloadAdditionalDependencies(additionalDependencies);
+		}
+	}
+
+	/**
+	 * Downloads the package with the given packageId matching the given range.
+	 *
+	 * @param packageId
+	 *            The package id
+	 * @param rangeExpression
+	 *            The range
+	 * @return The dependencies of the downloaded package
+	 */
+	private Map<String, String> download(String packageId, String rangeExpression) {
+		Map<String, String> dependencies = new HashMap<String, String>();
+
+		Optional<String> packageUrl = this.getGitUrlFromPackageId(packageId);
+		String packageName = this.getNameFromPackageId(packageId);
+
+		if (packageUrl.isPresent() && this.monitor.isPresent() && !this.monitor.get().isCancelled()) {
+			if (this.monitor.isPresent()) {
+				this.monitor.get().beginTask(I18n.getString(I18nKeys.DOWNLOADING_LABEL, packageName), 10);
+			}
+
+			try {
+				File tempFile = new File("/tmp"); //$NON-NLS-1$
+				final Repository db = FileRepositoryBuilder.create(tempFile);
+				Collection<Ref> refs = new Git(db).lsRemote().setRemote(packageUrl.get()).setTags(true)
+						.call();
+
+				Optional<Ref> bestMatch = this.findBestMatch(refs, rangeExpression);
+				if (bestMatch.isPresent() && outputDirectory.isPresent()) {
+					File downloadedDependencyFolder = new File(outputDirectory.get(), packageName);
+					if (!downloadedDependencyFolder.exists()) {
+						Git git = Git.cloneRepository().setProgressMonitor(monitor.get()).setURI(
+								packageUrl.get()).setDirectory(downloadedDependencyFolder).setBranch(
+										bestMatch.get().getName()).setBare(false).setNoCheckout(false).call();
+						git.close();
+
+						File gitFolder = new File(downloadedDependencyFolder, IBowerConstants.GIT_EXTENSION);
+						this.delete(gitFolder);
+
+						File bowerJsonFile = new File(downloadedDependencyFolder, IBowerConstants.BOWER_JSON);
+						Optional<BowerJson> dependencyBowerJson = this.getBowerJson(bowerJsonFile);
+						if (dependencyBowerJson.isPresent()) {
+							dependencies.putAll(dependencyBowerJson.get().getDependencies());
+						}
+					}
+				}
+
+				db.close();
+			} catch (GitAPIException e) {
+				logger.log(IBowerConstants.BOWER_CORE_BUNDLE_ID, ILogger.ERROR, e);
+			} catch (IOException e) {
+				logger.log(IBowerConstants.BOWER_CORE_BUNDLE_ID, ILogger.ERROR, e);
+			}
+
+			if (this.monitor.isPresent()) {
+				this.monitor.get().endTask();
+			}
+		}
+		return dependencies;
+	}
+
+	/**
+	 * Finds the Git reference that matches the best the version that we are looking for.
+	 *
+	 * @param refs
+	 *            The references of the Git repository
+	 * @param rangeExpression
+	 *            The expression defining the ranges of the accepted references
+	 * @return The Git references which matches the best the given range expression
+	 */
+	private Optional<Ref> findBestMatch(Collection<Ref> refs, String rangeExpression) {
+		Optional<Ref> refToDownload = Optional.absent();
+
+		Range range = Range.fromString(rangeExpression);
+		for (Ref ref : refs) {
+			String refName = ref.getName();
+			if (refName.startsWith(IBowerConstants.REFS_TAGS)) {
+				try {
+					Version version = Version.fromString(refName
+							.substring(IBowerConstants.REFS_TAGS.length()));
+					if (version.isIn(range)) {
+						refToDownload = Optional.fromNullable(ref);
+					}
+				} catch (IllegalArgumentException e) {
+					// The name of the reference is not a valid version number, no need to log this
+				}
+			}
+		}
+
+		return refToDownload;
+	}
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/utils/IBowerConstants.java b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/utils/IBowerConstants.java
new file mode 100644
index 0000000..1fb3942
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/api/utils/IBowerConstants.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.core.api.utils;
+
+/**
+ * Utility interface holding some of the constants of the plugin.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public interface IBowerConstants {
+	/**
+	 * The name of the file containing the description of a bower package.
+	 */
+	String BOWER_JSON = "bower.json"; //$NON-NLS-1$
+
+	/**
+	 * The name of the file in which the configuration of bower can be found.
+	 */
+	String BOWER_RC = ".bowerrc"; //$NON-NLS-1$
+
+	/**
+	 * The name of the default folder where bower packages will be downloaded.
+	 */
+	String BOWER_COMPONENTS = "bower_components"; //$NON-NLS-1$
+
+	/**
+	 * The URL of the default bower server.
+	 */
+	String DEFAULT_BOWER_SERVER_URL = "http://bower.herokuapp.com"; //$NON-NLS-1$
+
+	/**
+	 * The path on the bower server used to see the details of a package.
+	 */
+	String PACKAGES_PATH = "/packages/"; //$NON-NLS-1$
+
+	/**
+	 * The Git protocol prefix.
+	 */
+	String GIT_PREFIX = "git://"; //$NON-NLS-1$
+
+	/**
+	 * The SSH protocol prefix.
+	 */
+	String SSH_PREFIX = "ssh://"; //$NON-NLS-1$
+
+	/**
+	 * The HTTP protocol prefix.
+	 */
+	String HTTP_PREFIX = "http://"; //$NON-NLS-1$
+
+	/**
+	 * The HTTPS protocol prefix.
+	 */
+	String HTTPS_PREFIX = "https://"; //$NON-NLS-1$
+
+	/**
+	 * The git extension.
+	 */
+	String GIT_EXTENSION = ".git"; //$NON-NLS-1$
+
+	/**
+	 * The segment separator of an URL.
+	 */
+	String SEPARATOR = "/"; //$NON-NLS-1$
+
+	/**
+	 * Git refs tags prefix.
+	 */
+	String REFS_TAGS = "refs/tags/"; //$NON-NLS-1$
+
+	/**
+	 * The identifier of this bundle.
+	 */
+	String BOWER_CORE_BUNDLE_ID = "org.eclipse.wst.jsdt.bower.code"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/internal/BowerCoreLog.java b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/internal/BowerCoreLog.java
new file mode 100644
index 0000000..ddd409a
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/internal/BowerCoreLog.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.core.internal;
+
+import org.eclipse.core.runtime.ILog;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.wst.jsdt.nodejs.core.api.utils.ILogger;
+
+/**
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class BowerCoreLog implements ILogger {
+	/**
+	 * The Eclipse logger.
+	 */
+	private ILog log;
+
+	/**
+	 * The constructor.
+	 *
+	 * @param log
+	 *            The Eclipse logger of the bundle.
+	 */
+	public BowerCoreLog(ILog log) {
+		this.log = log;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.wst.jsdt.nodejs.core.api.utils.ILogger#log(java.lang.String, int, java.lang.Exception)
+	 */
+	@Override
+	public void log(String bundle, int severity, Exception exception) {
+		IStatus status = new Status(severity, bundle, exception.getMessage(), exception);
+		this.log.log(status);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.wst.jsdt.nodejs.core.api.utils.ILogger#log(java.lang.String, int, java.lang.String)
+	 */
+	@Override
+	public void log(String bundle, int severity, String message) {
+		IStatus status = new Status(severity, bundle, message);
+		this.log.log(status);
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/internal/BowerCorePlugin.java b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/internal/BowerCorePlugin.java
new file mode 100644
index 0000000..c3fbbaa
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/internal/BowerCorePlugin.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.core.internal;
+
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.wst.jsdt.nodejs.core.api.utils.ILogger;
+
+/**
+ * The activator of the Bower Core bundle.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class BowerCorePlugin extends Plugin {
+	/**
+	 * The sole instance of the activator.
+	 */
+	private static BowerCorePlugin instance;
+
+	/**
+	 * The constructor.
+	 */
+	public BowerCorePlugin() {
+		super();
+		instance = this;
+	}
+
+	/**
+	 * Returns the sole instance of the Bower IDE UI activator.
+	 *
+	 * @return The sole instance
+	 */
+	public static final BowerCorePlugin getInstance() {
+		return instance;
+	}
+
+	/**
+	 * Returns the logger.
+	 *
+	 * @return The logger
+	 */
+	public ILogger getLogger() {
+		return new BowerCoreLog(this.getLog());
+	}
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/internal/utils/I18n.java b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/internal/utils/I18n.java
new file mode 100644
index 0000000..08764e1
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/internal/utils/I18n.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.core.internal.utils;
+
+import java.text.MessageFormat;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * Utility class used to retrieve the messages for internationalization.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class I18n {
+	/**
+	 * The path of the resources files.
+	 */
+	private static final String BUNDLE_NAME = "OSGI-INF/i18n/messages"; //$NON-NLS-1$
+
+	/**
+	 * The constructor.
+	 */
+	private I18n() {
+		// prevent instantiation
+	}
+
+	/**
+	 * Returns the value for the given key in the given locale with the given arguments.
+	 *
+	 * @param key
+	 *            The key of the message
+	 * @param arguments
+	 *            The arguments of the message
+	 * @return The message
+	 */
+	public static String getString(String key, Object... arguments) {
+		try {
+			return MessageFormat.format(ResourceBundle.getBundle(BUNDLE_NAME, Locale.getDefault()).getString(
+					key), arguments);
+		} catch (MissingResourceException e) {
+			return '!' + key + '!';
+		}
+	}
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/internal/utils/I18nKeys.java b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/internal/utils/I18nKeys.java
new file mode 100644
index 0000000..b6e28c6
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.core/src/main/java/org/eclipse/wst/jsdt/bower/core/internal/utils/I18nKeys.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.core.internal.utils;
+
+/**
+ * The keys of the internationalization.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public interface I18nKeys {
+	/**
+	 * Downloading {0}...
+	 */
+	String DOWNLOADING_LABEL = "Downloading.Label"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.classpath b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.classpath
new file mode 100644
index 0000000..32a9aa4
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.classpath
@@ -0,0 +1,7 @@
+<?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/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.project b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.project
new file mode 100644
index 0000000..6616b7b
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.wst.jsdt.bower.ide.ui</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..fb89267
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,410 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=warning
+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.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=error
+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=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=error
+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=enabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+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=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=error
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=error
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=error
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+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=ignore
+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=error
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+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=error
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
+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=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+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.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=52
+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=0
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=1
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=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=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=110
+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=true
+org.eclipse.jdt.core.formatter.indentation.size=8
+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_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=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_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_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_lambda_arrow=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=do not 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=110
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=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=false
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..03a084a
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_JSDT
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=com;java;javax;org;\#org.junit;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" 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">/**\n * Returns the ${bare_field_name}.\n * \n * @return The ${bare_field_name}\n */</template><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">/**\n * Sets the ${bare_field_name}.\n *\n * @param ${param} The ${bare_field_name} to set\n */</template><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">/**\n * The constructor.\n * \n * ${tags}\n */</template><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">/*******************************************************************************\n * Copyright (c) 2015.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     ${user} - initial API and implementation\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">/**\n * @author ${user}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><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">/**\n * {@inheritDoc}\n *\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\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">\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">\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">\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">\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\="false" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return this.${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=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=true
+sp_cleanup.correct_indentation=true
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=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_redundant_type_arguments=false
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=false
+sp_cleanup.remove_unnecessary_nls_tags=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_anonymous_class_creation=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=false
+sp_cleanup.use_parentheses_in_expressions=true
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_type_arguments=false
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..fdcba94
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,97 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=false
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 0000000..f29e940
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..52f7384
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+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.encodings=2
+compilers.p.build.java.compiler=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=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=2
+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=1
+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/bundles/org.eclipse.wst.jsdt.bower.ide.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..08cbf00
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,22 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.wst.jsdt.bower.ide.ui;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: %Bundle-Vendor
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-Localization: bundle
+Require-Bundle: org.eclipse.ui;bundle-version="3.106.0",
+ org.eclipse.core.resources;bundle-version="3.9.0",
+ org.eclipse.core.runtime;bundle-version="3.10.0",
+ org.eclipse.ui.ide;bundle-version="3.10.0"
+Import-Package: com.google.common.base;version="[15.0.0,16.0.0)",
+ com.google.common.collect;version="15.0.0",
+ com.google.gson;version="[2.2.4,3.0.0)",
+ org.eclipse.jgit.lib;version="[3.4.0,4.0.0)",
+ org.eclipse.wst.jsdt.bower.core.api;version="[1.0.0,2.0.0)",
+ org.eclipse.wst.jsdt.bower.core.api.utils;version="[1.0.0,2.0.0)",
+ org.eclipse.wst.jsdt.bower.ide.api;version="[1.0.0,2.0.0)",
+ org.eclipse.wst.jsdt.nodejs.core.api.utils;version="1.0.0"
+Bundle-Activator: org.eclipse.wst.jsdt.bower.ide.ui.internal.BowerUiPlugin
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/OSGI-INF/i18n/messages.properties b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/OSGI-INF/i18n/messages.properties
new file mode 100644
index 0000000..94a01e9
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/OSGI-INF/i18n/messages.properties
@@ -0,0 +1,14 @@
+#################################################################################
+## Copyright (c) 2014 Obeo 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:
+##     Obeo - initial API and implementation
+#################################################################################
+Bower-Preferences-Description=Bower-related preferences
+Bower-Preferences-Server-Url-Label=Bower Server URL:
+
+Bower-Editor-Title=bower.json
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/about.html b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/about.html
new file mode 100644
index 0000000..4602330
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 2, 2006</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>
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/build.properties b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/build.properties
new file mode 100644
index 0000000..9cf1ffe
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/build.properties
@@ -0,0 +1,25 @@
+#################################################################################
+## Copyright (c) 2014 Obeo 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:
+##     Obeo - initial API and implementation
+#################################################################################
+source.. = src/main/java/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               bundle.properties,\
+               plugin.xml,\
+               OSGI-INF/,\
+               icons/
+javacProjectSettings = true
+additional.bundles = org.eclipse.wst.jsdt.bower.core,\
+                     org.eclipse.wst.jsdt.bower.ide,\
+                     com.google.gson,\
+                     org.eclipse.jgit,\
+                     com.google.guava,\
+                     org.eclipse.wst.jsdt.nodejs.core
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/bundle.properties b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/bundle.properties
new file mode 100644
index 0000000..33af316
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/bundle.properties
@@ -0,0 +1,24 @@
+#################################################################################
+## Copyright (c) 2014 Obeo 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:
+##     Obeo - initial API and implementation
+#################################################################################
+Bundle-Name = JSDT Bower User Interface
+Bundle-Vendor = Eclipse Web Tools Platform
+
+Bower-Category-Name=Bower
+Bower-Menu-Name=Bower
+
+Bower-Init-Command-Name=Bower Init
+Bower-Install-Command-Name=Bower Install
+Bower-Update-Command-Name=Bower Update
+Bower-Clear-Command-Name=Bower Clear
+
+Bower-Preferences-Page-Name=Bower
+
+Bower-Editor-Name=Bower Editor
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_128x128.png b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_128x128.png
new file mode 100644
index 0000000..dda1b64
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_128x128.png
Binary files differ
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_16x16.png b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_16x16.png
new file mode 100644
index 0000000..577da27
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_16x16.png
Binary files differ
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_256x256.png b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_256x256.png
new file mode 100644
index 0000000..44204e7
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_256x256.png
Binary files differ
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_32x32.png b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_32x32.png
new file mode 100644
index 0000000..b4d645d
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_32x32.png
Binary files differ
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_512x512.png b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_512x512.png
new file mode 100644
index 0000000..2ed647c
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_512x512.png
Binary files differ
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_64x64.png b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_64x64.png
new file mode 100644
index 0000000..d4df427
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_64x64.png
Binary files differ
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_8x8.png b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_8x8.png
new file mode 100644
index 0000000..da58d79
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/icons/bower-logo_8x8.png
Binary files differ
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/plugin.xml b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/plugin.xml
new file mode 100644
index 0000000..b7cabc9
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/plugin.xml
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.ui.commands">
+      <category
+            id="org.eclipse.wst.jsdt.bower.ide.ui.commands.category"
+            name="%Bower-Category-Name">
+      </category>
+      <command
+            categoryId="org.eclipse.wst.jsdt.bower.ide.ui.commands.category"
+            id="org.eclipse.wst.jsdt.bower.ide.ui.commands.BowerInit"
+            name="%Bower-Init-Command-Name">
+      </command>
+      <command
+            categoryId="org.eclipse.wst.jsdt.bower.ide.ui.commands.category"
+            id="org.eclipse.wst.jsdt.bower.ide.ui.commands.BowerInstall"
+            name="%Bower-Install-Command-Name">
+      </command>
+      <command
+            categoryId="org.eclipse.wst.jsdt.bower.ide.ui.commands.category"
+            id="org.eclipse.wst.jsdt.bower.ide.ui.commands.BowerUpdate"
+            name="%Bower-Update-Command-Name">
+      </command>
+      <command
+            categoryId="org.eclipse.wst.jsdt.bower.ide.ui.commands.category"
+            id="org.eclipse.wst.jsdt.bower.ide.ui.commands.BowerClear"
+            name="%Bower-Clear-Command-Name">
+      </command>
+   </extension>
+   <extension
+         point="org.eclipse.ui.handlers">
+      <handler
+            class="org.eclipse.wst.jsdt.bower.ide.ui.internal.handlers.BowerInitHandler"
+            commandId="org.eclipse.wst.jsdt.bower.ide.ui.commands.BowerInit">
+      </handler>
+      <handler
+            class="org.eclipse.wst.jsdt.bower.ide.ui.internal.handlers.BowerInstallHandler"
+            commandId="org.eclipse.wst.jsdt.bower.ide.ui.commands.BowerInstall">
+      </handler>
+      <handler
+            class="org.eclipse.wst.jsdt.bower.ide.ui.internal.handlers.BowerUpdateHandler"
+            commandId="org.eclipse.wst.jsdt.bower.ide.ui.commands.BowerUpdate">
+      </handler>
+      <handler
+            class="org.eclipse.wst.jsdt.bower.ide.ui.internal.handlers.BowerClearHandler"
+            commandId="org.eclipse.wst.jsdt.bower.ide.ui.commands.BowerClear">
+      </handler>
+   </extension>
+   <extension
+         point="org.eclipse.ui.menus">
+      <menuContribution
+            allPopups="false"
+            locationURI="popup:org.eclipse.ui.popup.any?endof=additions">
+         <menu
+               icon="icons/bower-logo_16x16.png"
+               id="org.eclipse.wst.jsdt.bower.ide.ui.menus.bower"
+               label="%Bower-Menu-Name">
+            <command
+                  commandId="org.eclipse.wst.jsdt.bower.ide.ui.commands.BowerInit"
+                  id="org.eclipse.wst.jsdt.bower.ide.ui.menus.BowerInit"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <iterate ifEmpty="false" operator="and">
+                     <adapt
+                           type="org.eclipse.core.resources.IContainer">
+                     </adapt>
+                  </iterate>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.wst.jsdt.bower.ide.ui.commands.BowerInstall"
+                  id="org.eclipse.wst.jsdt.bower.ide.ui.menus.BowerInstall"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <iterate ifEmpty="false" operator="and">
+                     <adapt
+                           type="org.eclipse.core.resources.IResource">
+                        <test
+                              forcePluginActivation="true"
+                              property="org.eclipse.core.resources.name"
+                              value="bower.json">
+                        </test>
+                     </adapt>
+                  </iterate>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.wst.jsdt.bower.ide.ui.commands.BowerUpdate"
+                  id="org.eclipse.wst.jsdt.bower.ide.ui.menus.BowerUpdare"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <iterate ifEmpty="false" operator="and">
+                     <adapt
+                           type="org.eclipse.core.resources.IResource">
+                        <test
+                              forcePluginActivation="true"
+                              property="org.eclipse.core.resources.name"
+                              value="bower.json">
+                        </test>
+                     </adapt>
+                  </iterate>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.wst.jsdt.bower.ide.ui.commands.BowerClear"
+                  id="org.eclipse.wst.jsdt.bower.ide.ui.menus.BowerClear"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <iterate ifEmpty="false" operator="and">
+                     <adapt
+                           type="org.eclipse.core.resources.IResource">
+                        <test
+                              forcePluginActivation="true"
+                              property="org.eclipse.core.resources.name"
+                              value="bower.json">
+                        </test>
+                     </adapt>
+                  </iterate>
+               </visibleWhen>
+            </command>
+         </menu>
+      </menuContribution>
+   </extension>
+   <extension
+         point="org.eclipse.ui.preferencePages">
+      <page
+            class="org.eclipse.wst.jsdt.bower.ide.ui.internal.preferences.BowerPreferencesPage"
+            id="org.eclipse.wst.jsdt.bower.ide.ui.internal.preferences.BowerPreferencesPage"
+            name="%Bower-Preferences-Page-Name">
+      </page>
+   </extension>
+   <extension
+         point="org.eclipse.core.runtime.preferences">
+      <initializer
+            class="org.eclipse.wst.jsdt.bower.ide.ui.internal.preferences.PreferenceInitializer">
+      </initializer>
+   </extension>
+</plugin>
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/pom.xml b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/pom.xml
new file mode 100644
index 0000000..c4cf0e6
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/pom.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright (c) 2012, 2014 Eclipse Foundation and others.
+  All rights reserved. This program and the accompanying materials
+  are made available under the terms of the Eclipse Distribution License v1.0
+  which accompanies this distribution, and is available at
+  http://www.eclipse.org/org/documents/edl-v10.php
+ 
+  Contributors:
+    Thanh Ha (Eclipse Foundation) - initial implementation
+    Mickael Istria (Red Hat Inc.) - 425796 intermediary pom for factorization
+-->
+
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.webtools.jsdt</groupId>
+    <artifactId>bundles</artifactId>
+    <version>3.6.0-SNAPSHOT</version>
+  </parent>
+
+  <groupId>org.eclipse.webtools.jsdt.bundles</groupId>
+  <artifactId>org.eclipse.wst.jsdt.bower.ide.ui</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/BowerUiLog.java b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/BowerUiLog.java
new file mode 100644
index 0000000..216889d
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/BowerUiLog.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.ide.ui.internal;
+
+import org.eclipse.core.runtime.ILog;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.wst.jsdt.nodejs.core.api.utils.ILogger;
+
+/**
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class BowerUiLog implements ILogger {
+	/**
+	 * The Eclipse logger.
+	 */
+	private ILog log;
+
+	/**
+	 * The constructor.
+	 *
+	 * @param log
+	 *            The Eclipse logger of the bundle.
+	 */
+	public BowerUiLog(ILog log) {
+		this.log = log;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.wst.jsdt.nodejs.core.api.utils.ILogger#log(java.lang.String, int, java.lang.Exception)
+	 */
+	@Override
+	public void log(String bundle, int severity, Exception exception) {
+		IStatus status = new Status(severity, bundle, exception.getMessage(), exception);
+		this.log.log(status);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.wst.jsdt.nodejs.core.api.utils.ILogger#log(java.lang.String, int, java.lang.String)
+	 */
+	@Override
+	public void log(String bundle, int severity, String message) {
+		IStatus status = new Status(severity, bundle, message);
+		this.log.log(status);
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/BowerUiPlugin.java b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/BowerUiPlugin.java
new file mode 100644
index 0000000..e0ab57f
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/BowerUiPlugin.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.ide.ui.internal;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.wst.jsdt.nodejs.core.api.utils.ILogger;
+
+/**
+ * The activator of the Bower IDE UI bundle.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class BowerUiPlugin extends AbstractUIPlugin {
+	/**
+	 * The sole instance of the activator.
+	 */
+	private static BowerUiPlugin instance;
+
+	/**
+	 * The constructor.
+	 */
+	public BowerUiPlugin() {
+		super();
+		instance = this;
+	}
+
+	/**
+	 * Returns the sole instance of the Bower IDE UI activator.
+	 *
+	 * @return The sole instance
+	 */
+	public static final BowerUiPlugin getInstance() {
+		return instance;
+	}
+
+	/**
+	 * Returns the logger.
+	 *
+	 * @return The logger
+	 */
+	public ILogger getLogger() {
+		return new BowerUiLog(this.getLog());
+	}
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/handlers/AbstractBowerHandler.java b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/handlers/AbstractBowerHandler.java
new file mode 100644
index 0000000..5892f81
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/handlers/AbstractBowerHandler.java
@@ -0,0 +1,186 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.ide.ui.internal.handlers;
+
+import com.google.common.base.Optional;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.wst.jsdt.bower.core.api.BowerJson;
+import org.eclipse.wst.jsdt.bower.core.api.BowerRc;
+import org.eclipse.wst.jsdt.bower.core.api.BowerReaders;
+import org.eclipse.wst.jsdt.bower.core.api.utils.IBowerConstants;
+import org.eclipse.wst.jsdt.bower.ide.ui.internal.BowerUiPlugin;
+import org.eclipse.wst.jsdt.bower.ide.ui.internal.utils.IBowerIdeUiConstants;
+import org.eclipse.wst.jsdt.nodejs.core.api.utils.ILogger;
+
+/**
+ * Common superclass of the handlers that need the content of the bower.json file.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public abstract class AbstractBowerHandler extends AbstractHandler {
+
+	/**
+	 * The logger.
+	 */
+	protected ILogger logger = BowerUiPlugin.getInstance().getLogger();
+
+	/**
+	 * The content of bower.json.
+	 */
+	private Optional<BowerJson> bowerJson = Optional.absent();
+
+	/**
+	 * The content of .bowerrc.
+	 */
+	private Optional<BowerRc> bowerRc = Optional.absent();
+
+	/**
+	 * The output directory.
+	 */
+	private IFolder outputDirectory;
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		ISelection selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService()
+				.getSelection();
+		if (selection instanceof IStructuredSelection) {
+			IStructuredSelection iStructuredSelection = (IStructuredSelection)selection;
+			Object firstElement = iStructuredSelection.getFirstElement();
+			if (firstElement instanceof IFile
+					&& IBowerConstants.BOWER_JSON.equals(((IFile)firstElement).getName())
+					&& ((IFile)firstElement).exists()) {
+				final IFile bowerJsonFile = (IFile)firstElement;
+				IFile bowerRcFile = bowerJsonFile.getParent().getFile(new Path(IBowerConstants.BOWER_RC));
+
+				try {
+					String directory = IBowerConstants.BOWER_COMPONENTS;
+
+					this.bowerJson = Optional.fromNullable(BowerReaders.getBowerJson(bowerJsonFile
+							.getContents(), logger));
+					if (bowerRcFile.exists()) {
+						this.bowerRc = Optional.fromNullable(BowerReaders.getBowerRc(bowerRcFile
+								.getContents(), logger));
+					}
+
+					if (this.bowerRc.isPresent()) {
+						directory = this.bowerRc.get().getDirectory();
+					}
+
+					this.outputDirectory = bowerJsonFile.getParent().getFolder(new Path(directory));
+				} catch (CoreException e) {
+					logger.log(IBowerIdeUiConstants.BOWER_IDE_UI_BUNDLE_ID, ILogger.ERROR, e);
+				}
+
+				try {
+					PlatformUI.getWorkbench().getActiveWorkbenchWindow().run(true, true,
+							this.getRunnable(bowerJsonFile.getProject()));
+
+				} catch (InvocationTargetException e) {
+					logger.log(IBowerIdeUiConstants.BOWER_IDE_UI_BUNDLE_ID, ILogger.ERROR, e);
+				} catch (InterruptedException e) {
+					logger.log(IBowerIdeUiConstants.BOWER_IDE_UI_BUNDLE_ID, ILogger.ERROR, e);
+				} finally {
+					try {
+						bowerJsonFile.getProject().refreshLocal(IResource.DEPTH_INFINITE,
+								new NullProgressMonitor());
+					} catch (CoreException e) {
+						logger.log(IBowerIdeUiConstants.BOWER_IDE_UI_BUNDLE_ID, ILogger.ERROR, e);
+					}
+				}
+			}
+
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the runnable which will realize the operation.
+	 *
+	 * @param project
+	 *            The project on which this runnable will work
+	 * @return The runnable which will realize the operation
+	 */
+	private IRunnableWithProgress getRunnable(final IProject project) {
+		WorkspaceModifyOperation workspaceModifyOperation = new WorkspaceModifyOperation() {
+
+			@Override
+			protected void execute(IProgressMonitor monitor) throws CoreException, InvocationTargetException,
+					InterruptedException {
+				AbstractBowerHandler.this.doExecute(monitor);
+			}
+
+			@Override
+			public ISchedulingRule getRule() {
+				return project;
+			}
+		};
+		return workspaceModifyOperation;
+	}
+
+	/**
+	 * Execute the operation.
+	 *
+	 * @param monitor
+	 *            The progress monitor
+	 */
+	protected abstract void doExecute(IProgressMonitor monitor);
+
+	/**
+	 * Returns the bowerJson.
+	 *
+	 * @return The bowerJson
+	 */
+	public Optional<BowerJson> getBowerJson() {
+		return this.bowerJson;
+	}
+
+	/**
+	 * Returns the bowerRc.
+	 *
+	 * @return The bowerRc
+	 */
+	public Optional<BowerRc> getBowerRc() {
+		return this.bowerRc;
+	}
+
+	/**
+	 * Returns the outputDirectory.
+	 *
+	 * @return The outputDirectory
+	 */
+	public IFolder getOutputDirectory() {
+		return this.outputDirectory;
+	}
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/handlers/BowerClearHandler.java b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/handlers/BowerClearHandler.java
new file mode 100644
index 0000000..784f766
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/handlers/BowerClearHandler.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.ide.ui.internal.handlers;
+
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.wst.jsdt.bower.ide.ui.internal.utils.IBowerIdeUiConstants;
+import org.eclipse.wst.jsdt.nodejs.core.api.utils.ILogger;
+
+/**
+ * This handler will clear the content of the bower install folder.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class BowerClearHandler extends AbstractBowerHandler {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.wst.jsdt.bower.ide.ui.internal.handlers.AbstractBowerHandler#doExecute(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	protected void doExecute(IProgressMonitor monitor) {
+		if (this.getBowerJson().isPresent()) {
+			IFolder outputDirectory = this.getOutputDirectory();
+			if (outputDirectory != null && outputDirectory.exists()) {
+				try {
+					outputDirectory.delete(true, monitor);
+				} catch (CoreException e) {
+					logger.log(IBowerIdeUiConstants.BOWER_IDE_UI_BUNDLE_ID, ILogger.ERROR, e);
+				}
+			}
+		}
+	}
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/handlers/BowerInitHandler.java b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/handlers/BowerInitHandler.java
new file mode 100644
index 0000000..e21a6fb
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/handlers/BowerInitHandler.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.ide.ui.internal.handlers;
+
+import com.google.common.collect.Maps;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.wst.jsdt.bower.core.api.BowerJson;
+import org.eclipse.wst.jsdt.bower.core.api.BowerRc;
+import org.eclipse.wst.jsdt.bower.core.api.utils.IBowerConstants;
+import org.eclipse.wst.jsdt.bower.ide.ui.internal.BowerUiPlugin;
+import org.eclipse.wst.jsdt.bower.ide.ui.internal.utils.IBowerIdeUiConstants;
+import org.eclipse.wst.jsdt.nodejs.core.api.utils.ILogger;
+
+/**
+ * This handler will initialize the files bower.json and .bowerrc.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class BowerInitHandler extends AbstractHandler {
+	/**
+	 * The logger.
+	 */
+	protected ILogger logger = BowerUiPlugin.getInstance().getLogger();
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		ISelection selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService()
+				.getSelection();
+		if (selection instanceof IStructuredSelection) {
+			IStructuredSelection iStructuredSelection = (IStructuredSelection)selection;
+			Object firstElement = iStructuredSelection.getFirstElement();
+			if (firstElement instanceof IContainer) {
+				IContainer container = (IContainer)firstElement;
+				try {
+					PlatformUI.getWorkbench().getActiveWorkbenchWindow().run(false, true,
+							this.getRunnable(container));
+
+				} catch (InvocationTargetException e) {
+					logger.log(IBowerIdeUiConstants.BOWER_IDE_UI_BUNDLE_ID, ILogger.ERROR, e);
+				} catch (InterruptedException e) {
+					logger.log(IBowerIdeUiConstants.BOWER_IDE_UI_BUNDLE_ID, ILogger.ERROR, e);
+				} finally {
+					try {
+						container.getProject().refreshLocal(IResource.DEPTH_INFINITE,
+								new NullProgressMonitor());
+					} catch (CoreException e) {
+						logger.log(IBowerIdeUiConstants.BOWER_IDE_UI_BUNDLE_ID, ILogger.ERROR, e);
+					}
+				}
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the runnable which will realize the operation.
+	 *
+	 * @param container
+	 *            The container in which we will create the file bower.json
+	 * @return The runnable which will realize the operation
+	 */
+	private IRunnableWithProgress getRunnable(final IContainer container) {
+		WorkspaceModifyOperation workspaceModifyOperation = new WorkspaceModifyOperation() {
+
+			@Override
+			protected void execute(IProgressMonitor monitor) throws CoreException, InvocationTargetException,
+			InterruptedException {
+				IFile bowerJsonFile = container.getFile(new Path(IBowerConstants.BOWER_JSON));
+				Gson gson = new GsonBuilder().setPrettyPrinting().create();
+				if (!bowerJsonFile.exists()) {
+					BowerJson bowerJson = new BowerJson();
+					bowerJson.setName(bowerJsonFile.getProject().getName());
+					bowerJson.setVersion("0.0.1"); //$NON-NLS-1$
+					bowerJson.setPrivate(true);
+					bowerJson.setDependencies(Maps.<String, String> newHashMap());
+					bowerJson.setDevDependencies(Maps.<String, String> newHashMap());
+
+					byte[] bytes = gson.toJson(bowerJson).getBytes();
+					InputStream inputStream = new ByteArrayInputStream(bytes);
+					bowerJsonFile.create(inputStream, true, monitor);
+				}
+
+				IFile bowerRcFile = container.getFile(new Path(IBowerConstants.BOWER_RC));
+				if (!bowerRcFile.exists()) {
+					BowerRc bowerRc = new BowerRc();
+					bowerRc.setDirectory(IBowerConstants.BOWER_COMPONENTS);
+					byte[] bytes = gson.toJson(bowerRc).getBytes();
+					InputStream inputStream = new ByteArrayInputStream(bytes);
+					bowerRcFile.create(inputStream, true, monitor);
+				}
+
+				if (bowerJsonFile.exists()) {
+					IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
+							.getActivePage();
+					IDE.openEditor(page, bowerJsonFile);
+				}
+			}
+
+			@Override
+			public ISchedulingRule getRule() {
+				return container.getProject();
+			}
+		};
+		return workspaceModifyOperation;
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/handlers/BowerInstallHandler.java b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/handlers/BowerInstallHandler.java
new file mode 100644
index 0000000..c681a7f
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/handlers/BowerInstallHandler.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.ide.ui.internal.handlers;
+
+import java.io.File;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.wst.jsdt.bower.core.api.Bower;
+import org.eclipse.wst.jsdt.bower.core.api.BowerJson;
+import org.eclipse.wst.jsdt.bower.ide.api.EclipseGitProgressTransformer;
+import org.eclipse.wst.jsdt.bower.ide.ui.internal.BowerUiPlugin;
+import org.eclipse.wst.jsdt.bower.ide.ui.internal.preferences.IPreferenceConstants;
+
+/**
+ * This handler will install all the bower dependencies of the currently selected bower.json file.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class BowerInstallHandler extends AbstractBowerHandler {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.wst.jsdt.bower.ide.ui.internal.handlers.AbstractBowerHandler#doExecute(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	protected void doExecute(IProgressMonitor monitor) {
+		if (this.getBowerJson().isPresent()) {
+			BowerJson bowerJson = this.getBowerJson().get();
+			File outputDirectory = this.getOutputDirectory().getLocation().toFile();
+
+			String serverUrl = BowerUiPlugin.getInstance().getPreferenceStore().getString(
+					IPreferenceConstants.BOWER_SERVER_URL);
+
+			Bower.install().setMonitor(new EclipseGitProgressTransformer(monitor)).setOutputDirectory(
+					outputDirectory).setBowerJson(bowerJson).setBowerServerURL(serverUrl).call();
+		}
+	}
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/handlers/BowerUpdateHandler.java b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/handlers/BowerUpdateHandler.java
new file mode 100644
index 0000000..e3a486f
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/handlers/BowerUpdateHandler.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.ide.ui.internal.handlers;
+
+import java.io.File;
+
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.wst.jsdt.bower.core.api.Bower;
+import org.eclipse.wst.jsdt.bower.core.api.BowerJson;
+import org.eclipse.wst.jsdt.bower.ide.api.EclipseGitProgressTransformer;
+import org.eclipse.wst.jsdt.bower.ide.ui.internal.BowerUiPlugin;
+import org.eclipse.wst.jsdt.bower.ide.ui.internal.preferences.IPreferenceConstants;
+import org.eclipse.wst.jsdt.bower.ide.ui.internal.utils.IBowerIdeUiConstants;
+import org.eclipse.wst.jsdt.nodejs.core.api.utils.ILogger;
+
+/**
+ * This handler will update the bower dependencies of the project.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class BowerUpdateHandler extends AbstractBowerHandler {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.wst.jsdt.bower.ide.ui.internal.handlers.AbstractBowerHandler#doExecute(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	protected void doExecute(IProgressMonitor monitor) {
+		if (this.getBowerJson().isPresent()) {
+			IFolder outputDirectory = this.getOutputDirectory();
+			if (outputDirectory != null && outputDirectory.exists()) {
+				try {
+					outputDirectory.delete(true, monitor);
+				} catch (CoreException e) {
+					logger.log(IBowerIdeUiConstants.BOWER_IDE_UI_BUNDLE_ID, ILogger.ERROR, e);
+				}
+
+				BowerJson bowerJson = this.getBowerJson().get();
+				File directory = outputDirectory.getLocation().toFile();
+
+				String serverUrl = BowerUiPlugin.getInstance().getPreferenceStore().getString(
+						IPreferenceConstants.BOWER_SERVER_URL);
+
+				Bower.install().setMonitor(new EclipseGitProgressTransformer(monitor)).setOutputDirectory(
+						directory).setBowerJson(bowerJson).setBowerServerURL(serverUrl).call();
+			}
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/preferences/BowerPreferencesPage.java b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/preferences/BowerPreferencesPage.java
new file mode 100644
index 0000000..313f4fd
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/preferences/BowerPreferencesPage.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.ide.ui.internal.preferences;
+
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.StringFieldEditor;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.wst.jsdt.bower.ide.ui.internal.BowerUiPlugin;
+import org.eclipse.wst.jsdt.bower.ide.ui.internal.utils.I18n;
+import org.eclipse.wst.jsdt.bower.ide.ui.internal.utils.I18nKeys;
+
+/**
+ * This class represents a preference page that is contributed to the Preferences dialog. By subclassing
+ * <samp>FieldEditorPreferencePage</samp>, we can use the field support built into JFace that allows us to
+ * create a page that is small and knows how to save, restore and apply itself.
+ * <p>
+ * This page is used to modify preferences only. They are stored in the preference store that belongs to the
+ * main plug-in class. That way, preferences can be accessed directly via the preference store.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+
+public class BowerPreferencesPage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
+
+	/**
+	 * The constructor.
+	 */
+	public BowerPreferencesPage() {
+		super(GRID);
+		this.setPreferenceStore(BowerUiPlugin.getInstance().getPreferenceStore());
+		this.setDescription(I18n.getString(I18nKeys.BOWER_PREFERENCES_DESCRIPTION));
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+		// do nothing
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
+	 */
+	@Override
+	public void createFieldEditors() {
+		addField(new StringFieldEditor(IPreferenceConstants.BOWER_SERVER_URL, I18n
+				.getString(I18nKeys.BOWER_PREFERENCES_SERVER_URL_LABEL), getFieldEditorParent()));
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/preferences/IPreferenceConstants.java b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/preferences/IPreferenceConstants.java
new file mode 100644
index 0000000..44b1b64
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/preferences/IPreferenceConstants.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.ide.ui.internal.preferences;
+
+/**
+ * Constant definitions for plug-in preferences.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public interface IPreferenceConstants {
+
+	/**
+	 * The key used to identify the preference containing the URL of the Bower server to use.
+	 */
+	String BOWER_SERVER_URL = "bowerServerUrl"; //$NON-NLS-1$
+
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/preferences/PreferenceInitializer.java b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/preferences/PreferenceInitializer.java
new file mode 100644
index 0000000..8f7dcad
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/preferences/PreferenceInitializer.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.ide.ui.internal.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.wst.jsdt.bower.core.api.utils.IBowerConstants;
+import org.eclipse.wst.jsdt.bower.ide.ui.internal.BowerUiPlugin;
+
+/**
+ * Class used to initialize default preference values.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class PreferenceInitializer extends AbstractPreferenceInitializer {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
+	 */
+	@Override
+	public void initializeDefaultPreferences() {
+		IPreferenceStore store = BowerUiPlugin.getInstance().getPreferenceStore();
+		store.setDefault(IPreferenceConstants.BOWER_SERVER_URL, IBowerConstants.DEFAULT_BOWER_SERVER_URL);
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/utils/I18n.java b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/utils/I18n.java
new file mode 100644
index 0000000..6f99032
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/utils/I18n.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.ide.ui.internal.utils;
+
+import java.text.MessageFormat;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * Utility class for internationalization.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class I18n {
+	/**
+	 * The path of the resources files.
+	 */
+	private static final String BUNDLE_NAME = "OSGI-INF/i18n/messages"; //$NON-NLS-1$
+
+	/**
+	 * The constructor.
+	 */
+	private I18n() {
+		// prevent instantiation
+	}
+
+	/**
+	 * Returns the value for the given key in the given locale with the given arguments.
+	 *
+	 * @param key
+	 *            The key of the message
+	 * @param arguments
+	 *            The arguments of the message
+	 * @return The message
+	 */
+	public static String getString(String key, Object... arguments) {
+		try {
+			return MessageFormat.format(ResourceBundle.getBundle(BUNDLE_NAME, Locale.getDefault()).getString(
+					key), arguments);
+		} catch (MissingResourceException e) {
+			return '!' + key + '!';
+		}
+	}
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/utils/I18nKeys.java b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/utils/I18nKeys.java
new file mode 100644
index 0000000..aa0a41d
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/utils/I18nKeys.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.ide.ui.internal.utils;
+
+/**
+ * Utility interface holding the keys used by the internationalization.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public interface I18nKeys {
+	/**
+	 * Bower-related preferences.
+	 */
+	String BOWER_PREFERENCES_DESCRIPTION = "Bower-Preferences-Description"; //$NON-NLS-1$
+
+	/**
+	 * Bower server URL:.
+	 */
+	String BOWER_PREFERENCES_SERVER_URL_LABEL = "Bower-Preferences-Server-Url-Label"; //$NON-NLS-1$
+
+	/**
+	 * bower.json.
+	 */
+	String BOWER_EDITOR_TITLE = "Bower-Editor-Title"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/utils/IBowerIdeUiConstants.java b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/utils/IBowerIdeUiConstants.java
new file mode 100644
index 0000000..13cbd76
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide.ui/src/main/java/org/eclipse/wst/jsdt/bower/ide/ui/internal/utils/IBowerIdeUiConstants.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.ide.ui.internal.utils;
+
+/**
+ * Utility interface used to store some constants.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public interface IBowerIdeUiConstants {
+	/**
+	 * The identifier of this bundle.
+	 */
+	String BOWER_IDE_UI_BUNDLE_ID = "org.eclipse.wst.jsdt.bower.ide.ui"; //$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide/.checkstyle b/bundles/org.eclipse.wst.jsdt.bower.ide/.checkstyle
new file mode 100644
index 0000000..75246d3
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide/.checkstyle
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
+  <fileset name="all" enabled="true" check-config-name="Sun Checks" local="false">
+    <file-match-pattern match-pattern="." include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide/.classpath b/bundles/org.eclipse.wst.jsdt.bower.ide/.classpath
new file mode 100644
index 0000000..32a9aa4
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide/.classpath
@@ -0,0 +1,7 @@
+<?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/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide/.project b/bundles/org.eclipse.wst.jsdt.bower.ide/.project
new file mode 100644
index 0000000..b44a008
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.wst.jsdt.bower.ide</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..fb89267
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,410 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=warning
+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.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=error
+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=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=error
+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=enabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+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=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=error
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=error
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=error
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+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=ignore
+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=error
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+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=error
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
+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=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+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.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=52
+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=0
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=1
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=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=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=110
+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=true
+org.eclipse.jdt.core.formatter.indentation.size=8
+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_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=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_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_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_lambda_arrow=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=do not 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=110
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=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=false
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..03a084a
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_JSDT
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=com;java;javax;org;\#org.junit;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" 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">/**\n * Returns the ${bare_field_name}.\n * \n * @return The ${bare_field_name}\n */</template><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">/**\n * Sets the ${bare_field_name}.\n *\n * @param ${param} The ${bare_field_name} to set\n */</template><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">/**\n * The constructor.\n * \n * ${tags}\n */</template><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">/*******************************************************************************\n * Copyright (c) 2015.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     ${user} - initial API and implementation\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">/**\n * @author ${user}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><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">/**\n * {@inheritDoc}\n *\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\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">\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">\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">\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">\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\="false" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return this.${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=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=true
+sp_cleanup.correct_indentation=true
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=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_redundant_type_arguments=false
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=false
+sp_cleanup.remove_unnecessary_nls_tags=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_anonymous_class_creation=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=false
+sp_cleanup.use_parentheses_in_expressions=true
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_type_arguments=false
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..fdcba94
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,97 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=false
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 0000000..f29e940
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..52f7384
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+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.encodings=2
+compilers.p.build.java.compiler=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=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=2
+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=1
+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/bundles/org.eclipse.wst.jsdt.bower.ide/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.jsdt.bower.ide/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..a0bf173
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide/META-INF/MANIFEST.MF
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.wst.jsdt.bower.ide
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: %Bundle-Vendor
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-Localization: bundle
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.10.0"
+Export-Package: org.eclipse.wst.jsdt.bower.ide.api;version="1.0.0"
+Import-Package: org.eclipse.jgit.lib;version="[3.4.0,4.0.0)"
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide/about.html b/bundles/org.eclipse.wst.jsdt.bower.ide/about.html
new file mode 100644
index 0000000..4602330
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 2, 2006</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>
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide/build.properties b/bundles/org.eclipse.wst.jsdt.bower.ide/build.properties
new file mode 100644
index 0000000..e2fba6a
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide/build.properties
@@ -0,0 +1,18 @@
+#################################################################################
+## Copyright (c) 2014 Obeo 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:
+##     Obeo - initial API and implementation
+#################################################################################
+source.. = src/main/java/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               about.html,\
+               bundle.properties
+javacProjectSettings = true
+additional.bundles = org.eclipse.jgit
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide/bundle.properties b/bundles/org.eclipse.wst.jsdt.bower.ide/bundle.properties
new file mode 100644
index 0000000..3fd8dfb
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide/bundle.properties
@@ -0,0 +1,12 @@
+#################################################################################
+## Copyright (c) 2014 Obeo 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:
+##     Obeo - initial API and implementation
+#################################################################################
+Bundle-Name = JSDT Bower IDE
+Bundle-Vendor = Eclipse Web Tools Platform
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide/pom.xml b/bundles/org.eclipse.wst.jsdt.bower.ide/pom.xml
new file mode 100644
index 0000000..8413e49
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide/pom.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright (c) 2012, 2014 Eclipse Foundation and others.
+  All rights reserved. This program and the accompanying materials
+  are made available under the terms of the Eclipse Distribution License v1.0
+  which accompanies this distribution, and is available at
+  http://www.eclipse.org/org/documents/edl-v10.php
+ 
+  Contributors:
+    Thanh Ha (Eclipse Foundation) - initial implementation
+    Mickael Istria (Red Hat Inc.) - 425796 intermediary pom for factorization
+-->
+
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.webtools.jsdt</groupId>
+    <artifactId>bundles</artifactId>
+    <version>3.6.0-SNAPSHOT</version>
+  </parent>
+
+  <groupId>org.eclipse.webtools.jsdt.bundles</groupId>
+  <artifactId>org.eclipse.wst.jsdt.bower.ide</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.wst.jsdt.bower.ide/src/main/java/org/eclipse/wst/jsdt/bower/ide/api/EclipseGitProgressTransformer.java b/bundles/org.eclipse.wst.jsdt.bower.ide/src/main/java/org/eclipse/wst/jsdt/bower/ide/api/EclipseGitProgressTransformer.java
new file mode 100644
index 0000000..cb97c74
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.bower.ide/src/main/java/org/eclipse/wst/jsdt/bower/ide/api/EclipseGitProgressTransformer.java
@@ -0,0 +1,175 @@
+/*******************************************************************************
+ * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
+ *
+ * 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:
+ *     Shawn O. Pearce - initial API and implementation
+ *     Obeo - Checkstyle
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.bower.ide.api;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.jgit.lib.ProgressMonitor;
+
+/**
+ * An EGit to Eclipse progress monitor.
+ *
+ * @author <a href="mailto:spearce@spearce.org">Shawn O. Pearce</a>
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class EclipseGitProgressTransformer implements ProgressMonitor {
+	/**
+	 * Empty string.
+	 */
+	private static final String EMPTY_STRING = ""; //$NON-NLS-1$
+
+	/**
+	 * The original progress monitor.
+	 */
+	private final IProgressMonitor root;
+
+	/**
+	 * The progress monitor of the subtasks.
+	 */
+	private IProgressMonitor task;
+
+	/**
+	 * The message.
+	 */
+	private String message;
+
+	/**
+	 * The last worked.
+	 */
+	private int lastWorked;
+
+	/**
+	 * The total work.
+	 */
+	private int totalWork;
+
+	/**
+	 * Create a new progress monitor.
+	 *
+	 * @param eclipseMonitor
+	 *            the Eclipse monitor we update.
+	 */
+	public EclipseGitProgressTransformer(final IProgressMonitor eclipseMonitor) {
+		root = eclipseMonitor;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.jgit.lib.ProgressMonitor#start(int)
+	 */
+	@Override
+	public void start(final int totalTasks) {
+		root.beginTask(EMPTY_STRING, totalTasks * 1000);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.jgit.lib.ProgressMonitor#beginTask(java.lang.String, int)
+	 */
+	@Override
+	public void beginTask(final String name, final int total) {
+		endTask();
+		message = name;
+		lastWorked = 0;
+		totalWork = total;
+		task = new SubProgressMonitor(root, 1000);
+		if (totalWork == UNKNOWN) {
+			task.beginTask(EMPTY_STRING, IProgressMonitor.UNKNOWN);
+		} else {
+			task.beginTask(EMPTY_STRING, totalWork);
+		}
+		task.subTask(message);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.jgit.lib.ProgressMonitor#update(int)
+	 */
+	@Override
+	public void update(final int work) {
+		if (task == null) {
+			return;
+		}
+
+		final int cmp = lastWorked + work;
+		if (totalWork == UNKNOWN && cmp > 0) {
+			if (lastWorked != cmp) {
+				task.subTask(message + ", " + cmp); //$NON-NLS-1$
+			}
+		} else if (totalWork <= 0) {
+			// Do nothing to update the task.
+		} else if (cmp * 100 / totalWork != lastWorked * 100 / totalWork) {
+			final StringBuilder m = new StringBuilder();
+			m.append(message);
+			m.append(": "); //$NON-NLS-1$
+			while (m.length() < 25) {
+				m.append(' ');
+			}
+
+			final String twstr = String.valueOf(totalWork);
+			String cmpstr = String.valueOf(cmp);
+			while (cmpstr.length() < twstr.length()) {
+				cmpstr = " " + cmpstr; //$NON-NLS-1$
+			}
+			final int pcnt = cmp * 100 / totalWork;
+			if (pcnt < 100) {
+				m.append(' ');
+			}
+			if (pcnt < 10) {
+				m.append(' ');
+			}
+			m.append(pcnt);
+			m.append("% ("); //$NON-NLS-1$
+			m.append(cmpstr);
+			m.append("/"); //$NON-NLS-1$
+			m.append(twstr);
+			m.append(")"); //$NON-NLS-1$
+
+			task.subTask(m.toString());
+		}
+		lastWorked = cmp;
+		task.worked(work);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.jgit.lib.ProgressMonitor#endTask()
+	 */
+	@Override
+	public void endTask() {
+		if (task != null) {
+			try {
+				task.done();
+			} finally {
+				task = null;
+			}
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.jgit.lib.ProgressMonitor#isCancelled()
+	 */
+	@Override
+	public boolean isCancelled() {
+		if (task != null) {
+			return task.isCanceled();
+		}
+		return root.isCanceled();
+	}
+}
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/.classpath b/bundles/org.eclipse.wst.jsdt.nodejs.core/.classpath
new file mode 100644
index 0000000..32a9aa4
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/.classpath
@@ -0,0 +1,7 @@
+<?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/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/.project b/bundles/org.eclipse.wst.jsdt.nodejs.core/.project
new file mode 100644
index 0000000..71e9ffc
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.wst.jsdt.nodejs.core</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..fb89267
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,410 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=warning
+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.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=error
+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=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=error
+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=enabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+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=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=error
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=error
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=error
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+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=ignore
+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=error
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+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=error
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
+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=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+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.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=52
+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=0
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=1
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=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=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=110
+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=true
+org.eclipse.jdt.core.formatter.indentation.size=8
+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_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=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_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_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_lambda_arrow=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=do not 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=110
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=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=false
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..03a084a
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_JSDT
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=com;java;javax;org;\#org.junit;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" 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">/**\n * Returns the ${bare_field_name}.\n * \n * @return The ${bare_field_name}\n */</template><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">/**\n * Sets the ${bare_field_name}.\n *\n * @param ${param} The ${bare_field_name} to set\n */</template><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">/**\n * The constructor.\n * \n * ${tags}\n */</template><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">/*******************************************************************************\n * Copyright (c) 2015.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     ${user} - initial API and implementation\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">/**\n * @author ${user}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><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">/**\n * {@inheritDoc}\n *\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\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">\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">\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">\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">\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\="false" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return this.${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=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=true
+sp_cleanup.correct_indentation=true
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=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_redundant_type_arguments=false
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=false
+sp_cleanup.remove_unnecessary_nls_tags=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_anonymous_class_creation=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=false
+sp_cleanup.use_parentheses_in_expressions=true
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_type_arguments=false
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..fdcba94
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,97 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=false
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 0000000..f29e940
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..52f7384
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+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.encodings=2
+compilers.p.build.java.compiler=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=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=2
+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=1
+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/bundles/org.eclipse.wst.jsdt.nodejs.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.jsdt.nodejs.core/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..6d05edf
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.wst.jsdt.nodejs.core
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: %Bundle-Vendor
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.wst.jsdt.nodejs.core.api.semver;version="1.0.0",
+ org.eclipse.wst.jsdt.nodejs.core.api.utils;version="1.0.0"
+Bundle-Localization: bundle
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/about.html b/bundles/org.eclipse.wst.jsdt.nodejs.core/about.html
new file mode 100644
index 0000000..4602330
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 2, 2006</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>
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/build.properties b/bundles/org.eclipse.wst.jsdt.nodejs.core/build.properties
new file mode 100644
index 0000000..60536e8
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/build.properties
@@ -0,0 +1,16 @@
+#################################################################################
+## Copyright (c) 2014 Obeo 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:
+##     Obeo - initial API and implementation
+#################################################################################
+source.. = src/main/java/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               bundle.properties
+javacProjectSettings = true
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/bundle.properties b/bundles/org.eclipse.wst.jsdt.nodejs.core/bundle.properties
new file mode 100644
index 0000000..77b6156
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/bundle.properties
@@ -0,0 +1,12 @@
+#################################################################################
+## Copyright (c) 2014 Obeo 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:
+##     Obeo - initial API and implementation
+#################################################################################
+Bundle-Name = JSDT NodeJS Core
+Bundle-Vendor = Eclipse Web Tools Platform
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/pom.xml b/bundles/org.eclipse.wst.jsdt.nodejs.core/pom.xml
new file mode 100644
index 0000000..30acb55
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/pom.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright (c) 2012, 2014 Eclipse Foundation and others.
+  All rights reserved. This program and the accompanying materials
+  are made available under the terms of the Eclipse Distribution License v1.0
+  which accompanies this distribution, and is available at
+  http://www.eclipse.org/org/documents/edl-v10.php
+ 
+  Contributors:
+    Thanh Ha (Eclipse Foundation) - initial implementation
+    Mickael Istria (Red Hat Inc.) - 425796 intermediary pom for factorization
+-->
+
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.webtools.jsdt</groupId>
+    <artifactId>bundles</artifactId>
+    <version>3.6.0-SNAPSHOT</version>
+  </parent>
+
+  <groupId>org.eclipse.webtools.jsdt.bundles</groupId>
+  <artifactId>org.eclipse.wst.jsdt.nodejs.core</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/api/semver/Range.java b/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/api/semver/Range.java
new file mode 100755
index 0000000..ee21abf
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/api/semver/Range.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.nodejs.core.api.semver;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.eclipse.wst.jsdt.nodejs.core.internal.semver.ConstraintKind;
+import org.eclipse.wst.jsdt.nodejs.core.internal.semver.VersionedConstraint;
+
+/**
+ * A range is created from an expression describing a set of versions to use.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class Range {
+
+	/**
+	 * The array of all the constraints to consider for the creation of a range. /!\ Warning the order of the
+	 * values in this array matters!!! /!\.
+	 */
+	private static final ConstraintKind[] constraintKinds = new ConstraintKind[] {
+			ConstraintKind.GREATER_THAN_OR_EQUALS_TO, ConstraintKind.GREATER_THAN, ConstraintKind.EQUALS_TO,
+			ConstraintKind.LOWER_THAN_OR_EQUALS_TO, ConstraintKind.LOWER_THAN };
+
+	/**
+	 * The list of constraints of the range.
+	 */
+	private List<VersionedConstraint> constraints = new ArrayList<VersionedConstraint>();
+
+	/**
+	 * Adds the versioned constraint to the range.
+	 *
+	 * @param versionedConstraint
+	 *            The versioned constraint
+	 */
+	private void addVersionedConstraint(VersionedConstraint versionedConstraint) {
+		this.constraints.add(versionedConstraint);
+	}
+
+	/**
+	 * Returns the constraints.
+	 *
+	 * @return The constraints
+	 */
+	public List<VersionedConstraint> getConstraints() {
+		return this.constraints;
+	}
+
+	/**
+	 * Create a range from the given expression.
+	 *
+	 * @param rangeExpression
+	 * @return The range
+	 */
+	public static Range fromString(String rangeExpression) {
+		Range range = new Range();
+
+		StringTokenizer tokenizer = new StringTokenizer(rangeExpression);
+		while (tokenizer.hasMoreTokens()) {
+			String nextToken = tokenizer.nextToken();
+			nextToken = nextToken.trim();
+
+			for (ConstraintKind constraintKind : Range.constraintKinds) {
+				if (nextToken.startsWith(constraintKind.getLabel())) {
+					Version version = Version.fromString(nextToken.substring(constraintKind.getLabel()
+							.length()));
+					range.addVersionedConstraint(new VersionedConstraint(version, constraintKind));
+					break;
+				}
+			}
+		}
+
+		return range;
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/api/semver/Version.java b/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/api/semver/Version.java
new file mode 100755
index 0000000..064803c
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/api/semver/Version.java
@@ -0,0 +1,328 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.nodejs.core.api.semver;
+
+import java.util.List;
+
+import org.eclipse.wst.jsdt.nodejs.core.internal.semver.VersionedConstraint;
+
+/**
+ * The version number contains four different parts: Major, Minor, Patch and the Qualifier.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class Version implements Comparable<Version> {
+	/**
+	 * The optional prefix of a version number.
+	 */
+	private static final String V = "v"; //$NON-NLS-1$
+
+	/**
+	 * The dot is used to separate the major and minor version numbers and the minor and patch version number.
+	 */
+	private static final String DOT = "."; //$NON-NLS-1$
+
+	/**
+	 * The dash is used to separate the first parts of the version number and the qualifier.
+	 */
+	private static final String DASH = "-"; //$NON-NLS-1$
+
+	/**
+	 * The plus is used to separate the first parts of the version number and the build.
+	 */
+	private static final String PLUS = "+"; //$NON-NLS-1$
+
+	/**
+	 * The major version number should be incremented when you make an incompatible API change.
+	 */
+	private int major;
+
+	/**
+	 * The minor version number should be incremented when you add a new functionality in a
+	 * backward-compatible manner.
+	 */
+	private int minor;
+
+	/**
+	 * The patch version number should be incremented when you realize backward-compatible bug fixes.
+	 */
+	private int patch;
+
+	/**
+	 * The qualifier holds additional information regarding the version.
+	 */
+	private String qualifier = ""; //$NON-NLS-1$
+
+	/**
+	 * The build holds the unique identifier of a build.
+	 */
+	private String build = ""; //$NON-NLS-1$
+
+	/**
+	 * Sets the major version number.
+	 *
+	 * @param major
+	 *            The major version number
+	 */
+	private void setMajor(int major) {
+		this.major = major;
+	}
+
+	/**
+	 * Sets the minor version number.
+	 *
+	 * @param minor
+	 *            The minor version number
+	 */
+	private void setMinor(int minor) {
+		this.minor = minor;
+	}
+
+	/**
+	 * Sets the patch version number.
+	 *
+	 * @param patch
+	 *            The patch version number
+	 */
+	private void setPatch(int patch) {
+		this.patch = patch;
+	}
+
+	/**
+	 * Sets the qualifier of the version number.
+	 *
+	 * @param qualifier
+	 *            The qualifier
+	 */
+	private void setQualifier(String qualifier) {
+		this.qualifier = qualifier;
+	}
+
+	/**
+	 * Sets the build of the version number.
+	 *
+	 * @param build
+	 *            The build
+	 */
+	private void setBuild(String build) {
+		this.build = build;
+	}
+
+	/**
+	 * Creates a new version number from the given string.
+	 *
+	 * @param version
+	 *            The string representation of the version number
+	 * @return The version
+	 */
+	public static Version fromString(String version) {
+		// trim
+		String trimmedVersion = version;
+		trimmedVersion = trimmedVersion.trim();
+
+		// remove "v" prefix
+		if (trimmedVersion.startsWith(V) || trimmedVersion.startsWith(V.toUpperCase())) {
+			trimmedVersion = trimmedVersion.substring(V.length());
+		}
+
+		// capture the build
+		String build = ""; //$NON-NLS-1$
+		int indexOfBuildSeparator = trimmedVersion.indexOf(PLUS);
+		if (indexOfBuildSeparator != -1) {
+			build = trimmedVersion.substring(indexOfBuildSeparator + PLUS.length());
+			trimmedVersion = trimmedVersion.substring(0, indexOfBuildSeparator);
+		}
+
+		// capture the qualifier
+		String qualifier = ""; //$NON-NLS-1$
+		int indexOfQualifierSeparator = trimmedVersion.indexOf(DASH);
+		if (indexOfQualifierSeparator != -1) {
+			qualifier = trimmedVersion.substring(indexOfQualifierSeparator + DASH.length());
+			trimmedVersion = trimmedVersion.substring(0, indexOfQualifierSeparator);
+		}
+
+		Version result = null;
+
+		try {
+			int indexOfMajorMinorSeparator = trimmedVersion.indexOf(DOT);
+			if (indexOfMajorMinorSeparator == -1) {
+				int major = Version.getInt(trimmedVersion, 0, trimmedVersion.length());
+
+				// valid version number, ie: v3
+				result = new Version();
+				result.setMajor(major);
+			} else {
+				int indexOfMinorPatchSeparator = trimmedVersion.indexOf(DOT, indexOfMajorMinorSeparator + 1);
+				int major = Version.getInt(trimmedVersion, 0, indexOfMajorMinorSeparator);
+
+				// valid version number, ie: v3.
+				result = new Version();
+				result.setMajor(major);
+
+				if (indexOfMinorPatchSeparator == -1) {
+
+					int minor = Version.getInt(trimmedVersion, indexOfMajorMinorSeparator + 1, trimmedVersion
+							.length());
+
+					// valid version number, ie: v3.14
+					result.setMinor(minor);
+				} else {
+					int minor = Version.getInt(trimmedVersion, indexOfMajorMinorSeparator + 1,
+							indexOfMinorPatchSeparator);
+
+					// valid version number, ie: v3.14.xyz
+					result.setMinor(minor);
+
+					int patch = Version.getInt(trimmedVersion, indexOfMinorPatchSeparator + 1, trimmedVersion
+							.length());
+					result.setPatch(patch);
+				}
+			}
+		} catch (NumberFormatException e) {
+			// catch every parsing related exceptions
+			throw new IllegalArgumentException(version);
+		}
+
+		result.setQualifier(qualifier);
+		result.setBuild(build);
+
+		return result;
+	}
+
+	/**
+	 * Returns the int value located between the start index and the end index from the given string.
+	 *
+	 * @param string
+	 *            The string
+	 * @param start
+	 *            The start index
+	 * @param end
+	 *            The end index
+	 * @return The int value parsed
+	 */
+	private static int getInt(String string, int start, int end) {
+		int intValue = Integer.parseInt(string.substring(start, end));
+		if (intValue >= 0) {
+			return intValue;
+		}
+		throw new NumberFormatException();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see java.lang.Comparable#compareTo(java.lang.Object)
+	 */
+	@Override
+	public int compareTo(Version otherVersion) {
+		int result = 0;
+		if (otherVersion == null) {
+			return result;
+		}
+
+		if (this.major > otherVersion.major) {
+			// v2 > v1
+			result = 1;
+		} else if (this.major == otherVersion.major) {
+			// v1 == v1
+			result = 0;
+
+			if (this.minor > otherVersion.minor) {
+				// v1.1 > v1.0
+				result = 1;
+			} else if (this.minor == otherVersion.minor) {
+				// v1.1 == v1.1
+				result = 0;
+
+				if (this.patch > otherVersion.patch) {
+					// v1.1.2 > v1.1.1
+					result = 1;
+				} else if (this.patch == otherVersion.patch) {
+					// v1.1.1 == v1.1.1
+					result = 0;
+
+					// v1.1.1+abcdef < v1.1.1+bcdef == v1.1
+					if (this.build.length() > 0 && otherVersion.build.length() > 0) {
+						result = this.build.compareTo(otherVersion.build);
+					}
+
+					// v1.1.1-alpha < v1.1.1-beta < v1.1
+					if (this.qualifier.length() > 0 && otherVersion.qualifier.length() == 0) {
+						result = -1;
+					} else if (this.qualifier.length() > 0 && otherVersion.qualifier.length() > 0) {
+						result = this.qualifier.compareTo(otherVersion.qualifier);
+					} else if (this.qualifier.length() == 0 && otherVersion.qualifier.length() > 0) {
+						result = 1;
+					}
+				} else if (this.patch < otherVersion.patch) {
+					// v1.1.1 < v1.1.2
+					result = -1;
+				}
+			} else if (this.minor < otherVersion.minor) {
+				// v1.0 < v1.1
+				result = -1;
+			}
+		} else if (this.major < otherVersion.major) {
+			// v1 < v2
+			result = -1;
+		}
+		return result;
+	}
+
+	/**
+	 * Indicates if the version is in the given range.
+	 *
+	 * @param range
+	 *            The range
+	 * @return <code>true</code> if the version is in the given range, <code>false</code> otherwise
+	 */
+	public boolean isIn(Range range) {
+		boolean isInRange = true;
+
+		List<VersionedConstraint> constraints = range.getConstraints();
+		for (VersionedConstraint versionedConstraint : constraints) {
+			isInRange = isInRange && versionedConstraint.isValid(this);
+		}
+
+		return isInRange;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see java.lang.Object#toString()
+	 */
+	@Override
+	public String toString() {
+		StringBuilder builder = new StringBuilder();
+		builder.append(Integer.valueOf(this.major));
+		builder.append(DOT);
+		builder.append(Integer.valueOf(this.minor));
+		builder.append(DOT);
+		builder.append(Integer.valueOf(this.patch));
+
+		if (this.qualifier.length() > 0) {
+			builder.append(DASH);
+			builder.append(this.qualifier);
+		}
+
+		if (this.build.length() > 0) {
+			builder.append(PLUS);
+			builder.append(this.build);
+		}
+
+		String version = builder.toString();
+		if (version != null) {
+			return version;
+		}
+		return ""; //$NON-NLS-1$
+	}
+}
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/api/utils/ILogger.java b/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/api/utils/ILogger.java
new file mode 100644
index 0000000..1452598
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/api/utils/ILogger.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.nodejs.core.api.utils;
+
+/**
+ * This interface will be used to log errors without requiring a dependency to org.eclipse.core.runtime. The
+ * error code and their value are the same as in IStatus in order to simplify the integration with Eclipse log
+ * system.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public interface ILogger {
+	/**
+	 * OK.
+	 */
+	int OK = 0;
+
+	/**
+	 * INFO.
+	 */
+	int INFO = 1;
+
+	/**
+	 * WARNING.
+	 */
+	int WARNING = 2;
+
+	/**
+	 * ERROR.
+	 */
+	int ERROR = 4;
+
+	/**
+	 * CANCEL.
+	 */
+	int CANCEL = 8;
+
+	/**
+	 * Logs the given exception.
+	 *
+	 * @param bundle
+	 *            The name of the bundle
+	 * @param severity
+	 *            The severity
+	 * @param exception
+	 *            The exception to log
+	 */
+	void log(String bundle, int severity, Exception exception);
+
+	/**
+	 * Logs the given message.
+	 * 
+	 * @param bundle
+	 *            The identifier of the bundle
+	 * @param severity
+	 *            The severity
+	 * @param message
+	 *            The message to log
+	 */
+	void log(String bundle, int severity, String message);
+}
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/internal/semver/AbstractConstraintTester.java b/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/internal/semver/AbstractConstraintTester.java
new file mode 100755
index 0000000..32a5108
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/internal/semver/AbstractConstraintTester.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.nodejs.core.internal.semver;
+
+import org.eclipse.wst.jsdt.nodejs.core.api.semver.Version;
+
+/**
+ * This class will be used to validate whether or not a version validates a constraint.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public abstract class AbstractConstraintTester {
+	/**
+	 * The reference version.
+	 */
+	protected Version version;
+
+	/**
+	 * Indicates if the tested version validates the constraint or not.
+	 *
+	 * @param testedVersion
+	 *            The tested version
+	 * @return <code>true</code> if the constraint is validated, <code>false</code> otherwise
+	 */
+	public abstract boolean apply(Version testedVersion);
+
+	/**
+	 * Sets the version.
+	 *
+	 * @param version
+	 *            The version to set
+	 */
+	public void setVersion(Version version) {
+		this.version = version;
+	}
+}
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/internal/semver/ConstraintKind.java b/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/internal/semver/ConstraintKind.java
new file mode 100755
index 0000000..0d47cbb
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/internal/semver/ConstraintKind.java
@@ -0,0 +1,134 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.nodejs.core.internal.semver;
+
+import org.eclipse.wst.jsdt.nodejs.core.api.semver.Version;
+
+/**
+ * The list of the constraint kind that can be applied to a versioned constraint.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public enum ConstraintKind {
+	/**
+	 * >.
+	 */
+	GREATER_THAN(new AbstractConstraintTester() {
+
+		@Override
+		public boolean apply(Version testedVersion) {
+			return testedVersion.compareTo(this.version) > 0;
+		}
+
+	}, ">"), //$NON-NLS-1$
+
+	/**
+	 * >=.
+	 */
+	GREATER_THAN_OR_EQUALS_TO(new AbstractConstraintTester() {
+
+		@Override
+		public boolean apply(Version testedVersion) {
+			return testedVersion.compareTo(this.version) >= 0;
+		}
+
+	}, ">="), //$NON-NLS-1$
+
+	/**
+	 * =.
+	 */
+	EQUALS_TO(new AbstractConstraintTester() {
+
+		@Override
+		public boolean apply(Version testedVersion) {
+			return testedVersion.compareTo(this.version) == 0;
+		}
+
+	}, "="), //$NON-NLS-1$
+
+	/**
+	 * <=.
+	 */
+	LOWER_THAN_OR_EQUALS_TO(new AbstractConstraintTester() {
+
+		@Override
+		public boolean apply(Version testedVersion) {
+			return testedVersion.compareTo(this.version) <= 0;
+		}
+
+	}, "<="), //$NON-NLS-1$
+
+	/**
+	 * <.
+	 */
+	LOWER_THAN(new AbstractConstraintTester() {
+
+		@Override
+		public boolean apply(Version testedVersion) {
+			return testedVersion.compareTo(this.version) < 0;
+		}
+
+	}, "<"), //$NON-NLS-1$
+
+	/**
+	 *
+	 */
+	ANY(new AbstractConstraintTester() {
+
+		@Override
+		public boolean apply(Version testedVersion) {
+			return true;
+		}
+
+	}, "*"); //$NON-NLS-1$
+
+	/**
+	 * The label of the constraint.
+	 */
+	private String label;
+
+	/**
+	 * The tester of the constraint.
+	 */
+	private AbstractConstraintTester constraintTester;
+
+	/**
+	 * The constructor.
+	 *
+	 * @param label
+	 *            The label of the constraint
+	 * @param constraintTester
+	 *            The constraint tester
+	 */
+	ConstraintKind(AbstractConstraintTester constraintTester, String label) {
+		this.label = label;
+		this.constraintTester = constraintTester;
+	}
+
+	/**
+	 * Returns the label.
+	 *
+	 * @return The label
+	 */
+	public String getLabel() {
+		return this.label;
+	}
+
+	/**
+	 * Returns the constraintTester.
+	 *
+	 * @return The constraintTester
+	 */
+	public AbstractConstraintTester getConstraintTester() {
+		return this.constraintTester;
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/internal/semver/VersionedConstraint.java b/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/internal/semver/VersionedConstraint.java
new file mode 100755
index 0000000..9b2d7b7
--- /dev/null
+++ b/bundles/org.eclipse.wst.jsdt.nodejs.core/src/main/java/org/eclipse/wst/jsdt/nodejs/core/internal/semver/VersionedConstraint.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.nodejs.core.internal.semver;
+
+import org.eclipse.wst.jsdt.nodejs.core.api.semver.Version;
+
+/**
+ * Utility class holding a version and its constraint.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class VersionedConstraint {
+
+	/**
+	 * The version.
+	 */
+	private Version version;
+
+	/**
+	 * The constraint.
+	 */
+	private ConstraintKind constraintKind;
+
+	/**
+	 * The constructor.
+	 *
+	 * @param version
+	 *            The version
+	 * @param constraintKind
+	 *            The kind of constraint
+	 */
+	public VersionedConstraint(Version version, ConstraintKind constraintKind) {
+		this.version = version;
+		this.constraintKind = constraintKind;
+	}
+
+	/**
+	 * Indicates if the tested version validates the constraint or not.
+	 *
+	 * @param testedVersion
+	 *            The tested version
+	 * @return <code>true</code> if the constraint is validated, <code>false</code> otherwise
+	 */
+	public boolean isValid(Version testedVersion) {
+		AbstractConstraintTester constraintTester = this.constraintKind.getConstraintTester();
+		constraintTester.setVersion(this.version);
+		return constraintTester.apply(testedVersion);
+	}
+}
diff --git a/bundles/pom.xml b/bundles/pom.xml
index adf2532..92a7715 100644
--- a/bundles/pom.xml
+++ b/bundles/pom.xml
@@ -36,5 +36,11 @@
     <module>org.eclipse.wst.jsdt.debug.rhino.ui</module>
     <module>org.eclipse.wst.jsdt.debug.transport</module>
     <module>org.eclipse.wst.jsdt.debug.ui</module>
+    
+    <module>org.eclipse.wst.jsdt.nodejs.core</module>
+    <module>org.eclipse.wst.jsdt.bower.core</module>
+    <module>org.eclipse.wst.jsdt.bower.ide</module>
+    <module>org.eclipse.wst.jsdt.bower.ide.ui</module>
+    
   </modules>
 </project>
diff --git a/features/org.eclipse.wst.jsdt.feature/feature.xml b/features/org.eclipse.wst.jsdt.feature/feature.xml
index a325dee..b826f06 100644
--- a/features/org.eclipse.wst.jsdt.feature/feature.xml
+++ b/features/org.eclipse.wst.jsdt.feature/feature.xml
@@ -110,5 +110,33 @@
          install-size="0"

          version="1.7.2.qualifier"

          unpack="false"/>

+         

+   <plugin

+         id="org.eclipse.wst.jsdt.nodejs.core"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.wst.jsdt.bower.core"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.wst.jsdt.bower.ide"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.wst.jsdt.bower.ide.ui"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

 

 </feature>

diff --git a/features/org.eclipse.wst.jsdt_tests.feature/feature.xml b/features/org.eclipse.wst.jsdt_tests.feature/feature.xml
index a1dcd93..8a3d795 100644
--- a/features/org.eclipse.wst.jsdt_tests.feature/feature.xml
+++ b/features/org.eclipse.wst.jsdt_tests.feature/feature.xml
@@ -61,4 +61,10 @@
          install-size="0"

          version="0.0.0"/>

 

+   <plugin

+         id="org.eclipse.wst.jsdt.nodejs.core.tests"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"/>

+

 </feature>

diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.classpath b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.classpath
new file mode 100644
index 0000000..32a9aa4
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.classpath
@@ -0,0 +1,7 @@
+<?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/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.project b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.project
new file mode 100644
index 0000000..41bd7c7
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.wst.jsdt.nodejs.core.tests</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..fb89267
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,410 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=warning
+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.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=error
+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=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=error
+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=enabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+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=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=error
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=error
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=error
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+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=ignore
+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=error
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+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=error
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
+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=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+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.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=52
+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=0
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=1
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=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=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=110
+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=true
+org.eclipse.jdt.core.formatter.indentation.size=8
+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_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=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_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_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_lambda_arrow=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=do not 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=110
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=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=false
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..03a084a
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_JSDT
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=com;java;javax;org;\#org.junit;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" 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">/**\n * Returns the ${bare_field_name}.\n * \n * @return The ${bare_field_name}\n */</template><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">/**\n * Sets the ${bare_field_name}.\n *\n * @param ${param} The ${bare_field_name} to set\n */</template><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">/**\n * The constructor.\n * \n * ${tags}\n */</template><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">/*******************************************************************************\n * Copyright (c) 2015.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     ${user} - initial API and implementation\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">/**\n * @author ${user}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><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">/**\n * {@inheritDoc}\n *\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\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">\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">\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">\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">\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\="false" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return this.${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=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=true
+sp_cleanup.correct_indentation=true
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=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_redundant_type_arguments=false
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=false
+sp_cleanup.remove_unnecessary_nls_tags=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_anonymous_class_creation=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=false
+sp_cleanup.use_parentheses_in_expressions=true
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_type_arguments=false
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..fdcba94
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,97 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=false
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.pde.core.prefs b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 0000000..f29e940
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..52f7384
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+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.encodings=2
+compilers.p.build.java.compiler=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=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=2
+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=1
+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/tests/org.eclipse.wst.jsdt.nodejs.core.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..a829903
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.wst.jsdt.nodejs.core.tests
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: %Bundle-Vendor
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.junit;bundle-version="4.11.0"
+Import-Package: org.eclipse.wst.jsdt.nodejs.core.api.semver;version="1.0.0"
+Bundle-Localization: bundle
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/about.html b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/about.html
new file mode 100644
index 0000000..4602330
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 2, 2006</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>
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/build.properties b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/build.properties
new file mode 100644
index 0000000..153b0be
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/build.properties
@@ -0,0 +1,17 @@
+#################################################################################
+## Copyright (c) 2014 Obeo 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:
+##     Obeo - initial API and implementation
+#################################################################################
+source.. = src/main/java/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               bundle.properties
+additional.bundles = org.eclipse.wst.jsdt.nodejs.core
+javacProjectSettings = true
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/bundle.properties b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/bundle.properties
new file mode 100644
index 0000000..e08a196
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/bundle.properties
@@ -0,0 +1,12 @@
+#################################################################################
+## Copyright (c) 2014 Obeo 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:
+##     Obeo - initial API and implementation
+#################################################################################
+Bundle-Name = JSDT NodeJS Core Tests
+Bundle-Vendor = Eclipse Web Tools Platform
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/pom.xml b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/pom.xml
new file mode 100644
index 0000000..f5b78c8
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/pom.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright (c) 2012, 2014 Eclipse Foundation and others.
+  All rights reserved. This program and the accompanying materials
+  are made available under the terms of the Eclipse Distribution License v1.0
+  which accompanies this distribution, and is available at
+  http://www.eclipse.org/org/documents/edl-v10.php
+ 
+  Contributors:
+    Thanh Ha (Eclipse Foundation) - initial implementation
+    Mickael Istria (Red Hat Inc.) - 425796 intermediary pom for factorization
+-->
+
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.webtools.jsdt</groupId>
+    <artifactId>tests</artifactId>
+    <version>3.6.0-SNAPSHOT</version>
+  </parent>
+
+  <groupId>org.eclipse.webtools.jsdt.tests</groupId>
+  <artifactId>org.eclipse.wst.jsdt.nodejs.core.tests</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <packaging>eclipse-test-plugin</packaging>
+  
+  <properties>
+  	<testSuite>${project.artifactId}</testSuite>
+  	<testClass>org.eclipse.wst.jsdt.nodejs.core.tests.AllTests</testClass>
+  </properties>
+</project>
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/src/main/java/org/eclipse/wst/jsdt/nodejs/core/tests/AllTests.java b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/src/main/java/org/eclipse/wst/jsdt/nodejs/core/tests/AllTests.java
new file mode 100644
index 0000000..ebf1a69
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/src/main/java/org/eclipse/wst/jsdt/nodejs/core/tests/AllTests.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.nodejs.core.tests;
+
+import org.eclipse.wst.jsdt.nodejs.core.tests.internal.semver.RangeTests;
+import org.eclipse.wst.jsdt.nodejs.core.tests.internal.semver.VersionTests;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * Launches all the tests.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+@RunWith(Suite.class)
+@SuiteClasses({VersionTests.class, RangeTests.class })
+public class AllTests {
+	/**
+	 * The constructor.
+	 */
+	private AllTests() {
+		// prevent instantiation
+	}
+}
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/src/main/java/org/eclipse/wst/jsdt/nodejs/core/tests/internal/semver/ComparationMatcher.java b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/src/main/java/org/eclipse/wst/jsdt/nodejs/core/tests/internal/semver/ComparationMatcher.java
new file mode 100644
index 0000000..32ac548
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/src/main/java/org/eclipse/wst/jsdt/nodejs/core/tests/internal/semver/ComparationMatcher.java
@@ -0,0 +1,196 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.nodejs.core.tests.internal.semver;
+
+import org.eclipse.wst.jsdt.nodejs.core.api.semver.Version;
+import org.hamcrest.BaseMatcher;
+import org.hamcrest.Description;
+import org.hamcrest.Factory;
+import org.hamcrest.Matcher;
+
+/**
+ * This matcher will be used to compare two version numbers.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class ComparationMatcher extends BaseMatcher<Version> {
+
+	/**
+	 * This enumeration will be used to select the kind of operation to test.
+	 *
+	 * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+	 */
+	private enum Comparator {
+		/**
+		 * The other version number must be lower than the tested one.
+		 */
+		GREATER,
+		/**
+		 * The other version number must be lower than or equals to the tested one.
+		 */
+		GREATER_OR_EQUALS,
+		/**
+		 * The other version number must be equals to the tested one.
+		 */
+		EQUALS,
+		/**
+		 * The other version number must be greater than or equals to the tested one.
+		 */
+		LOWER_OR_EQUALS,
+		/**
+		 * The other version number must be greater than the tested one.
+		 */
+		LOWER;
+	}
+
+	/**
+	 * The other version number.
+	 */
+	private Version otherVersion;
+
+	/**
+	 * The type of comparison to run.
+	 */
+	private Comparator comparator;
+
+	/**
+	 * The constructor.
+	 *
+	 * @param comparator
+	 * @param otherVersion
+	 */
+	public ComparationMatcher(Comparator comparator, Version otherVersion) {
+		this.comparator = comparator;
+		this.otherVersion = otherVersion;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.hamcrest.Matcher#matches(java.lang.Object)
+	 */
+	@Override
+	public boolean matches(Object item) {
+		boolean isMatching = false;
+		if (item instanceof Version) {
+			Version version = (Version)item;
+			switch (this.comparator) {
+				case GREATER:
+					isMatching = version.compareTo(this.otherVersion) > 0;
+					break;
+				case GREATER_OR_EQUALS:
+					isMatching = version.compareTo(this.otherVersion) >= 0;
+					break;
+				case EQUALS:
+					isMatching = version.compareTo(this.otherVersion) == 0;
+					break;
+				case LOWER_OR_EQUALS:
+					isMatching = version.compareTo(this.otherVersion) <= 0;
+					break;
+				case LOWER:
+					isMatching = version.compareTo(this.otherVersion) < 0;
+					break;
+				default:
+					isMatching = false;
+					break;
+			}
+		}
+		return isMatching;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.hamcrest.SelfDescribing#describeTo(org.hamcrest.Description)
+	 */
+	@Override
+	public void describeTo(Description description) {
+		switch (this.comparator) {
+			case GREATER:
+				description.appendText("greater than ").appendText(otherVersion.toString()); //$NON-NLS-1$
+				break;
+			case GREATER_OR_EQUALS:
+				description.appendText("greater than or equals to ").appendText(otherVersion.toString()); //$NON-NLS-1$
+				break;
+			case EQUALS:
+				description.appendText("equals to ").appendText(otherVersion.toString()); //$NON-NLS-1$
+				break;
+			case LOWER_OR_EQUALS:
+				description.appendText("lower than or equals to ").appendText(otherVersion.toString()); //$NON-NLS-1$
+				break;
+			case LOWER:
+				description.appendText("lower than ").appendText(otherVersion.toString()); //$NON-NLS-1$
+				break;
+			default:
+				break;
+		}
+	}
+
+	/**
+	 * Returns a matcher testing if a version number is greater than another one.
+	 *
+	 * @param otherVersion
+	 *            The other version number
+	 * @return The matcher
+	 */
+	@Factory
+	public static Matcher<Version> greaterThan(Version otherVersion) {
+		return new ComparationMatcher(Comparator.GREATER, otherVersion);
+	}
+
+	/**
+	 * Returns a matcher testing if a version number is greater than or equals to another one.
+	 *
+	 * @param otherVersion
+	 *            The other version number
+	 * @return The matcher
+	 */
+	@Factory
+	public static Matcher<Version> greaterThanOrEqualsTo(Version otherVersion) {
+		return new ComparationMatcher(Comparator.GREATER_OR_EQUALS, otherVersion);
+	}
+
+	/**
+	 * Returns a matcher testing if a version number is equals to another one.
+	 *
+	 * @param otherVersion
+	 *            The other version number
+	 * @return The matcher
+	 */
+	@Factory
+	public static Matcher<Version> equalTo(Version otherVersion) {
+		return new ComparationMatcher(Comparator.EQUALS, otherVersion);
+	}
+
+	/**
+	 * Returns a matcher testing if a version number is lower than or equals to another one.
+	 *
+	 * @param otherVersion
+	 *            The other version number
+	 * @return The matcher
+	 */
+	@Factory
+	public static Matcher<Version> lowerThanOrEqualsTo(Version otherVersion) {
+		return new ComparationMatcher(Comparator.LOWER_OR_EQUALS, otherVersion);
+	}
+
+	/**
+	 * Returns a matcher testing if a version number is lower than another one.
+	 *
+	 * @param otherVersion
+	 *            The other version number
+	 * @return The matcher
+	 */
+	@Factory
+	public static Matcher<Version> lowerThan(Version otherVersion) {
+		return new ComparationMatcher(Comparator.LOWER, otherVersion);
+	}
+}
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/src/main/java/org/eclipse/wst/jsdt/nodejs/core/tests/internal/semver/RangeTests.java b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/src/main/java/org/eclipse/wst/jsdt/nodejs/core/tests/internal/semver/RangeTests.java
new file mode 100644
index 0000000..266cda9
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/src/main/java/org/eclipse/wst/jsdt/nodejs/core/tests/internal/semver/RangeTests.java
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.nodejs.core.tests.internal.semver;
+
+import org.eclipse.wst.jsdt.nodejs.core.api.semver.Range;
+import org.eclipse.wst.jsdt.nodejs.core.api.semver.Version;
+import org.junit.Test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * In those tests, we will see if a specific version number matches a given range by respecting the Node.js
+ * semantic versioning rules.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class RangeTests {
+
+	/**
+	 * Test some version numbers with exact ranges.
+	 */
+	@Test
+	public void testExactRanges() {
+		// valid
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString("1.0.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString("1.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString("1"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.0.0+build2012").isIn(Range.fromString("1.0.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString("v1.0.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString("v1.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString("v1"))); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString("=1.0.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString("=1.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString("=1"))); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString("=v1.0.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString("=v1.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString("=v1"))); //$NON-NLS-1$ //$NON-NLS-2$
+
+		// invalid
+		assertFalse(Version.fromString("1.0.1").isIn(Range.fromString("=1.0.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertFalse(Version.fromString("0.9.9").isIn(Range.fromString("=1.0.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertFalse(Version.fromString("1.0.0-beta").isIn(Range.fromString("=1.0.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertFalse(Version.fromString("1.0.0-alpha").isIn(Range.fromString("=1.0.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertFalse(Version.fromString("1.0.0-alpha+build2014").isIn(Range.fromString("=v1.0.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * Test some version numbers with approximate ranges.
+	 */
+	@Test
+	public void testApproximateRanges() {
+		// valid
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString(">=v1.0.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString(">=v1.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString(">=1"))); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString(">=0.0.1"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString(">=0.9"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.0.0").isIn(Range.fromString(">=0"))); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertTrue(Version.fromString("1.0.7").isIn(Range.fromString(">v0.0.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.3.0").isIn(Range.fromString(">v1.2"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.4.2").isIn(Range.fromString(">v1.4.1"))); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertTrue(Version.fromString("1.0.7").isIn(Range.fromString("<v2.0.8"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.3.0").isIn(Range.fromString("<v1.4"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.4.2").isIn(Range.fromString("<v1.4.11"))); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertTrue(Version.fromString("1.0.7").isIn(Range.fromString(">v1.0.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.3.0").isIn(Range.fromString(">v1.2"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("1.4.2").isIn(Range.fromString(">v1.3.11"))); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertTrue(Version.fromString("1.0.7-beta+build1234").isIn(Range.fromString(">v1.0.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("2.0.0-beta+build1234").isIn(Range.fromString(">v1.0.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("2.0.0-beta+build1234").isIn(Range.fromString("<=v2.0.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+
+		// invalid
+		assertFalse(Version.fromString("1.0.0").isIn(Range.fromString(">1.0.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertFalse(Version.fromString("1.0.0-beta").isIn(Range.fromString(">=v1.0"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertFalse(Version.fromString("1.1.1").isIn(Range.fromString(">=1.2"))); //$NON-NLS-1$ //$NON-NLS-2$
+
+	}
+
+	/**
+	 * Test some version numbers with multiple ranges.
+	 */
+	@Test
+	public void testMultipleRanges() {
+		// valid
+		assertTrue(Version.fromString("1.0.2").isIn(Range.fromString(">v0.9.3 <v1.1.8"))); //$NON-NLS-1$ //$NON-NLS-2$
+
+		// invalid
+		assertFalse(Version.fromString("1.0.2").isIn(Range.fromString(">v1.9.3 <v2.1.8"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertFalse(Version.fromString("1.0.2").isIn(Range.fromString(">v0.9.3 <v0.9.8"))); //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * Test some version numbers with any range.
+	 */
+	@Test
+	public void testAnyRange() {
+		// valid
+		assertTrue(Version.fromString("1.0.7-beta+build1234").isIn(Range.fromString("*"))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue(Version.fromString("v8").isIn(Range.fromString("*"))); //$NON-NLS-1$ //$NON-NLS-2$
+	}
+}
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/src/main/java/org/eclipse/wst/jsdt/nodejs/core/tests/internal/semver/VersionTests.java b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/src/main/java/org/eclipse/wst/jsdt/nodejs/core/tests/internal/semver/VersionTests.java
new file mode 100644
index 0000000..c6023e9
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/src/main/java/org/eclipse/wst/jsdt/nodejs/core/tests/internal/semver/VersionTests.java
@@ -0,0 +1,185 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Obeo 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.nodejs.core.tests.internal.semver;
+
+import org.eclipse.wst.jsdt.nodejs.core.api.semver.Version;
+import org.junit.Test;
+
+import static org.eclipse.wst.jsdt.nodejs.core.tests.internal.semver.ComparationMatcher.equalTo;
+import static org.eclipse.wst.jsdt.nodejs.core.tests.internal.semver.ComparationMatcher.greaterThan;
+import static org.eclipse.wst.jsdt.nodejs.core.tests.internal.semver.ComparationMatcher.greaterThanOrEqualsTo;
+import static org.eclipse.wst.jsdt.nodejs.core.tests.internal.semver.ComparationMatcher.lowerThan;
+import static org.eclipse.wst.jsdt.nodejs.core.tests.internal.semver.ComparationMatcher.lowerThanOrEqualsTo;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.core.Is.is;
+import static org.hamcrest.core.IsNot.not;
+
+/**
+ * Unit tests of the version numbers.
+ *
+ * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
+ */
+public class VersionTests {
+	/**
+	 * Test the string serialization of some version numbers.
+	 */
+	@Test
+	public void testVersionToString() {
+		assertThat(Version.fromString("v1").toString(), is("1.0.0")); //$NON-NLS-1$ //$NON-NLS-2$
+		assertThat(Version.fromString("v1.2").toString(), is("1.2.0")); //$NON-NLS-1$ //$NON-NLS-2$
+		assertThat(Version.fromString("v1.2.3").toString(), is("1.2.3")); //$NON-NLS-1$ //$NON-NLS-2$
+		assertThat(Version.fromString("1.2.3").toString(), is("1.2.3")); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertThat(Version.fromString("1.2.3-beta").toString(), is("1.2.3-beta")); //$NON-NLS-1$ //$NON-NLS-2$
+		assertThat(Version.fromString("v1.2.3-beta").toString(), is("1.2.3-beta")); //$NON-NLS-1$ //$NON-NLS-2$
+		assertThat(Version.fromString("v1.2-beta").toString(), is("1.2.0-beta")); //$NON-NLS-1$ //$NON-NLS-2$
+		assertThat(Version.fromString("v1-beta").toString(), is("1.0.0-beta")); //$NON-NLS-1$ //$NON-NLS-2$
+		assertThat(Version.fromString("v1-beta2.5").toString(), is("1.0.0-beta2.5")); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertThat(Version.fromString("1.2.3+build2014").toString(), is("1.2.3+build2014")); //$NON-NLS-1$ //$NON-NLS-2$
+		assertThat(Version.fromString("v1.2.3+build2014").toString(), is("1.2.3+build2014")); //$NON-NLS-1$ //$NON-NLS-2$
+		assertThat(Version.fromString("v1.2+build2014").toString(), is("1.2.0+build2014")); //$NON-NLS-1$ //$NON-NLS-2$
+		assertThat(Version.fromString("v1+build2014").toString(), is("1.0.0+build2014")); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertThat(Version.fromString("v1.25-beta2.5+build2014-06-11").toString(), //$NON-NLS-1$
+				is("1.25.0-beta2.5+build2014-06-11")); //$NON-NLS-1$
+	}
+
+	/**
+	 * Test that if a version number starts with a "v", this prefix gets trimmed.
+	 */
+	@Test
+	public void testPrefixTrimming() {
+		assertThat(Version.fromString("v1.0.0"), is(equalTo(Version.fromString("1.0.0")))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertThat(Version.fromString("v1.0"), is(equalTo(Version.fromString("1.0.0")))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertThat(Version.fromString("v1"), is(equalTo(Version.fromString("1.0.0")))); //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * Test the comparison of version number for the major part.
+	 */
+	@Test
+	public void testMajorVersionNumbersComparison() {
+		// greater
+		assertThat(Version.fromString("1.0.0"), is(greaterThan(Version.fromString("0.99.999")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.0"), is(greaterThan(Version.fromString("0.99.999")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1"), is(greaterThan(Version.fromString("0.99.999")))); //$NON-NLS-1$//$NON-NLS-2$
+
+		// greater or equals
+		assertThat(Version.fromString("1.0.0"), is(greaterThanOrEqualsTo(Version.fromString("1.0.0")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.0.0"), is(greaterThanOrEqualsTo(Version.fromString("0.99.999")))); //$NON-NLS-1$//$NON-NLS-2$
+
+		assertThat(Version.fromString("1.0"), is(greaterThanOrEqualsTo(Version.fromString("1.0.0")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.0"), is(greaterThanOrEqualsTo(Version.fromString("0.99.999")))); //$NON-NLS-1$//$NON-NLS-2$
+
+		assertThat(Version.fromString("1"), is(greaterThanOrEqualsTo(Version.fromString("1.0.0")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1"), is(greaterThanOrEqualsTo(Version.fromString("0.99.999")))); //$NON-NLS-1$//$NON-NLS-2$
+
+		// equals
+		assertThat(Version.fromString("1.0.0"), is(equalTo(Version.fromString("1.0.0")))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertThat(Version.fromString("1.0"), is(equalTo(Version.fromString("1.0.0")))); //$NON-NLS-1$ //$NON-NLS-2$
+		assertThat(Version.fromString("1"), is(equalTo(Version.fromString("1.0.0")))); //$NON-NLS-1$ //$NON-NLS-2$
+
+		// lower or equals
+		assertThat(Version.fromString("1.0.0"), is(lowerThanOrEqualsTo(Version.fromString("1.0.0")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.0.0"), is(lowerThanOrEqualsTo(Version.fromString("9.99.999")))); //$NON-NLS-1$//$NON-NLS-2$
+
+		assertThat(Version.fromString("1.0"), is(lowerThanOrEqualsTo(Version.fromString("1.0.0")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.0"), is(lowerThanOrEqualsTo(Version.fromString("9.99.999")))); //$NON-NLS-1$//$NON-NLS-2$
+
+		assertThat(Version.fromString("1"), is(lowerThanOrEqualsTo(Version.fromString("1.0.0")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1"), is(lowerThanOrEqualsTo(Version.fromString("9.99.999")))); //$NON-NLS-1$//$NON-NLS-2$
+
+		// lower
+		assertThat(Version.fromString("1.0.0"), is(lowerThan(Version.fromString("9.99.999")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.0"), is(lowerThan(Version.fromString("9.99.999")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1"), is(lowerThan(Version.fromString("9.99.999")))); //$NON-NLS-1$//$NON-NLS-2$
+	}
+
+	/**
+	 * Test the comparison of version numbers for the minor part.
+	 */
+	@Test
+	public void testMinorVersionNumbersComparison() {
+		assertThat(Version.fromString("1.1.0"), is(greaterThan(Version.fromString("1.0.0")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.1"), is(greaterThan(Version.fromString("1.0.0")))); //$NON-NLS-1$//$NON-NLS-2$
+
+		assertThat(Version.fromString("1.1.0"), is(greaterThanOrEqualsTo(Version.fromString("1.1.0")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.1"), is(greaterThanOrEqualsTo(Version.fromString("1.1.0")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.1.0"), is(greaterThanOrEqualsTo(Version.fromString("1.0.0")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.1"), is(greaterThanOrEqualsTo(Version.fromString("1.0.0")))); //$NON-NLS-1$//$NON-NLS-2$
+
+		assertThat(Version.fromString("1.1.0"), is(equalTo(Version.fromString("1.1.0")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.1.0"), is(equalTo(Version.fromString("1.1")))); //$NON-NLS-1$//$NON-NLS-2$
+
+		assertThat(Version.fromString("1.2.0"), is(lowerThanOrEqualsTo(Version.fromString("1.2.0")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.2"), is(lowerThanOrEqualsTo(Version.fromString("1.2.0")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.2.0"), is(lowerThanOrEqualsTo(Version.fromString("1.3.0")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.2"), is(lowerThanOrEqualsTo(Version.fromString("1.3.0")))); //$NON-NLS-1$//$NON-NLS-2$
+
+		assertThat(Version.fromString("1.1.0"), is(lowerThan(Version.fromString("1.2.0")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.1"), is(lowerThan(Version.fromString("1.2.0")))); //$NON-NLS-1$//$NON-NLS-2$
+	}
+
+	/**
+	 * Test the comparison of version numbers for the patch part.
+	 */
+	@Test
+	public void testPatchVersionNumbersComparison() {
+		assertThat(Version.fromString("1.1.1"), is(greaterThan(Version.fromString("1.1.0")))); //$NON-NLS-1$//$NON-NLS-2$
+
+		assertThat(Version.fromString("1.1.1"), is(greaterThanOrEqualsTo(Version.fromString("1.1.1")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.1.1"), is(greaterThanOrEqualsTo(Version.fromString("1.1.0")))); //$NON-NLS-1$//$NON-NLS-2$
+
+		assertThat(Version.fromString("1.1.1"), is(equalTo(Version.fromString("1.1.1")))); //$NON-NLS-1$//$NON-NLS-2$
+
+		assertThat(Version.fromString("1.1.1"), is(lowerThanOrEqualsTo(Version.fromString("1.1.1")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.1.1"), is(lowerThanOrEqualsTo(Version.fromString("1.1.2")))); //$NON-NLS-1$//$NON-NLS-2$
+
+		assertThat(Version.fromString("1.1.1"), is(lowerThan(Version.fromString("1.1.2")))); //$NON-NLS-1$//$NON-NLS-2$
+	}
+
+	/**
+	 * Test the comparison of version numbers with a build part.
+	 */
+	@Test
+	public void testBuildVersionNumbersComparison() {
+		assertThat(Version.fromString("1.1.1"), is(equalTo(Version.fromString("1.1.1+build2014")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1.1"), is(equalTo(Version.fromString("1.1.0+build2014")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("1"), is(equalTo(Version.fromString("v1.0.0+build2014")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("v1"), is(equalTo(Version.fromString("v1.0.0+build2014")))); //$NON-NLS-1$//$NON-NLS-2$
+
+		assertThat(Version.fromString("v1+build2014"), is(equalTo(Version.fromString("v1.0.0+build2014")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("v1.0+build2014"), is(equalTo(Version.fromString("v1.0.0+build2014")))); //$NON-NLS-1$//$NON-NLS-2$
+		assertThat(Version.fromString("v1.0.0+build2014"), //$NON-NLS-1$
+				is(equalTo(Version.fromString("v1.0.0+build2014")))); //$NON-NLS-1$
+
+		assertThat(Version.fromString("v1+build2014"), //$NON-NLS-1$
+				is(not(equalTo(Version.fromString("v1.0.0+build2015"))))); //$NON-NLS-1$
+		assertThat(Version.fromString("v1+build2014"), //$NON-NLS-1$
+				is(lowerThan(Version.fromString("v1.0.0+build2015")))); //$NON-NLS-1$
+		assertThat(Version.fromString("v1+build2014"), //$NON-NLS-1$
+				is(greaterThan(Version.fromString("v1.0.0+build2013")))); //$NON-NLS-1$
+	}
+
+	/**
+	 * Test the comparison of version numbers with a qualifier part.
+	 */
+	@Test
+	public void testQualifierVersionNumbersComparison() {
+		assertThat(Version.fromString("v1.1-beta"), //$NON-NLS-1$
+				is(lowerThan(Version.fromString("v1.1.0")))); //$NON-NLS-1$
+		assertThat(Version.fromString("v1.1-beta"), //$NON-NLS-1$
+				is(greaterThan(Version.fromString("v1.0.9")))); //$NON-NLS-1$
+		assertThat(Version.fromString("v1.1-beta"), //$NON-NLS-1$
+				is(greaterThan(Version.fromString("v1.1-alpha")))); //$NON-NLS-1$
+	}
+}
diff --git a/tests/org.eclipse.wst.jsdt.nodejs.core.tests/test.xml b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/test.xml
new file mode 100644
index 0000000..a1d9cc5
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.nodejs.core.tests/test.xml
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project
+    name="testsuite"
+    default="run"
+    basedir=".">
+    
+    <!-- 
+         ===================================================== 
+         There should be no need to change what's above.
+         (if there is, let us know if the script can be improved.)
+         ===================================================== 
+    -->
+
+    <!-- should be little need to change what's above  -->
+    <property
+        name="plugin-name"
+        value="org.eclipse.wst.jsdt.core.tests.compiler" />
+    <property
+        name="classname"
+        value="org.eclipse.wst.jsdt.core.tests.compiler.JSDTCompilerTests" />
+    <property
+        name="testType"
+        value="core-test" />
+
+    <!-- should be little need to change what's below -->
+
+    <echo message="basedir: ${basedir}" />
+    <echo message="eclipse-home: ${eclipse-home}" />
+    <echo message="buildDirectory: ${buildDirectory}" />
+    <echo message="plugin-name: ${plugin-name}" />
+    <echo message="classname: ${classname}" />
+    <echo message="testType ${testType}" />
+
+
+    <property
+        name="library-file"
+        value="${eclipse-home}/plugins/org.eclipse.test_3.1.0/library.xml" />
+    <property
+        name="workspace"
+        value="${eclipse-home}/junitworkspaces/${plugin-name}" />
+        
+    <!-- This target holds all initialization code that needs to be done for -->
+    <!-- all tests that are to be run. Initialization for individual tests -->
+    <!-- should be done within the body of the suite target. -->
+    <target name="init">
+        <tstamp />
+        <delete>
+            <fileset
+                dir="${eclipse-home}"
+                includes="${plugin-name}.*xml" />
+        </delete>
+        
+            <!-- 
+         make the workspace directory, in case path doesn't exist yet
+         but delete to make sure fresh contents, if it does exist
+        -->
+        <delete
+            dir="${workspace}"
+            quiet="true" />
+        <mkdir
+            dir="${workspace}" />
+    </target>
+
+    <!-- This target defines the tests that need to be run. -->
+    <target name="suite">
+
+        <ant
+            target="${testType}"
+            antfile="${library-file}"
+            dir="${eclipse-home}">
+            <property
+                name="data-dir"
+                value="${workspace}" />
+            <property
+                name="plugin-name"
+                value="${plugin-name}" />
+            <property
+                name="classname"
+                value="${classname}" />
+            <property
+                name="plugin-path"
+                value="${eclipse-home}/plugins/${plugin-name}" />
+        </ant>
+
+        <copy
+            failonerror="false"
+            file="${workspace}/.metadata/.log"
+            tofile="${buildDirectory}/${buildLabel}/testResults/consolelogs/${plugin-name}.consolelog.txt" />
+
+    </target>
+
+    <!-- This target holds code to cleanup the testing environment after -->
+    <!-- after all of the tests have been run. You can use this target to -->
+    <!-- delete temporary files that have been created. -->
+    <target name="cleanup">
+        <!-- usually no need to delete workspace until next run, and leaving it allows inspection -->
+        <!-- <delete dir="${workspace}" quiet="true" /> -->
+    </target>
+
+    <!-- This target runs the test suite. Any actions that need to happen -->
+    <!-- after all the tests have been run should go here. -->
+    <target
+        name="run"
+        depends="init,suite,cleanup">
+        <ant
+            target="collect"
+            antfile="${library-file}"
+            dir="${eclipse-home}">
+            <property
+                name="includes"
+                value="${plugin-name}.*xml" />
+            <property
+                name="output-file"
+                value="${plugin-name}.xml" />
+        </ant>
+    </target>
+
+</project>
\ No newline at end of file
diff --git a/tests/pom.xml b/tests/pom.xml
index 90c1322..1de01e5 100644
--- a/tests/pom.xml
+++ b/tests/pom.xml
@@ -28,5 +28,6 @@
     <module>org.eclipse.wst.jsdt.debug.core.tests</module>
     <module>org.eclipse.wst.jsdt.debug.rhino.tests</module>
     <module>org.eclipse.wst.jsdt.ui.tests</module>
+    <module>org.eclipse.wst.jsdt.nodejs.core.tests</module>
   </modules>
 </project>