From 2f998bdf8f5c504f09833febe0cd16ce743f57a5 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Mon, 10 Dec 2012 14:39:29 +0200 Subject: fdo#46808, use service constructor for embed::FileSystemStorageFactory Change-Id: Ic523e4b0a662a68a1a222b7697fcdae56d69903c --- comphelper/inc/comphelper/storagehelper.hxx | 10 ++++----- comphelper/source/misc/storagehelper.cxx | 27 +++++++------------------ framework/inc/services.h | 1 - framework/source/accelerators/presethandler.cxx | 5 +++-- sfx2/source/doc/DocumentMetadataAccess.cxx | 8 ++------ 5 files changed, 17 insertions(+), 34 deletions(-) diff --git a/comphelper/inc/comphelper/storagehelper.hxx b/comphelper/inc/comphelper/storagehelper.hxx index e98a40727688..2c0a45518b02 100644 --- a/comphelper/inc/comphelper/storagehelper.hxx +++ b/comphelper/inc/comphelper/storagehelper.hxx @@ -77,8 +77,8 @@ public: static ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory > GetFileSystemStorageFactory( - const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xSF - = ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >() ) + const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext + = ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >() ) throw ( ::com::sun::star::uno::Exception ); static ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > @@ -92,7 +92,7 @@ public: GetStorageFromURL( const ::rtl::OUString& aURL, sal_Int32 nStorageMode, - const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& xrxContext + const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext = ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >() ) throw ( ::com::sun::star::uno::Exception ); @@ -101,8 +101,8 @@ public: GetStorageFromURL2( const ::rtl::OUString& aURL, sal_Int32 nStorageMode, - const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory - = ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >() ) + const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext + = ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >() ) throw ( ::com::sun::star::uno::Exception ); diff --git a/comphelper/source/misc/storagehelper.cxx b/comphelper/source/misc/storagehelper.cxx index 888a8b3596f0..b7190663a7e0 100644 --- a/comphelper/source/misc/storagehelper.cxx +++ b/comphelper/source/misc/storagehelper.cxx @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -60,26 +61,12 @@ uno::Reference< lang::XSingleServiceFactory > OStorageHelper::GetStorageFactory( // ---------------------------------------------------------------------- uno::Reference< lang::XSingleServiceFactory > OStorageHelper::GetFileSystemStorageFactory( - const uno::Reference< lang::XMultiServiceFactory >& xSF ) + const uno::Reference< uno::XComponentContext >& rxContext ) throw ( uno::Exception ) { - uno::Reference< lang::XMultiServiceFactory > xFactory = xSF.is() ? xSF : ::comphelper::getProcessServiceFactory(); - if ( !xFactory.is() ) - throw uno::RuntimeException(); - - rtl::OUString sService(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.embed.FileSystemStorageFactory")); - - uno::Reference < lang::XSingleServiceFactory > xStorageFactory( - xFactory->createInstance(sService), uno::UNO_QUERY); - - if ( !xStorageFactory.is() ) - { - throw uno::RuntimeException(rtl::OUString( - RTL_CONSTASCII_USTRINGPARAM("Could not load: ")) + sService, - uno::Reference< uno::XInterface >()); - } + uno::Reference< uno::XComponentContext> xContext = rxContext.is() ? rxContext : ::comphelper::getProcessComponentContext(); - return xStorageFactory; + return embed::FileSystemStorageFactory::create(rxContext); } // ---------------------------------------------------------------------- @@ -118,7 +105,7 @@ uno::Reference< embed::XStorage > OStorageHelper::GetStorageFromURL( uno::Reference< embed::XStorage > OStorageHelper::GetStorageFromURL2( const ::rtl::OUString& aURL, sal_Int32 nStorageMode, - const uno::Reference< lang::XMultiServiceFactory >& xFactory ) + const uno::Reference< uno::XComponentContext >& rxContext ) throw ( uno::Exception ) { uno::Sequence< uno::Any > aArgs( 2 ); @@ -131,9 +118,9 @@ uno::Reference< embed::XStorage > OStorageHelper::GetStorageFromURL2( uno::Reference< ::com::sun::star::ucb::XCommandEnvironment > (), getProcessComponentContext() ); if (aCntnt.isDocument()) { - xFact = GetStorageFactory( comphelper::getComponentContext(xFactory) ); + xFact = GetStorageFactory( rxContext ); } else { - xFact = GetFileSystemStorageFactory( xFactory ); + xFact = GetFileSystemStorageFactory( rxContext ); } } catch (uno::Exception &) { } diff --git a/framework/inc/services.h b/framework/inc/services.h index beae088e22ea..d8f38672d57b 100644 --- a/framework/inc/services.h +++ b/framework/inc/services.h @@ -68,7 +68,6 @@ namespace framework{ #define SERVICENAME_GLOBALACCELERATORCONFIGURATION DECLARE_ASCII("com.sun.star.ui.GlobalAcceleratorConfiguration") #define SERVICENAME_MODULEACCELERATORCONFIGURATION DECLARE_ASCII("com.sun.star.ui.ModuleAcceleratorConfiguration") #define SERVICENAME_DOCUMENTACCELERATORCONFIGURATION DECLARE_ASCII("com.sun.star.ui.DocumentAcceleratorConfiguration") -#define SERVICENAME_FILESYSTEMSTORAGEFACTORY DECLARE_ASCII("com.sun.star.embed.FileSystemStorageFactory" ) #define SERVICENAME_PACKAGESTRUCTURECREATOR DECLARE_ASCII("com.sun.star.embed.PackageStructureCreator" ) #define SERVICENAME_TOOLBARFACTORY DECLARE_ASCII("com.sun.star.ui.ToolBarFactory" ) #define SERVICENAME_TOOLBARCONTROLLERFACTORY DECLARE_ASCII("com.sun.star.frame.ToolBarControllerFactory" ) diff --git a/framework/source/accelerators/presethandler.cxx b/framework/source/accelerators/presethandler.cxx index d0a57391b6d9..80c013b2c55c 100644 --- a/framework/source/accelerators/presethandler.cxx +++ b/framework/source/accelerators/presethandler.cxx @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -254,7 +255,7 @@ css::uno::Reference< css::embed::XStorage > PresetHandler::getOrCreateRootStorag lArgs[0] <<= sShareLayer; lArgs[1] <<= css::embed::ElementModes::READ | css::embed::ElementModes::NOCREATE; - css::uno::Reference< css::lang::XSingleServiceFactory > xStorageFactory(xSMGR->createInstance(SERVICENAME_FILESYSTEMSTORAGEFACTORY) , css::uno::UNO_QUERY_THROW); + css::uno::Reference< css::lang::XSingleServiceFactory > xStorageFactory = css::embed::FileSystemStorageFactory::create( comphelper::getComponentContext(xSMGR) ); css::uno::Reference< css::embed::XStorage > xStorage; try @@ -304,7 +305,7 @@ css::uno::Reference< css::embed::XStorage > PresetHandler::getOrCreateRootStorag lArgs[0] <<= sUserLayer; lArgs[1] <<= css::embed::ElementModes::READWRITE; - css::uno::Reference< css::lang::XSingleServiceFactory > xStorageFactory(xSMGR->createInstance(SERVICENAME_FILESYSTEMSTORAGEFACTORY) , css::uno::UNO_QUERY_THROW); + css::uno::Reference< css::lang::XSingleServiceFactory > xStorageFactory = css::embed::FileSystemStorageFactory::create( comphelper::getComponentContext(xSMGR) ); css::uno::Reference< css::embed::XStorage > xStorage; try diff --git a/sfx2/source/doc/DocumentMetadataAccess.cxx b/sfx2/source/doc/DocumentMetadataAccess.cxx index f0dd1f0e75ca..c85c452d74b1 100644 --- a/sfx2/source/doc/DocumentMetadataAccess.cxx +++ b/sfx2/source/doc/DocumentMetadataAccess.cxx @@ -1294,10 +1294,8 @@ throw (uno::RuntimeException, lang::IllegalArgumentException, xStorage = ::comphelper::OStorageHelper::GetStorageFromInputStream( xIn, m_pImpl->m_xContext); } else { // fallback to url - const uno::Reference xMsf ( - m_pImpl->m_xContext->getServiceManager(), uno::UNO_QUERY_THROW); xStorage = ::comphelper::OStorageHelper::GetStorageFromURL2( - URL, embed::ElementModes::READ, xMsf); + URL, embed::ElementModes::READ, m_pImpl->m_xContext); } } catch (const uno::RuntimeException &) { throw; @@ -1352,10 +1350,8 @@ throw (uno::RuntimeException, lang::IllegalArgumentException, if (xStorage.is()) { sfx = true; } else { - const uno::Reference xMsf ( - m_pImpl->m_xContext->getServiceManager(), uno::UNO_QUERY_THROW); xStorage = ::comphelper::OStorageHelper::GetStorageFromURL2( - URL, embed::ElementModes::WRITE, xMsf); + URL, embed::ElementModes::WRITE, m_pImpl->m_xContext); } if (!xStorage.is()) { -- cgit