summaryrefslogtreecommitdiff
path: root/package
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2012-10-15 09:59:33 +0200
committerStephan Bergmann <sbergman@redhat.com>2012-10-23 14:16:09 +0200
commit8aa5946afeac9d86f84239bd7ef101493059c3f5 (patch)
treee3961b25b8702dc22a60aee07f0101d93b2d3b56 /package
parent468acb7f521317dbededd0c31a6cfae979446104 (diff)
fdo#46808, Adapt packages::manifest::ManifestWriter UNO service to new style
The service already existed, it just did not have an IDL file Change-Id: I04c617a97262e9cc96af17fcae9cc084245c0149
Diffstat (limited to 'package')
-rw-r--r--package/source/zippackage/ZipPackage.cxx65
1 files changed, 26 insertions, 39 deletions
diff --git a/package/source/zippackage/ZipPackage.cxx b/package/source/zippackage/ZipPackage.cxx
index dd2cf380e027..35484bc26571 100644
--- a/package/source/zippackage/ZipPackage.cxx
+++ b/package/source/zippackage/ZipPackage.cxx
@@ -30,7 +30,7 @@
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/packages/zip/ZipConstants.hpp>
#include <com/sun/star/packages/manifest/ManifestReader.hpp>
-#include <com/sun/star/packages/manifest/XManifestWriter.hpp>
+#include <com/sun/star/packages/manifest/ManifestWriter.hpp>
#include <com/sun/star/io/TempFile.hpp>
#include <com/sun/star/io/XStream.hpp>
#include <com/sun/star/io/XInputStream.hpp>
@@ -1012,48 +1012,35 @@ void ZipPackage::WriteMimetypeMagicFile( ZipOutputStream& aZipOut )
void ZipPackage::WriteManifest( ZipOutputStream& aZipOut, const vector< uno::Sequence < PropertyValue > >& aManList )
{
// Write the manifest
- uno::Reference < XOutputStream > xManOutStream;
- uno::Reference < XManifestWriter > xWriter ( m_xFactory->createInstance("com.sun.star.packages.manifest.ManifestWriter"), UNO_QUERY );
- if ( xWriter.is() )
- {
- ZipEntry * pEntry = new ZipEntry;
- ZipPackageBuffer *pBuffer = new ZipPackageBuffer( n_ConstBufferSize );
- xManOutStream = uno::Reference < XOutputStream > ( *pBuffer, UNO_QUERY );
-
- pEntry->sPath = "META-INF/manifest.xml";
- pEntry->nMethod = DEFLATED;
- pEntry->nCrc = -1;
- pEntry->nSize = pEntry->nCompressedSize = -1;
- pEntry->nTime = ZipOutputStream::getCurrentDosTime();
-
- // Convert vector into a uno::Sequence
- uno::Sequence < uno::Sequence < PropertyValue > > aManifestSequence ( aManList.size() );
- sal_Int32 nInd = 0;
- for ( vector < uno::Sequence < PropertyValue > >::const_iterator aIter = aManList.begin(), aEnd = aManList.end();
- aIter != aEnd;
- ++aIter, ++nInd )
- {
- aManifestSequence[nInd] = ( *aIter );
- }
- xWriter->writeManifestSequence ( xManOutStream, aManifestSequence );
+ uno::Reference < XManifestWriter > xWriter = ManifestWriter::create( comphelper::getComponentContext(m_xFactory) );
+ ZipEntry * pEntry = new ZipEntry;
+ ZipPackageBuffer *pBuffer = new ZipPackageBuffer( n_ConstBufferSize );
+ uno::Reference < XOutputStream > xManOutStream( *pBuffer, UNO_QUERY );
- sal_Int32 nBufferLength = static_cast < sal_Int32 > ( pBuffer->getPosition() );
- pBuffer->realloc( nBufferLength );
+ pEntry->sPath = "META-INF/manifest.xml";
+ pEntry->nMethod = DEFLATED;
+ pEntry->nCrc = -1;
+ pEntry->nSize = pEntry->nCompressedSize = -1;
+ pEntry->nTime = ZipOutputStream::getCurrentDosTime();
- // the manifest.xml is never encrypted - so pass an empty reference
- aZipOut.putNextEntry( *pEntry, NULL );
- aZipOut.write( pBuffer->getSequence(), 0, nBufferLength );
- aZipOut.closeEntry();
- }
- else
+ // Convert vector into a uno::Sequence
+ uno::Sequence < uno::Sequence < PropertyValue > > aManifestSequence ( aManList.size() );
+ sal_Int32 nInd = 0;
+ for ( vector < uno::Sequence < PropertyValue > >::const_iterator aIter = aManList.begin(), aEnd = aManList.end();
+ aIter != aEnd;
+ ++aIter, ++nInd )
{
- OSL_FAIL( "Couldn't get a ManifestWriter!" );
- IOException aException;
- throw WrappedTargetException(
- OSL_LOG_PREFIX "Couldn't get a ManifestWriter!",
- static_cast < OWeakObject * > ( this ),
- makeAny( aException ) );
+ aManifestSequence[nInd] = ( *aIter );
}
+ xWriter->writeManifestSequence ( xManOutStream, aManifestSequence );
+
+ sal_Int32 nBufferLength = static_cast < sal_Int32 > ( pBuffer->getPosition() );
+ pBuffer->realloc( nBufferLength );
+
+ // the manifest.xml is never encrypted - so pass an empty reference
+ aZipOut.putNextEntry( *pEntry, NULL );
+ aZipOut.write( pBuffer->getSequence(), 0, nBufferLength );
+ aZipOut.closeEntry();
}
//--------------------------------------------------------