[Libreoffice-commits] core.git: desktop/inc desktop/IwyuFilter_desktop.yaml desktop/Library_deployment.mk desktop/source solenv/bin

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Sat Jul 11 09:34:38 UTC 2020


 desktop/IwyuFilter_desktop.yaml                                       |    5 
 desktop/Library_deployment.mk                                         |    1 
 desktop/inc/pch/precompiled_deployment.hxx                            |    1 
 desktop/source/deployment/deployment.component                        |   32 +++-
 desktop/source/deployment/dp_log.cxx                                  |   44 +++++-
 desktop/source/deployment/dp_services.cxx                             |   49 -------
 desktop/source/deployment/inc/dp_services.hxx                         |   65 ----------
 desktop/source/deployment/manager/dp_extensionmanager.cxx             |   39 ++++--
 desktop/source/deployment/manager/dp_extensionmanager.hxx             |    7 -
 desktop/source/deployment/manager/dp_informationprovider.cxx          |   43 ++++--
 desktop/source/deployment/manager/dp_manager.cxx                      |    6 
 desktop/source/deployment/manager/dp_managerfac.cxx                   |   44 ++++--
 desktop/source/deployment/registry/component/dp_component.cxx         |   40 ++++--
 desktop/source/deployment/registry/configuration/dp_configuration.cxx |   38 ++++-
 desktop/source/deployment/registry/executable/dp_executable.cxx       |   36 ++++-
 desktop/source/deployment/registry/help/dp_help.cxx                   |   38 ++++-
 desktop/source/deployment/registry/inc/dp_backend.h                   |    4 
 desktop/source/deployment/registry/package/dp_package.cxx             |    4 
 desktop/source/deployment/registry/script/dp_script.cxx               |   39 ++++--
 desktop/source/deployment/registry/sfwk/dp_sfwk.cxx                   |   38 ++++-
 solenv/bin/native-code.py                                             |   12 +
 21 files changed, 342 insertions(+), 243 deletions(-)

New commits:
commit cb444989d31ba7c709474f1c2f072d924564d10f
Author:     Noel Grandin <noelgrandin at gmail.com>
AuthorDate: Thu Jul 9 20:05:15 2020 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Sat Jul 11 11:34:08 2020 +0200

    desktop/deployment: create instances with uno constructors
    
    See tdf#74608 for motivation
    
    Change-Id: I1559c29286c8877f5fc75cdb293403f5e5e5a538
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98473
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/desktop/IwyuFilter_desktop.yaml b/desktop/IwyuFilter_desktop.yaml
index e99d4dc0f65c..6207be5de48e 100644
--- a/desktop/IwyuFilter_desktop.yaml
+++ b/desktop/IwyuFilter_desktop.yaml
@@ -51,16 +51,11 @@ excludelist:
     desktop/source/deployment/manager/dp_properties.cxx:
     # Actually used
     - com/sun/star/ucb/XCommandEnvironment.hpp
-    desktop/source/deployment/manager/dp_informationprovider.cxx:
-    # Needed for extern functions
-    - dp_services.hxx
     desktop/source/deployment/manager/dp_extensionmanager.cxx:
     # Actually used
     - com/sun/star/deployment/XPackage.hpp
     - com/sun/star/deployment/XPackageManager.hpp
     - com/sun/star/uno/XComponentContext.hpp
-    # Needed for extern functions
-    - dp_services.hxx
     desktop/source/deployment/misc/lockfile.cxx:
     # Needed on WIN32
     - memory
diff --git a/desktop/Library_deployment.mk b/desktop/Library_deployment.mk
index 887e9eefa4ec..fcf29882879c 100644
--- a/desktop/Library_deployment.mk
+++ b/desktop/Library_deployment.mk
@@ -42,7 +42,6 @@ $(eval $(call gb_Library_set_componentfile,deployment,desktop/source/deployment/
 $(eval $(call gb_Library_add_exception_objects,deployment,\
     desktop/source/deployment/dp_log \
     desktop/source/deployment/dp_persmap \
-    desktop/source/deployment/dp_services \
     desktop/source/deployment/dp_xml \
     desktop/source/deployment/manager/dp_activepackages \
     desktop/source/deployment/manager/dp_commandenvironments \
diff --git a/desktop/inc/pch/precompiled_deployment.hxx b/desktop/inc/pch/precompiled_deployment.hxx
index 6878fb1e843c..b01353b33da6 100644
--- a/desktop/inc/pch/precompiled_deployment.hxx
+++ b/desktop/inc/pch/precompiled_deployment.hxx
@@ -86,7 +86,6 @@
 #include <dp_interact.h>
 #include <dp_misc_api.hxx>
 #include <dp_platform.hxx>
-#include <dp_services.hxx>
 #include <dp_ucb.h>
 #endif // PCH_LEVEL >= 4
 
diff --git a/desktop/source/deployment/deployment.component b/desktop/source/deployment/deployment.component
index 0016f1f9eedb..f7a481bf43c9 100644
--- a/desktop/source/deployment/deployment.component
+++ b/desktop/source/deployment/deployment.component
@@ -18,38 +18,48 @@
  -->
 
 <component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@"
-    prefix="deployment" xmlns="http://openoffice.org/2010/uno-components">
-  <implementation name="com.sun.star.comp.deployment.ExtensionManager">
+    xmlns="http://openoffice.org/2010/uno-components">
+  <implementation name="com.sun.star.comp.deployment.ExtensionManager"
+    constructor="com_sun_star_comp_deployment_ExtensionManager_get_implementation">
     <service name="com.sun.star.comp.deployment.ExtensionManager"/>
     <singleton name="com.sun.star.deployment.ExtensionManager"/>
   </implementation>
-  <implementation name="com.sun.star.comp.deployment.PackageInformationProvider">
+  <implementation name="com.sun.star.comp.deployment.PackageInformationProvider"
+    constructor="com_sun_star_comp_deployment_PackageInformationProvider_get_implementation">
     <service name="com.sun.star.comp.deployment.PackageInformationProvider"/>
     <singleton name="com.sun.star.deployment.PackageInformationProvider"/>
   </implementation>
-  <implementation name="com.sun.star.comp.deployment.PackageManagerFactory">
+  <implementation name="com.sun.star.comp.deployment.PackageManagerFactory"
+    constructor="com_sun_star_comp_deployment_PackageManagerFactory_get_implementation">
     <service name="com.sun.star.comp.deployment.PackageManagerFactory"/>
     <singleton name="com.sun.star.deployment.thePackageManagerFactory"/>
   </implementation>
-  <implementation name="com.sun.star.comp.deployment.ProgressLog">
+  <implementation name="com.sun.star.comp.deployment.ProgressLog"
+    constructor="com_sun_star_comp_deployment_ProgressLog_get_implementation">
     <service name="com.sun.star.comp.deployment.ProgressLog"/>
   </implementation>
-  <implementation name="com.sun.star.comp.deployment.component.PackageRegistryBackend">
+  <implementation name="com.sun.star.comp.deployment.component.PackageRegistryBackend"
+    constructor="com_sun_star_comp_deployment_component_PackageRegistryBackend_get_implementation">
     <service name="com.sun.star.deployment.PackageRegistryBackend"/>
   </implementation>
-  <implementation name="com.sun.star.comp.deployment.configuration.PackageRegistryBackend">
+  <implementation name="com.sun.star.comp.deployment.configuration.PackageRegistryBackend"
+    constructor="com_sun_star_comp_deployment_configuration_PackageRegistryBackend_get_implementation">
     <service name="com.sun.star.deployment.PackageRegistryBackend"/>
   </implementation>
-  <implementation name="com.sun.star.comp.deployment.executable.PackageRegistryBackend">
+  <implementation name="com.sun.star.comp.deployment.executable.PackageRegistryBackend"
+    constructor="com_sun_star_comp_deployment_executable_PackageRegistryBackend_get_implementation">
     <service name="com.sun.star.deployment.PackageRegistryBackend"/>
   </implementation>
-  <implementation name="com.sun.star.comp.deployment.help.PackageRegistryBackend">
+  <implementation name="com.sun.star.comp.deployment.help.PackageRegistryBackend"
+    constructor="com_sun_star_comp_deployment_help_PackageRegistryBackend_get_implementation">
     <service name="com.sun.star.deployment.PackageRegistryBackend"/>
   </implementation>
-  <implementation name="com.sun.star.comp.deployment.script.PackageRegistryBackend">
+  <implementation name="com.sun.star.comp.deployment.script.PackageRegistryBackend"
+    constructor="com_sun_star_comp_deployment_script_PackageRegistryBackend_get_implementation">
     <service name="com.sun.star.deployment.PackageRegistryBackend"/>
   </implementation>
-  <implementation name="com.sun.star.comp.deployment.sfwk.PackageRegistryBackend">
+  <implementation name="com.sun.star.comp.deployment.sfwk.PackageRegistryBackend"
+    constructor="com_sun_star_comp_deployment_sfwk_PackageRegistryBackend_get_implementation">
     <service name="com.sun.star.deployment.PackageRegistryBackend"/>
   </implementation>
 </component>
diff --git a/desktop/source/deployment/dp_log.cxx b/desktop/source/deployment/dp_log.cxx
index 1d68709ba5ba..c184224747be 100644
--- a/desktop/source/deployment/dp_log.cxx
+++ b/desktop/source/deployment/dp_log.cxx
@@ -19,14 +19,14 @@
 
 
 #include <dp_misc.h>
-#include <dp_services.hxx>
 #include <cppuhelper/compbase.hxx>
+#include <cppuhelper/supportsservice.hxx>
 #include <comphelper/anytostring.hxx>
-#include <comphelper/servicedecl.hxx>
 #include <comphelper/logging.hxx>
 #include <rtl/ustrbuf.hxx>
 #include <com/sun/star/logging/LogLevel.hpp>
 #include <com/sun/star/ucb/XProgressHandler.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
 
 using namespace ::com::sun::star;
 using namespace ::com::sun::star::uno;
@@ -34,7 +34,7 @@ using namespace ::com::sun::star::logging;
 
 namespace dp_log {
 
-typedef ::cppu::WeakComponentImplHelper<ucb::XProgressHandler> t_log_helper;
+typedef ::cppu::WeakComponentImplHelper<ucb::XProgressHandler, lang::XServiceInfo> t_log_helper;
 
 namespace {
 
@@ -50,6 +50,11 @@ public:
     ProgressLogImpl( Sequence<Any> const & args,
                      Reference<XComponentContext> const & xContext );
 
+    // XServiceInfo
+    virtual OUString SAL_CALL getImplementationName() override;
+    virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
+    virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
+
     // XProgressHandler
     virtual void SAL_CALL push( Any const & Status ) override;
     virtual void SAL_CALL update( Any const & Status ) override;
@@ -77,6 +82,23 @@ ProgressLogImpl::ProgressLogImpl(
     m_logger.reset(new comphelper::EventLogger(xContext, "unopkg"));
 }
 
+// XServiceInfo
+OUString ProgressLogImpl::getImplementationName()
+{
+    return "com.sun.star.comp.deployment.ProgressLog";
+}
+
+sal_Bool ProgressLogImpl::supportsService( const OUString& ServiceName )
+{
+    return cppu::supportsService(this, ServiceName);
+}
+
+css::uno::Sequence< OUString > ProgressLogImpl::getSupportedServiceNames()
+{
+    // a private one
+    return { "com.sun.star.comp.deployment.ProgressLog" };
+}
+
 // XProgressHandler
 
 void ProgressLogImpl::push( Any const & Status )
@@ -108,14 +130,14 @@ void ProgressLogImpl::pop()
 {
 }
 
-namespace sdecl = comphelper::service_decl;
-sdecl::class_<ProgressLogImpl, sdecl::with_args<true> > const servicePLI;
-sdecl::ServiceDecl const serviceDecl(
-    servicePLI,
-    // a private one:
-    "com.sun.star.comp.deployment.ProgressLog",
-    "com.sun.star.comp.deployment.ProgressLog" );
-
 } // namespace dp_log
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+com_sun_star_comp_deployment_ProgressLog_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const& args)
+{
+    return cppu::acquire(new dp_log::ProgressLogImpl(args, context));
+}
+
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/source/deployment/dp_services.cxx b/desktop/source/deployment/dp_services.cxx
deleted file mode 100644
index bfaeb801141f..000000000000
--- a/desktop/source/deployment/dp_services.cxx
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-
-#include <comphelper/servicedecl.hxx>
-
-#include <dp_services.hxx>
-
-using namespace com::sun::star;
-namespace sdecl = comphelper::service_decl;
-
-extern "C" {
-
-SAL_DLLPUBLIC_EXPORT void * deployment_component_getFactory(
-    char const * pImplName, void *, void *)
-{
-    return sdecl::component_getFactoryHelper(
-        pImplName,
-        {&dp_registry::backend::configuration::serviceDecl,
-         &dp_registry::backend::component::serviceDecl,
-         &dp_registry::backend::help::serviceDecl,
-         &dp_registry::backend::script::serviceDecl,
-         &dp_registry::backend::sfwk::serviceDecl,
-         &dp_registry::backend::executable::serviceDecl,
-         &dp_manager::factory::serviceDecl,
-         &dp_log::serviceDecl,
-         &dp_info::serviceDecl,
-         &dp_manager::serviceDecl});
-}
-
-} // extern "C"
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/source/deployment/inc/dp_services.hxx b/desktop/source/deployment/inc/dp_services.hxx
deleted file mode 100644
index f40f908de0cd..000000000000
--- a/desktop/source/deployment/inc/dp_services.hxx
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-#ifndef INCLUDED_DESKTOP_SOURCE_DEPLOYMENT_INC_DP_SERVICES_HXX
-#define INCLUDED_DESKTOP_SOURCE_DEPLOYMENT_INC_DP_SERVICES_HXX
-
-#include <sal/config.h>
-
-namespace comphelper::service_decl { class ServiceDecl; }
-
-namespace dp_info {
-extern comphelper::service_decl::ServiceDecl const serviceDecl;
-}
-
-namespace dp_log {
-extern comphelper::service_decl::ServiceDecl const serviceDecl;
-}
-
-namespace dp_manager {
-
-namespace factory {
-extern comphelper::service_decl::ServiceDecl const serviceDecl;
-}
-
-extern comphelper::service_decl::ServiceDecl const serviceDecl;
-
-}
-
-namespace dp_registry::backend {
-
-namespace component {
-extern comphelper::service_decl::ServiceDecl const serviceDecl;
-}
-
-namespace configuration {
-extern comphelper::service_decl::ServiceDecl const serviceDecl;
-}
-
-namespace executable {
-extern comphelper::service_decl::ServiceDecl const serviceDecl;
-}
-
-namespace help {
-extern comphelper::service_decl::ServiceDecl const serviceDecl;
-}
-
-namespace script {
-extern comphelper::service_decl::ServiceDecl const serviceDecl;
-}
-
-namespace sfwk {
-extern comphelper::service_decl::ServiceDecl const serviceDecl;
-}
-
-}
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/desktop/source/deployment/manager/dp_extensionmanager.cxx b/desktop/source/deployment/manager/dp_extensionmanager.cxx
index 39bdbf65cced..c9ecf7d2123c 100644
--- a/desktop/source/deployment/manager/dp_extensionmanager.cxx
+++ b/desktop/source/deployment/manager/dp_extensionmanager.cxx
@@ -19,8 +19,8 @@
 
 
 #include <cppuhelper/compbase.hxx>
+#include <cppuhelper/supportsservice.hxx>
 
-#include <comphelper/servicedecl.hxx>
 #include <cppuhelper/exc_hlp.hxx>
 #include <rtl/bootstrap.hxx>
 #include <com/sun/star/deployment/DeploymentException.hpp>
@@ -31,6 +31,7 @@
 #include <com/sun/star/deployment/InstallException.hpp>
 #include <com/sun/star/deployment/VersionException.hpp>
 #include <com/sun/star/lang/IllegalArgumentException.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/beans/Optional.hpp>
 #include <com/sun/star/task/XInteractionApprove.hpp>
 #include <com/sun/star/beans/Ambiguous.hpp>
@@ -43,7 +44,6 @@
 #include <xmlscript/xml_helper.hxx>
 #include <osl/diagnose.h>
 #include <dp_interact.h>
-#include <dp_services.hxx>
 #include <dp_ucb.h>
 #include <dp_identifier.hxx>
 #include <dp_descriptioninfoset.hxx>
@@ -155,7 +155,7 @@ namespace dp_manager {
 
 //ToDo: bundled extension
 ExtensionManager::ExtensionManager( Reference< uno::XComponentContext > const& xContext) :
-    ::cppu::WeakComponentImplHelper< css::deployment::XExtensionManager >(getMutex())
+    ::cppu::WeakComponentImplHelper< css::deployment::XExtensionManager, css::lang::XServiceInfo >(getMutex())
     , m_xContext(xContext)
 {
     m_xPackageManagerFactory = css::deployment::thePackageManagerFactory::get(m_xContext);
@@ -170,6 +170,23 @@ ExtensionManager::~ExtensionManager()
 {
 }
 
+// XServiceInfo
+OUString ExtensionManager::getImplementationName()
+{
+    return "com.sun.star.comp.deployment.ExtensionManager";
+}
+
+sal_Bool ExtensionManager::supportsService( const OUString& ServiceName )
+{
+    return cppu::supportsService(this, ServiceName);
+}
+
+css::uno::Sequence< OUString > ExtensionManager::getSupportedServiceNames()
+{
+    // a private one:
+    return { "com.sun.star.comp.deployment.ExtensionManager" };
+}
+
 Reference<css::deployment::XPackageManager> ExtensionManager::getUserRepository()
 {
     return m_xPackageManagerFactory->getPackageManager("user");
@@ -1354,14 +1371,6 @@ sal_Bool ExtensionManager::isReadOnlyRepository(OUString const & repository)
 }
 
 
-namespace sdecl = comphelper::service_decl;
-sdecl::class_<ExtensionManager> const servicePIP;
-sdecl::ServiceDecl const serviceDecl(
-    servicePIP,
-    // a private one:
-    "com.sun.star.comp.deployment.ExtensionManager",
-    "com.sun.star.comp.deployment.ExtensionManager");
-
 // XModifyBroadcaster
 
 void ExtensionManager::addModifyListener(
@@ -1402,4 +1411,12 @@ void ExtensionManager::fireModified()
 
 } // namespace dp_manager
 
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+com_sun_star_comp_deployment_ExtensionManager_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const& )
+{
+    return cppu::acquire(new dp_manager::ExtensionManager(context));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/source/deployment/manager/dp_extensionmanager.hxx b/desktop/source/deployment/manager/dp_extensionmanager.hxx
index 2432279c37b4..6b82f0092e49 100644
--- a/desktop/source/deployment/manager/dp_extensionmanager.hxx
+++ b/desktop/source/deployment/manager/dp_extensionmanager.hxx
@@ -38,7 +38,7 @@ typedef std::unordered_map<
     std::vector<css::uno::Reference<css::deployment::XPackage> > > id2extensions;
 
 class ExtensionManager : private ::dp_misc::MutexHolder,
-        public ::cppu::WeakComponentImplHelper< css::deployment::XExtensionManager >
+        public ::cppu::WeakComponentImplHelper< css::deployment::XExtensionManager, css::lang::XServiceInfo >
 {
 public:
     explicit ExtensionManager( css::uno::Reference< css::uno::XComponentContext >const& xContext);
@@ -49,6 +49,11 @@ public:
 
 public:
 
+    // XServiceInfo
+    virtual OUString SAL_CALL getImplementationName() override;
+    virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
+    virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
+
 //    XModifyBroadcaster
     virtual void SAL_CALL addModifyListener(
        css::uno::Reference<css::util::XModifyListener> const & xListener ) override;
diff --git a/desktop/source/deployment/manager/dp_informationprovider.cxx b/desktop/source/deployment/manager/dp_informationprovider.cxx
index bde956937a3d..7825ae058041 100644
--- a/desktop/source/deployment/manager/dp_informationprovider.cxx
+++ b/desktop/source/deployment/manager/dp_informationprovider.cxx
@@ -18,7 +18,7 @@
  */
 
 #include <cppuhelper/implbase.hxx>
-#include <comphelper/servicedecl.hxx>
+#include <cppuhelper/supportsservice.hxx>
 
 #include <com/sun/star/deployment/UpdateInformationProvider.hpp>
 #include <com/sun/star/deployment/XPackage.hpp>
@@ -26,6 +26,7 @@
 #include <com/sun/star/deployment/ExtensionManager.hpp>
 #include <com/sun/star/deployment/XUpdateInformationProvider.hpp>
 #include <com/sun/star/lang/IllegalArgumentException.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/task/XAbortChannel.hpp>
 #include <com/sun/star/ucb/ContentCreationException.hpp>
 #include <com/sun/star/uno/XComponentContext.hpp>
@@ -41,7 +42,6 @@
 #include <dp_dependencies.hxx>
 #include <dp_descriptioninfoset.hxx>
 #include <dp_identifier.hxx>
-#include <dp_services.hxx>
 #include <dp_version.hxx>
 #include <dp_update.hxx>
 
@@ -59,12 +59,17 @@ namespace dp_info {
 namespace {
 
 class PackageInformationProvider :
-        public ::cppu::WeakImplHelper< deployment::XPackageInformationProvider >
+        public ::cppu::WeakImplHelper< deployment::XPackageInformationProvider, lang::XServiceInfo >
 
 {
     public:
     explicit PackageInformationProvider( uno::Reference< uno::XComponentContext >const& xContext);
 
+    // XServiceInfo
+    virtual OUString SAL_CALL getImplementationName() override;
+    virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
+    virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
+
     // XPackageInformationProvider
     virtual OUString SAL_CALL getPackageLocation( const OUString& extensionId ) override;
     virtual uno::Sequence< uno::Sequence< OUString > > SAL_CALL isUpdateAvailable( const OUString& extensionId ) override;
@@ -88,6 +93,23 @@ PackageInformationProvider::PackageInformationProvider( uno::Reference< uno::XCo
 {
 }
 
+// XServiceInfo
+OUString PackageInformationProvider::getImplementationName()
+{
+    return "com.sun.star.comp.deployment.PackageInformationProvider";
+}
+
+sal_Bool PackageInformationProvider::supportsService( const OUString& ServiceName )
+{
+    return cppu::supportsService(this, ServiceName);
+}
+
+css::uno::Sequence< OUString > PackageInformationProvider::getSupportedServiceNames()
+{
+    // a private one:
+    return { "com.sun.star.comp.deployment.PackageInformationProvider" };
+}
+
 OUString PackageInformationProvider::getPackageLocation(
     const OUString & repository,
     const OUString& _rExtensionId )
@@ -305,15 +327,14 @@ uno::Sequence< uno::Sequence< OUString > > SAL_CALL PackageInformationProvider::
 }
 
 
-namespace sdecl = comphelper::service_decl;
-sdecl::class_<PackageInformationProvider> const servicePIP;
-sdecl::ServiceDecl const serviceDecl(
-    servicePIP,
-    // a private one:
-    "com.sun.star.comp.deployment.PackageInformationProvider",
-    "com.sun.star.comp.deployment.PackageInformationProvider" );
-
 } // namespace dp_info
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+com_sun_star_comp_deployment_PackageInformationProvider_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const& )
+{
+    return cppu::acquire(new dp_info::PackageInformationProvider(context));
+}
+
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/source/deployment/manager/dp_manager.cxx b/desktop/source/deployment/manager/dp_manager.cxx
index 33d8e6468159..22fd91370f11 100644
--- a/desktop/source/deployment/manager/dp_manager.cxx
+++ b/desktop/source/deployment/manager/dp_manager.cxx
@@ -39,7 +39,6 @@
 #include <osl/security.hxx>
 #include <cppuhelper/exc_hlp.hxx>
 #include <comphelper/logging.hxx>
-#include <comphelper/servicedecl.hxx>
 #include <comphelper/sequence.hxx>
 #include <xmlscript/xml_helper.hxx>
 #include <svl/inettype.hxx>
@@ -77,9 +76,6 @@ using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::ucb;
 using namespace ::com::sun::star::logging;
 
-namespace dp_log {
-extern comphelper::service_decl::ServiceDecl const serviceDecl;
-}
 
 namespace dp_manager {
 
@@ -427,7 +423,7 @@ Reference<deployment::XPackageManager> PackageManagerImpl::create(
             that->m_xLogFile.set(
                 that->m_xComponentContext->getServiceManager()
                 ->createInstanceWithArgumentsAndContext(
-                    dp_log::serviceDecl.getSupportedServiceNames()[0],
+                    "com.sun.star.comp.deployment.ProgressLog",
                     Sequence<Any>(),
                     that->m_xComponentContext ),
                 UNO_QUERY_THROW );
diff --git a/desktop/source/deployment/manager/dp_managerfac.cxx b/desktop/source/deployment/manager/dp_managerfac.cxx
index 6263922d7997..ada9a9c3a9e5 100644
--- a/desktop/source/deployment/manager/dp_managerfac.cxx
+++ b/desktop/source/deployment/manager/dp_managerfac.cxx
@@ -19,10 +19,10 @@
 
 
 #include "dp_manager.h"
-#include <dp_services.hxx>
 #include <cppuhelper/compbase.hxx>
-#include <comphelper/servicedecl.hxx>
+#include <cppuhelper/supportsservice.hxx>
 #include <com/sun/star/deployment/XPackageManagerFactory.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
 #include <unordered_map>
 
 using namespace ::dp_misc;
@@ -32,7 +32,7 @@ using namespace ::com::sun::star::uno;
 namespace dp_manager::factory {
 
 typedef ::cppu::WeakComponentImplHelper<
-    deployment::XPackageManagerFactory > t_pmfac_helper;
+    deployment::XPackageManagerFactory, lang::XServiceInfo > t_pmfac_helper;
 
 namespace {
 
@@ -57,6 +57,11 @@ public:
     explicit PackageManagerFactoryImpl(
         Reference<XComponentContext> const & xComponentContext );
 
+    // XServiceInfo
+    virtual OUString SAL_CALL getImplementationName() override;
+    virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
+    virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
+
     // XPackageManagerFactory
     virtual Reference<deployment::XPackageManager> SAL_CALL getPackageManager(
         OUString const & context ) override;
@@ -64,15 +69,6 @@ public:
 
 }
 
-namespace sdecl = comphelper::service_decl;
-sdecl::class_<PackageManagerFactoryImpl> const servicePMFI;
-sdecl::ServiceDecl const serviceDecl(
-    servicePMFI,
-    // a private one:
-    "com.sun.star.comp.deployment.PackageManagerFactory",
-    "com.sun.star.comp.deployment.PackageManagerFactory" );
-
-
 PackageManagerFactoryImpl::PackageManagerFactoryImpl(
     Reference<XComponentContext> const & xComponentContext )
     : t_pmfac_helper( getMutex() ),
@@ -80,6 +76,23 @@ PackageManagerFactoryImpl::PackageManagerFactoryImpl(
 {
 }
 
+// XServiceInfo
+OUString PackageManagerFactoryImpl::getImplementationName()
+{
+    return "com.sun.star.comp.deployment.PackageManagerFactory";
+}
+
+sal_Bool PackageManagerFactoryImpl::supportsService( const OUString& ServiceName )
+{
+    return cppu::supportsService(this, ServiceName);
+}
+
+css::uno::Sequence< OUString > PackageManagerFactoryImpl::getSupportedServiceNames()
+{
+    // a private one:
+    return { "com.sun.star.comp.deployment.PackageManagerFactory" };
+}
+
 inline void PackageManagerFactoryImpl::check()
 {
     ::osl::MutexGuard guard( getMutex() );
@@ -162,4 +175,11 @@ PackageManagerFactoryImpl::getPackageManager( OUString const & context )
 
 } // namespace dp_manager::factory
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+com_sun_star_comp_deployment_PackageManagerFactory_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const& )
+{
+    return cppu::acquire(new dp_manager::factory::PackageManagerFactoryImpl(context));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/source/deployment/registry/component/dp_component.cxx b/desktop/source/deployment/registry/component/dp_component.cxx
index 8cb39ce476bd..0ba485f30448 100644
--- a/desktop/source/deployment/registry/component/dp_component.cxx
+++ b/desktop/source/deployment/registry/component/dp_component.cxx
@@ -22,7 +22,6 @@
 #include <dp_shared.hxx>
 #include <dp_backend.h>
 #include <dp_platform.hxx>
-#include <dp_services.hxx>
 #include <dp_ucb.h>
 #include <rtl/string.hxx>
 #include <rtl/strbuf.hxx>
@@ -30,8 +29,8 @@
 #include <rtl/uri.hxx>
 #include <sal/log.hxx>
 #include <cppuhelper/exc_hlp.hxx>
+#include <cppuhelper/supportsservice.hxx>
 #include <ucbhelper/content.hxx>
-#include <comphelper/servicedecl.hxx>
 #include <comphelper/sequence.hxx>
 #include <xmlscript/xml_helper.hxx>
 #include <svl/inettype.hxx>
@@ -62,8 +61,6 @@ using namespace ::com::sun::star::ucb;
 namespace dp_registry::backend::component {
 namespace {
 
-#define IMPLEMENTATION_NAME  "com.sun.star.comp.deployment.component.PackageRegistryBackend"
-
 /** return a vector of bootstrap variables which have been provided
     as command arguments.
 */
@@ -315,6 +312,11 @@ public:
     BackendImpl( Sequence<Any> const & args,
                  Reference<XComponentContext> const & xComponentContext );
 
+    // XServiceInfo
+    virtual OUString SAL_CALL getImplementationName() override;
+    virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
+    virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
+
     // XPackageRegistry
     virtual Sequence< Reference<deployment::XPackageTypeInfo> > SAL_CALL
     getSupportedPackageTypes() override;
@@ -550,6 +552,22 @@ BackendImpl::BackendImpl(
     }
 }
 
+// XServiceInfo
+OUString BackendImpl::getImplementationName()
+{
+    return "com.sun.star.comp.deployment.component.PackageRegistryBackend";
+}
+
+sal_Bool BackendImpl::supportsService( const OUString& ServiceName )
+{
+    return cppu::supportsService(this, ServiceName);
+}
+
+css::uno::Sequence< OUString > BackendImpl::getSupportedServiceNames()
+{
+    return { BACKEND_SERVICE_NAME };
+}
+
 void BackendImpl::addDataToDb(
     OUString const & url, ComponentBackendDb::Data const & data)
 {
@@ -1693,14 +1711,14 @@ BackendImpl::ComponentsPackageImpl::ComponentsPackageImpl(
 
 } // anon namespace
 
-namespace sdecl = comphelper::service_decl;
-sdecl::class_<BackendImpl, sdecl::with_args<true> > serviceBI;
-sdecl::ServiceDecl const serviceDecl(
-    serviceBI,
-    IMPLEMENTATION_NAME,
-    BACKEND_SERVICE_NAME );
-
 } // namespace dp_registry
 
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+com_sun_star_comp_deployment_component_PackageRegistryBackend_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const& args)
+{
+    return cppu::acquire(new dp_registry::backend::component::BackendImpl(args, context));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/source/deployment/registry/configuration/dp_configuration.cxx b/desktop/source/deployment/registry/configuration/dp_configuration.cxx
index 394cd00695c6..e7e46f89978a 100644
--- a/desktop/source/deployment/registry/configuration/dp_configuration.cxx
+++ b/desktop/source/deployment/registry/configuration/dp_configuration.cxx
@@ -26,15 +26,14 @@
 #if HAVE_FEATURE_EXTENSIONS
 #include <dp_persmap.h>
 #endif
-#include <dp_services.hxx>
 #include <dp_ucb.h>
 #include <rtl/string.hxx>
 #include <rtl/strbuf.hxx>
 #include <rtl/ustrbuf.hxx>
 #include <cppuhelper/exc_hlp.hxx>
+#include <cppuhelper/supportsservice.hxx>
 #include <ucbhelper/content.hxx>
 #include <unotools/ucbhelper.hxx>
-#include <comphelper/servicedecl.hxx>
 #include <xmlscript/xml_helper.hxx>
 #include <comphelper/lok.hxx>
 #include <svl/inettype.hxx>
@@ -139,6 +138,11 @@ public:
     BackendImpl( Sequence<Any> const & args,
                  Reference<XComponentContext> const & xComponentContext );
 
+    // XServiceInfo
+    virtual OUString SAL_CALL getImplementationName() override;
+    virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
+    virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
+
     // XPackageRegistry
     virtual Sequence< Reference<deployment::XPackageTypeInfo> > SAL_CALL
     getSupportedPackageTypes() override;
@@ -233,6 +237,22 @@ BackendImpl::BackendImpl(
      }
 }
 
+// XServiceInfo
+OUString BackendImpl::getImplementationName()
+{
+    return "com.sun.star.comp.deployment.configuration.PackageRegistryBackend";
+}
+
+sal_Bool BackendImpl::supportsService( const OUString& ServiceName )
+{
+    return cppu::supportsService(this, ServiceName);
+}
+
+css::uno::Sequence< OUString > BackendImpl::getSupportedServiceNames()
+{
+    return { BACKEND_SERVICE_NAME };
+}
+
 void BackendImpl::addDataToDb(
     OUString const & url, ConfigurationBackendDb::Data const & data)
 {
@@ -786,13 +806,13 @@ void BackendImpl::PackageImpl::processPackage_(
 
 } // anon namespace
 
-namespace sdecl = comphelper::service_decl;
-sdecl::class_<BackendImpl, sdecl::with_args<true> > serviceBI;
-sdecl::ServiceDecl const serviceDecl(
-    serviceBI,
-    "com.sun.star.comp.deployment.configuration.PackageRegistryBackend",
-    BACKEND_SERVICE_NAME );
-
 } // namespace dp_registry
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+com_sun_star_comp_deployment_configuration_PackageRegistryBackend_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const& args)
+{
+    return cppu::acquire(new dp_registry::backend::configuration::BackendImpl(args, context));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/source/deployment/registry/executable/dp_executable.cxx b/desktop/source/deployment/registry/executable/dp_executable.cxx
index 9769051afaca..7631c6402a9a 100644
--- a/desktop/source/deployment/registry/executable/dp_executable.cxx
+++ b/desktop/source/deployment/registry/executable/dp_executable.cxx
@@ -21,15 +21,14 @@
 #include <memory>
 #include <dp_misc.h>
 #include <dp_backend.h>
-#include <dp_services.hxx>
 #include <dp_ucb.h>
 #include <dp_interact.h>
 #include <com/sun/star/lang/IllegalArgumentException.hpp>
 #include <osl/file.hxx>
 #include <ucbhelper/content.hxx>
-#include <comphelper/servicedecl.hxx>
 #include <svl/inettype.hxx>
 #include "dp_executablebackenddb.hxx"
+#include <cppuhelper/supportsservice.hxx>
 
 using namespace ::com::sun::star;
 using namespace ::com::sun::star::uno;
@@ -87,6 +86,11 @@ public:
     BackendImpl( Sequence<Any> const & args,
                  Reference<XComponentContext> const & xComponentContext );
 
+    // XServiceInfo
+    virtual OUString SAL_CALL getImplementationName() override;
+    virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
+    virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
+
     // XPackageRegistry
     virtual Sequence< Reference<deployment::XPackageTypeInfo> > SAL_CALL
     getSupportedPackageTypes() override;
@@ -111,6 +115,22 @@ BackendImpl::BackendImpl(
    }
 }
 
+// XServiceInfo
+OUString BackendImpl::getImplementationName()
+{
+    return "com.sun.star.comp.deployment.executable.PackageRegistryBackend";
+}
+
+sal_Bool BackendImpl::supportsService( const OUString& ServiceName )
+{
+    return cppu::supportsService(this, ServiceName);
+}
+
+css::uno::Sequence< OUString > BackendImpl::getSupportedServiceNames()
+{
+    return { BACKEND_SERVICE_NAME };
+}
+
 void BackendImpl::addDataToDb(OUString const & url)
 {
     if (m_backendDb)
@@ -301,14 +321,14 @@ bool BackendImpl::ExecutablePackageImpl::getFileAttributes(sal_uInt64& out_Attri
 
 } // anon namespace
 
-namespace sdecl = comphelper::service_decl;
-sdecl::class_<BackendImpl, sdecl::with_args<true> > serviceBI;
-sdecl::ServiceDecl const serviceDecl(
-    serviceBI,
-    "com.sun.star.comp.deployment.executable.PackageRegistryBackend",
-    BACKEND_SERVICE_NAME );
 
 } // namespace dp_registry::backend::executable
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+com_sun_star_comp_deployment_executable_PackageRegistryBackend_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const& args)
+{
+    return cppu::acquire(new dp_registry::backend::executable::BackendImpl(args, context));
+}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/source/deployment/registry/help/dp_help.cxx b/desktop/source/deployment/registry/help/dp_help.cxx
index aca144b2bf9c..594196155db8 100644
--- a/desktop/source/deployment/registry/help/dp_help.cxx
+++ b/desktop/source/deployment/registry/help/dp_help.cxx
@@ -23,14 +23,13 @@
 #include <strings.hrc>
 #include <dp_backend.h>
 #include "dp_helpbackenddb.hxx"
-#include <dp_services.hxx>
 #include <dp_ucb.h>
 #include <rtl/uri.hxx>
 #include <osl/file.hxx>
 #include <ucbhelper/content.hxx>
-#include <comphelper/servicedecl.hxx>
 #include <svl/inettype.hxx>
 #include <unotools/pathoptions.hxx>
+#include <cppuhelper/supportsservice.hxx>
 
 #if HAVE_FEATURE_DESKTOP
 #include <helpcompiler/compilehelp.hxx>
@@ -110,6 +109,11 @@ public:
     BackendImpl( Sequence<Any> const & args,
                  Reference<XComponentContext> const & xComponentContext );
 
+    // XServiceInfo
+    virtual OUString SAL_CALL getImplementationName() override;
+    virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
+    virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
+
     // XPackageRegistry
     virtual Sequence< Reference<deployment::XPackageTypeInfo> > SAL_CALL
         getSupportedPackageTypes() override;
@@ -145,6 +149,22 @@ BackendImpl::BackendImpl(
     deleteUnusedFolders(folders);
 }
 
+// XServiceInfo
+OUString BackendImpl::getImplementationName()
+{
+    return "com.sun.star.comp.deployment.help.PackageRegistryBackend";
+}
+
+sal_Bool BackendImpl::supportsService( const OUString& ServiceName )
+{
+    return cppu::supportsService(this, ServiceName);
+}
+
+css::uno::Sequence< OUString > BackendImpl::getSupportedServiceNames()
+{
+    return { BACKEND_SERVICE_NAME };
+}
+
 // XPackageRegistry
 
 Sequence< Reference<deployment::XPackageTypeInfo> >
@@ -588,13 +608,13 @@ Reference< ucb::XSimpleFileAccess3 > const & BackendImpl::getFileAccess()
 
 } // anon namespace
 
-namespace sdecl = comphelper::service_decl;
-sdecl::class_<BackendImpl, sdecl::with_args<true> > serviceBI;
-sdecl::ServiceDecl const serviceDecl(
-    serviceBI,
-    "com.sun.star.comp.deployment.help.PackageRegistryBackend",
-    BACKEND_SERVICE_NAME );
-
 } // namespace dp_registry
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+com_sun_star_comp_deployment_help_PackageRegistryBackend_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const& args)
+{
+    return cppu::acquire(new dp_registry::backend::help::BackendImpl(args, context));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/source/deployment/registry/inc/dp_backend.h b/desktop/source/deployment/registry/inc/dp_backend.h
index ea54e41859fc..41029950af4b 100644
--- a/desktop/source/deployment/registry/inc/dp_backend.h
+++ b/desktop/source/deployment/registry/inc/dp_backend.h
@@ -27,6 +27,7 @@
 #include <cppuhelper/implbase.hxx>
 #include <cppuhelper/compbase.hxx>
 #include <com/sun/star/lang/XEventListener.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/deployment/XPackageRegistry.hpp>
 #include <unordered_map>
 #include <strings.hrc>
@@ -189,7 +190,8 @@ public:
 
 typedef ::cppu::WeakComponentImplHelper<
     css::lang::XEventListener,
-    css::deployment::XPackageRegistry > t_BackendBase;
+    css::deployment::XPackageRegistry,
+    css::lang::XServiceInfo > t_BackendBase;
 
 
 class PackageRegistryBackend
diff --git a/desktop/source/deployment/registry/package/dp_package.cxx b/desktop/source/deployment/registry/package/dp_package.cxx
index ce8fe18a44c0..890fa3612a42 100644
--- a/desktop/source/deployment/registry/package/dp_package.cxx
+++ b/desktop/source/deployment/registry/package/dp_package.cxx
@@ -38,7 +38,6 @@
 #include <svl/inettype.hxx>
 #include <comphelper/sequence.hxx>
 #include <com/sun/star/lang/WrappedTargetException.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/graphic/XGraphic.hpp>
 #include <com/sun/star/graphic/GraphicProvider.hpp>
 #include <com/sun/star/graphic/XGraphicProvider.hpp>
@@ -81,8 +80,7 @@ using namespace ::com::sun::star::uno;
 namespace dp_registry::backend::bundle {
 namespace {
 
-typedef cppu::ImplInheritanceHelper<PackageRegistryBackend,
-                                     lang::XServiceInfo> ImplBaseT;
+typedef cppu::ImplInheritanceHelper<PackageRegistryBackend> ImplBaseT;
 
 
 class BackendImpl : public ImplBaseT
diff --git a/desktop/source/deployment/registry/script/dp_script.cxx b/desktop/source/deployment/registry/script/dp_script.cxx
index 39de39f2b624..29b75fbfe53d 100644
--- a/desktop/source/deployment/registry/script/dp_script.cxx
+++ b/desktop/source/deployment/registry/script/dp_script.cxx
@@ -19,18 +19,17 @@
 
 
 #include <strings.hrc>
-#include <dp_services.hxx>
 #include "dp_lib_container.h"
 #include <dp_backend.h>
 #include <dp_ucb.h>
 #include <ucbhelper/content.hxx>
 #include <cppuhelper/implbase.hxx>
-#include <comphelper/servicedecl.hxx>
 #include <svl/inettype.hxx>
 #include <com/sun/star/util/XUpdatable.hpp>
 #include <com/sun/star/script/XLibraryContainer3.hpp>
 #include <memory>
 #include "dp_scriptbackenddb.hxx"
+#include <cppuhelper/supportsservice.hxx>
 
 using namespace ::dp_misc;
 using namespace ::com::sun::star;
@@ -93,6 +92,11 @@ public:
     BackendImpl( Sequence<Any> const & args,
                  Reference<XComponentContext> const & xComponentContext );
 
+    // XServiceInfo
+    virtual OUString SAL_CALL getImplementationName() override;
+    virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
+    virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
+
     // XUpdatable
     virtual void SAL_CALL update() override;
 
@@ -162,6 +166,23 @@ BackendImpl::BackendImpl(
     }
 
 }
+
+// XServiceInfo
+OUString BackendImpl::getImplementationName()
+{
+    return "com.sun.star.comp.deployment.script.PackageRegistryBackend";
+}
+
+sal_Bool BackendImpl::supportsService( const OUString& ServiceName )
+{
+    return cppu::supportsService(this, ServiceName);
+}
+
+css::uno::Sequence< OUString > BackendImpl::getSupportedServiceNames()
+{
+    return { BACKEND_SERVICE_NAME };
+}
+
 void BackendImpl::addDataToDb(OUString const & url)
 {
     if (m_backendDb)
@@ -447,13 +468,13 @@ void BackendImpl::PackageImpl::processPackage_(
 
 } // anon namespace
 
-namespace sdecl = comphelper::service_decl;
-sdecl::class_<BackendImpl, sdecl::with_args<true> > serviceBI;
-sdecl::ServiceDecl const serviceDecl(
-    serviceBI,
-    "com.sun.star.comp.deployment.script.PackageRegistryBackend",
-    BACKEND_SERVICE_NAME );
-
 } // namespace dp_registry::backend::script
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+com_sun_star_comp_deployment_script_PackageRegistryBackend_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const& args)
+{
+    return cppu::acquire(new dp_registry::backend::script::BackendImpl(args, context));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/source/deployment/registry/sfwk/dp_sfwk.cxx b/desktop/source/deployment/registry/sfwk/dp_sfwk.cxx
index 58c72b6ca943..4dcd55e02991 100644
--- a/desktop/source/deployment/registry/sfwk/dp_sfwk.cxx
+++ b/desktop/source/deployment/registry/sfwk/dp_sfwk.cxx
@@ -19,18 +19,17 @@
 
 #include <sal/config.h>
 
-#include <dp_services.hxx>
 #include <strings.hrc>
 #include <dp_backend.h>
 #include <dp_ucb.h>
 #include "dp_parceldesc.hxx"
 #include <rtl/uri.hxx>
 #include <ucbhelper/content.hxx>
-#include <comphelper/servicedecl.hxx>
 #include <svl/inettype.hxx>
 #include <com/sun/star/container/XNameContainer.hpp>
 #include <com/sun/star/script/provider/theMasterScriptProviderFactory.hpp>
 #include <com/sun/star/xml/sax/Parser.hpp>
+#include <cppuhelper/supportsservice.hxx>
 
 
 using namespace ::dp_misc;
@@ -93,6 +92,11 @@ public:
         Sequence<Any> const & args,
         Reference<XComponentContext> const & xComponentContext );
 
+    // XServiceInfo
+    virtual OUString SAL_CALL getImplementationName() override;
+    virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
+    virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
+
     // XPackageRegistry
     virtual Sequence< Reference<deployment::XPackageTypeInfo> > SAL_CALL
     getSupportedPackageTypes() override;
@@ -167,6 +171,22 @@ BackendImpl::BackendImpl(
 }
 
 
+// XServiceInfo
+OUString BackendImpl::getImplementationName()
+{
+    return "com.sun.star.comp.deployment.sfwk.PackageRegistryBackend";
+}
+
+sal_Bool BackendImpl::supportsService( const OUString& ServiceName )
+{
+    return cppu::supportsService(this, ServiceName);
+}
+
+css::uno::Sequence< OUString > BackendImpl::getSupportedServiceNames()
+{
+    return { BACKEND_SERVICE_NAME };
+}
+
 // XPackageRegistry
 
 Sequence< Reference<deployment::XPackageTypeInfo> >
@@ -346,13 +366,13 @@ void BackendImpl::PackageImpl::processPackage_(
     }
 }
 
-namespace sdecl = comphelper::service_decl;
-sdecl::class_<BackendImpl, sdecl::with_args<true> > const serviceBI;
-sdecl::ServiceDecl const serviceDecl(
-    serviceBI,
-    "com.sun.star.comp.deployment.sfwk.PackageRegistryBackend",
-    BACKEND_SERVICE_NAME );
-
 } // namespace dp_registry::backend::sfwk
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+com_sun_star_comp_deployment_sfwk_PackageRegistryBackend_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const& args)
+{
+    return cppu::acquire(new dp_registry::backend::sfwk::BackendImpl(args, context));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/solenv/bin/native-code.py b/solenv/bin/native-code.py
index 06dd076a8eff..e62c4b90b12e 100755
--- a/solenv/bin/native-code.py
+++ b/solenv/bin/native-code.py
@@ -501,7 +501,6 @@ calc_constructor_list = [
 draw_factory_list = [
     ("libsdlo.a", "sd_component_getFactory"),
     ("libsvgfilterlo.a", "svgfilter_component_getFactory"),
-    ("libdeployment.a", "deployment_component_getFactory"),
     ("libemboleobj.a", "emboleobj_component_getFactory"),
     ]
 
@@ -518,6 +517,17 @@ draw_constructor_list = [
     "com_sun_star_animations_ParallelTimeContainer_get_implementation",
     "com_sun_star_animations_SequenceTimeContainer_get_implementation",
     "com_sun_star_animations_TransitionFilter_get_implementation",
+# desktop/source/deployment/deployment.component
+    "com_sun_star_comp_deployment_ExtensionManager_get_implementation",
+    "com_sun_star_comp_deployment_PackageInformationProvider_get_implementation",
+    "com_sun_star_comp_deployment_PackageManagerFactory_get_implementation",
+    "com_sun_star_comp_deployment_ProgressLog_get_implementation",
+    "com_sun_star_comp_deployment_component_PackageRegistryBackend_get_implementation",
+    "com_sun_star_comp_deployment_configuration_PackageRegistryBackend_get_implementation",
+    "com_sun_star_comp_deployment_executable_PackageRegistryBackend_get_implementation",
+    "com_sun_star_comp_deployment_help_PackageRegistryBackend_get_implementation",
+    "com_sun_star_comp_deployment_script_PackageRegistryBackend_get_implementation",
+    "com_sun_star_comp_deployment_sfwk_PackageRegistryBackend_get_implementation",
 # sd/util/sd.component
     "RandomAnimationNode_get_implementation",
     "com_sun_star_comp_Draw_framework_BasicPaneFactory_get_implementation",


More information about the Libreoffice-commits mailing list