Browse Source

Upgrade to nullability plugin 0.0.9

This commit also replaces Arch Unit packageInfoShouldBeNullMarked() rule
by either configuring requireExplicitNullMarking = false when the whole
module does not have JSpecify annotations, or explicit @NullUnmarked
when some have and some don't.

See gh-36054
pull/36089/head
Sébastien Deleuze 1 month ago
parent
commit
46fb7c026c
  1. 2
      build.gradle
  2. 4
      buildSrc/src/main/java/org/springframework/build/architecture/ArchitectureCheck.java
  3. 7
      buildSrc/src/main/java/org/springframework/build/architecture/ArchitectureRules.java
  4. 4
      gradle/spring-module.gradle
  5. 4
      spring-context-indexer/spring-context-indexer.gradle
  6. 3
      spring-context/src/main/java/org/springframework/instrument/classloading/glassfish/package-info.java
  7. 3
      spring-context/src/main/java/org/springframework/instrument/classloading/jboss/package-info.java
  8. 3
      spring-context/src/main/java/org/springframework/instrument/classloading/package-info.java
  9. 3
      spring-context/src/main/java/org/springframework/instrument/classloading/tomcat/package-info.java
  10. 3
      spring-core/src/main/java/org/springframework/aot/nativex/feature/package-info.java
  11. 3
      spring-core/src/main/java/org/springframework/aot/nativex/substitution/package-info.java
  12. 3
      spring-core/src/main/java/org/springframework/asm/package-info.java
  13. 3
      spring-core/src/main/java/org/springframework/cglib/beans/package-info.java
  14. 3
      spring-core/src/main/java/org/springframework/cglib/core/internal/package-info.java
  15. 3
      spring-core/src/main/java/org/springframework/cglib/core/package-info.java
  16. 3
      spring-core/src/main/java/org/springframework/cglib/package-info.java
  17. 3
      spring-core/src/main/java/org/springframework/cglib/proxy/package-info.java
  18. 3
      spring-core/src/main/java/org/springframework/cglib/reflect/package-info.java
  19. 3
      spring-core/src/main/java/org/springframework/cglib/transform/impl/package-info.java
  20. 3
      spring-core/src/main/java/org/springframework/cglib/transform/package-info.java
  21. 3
      spring-core/src/main/java/org/springframework/cglib/util/package-info.java
  22. 3
      spring-core/src/main/java/org/springframework/objenesis/package-info.java
  23. 4
      spring-instrument/spring-instrument.gradle

2
build.gradle

@ -6,7 +6,7 @@ plugins { @@ -6,7 +6,7 @@ plugins {
id 'com.github.bjornvester.xjc' version '1.8.2' apply false
id 'com.gradleup.shadow' version "9.2.2" apply false
id 'me.champeau.jmh' version '0.7.2' apply false
id 'io.spring.nullability' version '0.0.8' apply false
id 'io.spring.nullability' version '0.0.9' apply false
}
ext {

4
buildSrc/src/main/java/org/springframework/build/architecture/ArchitectureCheck.java

@ -49,7 +49,6 @@ import static org.springframework.build.architecture.ArchitectureRules.classesSh @@ -49,7 +49,6 @@ import static org.springframework.build.architecture.ArchitectureRules.classesSh
import static org.springframework.build.architecture.ArchitectureRules.javaClassesShouldNotImportKotlinAnnotations;
import static org.springframework.build.architecture.ArchitectureRules.noClassesShouldCallStringToLowerCaseWithoutLocale;
import static org.springframework.build.architecture.ArchitectureRules.noClassesShouldCallStringToUpperCaseWithoutLocale;
import static org.springframework.build.architecture.ArchitectureRules.packageInfoShouldBeNullMarked;
/**
* {@link Task} that checks for architecture problems.
@ -64,8 +63,7 @@ public abstract class ArchitectureCheck extends DefaultTask { @@ -64,8 +63,7 @@ public abstract class ArchitectureCheck extends DefaultTask {
public ArchitectureCheck() {
getOutputDirectory().convention(getProject().getLayout().getBuildDirectory().dir(getName()));
getProhibitObjectsRequireNonNull().convention(true);
getRules().addAll(packageInfoShouldBeNullMarked(),
classesShouldNotImportForbiddenTypes(),
getRules().addAll(classesShouldNotImportForbiddenTypes(),
javaClassesShouldNotImportKotlinAnnotations(),
allPackagesShouldBeFreeOfTangles(),
noClassesShouldCallStringToLowerCaseWithoutLocale(),

7
buildSrc/src/main/java/org/springframework/build/architecture/ArchitectureRules.java

@ -46,13 +46,6 @@ abstract class ArchitectureRules { @@ -46,13 +46,6 @@ abstract class ArchitectureRules {
.because("String.toUpperCase(Locale.ROOT) should be used instead");
}
static ArchRule packageInfoShouldBeNullMarked() {
return ArchRuleDefinition.classes()
.that().haveSimpleName("package-info")
.should().beAnnotatedWith("org.jspecify.annotations.NullMarked")
.allowEmptyShould(true);
}
static ArchRule classesShouldNotImportForbiddenTypes() {
return ArchRuleDefinition.noClasses()
.should().dependOnClassesThat()

4
gradle/spring-module.gradle

@ -105,10 +105,6 @@ tasks.register('javadocJar', Jar) { @@ -105,10 +105,6 @@ tasks.register('javadocJar', Jar) {
from javadoc
}
nullability {
nullAwayVersion = "0.12.15"
}
publishing {
publications {
mavenJava(MavenPublication) {

4
spring-context-indexer/spring-context-indexer.gradle

@ -7,3 +7,7 @@ dependencies { @@ -7,3 +7,7 @@ dependencies {
testImplementation("jakarta.persistence:jakarta.persistence-api")
testImplementation("jakarta.transaction:jakarta.transaction-api")
}
nullability {
requireExplicitNullMarking = false
}

3
spring-context/src/main/java/org/springframework/instrument/classloading/glassfish/package-info.java

@ -1,4 +1,7 @@ @@ -1,4 +1,7 @@
/**
* Support for class instrumentation on GlassFish.
*/
@NullUnmarked
package org.springframework.instrument.classloading.glassfish;
import org.jspecify.annotations.NullUnmarked;

3
spring-context/src/main/java/org/springframework/instrument/classloading/jboss/package-info.java

@ -1,4 +1,7 @@ @@ -1,4 +1,7 @@
/**
* Support for class instrumentation on JBoss AS 6 and 7.
*/
@NullUnmarked
package org.springframework.instrument.classloading.jboss;
import org.jspecify.annotations.NullUnmarked;

3
spring-context/src/main/java/org/springframework/instrument/classloading/package-info.java

@ -2,4 +2,7 @@ @@ -2,4 +2,7 @@
* Support package for load time weaving based on class loaders,
* as required by JPA providers (but not JPA-specific).
*/
@NullUnmarked
package org.springframework.instrument.classloading;
import org.jspecify.annotations.NullUnmarked;

3
spring-context/src/main/java/org/springframework/instrument/classloading/tomcat/package-info.java

@ -1,4 +1,7 @@ @@ -1,4 +1,7 @@
/**
* Support for class instrumentation on Tomcat.
*/
@NullUnmarked
package org.springframework.instrument.classloading.tomcat;
import org.jspecify.annotations.NullUnmarked;

3
spring-core/src/main/java/org/springframework/aot/nativex/feature/package-info.java

@ -1,4 +1,7 @@ @@ -1,4 +1,7 @@
/**
* GraalVM native image features, not part of Spring Framework public API.
*/
@NullUnmarked
package org.springframework.aot.nativex.feature;
import org.jspecify.annotations.NullUnmarked;

3
spring-core/src/main/java/org/springframework/aot/nativex/substitution/package-info.java

@ -1,4 +1,7 @@ @@ -1,4 +1,7 @@
/**
* GraalVM native image substitutions, not part of Spring Framework public API.
*/
@NullUnmarked
package org.springframework.aot.nativex.substitution;
import org.jspecify.annotations.NullUnmarked;

3
spring-core/src/main/java/org/springframework/asm/package-info.java

@ -10,4 +10,7 @@ @@ -10,4 +10,7 @@
* <p>As this repackaging happens at the class file level, sources
* and javadocs are not available here.
*/
@NullUnmarked
package org.springframework.asm;
import org.jspecify.annotations.NullUnmarked;

3
spring-core/src/main/java/org/springframework/cglib/beans/package-info.java

@ -3,4 +3,7 @@ @@ -3,4 +3,7 @@
* <a href="https://github.com/cglib/cglib">CGLIB</a> beans package
* (for internal use only).
*/
@NullUnmarked
package org.springframework.cglib.beans;
import org.jspecify.annotations.NullUnmarked;

3
spring-core/src/main/java/org/springframework/cglib/core/internal/package-info.java

@ -3,4 +3,7 @@ @@ -3,4 +3,7 @@
* <a href="https://github.com/cglib/cglib">CGLIB</a> core internal package
* (for internal use only).
*/
@NullUnmarked
package org.springframework.cglib.core.internal;
import org.jspecify.annotations.NullUnmarked;

3
spring-core/src/main/java/org/springframework/cglib/core/package-info.java

@ -3,4 +3,7 @@ @@ -3,4 +3,7 @@
* <a href="https://github.com/cglib/cglib">CGLIB</a> core package
* (for internal use only).
*/
@NullUnmarked
package org.springframework.cglib.core;
import org.jspecify.annotations.NullUnmarked;

3
spring-core/src/main/java/org/springframework/cglib/package-info.java

@ -7,4 +7,7 @@ @@ -7,4 +7,7 @@
* dependencies on CGLIB at the application level or from third-party
* libraries and frameworks.
*/
@NullUnmarked
package org.springframework.cglib;
import org.jspecify.annotations.NullUnmarked;

3
spring-core/src/main/java/org/springframework/cglib/proxy/package-info.java

@ -3,4 +3,7 @@ @@ -3,4 +3,7 @@
* <a href="https://github.com/cglib/cglib">CGLIB</a> proxy package
* (for internal use only).
*/
@NullUnmarked
package org.springframework.cglib.proxy;
import org.jspecify.annotations.NullUnmarked;

3
spring-core/src/main/java/org/springframework/cglib/reflect/package-info.java

@ -3,4 +3,7 @@ @@ -3,4 +3,7 @@
* <a href="https://github.com/cglib/cglib">CGLIB</a> reflect package
* (for internal use only).
*/
@NullUnmarked
package org.springframework.cglib.reflect;
import org.jspecify.annotations.NullUnmarked;

3
spring-core/src/main/java/org/springframework/cglib/transform/impl/package-info.java

@ -3,4 +3,7 @@ @@ -3,4 +3,7 @@
* <a href="https://github.com/cglib/cglib">CGLIB</a> transform impl package
* (for internal use only).
*/
@NullUnmarked
package org.springframework.cglib.transform.impl;
import org.jspecify.annotations.NullUnmarked;

3
spring-core/src/main/java/org/springframework/cglib/transform/package-info.java

@ -3,4 +3,7 @@ @@ -3,4 +3,7 @@
* <a href="https://github.com/cglib/cglib">CGLIB</a> transform package
* (for internal use only).
*/
@NullUnmarked
package org.springframework.cglib.transform;
import org.jspecify.annotations.NullUnmarked;

3
spring-core/src/main/java/org/springframework/cglib/util/package-info.java

@ -3,4 +3,7 @@ @@ -3,4 +3,7 @@
* <a href="https://github.com/cglib/cglib">CGLIB</a> util package
* (for internal use only).
*/
@NullUnmarked
package org.springframework.cglib.util;
import org.jspecify.annotations.NullUnmarked;

3
spring-core/src/main/java/org/springframework/objenesis/package-info.java

@ -12,4 +12,7 @@ @@ -12,4 +12,7 @@
* <a href="http://objenesis.org/tutorial.html">Objenesis docs</a>
* for details when working with these classes.
*/
@NullUnmarked
package org.springframework.objenesis;
import org.jspecify.annotations.NullUnmarked;

4
spring-instrument/spring-instrument.gradle

@ -9,3 +9,7 @@ jar { @@ -9,3 +9,7 @@ jar {
manifest.attributes["Can-Retransform-Classes"] = "true"
manifest.attributes["Can-Set-Native-Method-Prefix"] = "false"
}
nullability {
requireExplicitNullMarking = false
}

Loading…
Cancel
Save