extensions/source/update/check/updatecheckconfig.cxx | 26 ++--- extensions/source/update/check/updatecheckconfig.hxx | 3 extensions/source/update/check/updatecheckjob.cxx | 71 +-------------- extensions/source/update/check/updchk.uno.component | 8 + extensions/source/update/feed/updatefeed.component | 5 - extensions/source/update/feed/updatefeed.cxx | 89 ++++--------------- extensions/source/update/ui/updatecheckui.cxx | 45 +-------- extensions/source/update/ui/updchk.component | 5 - 8 files changed, 57 insertions(+), 195 deletions(-)
New commits: commit d122dbd0600d1511c94a2764e0ae63015dc946e3 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Thu Jul 23 16:11:33 2020 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Thu Jul 23 19:58:31 2020 +0200 extensions/updateui: create instances with uno constructors See tdf#74608 for motivation. Change-Id: I3380e987be8bf24005676705e26f3135c83d2b2c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99324 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/extensions/source/update/check/updatecheckconfig.cxx b/extensions/source/update/check/updatecheckconfig.cxx index f3622f34914d..b76284ff759b 100644 --- a/extensions/source/update/check/updatecheckconfig.cxx +++ b/extensions/source/update/check/updatecheckconfig.cxx @@ -18,6 +18,7 @@ */ #include "updatecheckconfig.hxx" +#include "updatecheck.hxx" #include <com/sun/star/beans/PropertyValue.hpp> #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/configuration/theDefaultProvider.hpp> @@ -428,19 +429,6 @@ UpdateCheckConfig::clearUpdateFound() commitChanges(); } -uno::Sequence< OUString > -UpdateCheckConfig::getServiceNames() -{ - uno::Sequence< OUString > aServiceList { "com.sun.star.setup.UpdateCheckConfig" }; - return aServiceList; -} - -OUString -UpdateCheckConfig::getImplName() -{ - return "vnd.sun.UpdateCheckConfig"; -} - uno::Type SAL_CALL UpdateCheckConfig::getElementType() { @@ -651,7 +639,7 @@ bool UpdateCheckConfig::isVersionGreater( const OUString& rVersion1, OUString SAL_CALL UpdateCheckConfig::getImplementationName() { - return getImplName(); + return "vnd.sun.UpdateCheckConfig"; } sal_Bool SAL_CALL @@ -663,7 +651,15 @@ UpdateCheckConfig::supportsService(OUString const & serviceName) uno::Sequence< OUString > SAL_CALL UpdateCheckConfig::getSupportedServiceNames() { - return getServiceNames(); + return { "com.sun.star.setup.UpdateCheckConfig" }; +} + +extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface* +extensions_update_UpdateCheckConfig_get_implementation( + css::uno::XComponentContext* context , css::uno::Sequence<css::uno::Any> const&) +{ + return cppu::acquire(UpdateCheckConfig::get(context, *UpdateCheck::get()).get()); } + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/extensions/source/update/check/updatecheckconfig.hxx b/extensions/source/update/check/updatecheckconfig.hxx index 6215161d0b0b..3c6232ea8a93 100644 --- a/extensions/source/update/check/updatecheckconfig.hxx +++ b/extensions/source/update/check/updatecheckconfig.hxx @@ -90,9 +90,6 @@ class UpdateCheckConfig : public ::cppu::WeakImplHelper< public: - static css::uno::Sequence< OUString > getServiceNames(); - static OUString getImplName(); - static ::rtl::Reference< UpdateCheckConfig > get( const css::uno::Reference< css::uno::XComponentContext >& xContext, const ::rtl::Reference< UpdateCheckConfigListener >& rListener = ::rtl::Reference< UpdateCheckConfigListener >()); diff --git a/extensions/source/update/check/updatecheckjob.cxx b/extensions/source/update/check/updatecheckjob.cxx index 72015e75fd72..d457269e9ca6 100644 --- a/extensions/source/update/check/updatecheckjob.cxx +++ b/extensions/source/update/check/updatecheckjob.cxx @@ -75,9 +75,6 @@ public: m_xContext(context), m_xDesktop(desktop) {} - static uno::Sequence< OUString > getServiceNames(); - static OUString getImplName(); - // XJob virtual uno::Any SAL_CALL execute(const uno::Sequence<beans::NamedValue>&) override; @@ -147,21 +144,6 @@ UpdateCheckJob::~UpdateCheckJob() { } -uno::Sequence< OUString > -UpdateCheckJob::getServiceNames() -{ - uno::Sequence< OUString > aServiceList { "com.sun.star.setup.UpdateCheck" }; - return aServiceList; -}; - - -OUString -UpdateCheckJob::getImplName() -{ - return "vnd.sun.UpdateCheck"; -} - - uno::Any UpdateCheckJob::execute(const uno::Sequence<beans::NamedValue>& namedValues) { @@ -245,14 +227,14 @@ void UpdateCheckJob::handleExtensionUpdates( const uno::Sequence< beans::NamedVa OUString SAL_CALL UpdateCheckJob::getImplementationName() { - return getImplName(); + return "vnd.sun.UpdateCheck"; } uno::Sequence< OUString > SAL_CALL UpdateCheckJob::getSupportedServiceNames() { - return getServiceNames(); + return { "com.sun.star.setup.UpdateCheck" }; } sal_Bool SAL_CALL @@ -298,53 +280,16 @@ void SAL_CALL UpdateCheckJob::notifyTermination( lang::EventObject const & ) } // anonymous namespace -static uno::Reference<uno::XInterface> -createJobInstance(const uno::Reference<uno::XComponentContext>& xContext) +extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface* +extensions_update_UpdateCheckJob_get_implementation( + css::uno::XComponentContext* context , css::uno::Sequence<css::uno::Any> const&) { css::uno::Reference<css::frame::XDesktop2> desktop( - css::frame::Desktop::create(xContext)); - rtl::Reference<UpdateCheckJob> job(new UpdateCheckJob(xContext, desktop)); + css::frame::Desktop::create(context)); + rtl::Reference<UpdateCheckJob> job(new UpdateCheckJob(context, desktop)); desktop->addTerminateListener(job.get()); - return static_cast<cppu::OWeakObject *>(job.get()); + return cppu::acquire(job.get()); } -static uno::Reference<uno::XInterface> -createConfigInstance(const uno::Reference<uno::XComponentContext>& xContext) -{ - return *UpdateCheckConfig::get(xContext, *UpdateCheck::get()); -} - - -const cppu::ImplementationEntry kImplementations_entries[] = -{ - { - createJobInstance, - UpdateCheckJob::getImplName, - UpdateCheckJob::getServiceNames, - cppu::createSingleComponentFactory, - nullptr, - 0 - }, - { - createConfigInstance, - UpdateCheckConfig::getImplName, - UpdateCheckConfig::getServiceNames, - cppu::createSingleComponentFactory, - nullptr, - 0 - }, - { nullptr, nullptr, nullptr, nullptr, nullptr, 0 } -} ; - - -extern "C" SAL_DLLPUBLIC_EXPORT void * updchk_component_getFactory(const char *pszImplementationName, void *pServiceManager, void *pRegistryKey) -{ - return cppu::component_getFactoryHelper( - pszImplementationName, - pServiceManager, - pRegistryKey, - kImplementations_entries) ; -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/extensions/source/update/check/updchk.uno.component b/extensions/source/update/check/updchk.uno.component index 3f41b1211f9d..f147e3065d98 100644 --- a/extensions/source/update/check/updchk.uno.component +++ b/extensions/source/update/check/updchk.uno.component @@ -18,11 +18,13 @@ --> <component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@" - prefix="updchk" xmlns="http://openoffice.org/2010/uno-components"> - <implementation name="vnd.sun.UpdateCheck"> + xmlns="http://openoffice.org/2010/uno-components"> + <implementation name="vnd.sun.UpdateCheck" + constructor="extensions_update_UpdateCheckJob_get_implementation"> <service name="com.sun.star.setup.UpdateCheck"/> </implementation> - <implementation name="vnd.sun.UpdateCheckConfig"> + <implementation name="vnd.sun.UpdateCheckConfig" + constructor="extensions_update_UpdateCheckConfig_get_implementation"> <service name="com.sun.star.setup.UpdateCheckConfig"/> </implementation> </component> diff --git a/extensions/source/update/ui/updatecheckui.cxx b/extensions/source/update/ui/updatecheckui.cxx index 85a888523841..c2aad90abf59 100644 --- a/extensions/source/update/ui/updatecheckui.cxx +++ b/extensions/source/update/ui/updatecheckui.cxx @@ -56,19 +56,6 @@ using namespace ::com::sun::star; -static uno::Sequence< OUString > getServiceNames() -{ - uno::Sequence< OUString > aServiceList { "com.sun.star.setup.UpdateCheckUI" }; - return aServiceList; -} - - -static OUString getImplementationName() -{ - return "vnd.sun.UpdateCheckUI"; -} - - namespace { @@ -218,13 +205,13 @@ UpdateCheckUI::~UpdateCheckUI() OUString SAL_CALL UpdateCheckUI::getImplementationName() { - return ::getImplementationName(); + return "vnd.sun.UpdateCheckUI"; } uno::Sequence< OUString > SAL_CALL UpdateCheckUI::getSupportedServiceNames() { - return ::getServiceNames(); + return { "com.sun.star.setup.UpdateCheckUI" }; } sal_Bool SAL_CALL @@ -891,35 +878,15 @@ void BubbleWindow::RecalcTextRects() } // anonymous namespace -static uno::Reference<uno::XInterface> -createInstance(const uno::Reference<uno::XComponentContext>& xContext) +extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface* +extensions_update_UpdateCheckUI_get_implementation( + css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&) { SolarMutexGuard aGuard; - return *new UpdateCheckUI(xContext); + return cppu::acquire(new UpdateCheckUI(context)); } -const cppu::ImplementationEntry kImplementations_entries[] = -{ - { - createInstance, - getImplementationName, - getServiceNames, - cppu::createSingleComponentFactory, - nullptr, - 0 - }, - { nullptr, nullptr, nullptr, nullptr, nullptr, 0 } -} ; -extern "C" SAL_DLLPUBLIC_EXPORT void * updchkui_component_getFactory(const char *pszImplementationName, void *pServiceManager, void *pRegistryKey) -{ - return cppu::component_getFactoryHelper( - pszImplementationName, - pServiceManager, - pRegistryKey, - kImplementations_entries) ; -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/extensions/source/update/ui/updchk.component b/extensions/source/update/ui/updchk.component index 5b80c68310dd..19c7dd86e69d 100644 --- a/extensions/source/update/ui/updchk.component +++ b/extensions/source/update/ui/updchk.component @@ -18,8 +18,9 @@ --> <component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@" - prefix="updchkui" xmlns="http://openoffice.org/2010/uno-components"> - <implementation name="vnd.sun.UpdateCheckUI"> + xmlns="http://openoffice.org/2010/uno-components"> + <implementation name="vnd.sun.UpdateCheckUI" + constructor="extensions_update_UpdateCheckUI_get_implementation"> <service name="com.sun.star.setup.UpdateCheckUI"/> </implementation> </component> commit dc1ba0e22be772724e8a1922fbdcdc58f4fc3472 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Thu Jul 23 16:02:52 2020 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Thu Jul 23 19:58:17 2020 +0200 extensions/updatefeed: create instances with uno constructors See tdf#74608 for motivation. Change-Id: I1e0303f3fa6295de1f1970bcf8da1edbabb330d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99323 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/extensions/source/update/feed/updatefeed.component b/extensions/source/update/feed/updatefeed.component index f53977ac5330..83e30a8c2455 100644 --- a/extensions/source/update/feed/updatefeed.component +++ b/extensions/source/update/feed/updatefeed.component @@ -18,8 +18,9 @@ --> <component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@" - prefix="updatefeed" xmlns="http://openoffice.org/2010/uno-components"> - <implementation name="vnd.sun.UpdateInformationProvider"> + xmlns="http://openoffice.org/2010/uno-components"> + <implementation name="vnd.sun.UpdateInformationProvider" + constructor="extensions_update_UpdateInformationProvider_get_implementation"> <service name="com.sun.star.deployment.UpdateInformationProvider"/> </implementation> </component> diff --git a/extensions/source/update/feed/updatefeed.cxx b/extensions/source/update/feed/updatefeed.cxx index 182c3ffa5483..08ca0429203b 100644 --- a/extensions/source/update/feed/updatefeed.cxx +++ b/extensions/source/update/feed/updatefeed.cxx @@ -120,11 +120,6 @@ class UpdateInformationProvider : OUString getUserAgent(bool bExtended); bool isUserAgentExtended() const; public: - static uno::Reference< uno::XInterface > createInstance(const uno::Reference<uno::XComponentContext>& xContext); - - static uno::Sequence< OUString > getServiceNames(); - static OUString getImplName(); - uno::Reference< xml::dom::XElement > getDocumentRoot(const uno::Reference< xml::dom::XNode >& rxNode); uno::Reference< xml::dom::XNode > getChildNode(const uno::Reference< xml::dom::XNode >& rxNode, const OUString& rName); @@ -161,6 +156,11 @@ public: virtual sal_Bool SAL_CALL supportsService(OUString const & serviceName) override; virtual uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; + UpdateInformationProvider(const uno::Reference<uno::XComponentContext>& xContext, + const uno::Reference< ucb::XUniversalContentBroker >& xUniversalContentBroker, + const uno::Reference< xml::dom::XDocumentBuilder >& xDocumentBuilder, + const uno::Reference< xml::xpath::XXPathAPI >& xXPathAPI); + protected: virtual ~UpdateInformationProvider() override; @@ -173,11 +173,6 @@ private: void storeCommandInfo( sal_Int32 nCommandId, uno::Reference< ucb::XCommandProcessor > const & rxCommandProcessor); - UpdateInformationProvider(const uno::Reference<uno::XComponentContext>& xContext, - const uno::Reference< ucb::XUniversalContentBroker >& xUniversalContentBroker, - const uno::Reference< xml::dom::XDocumentBuilder >& xDocumentBuilder, - const uno::Reference< xml::xpath::XXPathAPI >& xXPathAPI); - const uno::Reference< uno::XComponentContext> m_xContext; const uno::Reference< ucb::XUniversalContentBroker > m_xUniversalContentBroker; @@ -394,22 +389,6 @@ uno::Sequence< beans::StringPair > SAL_CALL UpdateInformationProvider::getUserRe return aPair; }; -uno::Reference< uno::XInterface > -UpdateInformationProvider::createInstance(const uno::Reference<uno::XComponentContext>& xContext) -{ - uno::Reference< ucb::XUniversalContentBroker > xUniversalContentBroker = - ucb::UniversalContentBroker::create(xContext); - - uno::Reference< xml::dom::XDocumentBuilder > xDocumentBuilder( - xml::dom::DocumentBuilder::create(xContext)); - - uno::Reference< xml::xpath::XXPathAPI > xXPath = xml::xpath::XPathAPI::create( xContext ); - - xXPath->registerNS( "atom", "http://www.w3.org/2005/Atom" ); - - return *new UpdateInformationProvider(xContext, xUniversalContentBroker, xDocumentBuilder, xXPath); -} - UpdateInformationProvider::~UpdateInformationProvider() { } @@ -729,32 +708,18 @@ UpdateInformationProvider::getInteractionHandler() } -uno::Sequence< OUString > -UpdateInformationProvider::getServiceNames() -{ - uno::Sequence< OUString > aServiceList { "com.sun.star.deployment.UpdateInformationProvider" }; - return aServiceList; -}; - - -OUString -UpdateInformationProvider::getImplName() -{ - return "vnd.sun.UpdateInformationProvider"; -} - OUString SAL_CALL UpdateInformationProvider::getImplementationName() { - return getImplName(); + return "vnd.sun.UpdateInformationProvider"; } uno::Sequence< OUString > SAL_CALL UpdateInformationProvider::getSupportedServiceNames() { - return getServiceNames(); + return { "com.sun.star.deployment.UpdateInformationProvider" }; } sal_Bool SAL_CALL @@ -765,35 +730,23 @@ UpdateInformationProvider::supportsService( OUString const & serviceName ) } // anonymous namespace - -static uno::Reference<uno::XInterface> -createInstance(uno::Reference<uno::XComponentContext> const & xContext) +extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface* +extensions_update_UpdateInformationProvider_get_implementation( + css::uno::XComponentContext* xContext , css::uno::Sequence<css::uno::Any> const&) { - return UpdateInformationProvider::createInstance(xContext); -} + uno::Reference< ucb::XUniversalContentBroker > xUniversalContentBroker = + ucb::UniversalContentBroker::create(xContext); + uno::Reference< xml::dom::XDocumentBuilder > xDocumentBuilder( + xml::dom::DocumentBuilder::create(xContext)); -const cppu::ImplementationEntry kImplementations_entries[] = -{ - { - createInstance, - UpdateInformationProvider::getImplName, - UpdateInformationProvider::getServiceNames, - cppu::createSingleComponentFactory, - nullptr, - 0 - }, - { nullptr, nullptr, nullptr, nullptr, nullptr, 0 } -} ; - - -extern "C" SAL_DLLPUBLIC_EXPORT void * updatefeed_component_getFactory(const char *pszImplementationName, void *pServiceManager, void *pRegistryKey) -{ - return cppu::component_getFactoryHelper( - pszImplementationName, - pServiceManager, - pRegistryKey, - kImplementations_entries) ; + uno::Reference< xml::xpath::XXPathAPI > xXPath = xml::xpath::XPathAPI::create( xContext ); + + xXPath->registerNS( "atom", "http://www.w3.org/2005/Atom" ); + + return cppu::acquire( + new UpdateInformationProvider(xContext, xUniversalContentBroker, xDocumentBuilder, xXPath)); } + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits