diff --git a/its/autoscan/src/test/resources/autoscan/diffs/diff_S6813.json b/its/autoscan/src/test/resources/autoscan/diffs/diff_S6813.json index 31507ae569..d50149014f 100644 --- a/its/autoscan/src/test/resources/autoscan/diffs/diff_S6813.json +++ b/its/autoscan/src/test/resources/autoscan/diffs/diff_S6813.json @@ -1,6 +1,6 @@ { "ruleKey": "S6813", "hasTruePositives": true, - "falseNegatives": 64, + "falseNegatives": 65, "falsePositives": 0 } diff --git a/java-checks-test-sources/default/src/main/java/checks/AtLeastOneConstructorCheckJakartaSample.java b/java-checks-test-sources/default/src/main/java/checks/AtLeastOneConstructorCheckJakartaSample.java new file mode 100644 index 0000000000..23ce1ba26d --- /dev/null +++ b/java-checks-test-sources/default/src/main/java/checks/AtLeastOneConstructorCheckJakartaSample.java @@ -0,0 +1,16 @@ +package checks; + +import jakarta.inject.Inject; + +class InjectedService { +} + +class JakartaInject { + @jakarta.inject.Inject + private InjectedService myService; // Compliant, fields annotated with Jakarta's @Inject should be ignored. +} + +class JakartaImportedInject { + @Inject + private InjectedService myService; // Compliant, fields annotated with Jakarta's @Inject should be ignored. +} diff --git a/java-checks/src/main/java/org/sonar/java/checks/AtLeastOneConstructorCheck.java b/java-checks/src/main/java/org/sonar/java/checks/AtLeastOneConstructorCheck.java index 17717c6a40..f2ebc07749 100644 --- a/java-checks/src/main/java/org/sonar/java/checks/AtLeastOneConstructorCheck.java +++ b/java-checks/src/main/java/org/sonar/java/checks/AtLeastOneConstructorCheck.java @@ -54,12 +54,13 @@ public class AtLeastOneConstructorCheck extends IssuableSubscriptionVisitor { "javax.annotation.Resource", "javax.ejb.EJB", "javax.inject.Inject", + "jakarta.inject.Inject", "org.apache.maven.plugins.annotations.Component", "org.apache.maven.plugins.annotations.Parameter", "org.codehaus.plexus.component.annotations.Requirement", "org.codehaus.plexus.component.annotations.Configuration", "org.springframework.beans.factory.annotation.Value" - ); + ); @Override public List nodesToVisit() { diff --git a/java-checks/src/test/java/org/sonar/java/checks/AtLeastOneConstructorCheckTest.java b/java-checks/src/test/java/org/sonar/java/checks/AtLeastOneConstructorCheckTest.java index e3f3b62b1a..c6557513d1 100644 --- a/java-checks/src/test/java/org/sonar/java/checks/AtLeastOneConstructorCheckTest.java +++ b/java-checks/src/test/java/org/sonar/java/checks/AtLeastOneConstructorCheckTest.java @@ -30,6 +30,10 @@ void test() { .onFile(mainCodeSourcesPath("checks/AtLeastOneConstructorCheckSample.java")) .withCheck(new AtLeastOneConstructorCheck()) .verifyIssues(); + CheckVerifier.newVerifier() + .onFile(mainCodeSourcesPath("checks/AtLeastOneConstructorCheckJakartaSample.java")) + .withCheck(new AtLeastOneConstructorCheck()) + .verifyNoIssues(); } @Test