...
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.
What does the AGPL license mean?
The AGPL licence provides
Why AGPL and not something else?
????
Where can I find more information on AGPL?
See http://www.gnu.org/licenses/licenses.html
Credits for patches