Migration guide to 9 mentions Java Bean rule for Boolean properties prefix

In the migration guide to 9, there is the following:

Gradle property names are derived by following the Java Bean specification with one exception. Gradle recognizes methods with a Boolean return type and a is-prefix as a boolean property. This is behavior inherited from Groovy originally. Groovy 4 more closely follows the Java Bean specification and no longer supports this exception.

I disagree with the justification. The Java Beans specification version 1.01, section 8.3.2 clearly points out that using “is” prefix is the preferred way of signaling a boolean property:

This “is” method may be provided instead of a “get” meth-
od, or it may be provided in addition to a “get” method.
In either case, if the “is” method is present for a boolean property then we will
use the “is” method to read the property value.

Did groovy change its implementation just because it was easier? Is there a newer version of the java bean spec?

I think the reason in the guide should be corrected.

boolean yes, Boolean no.

I couldn’t find where in the Java Beans specification there is a distinction between primitive and wrapper properties. They appear to always be treated the same. In reality I saw no “Boolean” property in any of the examples in the document.

That’s not the point.
The spec says it looks for priorities by looking for getter and setter that take and return the same type.

And for boolean and boolean alone there is the exception with is for the getter. boolean is not the same as Boolean and as the spec does not say that both should be considered the same, Boolean is not affected by the is exception.