}
public void stop(ExtensionPointRegistry registry) {
StAXArtifactProcessorExtensionPoint staxProcessors =
registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
ProviderFactoryExtensionPoint providerFactories =
registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
for (final BindingActivator bindingActivator : bindingActivators) {
// Remove the binding SCDL processor from the runtime
if (staxProcessors != null) {
StAXArtifactProcessor processor =
staxProcessors.getProcessor(getBindingQName(bindingActivator.getBindingClass()));
if (processor != null) {
staxProcessors.removeArtifactProcessor(processor);
}
}
// Remove the ProviderFactory from the runtime
if (providerFactories != null && bindingActivator.getBindingClass() != null) {
ProviderFactory factory = providerFactories.getProviderFactory(bindingActivator.getBindingClass());
if (factory != null) {
providerFactories.removeProviderFactory(factory);
}
}
}
if (providerFactories != null) {
ProviderFactory factory = providerFactories.getProviderFactory(PojoBinding.class);
if (factory != null) {
providerFactories.removeProviderFactory(factory);
}
}
}