public JavaImplementationProviderFactory(ExtensionPointRegistry registry) { FactoryExtensionPoint factories = registry.getExtensionPoint(FactoryExtensionPoint.class); MessageFactory messageFactory = factories.getFactory(MessageFactory.class); UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class); InterfaceContractMapper interfaceContractMapper = utilities.getUtility(InterfaceContractMapper.class); ProxyFactoryExtensionPoint proxyFactories = registry.getExtensionPoint(ProxyFactoryExtensionPoint.class); try { proxyFactories.setClassProxyFactory(new CglibProxyFactory(messageFactory, interfaceContractMapper)); } catch (NoClassDefFoundError e) { logger.log(Level.WARNING, "Class-based proxy is not supported", e); } databindings = registry.getExtensionPoint(DataBindingExtensionPoint.class); propertyValueFactory = factories.getFactory(PropertyValueFactory.class); ContextFactoryExtensionPoint contextFactories = registry.getExtensionPoint(ContextFactoryExtensionPoint.class); componentContextFactory = contextFactories.getFactory(ComponentContextFactory.class); requestContextFactory = contextFactories.getFactory(RequestContextFactory.class); proxyFactory = ExtensibleProxyFactory.getInstance(registry); }