In SLING-5013 the according provider type/consumer type annotations have been added to all interfaces except for the annotation types. In older versions of the maven-bundle-plugin the provider type has been the default but now it is consumer type (https://github.com/bndtools/bnd/commit/5935e70ba990e40a95e14fb932158ebf8d2225fe). But testing it out it actually doesn’t make any difference for baselining whether any annotation type is marked consumer or provider type. In case I add a new element to the type (independent on whether this has a default or not), the suggested version upgrade is only minor. The output of the baselining is always
org.apache.sling.models.annotations.injectorspecific minor 1.1.0 1.1.0 1.2.0 Version increase required [INFO] < annotation org.apache.sling.models.annotations.injectorspecific.ResourcePath [INFO] + method newField() [INFO] + access abstract [INFO] + return boolean This is probably because adding a method to an interface does not break compatibility (https://docs.oracle.com/javase/specs/jls/se7/html/jls-13.html#jls-13.5.3, and https://docs.oracle.com/javase/specs/jls/se7/html/jls-13.html#jls-13.5.7), but in reality all the clients will fail at runtime if the element does not have a default value. Is this some corner case, which is just not covered by the baselining plugin or have I discovered a bug? Thanks for your comments on that. Konrad
