Skip to content

Instantly share code, notes, and snippets.

@djzager
Last active January 30, 2025 18:14
Show Gist options
  • Save djzager/2b83e980a553faae7e36c91c0ae042e5 to your computer and use it in GitHub Desktop.
Save djzager/2b83e980a553faae7e36c91c0ae042e5 to your computer and use it in GitHub Desktop.
Enhanced Incident Refactor
{
"file_path": "",
"incidents": [
{
"uri": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/model/InventoryEntity.java",
"message": "Replace the `javax.persistence` import statement with `jakarta.persistence`",
"codeSnip": " 1 package com.redhat.coolstore.model;\n 2 \n 3 import java.io.Serializable;\n 4 \n 5 import javax.persistence.Column;\n 6 import javax.persistence.Entity;\n 7 import javax.persistence.Id;\n 8 import javax.persistence.Table;\n 9 import javax.persistence.UniqueConstraint;\n10 import javax.xml.bind.annotation.XmlRootElement;\n11 \n12 @Entity\n13 @XmlRootElement\n14 @Table(name = \"INVENTORY\", uniqueConstraints = @UniqueConstraint(columnNames = \"itemId\"))\n15 public class InventoryEntity implements Serializable {\n16 \n17 \tprivate static final long serialVersionUID = 7526472295622776147L; \n18 ",
"lineNumber": 8,
"variables": {
"file": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/model/InventoryEntity.java",
"kind": "Module",
"name": "javax.persistence.Table",
"package": "com.redhat.coolstore.model",
"renamed": "persistence"
},
"ruleset_name": "eap8/eap7",
"ruleset_description": "This ruleset provides analysis of Java EE applications that need to change certain CDI-related method calls.",
"violation_name": "javax-to-jakarta-import-00001",
"violation_description": "The package 'javax' has been replaced by 'jakarta'.",
"violation_category": "mandatory",
"violation_labels": [
"konveyor.io/target=jakarta-ee9+",
"konveyor.io/target=jakarta-ee",
"konveyor.io/target=eap8",
"konveyor.io/target=eap",
"konveyor.io/target=jws6+",
"konveyor.io/target=jws",
"konveyor.io/source"
],
"violationId": "javax-to-jakarta-import-00001"
},
{
"uri": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/model/InventoryEntity.java",
"message": "Replace the `javax.persistence` import statement with `jakarta.persistence`",
"codeSnip": " 1 package com.redhat.coolstore.model;\n 2 \n 3 import java.io.Serializable;\n 4 \n 5 import javax.persistence.Column;\n 6 import javax.persistence.Entity;\n 7 import javax.persistence.Id;\n 8 import javax.persistence.Table;\n 9 import javax.persistence.UniqueConstraint;\n10 import javax.xml.bind.annotation.XmlRootElement;\n11 \n12 @Entity\n13 @XmlRootElement\n14 @Table(name = \"INVENTORY\", uniqueConstraints = @UniqueConstraint(columnNames = \"itemId\"))\n15 public class InventoryEntity implements Serializable {\n16 \n17 \tprivate static final long serialVersionUID = 7526472295622776147L; ",
"lineNumber": 7,
"variables": {
"file": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/model/InventoryEntity.java",
"kind": "Module",
"name": "javax.persistence.Id",
"package": "com.redhat.coolstore.model",
"renamed": "persistence"
},
"ruleset_name": "eap8/eap7",
"ruleset_description": "This ruleset provides analysis of Java EE applications that need to change certain CDI-related method calls.",
"violation_name": "javax-to-jakarta-import-00001",
"violation_description": "The package 'javax' has been replaced by 'jakarta'.",
"violation_category": "mandatory",
"violation_labels": [
"konveyor.io/target=jakarta-ee9+",
"konveyor.io/target=jakarta-ee",
"konveyor.io/target=eap8",
"konveyor.io/target=eap",
"konveyor.io/target=jws6+",
"konveyor.io/target=jws",
"konveyor.io/source"
],
"violationId": "javax-to-jakarta-import-00001"
},
{
"uri": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/model/InventoryEntity.java",
"message": "Replace the `javax.persistence` import statement with `jakarta.persistence`",
"codeSnip": " 1 package com.redhat.coolstore.model;\n 2 \n 3 import java.io.Serializable;\n 4 \n 5 import javax.persistence.Column;\n 6 import javax.persistence.Entity;\n 7 import javax.persistence.Id;\n 8 import javax.persistence.Table;\n 9 import javax.persistence.UniqueConstraint;\n10 import javax.xml.bind.annotation.XmlRootElement;\n11 \n12 @Entity\n13 @XmlRootElement\n14 @Table(name = \"INVENTORY\", uniqueConstraints = @UniqueConstraint(columnNames = \"itemId\"))\n15 public class InventoryEntity implements Serializable {\n16 ",
"lineNumber": 6,
"variables": {
"file": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/model/InventoryEntity.java",
"kind": "Module",
"name": "javax.persistence.Entity",
"package": "com.redhat.coolstore.model",
"renamed": "persistence"
},
"ruleset_name": "eap8/eap7",
"ruleset_description": "This ruleset provides analysis of Java EE applications that need to change certain CDI-related method calls.",
"violation_name": "javax-to-jakarta-import-00001",
"violation_description": "The package 'javax' has been replaced by 'jakarta'.",
"violation_category": "mandatory",
"violation_labels": [
"konveyor.io/target=jakarta-ee9+",
"konveyor.io/target=jakarta-ee",
"konveyor.io/target=eap8",
"konveyor.io/target=eap",
"konveyor.io/target=jws6+",
"konveyor.io/target=jws",
"konveyor.io/source"
],
"violationId": "javax-to-jakarta-import-00001"
},
{
"uri": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/model/InventoryEntity.java",
"message": "Replace the `javax.xml` import statement with `jakarta.xml`",
"codeSnip": " 1 package com.redhat.coolstore.model;\n 2 \n 3 import java.io.Serializable;\n 4 \n 5 import javax.persistence.Column;\n 6 import javax.persistence.Entity;\n 7 import javax.persistence.Id;\n 8 import javax.persistence.Table;\n 9 import javax.persistence.UniqueConstraint;\n10 import javax.xml.bind.annotation.XmlRootElement;\n11 \n12 @Entity\n13 @XmlRootElement\n14 @Table(name = \"INVENTORY\", uniqueConstraints = @UniqueConstraint(columnNames = \"itemId\"))\n15 public class InventoryEntity implements Serializable {\n16 \n17 \tprivate static final long serialVersionUID = 7526472295622776147L; \n18 \n19 @Id\n20 private String itemId;",
"lineNumber": 10,
"variables": {
"file": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/model/InventoryEntity.java",
"kind": "Module",
"name": "javax.xml.bind.annotation.XmlRootElement",
"package": "com.redhat.coolstore.model",
"renamed": "xml"
},
"ruleset_name": "eap8/eap7",
"ruleset_description": "This ruleset provides analysis of Java EE applications that need to change certain CDI-related method calls.",
"violation_name": "javax-to-jakarta-import-00001",
"violation_description": "The package 'javax' has been replaced by 'jakarta'.",
"violation_category": "mandatory",
"violation_labels": [
"konveyor.io/target=jakarta-ee9+",
"konveyor.io/target=jakarta-ee",
"konveyor.io/target=eap8",
"konveyor.io/target=eap",
"konveyor.io/target=jws6+",
"konveyor.io/target=jws",
"konveyor.io/source"
],
"violationId": "javax-to-jakarta-import-00001"
},
{
"uri": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/model/InventoryEntity.java",
"message": "Replace the `javax.persistence` import statement with `jakarta.persistence`",
"codeSnip": " 1 package com.redhat.coolstore.model;\n 2 \n 3 import java.io.Serializable;\n 4 \n 5 import javax.persistence.Column;\n 6 import javax.persistence.Entity;\n 7 import javax.persistence.Id;\n 8 import javax.persistence.Table;\n 9 import javax.persistence.UniqueConstraint;\n10 import javax.xml.bind.annotation.XmlRootElement;\n11 \n12 @Entity\n13 @XmlRootElement\n14 @Table(name = \"INVENTORY\", uniqueConstraints = @UniqueConstraint(columnNames = \"itemId\"))\n15 public class InventoryEntity implements Serializable {\n16 \n17 \tprivate static final long serialVersionUID = 7526472295622776147L; \n18 \n19 @Id",
"lineNumber": 9,
"variables": {
"file": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/model/InventoryEntity.java",
"kind": "Module",
"name": "javax.persistence.UniqueConstraint",
"package": "com.redhat.coolstore.model",
"renamed": "persistence"
},
"ruleset_name": "eap8/eap7",
"ruleset_description": "This ruleset provides analysis of Java EE applications that need to change certain CDI-related method calls.",
"violation_name": "javax-to-jakarta-import-00001",
"violation_description": "The package 'javax' has been replaced by 'jakarta'.",
"violation_category": "mandatory",
"violation_labels": [
"konveyor.io/target=jakarta-ee9+",
"konveyor.io/target=jakarta-ee",
"konveyor.io/target=eap8",
"konveyor.io/target=eap",
"konveyor.io/target=jws6+",
"konveyor.io/target=jws",
"konveyor.io/source"
],
"violationId": "javax-to-jakarta-import-00001"
},
{
"uri": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/model/InventoryEntity.java",
"message": "Replace the `javax.persistence` import statement with `jakarta.persistence`",
"codeSnip": " 1 package com.redhat.coolstore.model;\n 2 \n 3 import java.io.Serializable;\n 4 \n 5 import javax.persistence.Column;\n 6 import javax.persistence.Entity;\n 7 import javax.persistence.Id;\n 8 import javax.persistence.Table;\n 9 import javax.persistence.UniqueConstraint;\n10 import javax.xml.bind.annotation.XmlRootElement;\n11 \n12 @Entity\n13 @XmlRootElement\n14 @Table(name = \"INVENTORY\", uniqueConstraints = @UniqueConstraint(columnNames = \"itemId\"))\n15 public class InventoryEntity implements Serializable {",
"lineNumber": 5,
"variables": {
"file": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/model/InventoryEntity.java",
"kind": "Module",
"name": "javax.persistence.Column",
"package": "com.redhat.coolstore.model",
"renamed": "persistence"
},
"ruleset_name": "eap8/eap7",
"ruleset_description": "This ruleset provides analysis of Java EE applications that need to change certain CDI-related method calls.",
"violation_name": "javax-to-jakarta-import-00001",
"violation_description": "The package 'javax' has been replaced by 'jakarta'.",
"violation_category": "mandatory",
"violation_labels": [
"konveyor.io/target=jakarta-ee9+",
"konveyor.io/target=jakarta-ee",
"konveyor.io/target=eap8",
"konveyor.io/target=eap",
"konveyor.io/target=jws6+",
"konveyor.io/target=jws",
"konveyor.io/source"
],
"violationId": "javax-to-jakarta-import-00001"
}
],
"max_priority": 0,
"max_depth": 1
}
{
"file_path": "",
"incidents": [
{
"uri": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/service/ShippingService.java",
"message": "Stateless EJBs can be converted to a CDI bean by replacing the `@Stateless` annotation with a scope eg `@ApplicationScoped`",
"codeSnip": " 1 package com.redhat.coolstore.service;\n 2 \n 3 import java.math.BigDecimal;\n 4 import java.math.RoundingMode;\n 5 \n 6 import javax.ejb.Remote;\n 7 import javax.ejb.Stateless;\n 8 \n 9 import com.redhat.coolstore.model.ShoppingCart;\n10 \n11 @Stateless\n12 @Remote\n13 public class ShippingService implements ShippingServiceRemote {\n14 \n15 @Override\n16 public double calculateShipping(ShoppingCart sc) {\n17 \n18 if (sc != null) {\n19 \n20 if (sc.getCartItemTotal() >= 0 && sc.getCartItemTotal() < 25) {\n21 ",
"lineNumber": 11,
"variables": {
"file": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/service/ShippingService.java",
"kind": "Class",
"name": "Stateless",
"package": "com.redhat.coolstore.service"
},
"ruleset_name": "quarkus/springboot",
"ruleset_description": "This ruleset gives hints to migrate from SpringBoot devtools to Quarkus",
"violation_name": "ee-to-quarkus-00000",
"violation_description": "@Stateless annotation must be replaced",
"violation_category": "potential",
"violation_labels": [
"konveyor.io/source=java-ee",
"konveyor.io/source=jakarta-ee",
"konveyor.io/target=quarkus"
],
"violationId": "ee-to-quarkus-00000"
},
{
"uri": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/service/ShippingService.java",
"message": "The Stateless EJBs can be converted to a cdi bean by replacing the `@Stateless` annotation with a scope eg `@ApplicationScoped`",
"codeSnip": " 1 package com.redhat.coolstore.service;\n 2 \n 3 import java.math.BigDecimal;\n 4 import java.math.RoundingMode;\n 5 \n 6 import javax.ejb.Remote;\n 7 import javax.ejb.Stateless;\n 8 \n 9 import com.redhat.coolstore.model.ShoppingCart;\n10 \n11 @Stateless\n12 @Remote\n13 public class ShippingService implements ShippingServiceRemote {\n14 \n15 @Override\n16 public double calculateShipping(ShoppingCart sc) {\n17 \n18 if (sc != null) {\n19 \n20 if (sc.getCartItemTotal() >= 0 && sc.getCartItemTotal() < 25) {\n21 ",
"lineNumber": 11,
"variables": {
"file": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/service/ShippingService.java",
"kind": "Class",
"name": "Stateless",
"package": "com.redhat.coolstore.service"
},
"ruleset_name": "quarkus/springboot",
"ruleset_description": "This ruleset gives hints to migrate from SpringBoot devtools to Quarkus",
"violation_name": "jakarta-cdi-to-quarkus-00050",
"violation_description": "Stateless annotation can be replaced with scope",
"violation_category": "potential",
"violation_labels": [
"konveyor.io/source=java-ee",
"konveyor.io/target=quarkus"
],
"violationId": "jakarta-cdi-to-quarkus-00050"
},
{
"uri": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/service/ShippingService.java",
"message": "Remote EJBs are not supported in Quarkus, and therefore its use must be removed and replaced with REST functionality. In order to do this:\n 1. Replace the `@Remote` annotation on the class with a `@jakarta.ws.rs.Path(\"<endpoint>\")` annotation. An endpoint must be added to the annotation in place of `<endpoint>` to specify the actual path to the REST service.\n 2. Remove `@Stateless` annotations if present. Given that REST services are stateless by nature, it makes it unnecessary.\n 3. For every public method on the EJB being converted, do the following:\n - In case the method has no input parameters, annotate the method with `@jakarta.ws.rs.GET`; otherwise annotate it with `@jakarta.ws.rs.POST` instead.\n - Annotate the method with `@jakarta.ws.rs.Path(\"<endpoint>\")` and give it a proper endpoint path. As a rule of thumb, the method name can be used as endpoint, for instance:\n ```\n @Path(\"/increment\")\n public void increment() \n ```\n - Add `@jakarta.ws.rs.QueryParam(\"<param-name>\")` to any method parameters if needed, where `<param-name>` is a name for the parameter.",
"codeSnip": " 2 \n 3 import java.math.BigDecimal;\n 4 import java.math.RoundingMode;\n 5 \n 6 import javax.ejb.Remote;\n 7 import javax.ejb.Stateless;\n 8 \n 9 import com.redhat.coolstore.model.ShoppingCart;\n10 \n11 @Stateless\n12 @Remote\n13 public class ShippingService implements ShippingServiceRemote {\n14 \n15 @Override\n16 public double calculateShipping(ShoppingCart sc) {\n17 \n18 if (sc != null) {\n19 \n20 if (sc.getCartItemTotal() >= 0 && sc.getCartItemTotal() < 25) {\n21 \n22 return 2.99;",
"lineNumber": 12,
"variables": {
"file": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/service/ShippingService.java",
"kind": "Class",
"name": "Stateless",
"package": "com.redhat.coolstore.service"
},
"ruleset_name": "quarkus/springboot",
"ruleset_description": "This ruleset gives hints to migrate from SpringBoot devtools to Quarkus",
"violation_name": "remote-ejb-to-quarkus-00000",
"violation_description": "Remote EJBs are not supported in Quarkus",
"violation_category": "mandatory",
"violation_labels": [
"konveyor.io/source=java-ee",
"konveyor.io/source=jakarta-ee",
"konveyor.io/target=quarkus"
],
"violationId": "remote-ejb-to-quarkus-00000"
},
{
"uri": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/service/ShippingService.java",
"message": "Replace the `javax.ejb` import statement with `jakarta.ejb`",
"codeSnip": " 1 package com.redhat.coolstore.service;\n 2 \n 3 import java.math.BigDecimal;\n 4 import java.math.RoundingMode;\n 5 \n 6 import javax.ejb.Remote;\n 7 import javax.ejb.Stateless;\n 8 \n 9 import com.redhat.coolstore.model.ShoppingCart;\n10 \n11 @Stateless\n12 @Remote\n13 public class ShippingService implements ShippingServiceRemote {\n14 \n15 @Override\n16 public double calculateShipping(ShoppingCart sc) {\n17 ",
"lineNumber": 7,
"variables": {
"file": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/service/ShippingService.java",
"kind": "Module",
"name": "javax.ejb.Stateless",
"package": "com.redhat.coolstore.service",
"renamed": "ejb"
},
"ruleset_name": "eap8/eap7",
"ruleset_description": "This ruleset provides analysis of Java EE applications that need to change certain CDI-related method calls.",
"violation_name": "javax-to-jakarta-import-00001",
"violation_description": "The package 'javax' has been replaced by 'jakarta'.",
"violation_category": "mandatory",
"violation_labels": [
"konveyor.io/target=jakarta-ee9+",
"konveyor.io/target=jakarta-ee",
"konveyor.io/target=eap8",
"konveyor.io/target=eap",
"konveyor.io/target=jws6+",
"konveyor.io/target=jws",
"konveyor.io/source"
],
"violationId": "javax-to-jakarta-import-00001"
},
{
"uri": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/service/ShippingService.java",
"message": "Replace the `javax.ejb` import statement with `jakarta.ejb`",
"codeSnip": " 1 package com.redhat.coolstore.service;\n 2 \n 3 import java.math.BigDecimal;\n 4 import java.math.RoundingMode;\n 5 \n 6 import javax.ejb.Remote;\n 7 import javax.ejb.Stateless;\n 8 \n 9 import com.redhat.coolstore.model.ShoppingCart;\n10 \n11 @Stateless\n12 @Remote\n13 public class ShippingService implements ShippingServiceRemote {\n14 \n15 @Override\n16 public double calculateShipping(ShoppingCart sc) {",
"lineNumber": 6,
"variables": {
"file": "file:///Users/dzager/Workspace/coolstore/src/main/java/com/redhat/coolstore/service/ShippingService.java",
"kind": "Module",
"name": "javax.ejb.Remote",
"package": "com.redhat.coolstore.service",
"renamed": "ejb"
},
"ruleset_name": "eap8/eap7",
"ruleset_description": "This ruleset provides analysis of Java EE applications that need to change certain CDI-related method calls.",
"violation_name": "javax-to-jakarta-import-00001",
"violation_description": "The package 'javax' has been replaced by 'jakarta'.",
"violation_category": "mandatory",
"violation_labels": [
"konveyor.io/target=jakarta-ee9+",
"konveyor.io/target=jakarta-ee",
"konveyor.io/target=eap8",
"konveyor.io/target=eap",
"konveyor.io/target=jws6+",
"konveyor.io/target=jws",
"konveyor.io/source"
],
"violationId": "javax-to-jakarta-import-00001"
}
],
"max_priority": 0,
"max_depth": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment