From 5a1d51139c580dc64578d36dc1b4a31a4e5e0ef8 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Wed, 19 Dec 2012 18:32:51 +0100 Subject: API CHANGE: Remove support for uno executable's -ro/-rw arguments ...and instead require users to specify URE_MORE_SERVICES/TYPES (resp. UNO_SERVICES/TYPES for invocations from within the build) bootstrap variables. This removes usage of deprecated bootstrap_InitialComponentContext from the uno executable's code. Change-Id: I9af626f47a94c3bea1fb0d3c3efbab54f8db9e40 --- cpputools/source/unoexe/unoexe.cxx | 200 ++----------------------------------- 1 file changed, 11 insertions(+), 189 deletions(-) (limited to 'cpputools') diff --git a/cpputools/source/unoexe/unoexe.cxx b/cpputools/source/unoexe/unoexe.cxx index f657c8983fdc..c5bc7bf53ca0 100644 --- a/cpputools/source/unoexe/unoexe.cxx +++ b/cpputools/source/unoexe/unoexe.cxx @@ -18,45 +18,35 @@ */ #include -#include #include "sal/main.h" #include #include #include -#include #include #include #include #include -#include -#include - -#include #include -#include #include #include #include #include #include +#include #include #include #include #include #include -#include #include #include #include #include #include -#include -#include -#include using namespace std; using namespace osl; @@ -77,21 +67,6 @@ using ::rtl::OUStringBuffer; namespace unoexe { -static OUString convertToFileUrl(const OUString& fileName) -{ - OUString uWorkingDir; - if (osl_getProcessWorkingDir(&uWorkingDir.pData) != osl_Process_E_None) { - OSL_ASSERT(false); - } - OUString uUrlFileName; - if (FileBase::getAbsoluteFileURL(uWorkingDir, fileName, uUrlFileName) - != FileBase::E_None) - { - OSL_ASSERT(false); - } - return uUrlFileName; -} - static sal_Bool s_quiet = false; //-------------------------------------------------------------------------------------------------- @@ -114,7 +89,6 @@ static inline void out( const OUString & rText ) static const char arUsingText[] = "\nusing:\n\n" "uno [-c ComponentImplementationName -l LocationUrl | -s ServiceName]\n" -" [-ro ReadOnlyRegistry1] [-ro ReadOnlyRegistry2] ... [-rw ReadWriteRegistry]\n" " [-u uno:(socket[,host=HostName][,port=nnn]|pipe[,name=PipeName]);;Name\n" " [--singleaccept] [--singleinstance]]\n" " [--quiet]\n" @@ -277,67 +251,6 @@ void createInstance( } } //-------------------------------------------------------------------------------------------------- -static Reference< XSimpleRegistry > nestRegistries( - const Reference< XSimpleRegistry > & xReadWrite, - const Reference< XSimpleRegistry > & xReadOnly ) - throw (Exception) -{ - Reference< XSimpleRegistry > xReg( createNestedRegistry() ); - if (! xReg.is()) - { - throw RuntimeException( - OUString( RTL_CONSTASCII_USTRINGPARAM("no nested registry service!" ) ), - Reference< XInterface >() ); - } - - Reference< XInitialization > xInit( xReg, UNO_QUERY ); - if (! xInit.is()) - throw RuntimeException( OUString( RTL_CONSTASCII_USTRINGPARAM("nested registry does not export interface \"com.sun.star.lang.XInitialization\"!" ) ), Reference< XInterface >() ); - - Sequence< Any > aArgs( 2 ); - aArgs[0] <<= xReadWrite; - aArgs[1] <<= xReadOnly; - xInit->initialize( aArgs ); - - return xReg; -} -//-------------------------------------------------------------------------------------------------- -static Reference< XSimpleRegistry > openRegistry( - const OUString & rURL, - sal_Bool bReadOnly, sal_Bool bCreate ) - throw (Exception) -{ - Reference< XSimpleRegistry > xNewReg( createSimpleRegistry() ); - if (! xNewReg.is()) - { - throw RuntimeException( - OUString( RTL_CONSTASCII_USTRINGPARAM("no simple registry service!" ) ), - Reference< XInterface >() ); - } - - try - { - xNewReg->open( convertToFileUrl(rURL), bReadOnly, bCreate ); - if (xNewReg->isValid()) - return xNewReg; - else - { - xNewReg->close(); - out( "\n> warning: cannot open registry " ); - out( rURL ); - } - } - catch (Exception & e) - { - out( "\n> warning: cannot open registry " ); - out( rURL ); - out( ": " ); - out( e.Message ); - } - - return Reference< XSimpleRegistry >(); -} -//-------------------------------------------------------------------------------------------------- static Reference< XInterface > loadComponent( const Reference< XComponentContext > & xContext, const OUString & rImplName, const OUString & rLocation ) @@ -584,17 +497,12 @@ SAL_IMPLEMENT_MAIN() try { OUString aImplName, aLocation, aServiceName, aUnoUrl; - vector< OUString > aReadOnlyRegistries; Sequence< OUString > aParams; sal_Bool bSingleAccept = sal_False; sal_Bool bSingleInstance = sal_False; //#### read command line arguments ######################################################### - bool bOldRegistryMimic = false; - bool bNewRegistryMimic = false; - OUString aReadWriteRegistry; - sal_uInt32 nPos = 0; // read up to arguments while (nPos < nCount) @@ -610,52 +518,16 @@ SAL_IMPLEMENT_MAIN() break; } - if (readOption( &aImplName, "c", &nPos, arg) || - readOption( &aLocation, "l", &nPos, arg) || - readOption( &aServiceName, "s", &nPos, arg) || - readOption( &aUnoUrl, "u", &nPos, arg) || - readOption( &s_quiet, "quiet", &nPos, arg) || - readOption( &bSingleAccept, "singleaccept", &nPos, arg) || - readOption( &bSingleInstance, "singleinstance", &nPos, arg)) - { - continue; - } - OUString aRegistry; - if (readOption( &aRegistry, "ro", &nPos, arg)) - { - aReadOnlyRegistries.push_back( aRegistry ); - bNewRegistryMimic = true; - continue; - } - if (readOption( &aReadWriteRegistry, "rw", &nPos, arg)) - { - bNewRegistryMimic = true; - continue; - } - if (readOption( &aRegistry, "r", &nPos, arg)) - { - aReadOnlyRegistries.push_back( aRegistry ); - aReadWriteRegistry = aRegistry; - out( "\n> warning: DEPRECATED use of option -r, use -ro or -rw!" ); - bOldRegistryMimic = true; - continue; - } - - // else illegal argument - OUStringBuffer buf( 64 ); - buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("unexpected parameter \"") ); - buf.append(arg); - buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("\"!") ); - throw RuntimeException( buf.makeStringAndClear(), Reference< XInterface >() ); - } - - if (bOldRegistryMimic) // last one was set to be read-write - { - aReadOnlyRegistries.pop_back(); - if (bOldRegistryMimic && bNewRegistryMimic) + if (!(readOption( &aImplName, "c", &nPos, arg) || + readOption( &aLocation, "l", &nPos, arg) || + readOption( &aServiceName, "s", &nPos, arg) || + readOption( &aUnoUrl, "u", &nPos, arg) || + readOption( &s_quiet, "quiet", &nPos, arg) || + readOption( &bSingleAccept, "singleaccept", &nPos, arg) || + readOption( &bSingleInstance, "singleinstance", &nPos, arg))) { throw RuntimeException( - OUString( RTL_CONSTASCII_USTRINGPARAM("mixing with DEPRECATED registry options!") ), + "unexpected argument \"" + arg + "\"", Reference< XInterface >() ); } } @@ -689,60 +561,10 @@ SAL_IMPLEMENT_MAIN() sal_uInt32 nOffset = nPos; for ( ; nPos < nCount; ++nPos ) { - if (rtl_getAppCommandArg( nPos, &pParams[nPos -nOffset].pData ) - != osl_Process_E_None) - { - OSL_ASSERT(false); - } + rtl_getAppCommandArg( nPos, &pParams[nPos -nOffset].pData ); } - if ((!aReadOnlyRegistries.empty()) || - aReadWriteRegistry.getLength() > 0) - { - //#### create registry ############################################# - - Reference< XSimpleRegistry > xRegistry; - - // ReadOnly registries - for ( size_t nReg = 0; nReg < aReadOnlyRegistries.size(); ++nReg ) - { -#if OSL_DEBUG_LEVEL > 1 - out( "\n> trying to open ro registry: " ); - out( OUStringToOString( - aReadOnlyRegistries[ nReg ], - RTL_TEXTENCODING_ASCII_US ).getStr() ); -#endif - Reference< XSimpleRegistry > xNewReg( - openRegistry( - aReadOnlyRegistries[ nReg ], sal_True, sal_False ) ); - if (xNewReg.is()) - xRegistry = (xRegistry.is() ? nestRegistries( - xNewReg, xRegistry ) : xNewReg); - } - if (!aReadWriteRegistry.isEmpty()) - { -#if OSL_DEBUG_LEVEL > 1 - out( "\n> trying to open rw registry: " ); - out( OUStringToOString( - aReadWriteRegistry, - RTL_TEXTENCODING_ASCII_US ).getStr() ); -#endif - // ReadWrite registry - Reference< XSimpleRegistry > xNewReg( - openRegistry( aReadWriteRegistry, sal_False, sal_True ) ); - if (xNewReg.is()) - xRegistry = (xRegistry.is() - ? nestRegistries( xNewReg, xRegistry ) - : xNewReg); - } - - OSL_ASSERT( xRegistry.is() ); - xContext = bootstrap_InitialComponentContext( xRegistry ); - } - else // defaulting - { - xContext = defaultBootstrap_InitialComponentContext(); - } + xContext = defaultBootstrap_InitialComponentContext(); //#### accept, instanciate, etc. ########################################################### -- cgit