Non-public interface producer
If the return type of a producer is an interface then the client proxy package is defaulted to org.jboss.weld.proxies. I'm not sure whether there is some good reason for this - it's in the codebase for ages. We'll have to check carefully.
Private nested class
The problem is MetricRegistry declares a private interface MetricBuilder which is used as a param of a private method. And the proxy attempts to implement all non-static non-final methods. This may not make much sense for client proxies but is needed e.g. for intercepted subclasses with private producers/observers. On the other hand, the return values of producer methods neither support interception nor may declare observers. So it could make sense to skip private methods on client proxies.
Package-private class
This should work - the proxy should have the same package as the MyBean class. Could you refer to some reproducer/test?
|