[PATCH libreoffice-4-0-2] deb#703486: Keep migrating more user extensions after one fa...
Stephan Bergmann (via Code Review)
gerrit at gerrit.libreoffice.org
Wed Mar 20 09:17:02 PDT 2013
Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/2878
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/78/2878/1
deb#703486: Keep migrating more user extensions after one failed
(cherry picked from commit 190b9257367884fa8561410ebe6fb9df7fd9c465)
Conflicts:
desktop/source/migration/services/oo3extensionmigration.cxx
Change-Id: I9cc8acac54bd5a02652462c3967b4c81f7cf8ee3
---
M desktop/source/migration/services/oo3extensionmigration.cxx
M desktop/source/migration/services/oo3extensionmigration.hxx
2 files changed, 21 insertions(+), 39 deletions(-)
diff --git a/desktop/source/migration/services/oo3extensionmigration.cxx b/desktop/source/migration/services/oo3extensionmigration.cxx
index aed03fa..508ca25 100644
--- a/desktop/source/migration/services/oo3extensionmigration.cxx
+++ b/desktop/source/migration/services/oo3extensionmigration.cxx
@@ -40,6 +40,7 @@
#include <com/sun/star/xml/dom/DocumentBuilder.hpp>
#include <com/sun/star/beans/NamedValue.hpp>
#include <com/sun/star/deployment/ExtensionManager.hpp>
+#include <com/sun/star/deployment/XExtensionManager.hpp>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
@@ -304,47 +305,28 @@
return true;
}
-bool OO3ExtensionMigration::migrateExtension( const ::rtl::OUString& sSourceDir )
+void OO3ExtensionMigration::migrateExtension( const ::rtl::OUString& sSourceDir )
{
- if ( !m_xExtensionManager.is() )
+ css::uno::Reference< css::deployment::XExtensionManager > extMgr(
+ deployment::ExtensionManager::get( m_ctx ) );
+ try
{
- try
- {
- m_xExtensionManager = deployment::ExtensionManager::get( m_ctx );
- }
- catch ( const ucb::CommandFailedException & ){}
- catch ( const uno::RuntimeException & ) {}
- }
+ TmpRepositoryCommandEnv* pCmdEnv = new TmpRepositoryCommandEnv();
- if ( m_xExtensionManager.is() )
+ uno::Reference< ucb::XCommandEnvironment > xCmdEnv(
+ static_cast< cppu::OWeakObject* >( pCmdEnv ), uno::UNO_QUERY );
+ uno::Reference< task::XAbortChannel > xAbortChannel;
+ extMgr->addExtension(
+ sSourceDir, uno::Sequence<beans::NamedValue>(),
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("user")), xAbortChannel, xCmdEnv );
+ }
+ catch ( css::uno::Exception & e )
{
- try
- {
- TmpRepositoryCommandEnv* pCmdEnv = new TmpRepositoryCommandEnv();
-
- uno::Reference< ucb::XCommandEnvironment > xCmdEnv(
- static_cast< cppu::OWeakObject* >( pCmdEnv ), uno::UNO_QUERY );
- uno::Reference< task::XAbortChannel > xAbortChannel;
- uno::Reference< deployment::XPackage > xPackage =
- m_xExtensionManager->addExtension(
- sSourceDir, uno::Sequence<beans::NamedValue>(),
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("user")), xAbortChannel, xCmdEnv );
-
- if ( xPackage.is() )
- return true;
- }
- catch ( const ucb::CommandFailedException& )
- {
- }
- catch ( const ucb::CommandAbortedException& )
- {
- }
- catch ( const lang::IllegalArgumentException& )
- {
- }
+ SAL_WARN(
+ "desktop.migration",
+ "Ignoring UNO Exception while migrating extension from <"
+ << sSourceDir << ">: \"" << e.Message << "\"");
}
-
- return false;
}
diff --git a/desktop/source/migration/services/oo3extensionmigration.hxx b/desktop/source/migration/services/oo3extensionmigration.hxx
index a3db98a..96a8b22 100644
--- a/desktop/source/migration/services/oo3extensionmigration.hxx
+++ b/desktop/source/migration/services/oo3extensionmigration.hxx
@@ -26,7 +26,8 @@
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/xml/dom/XDocumentBuilder.hpp>
#include <com/sun/star/ucb/SimpleFileAccess.hpp>
-#include <com/sun/star/deployment/XExtensionManager.hpp>
+#include <com/sun/star/ucb/XCommandEnvironment.hpp>
+#include <com/sun/star/ucb/XProgressHandler.hpp>
#include <osl/mutex.hxx>
#include <osl/file.hxx>
@@ -68,7 +69,6 @@
::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > m_ctx;
::com::sun::star::uno::Reference< ::com::sun::star::xml::dom::XDocumentBuilder > m_xDocBuilder;
::com::sun::star::uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess3 > m_xSimpleFileAccess;
- ::com::sun::star::uno::Reference< ::com::sun::star::deployment::XExtensionManager > m_xExtensionManager;
::osl::Mutex m_aMutex;
::rtl::OUString m_sSourceDir;
::rtl::OUString m_sTargetDir;
@@ -85,7 +85,7 @@
ScanResult scanExtensionFolder( const ::rtl::OUString& sExtFolder );
void scanUserExtensions( const ::rtl::OUString& sSourceDir, TStringVector& aMigrateExtensions );
bool scanDescriptionXml( const ::rtl::OUString& sDescriptionXmlFilePath );
- bool migrateExtension( const ::rtl::OUString& sSourceDir );
+ void migrateExtension( const ::rtl::OUString& sSourceDir );
public:
OO3ExtensionMigration(::com::sun::star::uno::Reference<
--
To view, visit https://gerrit.libreoffice.org/2878
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9cc8acac54bd5a02652462c3967b4c81f7cf8ee3
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-4-0-2
Gerrit-Owner: Stephan Bergmann <sbergman at redhat.com>
More information about the LibreOffice
mailing list