diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2005-02-11 15:56:33 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2005-02-11 15:56:33 +0000 |
commit | 5fe693274d29507e2bd2a9b1a3ee0350e416d00f (patch) | |
tree | 37fc962a58b23bcb8cbbaa71133f23650ce3865d /desktop | |
parent | ba1599a8546b7162a8cab415451b007f513b1fcf (diff) |
INTEGRATION: CWS pyunofixes1 (1.6.32); FILE MERGED
2005/01/05 15:15:46 toconnor 1.6.32.2: #i37468# fix logic error in previous change
Issue number:
Submitted by:
Reviewed by:
2004/12/21 12:46:34 toconnor 1.6.32.1: #i37468# allow deployment of scripts without parcel-descriptor.xml files
Issue number:
Submitted by:
Reviewed by:
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/source/deployment/registry/sfwk/dp_sfwk.cxx | 64 |
1 files changed, 36 insertions, 28 deletions
diff --git a/desktop/source/deployment/registry/sfwk/dp_sfwk.cxx b/desktop/source/deployment/registry/sfwk/dp_sfwk.cxx index a975560a36cc..1b81df3eca6c 100644 --- a/desktop/source/deployment/registry/sfwk/dp_sfwk.cxx +++ b/desktop/source/deployment/registry/sfwk/dp_sfwk.cxx @@ -2,9 +2,9 @@ * * $RCSfile: dp_sfwk.cxx,v $ * - * $Revision: 1.6 $ + * $Revision: 1.7 $ * - * last change: $Author: hr $ $Date: 2004-11-09 14:13:06 $ + * last change: $Author: hr $ $Date: 2005-02-11 16:56:33 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -267,14 +267,13 @@ Reference<deployment::XPackage> BackendImpl::bindPackage_( if (create_ucb_content( &ucbContent, url, xCmdEnv ) && ucbContent.isFolder()) { - // probe for script.xlb: + // probe for parcel-descriptor.xml: if (create_ucb_content( 0, makeURL( url, OUSTR("parcel-descriptor.xml") ), xCmdEnv, false /* no throw */ )) - { + { mediaType = OUSTR("application/vnd.sun.star.framework-script"); - - } + } } if (mediaType.getLength() == 0) throw lang::IllegalArgumentException( @@ -290,31 +289,40 @@ Reference<deployment::XPackage> BackendImpl::bindPackage_( { if (subType.EqualsIgnoreCaseAscii("vnd.sun.star.framework-script")) { + OUString lang = OUString::createFromAscii("Script"); OUString sParcelDescURL = makeURL( url, OUSTR("parcel-descriptor.xml") ); - ::ucb::Content ucb_content( sParcelDescURL, xCmdEnv ); - ParcelDescDocHandler* pHandler = - new ParcelDescDocHandler(); - Reference< xml::sax::XDocumentHandler > xDocHandler = pHandler; - Reference<XComponentContext> xContext( getComponentContext() ); - Reference< xml::sax::XParser > xParser( - xContext->getServiceManager()->createInstanceWithContext( - OUSTR("com.sun.star.xml.sax.Parser"), xContext ), - UNO_QUERY_THROW ); - xParser->setDocumentHandler( xDocHandler ); - xml::sax::InputSource source; - source.aInputStream = ucb_content.openStream(); - source.sSystemId = ucb_content.getURL(); - xParser->parseStream( source ); - OUString lang; - - if ( !pHandler->isParsed() ) + + ::ucb::Content ucb_content; + + if (create_ucb_content( &ucb_content, sParcelDescURL, + xCmdEnv, false /* no throw */ )) { - throw lang::IllegalArgumentException( - StrCannotDetectMediaType::get() + url, - static_cast<OWeakObject *>(this), static_cast<sal_Int16>(-1) ); + ParcelDescDocHandler* pHandler = + new ParcelDescDocHandler(); + Reference< xml::sax::XDocumentHandler > + xDocHandler = pHandler; + + Reference<XComponentContext> + xContext( getComponentContext() ); + + Reference< xml::sax::XParser > xParser( + xContext->getServiceManager()->createInstanceWithContext( + OUSTR("com.sun.star.xml.sax.Parser"), xContext ), + UNO_QUERY_THROW ); + + xParser->setDocumentHandler( xDocHandler ); + xml::sax::InputSource source; + source.aInputStream = ucb_content.openStream(); + source.sSystemId = ucb_content.getURL(); + xParser->parseStream( source ); + + if ( pHandler->isParsed() ) + { + lang = pHandler->getParcelLanguage(); + } } - lang = pHandler->getParcelLanguage(); + OUString sfwkLibType = getResourceString( RID_STR_SFWK_LIB ); // replace %MACRONAME placeholder with language name OUString MACRONAME( OUSTR("%MACROLANG" ) ); @@ -325,7 +333,7 @@ Reference<deployment::XPackage> BackendImpl::bindPackage_( OSL_TRACE(" BackEnd detected lang = %s ", rtl::OUStringToOString( lang, RTL_TEXTENCODING_ASCII_US ).getStr() ); OSL_TRACE(" for url %s", - rtl::OUStringToOString( source.sSystemId, RTL_TEXTENCODING_ASCII_US ).getStr() ); + rtl::OUStringToOString( sParcelDescURL, RTL_TEXTENCODING_ASCII_US ).getStr() ); OSL_TRACE("******************************"); return new PackageImpl( this, url, sfwkLibType, xCmdEnv ); } |