return proxy.getClass().getName() + '@' + Integer.toHexString(System.identityHashCode(this)) + "$DynamicComposite$[" + componentInterface.getName() + "]";
}
//TODO add double-check locking
if (components == null) {
components = provider.getAll(componentInterface, new SelectionAdvisor() {
@Override
public boolean validSelection(ComponentStrategy<?> candidateStrategy) {
Class<?> candidateClass = candidateStrategy.getComponentType();
return candidateClass != proxy.getClass() || Proxy.isProxyClass(candidateClass);
}