public void start(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.warning("Class proxys not supported due to NoClassDefFoundError:" + e.getMessage());
}
JavaInterfaceFactory javaFactory = factories.getFactory(JavaInterfaceFactory.class);
DataBindingExtensionPoint dataBindings = registry.getExtensionPoint(DataBindingExtensionPoint.class);
TransformerExtensionPoint transformers = registry.getExtensionPoint(TransformerExtensionPoint.class);
MediatorImpl mediator = new MediatorImpl(dataBindings, transformers);
utilities.addUtility(mediator);
JavaPropertyValueObjectFactory factory = new JavaPropertyValueObjectFactory(mediator);
factories.addFactory(factory);
ContextFactoryExtensionPoint contextFactories = registry.getExtensionPoint(ContextFactoryExtensionPoint.class);
ComponentContextFactory componentContextFactory = contextFactories.getFactory(ComponentContextFactory.class);