private XMLStreamException loadModule(final String moduleName, final XMLMapper xmlMapper) throws XMLStreamException { // Register element handlers for this extension try { final Module module = moduleLoader.loadModule(ModuleIdentifier.fromString(moduleName)); boolean initialized = false; for (final Extension extension : module.loadService(Extension.class)) { ClassLoader oldTccl = SecurityActions.setThreadContextClassLoader(extension.getClass()); try { extension.initializeParsers(extensionRegistry.getExtensionParsingContext(moduleName, xmlMapper)); } finally { SecurityActions.setThreadContextClassLoader(oldTccl); } if (!initialized) { initialized = true; } } if (!initialized) { throw MESSAGES.notFound("META-INF/services/", Extension.class.getName(), module.getIdentifier()); } return null; } catch (final ModuleLoadException e) { throw MESSAGES.failedToLoadModule(e); } } }