In traditional Java EE applications user types are loaded by the same ClassLoader as
CGLIB. This allows CGLIB to proxy package-protected types. In OSGi environments, user types and CGLIB will
most likely be packaged in separate bundles. This results in the user types and CGLIB being loaded by
different ClassLoaders. This prevents CGLIB from proxying any package-protected types.
The workaround for this issue is to make all types that require proxying public.