...
While all code is exposed, there is still the official public Java API that should be used from within plugins and beans. Besides that fact that the plugin/bean that relies on non-public classes/functions might break in future versions, it also would require the plugin/bean to be released under AGPL. See the public Java API here .
Where can I find more information on AGPL?
...