diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2019-03-22 18:48:41 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2019-03-25 21:32:28 +0100 |
commit | 9bc50c7efd4f4e8a5c8840bd5cd9a5a9ee31f1a8 (patch) | |
tree | 9aa5a1ec52b6774bf18a5f0757b7cef8abc9b661 /cppuhelper | |
parent | fd2f43e05bd065ca9f7878ad715bf0f8afa23f3c (diff) |
preload: add the ability to disable various components.
Helps filter stupid stuff that makes no sense for online - eg.
reportbuilder or jdbc.
Change-Id: I40e06954c45fdefd21528202f4587ae83eb994c2
Reviewed-on: https://gerrit.libreoffice.org/69567
Tested-by: Jenkins
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Diffstat (limited to 'cppuhelper')
-rw-r--r-- | cppuhelper/source/servicemanager.cxx | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/cppuhelper/source/servicemanager.cxx b/cppuhelper/source/servicemanager.cxx index 765204301e1f..93a060e21fa4 100644 --- a/cppuhelper/source/servicemanager.cxx +++ b/cppuhelper/source/servicemanager.cxx @@ -1789,6 +1789,22 @@ void cppuhelper::ServiceManager::preloadImplementations() { std::cerr << "preload:"; std::vector<OUString> aReported; + std::vector<OUString> aDisabled; + OUStringBuffer aDisabledMsg("Disabled: "); + + /// Allow external callers & testers to disable certain components + const char *pDisable = getenv("UNODISABLELIBRARY"); + if (pDisable) + { + OUString aDisable(pDisable, strlen(pDisable), RTL_TEXTENCODING_UTF8); + for (sal_Int32 i = 0; i >= 0; ) + { + OUString tok = aDisable.getToken(0, ' ', i); + tok = tok.trim(); + if (!tok.isEmpty()) + aDisabled.push_back(tok); + } + } // loop all implementations for (const auto& rEntry : data_.namedImplementations) @@ -1800,13 +1816,28 @@ void cppuhelper::ServiceManager::preloadImplementations() { if (aLibrary.isEmpty()) continue; + OUString simplified = simplifyModule(aLibrary); + bool bDisabled = + std::find(aDisabled.begin(), aDisabled.end(), simplified) != aDisabled.end(); + if (std::find(aReported.begin(), aReported.end(), aLibrary) == aReported.end()) { - std::cerr << " " << simplifyModule(aLibrary); - std::cerr.flush(); + if (bDisabled) + { + aDisabledMsg.append(simplified); + aDisabledMsg.append(" "); + } + else + { + std::cerr << " " << simplified; + std::cerr.flush(); + } aReported.push_back(aLibrary); } + if (bDisabled) + continue; + // expand absolute URI implementation component library aUri = cppu::bootstrap_expandUri(aLibrary); } @@ -1928,6 +1959,9 @@ void cppuhelper::ServiceManager::preloadImplementations() { } std::cerr << std::endl; + std::cerr << aDisabledMsg.makeStringAndClear() << "\n"; + std::cerr.flush(); + // Various rather important uno mappings. static struct { const char *mpFrom; |