diff --git a/demo-output.yaml b/demo-output.yaml index 7d557225..162b18c5 100644 --- a/demo-output.yaml +++ b/demo-output.yaml @@ -1,33 +1,33 @@ - name: konveyor-analysis tags: - - License=Apache - - Language=Golang + - Backend=Golang - Infra=Kubernetes - Java - - Backend=Golang + - Language=Golang + - License=Apache violations: chain-pom-001: description: "" category: potential incidents: - - uri: file:///analyzer-lsp/examples/java/pom.xml - message: junitjunit4.11test + - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml + message: ch.qos.logbacklogback-classic1.1.7 variables: data: dependency - innerText: "\n junit\n junit\n 4.11\n test\n " - matchingXML: junitjunit4.11test - - uri: file:///analyzer-lsp/examples/java/pom.xml - message: io.fabric8kubernetes-client6.0.0 + innerText: "\n\t\t\tch.qos.logback\n\t\t\tlogback-classic\n\t\t\t1.1.7\n\t\t" + matchingXML: ch.qos.logbacklogback-classic1.1.7 + - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml + message: com.fasterxml.jackson.corejackson-core variables: data: dependency - innerText: "\n io.fabric8\n kubernetes-client\n 6.0.0\n " - matchingXML: io.fabric8kubernetes-client6.0.0 - - uri: file:///analyzer-lsp/examples/java/pom.xml - message: io.fabric8kubernetes-client-api6.0.0 + innerText: "\n\t\t\tcom.fasterxml.jackson.core\n\t\t\tjackson-core\n\t\t" + matchingXML: com.fasterxml.jackson.corejackson-core + - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml + message: com.fasterxml.jackson.corejackson-databind variables: data: dependency - innerText: "\n io.fabric8\n kubernetes-client-api\n 6.0.0\n " - matchingXML: io.fabric8kubernetes-client-api6.0.0 + innerText: "\n\t\t\tcom.fasterxml.jackson.core\n\t\t\tjackson-databind\n\t\t" + matchingXML: com.fasterxml.jackson.corejackson-databind - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml message: com.fasterxml.jacksonjackson-bom${jackson.version}importpom variables: @@ -35,53 +35,47 @@ innerText: "\n\t\t\t\tcom.fasterxml.jackson\n\t\t\t\tjackson-bom\n\t\t\t\t${jackson.version}\n\t\t\t\timport\n\t\t\t\tpom\n\t\t\t" matchingXML: com.fasterxml.jacksonjackson-bom${jackson.version}importpom - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: org.springframework.dataspring-data-bom${spring-data.version}importpom - variables: - data: dependency - innerText: "\n\t\t\t\torg.springframework.data\n\t\t\t\tspring-data-bom\n\t\t\t\t${spring-data.version}\n\t\t\t\timport\n\t\t\t\tpom\n\t\t\t" - matchingXML: org.springframework.dataspring-data-bom${spring-data.version}importpom - - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: org.apache.tomcattomcat-servlet-api${tomcat.version}provided + message: com.oracle.database.jdbcojdbc821.1.0.0 variables: data: dependency - innerText: "\n\t\t\torg.apache.tomcat\n\t\t\ttomcat-servlet-api\n\t\t\t${tomcat.version}\n\t\t\tprovided\n\t\t" - matchingXML: org.apache.tomcattomcat-servlet-api${tomcat.version}provided + innerText: "\n\t\t\tcom.oracle.database.jdbc\n\t\t\tojdbc8\n\t\t\t21.1.0.0\n\t\t" + matchingXML: com.oracle.database.jdbcojdbc821.1.0.0 - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: com.fasterxml.jackson.corejackson-core + message: io.konveyor.democonfig-utils1.0.0 variables: data: dependency - innerText: "\n\t\t\tcom.fasterxml.jackson.core\n\t\t\tjackson-core\n\t\t" - matchingXML: com.fasterxml.jackson.corejackson-core + innerText: "\n\t\t\tio.konveyor.demo\n\t\t\tconfig-utils\n\t\t\t1.0.0\n\t\t" + matchingXML: io.konveyor.democonfig-utils1.0.0 - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: com.fasterxml.jackson.corejackson-databind + message: org.apache.tomcattomcat-jdbc${tomcat.version}runtime variables: data: dependency - innerText: "\n\t\t\tcom.fasterxml.jackson.core\n\t\t\tjackson-databind\n\t\t" - matchingXML: com.fasterxml.jackson.corejackson-databind + innerText: "\n\t\t\torg.apache.tomcat\n\t\t\ttomcat-jdbc\n\t\t\t${tomcat.version}\n\t\t\truntime\n\t\t" + matchingXML: org.apache.tomcattomcat-jdbc${tomcat.version}runtime - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: org.springframework.dataspring-data-jpa + message: org.apache.tomcattomcat-servlet-api${tomcat.version}provided variables: data: dependency - innerText: "\n\t\t\torg.springframework.data\n\t\t\tspring-data-jpa\n\t\t" - matchingXML: org.springframework.dataspring-data-jpa + innerText: "\n\t\t\torg.apache.tomcat\n\t\t\ttomcat-servlet-api\n\t\t\t${tomcat.version}\n\t\t\tprovided\n\t\t" + matchingXML: org.apache.tomcattomcat-servlet-api${tomcat.version}provided - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: org.springframeworkspring-jdbc${spring-framework.version} + message: org.hibernate.validatorhibernate-validator${hibernate-validator.version} variables: data: dependency - innerText: "\n\t\t\torg.springframework\n\t\t\tspring-jdbc\n\t\t\t${spring-framework.version}\n\t\t" - matchingXML: org.springframeworkspring-jdbc${spring-framework.version} + innerText: "\n\t\t\torg.hibernate.validator\n\t\t\thibernate-validator\n\t\t\t${hibernate-validator.version}\n\t\t" + matchingXML: org.hibernate.validatorhibernate-validator${hibernate-validator.version} - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: org.springframeworkspring-webmvc${spring-framework.version} + message: org.hibernatehibernate-entitymanager${hibernate.version} variables: data: dependency - innerText: "\n\t\t\torg.springframework\n\t\t\tspring-webmvc\n\t\t\t${spring-framework.version}\n\t\t" - matchingXML: org.springframeworkspring-webmvc${spring-framework.version} + innerText: "\n\t\t\torg.hibernate\n\t\t\thibernate-entitymanager\n\t\t\t${hibernate.version}\n\t\t" + matchingXML: org.hibernatehibernate-entitymanager${hibernate.version} - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: org.springframeworkspring-web${spring-framework.version} + message: org.postgresqlpostgresql42.2.23 variables: data: dependency - innerText: "\n\t\t\torg.springframework\n\t\t\tspring-web\n\t\t\t${spring-framework.version}\n\t\t" - matchingXML: org.springframeworkspring-web${spring-framework.version} + innerText: "\n\t\t\torg.postgresql\n\t\t\tpostgresql\n\t\t\t42.2.23\n\t\t" + matchingXML: org.postgresqlpostgresql42.2.23 - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml message: org.springframework.bootspring-boot-starter-actuator2.5.0 variables: @@ -89,53 +83,59 @@ innerText: "\n\t\t\torg.springframework.boot\n\t\t\tspring-boot-starter-actuator\n\t\t\t2.5.0\n\t\t" matchingXML: org.springframework.bootspring-boot-starter-actuator2.5.0 - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: org.apache.tomcattomcat-jdbc${tomcat.version}runtime + message: org.springframework.dataspring-data-bom${spring-data.version}importpom variables: data: dependency - innerText: "\n\t\t\torg.apache.tomcat\n\t\t\ttomcat-jdbc\n\t\t\t${tomcat.version}\n\t\t\truntime\n\t\t" - matchingXML: org.apache.tomcattomcat-jdbc${tomcat.version}runtime + innerText: "\n\t\t\t\torg.springframework.data\n\t\t\t\tspring-data-bom\n\t\t\t\t${spring-data.version}\n\t\t\t\timport\n\t\t\t\tpom\n\t\t\t" + matchingXML: org.springframework.dataspring-data-bom${spring-data.version}importpom - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: org.hibernatehibernate-entitymanager${hibernate.version} + message: org.springframework.dataspring-data-jpa variables: data: dependency - innerText: "\n\t\t\torg.hibernate\n\t\t\thibernate-entitymanager\n\t\t\t${hibernate.version}\n\t\t" - matchingXML: org.hibernatehibernate-entitymanager${hibernate.version} + innerText: "\n\t\t\torg.springframework.data\n\t\t\tspring-data-jpa\n\t\t" + matchingXML: org.springframework.dataspring-data-jpa - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: org.hibernate.validatorhibernate-validator${hibernate-validator.version} + message: org.springframeworkspring-jdbc${spring-framework.version} variables: data: dependency - innerText: "\n\t\t\torg.hibernate.validator\n\t\t\thibernate-validator\n\t\t\t${hibernate-validator.version}\n\t\t" - matchingXML: org.hibernate.validatorhibernate-validator${hibernate-validator.version} + innerText: "\n\t\t\torg.springframework\n\t\t\tspring-jdbc\n\t\t\t${spring-framework.version}\n\t\t" + matchingXML: org.springframeworkspring-jdbc${spring-framework.version} - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: ch.qos.logbacklogback-classic1.1.7 + message: org.springframeworkspring-web${spring-framework.version} variables: data: dependency - innerText: "\n\t\t\tch.qos.logback\n\t\t\tlogback-classic\n\t\t\t1.1.7\n\t\t" - matchingXML: ch.qos.logbacklogback-classic1.1.7 + innerText: "\n\t\t\torg.springframework\n\t\t\tspring-web\n\t\t\t${spring-framework.version}\n\t\t" + matchingXML: org.springframeworkspring-web${spring-framework.version} - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: com.oracle.database.jdbcojdbc821.1.0.0 + message: org.springframeworkspring-webmvc${spring-framework.version} variables: data: dependency - innerText: "\n\t\t\tcom.oracle.database.jdbc\n\t\t\tojdbc8\n\t\t\t21.1.0.0\n\t\t" - matchingXML: com.oracle.database.jdbcojdbc821.1.0.0 - - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: org.postgresqlpostgresql42.2.23 + innerText: "\n\t\t\torg.springframework\n\t\t\tspring-webmvc\n\t\t\t${spring-framework.version}\n\t\t" + matchingXML: org.springframeworkspring-webmvc${spring-framework.version} + - uri: file:///analyzer-lsp/examples/java/pom.xml + message: io.fabric8kubernetes-client-api6.0.0 variables: data: dependency - innerText: "\n\t\t\torg.postgresql\n\t\t\tpostgresql\n\t\t\t42.2.23\n\t\t" - matchingXML: org.postgresqlpostgresql42.2.23 - - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: io.konveyor.democonfig-utils1.0.0 + innerText: "\n io.fabric8\n kubernetes-client-api\n 6.0.0\n " + matchingXML: io.fabric8kubernetes-client-api6.0.0 + - uri: file:///analyzer-lsp/examples/java/pom.xml + message: io.fabric8kubernetes-client6.0.0 variables: data: dependency - innerText: "\n\t\t\tio.konveyor.demo\n\t\t\tconfig-utils\n\t\t\t1.0.0\n\t\t" - matchingXML: io.konveyor.democonfig-utils1.0.0 + innerText: "\n io.fabric8\n kubernetes-client\n 6.0.0\n " + matchingXML: io.fabric8kubernetes-client6.0.0 + - uri: file:///analyzer-lsp/examples/java/pom.xml + message: junitjunit4.11test + variables: + data: dependency + innerText: "\n junit\n junit\n 4.11\n test\n " + matchingXML: junitjunit4.11test file-001: description: Testing that we can get all the go files in the project category: potential labels: - - testing - test + - testing incidents: - uri: file:///analyzer-lsp/examples/golang/dummy/test_functions.go message: all go files @@ -187,20 +187,25 @@ description: "" category: potential incidents: - - uri: file:///analyzer-lsp/examples/java/pom.xml - message: dependency junit.junit with 4.11 is bad and you should feel bad for using it - variables: - name: junit.junit - version: "4.11" - uri: file:///analyzer-lsp/examples/java/pom.xml message: dependency io.fabric8.kubernetes-client with 6.0.0 is bad and you should feel bad for using it variables: name: io.fabric8.kubernetes-client version: 6.0.0 + - uri: file:///analyzer-lsp/examples/java/pom.xml + message: dependency junit.junit with 4.11 is bad and you should feel bad for using it + variables: + name: junit.junit + version: "4.11" lang-ref-001: description: "" category: potential incidents: + - uri: file:///analyzer-lsp/examples/golang/main.go + message: apiextensions/v1beta1/customresourcedefinitions is deprecated, apiextensions/v1/customresourcedefinitions should be used instead + lineNumber: 10 + variables: + file: file:///analyzer-lsp/examples/golang/main.go - uri: file:///analyzer-lsp/examples/java/src/main/java/com/example/apps/App.java message: apiextensions/v1beta1/customresourcedefinitions is deprecated, apiextensions/v1/customresourcedefinitions should be used instead codeSnip: " 1 package com.example.apps;\n 2 \n 3 import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition;\n 4 \n 5 public class App \n 6 {\n 7 \n 8 /**\n 9 * {@link CustomResourceDefinition}\n10 * @param args\n11 */\n12 public static void main( String[] args )\n13 {" @@ -217,11 +222,6 @@ file: file:///analyzer-lsp/examples/java/src/main/java/com/example/apps/App.java kind: Method name: main - - uri: file:///analyzer-lsp/examples/golang/main.go - message: apiextensions/v1beta1/customresourcedefinitions is deprecated, apiextensions/v1/customresourcedefinitions should be used instead - lineNumber: 10 - variables: - file: file:///analyzer-lsp/examples/golang/main.go lang-ref-003: description: "" category: potential @@ -235,9 +235,9 @@ kind: Module name: io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition - uri: file:///analyzer-lsp/examples/java/src/main/java/com/example/apps/App.java - message: java found apiextensions/v1/customresourcedefinitions found file:///analyzer-lsp/examples/java/src/main/java/com/example/apps/App.java:14 - codeSnip: " 4 \n 5 public class App \n 6 {\n 7 \n 8 /**\n 9 * {@link CustomResourceDefinition}\n10 * @param args\n11 */\n12 public static void main( String[] args )\n13 {\n14 CustomResourceDefinition crd = new CustomResourceDefinition();\n15 System.out.println( crd );\n16 \n17 GenericClass element = new GenericClass(\"Hello world!\");\n18 element.get();\n19 }\n20 }\n" - lineNumber: 14 + message: java found apiextensions/v1/customresourcedefinitions found file:///analyzer-lsp/examples/java/src/main/java/com/example/apps/App.java:9 + codeSnip: " 1 package com.example.apps;\n 2 \n 3 import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition;\n 4 \n 5 public class App \n 6 {\n 7 \n 8 /**\n 9 * {@link CustomResourceDefinition}\n10 * @param args\n11 */\n12 public static void main( String[] args )\n13 {\n14 CustomResourceDefinition crd = new CustomResourceDefinition();\n15 System.out.println( crd );\n16 \n17 GenericClass element = new GenericClass(\"Hello world!\");\n18 element.get();\n19 }" + lineNumber: 9 variables: file: file:///analyzer-lsp/examples/java/src/main/java/com/example/apps/App.java kind: Method @@ -360,24 +360,24 @@ description: "" category: potential incidents: - - uri: file:///analyzer-lsp/examples/java/pom.xml - message: POM XML dependencies - 'junitjunit4.11test' + - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml + message: POM XML dependencies - 'ch.qos.logbacklogback-classic1.1.7' variables: data: dependency - innerText: "\n junit\n junit\n 4.11\n test\n " - matchingXML: junitjunit4.11test - - uri: file:///analyzer-lsp/examples/java/pom.xml - message: POM XML dependencies - 'io.fabric8kubernetes-client6.0.0' + innerText: "\n\t\t\tch.qos.logback\n\t\t\tlogback-classic\n\t\t\t1.1.7\n\t\t" + matchingXML: ch.qos.logbacklogback-classic1.1.7 + - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml + message: POM XML dependencies - 'com.fasterxml.jackson.corejackson-core' variables: data: dependency - innerText: "\n io.fabric8\n kubernetes-client\n 6.0.0\n " - matchingXML: io.fabric8kubernetes-client6.0.0 - - uri: file:///analyzer-lsp/examples/java/pom.xml - message: POM XML dependencies - 'io.fabric8kubernetes-client-api6.0.0' + innerText: "\n\t\t\tcom.fasterxml.jackson.core\n\t\t\tjackson-core\n\t\t" + matchingXML: com.fasterxml.jackson.corejackson-core + - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml + message: POM XML dependencies - 'com.fasterxml.jackson.corejackson-databind' variables: data: dependency - innerText: "\n io.fabric8\n kubernetes-client-api\n 6.0.0\n " - matchingXML: io.fabric8kubernetes-client-api6.0.0 + innerText: "\n\t\t\tcom.fasterxml.jackson.core\n\t\t\tjackson-databind\n\t\t" + matchingXML: com.fasterxml.jackson.corejackson-databind - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml message: POM XML dependencies - 'com.fasterxml.jacksonjackson-bom${jackson.version}importpom' variables: @@ -385,53 +385,47 @@ innerText: "\n\t\t\t\tcom.fasterxml.jackson\n\t\t\t\tjackson-bom\n\t\t\t\t${jackson.version}\n\t\t\t\timport\n\t\t\t\tpom\n\t\t\t" matchingXML: com.fasterxml.jacksonjackson-bom${jackson.version}importpom - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: POM XML dependencies - 'org.springframework.dataspring-data-bom${spring-data.version}importpom' - variables: - data: dependency - innerText: "\n\t\t\t\torg.springframework.data\n\t\t\t\tspring-data-bom\n\t\t\t\t${spring-data.version}\n\t\t\t\timport\n\t\t\t\tpom\n\t\t\t" - matchingXML: org.springframework.dataspring-data-bom${spring-data.version}importpom - - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: POM XML dependencies - 'org.apache.tomcattomcat-servlet-api${tomcat.version}provided' + message: POM XML dependencies - 'com.oracle.database.jdbcojdbc821.1.0.0' variables: data: dependency - innerText: "\n\t\t\torg.apache.tomcat\n\t\t\ttomcat-servlet-api\n\t\t\t${tomcat.version}\n\t\t\tprovided\n\t\t" - matchingXML: org.apache.tomcattomcat-servlet-api${tomcat.version}provided + innerText: "\n\t\t\tcom.oracle.database.jdbc\n\t\t\tojdbc8\n\t\t\t21.1.0.0\n\t\t" + matchingXML: com.oracle.database.jdbcojdbc821.1.0.0 - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: POM XML dependencies - 'com.fasterxml.jackson.corejackson-core' + message: POM XML dependencies - 'io.konveyor.democonfig-utils1.0.0' variables: data: dependency - innerText: "\n\t\t\tcom.fasterxml.jackson.core\n\t\t\tjackson-core\n\t\t" - matchingXML: com.fasterxml.jackson.corejackson-core + innerText: "\n\t\t\tio.konveyor.demo\n\t\t\tconfig-utils\n\t\t\t1.0.0\n\t\t" + matchingXML: io.konveyor.democonfig-utils1.0.0 - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: POM XML dependencies - 'com.fasterxml.jackson.corejackson-databind' + message: POM XML dependencies - 'org.apache.tomcattomcat-jdbc${tomcat.version}runtime' variables: data: dependency - innerText: "\n\t\t\tcom.fasterxml.jackson.core\n\t\t\tjackson-databind\n\t\t" - matchingXML: com.fasterxml.jackson.corejackson-databind + innerText: "\n\t\t\torg.apache.tomcat\n\t\t\ttomcat-jdbc\n\t\t\t${tomcat.version}\n\t\t\truntime\n\t\t" + matchingXML: org.apache.tomcattomcat-jdbc${tomcat.version}runtime - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: POM XML dependencies - 'org.springframework.dataspring-data-jpa' + message: POM XML dependencies - 'org.apache.tomcattomcat-servlet-api${tomcat.version}provided' variables: data: dependency - innerText: "\n\t\t\torg.springframework.data\n\t\t\tspring-data-jpa\n\t\t" - matchingXML: org.springframework.dataspring-data-jpa + innerText: "\n\t\t\torg.apache.tomcat\n\t\t\ttomcat-servlet-api\n\t\t\t${tomcat.version}\n\t\t\tprovided\n\t\t" + matchingXML: org.apache.tomcattomcat-servlet-api${tomcat.version}provided - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: POM XML dependencies - 'org.springframeworkspring-jdbc${spring-framework.version}' + message: POM XML dependencies - 'org.hibernate.validatorhibernate-validator${hibernate-validator.version}' variables: data: dependency - innerText: "\n\t\t\torg.springframework\n\t\t\tspring-jdbc\n\t\t\t${spring-framework.version}\n\t\t" - matchingXML: org.springframeworkspring-jdbc${spring-framework.version} + innerText: "\n\t\t\torg.hibernate.validator\n\t\t\thibernate-validator\n\t\t\t${hibernate-validator.version}\n\t\t" + matchingXML: org.hibernate.validatorhibernate-validator${hibernate-validator.version} - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: POM XML dependencies - 'org.springframeworkspring-webmvc${spring-framework.version}' + message: POM XML dependencies - 'org.hibernatehibernate-entitymanager${hibernate.version}' variables: data: dependency - innerText: "\n\t\t\torg.springframework\n\t\t\tspring-webmvc\n\t\t\t${spring-framework.version}\n\t\t" - matchingXML: org.springframeworkspring-webmvc${spring-framework.version} + innerText: "\n\t\t\torg.hibernate\n\t\t\thibernate-entitymanager\n\t\t\t${hibernate.version}\n\t\t" + matchingXML: org.hibernatehibernate-entitymanager${hibernate.version} - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: POM XML dependencies - 'org.springframeworkspring-web${spring-framework.version}' + message: POM XML dependencies - 'org.postgresqlpostgresql42.2.23' variables: data: dependency - innerText: "\n\t\t\torg.springframework\n\t\t\tspring-web\n\t\t\t${spring-framework.version}\n\t\t" - matchingXML: org.springframeworkspring-web${spring-framework.version} + innerText: "\n\t\t\torg.postgresql\n\t\t\tpostgresql\n\t\t\t42.2.23\n\t\t" + matchingXML: org.postgresqlpostgresql42.2.23 - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml message: POM XML dependencies - 'org.springframework.bootspring-boot-starter-actuator2.5.0' variables: @@ -439,47 +433,53 @@ innerText: "\n\t\t\torg.springframework.boot\n\t\t\tspring-boot-starter-actuator\n\t\t\t2.5.0\n\t\t" matchingXML: org.springframework.bootspring-boot-starter-actuator2.5.0 - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: POM XML dependencies - 'org.apache.tomcattomcat-jdbc${tomcat.version}runtime' + message: POM XML dependencies - 'org.springframework.dataspring-data-bom${spring-data.version}importpom' variables: data: dependency - innerText: "\n\t\t\torg.apache.tomcat\n\t\t\ttomcat-jdbc\n\t\t\t${tomcat.version}\n\t\t\truntime\n\t\t" - matchingXML: org.apache.tomcattomcat-jdbc${tomcat.version}runtime + innerText: "\n\t\t\t\torg.springframework.data\n\t\t\t\tspring-data-bom\n\t\t\t\t${spring-data.version}\n\t\t\t\timport\n\t\t\t\tpom\n\t\t\t" + matchingXML: org.springframework.dataspring-data-bom${spring-data.version}importpom - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: POM XML dependencies - 'org.hibernatehibernate-entitymanager${hibernate.version}' + message: POM XML dependencies - 'org.springframework.dataspring-data-jpa' variables: data: dependency - innerText: "\n\t\t\torg.hibernate\n\t\t\thibernate-entitymanager\n\t\t\t${hibernate.version}\n\t\t" - matchingXML: org.hibernatehibernate-entitymanager${hibernate.version} + innerText: "\n\t\t\torg.springframework.data\n\t\t\tspring-data-jpa\n\t\t" + matchingXML: org.springframework.dataspring-data-jpa - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: POM XML dependencies - 'org.hibernate.validatorhibernate-validator${hibernate-validator.version}' + message: POM XML dependencies - 'org.springframeworkspring-jdbc${spring-framework.version}' variables: data: dependency - innerText: "\n\t\t\torg.hibernate.validator\n\t\t\thibernate-validator\n\t\t\t${hibernate-validator.version}\n\t\t" - matchingXML: org.hibernate.validatorhibernate-validator${hibernate-validator.version} + innerText: "\n\t\t\torg.springframework\n\t\t\tspring-jdbc\n\t\t\t${spring-framework.version}\n\t\t" + matchingXML: org.springframeworkspring-jdbc${spring-framework.version} - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: POM XML dependencies - 'ch.qos.logbacklogback-classic1.1.7' + message: POM XML dependencies - 'org.springframeworkspring-web${spring-framework.version}' variables: data: dependency - innerText: "\n\t\t\tch.qos.logback\n\t\t\tlogback-classic\n\t\t\t1.1.7\n\t\t" - matchingXML: ch.qos.logbacklogback-classic1.1.7 + innerText: "\n\t\t\torg.springframework\n\t\t\tspring-web\n\t\t\t${spring-framework.version}\n\t\t" + matchingXML: org.springframeworkspring-web${spring-framework.version} - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: POM XML dependencies - 'com.oracle.database.jdbcojdbc821.1.0.0' + message: POM XML dependencies - 'org.springframeworkspring-webmvc${spring-framework.version}' variables: data: dependency - innerText: "\n\t\t\tcom.oracle.database.jdbc\n\t\t\tojdbc8\n\t\t\t21.1.0.0\n\t\t" - matchingXML: com.oracle.database.jdbcojdbc821.1.0.0 - - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: POM XML dependencies - 'org.postgresqlpostgresql42.2.23' + innerText: "\n\t\t\torg.springframework\n\t\t\tspring-webmvc\n\t\t\t${spring-framework.version}\n\t\t" + matchingXML: org.springframeworkspring-webmvc${spring-framework.version} + - uri: file:///analyzer-lsp/examples/java/pom.xml + message: POM XML dependencies - 'io.fabric8kubernetes-client-api6.0.0' variables: data: dependency - innerText: "\n\t\t\torg.postgresql\n\t\t\tpostgresql\n\t\t\t42.2.23\n\t\t" - matchingXML: org.postgresqlpostgresql42.2.23 - - uri: file:///analyzer-lsp/examples/customers-tomcat-legacy/pom.xml - message: POM XML dependencies - 'io.konveyor.democonfig-utils1.0.0' + innerText: "\n io.fabric8\n kubernetes-client-api\n 6.0.0\n " + matchingXML: io.fabric8kubernetes-client-api6.0.0 + - uri: file:///analyzer-lsp/examples/java/pom.xml + message: POM XML dependencies - 'io.fabric8kubernetes-client6.0.0' variables: data: dependency - innerText: "\n\t\t\tio.konveyor.demo\n\t\t\tconfig-utils\n\t\t\t1.0.0\n\t\t" - matchingXML: io.konveyor.democonfig-utils1.0.0 + innerText: "\n io.fabric8\n kubernetes-client\n 6.0.0\n " + matchingXML: io.fabric8kubernetes-client6.0.0 + - uri: file:///analyzer-lsp/examples/java/pom.xml + message: POM XML dependencies - 'junitjunit4.11test' + variables: + data: dependency + innerText: "\n junit\n junit\n 4.11\n test\n " + matchingXML: junitjunit4.11test errors: error-rule-001: |- unable to get query info: yaml: unmarshal errors: diff --git a/output/v1/konveyor/violations.go b/output/v1/konveyor/violations.go index d6772be6..f7b9b785 100644 --- a/output/v1/konveyor/violations.go +++ b/output/v1/konveyor/violations.go @@ -2,6 +2,8 @@ package konveyor import ( "encoding/json" + "sort" + "strings" "go.lsp.dev/uri" ) @@ -32,6 +34,14 @@ type RuleSet struct { Skipped []string `yaml:"skipped,omitempty" json:"skipped,omitempty"` } +func (r RuleSet) MarshalYAML() (interface{}, error) { + sort.Strings(r.Tags) + sort.Strings(r.Unmatched) + sort.Strings(r.Skipped) + + return r, nil +} + type Category string var ( @@ -73,6 +83,42 @@ type Violation struct { Effort *int `yaml:"effort,omitempty" json:"effort,omitempty"` } +func (v Violation) MarshalYAML() (interface{}, error) { + sort.Strings(v.Labels) + sort.SliceStable(v.Incidents, func(i, j int) bool { + if v.Incidents[i].URI != v.Incidents[j].URI { + return v.Incidents[i].URI < v.Incidents[j].URI + } + + if v.Incidents[i].Message != v.Incidents[j].Message { + return v.Incidents[i].Message < v.Incidents[j].Message + } + + if v.Incidents[i].CodeSnip != v.Incidents[j].CodeSnip { + return v.Incidents[i].CodeSnip < v.Incidents[j].CodeSnip + } + + if *v.Incidents[i].LineNumber != *v.Incidents[j].LineNumber { + return *v.Incidents[i].LineNumber < *v.Incidents[j].LineNumber + } + + return false + }) + sort.SliceStable(v.Links, func(i, j int) bool { + if v.Links[i].URL != v.Links[j].URL { + return v.Links[i].URL < v.Links[j].URL + } + + if v.Links[i].Title != v.Links[j].Title { + return v.Links[i].Title < v.Links[j].Title + } + + return false + }) + + return v, nil +} + // Incident defines instance of a violation type Incident struct { // URI defines location in the codebase where violation is found @@ -104,6 +150,46 @@ type Dep struct { FileURIPrefix string `json:"prefix,omitempty" yaml:"prefix,omitempty"` } +func (d Dep) MarshalYAML() (interface{}, error) { + sort.Strings(d.Labels) + + return d, nil +} + +func (d Dep) cmpLess(other Dep) bool { + if d.Name != other.Name { + return d.Name < other.Name + } + + if d.Version != other.Version { + return d.Version < other.Version + } + + if d.Type != other.Type { + return d.Type < other.Type + } + + if d.Indirect != other.Indirect { + return !d.Indirect && other.Indirect + } + + if d.ResolvedIdentifier != other.ResolvedIdentifier { + return d.ResolvedIdentifier < other.ResolvedIdentifier + } + + dLabels := strings.Join(d.Labels, ",") + otherLabels := strings.Join(other.Labels, ",") + if dLabels != otherLabels { + return dLabels < otherLabels + } + + if d.FileURIPrefix != other.FileURIPrefix { + return d.FileURIPrefix < other.FileURIPrefix + } + + return false +} + func (d *Dep) GetLabels() []string { return d.Labels }