From 7e9c3097a2d347eed99f07270bac352ce6213c16 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 16 Dec 2021 14:09:25 -0700
Subject: [PATCH] Add gradle files

---
 gradle/git-hooks.gradle                     |  16 +
 gradle/node.gradle                          |  50 ++
 gradle/spotbugs-filter.xml                  |  27 +
 gradle/spotbugs.gradle                      |  11 +
 gradle/spotless.gradle                      |  69 ++
 src/main/resources/eclipse.importorder      |   7 +
 src/main/resources/nshmp.eclipse-format.xml | 916 ++++++++++++++++++++
 7 files changed, 1096 insertions(+)
 create mode 100644 gradle/git-hooks.gradle
 create mode 100644 gradle/node.gradle
 create mode 100644 gradle/spotbugs-filter.xml
 create mode 100644 gradle/spotbugs.gradle
 create mode 100644 gradle/spotless.gradle
 create mode 100644 src/main/resources/eclipse.importorder
 create mode 100644 src/main/resources/nshmp.eclipse-format.xml

diff --git a/gradle/git-hooks.gradle b/gradle/git-hooks.gradle
new file mode 100644
index 000000000..15c974ecb
--- /dev/null
+++ b/gradle/git-hooks.gradle
@@ -0,0 +1,16 @@
+apply plugin: "com.star-zero.gradle.githook"
+
+/**
+ * Add Git hooks on pre commit and pre push.
+ *
+ * See https://github.com/STAR-ZERO/gradle-githook
+ */
+githook {
+  createHooksDirIfNotExist = true
+
+  hooks {
+    "pre-push" {
+      task = "markdownlint yamllint spotlessCheck spotbugsMain spotbugsTest"
+    }
+  }
+}
diff --git a/gradle/node.gradle b/gradle/node.gradle
new file mode 100644
index 000000000..147caa205
--- /dev/null
+++ b/gradle/node.gradle
@@ -0,0 +1,50 @@
+apply plugin: "com.github.node-gradle.node"
+
+node {
+  download = true
+  version = "${nodeVersion}"
+}
+
+/* Install markdownlint-cli with NPM */
+task nodeInstall(type: NpmTask) {
+  description "Install markdownlint-clia and yamllint with NPM"
+  args = [
+    "install",
+    "markdownlint-cli",
+    "yaml-lint",
+    "--save-dev",
+    "--loglevel",
+    "error"
+  ]
+}
+
+/* Run markdownlint */
+task markdownlint(type: NpxTask) {
+  description "Run markdownlint"
+  dependsOn nodeInstall
+  command = "markdownlint"
+  args = ["**/*.md"]
+}
+
+/* Apply markdownlint fixes */
+task markdownlintApply(type: NpxTask) {
+  description "Apply markdownlint fixes"
+  dependsOn nodeInstall
+  command = "markdownlint"
+  args = [
+    "**/*.md",
+    "--fix",
+  ]
+}
+
+/* Run yamllint */
+task yamllint(type: NpxTask) {
+  description "Run yamllint"
+  dependsOn nodeInstall
+  command = "yamllint"
+  args = [
+    "**/*.yml",
+    "--ignore=.gradle/**",
+    "--ignore=node_modules/**",
+  ]
+}
diff --git a/gradle/spotbugs-filter.xml b/gradle/spotbugs-filter.xml
new file mode 100644
index 000000000..44b91fc49
--- /dev/null
+++ b/gradle/spotbugs-filter.xml
@@ -0,0 +1,27 @@
+<FindBugsFilter>
+
+  <!-- Caused by Java 11 generating a null check on try with resources. This
+    passed on Java 8 -->
+  <Match>
+    <Bug pattern="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE" />
+  </Match>
+
+  <!-- StringConverter.INSTANCE.convert(this) will never be null -->
+  <Match>
+    <Class name="gov.usgs.earthquake.nshmp.geo.Location" />
+    <Method name="toString" />
+    <Bug code="NP" />
+  </Match>
+
+  <!-- https://spotbugs.readthedocs.io/en/stable/filter.html#rank -->
+  <!-- TODO can we change this to higher rank or remove all together? -->
+  <Match>
+    <Rank value="16" />
+  </Match>
+
+  <!-- Example exclude class -->
+  <!-- <Match> -->
+  <!-- <Class name="gov.usgs.earthquake.nshmp.eq.fault.Faults" /> -->
+  <!-- </Match> -->
+
+</FindBugsFilter>
diff --git a/gradle/spotbugs.gradle b/gradle/spotbugs.gradle
new file mode 100644
index 000000000..51f1a63a2
--- /dev/null
+++ b/gradle/spotbugs.gradle
@@ -0,0 +1,11 @@
+apply plugin: "com.github.spotbugs"
+
+/*
+ * Configure SpotBugs (FindBugs successor).
+ *
+ * See https://spotbugs.readthedocs.io
+ */
+spotbugs {
+  excludeFilter = file("${projectDir}/gradle/spotbugs-filter.xml")
+  effort = "max"
+}
diff --git a/gradle/spotless.gradle b/gradle/spotless.gradle
new file mode 100644
index 000000000..2d827774b
--- /dev/null
+++ b/gradle/spotless.gradle
@@ -0,0 +1,69 @@
+apply plugin: "com.diffplug.spotless"
+
+/*
+ * Configure Spotless for code formatting checks based on the
+ * nshmp eclispe formatter (src/resources/nshmp.eclipse-format.xml).
+ *
+ * Spotless formatting check (spotlessCheck) is automatically
+ * ran on the pre-commit and pre-push git hooks.
+ *
+ * To fix any formatting issues run ./gradlew spotlessApply.
+ *
+ * See https://github.com/diffplug/spotless/tree/master/plugin-gradle
+ */
+spotless {
+
+  /* Java formatting */
+  java {
+    targetExclude "**/build", "bin", "**/Scratch*.java", "tmp", "libs"
+
+    removeUnusedImports()
+
+    custom "Refuse wildcard imports", {
+      if (it =~ /\nimport .*\*;/) {
+        throw new Error("Do not use wildcard imports. 'spotlessApply' cannot resolve this issue.");
+      }
+    }
+
+    importOrderFile "${projectDir}/src/main/resources/eclipse.importorder"
+    eclipse().configFile "${projectDir}/src/main/resources/nshmp.eclipse-format.xml"
+
+    trimTrailingWhitespace()
+    indentWithSpaces(2)
+    endWithNewline()
+  }
+
+  /* Gradle file formatting */
+  groovyGradle {
+    target "**/*.gradle"
+    targetExclude "**/build", ".gradle", "bin", "tmp"
+    greclipse()
+    trimTrailingWhitespace()
+    indentWithSpaces(2)
+    endWithNewline()
+  }
+
+  /* .gitignore, Bash, and Dockerfile formatting */
+  format "misc", {
+    target "**/.gitgnore", "**/*.sh", "**/*Dockerfile"
+    targetExclude "**/build", ".gradle/**", ".settings", "tmp/**",
+        "libs/**", "node_modules"
+    trimTrailingWhitespace()
+    indentWithSpaces(2)
+    endWithNewline()
+    replaceRegex "Too many blank lines", "^\\n\\n+", "\n"
+  }
+
+  /* XML formatting */
+  format "xml", {
+    target fileTree(".") {
+      include "**/*.xml"
+      exclude "**/build", ".settings", ".classpath", ".project",
+          "tmp/**", ".gradle/**", "libs/**", "node_modules"
+    }
+    eclipseWtp("xml")
+    trimTrailingWhitespace()
+    indentWithSpaces(2)
+    endWithNewline()
+  }
+}
diff --git a/src/main/resources/eclipse.importorder b/src/main/resources/eclipse.importorder
new file mode 100644
index 000000000..2ef1b480f
--- /dev/null
+++ b/src/main/resources/eclipse.importorder
@@ -0,0 +1,7 @@
+#Organize Import Order
+0=java
+1=javax
+2=org
+3=com
+4=gov
+5=ucar
diff --git a/src/main/resources/nshmp.eclipse-format.xml b/src/main/resources/nshmp.eclipse-format.xml
new file mode 100644
index 000000000..181dbd16d
--- /dev/null
+++ b/src/main/resources/nshmp.eclipse-format.xml
@@ -0,0 +1,916 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<profiles version="13">
+  <profile kind="CodeFormatterProfile" name="nshmp" version="13">
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment"
+      value="common_lines" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation"
+      value="common_lines" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.blank_lines_after_imports"
+      value="1" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement"
+      value="common_lines" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments"
+      value="true" />
+    <setting id="org.eclipse.jdt.core.formatter.indentation.size"
+      value="2" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration"
+      value="common_lines" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for"
+      value="insert" />
+    <setting id="org.eclipse.jdt.core.formatter.disabling_tag"
+      value="@formatter:off" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.continuation_indentation"
+      value="2" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants"
+      value="81" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.blank_lines_before_imports"
+      value="1" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.blank_lines_after_package"
+      value="1" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement"
+      value="common_lines" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant"
+      value="16" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.comment.indent_root_tags"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch"
+      value="true" />
+    <setting id="org.eclipse.jdt.core.formatter.enabling_tag"
+      value="@formatter:on" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position"
+      value="false" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration"
+      value="16" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line"
+      value="false" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations"
+      value="2" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references"
+      value="0" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column"
+      value="false" />
+    <setting
+      id="org.eclipse.jdt.core.compiler.problem.enumIdentifier"
+      value="error" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration"
+      value="end_of_line" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.comment.line_length" value="80" />
+    <setting id="org.eclipse.jdt.core.formatter.use_on_off_tags"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments"
+      value="false" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration"
+      value="end_of_line" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch"
+      value="16" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body"
+      value="0" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line"
+      value="false" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression"
+      value="16" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause"
+      value="common_lines" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call"
+      value="16" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.brace_position_for_block"
+      value="end_of_line" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration"
+      value="end_of_line" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body"
+      value="end_of_line" />
+    <setting id="org.eclipse.jdt.core.formatter.compact_else_if"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line"
+      value="false" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration"
+      value="16" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_type_parameters"
+      value="0" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation"
+      value="16" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration"
+      value="16" />
+    <setting
+      id="org.eclipse.jdt.core.compiler.problem.assertIdentifier"
+      value="error" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment"
+      value="false" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment"
+      value="false" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer"
+      value="32" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve"
+      value="1" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation"
+      value="common_lines" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.comment.format_line_comments"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.align_type_members_on_columns"
+      value="false" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_assignment"
+      value="80" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration"
+      value="80" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration"
+      value="0" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression"
+      value="16" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line"
+      value="false" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration"
+      value="end_of_line" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case"
+      value="end_of_line" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.comment.format_header"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression"
+      value="16" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode"
+      value="enabled" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration"
+      value="0" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="false" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines"
+      value="2147483647" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration"
+      value="end_of_line" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try"
+      value="80" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations"
+      value="false" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause"
+      value="common_lines" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation"
+      value="16" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column"
+      value="false" />
+    <setting id="org.eclipse.jdt.core.compiler.source" value="1.8" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws"
+      value="insert" />
+    <setting id="org.eclipse.jdt.core.formatter.tabulation.size"
+      value="2" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.comment.format_source_code"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.blank_lines_before_field"
+      value="0" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer"
+      value="2" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.blank_lines_before_method"
+      value="1" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration"
+      value="80" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration"
+      value="80" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.wrap_before_assignment_operator"
+      value="false" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.8" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.brace_position_for_switch"
+      value="end_of_line" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.comment.format_html" value="false" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration"
+      value="common_lines" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_compact_if"
+      value="16" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_type_arguments"
+      value="0" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation"
+      value="16" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk"
+      value="1" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_after_label"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type"
+      value="1" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression"
+      value="16" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.comment.format_block_comments"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration"
+      value="16" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields"
+      value="16" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer"
+      value="end_of_line" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.wrap_before_binary_operator"
+      value="false" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch"
+      value="do not insert" />
+    <setting id="org.eclipse.jdt.core.compiler.compliance"
+      value="1.8" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration"
+      value="common_lines" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant"
+      value="end_of_line" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration"
+      value="end_of_line" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.blank_lines_before_package"
+      value="0" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header"
+      value="0" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.join_lines_in_comments"
+      value="true" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional"
+      value="insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description"
+      value="false" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement"
+      value="do not insert" />
+    <setting id="org.eclipse.jdt.core.formatter.tabulation.char"
+      value="space" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups"
+      value="1" />
+    <setting id="org.eclipse.jdt.core.formatter.lineSplit"
+      value="100" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation"
+      value="do not insert" />
+    <setting
+      id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch"
+      value="insert" />
+  </profile>
+</profiles>
-- 
GitLab