Make additional helper classes available

Hi,

we recently upgraded our SQ-Server from 7.9.6 to 8.9 LTS. When adapting our custom plugin to the new provided versions I took the opportunity to check our dependencies. Our plugin was about 28 MB large and that seemed kind of strange to me. I noticed that we had a dependency on java-frontend:

<dependency>
	<groupId>org.sonarsource.java</groupId>
	<artifactId>java-frontend</artifactId>
	<version>${sonarjava.version}</version>
</dependency>

This artifact is not in the POM of the custom plugin example, so I removed it. As a result our plugin’s size decreased to 500 kB. However, this caused ClassNotFoundExceptions because we were using some of your utility classes which aren’t available at analysis time. Namely

org.sonar.java.checks.PatternUtils
org.sonar.java.checks.helpers.Javadoc
org.sonar.java.model.ExpressionUtils
org.sonar.java.model.ModifiersUtils
org.sonar.java.ast.CognitiveComplexityVisitor

PatternUtils contains only one short method for which we could implement a replacement, same for ModifiersUtils. The other utilities are quite useful for general rule development, the CognitiveComplexityVisitor is useful to implement additional complexity rules that rely in part on cognitive complexity.
For all these utilities we could implement replacements, but your implementations are already tested, widely used and might be useful to others as well. So I’d like to kindly ask if it is possible to make your helper classes available in the sonar-plugin-api?

One additional question: Is there a way to limit visibility of non-API classes to prevent usage of these?

Thanks,
Oliver