summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpp/demo/Freeze/backup/Client.cpp7
-rw-r--r--cpp/demo/Ice/MFC/server/HelloServer.cpp9
-rw-r--r--cpp/include/Ice/Initialize.h23
-rw-r--r--cpp/slice/Ice/Communicator.ice37
-rw-r--r--cpp/slice/Ice/Router.ice3
-rw-r--r--cpp/src/Ice/Application.cpp12
-rw-r--r--cpp/src/Ice/BasicStream.cpp16
-rw-r--r--cpp/src/Ice/CommunicatorI.cpp36
-rw-r--r--cpp/src/Ice/CommunicatorI.h11
-rw-r--r--cpp/src/Ice/ConnectionFactory.cpp16
-rw-r--r--cpp/src/Ice/ConnectionI.cpp25
-rw-r--r--cpp/src/Ice/ConnectionMonitor.cpp4
-rw-r--r--cpp/src/Ice/Incoming.cpp20
-rw-r--r--cpp/src/Ice/IncomingAsync.cpp27
-rw-r--r--cpp/src/Ice/Initialize.cpp57
-rw-r--r--cpp/src/Ice/Instance.cpp121
-rw-r--r--cpp/src/Ice/Instance.h15
-rw-r--r--cpp/src/Ice/LocatorInfo.cpp5
-rw-r--r--cpp/src/Ice/ObjectAdapterI.cpp36
-rw-r--r--cpp/src/Ice/OutgoingAsync.cpp15
-rw-r--r--cpp/src/Ice/ProxyFactory.cpp4
-rw-r--r--cpp/src/Ice/Reference.cpp5
-rw-r--r--cpp/src/Ice/ReferenceFactory.cpp27
-rw-r--r--cpp/src/Ice/ServantManager.cpp4
-rw-r--r--cpp/src/Ice/TcpAcceptor.cpp2
-rw-r--r--cpp/src/Ice/TcpConnector.cpp2
-rw-r--r--cpp/src/Ice/TcpTransceiver.cpp4
-rw-r--r--cpp/src/Ice/ThreadPool.cpp47
-rw-r--r--cpp/src/Ice/UdpTransceiver.cpp14
-rw-r--r--cpp/src/IceBox/ServiceManagerI.cpp4
-rw-r--r--cpp/test/Ice/location/Client.cpp7
-rw-r--r--cpp/test/Ice/operations/Twoways.cpp40
-rw-r--r--cpp/test/Ice/operations/TwowaysAMI.cpp61
-rw-r--r--cpp/test/Ice/timeout/AllTests.cpp14
-rw-r--r--cpp/test/IceSSL/configuration/AllTests.cpp179
-rw-r--r--cpp/test/IceSSL/configuration/TestI.cpp7
36 files changed, 397 insertions, 519 deletions
diff --git a/cpp/demo/Freeze/backup/Client.cpp b/cpp/demo/Freeze/backup/Client.cpp
index c4a1b3a243b..5e934032a9e 100644
--- a/cpp/demo/Freeze/backup/Client.cpp
+++ b/cpp/demo/Freeze/backup/Client.cpp
@@ -26,10 +26,11 @@ testFailed(const char* expr, const char* file, unsigned int line)
int
main(int argc, char* argv[])
{
- Ice::PropertiesPtr properties = Ice::createProperties();
- properties->load("config");
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties();
+ initData.properties->load("config");
- Ice::CommunicatorPtr communicator = Ice::initializeWithProperties(argc, argv, properties);
+ Ice::CommunicatorPtr communicator = Ice::initialize(argc, argv, initData);
Freeze::ConnectionPtr connection = Freeze::createConnection(communicator, "backup");
IntLongMap m(connection, "IntLongMap", true);
diff --git a/cpp/demo/Ice/MFC/server/HelloServer.cpp b/cpp/demo/Ice/MFC/server/HelloServer.cpp
index 04e693caac7..55188bd77ef 100644
--- a/cpp/demo/Ice/MFC/server/HelloServer.cpp
+++ b/cpp/demo/Ice/MFC/server/HelloServer.cpp
@@ -51,11 +51,12 @@ BOOL CHelloServerApp::InitInstance()
try
{
int argc = 0;
- Ice::PropertiesPtr properties = Ice::createProperties();
- properties->load("config");
- communicator = Ice::initializeWithProperties(argc, 0, properties);
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties();
+ initData.properties->load("config");
log = new LogI;
- communicator->setLogger(log);
+ initData.logger = log;
+ communicator = Ice::initialize(argc, 0, initData);
adapter = communicator->createObjectAdapter("Hello");
}
catch(const IceUtil::Exception& ex)
diff --git a/cpp/include/Ice/Initialize.h b/cpp/include/Ice/Initialize.h
index b858a28ab74..f76eadb8fce 100644
--- a/cpp/include/Ice/Initialize.h
+++ b/cpp/include/Ice/Initialize.h
@@ -15,6 +15,7 @@
#include <Ice/InstanceF.h>
#include <Ice/LoggerF.h>
#include <Ice/StreamF.h>
+#include <Ice/StatsF.h>
#include <Ice/BuiltinSequences.h>
namespace Ice
@@ -35,11 +36,23 @@ ICE_API PropertiesPtr createProperties();
ICE_API PropertiesPtr createProperties(StringSeq&);
ICE_API PropertiesPtr createProperties(int&, char*[]);
-ICE_API CommunicatorPtr initialize(int&, char*[], Int = ICE_INT_VERSION);
-ICE_API CommunicatorPtr initializeWithProperties(int&, char*[], const PropertiesPtr&, Int = ICE_INT_VERSION);
-ICE_API CommunicatorPtr initializeWithLogger(int&, char*[], const Ice::LoggerPtr&, Int = ICE_INT_VERSION);
-ICE_API CommunicatorPtr initializeWithPropertiesAndLogger(int&, char*[], const PropertiesPtr&,
- const Ice::LoggerPtr&, Int = ICE_INT_VERSION);
+struct InitializationData
+{
+ PropertiesPtr properties;
+ LoggerPtr logger;
+ StatsPtr stats;
+ Context defaultContext;
+};
+
+ICE_API CommunicatorPtr initialize(int&, char*[], InitializationData = InitializationData(),
+ Int = ICE_INT_VERSION);
+ICE_API ICE_DEPRECATED_API CommunicatorPtr initializeWithProperties(int&, char*[], const PropertiesPtr&,
+ Int = ICE_INT_VERSION);
+ICE_API ICE_DEPRECATED_API CommunicatorPtr initializeWithLogger(int&, char*[], const Ice::LoggerPtr&,
+ Int = ICE_INT_VERSION);
+ICE_API ICE_DEPRECATED_API CommunicatorPtr initializeWithPropertiesAndLogger(int&, char*[], const PropertiesPtr&,
+ const Ice::LoggerPtr&,
+ Int = ICE_INT_VERSION);
ICE_API PropertiesPtr getDefaultProperties();
ICE_API PropertiesPtr getDefaultProperties(StringSeq&);
diff --git a/cpp/slice/Ice/Communicator.ice b/cpp/slice/Ice/Communicator.ice
index b57af4df128..d5dc30e26ea 100644
--- a/cpp/slice/Ice/Communicator.ice
+++ b/cpp/slice/Ice/Communicator.ice
@@ -246,18 +246,6 @@ local interface Communicator
/**
*
- * Set a default context on this communicator. Once set,
- * all proxies that do not explicitly override the context
- * on a per-proxy or per-invocation basis send this context
- * with every invocation. To clear a context, call
- * [setContext] with an empty context.
- *
- * @param ctx The default context to be set.
- **/
- void setDefaultContext(Context ctx);
-
- /**
- *
* Get the currently-set default context.
*
* @return The currently established default context. If no
@@ -292,18 +280,6 @@ local interface Communicator
/**
*
- * Set the logger for this communicator.
- *
- * @param log The logger to use for this communicator.
- *
- * @see getLogger
- * @see Logger
- *
- **/
- void setLogger(Logger log);
-
- /**
- *
* Get the statistics callback object for this communicator.
*
* @return This communicator's statistics callback object.
@@ -316,19 +292,6 @@ local interface Communicator
/**
*
- * Set the statistics callback object for this communicator.
- *
- * @param st The statistics callback object to use for this
- * communicator.
- *
- * @see getStats
- * @see Stats
- *
- **/
- void setStats(Stats st);
-
- /**
- *
* Get the default router this communicator.
*
* @return The default router for this communicator.
diff --git a/cpp/slice/Ice/Router.ice b/cpp/slice/Ice/Router.ice
index 05593c586a6..7fcdf329e4d 100644
--- a/cpp/slice/Ice/Router.ice
+++ b/cpp/slice/Ice/Router.ice
@@ -59,7 +59,8 @@ interface Router
* @param proxy The proxy to add.
*
**/
- ["deprecate"] idempotent void addProxy(Object* proxy);
+ ["deprecate:This method has been deprecated, use addProxies instead."]
+ idempotent void addProxy(Object* proxy);
/**
*
diff --git a/cpp/src/Ice/Application.cpp b/cpp/src/Ice/Application.cpp
index 074f9f690bc..a46ae1412e9 100644
--- a/cpp/src/Ice/Application.cpp
+++ b/cpp/src/Ice/Application.cpp
@@ -249,16 +249,14 @@ Ice::Application::main(int argc, char* argv[], const char* configFile, const Log
_appName = argv[0];
+ InitializationData initData;
+ initData.logger = logger;
if(configFile)
{
- PropertiesPtr properties = createProperties();
- properties->load(configFile);
- _communicator = initializeWithPropertiesAndLogger(argc, argv, properties, logger);
- }
- else
- {
- _communicator = initializeWithLogger(argc, argv, logger);
+ initData.properties = createProperties();
+ initData.properties->load(configFile);
}
+ _communicator = initialize(argc, argv, initData);
_destroyed = false;
//
diff --git a/cpp/src/Ice/BasicStream.cpp b/cpp/src/Ice/BasicStream.cpp
index cbbc015b925..bcef19cc5ee 100644
--- a/cpp/src/Ice/BasicStream.cpp
+++ b/cpp/src/Ice/BasicStream.cpp
@@ -1570,7 +1570,7 @@ IceInternal::BasicStream::read(PatchFunc patchFunc, void* patchAddr)
}
if(_traceSlicing > 0)
{
- traceSlicing("class", id, _slicingCat, _instance->logger());
+ traceSlicing("class", id, _slicingCat, _instance->initializationData().logger);
}
skipSlice(); // Slice off this derived part -- we don't understand it.
readTypeId(id); // Read next id for next iteration.
@@ -1670,7 +1670,7 @@ IceInternal::BasicStream::throwException()
}
if(_traceSlicing > 0)
{
- traceSlicing("exception", id, _slicingCat, _instance->logger());
+ traceSlicing("exception", id, _slicingCat, _instance->initializationData().logger);
}
skipSlice(); // Slice off what we don't understand.
read(id); // Read type id for next slice.
@@ -1754,17 +1754,17 @@ IceInternal::BasicStream::readPendingObjects()
}
catch(const Ice::Exception& ex)
{
- Ice::Warning out(_instance->logger());
+ Ice::Warning out(_instance->initializationData().logger);
out << "Ice::Exception raised by ice_postUnmarshal:\n" << ex;
}
catch(const std::exception& ex)
{
- Ice::Warning out(_instance->logger());
+ Ice::Warning out(_instance->initializationData().logger);
out << "std::exception raised by ice_postUnmarshal:\n" << ex.what();
}
catch(...)
{
- Ice::Warning out(_instance->logger());
+ Ice::Warning out(_instance->initializationData().logger);
out << "unknown exception raised by ice_postUnmarshal";
}
}
@@ -1816,17 +1816,17 @@ IceInternal::BasicStream::writeInstance(const ObjectPtr& v, Int index)
}
catch(const Ice::Exception& ex)
{
- Ice::Warning out(_instance->logger());
+ Ice::Warning out(_instance->initializationData().logger);
out << "Ice::Exception raised by ice_preMarshal:\n" << ex;
}
catch(const std::exception& ex)
{
- Ice::Warning out(_instance->logger());
+ Ice::Warning out(_instance->initializationData().logger);
out << "std::exception raised by ice_preMarshal:\n" << ex.what();
}
catch(...)
{
- Ice::Warning out(_instance->logger());
+ Ice::Warning out(_instance->initializationData().logger);
out << "unknown exception raised by ice_preMarshal";
}
v->__write(this);
diff --git a/cpp/src/Ice/CommunicatorI.cpp b/cpp/src/Ice/CommunicatorI.cpp
index 6b2562c4b1b..1d671c55c94 100644
--- a/cpp/src/Ice/CommunicatorI.cpp
+++ b/cpp/src/Ice/CommunicatorI.cpp
@@ -164,31 +164,19 @@ Ice::CommunicatorI::findObjectFactory(const string& id) const
PropertiesPtr
Ice::CommunicatorI::getProperties() const
{
- return _instance->properties();
+ return _instance->initializationData().properties;
}
LoggerPtr
Ice::CommunicatorI::getLogger() const
{
- return _instance->logger();
-}
-
-void
-Ice::CommunicatorI::setLogger(const LoggerPtr& logger)
-{
- _instance->logger(logger);
+ return _instance->initializationData().logger;
}
StatsPtr
Ice::CommunicatorI::getStats() const
{
- return _instance->stats();
-}
-
-void
-Ice::CommunicatorI::setStats(const StatsPtr& stats)
-{
- _instance->stats(stats);
+ return _instance->initializationData().stats;
}
RouterPrx
@@ -215,16 +203,10 @@ Ice::CommunicatorI::setDefaultLocator(const LocatorPrx& locator)
_instance->referenceFactory()->setDefaultLocator(locator);
}
-void
-Ice::CommunicatorI::setDefaultContext(const Context& ctx)
-{
- _instance->setDefaultContext(ctx);
-}
-
Ice::Context
Ice::CommunicatorI::getDefaultContext() const
{
- return _instance->getDefaultContext();
+ return _instance->initializationData().defaultContext;
}
PluginManagerPtr
@@ -239,12 +221,12 @@ Ice::CommunicatorI::flushBatchRequests()
_instance->flushBatchRequests();
}
-Ice::CommunicatorI::CommunicatorI(const PropertiesPtr& properties, const LoggerPtr& logger)
+Ice::CommunicatorI::CommunicatorI(const InitializationData& initData)
{
__setNoDelete(true);
try
{
- const_cast<InstancePtr&>(_instance) = new Instance(this, properties, logger);
+ const_cast<InstancePtr&>(_instance) = new Instance(this, initData);
//
// Keep a reference to the dynamic library list to ensure
@@ -274,8 +256,8 @@ Ice::CommunicatorI::CommunicatorI(const PropertiesPtr& properties, const LoggerP
{
gcTraceLevel = _instance->traceLevels()->gc;
gcTraceCat = _instance->traceLevels()->gcCat;
- gcLogger = _instance->logger();
- gcInterval = properties->getPropertyAsInt("Ice.GC.Interval");
+ gcLogger = _instance->initializationData().logger;
+ gcInterval = initData.properties->getPropertyAsInt("Ice.GC.Interval");
gcOnce = false;
}
if(++communicatorCount == 1)
@@ -293,7 +275,7 @@ Ice::CommunicatorI::~CommunicatorI()
{
if(!_instance->destroyed())
{
- Warning out(_instance->logger());
+ Warning out(_instance->initializationData().logger);
out << "Ice::Communicator::destroy() has not been called";
}
}
diff --git a/cpp/src/Ice/CommunicatorI.h b/cpp/src/Ice/CommunicatorI.h
index 6dc8d1404f3..d7f8ea289c9 100644
--- a/cpp/src/Ice/CommunicatorI.h
+++ b/cpp/src/Ice/CommunicatorI.h
@@ -38,16 +38,10 @@ public:
virtual void removeObjectFactory(const std::string&);
virtual ObjectFactoryPtr findObjectFactory(const std::string&) const;
- virtual void setDefaultContext(const Context&);
virtual Context getDefaultContext() const;
-
virtual PropertiesPtr getProperties() const;
-
virtual LoggerPtr getLogger() const;
- virtual void setLogger(const LoggerPtr&);
-
virtual StatsPtr getStats() const;
- virtual void setStats(const StatsPtr&);
virtual RouterPrx getDefaultRouter() const;
virtual void setDefaultRouter(const RouterPrx&);
@@ -61,7 +55,7 @@ public:
private:
- CommunicatorI(const PropertiesPtr&, const LoggerPtr&);
+ CommunicatorI(const InitializationData&);
virtual ~CommunicatorI();
//
@@ -70,8 +64,7 @@ private:
//
void finishSetup(int&, char*[]);
- friend ICE_API CommunicatorPtr initializeWithPropertiesAndLogger(int&, char*[], const PropertiesPtr&,
- const LoggerPtr&, Int);
+ friend ICE_API CommunicatorPtr initialize(int&, char*[], InitializationData, Int);
friend ICE_API ::IceInternal::InstancePtr IceInternal::getInstance(const ::Ice::CommunicatorPtr&);
const ::IceInternal::InstancePtr _instance;
diff --git a/cpp/src/Ice/ConnectionFactory.cpp b/cpp/src/Ice/ConnectionFactory.cpp
index 6581ee98beb..e7c0df8aedf 100644
--- a/cpp/src/Ice/ConnectionFactory.cpp
+++ b/cpp/src/Ice/ConnectionFactory.cpp
@@ -315,7 +315,7 @@ IceInternal::OutgoingConnectionFactory::create(const vector<EndpointIPtr>& endpt
TraceLevelsPtr traceLevels = _instance->traceLevels();
if(traceLevels->retry >= 2)
{
- Trace out(_instance->logger(), traceLevels->retryCat);
+ Trace out(_instance->initializationData().logger, traceLevels->retryCat);
out << "connection to endpoint failed";
if(moreEndpts || q + 1 != endpoints.end())
@@ -739,7 +739,7 @@ IceInternal::IncomingConnectionFactory::message(BasicStream&, const ThreadPoolPt
// Warn about other Ice local exceptions.
if(_warn)
{
- Warning out(_instance->logger());
+ Warning out(_instance->initializationData().logger);
out << "connection exception:\n" << ex << '\n' << _acceptor->toString();
}
return;
@@ -827,7 +827,7 @@ IceInternal::IncomingConnectionFactory::IncomingConnectionFactory(const Instance
_adapter(adapter),
_registeredWithPool(false),
_finishedCount(0),
- _warn(_instance->properties()->getPropertyAsInt("Ice.Warn.Connections") > 0),
+ _warn(_instance->initializationData().properties->getPropertyAsInt("Ice.Warn.Connections") > 0),
_state(StateHolding)
{
if(_instance->defaultsAndOverrides()->overrideTimeout)
@@ -890,7 +890,7 @@ IceInternal::IncomingConnectionFactory::IncomingConnectionFactory(const Instance
catch(const IceUtil::Exception& ex)
{
{
- Error out(_instance->logger());
+ Error out(_instance->initializationData().logger);
out << "cannot create thread for incoming connection factory:\n" << ex;
}
@@ -1056,7 +1056,7 @@ IceInternal::IncomingConnectionFactory::run()
// Warn about other Ice local exceptions.
if(_warn)
{
- Warning out(_instance->logger());
+ Warning out(_instance->initializationData().logger);
out << "connection exception:\n" << ex << '\n' << _acceptor->toString();
}
}
@@ -1156,17 +1156,17 @@ IceInternal::IncomingConnectionFactory::ThreadPerIncomingConnectionFactory::run(
}
catch(const Exception& ex)
{
- Error out(_factory->_instance->logger());
+ Error out(_factory->_instance->initializationData().logger);
out << "exception in thread per incoming connection factory:\n" << _factory->toString() << ex;
}
catch(const std::exception& ex)
{
- Error out(_factory->_instance->logger());
+ Error out(_factory->_instance->initializationData().logger);
out << "std::exception in thread per incoming connection factory:\n" << _factory->toString() << ex.what();
}
catch(...)
{
- Error out(_factory->_instance->logger());
+ Error out(_factory->_instance->initializationData().logger);
out << "unknown exception in thread per incoming connection factory:\n" << _factory->toString();
}
diff --git a/cpp/src/Ice/ConnectionI.cpp b/cpp/src/Ice/ConnectionI.cpp
index de3d9872570..e8c80f3577a 100644
--- a/cpp/src/Ice/ConnectionI.cpp
+++ b/cpp/src/Ice/ConnectionI.cpp
@@ -1215,8 +1215,8 @@ Ice::ConnectionI::createProxy(const Identity& ident) const
//
vector<ConnectionIPtr> connections;
connections.push_back(const_cast<ConnectionI*>(this));
- ReferencePtr ref = _instance->referenceFactory()->create(ident, _instance->getDefaultContext(), "",
- Reference::ModeTwoway, connections);
+ ReferencePtr ref = _instance->referenceFactory()->create(ident, _instance->initializationData().defaultContext,
+ "", Reference::ModeTwoway, connections);
return _instance->proxyFactory()->referenceToProxy(ref);
}
@@ -1401,11 +1401,11 @@ Ice::ConnectionI::ConnectionI(const InstancePtr& instance,
_type(transceiver->type()),
_endpoint(endpoint),
_adapter(adapter),
- _logger(_instance->logger()), // Cached for better performance.
+ _logger(_instance->initializationData().logger), // Cached for better performance.
_traceLevels(_instance->traceLevels()), // Cached for better performance.
_registeredWithPool(false),
_finishedCount(0),
- _warn(_instance->properties()->getPropertyAsInt("Ice.Warn.Connections") > 0),
+ _warn(_instance->initializationData().properties->getPropertyAsInt("Ice.Warn.Connections") > 0),
_acmTimeout(0),
_compressionLevel(1),
_nextRequestId(1),
@@ -1437,7 +1437,8 @@ Ice::ConnectionI::ConnectionI(const InstancePtr& instance,
}
int& compressionLevel = const_cast<int&>(_compressionLevel);
- compressionLevel = _instance->properties()->getPropertyAsIntWithDefault("Ice.Compression.Level", 1);
+ compressionLevel =
+ _instance->initializationData().properties->getPropertyAsIntWithDefault("Ice.Compression.Level", 1);
if(compressionLevel < 1)
{
compressionLevel = 1;
@@ -2176,7 +2177,7 @@ Ice::ConnectionI::parseMessage(BasicStream& stream, Int& invokeNum, Int& request
{
if(_warn)
{
- Warning out(_instance->logger());
+ Warning out(_logger);
out << "datagram connection exception:\n" << ex << '\n' << _desc;
}
}
@@ -2319,7 +2320,7 @@ Ice::ConnectionI::run()
activate();
}
- const bool warnUdp = _instance->properties()->getPropertyAsInt("Ice.Warn.Datagrams") > 0;
+ const bool warnUdp = _instance->initializationData().properties->getPropertyAsInt("Ice.Warn.Datagrams") > 0;
bool closed = false;
@@ -2397,7 +2398,7 @@ Ice::ConnectionI::run()
{
if(warnUdp)
{
- Warning out(_instance->logger());
+ Warning out(_logger);
out << "DatagramLimitException: maximum size of " << pos << " exceeded";
}
throw DatagramLimitException(__FILE__, __LINE__);
@@ -2423,7 +2424,7 @@ Ice::ConnectionI::run()
{
if(_warn)
{
- Warning out(_instance->logger());
+ Warning out(_logger);
out << "datagram connection exception:\n" << ex << '\n' << _desc;
}
continue;
@@ -2549,17 +2550,17 @@ Ice::ConnectionI::ThreadPerConnection::run()
}
catch(const Exception& ex)
{
- Error out(_connection->_instance->logger());
+ Error out(_connection->_logger);
out << "exception in thread per connection:\n" << _connection->toString() << ex;
}
catch(const std::exception& ex)
{
- Error out(_connection->_instance->logger());
+ Error out(_connection->_logger);
out << "std::exception in thread per connection:\n" << _connection->toString() << ex.what();
}
catch(...)
{
- Error out(_connection->_instance->logger());
+ Error out(_connection->_logger);
out << "unknown exception in thread per connection:\n" << _connection->toString();
}
diff --git a/cpp/src/Ice/ConnectionMonitor.cpp b/cpp/src/Ice/ConnectionMonitor.cpp
index 0ac1a4d4768..0dbf29c1fcd 100644
--- a/cpp/src/Ice/ConnectionMonitor.cpp
+++ b/cpp/src/Ice/ConnectionMonitor.cpp
@@ -104,7 +104,7 @@ IceInternal::ConnectionMonitor::run()
return;
}
- Error out(_instance->logger());
+ Error out(_instance->initializationData().logger);
out << "exception in connection monitor:\n" << ex;
}
catch(...)
@@ -115,7 +115,7 @@ IceInternal::ConnectionMonitor::run()
return;
}
- Error out(_instance->logger());
+ Error out(_instance->initializationData().logger);
out << "unknown exception in connection monitor";
}
}
diff --git a/cpp/src/Ice/Incoming.cpp b/cpp/src/Ice/Incoming.cpp
index 60ca8228aa8..3d6cb1181c5 100644
--- a/cpp/src/Ice/Incoming.cpp
+++ b/cpp/src/Ice/Incoming.cpp
@@ -62,7 +62,7 @@ IceInternal::IncomingBase::__warning(const Exception& ex) const
void
IceInternal::IncomingBase::__warning(const string& msg) const
{
- Warning out(_os.instance()->logger());
+ Warning out(_os.instance()->initializationData().logger);
out << "dispatch exception: " << msg;
out << "\nidentity: " << _current.id;
@@ -208,7 +208,7 @@ IceInternal::Incoming::invoke(const ServantManagerPtr& servantManager)
ex.operation = _current.operation;
}
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 1)
+ if(_os.instance()->initializationData().properties->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 1)
{
__warning(ex);
}
@@ -263,7 +263,7 @@ IceInternal::Incoming::invoke(const ServantManagerPtr& servantManager)
{
_is.endReadEncaps();
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ if(_os.instance()->initializationData().properties->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
{
__warning(ex);
}
@@ -287,7 +287,7 @@ IceInternal::Incoming::invoke(const ServantManagerPtr& servantManager)
{
_is.endReadEncaps();
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ if(_os.instance()->initializationData().properties->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
{
__warning(ex);
}
@@ -311,7 +311,7 @@ IceInternal::Incoming::invoke(const ServantManagerPtr& servantManager)
{
_is.endReadEncaps();
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ if(_os.instance()->initializationData().properties->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
{
__warning(ex);
}
@@ -335,7 +335,7 @@ IceInternal::Incoming::invoke(const ServantManagerPtr& servantManager)
{
_is.endReadEncaps();
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ if(_os.instance()->initializationData().properties->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
{
__warning(ex);
}
@@ -361,7 +361,7 @@ IceInternal::Incoming::invoke(const ServantManagerPtr& servantManager)
{
_is.endReadEncaps();
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ if(_os.instance()->initializationData().properties->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
{
__warning(ex);
}
@@ -387,7 +387,7 @@ IceInternal::Incoming::invoke(const ServantManagerPtr& servantManager)
{
_is.endReadEncaps();
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ if(_os.instance()->initializationData().properties->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
{
__warning(ex);
}
@@ -413,7 +413,7 @@ IceInternal::Incoming::invoke(const ServantManagerPtr& servantManager)
{
_is.endReadEncaps();
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ if(_os.instance()->initializationData().properties->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
{
__warning(string("std::exception: ") + ex.what());
}
@@ -439,7 +439,7 @@ IceInternal::Incoming::invoke(const ServantManagerPtr& servantManager)
{
_is.endReadEncaps();
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ if(_os.instance()->initializationData().properties->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
{
__warning("unknown c++ exception");
}
diff --git a/cpp/src/Ice/IncomingAsync.cpp b/cpp/src/Ice/IncomingAsync.cpp
index 1874e71bd57..8f609e521ee 100644
--- a/cpp/src/Ice/IncomingAsync.cpp
+++ b/cpp/src/Ice/IncomingAsync.cpp
@@ -115,7 +115,8 @@ IceInternal::IncomingAsync::__exception(const Exception& exc)
ex.operation = _current.operation;
}
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 1)
+ if(_os.instance()->initializationData().properties->
+ getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 1)
{
__warning(ex);
}
@@ -166,7 +167,8 @@ IceInternal::IncomingAsync::__exception(const Exception& exc)
}
catch(const UnknownLocalException& ex)
{
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ if(_os.instance()->initializationData().properties->
+ getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
{
__warning(ex);
}
@@ -186,7 +188,8 @@ IceInternal::IncomingAsync::__exception(const Exception& exc)
}
catch(const UnknownUserException& ex)
{
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ if(_os.instance()->initializationData().properties->
+ getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
{
__warning(ex);
}
@@ -206,7 +209,8 @@ IceInternal::IncomingAsync::__exception(const Exception& exc)
}
catch(const UnknownException& ex)
{
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ if(_os.instance()->initializationData().properties->
+ getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
{
__warning(ex);
}
@@ -226,7 +230,8 @@ IceInternal::IncomingAsync::__exception(const Exception& exc)
}
catch(const LocalException& ex)
{
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ if(_os.instance()->initializationData().properties->
+ getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
{
__warning(ex);
}
@@ -248,7 +253,8 @@ IceInternal::IncomingAsync::__exception(const Exception& exc)
}
catch(const UserException& ex)
{
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ if(_os.instance()->initializationData().properties->
+ getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
{
__warning(ex);
}
@@ -270,7 +276,8 @@ IceInternal::IncomingAsync::__exception(const Exception& exc)
}
catch(const Exception& ex)
{
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ if(_os.instance()->initializationData().properties->
+ getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
{
__warning(ex);
}
@@ -314,7 +321,8 @@ IceInternal::IncomingAsync::__exception(const std::exception& ex)
{
try
{
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ if(_os.instance()->initializationData().properties->
+ getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
{
__warning(string("std::exception: ") + ex.what());
}
@@ -357,7 +365,8 @@ IceInternal::IncomingAsync::__exception()
{
try
{
- if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ if(_os.instance()->initializationData().properties->
+ getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
{
__warning("unknown c++ exception");
}
diff --git a/cpp/src/Ice/Initialize.cpp b/cpp/src/Ice/Initialize.cpp
index bbe582845ca..b8bd4946e72 100644
--- a/cpp/src/Ice/Initialize.cpp
+++ b/cpp/src/Ice/Initialize.cpp
@@ -148,28 +148,7 @@ Ice::getDefaultProperties(int& argc, char* argv[])
}
CommunicatorPtr
-Ice::initialize(int& argc, char* argv[], Int version)
-{
- PropertiesPtr properties = getDefaultProperties(argc, argv);
- return initializeWithPropertiesAndLogger(argc, argv, properties, 0, version);
-}
-
-CommunicatorPtr
-Ice::initializeWithProperties(int& argc, char* argv[], const PropertiesPtr& properties, Int version)
-{
- return initializeWithPropertiesAndLogger(argc, argv, properties, 0, version);
-}
-
-CommunicatorPtr
-Ice::initializeWithLogger(int& argc, char* argv[], const LoggerPtr& logger, Int version)
-{
- PropertiesPtr properties = getDefaultProperties(argc, argv);
- return initializeWithPropertiesAndLogger(argc, argv, properties, logger, version);
-}
-
-CommunicatorPtr
-Ice::initializeWithPropertiesAndLogger(int& argc, char* argv[], const PropertiesPtr& properties,
- const LoggerPtr& logger, Int version)
+Ice::initialize(int& argc, char* argv[], InitializationData initData, Int version)
{
#ifndef ICE_IGNORE_VERSION
//
@@ -189,16 +168,46 @@ Ice::initializeWithPropertiesAndLogger(int& argc, char* argv[], const Properties
}
#endif
+ if(initData.properties == 0)
+ {
+ initData.properties = getDefaultProperties(argc, argv);
+ }
StringSeq args = argsToStringSeq(argc, argv);
- args = properties->parseIceCommandLineOptions(args);
+ args = initData.properties->parseIceCommandLineOptions(args);
stringSeqToArgs(args, argc, argv);
- CommunicatorI* communicatorI = new CommunicatorI(properties, logger);
+ CommunicatorI* communicatorI = new CommunicatorI(initData);
CommunicatorPtr result = communicatorI; // For exception safety.
communicatorI->finishSetup(argc, argv);
return result;
}
+CommunicatorPtr
+Ice::initializeWithProperties(int& argc, char* argv[], const PropertiesPtr& properties, Int version)
+{
+ InitializationData initData;
+ initData.properties = properties;
+ return initialize(argc, argv, initData, version);
+}
+
+CommunicatorPtr
+Ice::initializeWithLogger(int& argc, char* argv[], const LoggerPtr& logger, Int version)
+{
+ InitializationData initData;
+ initData.logger = logger;
+ return initialize(argc, argv, initData, version);
+}
+
+CommunicatorPtr
+Ice::initializeWithPropertiesAndLogger(int& argc, char* argv[], const PropertiesPtr& properties,
+ const LoggerPtr& logger, Int version)
+{
+ InitializationData initData;
+ initData.properties = properties;
+ initData.logger = logger;
+ return initialize(argc, argv, initData, version);
+}
+
InputStreamPtr
Ice::createInputStream(const CommunicatorPtr& communicator, const vector<Byte>& bytes)
{
diff --git a/cpp/src/Ice/Instance.cpp b/cpp/src/Ice/Instance.cpp
index 2860ba27f50..d6f989597dd 100644
--- a/cpp/src/Ice/Instance.cpp
+++ b/cpp/src/Ice/Instance.cpp
@@ -76,67 +76,6 @@ IceInternal::Instance::destroyed() const
return _state == StateDestroyed;
}
-PropertiesPtr
-IceInternal::Instance::properties() const
-{
- //
- // No check for destruction. It must be possible to access the
- // properties after destruction.
- //
- // No mutex lock, immutable.
- //
- return _properties;
-}
-
-LoggerPtr
-IceInternal::Instance::logger() const
-{
- //
- // No check for destruction. It must be possible to access the
- // logger after destruction.
- //
- IceUtil::RecMutex::Lock sync(*this);
- return _logger;
-}
-
-void
-IceInternal::Instance::logger(const LoggerPtr& logger)
-{
- //
- // No check for destruction. It must be possible to set the logger
- // after destruction (needed by logger plugins for example to
- // unset the logger).
- //
- IceUtil::RecMutex::Lock sync(*this);
- _logger = logger;
-}
-
-StatsPtr
-IceInternal::Instance::stats() const
-{
- IceUtil::RecMutex::Lock sync(*this);
-
- if(_state == StateDestroyed)
- {
- throw CommunicatorDestroyedException(__FILE__, __LINE__);
- }
-
- return _stats;
-}
-
-void
-IceInternal::Instance::stats(const StatsPtr& stats)
-{
- IceUtil::RecMutex::Lock sync(*this);
-
- if(_state == StateDestroyed)
- {
- throw CommunicatorDestroyedException(__FILE__, __LINE__);
- }
-
- _stats = stats;
-}
-
TraceLevelsPtr
IceInternal::Instance::traceLevels() const
{
@@ -285,7 +224,7 @@ IceInternal::Instance::serverThreadPool()
if(!_serverThreadPool) // Lazy initialization.
{
- int timeout = _properties->getPropertyAsInt("Ice.ServerIdleTime");
+ int timeout = _initData.properties->getPropertyAsInt("Ice.ServerIdleTime");
_serverThreadPool = new ThreadPool(this, "Ice.ThreadPool.Server", timeout);
}
@@ -381,6 +320,7 @@ IceInternal::Instance::flushBatchRequests()
adapterFactory->flushBatchRequests();
}
+/*
void
IceInternal::Instance::setDefaultContext(const Context& ctx)
{
@@ -406,13 +346,12 @@ IceInternal::Instance::getDefaultContext() const
return _defaultContext;
}
+*/
-IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const PropertiesPtr& properties,
- const LoggerPtr& logger) :
+IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const InitializationData& initData) :
_state(StateActive),
- _properties(properties),
- _logger(logger),
+ _initData(initData),
_messageSizeMax(0),
_clientACM(0),
_serverACM(0),
@@ -431,8 +370,8 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Prope
//
// StdOut and StdErr redirection
//
- string stdOutFilename = _properties->getProperty("Ice.StdOut");
- string stdErrFilename = _properties->getProperty("Ice.StdErr");
+ string stdOutFilename = _initData.properties->getProperty("Ice.StdOut");
+ string stdErrFilename = _initData.properties->getProperty("Ice.StdErr");
if(stdOutFilename != "")
{
@@ -458,13 +397,13 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Prope
}
}
- if(_properties->getPropertyAsInt("Ice.NullHandleAbort") > 0)
+ if(_initData.properties->getPropertyAsInt("Ice.NullHandleAbort") > 0)
{
IceUtil::nullHandleAbort = true;
}
#ifndef _WIN32
- string newUser = _properties->getProperty("Ice.ChangeUser");
+ string newUser = _initData.properties->getProperty("Ice.ChangeUser");
if(!newUser.empty())
{
struct passwd* pw = getpwnam(newUser.c_str());
@@ -514,9 +453,9 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Prope
action.sa_flags = 0;
sigaction(SIGPIPE, &action, 0);
- if(_properties->getPropertyAsInt("Ice.UseSyslog") > 0)
+ if(_initData.properties->getPropertyAsInt("Ice.UseSyslog") > 0)
{
- identForOpenlog = _properties->getProperty("Ice.ProgramName");
+ identForOpenlog = _initData.properties->getProperty("Ice.ProgramName");
if(identForOpenlog.empty())
{
identForOpenlog = "<Unknown Ice Program>";
@@ -529,40 +468,38 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Prope
sync.release();
- if(!_logger)
+ if(!_initData.logger)
{
#ifdef _WIN32
- if(_properties->getPropertyAsInt("Ice.UseEventLog") > 0)
+ if(_initData.properties->getPropertyAsInt("Ice.UseEventLog") > 0)
{
- _logger = new EventLoggerI(_properties->getProperty("Ice.ProgramName"));
+ _initData.logger = new EventLoggerI(_initData.properties->getProperty("Ice.ProgramName"));
}
else
{
- _logger = new LoggerI(_properties->getProperty("Ice.ProgramName"),
- _properties->getPropertyAsInt("Ice.Logger.Timestamp") > 0);
+ _initData.logger = new LoggerI(_initData.properties->getProperty("Ice.ProgramName"),
+ _initData.properties->getPropertyAsInt("Ice.Logger.Timestamp") > 0);
}
#else
- if(_properties->getPropertyAsInt("Ice.UseSyslog") > 0)
+ if(_initData.properties->getPropertyAsInt("Ice.UseSyslog") > 0)
{
- _logger = new SysLoggerI;
+ _initData.logger = new SysLoggerI;
}
else
{
- _logger = new LoggerI(_properties->getProperty("Ice.ProgramName"),
- _properties->getPropertyAsInt("Ice.Logger.Timestamp") > 0);
+ _initData.logger = new LoggerI(_initData.properties->getProperty("Ice.ProgramName"),
+ _initData.properties->getPropertyAsInt("Ice.Logger.Timestamp") > 0);
}
#endif
}
- _stats = 0; // There is no default statistics callback object.
-
- const_cast<TraceLevelsPtr&>(_traceLevels) = new TraceLevels(_properties);
+ const_cast<TraceLevelsPtr&>(_traceLevels) = new TraceLevels(_initData.properties);
- const_cast<DefaultsAndOverridesPtr&>(_defaultsAndOverrides) = new DefaultsAndOverrides(_properties);
+ const_cast<DefaultsAndOverridesPtr&>(_defaultsAndOverrides) = new DefaultsAndOverrides(_initData.properties);
{
static const int defaultMessageSizeMax = 1024;
- Int num = _properties->getPropertyAsIntWithDefault("Ice.MessageSizeMax", defaultMessageSizeMax);
+ Int num = _initData.properties->getPropertyAsIntWithDefault("Ice.MessageSizeMax", defaultMessageSizeMax);
if(num < 1)
{
const_cast<size_t&>(_messageSizeMax) = defaultMessageSizeMax * 1024; // Ignore stupid values.
@@ -581,13 +518,13 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Prope
//
// Client ACM enabled by default. Server ACM disabled by default.
//
- const_cast<Int&>(_clientACM) = _properties->getPropertyAsIntWithDefault("Ice.ACM.Client", 60);
- const_cast<Int&>(_serverACM) = _properties->getPropertyAsInt("Ice.ACM.Server");
+ const_cast<Int&>(_clientACM) = _initData.properties->getPropertyAsIntWithDefault("Ice.ACM.Client", 60);
+ const_cast<Int&>(_serverACM) = _initData.properties->getPropertyAsInt("Ice.ACM.Server");
- const_cast<bool&>(_threadPerConnection) = _properties->getPropertyAsInt("Ice.ThreadPerConnection") > 0;
+ const_cast<bool&>(_threadPerConnection) = _initData.properties->getPropertyAsInt("Ice.ThreadPerConnection") > 0;
{
- Int stackSize = _properties->getPropertyAsInt("Ice.ThreadPerConnection.StackSize");
+ Int stackSize = _initData.properties->getPropertyAsInt("Ice.ThreadPerConnection.StackSize");
if(stackSize < 0)
{
stackSize = 0;
@@ -704,7 +641,7 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[])
// Show process id if requested (but only once).
//
bool printProcessId = false;
- if(!printProcessIdDone && _properties->getPropertyAsInt("Ice.PrintProcessId") > 0)
+ if(!printProcessIdDone && _initData.properties->getPropertyAsInt("Ice.PrintProcessId") > 0)
{
//
// Safe double-check locking (no dependent variable!)
@@ -743,7 +680,7 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[])
{
interval = _serverACM;
}
- interval = _properties->getPropertyAsIntWithDefault("Ice.MonitorConnections", interval);
+ interval = _initData.properties->getPropertyAsIntWithDefault("Ice.MonitorConnections", interval);
if(interval > 0)
{
_connectionMonitor = new ConnectionMonitor(this, interval);
diff --git a/cpp/src/Ice/Instance.h b/cpp/src/Ice/Instance.h
index 1e8c5d77e96..ac04a172848 100644
--- a/cpp/src/Ice/Instance.h
+++ b/cpp/src/Ice/Instance.h
@@ -32,6 +32,7 @@
#include <Ice/EndpointFactoryManagerF.h>
#include <Ice/DynamicLibraryF.h>
#include <Ice/PluginF.h>
+#include <Ice/Initialize.h>
#include <list>
namespace Ice
@@ -49,10 +50,7 @@ class Instance : public IceUtil::Shared, public IceUtil::RecMutex
public:
bool destroyed() const;
- Ice::PropertiesPtr properties() const;
- Ice::LoggerPtr logger() const;
- void logger(const Ice::LoggerPtr&);
- Ice::StatsPtr stats() const;
+ const Ice::InitializationData& initializationData() const { return _initData; }
void stats(const Ice::StatsPtr&);
TraceLevelsPtr traceLevels() const;
DefaultsAndOverridesPtr defaultsAndOverrides() const;
@@ -75,12 +73,10 @@ public:
Ice::Int clientACM() const;
Ice::Int serverACM() const;
void flushBatchRequests();
- void setDefaultContext(const ::Ice::Context&);
- ::Ice::Context getDefaultContext() const;
private:
- Instance(const Ice::CommunicatorPtr&, const Ice::PropertiesPtr&, const Ice::LoggerPtr&);
+ Instance(const Ice::CommunicatorPtr&, const Ice::InitializationData&);
virtual ~Instance();
void finishSetup(int&, char*[]);
bool destroy();
@@ -93,9 +89,7 @@ private:
StateDestroyed
};
State _state;
- const Ice::PropertiesPtr _properties; // Immutable, not reset by destroy().
- Ice::LoggerPtr _logger; // Not reset by destroy().
- Ice::StatsPtr _stats; // Not reset by destroy().
+ Ice::InitializationData _initData;
const TraceLevelsPtr _traceLevels; // Immutable, not reset by destroy().
const DefaultsAndOverridesPtr _defaultsAndOverrides; // Immutable, not reset by destroy().
const size_t _messageSizeMax; // Immutable, not reset by destroy().
@@ -116,7 +110,6 @@ private:
EndpointFactoryManagerPtr _endpointFactoryManager;
DynamicLibraryListPtr _dynamicLibraryList;
Ice::PluginManagerPtr _pluginManager;
- Ice::Context _defaultContext;
};
}
diff --git a/cpp/src/Ice/LocatorInfo.cpp b/cpp/src/Ice/LocatorInfo.cpp
index 6eb36ad8422..153eda7de18 100644
--- a/cpp/src/Ice/LocatorInfo.cpp
+++ b/cpp/src/Ice/LocatorInfo.cpp
@@ -386,7 +386,8 @@ IceInternal::LocatorInfo::getEndpoints(const IndirectReferencePtr& ref, int ttl,
{
if(ref->getInstance()->traceLevels()->location >= 1)
{
- Trace out(ref->getInstance()->logger(), ref->getInstance()->traceLevels()->locationCat);
+ Trace out(ref->getInstance()->initializationData().logger,
+ ref->getInstance()->traceLevels()->locationCat);
out << "couldn't contact the locator to retrieve adapter endpoints\n";
if(!ref)
{
@@ -484,7 +485,7 @@ IceInternal::LocatorInfo::trace(const string& msg,
const IndirectReferencePtr& ref,
const vector<EndpointIPtr>& endpoints)
{
- Trace out(ref->getInstance()->logger(), ref->getInstance()->traceLevels()->locationCat);
+ Trace out(ref->getInstance()->initializationData().logger, ref->getInstance()->traceLevels()->locationCat);
out << msg << '\n';
if(!ref->getAdapterId().empty())
{
diff --git a/cpp/src/Ice/ObjectAdapterI.cpp b/cpp/src/Ice/ObjectAdapterI.cpp
index 89d8bfc8c34..759bf371f66 100644
--- a/cpp/src/Ice/ObjectAdapterI.cpp
+++ b/cpp/src/Ice/ObjectAdapterI.cpp
@@ -75,9 +75,11 @@ Ice::ObjectAdapterI::activate()
if(!_printAdapterReadyDone)
{
locatorInfo = _locatorInfo;
- registerProcess = _instance->properties()->getPropertyAsInt(_name + ".RegisterProcess") > 0;
- serverId = _instance->properties()->getProperty("Ice.ServerId");
- printAdapterReady = _instance->properties()->getPropertyAsInt("Ice.PrintAdapterReady") > 0;
+ registerProcess =
+ _instance->initializationData().properties->getPropertyAsInt(_name + ".RegisterProcess") > 0;
+ serverId = _instance->initializationData().properties->getProperty("Ice.ServerId");
+ printAdapterReady =
+ _instance->initializationData().properties->getPropertyAsInt("Ice.PrintAdapterReady") > 0;
communicator = _communicator;
_printAdapterReadyDone = true;
}
@@ -509,8 +511,8 @@ Ice::ObjectAdapterI::createReverseProxy(const Identity& ident) const
// Create a reference and return a reverse proxy for this
// reference.
//
- ReferencePtr ref = _instance->referenceFactory()->create(ident, _instance->getDefaultContext(), "",
- Reference::ModeTwoway, connections);
+ ReferencePtr ref = _instance->referenceFactory()->create(ident, _instance->initializationData().defaultContext,
+ "", Reference::ModeTwoway, connections);
return _instance->proxyFactory()->referenceToProxy(ref);
}
@@ -781,8 +783,8 @@ Ice::ObjectAdapterI::ObjectAdapterI(const InstancePtr& instance, const Communica
_servantManager(new ServantManager(instance, name)),
_printAdapterReadyDone(false),
_name(name),
- _id(instance->properties()->getProperty(name + ".AdapterId")),
- _replicaGroupId(instance->properties()->getProperty(name + ".ReplicaGroupId")),
+ _id(instance->initializationData().properties->getProperty(name + ".AdapterId")),
+ _replicaGroupId(instance->initializationData().properties->getProperty(name + ".ReplicaGroupId")),
_directCount(0),
_waitForDeactivate(false)
{
@@ -804,7 +806,7 @@ Ice::ObjectAdapterI::ObjectAdapterI(const InstancePtr& instance, const Communica
// Parse published endpoints. If set, these are used in proxies
// instead of the connection factory endpoints.
//
- string endpts = _instance->properties()->getProperty(name + ".PublishedEndpoints");
+ string endpts = _instance->initializationData().properties->getProperty(name + ".PublishedEndpoints");
_publishedEndpoints = parseEndpoints(endpts);
if(_publishedEndpoints.empty())
{
@@ -818,13 +820,13 @@ Ice::ObjectAdapterI::ObjectAdapterI(const InstancePtr& instance, const Communica
_publishedEndpoints.erase(remove_if(_publishedEndpoints.begin(), _publishedEndpoints.end(),
not1(Ice::constMemFun(&EndpointI::publish))), _publishedEndpoints.end());
- string router = _instance->properties()->getProperty(_name + ".Router");
+ string router = _instance->initializationData().properties->getProperty(_name + ".Router");
if(!router.empty())
{
addRouter(RouterPrx::uncheckedCast(_instance->proxyFactory()->stringToProxy(router)));
}
- string locator = _instance->properties()->getProperty(_name + ".Locator");
+ string locator = _instance->initializationData().properties->getProperty(_name + ".Locator");
if(!locator.empty())
{
setLocator(LocatorPrx::uncheckedCast(_instance->proxyFactory()->stringToProxy(locator)));
@@ -836,8 +838,8 @@ Ice::ObjectAdapterI::ObjectAdapterI(const InstancePtr& instance, const Communica
if(!_instance->threadPerConnection())
{
- int size = _instance->properties()->getPropertyAsInt(_name + ".ThreadPool.Size");
- int sizeMax = _instance->properties()->getPropertyAsInt(_name + ".ThreadPool.SizeMax");
+ int size = _instance->initializationData().properties->getPropertyAsInt(_name + ".ThreadPool.Size");
+ int sizeMax = _instance->initializationData().properties->getPropertyAsInt(_name + ".ThreadPool.SizeMax");
if(size > 0 || sizeMax > 0)
{
_threadPool = new ThreadPool(_instance, _name + ".ThreadPool", 0);
@@ -858,12 +860,12 @@ Ice::ObjectAdapterI::~ObjectAdapterI()
{
if(!_deactivated)
{
- Warning out(_instance->logger());
+ Warning out(_instance->initializationData().logger);
out << "object adapter `" << _name << "' has not been deactivated";
}
else if(_instance)
{
- Warning out(_instance->logger());
+ Warning out(_instance->initializationData().logger);
out << "object adapter `" << _name << "' deactivation had not been waited for";
}
else
@@ -910,7 +912,7 @@ Ice::ObjectAdapterI::newDirectProxy(const Identity& ident, const string& facet)
// Create a reference and return a proxy for this reference.
//
ReferencePtr ref = _instance->referenceFactory()->create(
- ident, _instance->getDefaultContext(), facet, Reference::ModeTwoway, false, endpoints, 0,
+ ident, _instance->initializationData().defaultContext, facet, Reference::ModeTwoway, false, endpoints, 0,
_instance->defaultsAndOverrides()->defaultCollocationOptimization);
return _instance->proxyFactory()->referenceToProxy(ref);
@@ -923,8 +925,8 @@ Ice::ObjectAdapterI::newIndirectProxy(const Identity& ident, const string& facet
// Create an indirect reference with the given adapter id.
//
ReferencePtr ref = _instance->referenceFactory()->create(
- ident, _instance->getDefaultContext(), facet, Reference::ModeTwoway, false, id, 0, _locatorInfo,
- _instance->defaultsAndOverrides()->defaultCollocationOptimization,
+ ident, _instance->initializationData().defaultContext, facet, Reference::ModeTwoway, false, id, 0,
+ _locatorInfo, _instance->defaultsAndOverrides()->defaultCollocationOptimization,
_instance->defaultsAndOverrides()->defaultLocatorCacheTimeout);
//
diff --git a/cpp/src/Ice/OutgoingAsync.cpp b/cpp/src/Ice/OutgoingAsync.cpp
index 024c1f13764..14647308b27 100644
--- a/cpp/src/Ice/OutgoingAsync.cpp
+++ b/cpp/src/Ice/OutgoingAsync.cpp
@@ -371,9 +371,10 @@ IceInternal::OutgoingAsync::warning(const Exception& ex) const
if(__os) // Don't print anything if cleanup() was already called.
{
ReferencePtr ref = _proxy->__reference();
- if(ref->getInstance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.AMICallback", 1) > 0)
+ if(ref->getInstance()->initializationData().properties->
+ getPropertyAsIntWithDefault("Ice.Warn.AMICallback", 1) > 0)
{
- Warning out(ref->getInstance()->logger());
+ Warning out(ref->getInstance()->initializationData().logger);
out << "Ice::Exception raised by AMI callback:\n" << ex;
}
}
@@ -385,9 +386,10 @@ IceInternal::OutgoingAsync::warning(const std::exception& ex) const
if(__os) // Don't print anything if cleanup() was already called.
{
ReferencePtr ref = _proxy->__reference();
- if(ref->getInstance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.AMICallback", 1) > 0)
+ if(ref->getInstance()->initializationData().properties->
+ getPropertyAsIntWithDefault("Ice.Warn.AMICallback", 1) > 0)
{
- Warning out(ref->getInstance()->logger());
+ Warning out(ref->getInstance()->initializationData().logger);
out << "std::exception raised by AMI callback:\n" << ex.what();
}
}
@@ -399,9 +401,10 @@ IceInternal::OutgoingAsync::warning() const
if(__os) // Don't print anything if cleanup() was already called.
{
ReferencePtr ref = _proxy->__reference();
- if(ref->getInstance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.AMICallback", 1) > 0)
+ if(ref->getInstance()->initializationData().properties->
+ getPropertyAsIntWithDefault("Ice.Warn.AMICallback", 1) > 0)
{
- Warning out(ref->getInstance()->logger());
+ Warning out(ref->getInstance()->initializationData().logger);
out << "unknown exception raised by AMI callback";
}
}
diff --git a/cpp/src/Ice/ProxyFactory.cpp b/cpp/src/Ice/ProxyFactory.cpp
index 5f9c93cc0a3..8bf47bd1952 100644
--- a/cpp/src/Ice/ProxyFactory.cpp
+++ b/cpp/src/Ice/ProxyFactory.cpp
@@ -91,7 +91,7 @@ void
IceInternal::ProxyFactory::checkRetryAfterException(const LocalException& ex, const ReferencePtr& ref, int& cnt) const
{
TraceLevelsPtr traceLevels = _instance->traceLevels();
- LoggerPtr logger = _instance->logger();
+ LoggerPtr logger = _instance->initializationData().logger;
const ObjectNotExistException* one = dynamic_cast<const ObjectNotExistException*>(&ex);
@@ -206,7 +206,7 @@ IceInternal::ProxyFactory::checkRetryAfterException(const LocalException& ex, co
IceInternal::ProxyFactory::ProxyFactory(const InstancePtr& instance) :
_instance(instance)
{
- string str = _instance->properties()->getPropertyWithDefault("Ice.RetryIntervals", "0");
+ string str = _instance->initializationData().properties->getPropertyWithDefault("Ice.RetryIntervals", "0");
string::size_type beg;
string::size_type end = 0;
diff --git a/cpp/src/Ice/Reference.cpp b/cpp/src/Ice/Reference.cpp
index d2aa754439d..14c3b3e36f9 100644
--- a/cpp/src/Ice/Reference.cpp
+++ b/cpp/src/Ice/Reference.cpp
@@ -46,7 +46,7 @@ ReferencePtr
IceInternal::Reference::defaultContext() const
{
ReferencePtr r = _instance->referenceFactory()->copy(this);
- r->_context = _instance->getDefaultContext();
+ r->_context = _instance->initializationData().defaultContext;
return r;
}
@@ -1471,10 +1471,9 @@ IceInternal::IndirectReference::getConnection(bool& comp) const
if(cached)
{
TraceLevelsPtr traceLevels = getInstance()->traceLevels();
- LoggerPtr logger = getInstance()->logger();
if(traceLevels->retry >= 2)
{
- Trace out(logger, traceLevels->retryCat);
+ Trace out(getInstance()->initializationData().logger, traceLevels->retryCat);
out << "connection to cached endpoints failed\n"
<< "removing endpoints from cache and trying one more time\n" << ex;
}
diff --git a/cpp/src/Ice/ReferenceFactory.cpp b/cpp/src/Ice/ReferenceFactory.cpp
index 549b3f4d02f..45f68f0562c 100644
--- a/cpp/src/Ice/ReferenceFactory.cpp
+++ b/cpp/src/Ice/ReferenceFactory.cpp
@@ -410,8 +410,8 @@ IceInternal::ReferenceFactory::create(const string& str)
if(beg == string::npos)
{
- return create(ident, _instance->getDefaultContext(), facet, mode, secure, "", routerInfo, locatorInfo,
- _instance->defaultsAndOverrides()->defaultCollocationOptimization,
+ return create(ident, _instance->initializationData().defaultContext, facet, mode, secure, "", routerInfo,
+ locatorInfo, _instance->defaultsAndOverrides()->defaultCollocationOptimization,
_instance->defaultsAndOverrides()->defaultLocatorCacheTimeout);
}
@@ -452,10 +452,11 @@ IceInternal::ReferenceFactory::create(const string& str)
ex.str = unknownEndpoints.front();
throw ex;
}
- else if(unknownEndpoints.size() != 0 &&
- _instance->properties()->getPropertyAsIntWithDefault("Ice.Warn.Endpoints", 1) > 0)
+ else if(unknownEndpoints.size() != 0 &&
+ _instance->initializationData().properties->
+ getPropertyAsIntWithDefault("Ice.Warn.Endpoints", 1) > 0)
{
- Warning out(_instance->logger());
+ Warning out(_instance->initializationData().logger);
out << "Proxy contains unknown endpoints:";
for(unsigned int idx = 0; idx < unknownEndpoints.size(); ++idx)
{
@@ -463,8 +464,8 @@ IceInternal::ReferenceFactory::create(const string& str)
}
}
- return create(ident, _instance->getDefaultContext(), facet, mode, secure, endpoints, routerInfo,
- _instance->defaultsAndOverrides()->defaultCollocationOptimization);
+ return create(ident, _instance->initializationData().defaultContext, facet, mode, secure, endpoints,
+ routerInfo, _instance->defaultsAndOverrides()->defaultCollocationOptimization);
break;
}
case '@':
@@ -503,8 +504,8 @@ IceInternal::ReferenceFactory::create(const string& str)
ex.str = str;
throw ex;
}
- return create(ident, _instance->getDefaultContext(), facet, mode, secure, adapter, routerInfo,
- locatorInfo, _instance->defaultsAndOverrides()->defaultCollocationOptimization,
+ return create(ident, _instance->initializationData().defaultContext, facet, mode, secure, adapter,
+ routerInfo, locatorInfo, _instance->defaultsAndOverrides()->defaultCollocationOptimization,
_instance->defaultsAndOverrides()->defaultLocatorCacheTimeout);
break;
}
@@ -575,14 +576,14 @@ IceInternal::ReferenceFactory::create(const Identity& ident, BasicStream* s)
EndpointIPtr endpoint = _instance->endpointFactoryManager()->read(s);
endpoints.push_back(endpoint);
}
- return create(ident, _instance->getDefaultContext(), facet, mode, secure, endpoints, routerInfo,
- _instance->defaultsAndOverrides()->defaultCollocationOptimization);
+ return create(ident, _instance->initializationData().defaultContext, facet, mode, secure, endpoints,
+ routerInfo, _instance->defaultsAndOverrides()->defaultCollocationOptimization);
}
else
{
s->read(adapterId);
- return create(ident, _instance->getDefaultContext(), facet, mode, secure, adapterId, routerInfo,
- locatorInfo, _instance->defaultsAndOverrides()->defaultCollocationOptimization,
+ return create(ident, _instance->initializationData().defaultContext, facet, mode, secure, adapterId,
+ routerInfo, locatorInfo, _instance->defaultsAndOverrides()->defaultCollocationOptimization,
_instance->defaultsAndOverrides()->defaultLocatorCacheTimeout);
}
}
diff --git a/cpp/src/Ice/ServantManager.cpp b/cpp/src/Ice/ServantManager.cpp
index e4f24c947b4..8fcee751d14 100644
--- a/cpp/src/Ice/ServantManager.cpp
+++ b/cpp/src/Ice/ServantManager.cpp
@@ -325,7 +325,7 @@ IceInternal::ServantManager::destroy()
}
catch(const Exception& ex)
{
- Error out(_instance->logger());
+ Error out(_instance->initializationData().logger);
out << "exception during locator deactivation:\n"
<< "object adapter: `" << _adapterName << "'\n"
<< "locator category: `" << p->first << "'\n"
@@ -333,7 +333,7 @@ IceInternal::ServantManager::destroy()
}
catch(...)
{
- Error out(_instance->logger());
+ Error out(_instance->initializationData().logger);
out << "unknown exception during locator deactivation:\n"
<< "object adapter: `" << _adapterName << "'\n"
<< "locator category: `" << p->first << "'";
diff --git a/cpp/src/Ice/TcpAcceptor.cpp b/cpp/src/Ice/TcpAcceptor.cpp
index 6cc796edabf..aca53d2696b 100644
--- a/cpp/src/Ice/TcpAcceptor.cpp
+++ b/cpp/src/Ice/TcpAcceptor.cpp
@@ -106,7 +106,7 @@ IceInternal::TcpAcceptor::effectivePort()
IceInternal::TcpAcceptor::TcpAcceptor(const InstancePtr& instance, const string& host, int port) :
_instance(instance),
_traceLevels(instance->traceLevels()),
- _logger(instance->logger()),
+ _logger(instance->initializationData().logger),
_backlog(0)
{
if(_backlog <= 0)
diff --git a/cpp/src/Ice/TcpConnector.cpp b/cpp/src/Ice/TcpConnector.cpp
index ca21466b676..34e2c618d5e 100644
--- a/cpp/src/Ice/TcpConnector.cpp
+++ b/cpp/src/Ice/TcpConnector.cpp
@@ -50,7 +50,7 @@ IceInternal::TcpConnector::toString() const
IceInternal::TcpConnector::TcpConnector(const InstancePtr& instance, const string& host, int port) :
_instance(instance),
_traceLevels(instance->traceLevels()),
- _logger(instance->logger())
+ _logger(instance->initializationData().logger)
{
getAddress(host, port, _addr);
}
diff --git a/cpp/src/Ice/TcpTransceiver.cpp b/cpp/src/Ice/TcpTransceiver.cpp
index 36525a7e078..a7e51ae2dc5 100644
--- a/cpp/src/Ice/TcpTransceiver.cpp
+++ b/cpp/src/Ice/TcpTransceiver.cpp
@@ -333,8 +333,8 @@ IceInternal::TcpTransceiver::initialize(int)
IceInternal::TcpTransceiver::TcpTransceiver(const InstancePtr& instance, SOCKET fd) :
_traceLevels(instance->traceLevels()),
- _logger(instance->logger()),
- _stats(instance->stats()),
+ _logger(instance->initializationData().logger),
+ _stats(instance->initializationData().stats),
_fd(fd),
_desc(fdToString(fd))
#ifdef _WIN32
diff --git a/cpp/src/Ice/ThreadPool.cpp b/cpp/src/Ice/ThreadPool.cpp
index 50d98451e2c..4d291161fbd 100644
--- a/cpp/src/Ice/ThreadPool.cpp
+++ b/cpp/src/Ice/ThreadPool.cpp
@@ -40,7 +40,7 @@ IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance, const string& p
_inUse(0),
_load(1.0),
_promote(true),
- _warnUdp(_instance->properties()->getPropertyAsInt("Ice.Warn.Datagrams") > 0)
+ _warnUdp(_instance->initializationData().properties->getPropertyAsInt("Ice.Warn.Datagrams") > 0)
{
//
// If we are in thread per connection mode, no thread pool should
@@ -64,25 +64,27 @@ IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance, const string& p
// possible setting, still allows one level of nesting, and
// doesn't require to make the servants thread safe.
//
- int size = _instance->properties()->getPropertyAsIntWithDefault(_prefix + ".Size", 1);
+ int size = _instance->initializationData().properties->getPropertyAsIntWithDefault(_prefix + ".Size", 1);
if(size < 1)
{
size = 1;
}
- int sizeMax = _instance->properties()->getPropertyAsIntWithDefault(_prefix + ".SizeMax", size);
+ int sizeMax =
+ _instance->initializationData().properties->getPropertyAsIntWithDefault(_prefix + ".SizeMax", size);
if(sizeMax < size)
{
sizeMax = size;
}
- int sizeWarn = _instance->properties()->getPropertyAsIntWithDefault(_prefix + ".SizeWarn", sizeMax * 80 / 100);
+ int sizeWarn = _instance->initializationData().properties->
+ getPropertyAsIntWithDefault(_prefix + ".SizeWarn", sizeMax * 80 / 100);
const_cast<int&>(_size) = size;
const_cast<int&>(_sizeMax) = sizeMax;
const_cast<int&>(_sizeWarn) = sizeWarn;
- int stackSize = _instance->properties()->getPropertyAsInt(_prefix + ".StackSize");
+ int stackSize = _instance->initializationData().properties->getPropertyAsInt(_prefix + ".StackSize");
if(stackSize < 0)
{
stackSize = 0;
@@ -103,7 +105,7 @@ IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance, const string& p
catch(const IceUtil::Exception& ex)
{
{
- Error out(_instance->logger());
+ Error out(_instance->initializationData().logger);
out << "cannot create thread for `" << _prefix << "':\n" << ex;
}
@@ -130,7 +132,7 @@ IceInternal::ThreadPool::~ThreadPool()
}
catch(const LocalException& ex)
{
- Error out(_instance->logger());
+ Error out(_instance->initializationData().logger);
out << "exception in `" << _prefix << "' while calling closeSocket():\n" << ex;
}
@@ -140,7 +142,7 @@ IceInternal::ThreadPool::~ThreadPool()
}
catch(const LocalException& ex)
{
- Error out(_instance->logger());
+ Error out(_instance->initializationData().logger);
out << "exception in `" << _prefix << "' while calling closeSocket():\n" << ex;
}
}
@@ -192,7 +194,7 @@ IceInternal::ThreadPool::promoteFollower()
if(_inUse == _sizeWarn)
{
- Warning out(_instance->logger());
+ Warning out(_instance->initializationData().logger);
out << "thread pool `" << _prefix << "' is running low on threads\n"
<< "Size=" << _size << ", " << "SizeMax=" << _sizeMax << ", " << "SizeWarn=" << _sizeWarn;
}
@@ -209,7 +211,7 @@ IceInternal::ThreadPool::promoteFollower()
}
catch(const IceUtil::Exception& ex)
{
- Error out(_instance->logger());
+ Error out(_instance->initializationData().logger);
out << "cannot create thread for `" << _prefix << "':\n" << ex;
}
}
@@ -351,7 +353,7 @@ IceInternal::ThreadPool::run()
SocketException ex(__FILE__, __LINE__);
ex.error = getSocketErrno();
//throw ex;
- Error out(_instance->logger());
+ Error out(_instance->initializationData().logger);
out << "exception in `" << _prefix << "':\n" << ex;
continue;
}
@@ -443,7 +445,7 @@ IceInternal::ThreadPool::run()
//
if(fdSet.fd_count == 0)
{
- Error out(_instance->logger());
+ Error out(_instance->initializationData().logger);
out << "select() in `" << _prefix << "' returned " << ret
<< " but no filedescriptor is readable";
continue;
@@ -496,7 +498,7 @@ IceInternal::ThreadPool::run()
if(loops > 1)
{
- Error out(_instance->logger());
+ Error out(_instance->initializationData().logger);
out << "select() in `" << _prefix << "' returned " << ret
<< " but no filedescriptor is readable";
continue;
@@ -508,7 +510,7 @@ IceInternal::ThreadPool::run()
map<SOCKET, EventHandlerPtr>::iterator p = _handlerMap.find(_lastFd);
if(p == _handlerMap.end())
{
- Error out(_instance->logger());
+ Error out(_instance->initializationData().logger);
out << "filedescriptor " << _lastFd << " not registered with `" << _prefix << "'";
continue;
}
@@ -566,7 +568,7 @@ IceInternal::ThreadPool::run()
}
catch(const LocalException& ex)
{
- Error out(_instance->logger());
+ Error out(_instance->initializationData().logger);
out << "exception in `" << _prefix << "' while calling finished():\n"
<< ex << '\n' << handler->toString();
}
@@ -608,9 +610,10 @@ IceInternal::ThreadPool::run()
{
if(handler->datagram())
{
- if(_instance->properties()->getPropertyAsInt("Ice.Warn.Connections") > 0)
+ if(_instance->initializationData().properties->
+ getPropertyAsInt("Ice.Warn.Connections") > 0)
{
- Warning out(_instance->logger());
+ Warning out(_instance->initializationData().logger);
out << "datagram connection exception:\n" << ex << '\n' << handler->toString();
}
}
@@ -638,7 +641,7 @@ IceInternal::ThreadPool::run()
}
catch(const LocalException& ex)
{
- Error out(_instance->logger());
+ Error out(_instance->initializationData().logger);
out << "exception in `" << _prefix << "' while calling message():\n"
<< ex << '\n' << handler->toString();
}
@@ -825,7 +828,7 @@ IceInternal::ThreadPool::read(const EventHandlerPtr& handler)
{
if(_warnUdp)
{
- Warning out(_instance->logger());
+ Warning out(_instance->initializationData().logger);
out << "DatagramLimitException: maximum size of " << pos << " exceeded";
stream.resize(0);
stream.i = stream.b.begin();
@@ -856,19 +859,19 @@ IceInternal::ThreadPool::EventHandlerThread::run()
}
catch(const Exception& ex)
{
- Error out(_pool->_instance->logger());
+ Error out(_pool->_instance->initializationData().logger);
out << "exception in `" << _pool->_prefix << "':\n" << ex;
promote = true;
}
catch(const std::exception& ex)
{
- Error out(_pool->_instance->logger());
+ Error out(_pool->_instance->initializationData().logger);
out << "std::exception in `" << _pool->_prefix << "':\n" << ex.what();
promote = true;
}
catch(...)
{
- Error out(_pool->_instance->logger());
+ Error out(_pool->_instance->initializationData().logger);
out << "unknown exception in `" << _pool->_prefix << "'";
promote = true;
}
diff --git a/cpp/src/Ice/UdpTransceiver.cpp b/cpp/src/Ice/UdpTransceiver.cpp
index 0df35c71628..9ee1a74ac0f 100644
--- a/cpp/src/Ice/UdpTransceiver.cpp
+++ b/cpp/src/Ice/UdpTransceiver.cpp
@@ -337,11 +337,11 @@ IceInternal::UdpTransceiver::effectivePort() const
IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const string& host, int port) :
_traceLevels(instance->traceLevels()),
- _logger(instance->logger()),
- _stats(instance->stats()),
+ _logger(instance->initializationData().logger),
+ _stats(instance->initializationData().stats),
_incoming(false),
_connect(true),
- _warn(instance->properties()->getPropertyAsInt("Ice.Warn.Datagrams") > 0),
+ _warn(instance->initializationData().properties->getPropertyAsInt("Ice.Warn.Datagrams") > 0),
_shutdownReadWrite(false)
{
try
@@ -371,11 +371,11 @@ IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const s
IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const string& host, int port, bool connect) :
_traceLevels(instance->traceLevels()),
- _logger(instance->logger()),
- _stats(instance->stats()),
+ _logger(instance->initializationData().logger),
+ _stats(instance->initializationData().stats),
_incoming(true),
_connect(connect),
- _warn(instance->properties()->getPropertyAsInt("Ice.Warn.Datagrams") > 0),
+ _warn(instance->initializationData().properties->getPropertyAsInt("Ice.Warn.Datagrams") > 0),
_shutdownReadWrite(false)
{
try
@@ -447,7 +447,7 @@ IceInternal::UdpTransceiver::setBufSize(const InstancePtr& instance)
//
// Get property for buffer size and check for sanity.
//
- Int sizeRequested = instance->properties()->getPropertyAsIntWithDefault(prop, dfltSize);
+ Int sizeRequested = instance->initializationData().properties->getPropertyAsIntWithDefault(prop, dfltSize);
if(sizeRequested < _udpOverhead)
{
Warning out(_logger);
diff --git a/cpp/src/IceBox/ServiceManagerI.cpp b/cpp/src/IceBox/ServiceManagerI.cpp
index f60df6ad3c2..7c914adc112 100644
--- a/cpp/src/IceBox/ServiceManagerI.cpp
+++ b/cpp/src/IceBox/ServiceManagerI.cpp
@@ -334,7 +334,9 @@ IceBox::ServiceManagerI::start(const string& service, const string& entryPoint,
}
argv[argc] = 0;
- info.communicator = initializeWithProperties(argc, argv, serviceProperties);
+ InitializationData initData;
+ initData.properties = serviceProperties;
+ info.communicator = initialize(argc, argv, initData);
for(i = 0; i < argc + 1; ++i)
{
diff --git a/cpp/test/Ice/location/Client.cpp b/cpp/test/Ice/location/Client.cpp
index 7e416253c6f..c4928dab73a 100644
--- a/cpp/test/Ice/location/Client.cpp
+++ b/cpp/test/Ice/location/Client.cpp
@@ -29,9 +29,10 @@ main(int argc, char* argv[])
try
{
- Ice::PropertiesPtr properties = Ice::createProperties(argc, argv);
- properties->setProperty("Ice.Default.Locator", "locator:default -p 12010");
- communicator = Ice::initializeWithProperties(argc, argv, properties);
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
+ initData.properties->setProperty("Ice.Default.Locator", "locator:default -p 12010");
+ communicator = Ice::initialize(argc, argv, initData);
status = run(argc, argv, communicator);
}
catch(const Ice::Exception& ex)
diff --git a/cpp/test/Ice/operations/Twoways.cpp b/cpp/test/Ice/operations/Twoways.cpp
index e71d5a92c18..ef9afa7e548 100644
--- a/cpp/test/Ice/operations/Twoways.cpp
+++ b/cpp/test/Ice/operations/Twoways.cpp
@@ -645,44 +645,30 @@ twoways(const Ice::CommunicatorPtr& communicator, const Test::MyClassPrx& p)
//
// Test that default context is obtained correctly from communicator.
//
- Ice::Context dflt;
- dflt["a"] = "b";
- communicator->setDefaultContext(dflt);
- test(p->opContext() != dflt);
+ int argc = 0;
+ char* argv[] = { "" };
+ Ice::InitializationData initData;
+ initData.defaultContext["a"] = "b";
+ Ice::CommunicatorPtr communicator2 = Ice::initialize(argc, argv, initData);
- Test::MyClassPrx p2 = Test::MyClassPrx::uncheckedCast(p->ice_context(Ice::Context()));
- test(p2->opContext().empty());
-
- p2 = Test::MyClassPrx::uncheckedCast(p->ice_defaultContext());
- test(p2->opContext() == dflt);
-
- communicator->setDefaultContext(Ice::Context());
- test(!p2->opContext().empty());
-
- communicator->setDefaultContext(dflt);
Test::MyClassPrx c = Test::MyClassPrx::checkedCast(
- communicator->stringToProxy("test:default -p 12010 -t 10000"));
- test(c->opContext() == dflt);
+ communicator2->stringToProxy("test:default -p 12010 -t 10000"));
+ test(c->opContext() == initData.defaultContext);
- dflt["a"] = "c";
- Test::MyClassPrx c2 = Test::MyClassPrx::uncheckedCast(c->ice_context(dflt));
+ Ice::Context ctx;
+ ctx["a"] = "c";
+ Test::MyClassPrx c2 = Test::MyClassPrx::uncheckedCast(c->ice_context(ctx));
test(c2->opContext()["a"] == "c");
- dflt.clear();
- Test::MyClassPrx c3 = Test::MyClassPrx::uncheckedCast(c2->ice_context(dflt));
+ ctx.clear();
+ Test::MyClassPrx c3 = Test::MyClassPrx::uncheckedCast(c2->ice_context(ctx));
Ice::Context tmp = c3->opContext();
test(tmp.find("a") == tmp.end());
Test::MyClassPrx c4 = Test::MyClassPrx::uncheckedCast(c2->ice_defaultContext());
test(c4->opContext()["a"] == "b");
- dflt["a"] = "d";
- communicator->setDefaultContext(dflt);
-
- Test::MyClassPrx c5 = Test::MyClassPrx::uncheckedCast(c->ice_defaultContext());
- test(c5->opContext()["a"] == "d");
-
- communicator->setDefaultContext(Ice::Context());
+ communicator2->destroy();
}
}
diff --git a/cpp/test/Ice/operations/TwowaysAMI.cpp b/cpp/test/Ice/operations/TwowaysAMI.cpp
index 9ef5ca5fbac..f80faa0aa09 100644
--- a/cpp/test/Ice/operations/TwowaysAMI.cpp
+++ b/cpp/test/Ice/operations/TwowaysAMI.cpp
@@ -1215,43 +1215,19 @@ twowaysAMI(const Ice::CommunicatorPtr& communicator, const Test::MyClassPrx& p)
p2->opContext_async(cb, ctx);
test(cb->check());
}
+
{
//
// Test that default context is obtained correctly from communicator.
//
- Ice::Context dflt;
- dflt["a"] = "b";
- communicator->setDefaultContext(dflt);
- {
- AMI_MyClass_opContextNotEqualIPtr cb = new AMI_MyClass_opContextNotEqualI(dflt);
- p->opContext_async(cb);
- test(cb->check());
- }
-
- Test::MyClassPrx p2 = Test::MyClassPrx::uncheckedCast(p->ice_context(Ice::Context()));
- {
- AMI_MyClass_opContextEqualIPtr cb = new AMI_MyClass_opContextEqualI(Ice::Context());
- p2->opContext_async(cb);
- test(cb->check());
- }
-
- p2 = Test::MyClassPrx::uncheckedCast(p->ice_defaultContext());
- {
- AMI_MyClass_opContextEqualIPtr cb = new AMI_MyClass_opContextEqualI(dflt);
- p2->opContext_async(cb);
- test(cb->check());
- }
+ int argc = 0;
+ char* argv[] = { "" };
+ Ice::InitializationData initData;
+ initData.defaultContext["a"] = "b";
+ Ice::CommunicatorPtr communicator2 = Ice::initialize(argc, argv, initData);
- communicator->setDefaultContext(Ice::Context());
- {
- AMI_MyClass_opContextNotEqualIPtr cb = new AMI_MyClass_opContextNotEqualI(Ice::Context());
- p2->opContext_async(cb);
- test(cb->check());
- }
-
- communicator->setDefaultContext(dflt);
Test::MyClassPrx c = Test::MyClassPrx::checkedCast(
- communicator->stringToProxy("test:default -p 12010 -t 10000"));
+ communicator2->stringToProxy("test:default -p 12010 -t 10000"));
{
Ice::Context tmp;
tmp["a"] = "b";
@@ -1260,8 +1236,9 @@ twowaysAMI(const Ice::CommunicatorPtr& communicator, const Test::MyClassPrx& p)
test(cb->check());
}
- dflt["a"] = "c";
- Test::MyClassPrx c2 = Test::MyClassPrx::uncheckedCast(c->ice_context(dflt));
+ Ice::Context ctx;
+ ctx["a"] = "c";
+ Test::MyClassPrx c2 = Test::MyClassPrx::uncheckedCast(c->ice_context(ctx));
{
Ice::Context tmp;
tmp["a"] = "c";
@@ -1270,8 +1247,8 @@ twowaysAMI(const Ice::CommunicatorPtr& communicator, const Test::MyClassPrx& p)
test(cb->check());
}
- dflt.clear();
- Test::MyClassPrx c3 = Test::MyClassPrx::uncheckedCast(c2->ice_context(dflt));
+ ctx.clear();
+ Test::MyClassPrx c3 = Test::MyClassPrx::uncheckedCast(c2->ice_context(ctx));
{
Ice::Context tmp;
AMI_MyClass_opContextEqualIPtr cb = new AMI_MyClass_opContextEqualI(tmp);
@@ -1288,19 +1265,7 @@ twowaysAMI(const Ice::CommunicatorPtr& communicator, const Test::MyClassPrx& p)
test(cb->check());
}
- dflt["a"] = "d";
- communicator->setDefaultContext(dflt);
-
- Test::MyClassPrx c5 = Test::MyClassPrx::uncheckedCast(c->ice_defaultContext());
- {
- Ice::Context tmp;
- tmp["a"] = "d";
- AMI_MyClass_opContextEqualIPtr cb = new AMI_MyClass_opContextEqualI(tmp);
- c5->opContext_async(cb);
- test(cb->check());
- }
-
- communicator->setDefaultContext(Ice::Context());
+ communicator2->destroy();
}
}
diff --git a/cpp/test/Ice/timeout/AllTests.cpp b/cpp/test/Ice/timeout/AllTests.cpp
index 5802d97be57..95d8a6f835a 100644
--- a/cpp/test/Ice/timeout/AllTests.cpp
+++ b/cpp/test/Ice/timeout/AllTests.cpp
@@ -301,9 +301,10 @@ allTests(const Ice::CommunicatorPtr& communicator)
//
int argc = 0;
char* argv[] = { "" };
- Ice::PropertiesPtr props = communicator->getProperties()->clone();
- props->setProperty("Ice.Override.Timeout", "500");
- Ice::CommunicatorPtr comm = Ice::initializeWithProperties(argc, argv, props);
+ Ice::InitializationData initData;
+ initData.properties = communicator->getProperties()->clone();
+ initData.properties->setProperty("Ice.Override.Timeout", "500");
+ Ice::CommunicatorPtr comm = Ice::initialize(argc, argv, initData);
TimeoutPrx to = TimeoutPrx::checkedCast(comm->stringToProxy(sref));
try
{
@@ -336,9 +337,10 @@ allTests(const Ice::CommunicatorPtr& communicator)
//
int argc = 0;
char* argv[] = { "" };
- Ice::PropertiesPtr props = communicator->getProperties()->clone();
- props->setProperty("Ice.Override.ConnectTimeout", "500");
- Ice::CommunicatorPtr comm = Ice::initializeWithProperties(argc, argv, props);
+ Ice::InitializationData initData;
+ initData.properties = communicator->getProperties()->clone();
+ initData.properties->setProperty("Ice.Override.ConnectTimeout", "500");
+ Ice::CommunicatorPtr comm = Ice::initialize(argc, argv, initData);
timeout->holdAdapter(750);
TimeoutPrx to = TimeoutPrx::uncheckedCast(comm->stringToProxy(sref));
try
diff --git a/cpp/test/IceSSL/configuration/AllTests.cpp b/cpp/test/IceSSL/configuration/AllTests.cpp
index 1217162dcae..0c745b0e426 100644
--- a/cpp/test/IceSSL/configuration/AllTests.cpp
+++ b/cpp/test/IceSSL/configuration/AllTests.cpp
@@ -150,9 +150,10 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
cout << "testing manual initialization... " << flush;
{
- PropertiesPtr props = createClientProps(defaultHost);
- props->setProperty("IceSSL.DelayInit", "1");
- CommunicatorPtr comm = initializeWithProperties(argc, argv, props);
+ InitializationData initData;
+ initData.properties = createClientProps(defaultHost);
+ initData.properties->setProperty("IceSSL.DelayInit", "1");
+ CommunicatorPtr comm = initialize(argc, argv, initData);
ObjectPrx p = comm->stringToProxy("dummy:ssl -p 9999");
try
{
@@ -170,11 +171,12 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
comm->destroy();
}
{
- PropertiesPtr props = createClientProps(defaultHost);
- props->setProperty("IceSSL.DelayInit", "1");
- props->setProperty("IceSSL.Client.Ciphers", "ADH");
- props->setProperty("IceSSL.Client.VerifyPeer", "0");
- CommunicatorPtr comm = initializeWithProperties(argc, argv, props);
+ InitializationData initData;
+ initData.properties = createClientProps(defaultHost);
+ initData.properties->setProperty("IceSSL.DelayInit", "1");
+ initData.properties->setProperty("IceSSL.Client.Ciphers", "ADH");
+ initData.properties->setProperty("IceSSL.Client.VerifyPeer", "0");
+ CommunicatorPtr comm = initialize(argc, argv, initData);
IceSSL::PluginPtr plugin =
IceSSL::PluginPtr::dynamicCast(comm->getPluginManager()->getPlugin("IceSSL"));
test(plugin);
@@ -205,11 +207,12 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
// Test IceSSL.Server.VerifyPeer=0. Client does not have a certificate,
// but it still verifies the server's.
//
- PropertiesPtr props = createClientProps(defaultHost);
- props->setProperty("IceSSL.Client.VerifyPeer", "0");
- props->setProperty("IceSSL.Client.CertAuthFile", "cacert1.pem");
- props->setProperty("IceSSL.Client.DefaultDir", defaultDir);
- CommunicatorPtr comm = initializeWithProperties(argc, argv, props);
+ InitializationData initData;
+ initData.properties = createClientProps(defaultHost);
+ initData.properties->setProperty("IceSSL.Client.VerifyPeer", "0");
+ initData.properties->setProperty("IceSSL.Client.CertAuthFile", "cacert1.pem");
+ initData.properties->setProperty("IceSSL.Client.DefaultDir", defaultDir);
+ CommunicatorPtr comm = initialize(argc, argv, initData);
Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef));
test(fact);
Test::Properties d = createServerProps(defaultHost);
@@ -286,9 +289,9 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
//
// Test IceSSL.Server.VerifyPeer=1. Client has a certificate.
//
- props->setProperty("IceSSL.Client.CertFile", "c_rsa_nopass_ca1_pub.pem");
- props->setProperty("IceSSL.Client.KeyFile", "c_rsa_nopass_ca1_priv.pem");
- comm = initializeWithProperties(argc, argv, props);
+ initData.properties->setProperty("IceSSL.Client.CertFile", "c_rsa_nopass_ca1_pub.pem");
+ initData.properties->setProperty("IceSSL.Client.KeyFile", "c_rsa_nopass_ca1_priv.pem");
+ comm = initialize(argc, argv, initData);
fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef));
test(fact);
d = createServerProps(defaultHost);
@@ -334,10 +337,10 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
// Test IceSSL.Server.VerifyPeer=1. This should fail because the
// client doesn't trust the server's CA.
//
- props->setProperty("IceSSL.Client.CertAuthFile", "cacert2.pem");
- props->setProperty("IceSSL.Client.CertFile", "c_rsa_nopass_ca2_pub.pem");
- props->setProperty("IceSSL.Client.KeyFile", "c_rsa_nopass_ca2_priv.pem");
- comm = initializeWithProperties(argc, argv, props);
+ initData.properties->setProperty("IceSSL.Client.CertAuthFile", "cacert2.pem");
+ initData.properties->setProperty("IceSSL.Client.CertFile", "c_rsa_nopass_ca2_pub.pem");
+ initData.properties->setProperty("IceSSL.Client.KeyFile", "c_rsa_nopass_ca2_priv.pem");
+ comm = initialize(argc, argv, initData);
fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef));
test(fact);
d = createServerProps(defaultHost);
@@ -374,10 +377,10 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
// Test IceSSL.Server.VerifyPeer=1. This should fail because the
// server doesn't trust the client's CA.
//
- props->setProperty("IceSSL.Client.CertAuthFile", "cacert1.pem");
- props->setProperty("IceSSL.Client.CertFile", "c_rsa_nopass_ca2_pub.pem");
- props->setProperty("IceSSL.Client.KeyFile", "c_rsa_nopass_ca2_priv.pem");
- comm = initializeWithProperties(argc, argv, props);
+ initData.properties->setProperty("IceSSL.Client.CertAuthFile", "cacert1.pem");
+ initData.properties->setProperty("IceSSL.Client.CertFile", "c_rsa_nopass_ca2_pub.pem");
+ initData.properties->setProperty("IceSSL.Client.KeyFile", "c_rsa_nopass_ca2_priv.pem");
+ comm = initialize(argc, argv, initData);
fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef));
test(fact);
d = createServerProps(defaultHost);
@@ -417,10 +420,11 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
//
// ADH is allowed but will not have a certificate.
//
- PropertiesPtr props = createClientProps(defaultHost);
- props->setProperty("IceSSL.Client.Ciphers", "ADH");
- props->setProperty("IceSSL.Client.VerifyPeer", "0");
- CommunicatorPtr comm = initializeWithProperties(argc, argv, props);
+ InitializationData initData;
+ initData.properties = createClientProps(defaultHost);
+ initData.properties->setProperty("IceSSL.Client.Ciphers", "ADH");
+ initData.properties->setProperty("IceSSL.Client.VerifyPeer", "0");
+ CommunicatorPtr comm = initialize(argc, argv, initData);
IceSSL::PluginPtr plugin =
IceSSL::PluginPtr::dynamicCast(comm->getPluginManager()->getPlugin("IceSSL"));
test(plugin);
@@ -481,11 +485,12 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
// This should fail because the client and server have no protocol
// in common.
//
- PropertiesPtr props = createClientProps(defaultHost);
- props->setProperty("IceSSL.Client.Ciphers", "ADH");
- props->setProperty("IceSSL.Client.VerifyPeer", "0");
- props->setProperty("IceSSL.Client.Protocols", "ssl3");
- CommunicatorPtr comm = initializeWithProperties(argc, argv, props);
+ InitializationData initData;
+ initData.properties = createClientProps(defaultHost);
+ initData.properties->setProperty("IceSSL.Client.Ciphers", "ADH");
+ initData.properties->setProperty("IceSSL.Client.VerifyPeer", "0");
+ initData.properties->setProperty("IceSSL.Client.Protocols", "ssl3");
+ CommunicatorPtr comm = initialize(argc, argv, initData);
Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef));
test(fact);
Test::Properties d = createServerProps(defaultHost);
@@ -519,7 +524,7 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
//
// This should succeed.
//
- comm = initializeWithProperties(argc, argv, props);
+ comm = initialize(argc, argv, initData);
fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef));
test(fact);
d = createServerProps(defaultHost);
@@ -545,12 +550,13 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
//
// This should fail because the server's certificate is expired.
//
- PropertiesPtr props = createClientProps(defaultHost);
- props->setProperty("IceSSL.Client.DefaultDir", defaultDir);
- props->setProperty("IceSSL.Client.CertAuthFile", "cacert1.pem");
- props->setProperty("IceSSL.Client.CertFile", "c_rsa_nopass_ca1_pub.pem");
- props->setProperty("IceSSL.Client.KeyFile", "c_rsa_nopass_ca1_priv.pem");
- CommunicatorPtr comm = initializeWithProperties(argc, argv, props);
+ InitializationData initData;
+ initData.properties = createClientProps(defaultHost);
+ initData.properties->setProperty("IceSSL.Client.DefaultDir", defaultDir);
+ initData.properties->setProperty("IceSSL.Client.CertAuthFile", "cacert1.pem");
+ initData.properties->setProperty("IceSSL.Client.CertFile", "c_rsa_nopass_ca1_pub.pem");
+ initData.properties->setProperty("IceSSL.Client.KeyFile", "c_rsa_nopass_ca1_priv.pem");
+ CommunicatorPtr comm = initialize(argc, argv, initData);
Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef));
test(fact);
Test::Properties d = createServerProps(defaultHost);
@@ -585,9 +591,9 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
//
// This should fail because the client's certificate is expired.
//
- props->setProperty("IceSSL.Client.CertFile", "c_rsa_nopass_ca1_exp_pub.pem");
- props->setProperty("IceSSL.Client.KeyFile", "c_rsa_nopass_ca1_exp_priv.pem");
- comm = initializeWithProperties(argc, argv, props);
+ initData.properties->setProperty("IceSSL.Client.CertFile", "c_rsa_nopass_ca1_exp_pub.pem");
+ initData.properties->setProperty("IceSSL.Client.KeyFile", "c_rsa_nopass_ca1_exp_priv.pem");
+ comm = initialize(argc, argv, initData);
fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef));
test(fact);
d = createServerProps(defaultHost);
@@ -627,11 +633,12 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
// Don't specify CertAuthFile explicitly; we let OpenSSL find the CA
// certificate in the default directory.
//
- PropertiesPtr props = createClientProps(defaultHost);
- props->setProperty("IceSSL.Client.DefaultDir", defaultDir);
- props->setProperty("IceSSL.Client.CertFile", "c_rsa_nopass_ca1_pub.pem");
- props->setProperty("IceSSL.Client.KeyFile", "c_rsa_nopass_ca1_priv.pem");
- CommunicatorPtr comm = initializeWithProperties(argc, argv, props);
+ InitializationData initData;
+ initData.properties = createClientProps(defaultHost);
+ initData.properties->setProperty("IceSSL.Client.DefaultDir", defaultDir);
+ initData.properties->setProperty("IceSSL.Client.CertFile", "c_rsa_nopass_ca1_pub.pem");
+ initData.properties->setProperty("IceSSL.Client.KeyFile", "c_rsa_nopass_ca1_priv.pem");
+ CommunicatorPtr comm = initialize(argc, argv, initData);
Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef));
test(fact);
Test::Properties d = createServerProps(defaultHost);
@@ -658,12 +665,13 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
//
// Use the correct password.
//
- PropertiesPtr props = createClientProps(defaultHost);
- props->setProperty("IceSSL.Client.DefaultDir", defaultDir);
- props->setProperty("IceSSL.Client.CertFile", "c_rsa_pass_ca1_pub.pem");
- props->setProperty("IceSSL.Client.KeyFile", "c_rsa_pass_ca1_priv.pem");
- props->setProperty("IceSSL.DelayInit", "1");
- CommunicatorPtr comm = initializeWithProperties(argc, argv, props);
+ InitializationData initData;
+ initData.properties = createClientProps(defaultHost);
+ initData.properties->setProperty("IceSSL.Client.DefaultDir", defaultDir);
+ initData.properties->setProperty("IceSSL.Client.CertFile", "c_rsa_pass_ca1_pub.pem");
+ initData.properties->setProperty("IceSSL.Client.KeyFile", "c_rsa_pass_ca1_priv.pem");
+ initData.properties->setProperty("IceSSL.DelayInit", "1");
+ CommunicatorPtr comm = initialize(argc, argv, initData);
IceSSL::PluginPtr plugin =
IceSSL::PluginPtr::dynamicCast(comm->getPluginManager()->getPlugin("IceSSL"));
test(plugin);
@@ -693,13 +701,13 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
//
// Use an incorrect password and check that retries are attempted.
//
- props = createClientProps(defaultHost);
- props->setProperty("IceSSL.Client.DefaultDir", defaultDir);
- props->setProperty("IceSSL.Client.CertFile", "c_rsa_pass_ca1_pub.pem");
- props->setProperty("IceSSL.Client.KeyFile", "c_rsa_pass_ca1_priv.pem");
- props->setProperty("IceSSL.Client.PasswordRetryMax", "4");
- props->setProperty("IceSSL.DelayInit", "1");
- comm = initializeWithProperties(argc, argv, props);
+ initData.properties = createClientProps(defaultHost);
+ initData.properties->setProperty("IceSSL.Client.DefaultDir", defaultDir);
+ initData.properties->setProperty("IceSSL.Client.CertFile", "c_rsa_pass_ca1_pub.pem");
+ initData.properties->setProperty("IceSSL.Client.KeyFile", "c_rsa_pass_ca1_priv.pem");
+ initData.properties->setProperty("IceSSL.Client.PasswordRetryMax", "4");
+ initData.properties->setProperty("IceSSL.DelayInit", "1");
+ comm = initialize(argc, argv, initData);
plugin = IceSSL::PluginPtr::dynamicCast(comm->getPluginManager()->getPlugin("IceSSL"));
test(plugin);
prompt = new PasswordPromptI("invalid");
@@ -728,9 +736,10 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
// The server has a certificate but the client doesn't. They should
// negotiate to use ADH since we explicitly enable it.
//
- PropertiesPtr props = createClientProps(defaultHost);
- props->setProperty("IceSSL.Client.Ciphers", "ADH");
- CommunicatorPtr comm = initializeWithProperties(argc, argv, props);
+ InitializationData initData;
+ initData.properties = createClientProps(defaultHost);
+ initData.properties->setProperty("IceSSL.Client.Ciphers", "ADH");
+ CommunicatorPtr comm = initialize(argc, argv, initData);
Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef));
test(fact);
Test::Properties d = createServerProps(defaultHost);
@@ -757,12 +766,13 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
//
// First try a client with a DSA certificate.
//
- PropertiesPtr props = createClientProps(defaultHost);
- props->setProperty("IceSSL.Client.DefaultDir", defaultDir);
- props->setProperty("IceSSL.Client.CertFile", "c_dsa_nopass_ca1_pub.pem");
- props->setProperty("IceSSL.Client.KeyFile", "c_dsa_nopass_ca1_priv.pem");
- props->setProperty("IceSSL.Client.Ciphers", "DEFAULT:DSS");
- CommunicatorPtr comm = initializeWithProperties(argc, argv, props);
+ InitializationData initData;
+ initData.properties = createClientProps(defaultHost);
+ initData.properties->setProperty("IceSSL.Client.DefaultDir", defaultDir);
+ initData.properties->setProperty("IceSSL.Client.CertFile", "c_dsa_nopass_ca1_pub.pem");
+ initData.properties->setProperty("IceSSL.Client.KeyFile", "c_dsa_nopass_ca1_priv.pem");
+ initData.properties->setProperty("IceSSL.Client.Ciphers", "DEFAULT:DSS");
+ CommunicatorPtr comm = initialize(argc, argv, initData);
Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef));
test(fact);
Test::Properties d = createServerProps(defaultHost);
@@ -786,11 +796,11 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
//
// Next try a client with an RSA certificate.
//
- props = createClientProps(defaultHost);
- props->setProperty("IceSSL.Client.DefaultDir", defaultDir);
- props->setProperty("IceSSL.Client.CertFile", "c_rsa_nopass_ca1_pub.pem");
- props->setProperty("IceSSL.Client.KeyFile", "c_rsa_nopass_ca1_priv.pem");
- comm = initializeWithProperties(argc, argv, props);
+ initData.properties = createClientProps(defaultHost);
+ initData.properties->setProperty("IceSSL.Client.DefaultDir", defaultDir);
+ initData.properties->setProperty("IceSSL.Client.CertFile", "c_rsa_nopass_ca1_pub.pem");
+ initData.properties->setProperty("IceSSL.Client.KeyFile", "c_rsa_nopass_ca1_priv.pem");
+ comm = initialize(argc, argv, initData);
fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef));
test(fact);
d = createServerProps(defaultHost);
@@ -814,9 +824,9 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
//
// Next try a client with ADH. This should fail.
//
- props = createClientProps(defaultHost);
- props->setProperty("IceSSL.Client.Ciphers", "ADH");
- comm = initializeWithProperties(argc, argv, props);
+ initData.properties = createClientProps(defaultHost);
+ initData.properties->setProperty("IceSSL.Client.Ciphers", "ADH");
+ comm = initialize(argc, argv, initData);
fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef));
test(fact);
d = createServerProps(defaultHost);
@@ -846,12 +856,13 @@ allTests(const CommunicatorPtr& communicator, const string& testDir)
//
// Configure a server with RSA and a client with DSA. This should fail.
//
- PropertiesPtr props = createClientProps(defaultHost);
- props->setProperty("IceSSL.Client.DefaultDir", defaultDir);
- props->setProperty("IceSSL.Client.CertFile", "c_dsa_nopass_ca1_pub.pem");
- props->setProperty("IceSSL.Client.KeyFile", "c_dsa_nopass_ca1_priv.pem");
- props->setProperty("IceSSL.Client.Ciphers", "DSS");
- CommunicatorPtr comm = initializeWithProperties(argc, argv, props);
+ InitializationData initData;
+ initData.properties = createClientProps(defaultHost);
+ initData.properties->setProperty("IceSSL.Client.DefaultDir", defaultDir);
+ initData.properties->setProperty("IceSSL.Client.CertFile", "c_dsa_nopass_ca1_pub.pem");
+ initData.properties->setProperty("IceSSL.Client.KeyFile", "c_dsa_nopass_ca1_priv.pem");
+ initData.properties->setProperty("IceSSL.Client.Ciphers", "DSS");
+ CommunicatorPtr comm = initialize(argc, argv, initData);
Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef));
test(fact);
Test::Properties d = createServerProps(defaultHost);
diff --git a/cpp/test/IceSSL/configuration/TestI.cpp b/cpp/test/IceSSL/configuration/TestI.cpp
index e11349159d7..e93aae72de0 100644
--- a/cpp/test/IceSSL/configuration/TestI.cpp
+++ b/cpp/test/IceSSL/configuration/TestI.cpp
@@ -29,15 +29,16 @@ ServerI::destroy()
Test::ServerPrx
ServerFactoryI::createServer(const Test::Properties& props, const Current& current)
{
- PropertiesPtr properties = createProperties();
+ InitializationData initData;
+ initData.properties = createProperties();
for(Test::Properties::const_iterator p = props.begin(); p != props.end(); ++p)
{
- properties->setProperty(p->first, p->second);
+ initData.properties->setProperty(p->first, p->second);
}
int argc = 0;
char* argv[] = { "" };
- CommunicatorPtr communicator = initializeWithProperties(argc, argv, properties);
+ CommunicatorPtr communicator = initialize(argc, argv, initData);
ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("ServerAdapter", "ssl");
ServerIPtr server = new ServerI(communicator);
ObjectPrx obj = adapter->addWithUUID(server);