DiscoveryUtils.discoverActivators(BindingActivator.class, registry);
StAXArtifactProcessorExtensionPoint staxProcessors =
registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
ProviderFactoryExtensionPoint providerFactories =
registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
for (final BindingActivator bindingActivator : bindingActivators) {
Class bindingClass = bindingActivator.getBindingClass();
bindingActivatorMap.put(bindingClass, bindingActivator);
QName scdlQName = getBindingQName(bindingClass);
staxProcessors.addArtifactProcessor(new BindingSCDLProcessor(scdlQName, bindingClass));
// Check if the binding extends from Binding interface
if (Binding.class.isAssignableFrom(bindingClass)) {
// Add provider factory against the binding class
providerFactories.addProviderFactory(new DelegatingBindingProviderFactory(bindingClass));
}
}
// Add a generic provider factory against PojoBinding.class
providerFactories.addProviderFactory(new DelegatingBindingProviderFactory(PojoBinding.class));
}