Przeglądaj źródła

New Strategy page

Axel Nordh 1 rok temu
rodzic
commit
c3680cb95c
100 zmienionych plików z 1263 dodań i 368 usunięć
  1. 382 0
      .vscode/java-formatter.xml
  2. 2 1
      .vscode/settings.json
  3. 78 79
      Odds/pom.xml
  4. 6 6
      Odds/src/main/Main.java
  5. 7 19
      Odds/src/mysql/Mysql.java
  6. 6 9
      Odds/src/parser/BetSafeParser.java
  7. 14 16
      Odds/src/parser/ExpektParser.java
  8. 6 8
      Odds/src/parser/NordicBetParser.java
  9. 31 16
      OddsJavaFx/src/controllers/MatchStatTabController.java
  10. 82 56
      OddsJavaFx/src/objects/SoccerMatchAnalysis.java
  11. 4 2
      OddsJavaFx/src/objects/visual/FibonacciBets.java
  12. 3 0
      OddsStrategyWeb/.vscode/settings.json
  13. 157 124
      OddsStrategyWeb/pom.xml
  14. 3 10
      OddsStrategyWeb/src/main/java/MainApplication.java
  15. 7 1
      OddsStrategyWeb/src/main/java/MainPage.html
  16. 27 4
      OddsStrategyWeb/src/main/java/MainPage.java
  17. 15 0
      OddsStrategyWeb/src/main/java/components/MatchTable/MatchTable.css
  18. 30 0
      OddsStrategyWeb/src/main/java/components/MatchTable/MatchTable.html
  19. 97 0
      OddsStrategyWeb/src/main/java/components/MatchTable/MatchTable.java
  20. 35 0
      OddsStrategyWeb/src/main/java/components/MatchTable/SortableSoccerMatchAnalysisDataProvider.java
  21. 39 0
      OddsStrategyWeb/src/main/java/database/Database.java
  22. 9 12
      OddsStrategyWeb/src/main/webapp/WEB-INF/web.xml
  23. 38 0
      OddsStrategyWeb/src/test/jetty/jetty-http.xml
  24. 45 0
      OddsStrategyWeb/src/test/jetty/jetty-https.xml
  25. 61 0
      OddsStrategyWeb/src/test/jetty/jetty-ssl.xml
  26. 23 0
      OddsStrategyWeb/src/test/jetty/jetty.xml
  27. BIN
      OddsStrategyWeb/src/test/resources/keystore
  28. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT.war
  29. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/MainApplication.class
  30. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/MainPage.class
  31. 11 0
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/MainPage.html
  32. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/components/MatchTable/MatchTable$1.class
  33. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/components/MatchTable/MatchTable$2.class
  34. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/components/MatchTable/MatchTable$3.class
  35. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/components/MatchTable/MatchTable.class
  36. 15 0
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/components/MatchTable/MatchTable.css
  37. 30 0
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/components/MatchTable/MatchTable.html
  38. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/components/MatchTable/SortableSoccerMatchAnalysisDataProvider.class
  39. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/database/Database.class
  40. 0 5
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/main/java/MainPage.html
  41. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/Odds-0.0.1-SNAPSHOT.jar
  42. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/OddsFx-0.0.1-SNAPSHOT.jar
  43. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/RCaller-3.0.jar
  44. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/auto-service-annotations-1.1.1.jar
  45. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/bcpkix-jdk18on-1.76.jar
  46. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/bcprov-jdk18on-1.76.jar
  47. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/bcutil-jdk18on-1.76.jar
  48. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/byte-buddy-1.14.18.jar
  49. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/checker-qual-3.12.0.jar
  50. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-codec-1.15.jar
  51. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-collections4-4.4.jar
  52. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-compress-1.26.1.jar
  53. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-exec-1.3.jar
  54. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-fileupload2-core-2.0.0-M2.jar
  55. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-fileupload2-jakarta-servlet5-2.0.0-M2.jar
  56. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-io-2.10.0.jar
  57. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-lang-2.6.jar
  58. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-lang3-3.14.0.jar
  59. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-logging-1.2.jar
  60. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-net-3.9.0.jar
  61. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-text-1.10.0.jar
  62. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/dec-0.1.2.jar
  63. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/docker-java-3.3.6.jar
  64. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/docker-java-api-3.3.6.jar
  65. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/docker-java-core-3.3.6.jar
  66. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/docker-java-transport-3.3.6.jar
  67. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/docker-java-transport-httpclient5-3.3.6.jar
  68. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/error_prone_annotations-2.11.0.jar
  69. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/failsafe-3.3.2.jar
  70. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/failureaccess-1.0.1.jar
  71. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/gson-2.9.0.jar
  72. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/guava-31.1-jre.jar
  73. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/htmlunit-2.70.0.jar
  74. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/htmlunit-core-js-2.70.0.jar
  75. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/htmlunit-cssparser-1.14.0.jar
  76. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/htmlunit-xpath-2.70.0.jar
  77. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/httpclient-4.5.14.jar
  78. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/httpclient5-5.2.1.jar
  79. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/httpcore-4.4.16.jar
  80. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/httpcore5-5.2.jar
  81. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/httpcore5-h2-5.2.jar
  82. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/httpmime-4.5.14.jar
  83. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/j2objc-annotations-1.3.jar
  84. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jackson-annotations-2.10.3.jar
  85. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jackson-core-2.10.3.jar
  86. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jackson-databind-2.10.3.jar
  87. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/javafx-base-22.0.1-win.jar
  88. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/javafx-base-22.0.1.jar
  89. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/javafx-controls-22.0.1-win.jar
  90. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/javafx-controls-22.0.1.jar
  91. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/javafx-fxml-22.0.1-win.jar
  92. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/javafx-fxml-22.0.1.jar
  93. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/javafx-graphics-22.0.1-win.jar
  94. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/javafx-graphics-22.0.1.jar
  95. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jcl-over-slf4j-1.7.30.jar
  96. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jdk-serializable-functional-1.9.0.jar
  97. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jetty-alpn-client-11.0.21.jar
  98. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jetty-client-11.0.21.jar
  99. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jetty-http-11.0.21.jar
  100. BIN
      OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jetty-io-11.0.21.jar

+ 382 - 0
.vscode/java-formatter.xml

@@ -0,0 +1,382 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<profiles version="20">
+    <profile kind="CodeFormatterProfile" name="JavaConventions" version="20">
+        <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_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_logical_operator" value="insert"/>
+        <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="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.parentheses_positions_in_record_declaration" value="common_lines"/>
+        <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="4"/>
+        <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_after_arrow_in_switch_default" 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_space_after_semicolon_in_for" value="insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.align_with_spaces" value="false"/>
+        <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.number_of_blank_lines_before_code_block" value="0"/>
+        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions" value="do not insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="16"/>
+        <setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>
+        <setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body" value="0"/>
+        <setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
+        <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="false"/>
+        <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="true"/>
+        <setting id="org.eclipse.jdt.core.formatter.alignment_for_record_components" value="16"/>
+        <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.insert_space_before_arrow_in_switch_case" value="insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator" value="true"/>
+        <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_space_after_prefix_operator" value="do not insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
+        <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.alignment_for_logical_operator" value="16"/>
+        <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.keep_annotation_declaration_on_one_line" value="one_line_never"/>
+        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_record_declaration" value="do not insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant" value="do not insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator" value="insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
+        <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.align_tags_descriptions_grouped" value="true"/>
+        <setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="80"/>
+        <setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="false"/>
+        <setting id="org.eclipse.jdt.core.formatter.keep_method_body_on_one_line" value="one_line_never"/>
+        <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.keep_loop_body_block_on_one_line" value="one_line_never"/>
+        <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.blank_lines_before_abstract_method" value="1"/>
+        <setting id="org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line" value="one_line_never"/>
+        <setting id="org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns" value="false"/>
+        <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.keep_type_declaration_on_one_line" value="one_line_never"/>
+        <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="do not insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
+        <setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause" value="common_lines"/>
+        <setting id="org.eclipse.jdt.core.formatter.alignment_for_additive_operator" value="16"/>
+        <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.insert_space_before_opening_brace_in_record_constructor" value="insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
+        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_relational_operator" value="insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator" value="16"/>
+        <setting id="org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line" value="one_line_never"/>
+        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions" value="insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.wrap_before_shift_operator" value="true"/>
+        <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.keep_record_declaration_on_one_line" value="one_line_never"/>
+        <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.number_of_blank_lines_at_end_of_code_block" value="0"/>
+        <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.insert_space_before_bitwise_operator" value="insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
+        <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.formatter.alignment_for_compact_loops" value="16"/>
+        <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.keep_simple_for_body_on_same_line" value="false"/>
+        <setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>
+        <setting id="org.eclipse.jdt.core.formatter.alignment_for_relational_operator" value="0"/>
+        <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_unary_operator" value="do not insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
+        <setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="false"/>
+        <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_after_additive_operator" value="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_space_after_string_concatenation" value="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.brace_position_for_record_declaration" value="end_of_line"/>
+        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.text_block_indentation" value="0"/>
+        <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="0"/>
+        <setting id="org.eclipse.jdt.core.formatter.alignment_for_module_statements" value="16"/>
+        <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.number_of_blank_lines_after_code_block" value="0"/>
+        <setting id="org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions" value="false"/>
+        <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="16"/>
+        <setting id="org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line" value="one_line_never"/>
+        <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="80"/>
+        <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.align_assignment_statements_on_columns" value="false"/>
+        <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_arrow_in_switch_default" value="insert"/>
+        <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.insert_new_line_between_different_tags" value="do not insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain" value="0"/>
+        <setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/>
+        <setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
+        <setting id="org.eclipse.jdt.core.formatter.wrap_before_assertion_message_operator" value="true"/>
+        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_additive_operator" value="insert"/>
+        <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.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="true"/>
+        <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.alignment_for_shift_operator" value="0"/>
+        <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.alignment_for_bitwise_operator" value="16"/>
+        <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.formatter.keep_code_block_on_one_line" value="one_line_never"/>
+        <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.insert_space_after_comma_in_record_components" value="insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="8"/>
+        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator" value="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="16"/>
+        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_record_declaration" value="do not insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
+        <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.formatter.insert_space_after_not_operator" value="do not insert"/>
+        <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="true"/>
+        <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.keep_lambda_body_block_on_one_line" value="one_line_never"/>
+        <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="0"/>
+        <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_record_constructor_on_one_line" value="one_line_never"/>
+        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_declaration" value="insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
+        <setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="false"/>
+        <setting id="org.eclipse.jdt.core.formatter.alignment_for_assertion_message" value="16"/>
+        <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_after_arrow_in_switch_case" value="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_logical_operator" value="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.indent_body_declarations_compare_to_record_header" value="true"/>
+        <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.alignment_for_superinterfaces_in_record_declaration" 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.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.wrap_before_bitwise_operator" value="true"/>
+        <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.wrap_before_relational_operator" value="true"/>
+        <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.comment.indent_tag_description" value="false"/>
+        <setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
+        <setting id="org.eclipse.jdt.core.formatter.brace_position_for_record_constructor" value="end_of_line"/>
+        <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.alignment_for_string_concatenation" value="16"/>
+        <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.blank_lines_after_last_class_body_declaration" value="0"/>
+        <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.keep_simple_while_body_on_same_line" value="false"/>
+        <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_logical_operator" value="true"/>
+        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_shift_operator" value="insert"/>
+        <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.formatter.blank_lines_between_statement_group_in_switch" value="0"/>
+        <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_after_shift_operator" value="insert"/>
+        <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.keep_simple_do_while_body_on_same_line" value="false"/>
+        <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.keep_enum_declaration_on_one_line" value="one_line_never"/>
+        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_record_components" 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.insert_space_before_multiplicative_operator" value="insert"/>
+        <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.wrap_before_additive_operator" value="true"/>
+        <setting id="org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line" value="false"/>
+        <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_before_string_concatenation" value="insert"/>
+        <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.number_of_blank_lines_at_beginning_of_code_block" value="0"/>
+        <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.insert_space_before_opening_paren_in_record_declaration" value="do not insert"/>
+        <setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="mixed"/>
+        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_relational_operator" value="insert"/>
+        <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.wrap_before_string_concatenation" value="true"/>
+        <setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
+        <setting id="org.eclipse.jdt.core.formatter.lineSplit" value="130"/>
+        <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>

+ 2 - 1
.vscode/settings.json

@@ -1,4 +1,5 @@
 {
   "java.configuration.updateBuildConfiguration": "automatic",
-  "java.compile.nullAnalysis.mode": "disabled"
+  "java.compile.nullAnalysis.mode": "disabled",
+  "java.format.settings.url": ".vscode/java-formatter.xml"
 }

+ 78 - 79
Odds/pom.xml

@@ -1,57 +1,58 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>Odds</groupId>
   <artifactId>Odds</artifactId>
   <version>0.0.1-SNAPSHOT</version>
-    <packaging>pom</packaging>
-    <build>
+  <!-- <packaging>pom</packaging> -->
+  <build>
     <sourceDirectory>src</sourceDirectory>
     <plugins>
       <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.12.1</version>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.12.1</version>
         <configuration>
           <source>17</source>
           <target>17</target>
         </configuration>
       </plugin>
-      
+
       <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-shade-plugin</artifactId>
-          <version>3.5.1</version>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <version>3.5.1</version>
         <executions>
-            <execution>
-                <phase>package</phase>
-                <goals>
-                    <goal>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>
                         shade
-                    </goal>
-                </goals>
-                <configuration>
-                    <transformers>
-                        <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
-                            <mainClass>main.Main</mainClass>
-                        </transformer>
-                    </transformers>
-                  <filters>
-                    <filter>
-                      <artifact>*:*</artifact>
-                      <excludes>
-                        <exclude>META-INF/*.SF</exclude>
-                        <exclude>META-INF/*.DSA</exclude>
-                        <exclude>META-INF/*.RSA</exclude>
-                      </excludes>
-                    </filter>
-                  </filters>
-                </configuration>
-            </execution>
+              </goal>
+            </goals>
+            <configuration>
+              <transformers>
+                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+                  <mainClass>main.Main</mainClass>
+                </transformer>
+              </transformers>
+              <filters>
+                <filter>
+                  <artifact>*:*</artifact>
+                  <excludes>
+                    <exclude>META-INF/*.SF</exclude>
+                    <exclude>META-INF/*.DSA</exclude>
+                    <exclude>META-INF/*.RSA</exclude>
+                  </excludes>
+                </filter>
+              </filters>
+            </configuration>
+          </execution>
         </executions>
 
-    </plugin>
+      </plugin>
 
-   <!--  <plugin>
+      <!--  <plugin>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-maven-plugin</artifactId>
           <executions>
@@ -71,57 +72,55 @@
 -->
     </plugins>
   </build>
- <repositories>
-  <repository>
-    <id>nordhs-repo</id>
-    <name>Nords Repo</name>
-    <url>http://nordh.xyz:9099/repository/nordhs-repo/</url>
-  </repository>
-</repositories>
+  <repositories>
+    <repository>
+      <id>nordhs-repo</id>
+      <name>Nords Repo</name>
+      <url>http://nordh.xyz:9099/repository/nordhs-repo/</url>
+    </repository>
+  </repositories>
   <dependencies>
-	<dependency>
-	    <groupId>net.sourceforge.htmlunit</groupId>
-	    <artifactId>htmlunit</artifactId>
-	    <version>2.66.0</version>
-	</dependency>
+    <!-- https://mvnrepository.com/artifact/org.htmlunit/htmlunit -->
+    <dependency>
+      <groupId>org.htmlunit</groupId>
+      <artifactId>htmlunit</artifactId>
+      <version>4.4.0</version>
+    </dependency>
+
     <dependency>
       <groupId>com.github.jbytecode</groupId>
       <artifactId>RCaller</artifactId>
       <version>3.0</version>
     </dependency>
-      <dependency>
-          <groupId>com.mysql</groupId>
-          <artifactId>mysql-connector-j</artifactId>
-          <version>8.0.33</version>
-      </dependency>
     <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-maven-plugin</artifactId>
-        <version>2.7.1</version>
+      <groupId>com.mysql</groupId>
+      <artifactId>mysql-connector-j</artifactId>
+      <version>9.0.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-maven-plugin</artifactId>
+      <version>3.3.4</version>
     </dependency>
-	<dependency>
-	    <groupId>com.fasterxml.jackson.core</groupId>
-	    <artifactId>jackson-databind</artifactId>
-	    <version>2.13.3</version>
-	</dependency>
-		<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
-	<dependency>
-	    <groupId>org.seleniumhq.selenium</groupId>
-	    <artifactId>selenium-java</artifactId>
-	    <version>4.6.0</version>
-	</dependency>
-		<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
-	<dependency>
-	    <groupId>com.google.guava</groupId>
-	    <artifactId>guava</artifactId>
-	    <version>31.1-jre</version>
-	</dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-databind</artifactId>
+      <version>2.18.0</version>
+    </dependency>
+    <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
+    <dependency>
+      <groupId>org.seleniumhq.selenium</groupId>
+      <artifactId>selenium-java</artifactId>
+      <version>4.25.0</version>
+    </dependency>
+    <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
+
 
-      <dependency>
-          <groupId>io.github.bonigarcia</groupId>
-          <artifactId>webdrivermanager</artifactId>
-          <version>5.5.3</version>
-      </dependency>
+    <dependency>
+      <groupId>io.github.bonigarcia</groupId>
+      <artifactId>webdrivermanager</artifactId>
+      <version>5.9.2</version>
+    </dependency>
   </dependencies>
-  
+
 </project>

+ 6 - 6
Odds/src/main/Main.java

@@ -51,12 +51,12 @@ public class Main {
 
         System.out.println("Getting One days ago matches");
         op.getMatches(LocalDateTime.now().plusDays(-1));
-        System.out.println("Getting Todays matches");
-        op.getMatches(LocalDateTime.now().plusDays(0));
-        System.out.println("Getting Tomorrows matches");
-        op.getMatches(LocalDateTime.now().plusDays(1));
-        System.out.println("Getting Next days matches");
-        op.getMatches(LocalDateTime.now().plusDays(2));
+//        System.out.println("Getting Todays matches");
+//        op.getMatches(LocalDateTime.now().plusDays(0));
+//        System.out.println("Getting Tomorrows matches");
+//        op.getMatches(LocalDateTime.now().plusDays(1));
+//        System.out.println("Getting Next days matches");
+//        op.getMatches(LocalDateTime.now().plusDays(2));
     }
 
 }

+ 7 - 19
Odds/src/mysql/Mysql.java

@@ -1,11 +1,10 @@
 package mysql;
 
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
+import com.google.common.base.Strings;
+import object.CurrentParsing;
+import object.ResultDTO;
+
+import java.sql.*;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -13,13 +12,6 @@ import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.eclipse.jetty.util.log.Log;
-
-import com.google.common.base.Strings;
-
-import object.CurrentParsing;
-import object.ResultDTO;
-
 public class Mysql {
 
     private static final Mysql instance = new Mysql();
@@ -79,8 +71,8 @@ public class Mysql {
 
     public void addResult(ResultDTO result) {
         if (result.getCountryId() < 0 || result.getLeagueId() < 0) {
-            System.out.println(String.format("Must supply countryId %s and leagueId %s", result.getCountryId(),
-                    result.getLeagueId()));
+            System.out.printf("Must supply countryId %s and leagueId %s%n", result.getCountryId(),
+                    result.getLeagueId());
             return;
         }
         try {
@@ -357,7 +349,6 @@ public class Mysql {
                 }
             }
         } else {
-            Log.getLog().info("No league Specified for " + teamName + " with countryId " + countryId);
             teamId = -1;
         }
 
@@ -393,9 +384,6 @@ public class Mysql {
 
             stat.executeUpdate();
         } catch (final SQLException e) {
-            Log.getLog().info("Failing sql: %s, %s, %s, %s, %s, %s, %s", sql, parsedYear, currentParsePage,
-                    gameDate.toString(), sportId, countryId,
-                    leagueId);
             e.printStackTrace();
         }
     }

+ 6 - 9
Odds/src/parser/BetSafeParser.java

@@ -1,10 +1,6 @@
 package parser;
 
-import java.time.Duration;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
-
+import object.ResultDTO;
 import org.openqa.selenium.By;
 import org.openqa.selenium.JavascriptExecutor;
 import org.openqa.selenium.StaleElementReferenceException;
@@ -13,9 +9,10 @@ import org.openqa.selenium.chrome.ChromeDriver;
 import org.openqa.selenium.support.ui.ExpectedConditions;
 import org.openqa.selenium.support.ui.WebDriverWait;
 
-import com.gargoylesoftware.htmlunit.ElementNotFoundException;
-
-import object.ResultDTO;
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
 
 public class BetSafeParser extends ParserBase {
 
@@ -87,7 +84,7 @@ public class BetSafeParser extends ParserBase {
                     scrollElementIntoView(driver, element);
                 }
 
-            } catch (ElementNotFoundException | InterruptedException e) {
+            } catch (InterruptedException e) {
                 // Empty by design, no more matches today
             }
 

+ 14 - 16
Odds/src/parser/ExpektParser.java

@@ -1,5 +1,19 @@
 package parser;
 
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import object.ResultDTO;
+import org.htmlunit.FailingHttpStatusCodeException;
+import org.htmlunit.WebClient;
+import org.htmlunit.WebResponse;
+import org.htmlunit.html.HtmlPage;
+import org.openqa.selenium.By;
+import org.openqa.selenium.JavascriptExecutor;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.chrome.ChromeDriver;
+import org.openqa.selenium.support.ui.ExpectedConditions;
+import org.openqa.selenium.support.ui.WebDriverWait;
+
 import java.io.IOException;
 import java.net.URL;
 import java.time.Duration;
@@ -9,22 +23,6 @@ import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.openqa.selenium.By;
-import org.openqa.selenium.JavascriptExecutor;
-import org.openqa.selenium.WebElement;
-import org.openqa.selenium.chrome.ChromeDriver;
-import org.openqa.selenium.support.ui.ExpectedConditions;
-import org.openqa.selenium.support.ui.WebDriverWait;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
-import com.gargoylesoftware.htmlunit.WebClient;
-import com.gargoylesoftware.htmlunit.WebResponse;
-import com.gargoylesoftware.htmlunit.html.HtmlPage;
-
-import object.ResultDTO;
-
 public class ExpektParser extends ParserBase {
 
     List<ResultDTO> result = new ArrayList<>();

+ 6 - 8
Odds/src/parser/NordicBetParser.java

@@ -1,10 +1,7 @@
 package parser;
 
-import java.time.Duration;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
-
+import object.ResultDTO;
+import org.htmlunit.ElementNotFoundException;
 import org.openqa.selenium.By;
 import org.openqa.selenium.JavascriptExecutor;
 import org.openqa.selenium.StaleElementReferenceException;
@@ -13,9 +10,10 @@ import org.openqa.selenium.chrome.ChromeDriver;
 import org.openqa.selenium.support.ui.ExpectedConditions;
 import org.openqa.selenium.support.ui.WebDriverWait;
 
-import com.gargoylesoftware.htmlunit.ElementNotFoundException;
-
-import object.ResultDTO;
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
 
 public class NordicBetParser extends ParserBase {
 

+ 31 - 16
OddsJavaFx/src/controllers/MatchStatTabController.java

@@ -18,7 +18,8 @@ import javafx.scene.control.TableView.TableViewSelectionModel;
 import javafx.scene.control.cell.MapValueFactory;
 import objects.TeamStanding;
 
-@SuppressWarnings("rawtypes") public class MatchStatTabController implements Initializable {
+@SuppressWarnings("rawtypes")
+public class MatchStatTabController implements Initializable {
 
 	private static final String GOALS_CONCEDED = "goalsConceded";
 
@@ -30,17 +31,27 @@ import objects.TeamStanding;
 
 	private static MatchStatTabController instance;
 
-	@FXML TableView<Map<String, Object>> matchStatTable;
-
-	@FXML TableColumn<Map, String> team = new TableColumn<>("team");
-	@FXML TableColumn<Map, Integer> gamesPlayed = new TableColumn<>(GAMES_PLAYED);
-	@FXML TableColumn<Map, Integer> win = new TableColumn<>("win");
-	@FXML TableColumn<Map, Integer> draw = new TableColumn<>("draw");
-	@FXML TableColumn<Map, Integer> loss = new TableColumn<>("loss");
-	@FXML TableColumn<Map, Integer> points = new TableColumn<>(POINTS_STRING);
-	@FXML TableColumn<Map, Float> goalsScored = new TableColumn<>(GOALS_SCORED);
-	@FXML TableColumn<Map, Float> goalsConceded = new TableColumn<>(GOALS_CONCEDED);
-	@FXML TableColumn<Map, Float> diff = new TableColumn<>("diff");
+	@FXML
+	TableView<Map<String, Object>> matchStatTable;
+
+	@FXML
+	TableColumn<Map, String> team = new TableColumn<>("team");
+	@FXML
+	TableColumn<Map, Integer> gamesPlayed = new TableColumn<>(GAMES_PLAYED);
+	@FXML
+	TableColumn<Map, Integer> win = new TableColumn<>("win");
+	@FXML
+	TableColumn<Map, Integer> draw = new TableColumn<>("draw");
+	@FXML
+	TableColumn<Map, Integer> loss = new TableColumn<>("loss");
+	@FXML
+	TableColumn<Map, Integer> points = new TableColumn<>(POINTS_STRING);
+	@FXML
+	TableColumn<Map, Float> goalsScored = new TableColumn<>(GOALS_SCORED);
+	@FXML
+	TableColumn<Map, Float> goalsConceded = new TableColumn<>(GOALS_CONCEDED);
+	@FXML
+	TableColumn<Map, Float> diff = new TableColumn<>("diff");
 
 	public static MatchStatTabController getInstance() {
 		if (instance == null) {
@@ -53,7 +64,8 @@ import objects.TeamStanding;
 		return instance;
 	}
 
-	@Override public void initialize(URL arg0, ResourceBundle arg1) {
+	@Override
+	public void initialize(URL arg0, ResourceBundle arg1) {
 		team.setCellValueFactory(new MapValueFactory<>("team"));
 		gamesPlayed.setCellValueFactory(new MapValueFactory<>(GAMES_PLAYED));
 		win.setCellValueFactory(new MapValueFactory<>("win"));
@@ -88,7 +100,8 @@ import objects.TeamStanding;
 
 	public void setTeamSelected(String teamName, boolean homeTeam) {
 		TableViewSelectionModel<Map<String, Object>> selectionModel = matchStatTable.getSelectionModel();
-		java.util.Optional<Map<String, Object>> optional = matchStatTable.getItems().stream().filter(p -> p.get("team").equals(teamName)).findFirst();
+		java.util.Optional<Map<String, Object>> optional = matchStatTable.getItems().stream()
+				.filter(p -> p.get("team").equals(teamName)).findFirst();
 		if (optional.isPresent()) {
 			selectionModel.setSelectionMode(SelectionMode.MULTIPLE);
 			int indexOf = matchStatTable.getItems().indexOf(optional.get());
@@ -103,9 +116,11 @@ import objects.TeamStanding;
 
 	public int getTeamPositionDiff(String homeTeamName, String awayTeamName) {
 		int result = 0;
-		Optional<Map<String, Object>> homeTeamOptional = matchStatTable.getItems().stream().filter(p -> p.get("team").equals(homeTeamName))
+		Optional<Map<String, Object>> homeTeamOptional = matchStatTable.getItems().stream()
+				.filter(p -> p.get("team").equals(homeTeamName))
 				.findFirst();
-		Optional<Map<String, Object>> awayTeamOptional = matchStatTable.getItems().stream().filter(p -> p.get("team").equals(awayTeamName))
+		Optional<Map<String, Object>> awayTeamOptional = matchStatTable.getItems().stream()
+				.filter(p -> p.get("team").equals(awayTeamName))
 				.findFirst();
 
 		if (homeTeamOptional.isPresent() && awayTeamOptional.isPresent()) {

+ 82 - 56
OddsJavaFx/src/objects/SoccerMatchAnalysis.java

@@ -2,6 +2,7 @@ package objects;
 
 import data.GuiMysql;
 
+import java.io.Serializable;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.sql.PreparedStatement;
@@ -13,7 +14,7 @@ import java.time.format.DateTimeFormatter;
 import java.util.List;
 import java.util.Optional;
 
-public class SoccerMatchAnalysis extends SoccerMatch {
+public class SoccerMatchAnalysis extends SoccerMatch implements Serializable {
 
     GuiMysql database;
     private List<TeamStanding> leagueTable;
@@ -39,7 +40,7 @@ public class SoccerMatchAnalysis extends SoccerMatch {
         return percentages;
     }
 
-    public void setPercentages(String value){
+    public void setPercentages(String value) {
         percentages = value;
     }
 
@@ -130,10 +131,16 @@ public class SoccerMatchAnalysis extends SoccerMatch {
      */
     public int scoringTotal(int gamesLookback, boolean homeTeam) {
         int result = 0;
-        /* String sql = "SELECT * FROM " + "(SELECT * FROM SoccerResults WHERE homeTeamId = ? AND leagueId = ? AND DATE" +
-                "(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) ht " + "UNION DISTINCT " + "(SELECT * FROM " +
-                "SoccerResults WHERE awayTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC " +
-                "LIMIT ?)"; */
+        /*
+         * String sql = "SELECT * FROM " +
+         * "(SELECT * FROM SoccerResults WHERE homeTeamId = ? AND leagueId = ? AND DATE"
+         * +
+         * "(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) ht " + "UNION DISTINCT " +
+         * "(SELECT * FROM " +
+         * "SoccerResults WHERE awayTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC "
+         * +
+         * "LIMIT ?)";
+         */
 
         String sql = "SELECT * FROM ( " +
                 "SELECT * FROM SoccerResults " +
@@ -156,11 +163,12 @@ public class SoccerMatchAnalysis extends SoccerMatch {
             stat.setString(4, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
             stat.setInt(5, gamesLookback);
 
-           /* stat.setInt(5, team.getTeamId());
-            stat.setInt(6, team.getTeamLeagueId());
-            stat.setString(7, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
-            stat.setInt(8, gamesLookback);
-*/
+            /*
+             * stat.setInt(5, team.getTeamId());
+             * stat.setInt(6, team.getTeamLeagueId());
+             * stat.setString(7, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
+             * stat.setInt(8, gamesLookback);
+             */
             ResultSet rs = stat.executeQuery();
 
             while (rs.next()) {
@@ -186,8 +194,9 @@ public class SoccerMatchAnalysis extends SoccerMatch {
     public int getTablePosition(boolean homeTeam) {
         int result = 0;
         updateLeagueTable();
-        Optional<TeamStanding> standingOptional = leagueTable.stream().filter(p -> p.getTeamName().equals(homeTeam ?
-                getHomeTeam().getTeamName() : getAwayTeam().getTeamName())).findFirst();
+        Optional<TeamStanding> standingOptional = leagueTable.stream().filter(
+                p -> p.getTeamName().equals(homeTeam ? getHomeTeam().getTeamName() : getAwayTeam().getTeamName()))
+                .findFirst();
 
         if (standingOptional.isPresent()) {
             TeamStanding standing = standingOptional.get();
@@ -212,11 +221,11 @@ public class SoccerMatchAnalysis extends SoccerMatch {
         int result = 0;
         updateLeagueTable();
 
-        Optional<TeamStanding> homeTeamStandingOptional =
-                leagueTable.stream().filter(p -> p.getTeamName().equals(getHomeTeam().getTeamName())).findFirst();
+        Optional<TeamStanding> homeTeamStandingOptional = leagueTable.stream()
+                .filter(p -> p.getTeamName().equals(getHomeTeam().getTeamName())).findFirst();
 
-        Optional<TeamStanding> awayTeamStandingOptional =
-                leagueTable.stream().filter(p -> p.getTeamName().equals(getAwayTeam().getTeamName())).findFirst();
+        Optional<TeamStanding> awayTeamStandingOptional = leagueTable.stream()
+                .filter(p -> p.getTeamName().equals(getAwayTeam().getTeamName())).findFirst();
 
         if (homeTeamStandingOptional.isPresent() && awayTeamStandingOptional.isPresent()) {
             TeamStanding homeStanding = homeTeamStandingOptional.get();
@@ -284,30 +293,38 @@ public class SoccerMatchAnalysis extends SoccerMatch {
                 "AND DATE(gameDate) < ? " +
                 "ORDER BY gameDate DESC " +
                 "LIMIT ?";
-        /*String sql = "SELECT * FROM " + "(SELECT * FROM SoccerResults WHERE homeTeamId = ? AND leagueId = ? AND DATE" +
-                "(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) a " + "UNION DISTINCT " + "(SELECT * FROM " +
-                "SoccerResults WHERE awayTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC " +
-                "LIMIT ?) " + "ORDER BY gameDate DESC " + "LIMIT ?"; */
+        /*
+         * String sql = "SELECT * FROM " +
+         * "(SELECT * FROM SoccerResults WHERE homeTeamId = ? AND leagueId = ? AND DATE"
+         * +
+         * "(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) a " + "UNION DISTINCT " +
+         * "(SELECT * FROM " +
+         * "SoccerResults WHERE awayTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC "
+         * +
+         * "LIMIT ?) " + "ORDER BY gameDate DESC " + "LIMIT ?";
+         */
 
         Team team = homeTeam ? getHomeTeam() : getAwayTeam();
         try (PreparedStatement stat = database.getDbConnection().prepareStatement(sql)) {
             stat.setInt(1, team.getTeamId());
             stat.setInt(2, team.getTeamId());
-            stat.setInt(3,team.getTeamLeagueId());
+            stat.setInt(3, team.getTeamLeagueId());
             stat.setString(4, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
             stat.setInt(5, gamesLookback);
 
-           /* stat.setInt(1, team.getTeamId());
-            stat.setInt(2, team.getTeamLeagueId());
-            stat.setString(3, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
-            stat.setInt(4, gamesLookback);
-
-            stat.setInt(5, team.getTeamId());
-            stat.setInt(6, team.getTeamLeagueId());
-            stat.setString(7, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
-            stat.setInt(8, gamesLookback);
-
-            stat.setInt(9, gamesLookback); */
+            /*
+             * stat.setInt(1, team.getTeamId());
+             * stat.setInt(2, team.getTeamLeagueId());
+             * stat.setString(3, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
+             * stat.setInt(4, gamesLookback);
+             * 
+             * stat.setInt(5, team.getTeamId());
+             * stat.setInt(6, team.getTeamLeagueId());
+             * stat.setString(7, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
+             * stat.setInt(8, gamesLookback);
+             * 
+             * stat.setInt(9, gamesLookback);
+             */
 
             ResultSet rs = stat.executeQuery();
 
@@ -333,33 +350,39 @@ public class SoccerMatchAnalysis extends SoccerMatch {
         Team team = homeTeam ? getHomeTeam() : getAwayTeam();
 
         String sql = "SELECT * FROM SoccerResults " +
-                "WHERE (" + (homeTeam?"home":"away") + "TeamId = ?) " +
+                "WHERE (" + (homeTeam ? "home" : "away") + "TeamId = ?) " +
                 "  AND leagueId = ? " +
                 "  AND DATE(gameDate) < ? " +
                 "ORDER BY gameDate DESC " +
                 "LIMIT ?";
 
-      /*  String sql = "SELECT * FROM " + "(SELECT * FROM SoccerResults WHERE homeTeamId = ? AND leagueId = ? AND DATE" +
-                "(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) a " + "UNION ALL " + "(SELECT * FROM SoccerResults " +
-                "WHERE awayTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) " +
-                "ORDER BY gameDate DESC " + "LIMIT ?"; */
-
-
+        /*
+         * String sql = "SELECT * FROM " +
+         * "(SELECT * FROM SoccerResults WHERE homeTeamId = ? AND leagueId = ? AND DATE"
+         * +
+         * "(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) a " + "UNION ALL " +
+         * "(SELECT * FROM SoccerResults " +
+         * "WHERE awayTeamId = ? AND leagueId = ? AND DATE(gameDate) < ? ORDER BY gameDate DESC LIMIT ?) "
+         * +
+         * "ORDER BY gameDate DESC " + "LIMIT ?";
+         */
 
         try (PreparedStatement stat = database.getDbConnection().prepareStatement(sql)) {
             stat.setInt(1, team.getTeamId());
             stat.setInt(2, team.getTeamLeagueId());
             stat.setString(3, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
             stat.setInt(4, gameLookback);
-            /*stat.setInt(1, team.getTeamId());
-            stat.setInt(2, team.getTeamLeagueId());
-            stat.setString(3, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
-            stat.setInt(4, gameLookback);
-            stat.setInt(5, team.getTeamId());
-            stat.setInt(6, team.getTeamLeagueId());
-            stat.setString(7, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
-            stat.setInt(8, gameLookback);
-            stat.setInt(9, gameLookback); */
+            /*
+             * stat.setInt(1, team.getTeamId());
+             * stat.setInt(2, team.getTeamLeagueId());
+             * stat.setString(3, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
+             * stat.setInt(4, gameLookback);
+             * stat.setInt(5, team.getTeamId());
+             * stat.setInt(6, team.getTeamLeagueId());
+             * stat.setString(7, getGameDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
+             * stat.setInt(8, gameLookback);
+             * stat.setInt(9, gameLookback);
+             */
 
             ResultSet rs = stat.executeQuery();
 
@@ -381,7 +404,7 @@ public class SoccerMatchAnalysis extends SoccerMatch {
         res = res.setScale(1, RoundingMode.HALF_UP);
 
         DecimalFormat df = new DecimalFormat("#.00");
-        return Float.valueOf(df.format(res.floatValue() / 2.0f).replaceAll(",","."));
+        return Float.valueOf(df.format(res.floatValue() / 2.0f).replaceAll(",", "."));
     }
 
     public int goalsScoredHomeOrAway(boolean homeTeam, int gameLookback) {
@@ -422,21 +445,24 @@ public class SoccerMatchAnalysis extends SoccerMatch {
         int homeScore = this.scoringTotal(leagueInfo.getScoringTotal(), true);
         int awayScore = this.scoringTotal(leagueInfo.getScoringTotal(), false);
 
-        database.getTotalGoalStat(calculatedPercentages, leagueInfo.getLeagueId(),leagueInfo.getScoringTotal(),
+        database.getTotalGoalStat(calculatedPercentages, leagueInfo.getLeagueId(), leagueInfo.getScoringTotal(),
                 homeScore - awayScore);
 
-        database.getScoringDiffLastGames(calculatedPercentages, leagueInfo.getLeagueId(), leagueInfo.getScoringDiffLastGame(),
+        database.getScoringDiffLastGames(calculatedPercentages, leagueInfo.getLeagueId(),
+                leagueInfo.getScoringDiffLastGame(),
                 this.getScoringDiffLastGames(leagueInfo.getScoringDiffLastGame()));
 
-        int winLossHAHome = this.winLossRatioHomeAndAway( leagueInfo.getWinLossRatioHomeAndAway(), true);
+        int winLossHAHome = this.winLossRatioHomeAndAway(leagueInfo.getWinLossRatioHomeAndAway(), true);
         int winLossHAAway = this.winLossRatioHomeAndAway(leagueInfo.getWinLossRatioHomeAndAway(), false);
-        database.getWinLossRatioHomeAndAwayStatistics(calculatedPercentages, leagueInfo.getLeagueId(), leagueInfo.getWinLossRatioHomeAndAway(),
-                winLossHAHome-winLossHAAway);
+        database.getWinLossRatioHomeAndAwayStatistics(calculatedPercentages, leagueInfo.getLeagueId(),
+                leagueInfo.getWinLossRatioHomeAndAway(),
+                winLossHAHome - winLossHAAway);
 
         int winLossHome = this.winLossRatio(leagueInfo.getWinLossRatio(), true);
         int winLossAway = this.winLossRatio(leagueInfo.getWinLossRatio(), false);
         this.winLossRatio(leagueInfo.getWinLossRatio(), false);
-        database.getWinLossRatioStatisticsGames(calculatedPercentages,leagueInfo.getLeagueId(),leagueInfo.getWinLossRatio(),winLossHome-winLossAway);
+        database.getWinLossRatioStatisticsGames(calculatedPercentages, leagueInfo.getLeagueId(),
+                leagueInfo.getWinLossRatio(), winLossHome - winLossAway);
 
         calculatedPercentages.calculatePercentages();
 

+ 4 - 2
OddsJavaFx/src/objects/visual/FibonacciBets.java

@@ -27,8 +27,8 @@ public class FibonacciBets extends VBox {
     Label matchTeamLabel = new Label();
     VBox betPanel;
 
-    TextField oddsField;
-    ComboBox<String> sequenceNumberComboBox;
+    TextField oddsField = new TextField();
+    ComboBox<String> sequenceNumberComboBox = new ComboBox<>();
 
     public FibonacciBets() {
         database = BetStrategyMysql.getInstance();
@@ -173,5 +173,7 @@ public class FibonacciBets extends VBox {
         database.addFibonacciBet(dto);
 
         allOpenFibonacciSequences.add(dto);
+
+        betPanel.getChildren().clear();
     }
 }

+ 3 - 0
OddsStrategyWeb/.vscode/settings.json

@@ -0,0 +1,3 @@
+{
+    "java.configuration.updateBuildConfiguration": "automatic"
+}

+ 157 - 124
OddsStrategyWeb/pom.xml

@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>nordh.xyz</groupId>
     <artifactId>OddsStrategyWeb</artifactId>
@@ -20,64 +19,74 @@
     </properties>
 
     <dependencies>
-    <!--  WICKET DEPENDENCIES -->
-    <dependency>
-        <groupId>org.apache.wicket</groupId>
-        <artifactId>wicket-core</artifactId>
-        <version>${wicket.version}</version>
-    </dependency>
-    <dependency>
-        <groupId>org.apache.wicket</groupId>
-        <artifactId>wicket-native-websocket-javax</artifactId>
-        <version>${wicket.version}</version>
-    </dependency>
-    <!-- OPTIONAL DEPENDENCY
-    <dependency>
-        <groupId>org.apache.wicket</groupId>
-        <artifactId>wicket-extensions</artifactId>
-        <version>${wicket.version}</version>
-    </dependency>
-    -->
+        <dependency>
+            <groupId>Odds</groupId>
+            <artifactId>OddsFx</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>Odds</groupId>
+            <artifactId>Odds</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
+        <!--  WICKET DEPENDENCIES -->
+        <dependency>
+            <groupId>org.apache.wicket</groupId>
+            <artifactId>wicket-core</artifactId>
+            <version>${wicket.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.wicket</groupId>
+            <artifactId>wicket-native-websocket-javax</artifactId>
+            <version>${wicket.version}</version>
+        </dependency>
+        <!-- OPTIONAL DEPENDENCY
+        <dependency>
+            <groupId>org.apache.wicket</groupId>
+            <artifactId>wicket-extensions</artifactId>
+            <version>${wicket.version}</version>
+        </dependency>
+        -->
 
-    <!-- LOGGING DEPENDENCIES - SLF4J-SIMPLE -->
-    <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-simple</artifactId>
-        <version>${slf4j.version}</version>
-    </dependency>
-    <!--  JUNIT DEPENDENCY FOR TESTING -->
-    <dependency>
-        <groupId>org.junit.jupiter</groupId>
-        <artifactId>junit-jupiter-engine</artifactId>
-        <version>${junit.version}</version>
-        <scope>test</scope>
-    </dependency>
+        <!-- LOGGING DEPENDENCIES - SLF4J-SIMPLE -->
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-simple</artifactId>
+            <version>${slf4j.version}</version>
+        </dependency>
+        <!--  JUNIT DEPENDENCY FOR TESTING -->
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-engine</artifactId>
+            <version>${junit.version}</version>
+            <scope>test</scope>
+        </dependency>
 
-    <!--  JETTY DEPENDENCIES FOR TESTING  -->
-    <dependency>
-        <groupId>org.apache.wicket</groupId>
-        <artifactId>wicket-tester</artifactId>
-        <version>${wicket.version}</version>
-        <scope>test</scope>
-    </dependency>
-    <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-server</artifactId>
-        <scope>test</scope>
-        <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-webapp</artifactId>
-        <scope>test</scope>
-        <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-jmx</artifactId>
-        <scope>test</scope>
-        <version>${jetty.version}</version>
-    </dependency>
+        <!--  JETTY DEPENDENCIES FOR TESTING  -->
+        <dependency>
+            <groupId>org.apache.wicket</groupId>
+            <artifactId>wicket-tester</artifactId>
+            <version>${wicket.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+            <scope>test</scope>
+            <version>${jetty.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-webapp</artifactId>
+            <scope>test</scope>
+            <version>${jetty.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-jmx</artifactId>
+            <scope>test</scope>
+            <version>${jetty.version}</version>
+        </dependency>
         <dependency>
             <groupId>org.eclipse.jetty.websocket</groupId>
             <artifactId>websocket-jakarta-server</artifactId>
@@ -93,78 +102,102 @@
             <scope>test</scope>
         </dependency>
         -->
+        <dependency>
+            <groupId>io.github.bonigarcia</groupId>
+            <artifactId>webdrivermanager</artifactId>
+            <version>5.8.0</version>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/org.apache.wicket/wicket-extensions -->
+        <dependency>
+            <groupId>org.apache.wicket</groupId>
+            <artifactId>wicket-extensions</artifactId>
+            <version>10.2.0</version>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j -->
+        <dependency>
+            <groupId>com.mysql</groupId>
+            <artifactId>mysql-connector-j</artifactId>
+            <version>9.1.0</version>
+        </dependency>
+
     </dependencies>
 
     <build>
-    <resources>
-        <resource>
-            <filtering>false</filtering>
-            <directory>src/main/resources</directory>
-        </resource>
-        <resource>
-            <filtering>false</filtering>
-            <directory>src/main/java</directory>
-            <includes>
-                <include>**</include>
-            </includes>
-            <excludes>
-                <exclude>**/*.java</exclude>
-            </excludes>
-        </resource>
-    </resources>
-    <testResources>
-        <testResource>
-            <filtering>false</filtering>
-            <directory>src/test/resources</directory>
-        </testResource>
-        <testResource>
-            <filtering>false</filtering>
-            <directory>src/test/java</directory>
-            <includes>
-                <include>**</include>
-            </includes>
-            <excludes>
-                <exclude>**/*.java</exclude>
-            </excludes>
-        </testResource>
-    </testResources>
-    <plugins>
-    <plugin>
-        <inherited>true</inherited>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.13.0</version>
-        <configuration>
-            <source>17</source>
-            <target>17</target>
-            <encoding>UTF-8</encoding>
-            <showWarnings>true</showWarnings>
-            <showDeprecation>true</showDeprecation>
-        </configuration>
-    </plugin>
-    <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-war-plugin</artifactId>
-        <version>3.4.0</version>
-    </plugin>
-        <plugin>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-maven-plugin</artifactId>
-            <version>${jetty.version}</version>
-            <configuration>
-                <systemProperties>
-                    <systemProperty>
-                        <name>maven.project.build.directory.test-classes</name>
-                        <value>${project.build.directory}/test-classes</value>
-                    </systemProperty>
-                </systemProperties>
-                <jettyXmls>${project.basedir}/src/test/jetty/jetty.xml,${project.basedir}/src/test/jetty/jetty-ssl.xml,${project.basedir}/src/test/jetty/jetty-http.xml,${project.basedir}/src/test/jetty/jetty-https.xml</jettyXmls>
-            </configuration>
-        </plugin>
-    </plugins>
+        <resources>
+            <resource>
+                <filtering>false</filtering>
+                <directory>src/main/resources</directory>
+            </resource>
+            <resource>
+                <filtering>false</filtering>
+                <directory>src/main/java</directory>
+                <includes>
+                    <include>**</include>
+                </includes>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </resource>
+        </resources>
+        <testResources>
+            <testResource>
+                <filtering>false</filtering>
+                <directory>src/test/resources</directory>
+            </testResource>
+            <testResource>
+                <filtering>false</filtering>
+                <directory>src/test/java</directory>
+                <includes>
+                    <include>**</include>
+                </includes>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </testResource>
+        </testResources>
+        <plugins>
+            <plugin>
+                <inherited>true</inherited>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.13.0</version>
+                <configuration>
+                    <source>17</source>
+                    <target>17</target>
+                    <encoding>UTF-8</encoding>
+                    <showWarnings>true</showWarnings>
+                    <showDeprecation>true</showDeprecation>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-war-plugin</artifactId>
+                <version>3.4.0</version>
+            </plugin>
+            <plugin>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-maven-plugin</artifactId>
+                <version>${jetty.version}</version>
+                <configuration>
+                    <!--<scan>2</scan> -->
+                    <systemProperties>
+                        <systemProperty>
+                            <name>maven.project.build.directory.test-classes</name>
+                            <value>${project.build.directory}/test-classes</value>
+                        </systemProperty>
+                    </systemProperties>
+                    <jettyXmls>${project.basedir}/src/test/jetty/jetty.xml,${project.basedir}/src/test/jetty/jetty-ssl.xml,${project.basedir}/src/test/jetty/jetty-http.xml,${project.basedir}/src/test/jetty/jetty-https.xml</jettyXmls>
+                </configuration>
+            </plugin>
+        </plugins>
     </build>
 
     <repositories>
+        <repository>
+            <id>nordhs-repo</id>
+            <name>Nords Repo</name>
+            <url>http://nordh.xyz:9099/repository/nordhs-repo/</url>
+        </repository>
         <repository>
             <id>Apache Nexus</id>
             <url>https://repository.apache.org/content/repositories/snapshots/</url>

+ 3 - 10
OddsStrategyWeb/src/main/java/MainApplication.java

@@ -1,20 +1,14 @@
-package main.java;
-
-import org.apache.wicket.Page;
 import org.apache.wicket.csp.CSPDirective;
 import org.apache.wicket.csp.CSPDirectiveSrcValue;
 import org.apache.wicket.protocol.http.WebApplication;
 
 public class MainApplication extends WebApplication {
 
-    public MainApplication() {
-    }
     /**
      * @see org.apache.wicket.Application#init()
      */
     @Override
-    public void init()
-    {
+    public void init() {
         super.init();
 
         // needed for the styling used by the quickstart
@@ -26,9 +20,8 @@ public class MainApplication extends WebApplication {
         // add your configuration here
     }
 
-
     @Override
-    public Class<? extends Page> getHomePage() {
-        return Main.class;
+    public Class getHomePage() {
+        return MainPage.class;
     }
 }

+ 7 - 1
OddsStrategyWeb/src/main/java/MainPage.html

@@ -1,5 +1,11 @@
 <html>
+
 <body>
-<span wicket:id="message">Message goes here</span>
+    <h2 wicket:id="todaysLabel">[Toaday Label]</h2>
+    <div wicket:id="todaysMatches"> </div>
+
+    <h2 wicket:id="tomorrowsLabel">[Toaday Label]</h2>
+    <div wicket:id="tomorrowsMatches"> </div>
 </body>
+
 </html>

+ 27 - 4
OddsStrategyWeb/src/main/java/MainPage.java

@@ -1,12 +1,35 @@
-package main.java;
+import java.time.LocalDateTime;
+import java.util.List;
 
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 
-public class Main extends WebPage {
-    public Main(final PageParameters parameters) {
+import components.MatchTable.MatchTable;
+import database.Database;
+import objects.SoccerMatch;
+
+public class MainPage extends WebPage {
+    public MainPage(final PageParameters parameters) {
         super(parameters);
-        add(new Label("message", "Hello World!"));
+
+        List<SoccerMatch> todaysMatches = Database.getInstance()
+                .getPrioMatchesOfDate(LocalDateTime.now().toLocalDate().toString());
+
+        List<SoccerMatch> tomorrowsMatches = Database.getInstance()
+                .getPrioMatchesOfDate(LocalDateTime.now().toLocalDate().plusDays(1).toString());
+
+        // Tables of
+        // List of todays matches with calculated percentages
+
+        add(new Label("todaysLabel"));
+        add(new MatchTable("todaysMatches", todaysMatches));
+
+        add(new Label("tomorrowsLabel"));
+        add(new MatchTable("tomorrowsMatches", tomorrowsMatches));
+
+        // List of tomorrows matches with calculated percentages
+
+        // A way to add bets
     }
 }

+ 15 - 0
OddsStrategyWeb/src/main/java/components/MatchTable/MatchTable.css

@@ -0,0 +1,15 @@
+table th {
+    font-weight: bold;
+}
+
+th td {
+    border-bottom: 1px solid #ddd;
+}
+
+table.alternate tr:nth-child(odd) {
+    background-color: #888888;
+}
+
+table.alternate tr:nth-child(even) {
+    background-color: #BBBBBB;
+}

+ 30 - 0
OddsStrategyWeb/src/main/java/components/MatchTable/MatchTable.html

@@ -0,0 +1,30 @@
+<wicket:panel>
+    <!-- <table id="jqGrid1" style="width:100%;height:200px">
+        </table> -->
+    <div wicket:id="matchesCount"></div>
+    <p></p>
+    <table wicket:id="matchesTable" class="matchTable">
+        <thead>
+            <tr>
+                <th>Match</th>
+                <th>Odds 1</th>
+                <th>Odds X</th>
+                <th>Odds 2</th>
+                <th>Calculated Percent 1</th>
+                <th>Calculated Percent X</th>
+                <th>Calculated Percent 2</th>
+            </tr>
+        </thead>
+        <!-- <tbody>
+            <tr>
+                <td wicket:id="matchTeams">Team names</td>
+                <td wicket:id="odds1">Team names</td>
+                <td wicket:id="oddsX">Team names</td>
+                <td wicket:id="odds2">Team names</td>
+                <td wicket:id="calculatedPercent1">Team names</td>
+                <td wicket:id="calculatedPercentX">Team names</td>
+                <td wicket:id="calculatedPercent2">Team names</td>
+            </tr>
+        </tbody> -->
+    </table>
+</wicket:panel>

+ 97 - 0
OddsStrategyWeb/src/main/java/components/MatchTable/MatchTable.java

@@ -0,0 +1,97 @@
+package components.MatchTable;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.HeadersToolbar;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.LambdaColumn;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
+import org.apache.wicket.markup.head.CssHeaderItem;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.markup.repeater.Item;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.request.resource.PackageResourceReference;
+
+import objects.SoccerMatch;
+import objects.SoccerMatchAnalysis;
+
+public class MatchTable extends Panel {
+
+    List<IColumn<SoccerMatchAnalysis, String>> tableColumns = new ArrayList<>();
+
+    public MatchTable(String id, List<SoccerMatch> matches) {
+        super(id);
+
+        List<SoccerMatchAnalysis> matchAnalysis = matches.stream().map(SoccerMatchAnalysis::new).collect(Collectors.toList());
+        matchAnalysis.forEach(m -> m.calculateWinPercentages());
+
+        buildMatchesTable();
+
+        add(new Label("matchesCount", "Matches count: " + matchAnalysis.size()));
+
+        populateMatchesTable(matchAnalysis);
+    }
+
+    @Override
+    public void renderHead(IHeaderResponse response) {
+        super.renderHead(response);
+        PackageResourceReference cssFile = new PackageResourceReference(this.getClass(), "MatchTable.css");
+        CssHeaderItem cssItem = CssHeaderItem.forReference(cssFile);
+
+        response.render(cssItem);
+    }
+
+    private void populateMatchesTable(List<SoccerMatchAnalysis> todaysMatchAnalysis) {
+
+        SortableSoccerMatchAnalysisDataProvider dataProvider = new SortableSoccerMatchAnalysisDataProvider(todaysMatchAnalysis);
+
+        DataTable<SoccerMatchAnalysis, String> dataTable = new DataTable<>("matchesTable", tableColumns, dataProvider, 10);
+
+        dataTable.addTopToolbar(new HeadersToolbar<>(dataTable, dataProvider));
+
+        add(dataTable);
+    }
+
+    private void buildMatchesTable() {
+
+        tableColumns.add(new LambdaColumn<>(Model.of("Match"), "matchTeams", SoccerMatchAnalysis::toString));
+        tableColumns.add(new PropertyColumn<>(Model.of("Odds 1"), "odds1", "odds1"));
+        tableColumns.add(new PropertyColumn<>(Model.of("Odds X"), "oddsX", "oddsX"));
+        tableColumns.add(new PropertyColumn<>(Model.of("Odds 2"), "odds2", "odds2"));
+
+        tableColumns.add(new AbstractColumn<SoccerMatchAnalysis, String>(Model.of("Calculated Percent 1")) {
+
+            @Override
+            public void populateItem(Item<ICellPopulator<SoccerMatchAnalysis>> cellItem, String componentId,
+                    IModel<SoccerMatchAnalysis> model) {
+                cellItem.add(new Label(componentId, model.getObject().getCalculatedPercentages().getHomeWinPercentage()));
+            };
+        });
+        tableColumns.add(new AbstractColumn<SoccerMatchAnalysis, String>(Model.of("Calculated Percent X")) {
+
+            @Override
+            public void populateItem(Item<ICellPopulator<SoccerMatchAnalysis>> cellItem, String componentId,
+                    IModel<SoccerMatchAnalysis> model) {
+                cellItem.add(new Label(componentId, model.getObject().getCalculatedPercentages().getDrawPercentage()));
+            };
+        });
+        tableColumns.add(new AbstractColumn<SoccerMatchAnalysis, String>(Model.of("Calculated Percent 2")) {
+
+            @Override
+            public void populateItem(Item<ICellPopulator<SoccerMatchAnalysis>> cellItem, String componentId,
+                    IModel<SoccerMatchAnalysis> model) {
+                cellItem.add(new Label(componentId, model.getObject().getCalculatedPercentages().getAwayWinPercentage()));
+            };
+        });
+    }
+
+}

+ 35 - 0
OddsStrategyWeb/src/main/java/components/MatchTable/SortableSoccerMatchAnalysisDataProvider.java

@@ -0,0 +1,35 @@
+package components.MatchTable;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+import objects.SoccerMatchAnalysis;
+
+public class SortableSoccerMatchAnalysisDataProvider extends SortableDataProvider<SoccerMatchAnalysis, String> {
+
+    List<SoccerMatchAnalysis> matches;
+
+    public SortableSoccerMatchAnalysisDataProvider(List<SoccerMatchAnalysis> matches) {
+        this.matches = matches;
+    }
+
+    @Override
+    public Iterator<SoccerMatchAnalysis> iterator(long first, long count) {
+        return matches.iterator();
+    }
+
+    @Override
+    public long size() {
+        return matches.size();
+    }
+
+    @Override
+    public IModel<SoccerMatchAnalysis> model(SoccerMatchAnalysis object) {
+        return Model.of(object);
+    }
+
+}

+ 39 - 0
OddsStrategyWeb/src/main/java/database/Database.java

@@ -0,0 +1,39 @@
+package database;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+
+import data.GuiMysql;
+
+public class Database extends GuiMysql {
+
+    private static final String USERNAME = "OddsNy";
+    private static final String PASSWORD = "Odds1_Ny_Password";
+    private static final String DATABASE = "new_odds";
+    private static final String URL = "jdbc:mysql://nordh.xyz:3306/";
+    private static final String TIMEZONE_FIX = "?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
+    private Connection conn;
+
+    public static Database instance = new Database();
+
+    private Database() {
+        getConnection();
+    }
+
+    public static Database getInstance() {
+        return instance;
+    }
+
+    protected Connection getConnection() {
+        if (conn == null) {
+            try {
+                conn = DriverManager.getConnection(URL + DATABASE + TIMEZONE_FIX, USERNAME, PASSWORD);
+            } catch (final SQLException e) {
+                throw new RuntimeException(e.getMessage(), e);
+            }
+        }
+        return conn;
+    }
+
+}

+ 9 - 12
OddsStrategyWeb/src/main/webapp/WEB-INF/web.xml

@@ -1,24 +1,21 @@
-<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
-         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
-         version="3.1">
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-app_3_1.xsd"
+	version="3.1">
 
+    <display-name>Odds Strategy Webpage</display-name>
     <filter>
-        <filter-name>wicket.filter</filter-name>
+        <filter-name>MainApplication</filter-name>
         <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
         <init-param>
             <param-name>applicationClassName</param-name>
-            <param-value>main.java.MainApplication</param-value>
-        </init-param>
-        <init-param>
-            <param-name>filterMappingUrlPattern</param-name>
-            <param-value>/*</param-value>
+            <param-value>MainApplication</param-value>
         </init-param>
+
     </filter>
 
     <filter-mapping>
-        <filter-name>wicket.filter</filter-name>
+        <filter-name>MainApplication</filter-name>
         <url-pattern>/*</url-pattern>
     </filter-mapping>
 

+ 38 - 0
OddsStrategyWeb/src/test/jetty/jetty-http.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
+<!-- ============================================================= -->
+<!-- Configure the Jetty Server instance with an ID "Server"       -->
+<!-- by adding a HTTP connector.                                   -->
+<!-- This configuration must be used in conjunction with jetty.xml -->
+<!-- ============================================================= -->
+<Configure id="Server" class="org.eclipse.jetty.server.Server">
+  <!-- =========================================================== -->
+  <!-- Add a HTTP Connector.                                       -->
+  <!-- Configure an o.e.j.server.ServerConnector with a single     -->
+  <!-- HttpConnectionFactory instance using the common httpConfig  -->
+  <!-- instance defined in jetty.xml                               -->
+  <!--                                                             -->
+  <!-- Consult the javadoc of o.e.j.server.ServerConnector and     -->
+  <!-- o.e.j.server.HttpConnectionFactory for all configuration    -->
+  <!-- that may be set here.                                       -->
+  <!-- =========================================================== -->
+  <Call name="addConnector">
+    <Arg>
+      <New class="org.eclipse.jetty.server.ServerConnector">
+        <Arg name="server"><Ref refid="Server" /></Arg>
+        <Arg name="factories">
+          <Array type="org.eclipse.jetty.server.ConnectionFactory">
+            <Item>
+              <New class="org.eclipse.jetty.server.HttpConnectionFactory">
+                <Arg name="config"><Ref refid="httpConfig" /></Arg>
+              </New>
+            </Item>
+          </Array>
+        </Arg>
+        <Set name="host"><Property name="jetty.host" /></Set>
+        <Set name="port"><Property name="jetty.port" default="8080" /></Set>
+        <Set name="idleTimeout"><Property name="http.timeout" default="30000"/></Set>
+      </New>
+    </Arg>
+  </Call>
+</Configure>

+ 45 - 0
OddsStrategyWeb/src/test/jetty/jetty-https.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
+<!-- ============================================================= -->
+<!-- Configure a HTTPS connector.                                  -->
+<!-- This configuration must be used in conjunction with jetty.xml -->
+<!-- and jetty-ssl.xml.                                            -->
+<!-- ============================================================= -->
+<Configure id="Server" class="org.eclipse.jetty.server.Server">
+  <!-- =========================================================== -->
+  <!-- Add a HTTPS Connector.                                      -->
+  <!-- Configure an o.e.j.server.ServerConnector with connection   -->
+  <!-- factories for TLS (aka SSL) and HTTP to provide HTTPS.      -->
+  <!-- All accepted TLS connections are wired to a HTTP connection.-->
+  <!--                                                             -->
+  <!-- Consult the javadoc of o.e.j.server.ServerConnector,        -->
+  <!-- o.e.j.server.SslConnectionFactory and                       -->
+  <!-- o.e.j.server.HttpConnectionFactory for all configuration    -->
+  <!-- that may be set here.                                       -->
+  <!-- =========================================================== -->
+  <Call id="httpsConnector" name="addConnector">
+    <Arg>
+      <New class="org.eclipse.jetty.server.ServerConnector">
+        <Arg name="server"><Ref refid="Server" /></Arg>
+          <Arg name="factories">
+            <Array type="org.eclipse.jetty.server.ConnectionFactory">
+              <Item>
+                <New class="org.eclipse.jetty.server.SslConnectionFactory">
+                  <Arg name="next">http/1.1</Arg>
+                  <Arg name="sslContextFactory"><Ref refid="sslContextFactory"/></Arg>
+                </New>
+              </Item>
+              <Item>
+                <New class="org.eclipse.jetty.server.HttpConnectionFactory">
+                  <Arg name="config"><Ref refid="sslHttpConfig"/></Arg>
+                </New>
+              </Item>
+            </Array>
+          </Arg>
+          <Set name="host"><Property name="jetty.host" /></Set>
+          <Set name="port"><Property name="jetty.https.port" default="8443" /></Set>
+          <Set name="idleTimeout">30000</Set>
+        </New>
+    </Arg>
+  </Call>
+</Configure>

+ 61 - 0
OddsStrategyWeb/src/test/jetty/jetty-ssl.xml

@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
+<!-- ============================================================= -->
+<!-- Configure a TLS (SSL) Context Factory                         -->
+<!-- This configuration must be used in conjunction with jetty.xml -->
+<!-- and either jetty-https.xml or jetty-spdy.xml (but not both)   -->
+<!-- ============================================================= -->
+<Configure id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory$Server">
+  <Set name="KeyStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.keystore" default="target/test-classes/keystore"/></Set>
+  <Set name="KeyStorePassword"><Property name="jetty.keystore.password" default="wicket"/></Set>
+  <Set name="KeyManagerPassword"><Property name="jetty.keymanager.password" default="wicket"/></Set>
+  <Set name="EndpointIdentificationAlgorithm"></Set>
+  <Set name="ExcludeCipherSuites">
+    <Array type="String">
+      <Item>SSL_RSA_WITH_DES_CBC_SHA</Item>
+      <Item>SSL_DHE_RSA_WITH_DES_CBC_SHA</Item>
+      <Item>SSL_DHE_DSS_WITH_DES_CBC_SHA</Item>
+      <Item>SSL_RSA_EXPORT_WITH_RC4_40_MD5</Item>
+      <Item>SSL_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
+      <Item>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
+      <Item>SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</Item>
+      <Item>TLS_RSA_WITH_AES_256_GCM_SHA384</Item>
+      <Item>TLS_RSA_WITH_AES_128_GCM_SHA256</Item>
+      <Item>TLS_RSA_WITH_AES_256_CBC_SHA256</Item>
+      <Item>TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA</Item>
+      <Item>TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA</Item>
+      <Item>TLS_RSA_WITH_AES_256_CBC_SHA</Item>
+      <Item>TLS_RSA_WITH_AES_256_CBC_SHA</Item>
+      <Item>TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA</Item>
+      <Item>TLS_ECDH_RSA_WITH_AES_256_CBC_SHA</Item>
+      <Item>TLS_DHE_RSA_WITH_AES_256_CBC_SHA</Item>
+      <Item>TLS_DHE_DSS_WITH_AES_256_CBC_SHA</Item>
+      <Item>TLS_RSA_WITH_AES_128_CBC_SHA256</Item>
+      <Item>TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA</Item>
+      <Item>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</Item>
+      <Item>TLS_RSA_WITH_AES_128_CBC_SHA</Item>
+      <Item>TLS_RSA_WITH_AES_128_CBC_SHA</Item>
+      <Item>TLS_RSA_WITH_AES_128_CBC_SHA</Item>
+      <Item>TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA</Item>
+      <Item>TLS_ECDH_RSA_WITH_AES_128_CBC_SHA</Item>
+      <Item>TLS_DHE_RSA_WITH_AES_128_CBC_SHA</Item>
+      <Item>TLS_DHE_DSS_WITH_AES_128_CBC_SHA</Item>
+    </Array>
+  </Set>
+  <!-- =========================================================== -->
+  <!-- Create a TLS specific HttpConfiguration based on the        -->
+  <!-- common HttpConfiguration defined in jetty.xml               -->
+  <!-- Add a SecureRequestCustomizer to extract certificate and    -->
+  <!-- session information                                         -->
+  <!-- =========================================================== -->
+  <New id="sslHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
+    <Arg><Ref refid="httpConfig"/></Arg>
+    <Call name="addCustomizer">
+      <Arg>
+        <New class="org.eclipse.jetty.server.SecureRequestCustomizer">
+          <Set name="SniHostCheck"><Property name="jetty.ssl.sniHostCheck" default="false"/></Set>
+        </New>
+      </Arg>
+    </Call>
+  </New>
+</Configure>

+ 23 - 0
OddsStrategyWeb/src/test/jetty/jetty.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
+<!-- ============================================================= -->
+<!-- Configure a HTTP connector.                                  -->
+<!-- ============================================================= -->
+<Configure>
+	<New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
+		<Set name="secureScheme">https</Set>
+		<Set name="securePort">
+			<Property name="jetty.secure.port" default="8443" />
+		</Set>
+		<Set name="outputBufferSize">32768</Set>
+		<Set name="requestHeaderSize">8192</Set>
+		<Set name="responseHeaderSize">8192</Set>
+		<Set name="sendServerVersion">false</Set>
+		<Set name="sendDateHeader">false</Set>
+		<Set name="headerCacheSize">512</Set>
+
+		<!-- Uncomment to enable handling of X-Forwarded- style headers <Call name="addCustomizer"> -->
+		<!-- <Arg><New class="org.eclipse.jetty.server.ForwardedRequestCustomizer"/></Arg> -->
+		<!-- </Call> -->
+	</New>
+</Configure>

BIN
OddsStrategyWeb/src/test/resources/keystore


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT.war


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/MainApplication.class


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/MainPage.class


+ 11 - 0
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/MainPage.html

@@ -0,0 +1,11 @@
+<html>
+
+<body>
+    <h2 wicket:id="todaysLabel">[Toaday Label]</h2>
+    <div wicket:id="todaysMatches"> </div>
+
+    <h2 wicket:id="tomorrowsLabel">[Toaday Label]</h2>
+    <div wicket:id="tomorrowsMatches"> </div>
+</body>
+
+</html>

BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/components/MatchTable/MatchTable$1.class


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/components/MatchTable/MatchTable$2.class


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/components/MatchTable/MatchTable$3.class


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/components/MatchTable/MatchTable.class


+ 15 - 0
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/components/MatchTable/MatchTable.css

@@ -0,0 +1,15 @@
+table th {
+    font-weight: bold;
+}
+
+th td {
+    border-bottom: 1px solid #ddd;
+}
+
+table.alternate tr:nth-child(odd) {
+    background-color: #888888;
+}
+
+table.alternate tr:nth-child(even) {
+    background-color: #BBBBBB;
+}

+ 30 - 0
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/components/MatchTable/MatchTable.html

@@ -0,0 +1,30 @@
+<wicket:panel>
+    <!-- <table id="jqGrid1" style="width:100%;height:200px">
+        </table> -->
+    <div wicket:id="matchesCount"></div>
+    <p></p>
+    <table wicket:id="matchesTable" class="matchTable">
+        <thead>
+            <tr>
+                <th>Match</th>
+                <th>Odds 1</th>
+                <th>Odds X</th>
+                <th>Odds 2</th>
+                <th>Calculated Percent 1</th>
+                <th>Calculated Percent X</th>
+                <th>Calculated Percent 2</th>
+            </tr>
+        </thead>
+        <!-- <tbody>
+            <tr>
+                <td wicket:id="matchTeams">Team names</td>
+                <td wicket:id="odds1">Team names</td>
+                <td wicket:id="oddsX">Team names</td>
+                <td wicket:id="odds2">Team names</td>
+                <td wicket:id="calculatedPercent1">Team names</td>
+                <td wicket:id="calculatedPercentX">Team names</td>
+                <td wicket:id="calculatedPercent2">Team names</td>
+            </tr>
+        </tbody> -->
+    </table>
+</wicket:panel>

BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/components/MatchTable/SortableSoccerMatchAnalysisDataProvider.class


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/database/Database.class


+ 0 - 5
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/classes/main/java/MainPage.html

@@ -1,5 +0,0 @@
-<html>
-    <body>
-        <span wicket:id="message">Message goes here</span>
-    </body>
-</html>

BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/Odds-0.0.1-SNAPSHOT.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/OddsFx-0.0.1-SNAPSHOT.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/RCaller-3.0.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/auto-service-annotations-1.1.1.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/bcpkix-jdk18on-1.76.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/bcprov-jdk18on-1.76.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/bcutil-jdk18on-1.76.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/byte-buddy-1.14.18.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/checker-qual-3.12.0.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-codec-1.15.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-collections4-4.4.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-compress-1.26.1.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-exec-1.3.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-fileupload2-core-2.0.0-M2.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-fileupload2-jakarta-servlet5-2.0.0-M2.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-io-2.10.0.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-lang-2.6.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-lang3-3.14.0.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-logging-1.2.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-net-3.9.0.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/commons-text-1.10.0.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/dec-0.1.2.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/docker-java-3.3.6.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/docker-java-api-3.3.6.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/docker-java-core-3.3.6.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/docker-java-transport-3.3.6.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/docker-java-transport-httpclient5-3.3.6.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/error_prone_annotations-2.11.0.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/failsafe-3.3.2.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/failureaccess-1.0.1.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/gson-2.9.0.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/guava-31.1-jre.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/htmlunit-2.70.0.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/htmlunit-core-js-2.70.0.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/htmlunit-cssparser-1.14.0.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/htmlunit-xpath-2.70.0.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/httpclient-4.5.14.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/httpclient5-5.2.1.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/httpcore-4.4.16.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/httpcore5-5.2.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/httpcore5-h2-5.2.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/httpmime-4.5.14.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/j2objc-annotations-1.3.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jackson-annotations-2.10.3.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jackson-core-2.10.3.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jackson-databind-2.10.3.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/javafx-base-22.0.1-win.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/javafx-base-22.0.1.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/javafx-controls-22.0.1-win.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/javafx-controls-22.0.1.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/javafx-fxml-22.0.1-win.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/javafx-fxml-22.0.1.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/javafx-graphics-22.0.1-win.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/javafx-graphics-22.0.1.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jcl-over-slf4j-1.7.30.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jdk-serializable-functional-1.9.0.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jetty-alpn-client-11.0.21.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jetty-client-11.0.21.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jetty-http-11.0.21.jar


BIN
OddsStrategyWeb/target/OddsStrategyWeb-1.0-SNAPSHOT/WEB-INF/lib/jetty-io-11.0.21.jar


Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików