summaryrefslogtreecommitdiff
path: root/desktop/source/deployment/manager/dp_extensionmanager.cxx
diff options
context:
space:
mode:
authorJoachim Lingner <jl@openoffice.org>2010-05-21 09:42:27 +0200
committerJoachim Lingner <jl@openoffice.org>2010-05-21 09:42:27 +0200
commit89b704f9db9ebbff43f6a423d2a1f17314de7a5c (patch)
tree078ba9aa27a55002239e6af1db6d371c962e8114 /desktop/source/deployment/manager/dp_extensionmanager.cxx
parent7df75b6fe4c992f61c593dc33bb84ba537f05f99 (diff)
jl152 #i77196# XExtensionManager::synchronize now has no repository argument; adapted PackageInformationProvider to use bundled extensions
Diffstat (limited to 'desktop/source/deployment/manager/dp_extensionmanager.cxx')
-rw-r--r--desktop/source/deployment/manager/dp_extensionmanager.cxx90
1 files changed, 36 insertions, 54 deletions
diff --git a/desktop/source/deployment/manager/dp_extensionmanager.cxx b/desktop/source/deployment/manager/dp_extensionmanager.cxx
index edc414dc6f5d..2781231b8f5e 100644
--- a/desktop/source/deployment/manager/dp_extensionmanager.cxx
+++ b/desktop/source/deployment/manager/dp_extensionmanager.cxx
@@ -116,6 +116,29 @@ OUString CompIdentifiers::getName(::std::vector<Reference<deploy::XPackage> > co
OSL_ASSERT(extension.is());
return extension->getDisplayName();
}
+
+void writeLastModified(OUString & url, Reference<ucb::XCommandEnvironment> const & xCmdEnv)
+{
+ //Write the lastmodified file
+ try {
+ ::rtl::Bootstrap::expandMacros(url);
+ ::ucbhelper::Content ucbStamp(url, xCmdEnv );
+ dp_misc::erase_path( url, xCmdEnv );
+ ::rtl::OString stamp("1" );
+ Reference<css::io::XInputStream> xData(
+ ::xmlscript::createInputStream(
+ ::rtl::ByteSequence(
+ reinterpret_cast<sal_Int8 const *>(stamp.getStr()),
+ stamp.getLength() ) ) );
+ ucbStamp.writeStream( xData, true /* replace existing */ );
+ }
+ catch(...)
+ {
+ uno::Any exc(::cppu::getCaughtException());
+ throw deploy::DeploymentException(
+ OUSTR("Failed to update") + url, 0, exc);
+ }
+}
} //end namespace
namespace dp_manager {
@@ -1021,7 +1044,6 @@ void ExtensionManager::reinstallDeployedExtensions(
}
sal_Bool ExtensionManager::synchronize(
- OUString const & repository,
Reference<task::XAbortChannel> const & xAbortChannel,
Reference<ucb::XCommandEnvironment> const & xCmdEnv )
throw (deploy::DeploymentException,
@@ -1033,37 +1055,20 @@ sal_Bool ExtensionManager::synchronize(
try
{
sal_Bool bModified = sal_False;
- Reference<deploy::XPackageManager> xPackageManager;
- OUString file;
- if (repository.equals(OUSTR("user")))
- {
- xPackageManager = m_userRepository;
- }
- else if (repository.equals(OUSTR("shared")))
- {
- xPackageManager = m_sharedRepository;
- file = OUString (
- RTL_CONSTASCII_USTRINGPARAM(
- "$SHARED_EXTENSIONS_USER/lastsynchronized"));
- }
- else if (repository.equals(OUSTR("bundled")))
- {
- xPackageManager = m_bundledRepository;
- file = OUString (
- RTL_CONSTASCII_USTRINGPARAM(
- "$BUNDLED_EXTENSIONS_USER/lastsynchronized"));
- }
- else
- throw lang::IllegalArgumentException(
- OUSTR("No valid repository name provided."),
- static_cast<cppu::OWeakObject*>(this), 0);
::osl::MutexGuard guard(getMutex());
- String sSynchronizing(StrSyncRepository::get());
- sSynchronizing.SearchAndReplaceAllAscii( "%NAME", repository );
- dp_misc::ProgressLevel progress(xCmdEnv, sSynchronizing);
+ String sSynchronizingShared(StrSyncRepository::get());
+ sSynchronizingShared.SearchAndReplaceAllAscii( "%NAME", OUSTR("shared"));
+ dp_misc::ProgressLevel progressShared(xCmdEnv, sSynchronizingShared);
+ bModified = m_sharedRepository->synchronize(xAbortChannel, xCmdEnv);
+ progressShared.update(OUSTR("\n\n"));
+
+ String sSynchronizingBundled(StrSyncRepository::get());
+ sSynchronizingBundled.SearchAndReplaceAllAscii( "%NAME", OUSTR("bundled"));
+ dp_misc::ProgressLevel progressBundled(xCmdEnv, sSynchronizingBundled);
+ bModified |= m_bundledRepository->synchronize(xAbortChannel, xCmdEnv);
+ progressBundled.update(OUSTR("\n\n"));
- bModified = xPackageManager->synchronize(xAbortChannel, xCmdEnv);
try
{
const uno::Sequence<uno::Sequence<Reference<deploy::XPackage> > >
@@ -1082,31 +1087,8 @@ sal_Bool ExtensionManager::synchronize(
//so we will no repeat this everytime OOo starts.
OSL_ENSURE(0, "Extensions Manager: synchronize");
}
-
-
- progress.update(OUSTR("\n\n"));
-
- //Write the lastmodified file
- try {
- ::rtl::Bootstrap::expandMacros(file);
- ::ucbhelper::Content ucbStamp(file, xCmdEnv );
- dp_misc::erase_path( file, xCmdEnv );
- ::rtl::OString stamp("1" );
- Reference<css::io::XInputStream> xData(
- ::xmlscript::createInputStream(
- ::rtl::ByteSequence(
- reinterpret_cast<sal_Int8 const *>(stamp.getStr()),
- stamp.getLength() ) ) );
- ucbStamp.writeStream( xData, true /* replace existing */ );
- }
- catch(...)
- {
- uno::Any exc(::cppu::getCaughtException());
- throw deploy::DeploymentException(
- OUSTR("Failed to update") + file,
- static_cast<OWeakObject*>(this), exc);
-
- }
+ writeLastModified(OUSTR("$BUNDLED_EXTENSIONS_USER/lastsynchronized"), xCmdEnv);
+ writeLastModified(OUSTR("$SHARED_EXTENSIONS_USER/lastsynchronized"), xCmdEnv);
return bModified;
} catch (deploy::DeploymentException& ) {
throw;