From c81b39f966ce15f38afc8bea60f800fed9ea2473 Mon Sep 17 00:00:00 2001 From: Vadim Mishenev Date: Wed, 6 Apr 2022 01:35:43 +0300 Subject: Add Qodana GitHub Action (#2372) --- .github/workflows/qodana.yml | 25 + qodana.sarif.json | 80146 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80171 insertions(+) create mode 100644 .github/workflows/qodana.yml create mode 100644 qodana.sarif.json diff --git a/.github/workflows/qodana.yml b/.github/workflows/qodana.yml new file mode 100644 index 00000000..1c81393b --- /dev/null +++ b/.github/workflows/qodana.yml @@ -0,0 +1,25 @@ +name: Qodana + +on: + workflow_dispatch: + pull_request: + push: + branches: + - master +jobs: + inspection: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Qodana - Code Inspection + id: qodana + uses: JetBrains/qodana-action@v5.0.2 + with: + args: --baseline,qodana.sarif.json,--fail-threshold,0,--linter,jetbrains/qodana-jvm + clone-finder: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Qodana - Clone Finder + uses: JetBrains/qodana-clone-finder-action@v2.0-eap \ No newline at end of file diff --git a/qodana.sarif.json b/qodana.sarif.json new file mode 100644 index 00000000..0a919343 --- /dev/null +++ b/qodana.sarif.json @@ -0,0 +1,80146 @@ +{ + "$schema": "https://raw.githubusercontent.com/schemastore/schemastore/master/src/schemas/json/sarif-2.1.0-rtm.5.json", + "version": "2.1.0", + "runs": [ + { + "tool": { + "driver": { + "name": "QDJVM", + "fullName": "Qodana for JVM", + "version": "213.7162.133", + "rules": [], + "taxa": [ + { + "id": "Language injection", + "name": "Language injection" + }, + { + "id": "JVM languages", + "name": "JVM languages" + }, + { + "id": "Kotlin", + "name": "Kotlin" + }, + { + "id": "Kotlin/Style issues", + "name": "Style issues", + "relationships": [ + { + "target": { + "id": "Kotlin", + "index": 2, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Kotlin/Redundant constructs", + "name": "Redundant constructs", + "relationships": [ + { + "target": { + "id": "Kotlin", + "index": 2, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java", + "name": "Java" + }, + { + "id": "Java/Internationalization", + "name": "Internationalization", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Spring", + "name": "Spring" + }, + { + "id": "Spring/Spring Core", + "name": "Spring Core", + "relationships": [ + { + "target": { + "id": "Spring", + "index": 7, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Spring/Spring Core/XML", + "name": "XML", + "relationships": [ + { + "target": { + "id": "Spring/Spring Core", + "index": 8, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Performance", + "name": "Performance", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Code style issues", + "name": "Code style issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Declaration redundancy", + "name": "Declaration redundancy", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Spring/Spring Core/Code", + "name": "Code", + "relationships": [ + { + "target": { + "id": "Spring/Spring Core", + "index": 8, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Error handling", + "name": "Error handling", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Probable bugs", + "name": "Probable bugs", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Spring/Spring Cloud", + "name": "Spring Cloud", + "relationships": [ + { + "target": { + "id": "Spring", + "index": 7, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Serialization issues", + "name": "Serialization issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Class structure", + "name": "Class structure", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Groovy", + "name": "Groovy" + }, + { + "id": "Groovy/GPath", + "name": "GPath", + "relationships": [ + { + "target": { + "id": "Groovy", + "index": 19, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Imports", + "name": "Imports", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Maven", + "name": "Maven" + }, + { + "id": "MySQL", + "name": "MySQL" + }, + { + "id": "Kotlin/Probable bugs", + "name": "Probable bugs", + "relationships": [ + { + "target": { + "id": "Kotlin", + "index": 2, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Threading issues", + "name": "Threading issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Control flow issues", + "name": "Control flow issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Numeric issues", + "name": "Numeric issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JPA", + "name": "JPA" + }, + { + "id": "Java/Initialization", + "name": "Initialization", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HTML", + "name": "HTML" + }, + { + "id": "Java/Security", + "name": "Security", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Properties files", + "name": "Properties files" + }, + { + "id": "Java/Java language level migration aids", + "name": "Java language level migration aids", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Java language level migration aids/Java 15", + "name": "Java 15", + "relationships": [ + { + "target": { + "id": "Java/Java language level migration aids", + "index": 33, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Groovy/Naming conventions", + "name": "Naming conventions", + "relationships": [ + { + "target": { + "id": "Groovy", + "index": 19, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Packaging issues", + "name": "Packaging issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "General", + "name": "General" + }, + { + "id": "FreeMarker", + "name": "FreeMarker" + }, + { + "id": "EditorConfig", + "name": "EditorConfig" + }, + { + "id": "Java/Code maturity", + "name": "Code maturity", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SQL", + "name": "SQL" + }, + { + "id": "Groovy/Probable bugs", + "name": "Probable bugs", + "relationships": [ + { + "target": { + "id": "Groovy", + "index": 19, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Data flow", + "name": "Data flow", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CDI (Contexts and Dependency Injection)", + "name": "CDI (Contexts and Dependency Injection)" + }, + { + "id": "Velocity", + "name": "Velocity" + }, + { + "id": "Java/JUnit", + "name": "JUnit", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Kotlin/Naming conventions", + "name": "Naming conventions", + "relationships": [ + { + "target": { + "id": "Kotlin", + "index": 2, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSS", + "name": "CSS" + }, + { + "id": "CSS/Invalid elements", + "name": "Invalid elements", + "relationships": [ + { + "target": { + "id": "CSS", + "index": 48, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Finalization", + "name": "Finalization", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Logging", + "name": "Logging", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Modularization issues", + "name": "Modularization issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Javadoc", + "name": "Javadoc", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Kotlin/Java interop issues", + "name": "Java interop issues", + "relationships": [ + { + "target": { + "id": "Kotlin", + "index": 2, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Naming conventions", + "name": "Naming conventions", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Naming conventions/Class", + "name": "Class", + "relationships": [ + { + "target": { + "id": "Java/Naming conventions", + "index": 55, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Hibernate", + "name": "Hibernate" + }, + { + "id": "Spring/Spring Integration", + "name": "Spring Integration", + "relationships": [ + { + "target": { + "id": "Spring", + "index": 7, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Plugin DevKit", + "name": "Plugin DevKit" + }, + { + "id": "Plugin DevKit/Plugin descriptor", + "name": "Plugin descriptor", + "relationships": [ + { + "target": { + "id": "Plugin DevKit", + "index": 59, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Abstraction issues", + "name": "Abstraction issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Assignment issues", + "name": "Assignment issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Java language level migration aids/Java 9", + "name": "Java 9", + "relationships": [ + { + "target": { + "id": "Java/Java language level migration aids", + "index": 33, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Groovy/Threading issues", + "name": "Threading issues", + "relationships": [ + { + "target": { + "id": "Groovy", + "index": 19, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Groovy/Control flow issues", + "name": "Control flow issues", + "relationships": [ + { + "target": { + "id": "Groovy", + "index": 19, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Spring/Spring Core/Setup", + "name": "Setup", + "relationships": [ + { + "target": { + "id": "Spring/Spring Core", + "index": 8, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Plugin DevKit/Code", + "name": "Code", + "relationships": [ + { + "target": { + "id": "Plugin DevKit", + "index": 59, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Verbose or redundant code constructs", + "name": "Verbose or redundant code constructs", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XSLT", + "name": "XSLT" + }, + { + "id": "JUnit", + "name": "JUnit" + }, + { + "id": "Groovy/Style", + "name": "Style", + "relationships": [ + { + "target": { + "id": "Groovy", + "index": 19, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java EE", + "name": "Java EE" + }, + { + "id": "Java/Portability", + "name": "Portability", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/TestNG", + "name": "TestNG", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSP", + "name": "JSP" + }, + { + "id": "Java/Visibility", + "name": "Visibility", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Concurrency annotation issues", + "name": "Concurrency annotation issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSS/Probable bugs", + "name": "Probable bugs", + "relationships": [ + { + "target": { + "id": "CSS", + "index": 48, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Lombok", + "name": "Lombok", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Lombok/Redundant modifiers", + "name": "Redundant modifiers", + "relationships": [ + { + "target": { + "id": "Java/Lombok", + "index": 79, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RegExp", + "name": "RegExp" + }, + { + "id": "UI form", + "name": "UI form" + }, + { + "id": "Java/Naming conventions/Method", + "name": "Method", + "relationships": [ + { + "target": { + "id": "Java/Naming conventions", + "index": 55, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Groovy/Annotations", + "name": "Annotations", + "relationships": [ + { + "target": { + "id": "Groovy", + "index": 19, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Proofreading", + "name": "Proofreading" + }, + { + "id": "XML", + "name": "XML" + }, + { + "id": "Java/Cloning issues", + "name": "Cloning issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Manifest", + "name": "Manifest" + }, + { + "id": "Groovy/Potentially confusing code constructs", + "name": "Potentially confusing code constructs", + "relationships": [ + { + "target": { + "id": "Groovy", + "index": 19, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Ant", + "name": "Ant" + }, + { + "id": "Groovy/Error handling", + "name": "Error handling", + "relationships": [ + { + "target": { + "id": "Groovy", + "index": 19, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Java language level migration aids/Java 5", + "name": "Java 5", + "relationships": [ + { + "target": { + "id": "Java/Java language level migration aids", + "index": 33, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Java language level migration aids/Java 8", + "name": "Java 8", + "relationships": [ + { + "target": { + "id": "Java/Java language level migration aids", + "index": 33, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Web services", + "name": "Web services" + }, + { + "id": "Groovy/Assignment issues", + "name": "Assignment issues", + "relationships": [ + { + "target": { + "id": "Groovy", + "index": 19, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Class metrics", + "name": "Class metrics", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Encapsulation", + "name": "Encapsulation", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Test frameworks", + "name": "Test frameworks", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Reflective access", + "name": "Reflective access", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Spring/Spring AOP", + "name": "Spring AOP", + "relationships": [ + { + "target": { + "id": "Spring", + "index": 7, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Method metrics", + "name": "Method metrics", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Resource management", + "name": "Resource management", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Java language level migration aids/Java 14", + "name": "Java 14", + "relationships": [ + { + "target": { + "id": "Java/Java language level migration aids", + "index": 33, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Numeric issues/Cast", + "name": "Cast", + "relationships": [ + { + "target": { + "id": "Java/Numeric issues", + "index": 27, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Plugin DevKit/Description file", + "name": "Description file", + "relationships": [ + { + "target": { + "id": "Plugin DevKit", + "index": 59, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/JavaBeans issues", + "name": "JavaBeans issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Pattern validation", + "name": "Pattern validation" + }, + { + "id": "JSON and JSON5", + "name": "JSON and JSON5" + }, + { + "id": "Java/Dependency issues", + "name": "Dependency issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Java language level issues", + "name": "Java language level issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HTML/Accessibility", + "name": "Accessibility", + "relationships": [ + { + "target": { + "id": "HTML", + "index": 30, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Groovy/Method metrics", + "name": "Method metrics", + "relationships": [ + { + "target": { + "id": "Groovy", + "index": 19, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XPath", + "name": "XPath" + }, + { + "id": "Java/Inheritance issues", + "name": "Inheritance issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AOP", + "name": "AOP" + }, + { + "id": "Bean Validation", + "name": "Bean Validation" + }, + { + "id": "Oracle", + "name": "Oracle" + }, + { + "id": "Kotlin/Migration", + "name": "Migration", + "relationships": [ + { + "target": { + "id": "Kotlin", + "index": 2, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Kotlin/Migration/Maven", + "name": "Maven", + "relationships": [ + { + "target": { + "id": "Kotlin/Migration", + "index": 118, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Internationalization", + "name": "Internationalization" + }, + { + "id": "Spring/Spring WebSocket", + "name": "Spring WebSocket", + "relationships": [ + { + "target": { + "id": "Spring", + "index": 7, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Java language level migration aids/Java 10", + "name": "Java 10", + "relationships": [ + { + "target": { + "id": "Java/Java language level migration aids", + "index": 33, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Java language level migration aids/Java 7", + "name": "Java 7", + "relationships": [ + { + "target": { + "id": "Java/Java language level migration aids", + "index": 33, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Compiler issues", + "name": "Compiler issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Version control", + "name": "Version control" + }, + { + "id": "MongoJS", + "name": "MongoJS" + }, + { + "id": "Kotlin/Migration/Gradle", + "name": "Gradle", + "relationships": [ + { + "target": { + "id": "Kotlin/Migration", + "index": 118, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Memory", + "name": "Memory", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Structural search", + "name": "Structural search" + }, + { + "id": "Spring/Spring Security", + "name": "Spring Security", + "relationships": [ + { + "target": { + "id": "Spring", + "index": 7, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Performance/Embedded", + "name": "Embedded", + "relationships": [ + { + "target": { + "id": "Java/Performance", + "index": 10, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Feature usage statistics", + "name": "Feature usage statistics" + }, + { + "id": "Spring/Spring Data", + "name": "Spring Data", + "relationships": [ + { + "target": { + "id": "Spring", + "index": 7, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Probable bugs/Nullability problems", + "name": "Nullability problems", + "relationships": [ + { + "target": { + "id": "Java/Probable bugs", + "index": 15, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RELAX NG", + "name": "RELAX NG" + }, + { + "id": "Application servers", + "name": "Application servers" + }, + { + "id": "CSS/Code quality tools", + "name": "Code quality tools", + "relationships": [ + { + "target": { + "id": "CSS", + "index": 48, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Properties files", + "name": "Properties files", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Gradle", + "name": "Gradle" + }, + { + "id": "Gradle/Probable bugs", + "name": "Probable bugs", + "relationships": [ + { + "target": { + "id": "Gradle", + "index": 139, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Spring/Spring Cloud Stream", + "name": "Spring Cloud Stream", + "relationships": [ + { + "target": { + "id": "Spring", + "index": 7, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Spring/Spring Boot", + "name": "Spring Boot", + "relationships": [ + { + "target": { + "id": "Spring", + "index": 7, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Java language level migration aids/Java 11", + "name": "Java 11", + "relationships": [ + { + "target": { + "id": "Java/Java language level migration aids", + "index": 33, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PostgreSQL", + "name": "PostgreSQL" + }, + { + "id": "Spring/Spring Web Services", + "name": "Spring Web Services", + "relationships": [ + { + "target": { + "id": "Spring", + "index": 7, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SQL server", + "name": "SQL server" + }, + { + "id": "Groovy/Data flow", + "name": "Data flow", + "relationships": [ + { + "target": { + "id": "Groovy", + "index": 19, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Kotlin/Other problems", + "name": "Other problems", + "relationships": [ + { + "target": { + "id": "Kotlin", + "index": 2, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EL", + "name": "EL" + }, + { + "id": "WSDL", + "name": "WSDL" + }, + { + "id": "Java/Lombok/Redundant definitions", + "name": "Redundant definitions", + "relationships": [ + { + "target": { + "id": "Java/Lombok", + "index": 79, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Spring/Spring MVC", + "name": "Spring MVC", + "relationships": [ + { + "target": { + "id": "Spring", + "index": 7, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSS/Code style issues", + "name": "Code style issues", + "relationships": [ + { + "target": { + "id": "CSS", + "index": 48, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Spring/Spring Batch", + "name": "Spring Batch", + "relationships": [ + { + "target": { + "id": "Spring", + "index": 7, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Groovy/Other", + "name": "Other", + "relationships": [ + { + "target": { + "id": "Groovy", + "index": 19, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/Bitwise operation issues", + "name": "Bitwise operation issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Groovy/Validity issues", + "name": "Validity issues", + "relationships": [ + { + "target": { + "id": "Groovy", + "index": 19, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Kotlin/Logging", + "name": "Logging", + "relationships": [ + { + "target": { + "id": "Kotlin", + "index": 2, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Java/toString() issues", + "name": "toString() issues", + "relationships": [ + { + "target": { + "id": "Java", + "index": 5, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Groovy/Declaration redundancy", + "name": "Declaration redundancy", + "relationships": [ + { + "target": { + "id": "Groovy", + "index": 19, + "toolComponent": { + "name": "QDJVM" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + "extens