Kaydet (Commit) 6dc07a18 authored tarafından Stephan Bergmann's avatar Stephan Bergmann Kaydeden (comit) Fridrich Strba

deb#703486: Keep migrating more user extensions after one failed

(cherry picked from commit 190b9257)
Conflicts:
	desktop/source/migration/services/oo3extensionmigration.cxx

Change-Id: I9cc8acac54bd5a02652462c3967b4c81f7cf8ee3
Reviewed-on: https://gerrit.libreoffice.org/2877Reviewed-by: 's avatarFridrich Strba <fridrich@documentfoundation.org>
Tested-by: 's avatarFridrich Strba <fridrich@documentfoundation.org>
üst 473cd59a
......@@ -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 @@ bool OO3ExtensionMigration::scanDescriptionXml( const ::rtl::OUString& sDescript
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();
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 );
}
if ( m_xExtensionManager.is() )
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;
}
......
......@@ -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 @@ namespace migration
::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 @@ namespace migration
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<
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment