summaryrefslogtreecommitdiff
path: root/cpputools
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2012-12-19 18:32:51 +0100
committerStephan Bergmann <sbergman@redhat.com>2012-12-19 18:36:42 +0100
commit5a1d51139c580dc64578d36dc1b4a31a4e5e0ef8 (patch)
tree22e43962b8e24a549d7a879b49a8594704c68f3c /cpputools
parent9be06943013547b0e0d74bf5c98f3146584ae841 (diff)
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
Diffstat (limited to 'cpputools')
-rw-r--r--cpputools/source/unoexe/unoexe.cxx200
1 files changed, 11 insertions, 189 deletions
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 <stdio.h>
-#include <vector>
#include "sal/main.h"
#include <osl/diagnose.h>
#include <osl/mutex.hxx>
#include <osl/conditn.hxx>
-#include <osl/module.h>
#include <rtl/process.h>
#include <rtl/string.h>
#include <rtl/strbuf.hxx>
#include <rtl/ustrbuf.hxx>
-#include <uno/environment.h>
-#include <uno/mapping.hxx>
-
-#include <cppuhelper/factory.hxx>
#include <cppuhelper/bootstrap.hxx>
-#include <cppuhelper/servicefactory.hxx>
#include <cppuhelper/shlib.hxx>
#include <cppuhelper/implbase1.hxx>
#include <com/sun/star/lang/XMain.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/lang/XComponent.hpp>
+#include <com/sun/star/lang/XSingleComponentFactory.hpp>
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XEventListener.hpp>
#include <com/sun/star/container/XSet.hpp>
#include <com/sun/star/loader/XImplementationLoader.hpp>
-#include <com/sun/star/registry/XSimpleRegistry.hpp>
#include <com/sun/star/registry/XRegistryKey.hpp>
#include <com/sun/star/connection/XAcceptor.hpp>
#include <com/sun/star/connection/XConnection.hpp>
#include <com/sun/star/bridge/XBridgeFactory.hpp>
#include <com/sun/star/bridge/XBridge.hpp>
-#include <osl/process.h>
-#include <osl/thread.h>
-#include <osl/file.hxx>
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]);<protocol>;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. ###########################################################