summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2006-06-08 05:10:13 +0000
committerBernard Normier <bernard@zeroc.com>2006-06-08 05:10:13 +0000
commit353add91960fa4f133bd2db69a11f7efa1ced160 (patch)
treebed068f5c9b04488ddbaa48eb9b58283232d78bf /cpp
parent*** empty log message *** (diff)
downloadice-353add91960fa4f133bd2db69a11f7efa1ced160.tar.bz2
ice-353add91960fa4f133bd2db69a11f7efa1ced160.tar.xz
ice-353add91960fa4f133bd2db69a11f7efa1ced160.zip
Fix for bugs #1015 and #542 (default properties)
Diffstat (limited to 'cpp')
-rw-r--r--cpp/CHANGES19
-rw-r--r--cpp/include/Ice/Initialize.h11
-rwxr-xr-xcpp/include/Ice/Service.h12
-rw-r--r--cpp/src/Glacier2/Glacier2Router.cpp24
-rw-r--r--cpp/src/Ice/CommunicatorI.h1
-rw-r--r--cpp/src/Ice/Initialize.cpp90
-rw-r--r--cpp/src/Ice/PropertiesI.cpp22
-rw-r--r--cpp/src/Ice/PropertiesI.h10
-rwxr-xr-xcpp/src/Ice/Service.cpp26
-rw-r--r--cpp/src/IceGrid/IceGridNode.cpp16
-rw-r--r--cpp/src/IceGrid/IceGridRegistry.cpp14
-rw-r--r--cpp/src/IcePatch2/Server.cpp6
-rwxr-xr-xcpp/test/Glacier2/addressFilter/Client.cpp13
-rw-r--r--cpp/test/Glacier2/attack/Client.cpp9
-rwxr-xr-xcpp/test/Glacier2/filters/Client.cpp12
-rw-r--r--cpp/test/Glacier2/router/Client.cpp16
-rw-r--r--cpp/test/Glacier2/router/Server.cpp10
-rw-r--r--cpp/test/Glacier2/sessionControl/Client.cpp11
-rwxr-xr-xcpp/test/Glacier2/ssl/Client.cpp7
-rw-r--r--cpp/test/Ice/custom/Collocated.cpp4
-rw-r--r--cpp/test/Ice/custom/Server.cpp4
-rw-r--r--cpp/test/Ice/custom/ServerAMD.cpp5
-rw-r--r--cpp/test/Ice/faultTolerance/Client.cpp7
-rw-r--r--cpp/test/Ice/faultTolerance/Server.cpp7
-rw-r--r--cpp/test/Ice/location/Server.cpp13
-rw-r--r--cpp/test/Ice/location/TestI.cpp27
-rw-r--r--cpp/test/Ice/location/TestI.h4
-rw-r--r--cpp/test/Ice/operations/AllTests.cpp15
-rw-r--r--cpp/test/Ice/operations/Client.cpp24
-rw-r--r--cpp/test/Ice/operations/Collocated.cpp13
-rw-r--r--cpp/test/Ice/operations/Server.cpp7
-rw-r--r--cpp/test/Ice/operations/ServerAMD.cpp7
-rw-r--r--cpp/test/Ice/operations/Twoways.cpp9
-rw-r--r--cpp/test/Ice/operations/TwowaysAMI.cpp24
-rw-r--r--cpp/test/Ice/retry/Client.cpp9
-rw-r--r--cpp/test/Ice/timeout/AllTests.cpp8
-rw-r--r--cpp/test/Ice/timeout/Client.cpp11
-rw-r--r--cpp/test/Ice/timeout/Server.cpp7
-rw-r--r--cpp/test/IceGrid/session/Client.cpp7
39 files changed, 296 insertions, 245 deletions
diff --git a/cpp/CHANGES b/cpp/CHANGES
index 9b29ad4f56a..a75d1c7925b 100644
--- a/cpp/CHANGES
+++ b/cpp/CHANGES
@@ -1,6 +1,25 @@
Changes since version 3.0.1
---------------------------
+- Removed getDefaultProperties() functions, and the global default
+ properties. If you need global properties, you can easily
+ create your own global variable.
+
+- In Ice::Service, main(), run() and initializeCommunicator() take
+ now a third parameter, const InitializationData&. It's defaulted
+ for main() and run().
+
+- The signature of createProperties()-with-parameters is now:
+ PropertiesPtr createProperties(int* argc, char* argv[],
+ const PropertiesPtr& defaults = 0);
+ "defaults" represents an optional set of default properties
+ used to initialize the new Properties object. Ice properties
+ defined on the command-line and properties defined in the Ice
+ config file may override these default properties.
+
+- Added a new communicator-initialization function:
+ CommunicatorPtr initialize(const InitializationData&);
+
- Fixed a bug in dumpdb so that it handles object graphs correctly.
- Fixed a bug where the proxy timeout, compress flag and connection
diff --git a/cpp/include/Ice/Initialize.h b/cpp/include/Ice/Initialize.h
index 03a34e854c3..d95cf3ee2a5 100644
--- a/cpp/include/Ice/Initialize.h
+++ b/cpp/include/Ice/Initialize.h
@@ -34,8 +34,8 @@ ICE_API StringSeq argsToStringSeq(int, char*[]);
ICE_API void stringSeqToArgs(const StringSeq&, int&, char*[]);
ICE_API PropertiesPtr createProperties();
-ICE_API PropertiesPtr createProperties(StringSeq&);
-ICE_API PropertiesPtr createProperties(int&, char*[]);
+ICE_API PropertiesPtr createProperties(StringSeq&, const PropertiesPtr& = 0);
+ICE_API PropertiesPtr createProperties(int&, char*[], const PropertiesPtr& = 0);
//
// This class is used to notify user of when Ice threads
@@ -67,6 +67,9 @@ struct InitializationData
ICE_API CommunicatorPtr initialize(int&, char*[], const InitializationData& = InitializationData(),
Int = ICE_INT_VERSION);
+
+ICE_API CommunicatorPtr initialize(const 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&,
@@ -75,10 +78,6 @@ ICE_API ICE_DEPRECATED_API CommunicatorPtr initializeWithPropertiesAndLogger(int
const Ice::LoggerPtr&,
Int = ICE_INT_VERSION);
-ICE_API PropertiesPtr getDefaultProperties();
-ICE_API PropertiesPtr getDefaultProperties(StringSeq&);
-ICE_API PropertiesPtr getDefaultProperties(int&, char*[]);
-
ICE_API InputStreamPtr createInputStream(const CommunicatorPtr&, const ::std::vector< Byte >&);
ICE_API OutputStreamPtr createOutputStream(const CommunicatorPtr&);
diff --git a/cpp/include/Ice/Service.h b/cpp/include/Ice/Service.h
index e95c013554a..ee945f6026d 100755
--- a/cpp/include/Ice/Service.h
+++ b/cpp/include/Ice/Service.h
@@ -59,7 +59,7 @@ public:
// The return value is an exit status code: EXIT_FAILURE or
// EXIT_SUCCESS.
//
- int main(int&, char*[]);
+ int main(int&, char*[], const InitializationData& = InitializationData());
//
// Returns the communicator created by the service.
@@ -101,7 +101,7 @@ public:
// The return value is an exit status code: EXIT_FAILURE or
// EXIT_SUCCESS.
//
- int run(int&, char*[]);
+ int run(int&, char*[], const InitializationData& = InitializationData());
#ifdef _WIN32
@@ -172,7 +172,7 @@ protected:
//
// Initialize a communicator.
//
- virtual Ice::CommunicatorPtr initializeCommunicator(int&, char*[]);
+ virtual Ice::CommunicatorPtr initializeCommunicator(int&, char*[], const InitializationData&);
//
// Log a system error, which includes a description of the
@@ -217,17 +217,19 @@ private:
bool _nohup;
bool _service;
std::string _name;
+
static Service* _instance;
#ifdef _WIN32
- int runService(int, char*[]);
+ int runService(int, char*[], const InitializationData&);
void terminateService(DWORD);
bool waitForServiceState(SC_HANDLE, DWORD, SERVICE_STATUS&);
void showServiceStatus(const std::string&, SERVICE_STATUS&);
SERVICE_STATUS_HANDLE _statusHandle;
std::vector<std::string> _serviceArgs;
+ InitializationData _initData;
public:
@@ -236,7 +238,7 @@ public:
#else
- int runDaemon(int, char*[]);
+ int runDaemon(int, char*[], const InitializationData&);
bool _changeDirectory;
bool _closeFiles;
diff --git a/cpp/src/Glacier2/Glacier2Router.cpp b/cpp/src/Glacier2/Glacier2Router.cpp
index 330761d7fc8..ccb3c85e93a 100644
--- a/cpp/src/Glacier2/Glacier2Router.cpp
+++ b/cpp/src/Glacier2/Glacier2Router.cpp
@@ -53,7 +53,7 @@ protected:
virtual bool start(int, char*[]);
virtual bool stop();
- virtual CommunicatorPtr initializeCommunicator(int&, char*[]);
+ virtual CommunicatorPtr initializeCommunicator(int&, char*[], const InitializationData&);
private:
@@ -304,26 +304,28 @@ Glacier2::RouterService::stop()
}
CommunicatorPtr
-Glacier2::RouterService::initializeCommunicator(int& argc, char* argv[])
+Glacier2::RouterService::initializeCommunicator(int& argc, char* argv[],
+ const InitializationData& initializationData)
{
- PropertiesPtr defaultProperties = getDefaultProperties(argc, argv);
-
+ InitializationData initData = initializationData;
+ initData.properties = createProperties(argc, argv, initializationData.properties);
+
//
// Glacier2 always runs in thread-per-connection mode.
//
- defaultProperties->setProperty("Ice.ThreadPerConnection", "1");
+ initData.properties->setProperty("Ice.ThreadPerConnection", "1");
//
// Make sure that Glacier2 doesn't use a router.
//
- defaultProperties->setProperty("Ice.Default.Router", "");
+ initData.properties->setProperty("Ice.Default.Router", "");
//
// No active connection management is permitted with
// Glacier2. Connections must remain established.
//
- defaultProperties->setProperty("Ice.ACM.Client", "0");
- defaultProperties->setProperty("Ice.ACM.Server", "0");
+ initData.properties->setProperty("Ice.ACM.Client", "0");
+ initData.properties->setProperty("Ice.ACM.Server", "0");
//
// Ice.MonitorConnections defaults to the smaller of Ice.ACM.Client
@@ -331,9 +333,9 @@ Glacier2::RouterService::initializeCommunicator(int& argc, char* argv[])
// the connection monitor thread for AMI timeouts. We only set
// this value if it hasn't been set explicitly already.
//
- if(defaultProperties->getProperty("Ice.MonitorConnections").empty())
+ if(initData.properties->getProperty("Ice.MonitorConnections").empty())
{
- defaultProperties->setProperty("Ice.MonitorConnections", "60");
+ initData.properties->setProperty("Ice.MonitorConnections", "60");
}
//
@@ -344,7 +346,7 @@ Glacier2::RouterService::initializeCommunicator(int& argc, char* argv[])
// the clients.
//
- return Service::initializeCommunicator(argc, argv);
+ return Service::initializeCommunicator(argc, argv, initData);
}
void
diff --git a/cpp/src/Ice/CommunicatorI.h b/cpp/src/Ice/CommunicatorI.h
index fe29d051696..d77c7d1066d 100644
--- a/cpp/src/Ice/CommunicatorI.h
+++ b/cpp/src/Ice/CommunicatorI.h
@@ -69,6 +69,7 @@ private:
void finishSetup(int&, char*[]);
friend ICE_API CommunicatorPtr initialize(int&, char*[], const InitializationData&, Int);
+ friend ICE_API CommunicatorPtr initialize(const InitializationData&, Int);
friend ICE_API ::IceInternal::InstancePtr IceInternal::getInstance(const ::Ice::CommunicatorPtr&);
const ::IceInternal::InstancePtr _instance;
diff --git a/cpp/src/Ice/Initialize.cpp b/cpp/src/Ice/Initialize.cpp
index ca108e8db85..90d37f16bc1 100644
--- a/cpp/src/Ice/Initialize.cpp
+++ b/cpp/src/Ice/Initialize.cpp
@@ -89,66 +89,21 @@ Ice::createProperties()
}
PropertiesPtr
-Ice::createProperties(StringSeq& args)
+Ice::createProperties(StringSeq& args, const PropertiesPtr& defaults)
{
- return new PropertiesI(args);
+ return new PropertiesI(args, defaults);
}
PropertiesPtr
-Ice::createProperties(int& argc, char* argv[])
+Ice::createProperties(int& argc, char* argv[], const PropertiesPtr& defaults)
{
StringSeq args = argsToStringSeq(argc, argv);
- PropertiesPtr properties = createProperties(args);
+ PropertiesPtr properties = createProperties(args, defaults);
stringSeqToArgs(args, argc, argv);
return properties;
}
-static PropertiesPtr defaultProperties;
-class DefaultPropertiesDestroyer
-{
-public:
-
- ~DefaultPropertiesDestroyer()
- {
- defaultProperties = 0;
- }
-};
-static DefaultPropertiesDestroyer defaultPropertiesDestroyer;
-static IceUtil::StaticMutex defaultPropMutex = ICE_STATIC_MUTEX_INITIALIZER;
-
-PropertiesPtr
-Ice::getDefaultProperties()
-{
- IceUtil::StaticMutex::Lock sync(defaultPropMutex);
- if(!defaultProperties)
- {
- defaultProperties = createProperties();
- }
- return defaultProperties;
-}
-
-PropertiesPtr
-Ice::getDefaultProperties(StringSeq& args)
-{
- IceUtil::StaticMutex::Lock sync(defaultPropMutex);
- if(!defaultProperties)
- {
- defaultProperties = createProperties(args);
- }
- return defaultProperties;
-}
-
-PropertiesPtr
-Ice::getDefaultProperties(int& argc, char* argv[])
-{
- StringSeq args = argsToStringSeq(argc, argv);
- PropertiesPtr properties = getDefaultProperties(args);
- stringSeqToArgs(args, argc, argv);
- return properties;
-}
-
-CommunicatorPtr
-Ice::initialize(int& argc, char* argv[], const InitializationData& initData, Int version)
+inline void checkIceVersion(Int version)
{
#ifndef ICE_IGNORE_VERSION
//
@@ -167,23 +122,40 @@ Ice::initialize(int& argc, char* argv[], const InitializationData& initData, Int
throw VersionMismatchException(__FILE__, __LINE__);
}
#endif
+}
- InitializationData tmpData = initData;
- if(tmpData.properties == 0)
- {
- tmpData.properties = getDefaultProperties(argc, argv);
- }
- StringSeq args = argsToStringSeq(argc, argv);
- args = tmpData.properties->parseIceCommandLineOptions(args);
- stringSeqToArgs(args, argc, argv);
- CommunicatorI* communicatorI = new CommunicatorI(tmpData);
+CommunicatorPtr
+Ice::initialize(int& argc, char* argv[], const InitializationData& initializationData, Int version)
+{
+ InitializationData initData = initializationData;
+ initData.properties = createProperties(argc, argv, initData.properties);
+
+ CommunicatorI* communicatorI = new CommunicatorI(initData);
CommunicatorPtr result = communicatorI; // For exception safety.
communicatorI->finishSetup(argc, argv);
return result;
}
CommunicatorPtr
+Ice::initialize(const InitializationData& initData, Int version)
+{
+ //
+ // We can't simply call the other initialize() because this one does NOT read
+ // the config file, while the other one always does.
+ //
+ checkIceVersion(version);
+
+ CommunicatorI* communicatorI = new CommunicatorI(initData);
+ CommunicatorPtr result = communicatorI; // For exception safety.
+ int argc = 0;
+ char* argv[] = { 0 };
+ communicatorI->finishSetup(argc, argv);
+ return result;
+}
+
+
+CommunicatorPtr
Ice::initializeWithProperties(int& argc, char* argv[], const PropertiesPtr& properties, Int version)
{
InitializationData initData;
diff --git a/cpp/src/Ice/PropertiesI.cpp b/cpp/src/Ice/PropertiesI.cpp
index 44e3bfb9b3e..598dd2110a5 100644
--- a/cpp/src/Ice/PropertiesI.cpp
+++ b/cpp/src/Ice/PropertiesI.cpp
@@ -240,11 +240,28 @@ Ice::PropertiesI::PropertiesI(const PropertiesI* p) :
Ice::PropertiesI::PropertiesI()
{
- loadConfig();
}
-Ice::PropertiesI::PropertiesI(StringSeq& args)
+Ice::PropertiesI::PropertiesI(StringSeq& args, const PropertiesPtr& defaults)
{
+ //
+ // Since there is no way to iterate over all Properties, we
+ // assume that defaults (when not null) points to a PropertiesI
+ //
+ if(defaults != 0)
+ {
+ PropertiesI* defaultsI = dynamic_cast<PropertiesI*>(defaults.get());
+ if(defaultsI == 0)
+ {
+ throw InitializationException(__FILE__, __LINE__,
+ "Invalid Properties implementation");
+ }
+
+ IceUtil::Mutex::Lock sync(*defaultsI);
+ _properties = defaultsI->_properties;
+ }
+
+
StringSeq::iterator q = args.begin();
if(q != args.end())
{
@@ -282,6 +299,7 @@ Ice::PropertiesI::PropertiesI(StringSeq& args)
args = parseIceCommandLineOptions(args);
}
+
void
Ice::PropertiesI::parseLine(const string& line)
{
diff --git a/cpp/src/Ice/PropertiesI.h b/cpp/src/Ice/PropertiesI.h
index 603e1bc2a24..0a8a5622daa 100644
--- a/cpp/src/Ice/PropertiesI.h
+++ b/cpp/src/Ice/PropertiesI.h
@@ -33,14 +33,14 @@ public:
virtual PropertiesPtr clone();
private:
-
- PropertiesI(const PropertiesI*);
PropertiesI();
- PropertiesI(StringSeq&);
+ PropertiesI(StringSeq&, const PropertiesPtr&);
+ PropertiesI(const PropertiesI*);
friend ICE_API PropertiesPtr createProperties();
- friend ICE_API PropertiesPtr createProperties(StringSeq&);
- friend ICE_API PropertiesPtr createProperties(int&, char*[]);
+ friend ICE_API PropertiesPtr createProperties(StringSeq&, const PropertiesPtr&);
+ friend ICE_API PropertiesPtr createProperties(int&, char*[], const PropertiesPtr&);
+
void parseLine(const std::string&);
diff --git a/cpp/src/Ice/Service.cpp b/cpp/src/Ice/Service.cpp
index a54b6a369ee..8379d315813 100755
--- a/cpp/src/Ice/Service.cpp
+++ b/cpp/src/Ice/Service.cpp
@@ -189,7 +189,7 @@ Ice::Service::interrupt()
}
int
-Ice::Service::main(int& argc, char* argv[])
+Ice::Service::main(int& argc, char* argv[], const InitializationData& initData)
{
_name = argv[0];
@@ -449,7 +449,7 @@ Ice::Service::main(int& argc, char* argv[])
}
#endif
- return run(argc, argv);
+ return run(argc, argv, initData);
}
Ice::CommunicatorPtr
@@ -493,14 +493,14 @@ Ice::Service::checkSystem() const
}
int
-Ice::Service::run(int& argc, char* argv[])
+Ice::Service::run(int& argc, char* argv[], const InitializationData& initData)
{
if(_service)
{
#ifdef _WIN32
- return runService(argc, argv);
+ return runService(argc, argv, initData);
#else
- return runDaemon(argc, argv);
+ return runDaemon(argc, argv, initData);
#endif
}
@@ -521,7 +521,7 @@ Ice::Service::run(int& argc, char* argv[])
//
// Initialize the communicator.
//
- _communicator = initializeCommunicator(argc, argv);
+ _communicator = initializeCommunicator(argc, argv, initData);
//
// Use the configured logger.
@@ -916,9 +916,9 @@ Ice::Service::stop()
}
Ice::CommunicatorPtr
-Ice::Service::initializeCommunicator(int& argc, char* argv[])
+Ice::Service::initializeCommunicator(int& argc, char* argv[], const InitializationData& initData)
{
- return Ice::initialize(argc, argv);
+ return Ice::initialize(argc, argv, initData);
}
void
@@ -1045,7 +1045,7 @@ Ice::Service::disableInterrupt()
#ifdef _WIN32
int
-Ice::Service::runService(int argc, char* argv[])
+Ice::Service::runService(int argc, char* argv[], const InitializationData& initData)
{
assert(_service);
@@ -1070,6 +1070,8 @@ Ice::Service::runService(int argc, char* argv[])
_serviceArgs.push_back(argv[idx]);
}
+ _initData = initData;
+
SERVICE_TABLE_ENTRY ste[] =
{
{ const_cast<char*>(_name.c_str()), Ice_Service_ServiceMain },
@@ -1271,7 +1273,7 @@ Ice::Service::serviceMain(int argc, char* argv[])
//
try
{
- _communicator = initializeCommunicator(argc, args);
+ _communicator = initializeCommunicator(argc, args, _initData);
}
catch(const Ice::Exception& ex)
{
@@ -1470,7 +1472,7 @@ Ice::ServiceStatusManager::run()
#else
int
-Ice::Service::runDaemon(int argc, char* argv[])
+Ice::Service::runDaemon(int argc, char* argv[], const InitializationData& initData)
{
assert(_service);
@@ -1650,7 +1652,7 @@ Ice::Service::runDaemon(int argc, char* argv[])
//
// Initialize the communicator.
//
- _communicator = initializeCommunicator(argc, argv);
+ _communicator = initializeCommunicator(argc, argv, initData);
if(_closeFiles)
{
diff --git a/cpp/src/IceGrid/IceGridNode.cpp b/cpp/src/IceGrid/IceGridNode.cpp
index 5cb0a8d01d0..cd1ab743ac1 100644
--- a/cpp/src/IceGrid/IceGridNode.cpp
+++ b/cpp/src/IceGrid/IceGridNode.cpp
@@ -111,7 +111,7 @@ protected:
virtual bool start(int, char*[]);
virtual void waitForShutdown();
virtual bool stop();
- virtual CommunicatorPtr initializeCommunicator(int&, char*[]);
+ virtual CommunicatorPtr initializeCommunicator(int&, char*[], const InitializationData&);
private:
@@ -653,18 +653,20 @@ NodeService::stop()
}
CommunicatorPtr
-NodeService::initializeCommunicator(int& argc, char* argv[])
+NodeService::initializeCommunicator(int& argc, char* argv[],
+ const InitializationData& initializationData)
{
- PropertiesPtr defaultProperties = getDefaultProperties(argc, argv);
-
+ InitializationData initData = initializationData;
+ initData.properties = createProperties(argc, argv, initData.properties);
+
//
// Make sure that IceGridNode doesn't use thread-per-connection or
// collocation optimization
//
- defaultProperties->setProperty("Ice.ThreadPerConnection", "");
- defaultProperties->setProperty("Ice.Default.CollocationOptimization", "0");
+ initData.properties->setProperty("Ice.ThreadPerConnection", "");
+ initData.properties->setProperty("Ice.Default.CollocationOptimization", "0");
- return Service::initializeCommunicator(argc, argv);
+ return Service::initializeCommunicator(argc, argv, initData);
}
void
diff --git a/cpp/src/IceGrid/IceGridRegistry.cpp b/cpp/src/IceGrid/IceGridRegistry.cpp
index a44c2faac6b..1a2478e46ea 100644
--- a/cpp/src/IceGrid/IceGridRegistry.cpp
+++ b/cpp/src/IceGrid/IceGridRegistry.cpp
@@ -29,7 +29,7 @@ protected:
virtual bool start(int, char*[]);
virtual bool stop();
- virtual CommunicatorPtr initializeCommunicator(int&, char*[]);
+ virtual CommunicatorPtr initializeCommunicator(int&, char*[], const InitializationData&);
private:
@@ -111,18 +111,20 @@ RegistryService::stop()
}
CommunicatorPtr
-RegistryService::initializeCommunicator(int& argc, char* argv[])
+RegistryService::initializeCommunicator(int& argc, char* argv[],
+ const InitializationData& initializationData)
{
- PropertiesPtr defaultProperties = getDefaultProperties(argc, argv);
+ InitializationData initData = initializationData;
+ initData.properties = createProperties(argc, argv, initData.properties);
//
// Make sure that IceGridRegistry doesn't use
// thread-per-connection or collocation optimization.
//
- defaultProperties->setProperty("Ice.ThreadPerConnection", "");
- defaultProperties->setProperty("Ice.Default.CollocationOptimization", "0");
+ initData.properties->setProperty("Ice.ThreadPerConnection", "");
+ initData.properties->setProperty("Ice.Default.CollocationOptimization", "0");
- return Service::initializeCommunicator(argc, argv);
+ return Service::initializeCommunicator(argc, argv, initData);
}
void
diff --git a/cpp/src/IcePatch2/Server.cpp b/cpp/src/IcePatch2/Server.cpp
index 1d12361a309..efe193805cf 100644
--- a/cpp/src/IcePatch2/Server.cpp
+++ b/cpp/src/IcePatch2/Server.cpp
@@ -50,7 +50,6 @@ protected:
virtual bool start(int, char*[]);
virtual bool stop();
- virtual CommunicatorPtr initializeCommunicator(int&, char*[]);
private:
@@ -196,11 +195,6 @@ IcePatch2::PatcherService::stop()
return true;
}
-CommunicatorPtr
-IcePatch2::PatcherService::initializeCommunicator(int& argc, char* argv[])
-{
- return Service::initializeCommunicator(argc, argv);
-}
void
IcePatch2::PatcherService::usage(const string& appName)
diff --git a/cpp/test/Glacier2/addressFilter/Client.cpp b/cpp/test/Glacier2/addressFilter/Client.cpp
index a327f1ac5d6..1061478cb94 100755
--- a/cpp/test/Glacier2/addressFilter/Client.cpp
+++ b/cpp/test/Glacier2/addressFilter/Client.cpp
@@ -30,16 +30,17 @@ public:
int
main(int argc, char* argv[])
{
- PropertiesPtr properties = getDefaultProperties(argc, argv);
-
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
+
//
// We want to check whether the client retries for evicted
// proxies, even with regular retries disabled.
//
- properties->setProperty("Ice.RetryIntervals", "-1");
+ initData.properties->setProperty("Ice.RetryIntervals", "-1");
AttackClient app;
- return app.main(argc, argv);
+ return app.main(argc, argv, initData);
}
int
@@ -81,8 +82,10 @@ AttackClient::run(int argc, char* argv[])
// This is also ok.
//
}
- catch(const LocalException&)
+ catch(const LocalException& e)
{
+ cerr << "The exception is: " << e << endl;
+ cerr << "-----------------------" << endl;
test("Unexpected local exception" == 0);
}
}
diff --git a/cpp/test/Glacier2/attack/Client.cpp b/cpp/test/Glacier2/attack/Client.cpp
index ab588efa07b..86500f216ec 100644
--- a/cpp/test/Glacier2/attack/Client.cpp
+++ b/cpp/test/Glacier2/attack/Client.cpp
@@ -28,16 +28,17 @@ public:
int
main(int argc, char* argv[])
{
- PropertiesPtr properties = getDefaultProperties(argc, argv);
-
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
+
//
// We want to check whether the client retries for evicted
// proxies, even with regular retries disabled.
//
- properties->setProperty("Ice.RetryIntervals", "-1");
+ initData.properties->setProperty("Ice.RetryIntervals", "-1");
AttackClient app;
- return app.main(argc, argv);
+ return app.main(argc, argv, initData);
}
int
diff --git a/cpp/test/Glacier2/filters/Client.cpp b/cpp/test/Glacier2/filters/Client.cpp
index a14516a0ca5..a0187228357 100755
--- a/cpp/test/Glacier2/filters/Client.cpp
+++ b/cpp/test/Glacier2/filters/Client.cpp
@@ -16,6 +16,8 @@ using namespace std;
using namespace Ice;
using namespace Test;
+static Ice::InitializationData initData;
+
class SessionControlClient : public Application
{
public:
@@ -26,17 +28,17 @@ public:
int
main(int argc, char* argv[])
{
- PropertiesPtr properties = getDefaultProperties(argc, argv);
+ initData.properties = Ice::createProperties(argc, argv);
//
// We want to check whether the client retries for evicted
// proxies, even with regular retries disabled.
//
- properties->setProperty("Ice.RetryIntervals", "-1");
- properties->setProperty("Ice.Warn.Connections", "0");
+ initData.properties->setProperty("Ice.RetryIntervals", "-1");
+ initData.properties->setProperty("Ice.Warn.Connections", "0");
SessionControlClient app;
- return app.main(argc, argv);
+ return app.main(argc, argv, initData);
}
int
@@ -47,7 +49,7 @@ SessionControlClient::run(int argc, char* argv[])
// to bypass the router for test control operations.
//
cout << "accessing test controller... " << flush;
- Ice::CommunicatorPtr controlComm = Ice::initialize(argc, argv);
+ Ice::CommunicatorPtr controlComm = Ice::initialize(argc, argv, initData);
TestControllerPrx controller = TestControllerPrx::checkedCast(
controlComm->stringToProxy("testController:tcp -p 12013"));
test(controller);
diff --git a/cpp/test/Glacier2/router/Client.cpp b/cpp/test/Glacier2/router/Client.cpp
index 9f7396fbf48..6e4b2aac4b8 100644
--- a/cpp/test/Glacier2/router/Client.cpp
+++ b/cpp/test/Glacier2/router/Client.cpp
@@ -17,6 +17,8 @@ using namespace std;
using namespace Ice;
using namespace Test;
+static Ice::InitializationData initData;
+
class AMI_Callback_initiateConcurrentCallbackI : public AMI_Callback_initiateConcurrentCallback,
public IceUtil::Monitor<IceUtil::Mutex>
{
@@ -82,9 +84,7 @@ public:
virtual
void run()
{
- int argc = 0;
- char** argv = 0;
- CommunicatorPtr communicator = initialize(argc, argv);
+ CommunicatorPtr communicator = initialize(initData);
ObjectPrx routerBase = communicator->stringToProxy("abc/def:default -p 12347 -t 10000");
Glacier2::RouterPrx router = Glacier2::RouterPrx::checkedCast(routerBase);
communicator->setDefaultRouter(router);
@@ -191,9 +191,7 @@ public:
virtual
void run()
{
- int argc = 0;
- char** argv = 0;
- CommunicatorPtr communicator = initialize(argc, argv);
+ CommunicatorPtr communicator = initialize(initData);
ObjectPrx routerBase = communicator->stringToProxy("abc/def:default -p 12347 -t 10000");
_router = Glacier2::RouterPrx::checkedCast(routerBase);
communicator->setDefaultRouter(_router);
@@ -385,11 +383,11 @@ main(int argc, char* argv[])
// the router before session establishment, as well as after
// session destruction. Both will cause a ConnectionLostException.
//
- Ice::PropertiesPtr properties = Ice::getDefaultProperties(argc, argv);
- properties->setProperty("Ice.Warn.Connections", "0");
+ initData.properties = Ice::createProperties(argc, argv);
+ initData.properties->setProperty("Ice.Warn.Connections", "0");
CallbackClient app;
- return app.main(argc, argv);
+ return app.main(argc, argv, initData);
}
int
diff --git a/cpp/test/Glacier2/router/Server.cpp b/cpp/test/Glacier2/router/Server.cpp
index 4abf6278033..6ab68f2e12b 100644
--- a/cpp/test/Glacier2/router/Server.cpp
+++ b/cpp/test/Glacier2/router/Server.cpp
@@ -24,12 +24,14 @@ public:
int
main(int argc, char* argv[])
{
- Ice::PropertiesPtr properties = Ice::getDefaultProperties(argc, argv);
- properties->setProperty("Ice.Warn.Connections", "0");
- properties->setProperty("Ice.Warn.Dispatch", "0");
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
+
+ initData.properties->setProperty("Ice.Warn.Connections", "0");
+ initData.properties->setProperty("Ice.Warn.Dispatch", "0");
CallbackServer app;
- return app.main(argc, argv);
+ return app.main(argc, argv, initData);
}
int
diff --git a/cpp/test/Glacier2/sessionControl/Client.cpp b/cpp/test/Glacier2/sessionControl/Client.cpp
index 063d81d4aa8..fe69e104333 100644
--- a/cpp/test/Glacier2/sessionControl/Client.cpp
+++ b/cpp/test/Glacier2/sessionControl/Client.cpp
@@ -27,17 +27,18 @@ public:
int
main(int argc, char* argv[])
{
- PropertiesPtr properties = getDefaultProperties(argc, argv);
-
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
+
//
// We want to check whether the client retries for evicted
// proxies, even with regular retries disabled.
//
- properties->setProperty("Ice.RetryIntervals", "-1");
- properties->setProperty("Ice.Warn.Connections", "0");
+ initData.properties->setProperty("Ice.RetryIntervals", "-1");
+ initData.properties->setProperty("Ice.Warn.Connections", "0");
SessionControlClient app;
- return app.main(argc, argv);
+ return app.main(argc, argv, initData);
}
int
diff --git a/cpp/test/Glacier2/ssl/Client.cpp b/cpp/test/Glacier2/ssl/Client.cpp
index bbed678607a..4598cf7b266 100755
--- a/cpp/test/Glacier2/ssl/Client.cpp
+++ b/cpp/test/Glacier2/ssl/Client.cpp
@@ -30,11 +30,12 @@ main(int argc, char* argv[])
// the router before session establishment, as well as after
// session destruction. Both will cause a ConnectionLostException.
//
- Ice::PropertiesPtr properties = Ice::getDefaultProperties(argc, argv);
- properties->setProperty("Ice.Warn.Connections", "0");
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
+ initData.properties->setProperty("Ice.Warn.Connections", "0");
CallbackClient app;
- return app.main(argc, argv);
+ return app.main(argc, argv, initData);
}
int
diff --git a/cpp/test/Ice/custom/Collocated.cpp b/cpp/test/Ice/custom/Collocated.cpp
index dc1c4eb4f35..f4a5f3e13f1 100644
--- a/cpp/test/Ice/custom/Collocated.cpp
+++ b/cpp/test/Ice/custom/Collocated.cpp
@@ -38,8 +38,8 @@ main(int argc, char** argv)
try
{
- Ice::InitializationData initData;
- initData.properties = Ice::getDefaultProperties(argc, argv);
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
initData.properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000");
initData.stringConverter = new Test::StringConverterI();
initData.wstringConverter = new Test::WstringConverterI();
diff --git a/cpp/test/Ice/custom/Server.cpp b/cpp/test/Ice/custom/Server.cpp
index 2517e5a53f2..ada96ddd009 100644
--- a/cpp/test/Ice/custom/Server.cpp
+++ b/cpp/test/Ice/custom/Server.cpp
@@ -37,8 +37,8 @@ main(int argc, char** argv)
try
{
- Ice::InitializationData initData;
- initData.properties = Ice::getDefaultProperties(argc, argv);
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
initData.properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000");
initData.stringConverter = new Test::StringConverterI();
initData.wstringConverter = new Test::WstringConverterI();
diff --git a/cpp/test/Ice/custom/ServerAMD.cpp b/cpp/test/Ice/custom/ServerAMD.cpp
index da682c753b4..d194fe648f0 100644
--- a/cpp/test/Ice/custom/ServerAMD.cpp
+++ b/cpp/test/Ice/custom/ServerAMD.cpp
@@ -37,8 +37,9 @@ main(int argc, char** argv)
try
{
- Ice::InitializationData initData;
- initData.properties = Ice::getDefaultProperties(argc, argv);
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
+
initData.properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000");
initData.stringConverter = new Test::StringConverterI();
initData.wstringConverter = new Test::WstringConverterI();
diff --git a/cpp/test/Ice/faultTolerance/Client.cpp b/cpp/test/Ice/faultTolerance/Client.cpp
index ece20304dfb..92ebc4fefa3 100644
--- a/cpp/test/Ice/faultTolerance/Client.cpp
+++ b/cpp/test/Ice/faultTolerance/Client.cpp
@@ -64,14 +64,15 @@ main(int argc, char* argv[])
try
{
- Ice::PropertiesPtr properties = Ice::getDefaultProperties(argc, argv);
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
//
// This test aborts servers, so we don't want warnings.
//
- properties->setProperty("Ice.Warn.Connections", "0");
+ initData.properties->setProperty("Ice.Warn.Connections", "0");
- communicator = Ice::initialize(argc, argv);
+ communicator = Ice::initialize(argc, argv, initData);
status = run(argc, argv, communicator);
}
catch(const Ice::Exception& ex)
diff --git a/cpp/test/Ice/faultTolerance/Server.cpp b/cpp/test/Ice/faultTolerance/Server.cpp
index 55c655b149e..6c7c05832b3 100644
--- a/cpp/test/Ice/faultTolerance/Server.cpp
+++ b/cpp/test/Ice/faultTolerance/Server.cpp
@@ -72,10 +72,11 @@ main(int argc, char* argv[])
// our test servers may time out before they are used in the
// test.
//
- Ice::PropertiesPtr properties = Ice::getDefaultProperties(argc, argv);
- properties->setProperty("Ice.ServerIdleTime", "120"); // Two minutes.
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
+ initData.properties->setProperty("Ice.ServerIdleTime", "120"); // Two minutes.
- communicator = Ice::initialize(argc, argv);
+ communicator = Ice::initialize(argc, argv, initData);
status = run(argc, argv, communicator);
}
catch(const Ice::Exception& ex)
diff --git a/cpp/test/Ice/location/Server.cpp b/cpp/test/Ice/location/Server.cpp
index bdf7066b5d2..e141e427e07 100644
--- a/cpp/test/Ice/location/Server.cpp
+++ b/cpp/test/Ice/location/Server.cpp
@@ -14,7 +14,8 @@
using namespace std;
int
-run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator)
+run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator,
+ const Ice::InitializationData& initData)
{
//
// Register the server manager. The server manager creates a new
@@ -34,7 +35,7 @@ run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator)
//
ServerLocatorRegistryPtr registry = new ServerLocatorRegistry();
registry->addObject(adapter->createProxy(communicator->stringToIdentity("ServerManager")));
- Ice::ObjectPtr object = new ServerManagerI(adapter, registry);
+ Ice::ObjectPtr object = new ServerManagerI(adapter, registry, initData);
adapter->add(object, communicator->stringToIdentity("ServerManager"));
Ice::LocatorRegistryPrx registryPrx =
@@ -57,8 +58,12 @@ main(int argc, char* argv[])
try
{
- communicator = Ice::initialize(argc, argv);
- status = run(argc, argv, communicator);
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
+ communicator = Ice::initialize(argc, argv, initData);
+ assert(initData.properties != communicator->getProperties());
+
+ status = run(argc, argv, communicator, initData);
}
catch(const Ice::Exception& ex)
{
diff --git a/cpp/test/Ice/location/TestI.cpp b/cpp/test/Ice/location/TestI.cpp
index 099da3e0d96..45cd666fb86 100644
--- a/cpp/test/Ice/location/TestI.cpp
+++ b/cpp/test/Ice/location/TestI.cpp
@@ -13,17 +13,24 @@
using namespace Test;
-ServerManagerI::ServerManagerI(const Ice::ObjectAdapterPtr& adapter, const ServerLocatorRegistryPtr& registry) :
- _adapter(adapter), _registry(registry)
+ServerManagerI::ServerManagerI(const Ice::ObjectAdapterPtr& adapter,
+ const ServerLocatorRegistryPtr& registry,
+ const Ice::InitializationData& initData) :
+ _adapter(adapter), _registry(registry), _initData(initData)
{
+ _initData.properties->setProperty("TestAdapter.Endpoints", "default");
+ _initData.properties->setProperty("TestAdapter.AdapterId", "TestAdapter");
+ _initData.properties->setProperty("TestAdapter.ReplicaGroupId", "ReplicatedAdapter");
+
+ _initData.properties->setProperty("TestAdapter2.Endpoints", "default");
+ _initData.properties->setProperty("TestAdapter2.AdapterId", "TestAdapter2");
+
+ _initData.properties->setProperty("Ice.PrintAdapterReady", "0");
}
void
ServerManagerI::startServer(const Ice::Current& current)
{
- int argc = 0;
- char** argv = 0;
-
for(::std::vector<Ice::CommunicatorPtr>::const_iterator i = _communicators.begin(); i != _communicators.end(); ++i)
{
(*i)->waitForShutdown();
@@ -39,15 +46,11 @@ ServerManagerI::startServer(const Ice::Current& current)
// its endpoints with the locator and create references containing
// the adapter id instead of the endpoints.
//
- Ice::CommunicatorPtr serverCommunicator = Ice::initialize(argc, argv);
+
+ Ice::CommunicatorPtr serverCommunicator = Ice::initialize(_initData);
_communicators.push_back(serverCommunicator);
- serverCommunicator->getProperties()->setProperty("TestAdapter.Endpoints", "default");
- serverCommunicator->getProperties()->setProperty("TestAdapter.AdapterId", "TestAdapter");
- serverCommunicator->getProperties()->setProperty("TestAdapter.ReplicaGroupId", "ReplicatedAdapter");
- Ice::ObjectAdapterPtr adapter = serverCommunicator->createObjectAdapter("TestAdapter");
- serverCommunicator->getProperties()->setProperty("TestAdapter2.Endpoints", "default");
- serverCommunicator->getProperties()->setProperty("TestAdapter2.AdapterId", "TestAdapter2");
+ Ice::ObjectAdapterPtr adapter = serverCommunicator->createObjectAdapter("TestAdapter");
Ice::ObjectAdapterPtr adapter2 = serverCommunicator->createObjectAdapter("TestAdapter2");
Ice::ObjectPrx locator = serverCommunicator->stringToProxy("locator:default -p 12010");
diff --git a/cpp/test/Ice/location/TestI.h b/cpp/test/Ice/location/TestI.h
index 4bd123d0d4d..c410efc9fdd 100644
--- a/cpp/test/Ice/location/TestI.h
+++ b/cpp/test/Ice/location/TestI.h
@@ -18,7 +18,8 @@ class ServerManagerI : public Test::ServerManager
{
public:
- ServerManagerI(const Ice::ObjectAdapterPtr&, const ServerLocatorRegistryPtr&);
+ ServerManagerI(const Ice::ObjectAdapterPtr&, const ServerLocatorRegistryPtr&,
+ const Ice::InitializationData&);
virtual void startServer(const Ice::Current&);
virtual void shutdown(const Ice::Current&);
@@ -28,6 +29,7 @@ private:
Ice::ObjectAdapterPtr _adapter;
std::vector<Ice::CommunicatorPtr> _communicators;
ServerLocatorRegistryPtr _registry;
+ Ice::InitializationData _initData;
};
class HelloI : public Test::Hello
diff --git a/cpp/test/Ice/operations/AllTests.cpp b/cpp/test/Ice/operations/AllTests.cpp
index f3ebb343833..8d8cd2aa77e 100644
--- a/cpp/test/Ice/operations/AllTests.cpp
+++ b/cpp/test/Ice/operations/AllTests.cpp
@@ -15,7 +15,8 @@
using namespace std;
Test::MyClassPrx
-allTests(const Ice::CommunicatorPtr& communicator, bool collocated)
+allTests(const Ice::CommunicatorPtr& communicator,
+ const Ice::InitializationData& initData, bool collocated)
{
cout << "testing stringToProxy... " << flush;
string ref = "test:default -p 12010 -t 10000";
@@ -133,18 +134,18 @@ allTests(const Ice::CommunicatorPtr& communicator, bool collocated)
}
cout << "testing twoway operations... " << flush;
- void twoways(const Ice::CommunicatorPtr&, const Test::MyClassPrx&);
- twoways(communicator, cl);
- twoways(communicator, derived);
+ void twoways(const Ice::CommunicatorPtr&, const Ice::InitializationData&, const Test::MyClassPrx&);
+ twoways(communicator, initData, cl);
+ twoways(communicator, initData, derived);
derived->opDerived();
cout << "ok" << endl;
if(!collocated)
{
cout << "testing twoway operations with AMI... " << flush;
- void twowaysAMI(const Ice::CommunicatorPtr&, const Test::MyClassPrx&);
- twowaysAMI(communicator, cl);
- twowaysAMI(communicator, derived);
+ void twowaysAMI(const Ice::CommunicatorPtr&, const Ice::InitializationData&, const Test::MyClassPrx&);
+ twowaysAMI(communicator, initData, cl);
+ twowaysAMI(communicator, initData, derived);
cout << "ok" << endl;
cout << "testing batch oneway operations... " << flush;
diff --git a/cpp/test/Ice/operations/Client.cpp b/cpp/test/Ice/operations/Client.cpp
index 54e2ed2c9ae..6669a1f041a 100644
--- a/cpp/test/Ice/operations/Client.cpp
+++ b/cpp/test/Ice/operations/Client.cpp
@@ -14,10 +14,13 @@
using namespace std;
int
-run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator)
+run(int argc, char* argv[],
+ const Ice::CommunicatorPtr& communicator,
+ const Ice::InitializationData& initData)
{
- Test::MyClassPrx allTests(const Ice::CommunicatorPtr&, bool);
- Test::MyClassPrx myClass = allTests(communicator, false);
+ Test::MyClassPrx allTests(const Ice::CommunicatorPtr&,
+ const Ice::InitializationData&, bool);
+ Test::MyClassPrx myClass = allTests(communicator, initData, false);
cout << "testing server shutdown... " << flush;
myClass->shutdown();
@@ -46,24 +49,25 @@ main(int argc, char* argv[])
// In this test, we need at least two threads in the
// client side thread pool for nested AMI.
//
- Ice::PropertiesPtr properties = Ice::getDefaultProperties(argc, argv);
- properties->setProperty("Ice.ThreadPool.Client.Size", "2");
- properties->setProperty("Ice.ThreadPool.Client.SizeWarn", "0");
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
+ initData.properties->setProperty("Ice.ThreadPool.Client.Size", "2");
+ initData.properties->setProperty("Ice.ThreadPool.Client.SizeWarn", "0");
//
// We must set MessageSizeMax to an explicit values, because
// we run tests to check whether Ice.MemoryLimitException is
// raised as expected.
//
- properties->setProperty("Ice.MessageSizeMax", "100");
+ initData.properties->setProperty("Ice.MessageSizeMax", "100");
//
// We don't want connection warnings because of the timeout test.
//
- properties->setProperty("Ice.Warn.Connections", "0");
+ initData.properties->setProperty("Ice.Warn.Connections", "0");
- communicator = Ice::initialize(argc, argv);
- status = run(argc, argv, communicator);
+ communicator = Ice::initialize(argc, argv, initData);
+ status = run(argc, argv, communicator, initData);
}
catch(const Ice::Exception& ex)
{
diff --git a/cpp/test/Ice/operations/Collocated.cpp b/cpp/test/Ice/operations/Collocated.cpp
index a8016a9f753..ca0e74e0563 100644
--- a/cpp/test/Ice/operations/Collocated.cpp
+++ b/cpp/test/Ice/operations/Collocated.cpp
@@ -13,7 +13,8 @@
using namespace std;
int
-run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator)
+run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator,
+ const Ice::InitializationData& initData)
{
communicator->getProperties()->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000");
Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter");
@@ -22,8 +23,8 @@ run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator)
adapter->add(new TestCheckedCastI, communicator->stringToIdentity("context"));
adapter->activate();
- Test::MyClassPrx allTests(const Ice::CommunicatorPtr&, bool);
- allTests(communicator, true);
+ Test::MyClassPrx allTests(const Ice::CommunicatorPtr&, const Ice::InitializationData&, bool);
+ allTests(communicator, initData, true);
return EXIT_SUCCESS;
}
@@ -36,8 +37,10 @@ main(int argc, char* argv[])
try
{
- communicator = Ice::initialize(argc, argv);
- status = run(argc, argv, communicator);
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
+ communicator = Ice::initialize(argc, argv, initData);
+ status = run(argc, argv, communicator, initData);
}
catch(const Ice::Exception& ex)
{
diff --git a/cpp/test/Ice/operations/Server.cpp b/cpp/test/Ice/operations/Server.cpp
index 568de1dca4c..7e782503d4a 100644
--- a/cpp/test/Ice/operations/Server.cpp
+++ b/cpp/test/Ice/operations/Server.cpp
@@ -34,10 +34,11 @@ main(int argc, char* argv[])
try
{
- Ice::PropertiesPtr properties = Ice::getDefaultProperties(argc, argv);
- properties->setProperty("Ice.Warn.Connections", "0");
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
+ initData.properties->setProperty("Ice.Warn.Connections", "0");
- communicator = Ice::initialize(argc, argv);
+ communicator = Ice::initialize(argc, argv, initData);
status = run(argc, argv, communicator);
}
catch(const Ice::Exception& ex)
diff --git a/cpp/test/Ice/operations/ServerAMD.cpp b/cpp/test/Ice/operations/ServerAMD.cpp
index b8c86da48be..084eaeff6d9 100644
--- a/cpp/test/Ice/operations/ServerAMD.cpp
+++ b/cpp/test/Ice/operations/ServerAMD.cpp
@@ -34,9 +34,10 @@ main(int argc, char* argv[])
try
{
- Ice::PropertiesPtr properties = Ice::getDefaultProperties(argc, argv);
- properties->setProperty("Ice.Warn.Connections", "0");
- communicator = Ice::initialize(argc, argv);
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
+ initData.properties->setProperty("Ice.Warn.Connections", "0");
+ communicator = Ice::initialize(argc, argv, initData);
status = run(argc, argv, communicator);
}
diff --git a/cpp/test/Ice/operations/Twoways.cpp b/cpp/test/Ice/operations/Twoways.cpp
index 4f0693939f2..f9d5465d231 100644
--- a/cpp/test/Ice/operations/Twoways.cpp
+++ b/cpp/test/Ice/operations/Twoways.cpp
@@ -25,7 +25,8 @@
using namespace std;
void
-twoways(const Ice::CommunicatorPtr& communicator, const Test::MyClassPrx& p)
+twoways(const Ice::CommunicatorPtr& communicator, const Ice::InitializationData& initializationData,
+ const Test::MyClassPrx& p)
{
{
p->opVoid();
@@ -645,11 +646,9 @@ twoways(const Ice::CommunicatorPtr& communicator, const Test::MyClassPrx& p)
//
// Test that default context is obtained correctly from communicator.
//
- int argc = 0;
- char* argv[] = { "" };
- Ice::InitializationData initData;
+ Ice::InitializationData initData = initializationData;
initData.defaultContext["a"] = "b";
- Ice::CommunicatorPtr communicator2 = Ice::initialize(argc, argv, initData);
+ Ice::CommunicatorPtr communicator2 = Ice::initialize(initData);
Test::MyClassPrx c = Test::MyClassPrx::checkedCast(
communicator2->stringToProxy("test:default -p 12010 -t 10000"));
diff --git a/cpp/test/Ice/operations/TwowaysAMI.cpp b/cpp/test/Ice/operations/TwowaysAMI.cpp
index a356191dbc8..d04c79ba4c7 100644
--- a/cpp/test/Ice/operations/TwowaysAMI.cpp
+++ b/cpp/test/Ice/operations/TwowaysAMI.cpp
@@ -252,7 +252,7 @@ public:
test(c2->ice_getIdentity() == _communicator->stringToIdentity("noSuchIdentity"));
test(r->ice_getIdentity() == _communicator->stringToIdentity("test"));
// We can't do the callbacks below in thread per connection mode.
- if(!Ice::getDefaultProperties()->getPropertyAsInt("Ice.ThreadPerConnection"))
+ if(!_communicator->getProperties()->getPropertyAsInt("Ice.ThreadPerConnection"))
{
r->opVoid();
c1->opVoid();
@@ -284,6 +284,11 @@ class AMI_MyClass_opStructI : public Test::AMI_MyClass_opStruct, public Callback
{
public:
+ AMI_MyClass_opStructI(const Ice::CommunicatorPtr& communicator) :
+ _communicator(communicator)
+ {
+ }
+
virtual void ice_response(const ::Test::Structure& rso, const ::Test::Structure& so)
{
test(rso.p == 0);
@@ -292,7 +297,7 @@ public:
test(so.e == Test::enum3);
test(so.s.s == "a new string");
// We can't do the callbacks below in thread per connection mode.
- if(!Ice::getDefaultProperties()->getPropertyAsInt("Ice.ThreadPerConnection"))
+ if(!_communicator->getProperties()->getPropertyAsInt("Ice.ThreadPerConnection"))
{
so.p->opVoid();
}
@@ -303,6 +308,10 @@ public:
{
test(false);
}
+
+private:
+
+ Ice::CommunicatorPtr _communicator;
};
typedef IceUtil::Handle<AMI_MyClass_opStructI> AMI_MyClass_opStructIPtr;
@@ -863,7 +872,8 @@ public:
typedef IceUtil::Handle<AMI_MyClass_opDoubleMarshalingI> AMI_MyClass_opDoubleMarshalingIPtr;
void
-twowaysAMI(const Ice::CommunicatorPtr& communicator, const Test::MyClassPrx& p)
+twowaysAMI(const Ice::CommunicatorPtr& communicator,
+ const Ice::InitializationData& initializationData, const Test::MyClassPrx& p)
{
{
// Check that a call to a void operation raises TwowayOnlyException
@@ -960,7 +970,7 @@ twowaysAMI(const Ice::CommunicatorPtr& communicator, const Test::MyClassPrx& p)
si2.e = Test::enum2;
si2.s.s = "def";
- AMI_MyClass_opStructIPtr cb = new AMI_MyClass_opStructI;
+ AMI_MyClass_opStructIPtr cb = new AMI_MyClass_opStructI(communicator);
p->opStruct_async(cb, si1, si2);
test(cb->check());
}
@@ -1229,11 +1239,9 @@ twowaysAMI(const Ice::CommunicatorPtr& communicator, const Test::MyClassPrx& p)
//
// Test that default context is obtained correctly from communicator.
//
- int argc = 0;
- char* argv[] = { "" };
- Ice::InitializationData initData;
+ Ice::InitializationData initData = initializationData;
initData.defaultContext["a"] = "b";
- Ice::CommunicatorPtr communicator2 = Ice::initialize(argc, argv, initData);
+ Ice::CommunicatorPtr communicator2 = Ice::initialize(initData);
Test::MyClassPrx c = Test::MyClassPrx::checkedCast(
communicator2->stringToProxy("test:default -p 12010 -t 10000"));
diff --git a/cpp/test/Ice/retry/Client.cpp b/cpp/test/Ice/retry/Client.cpp
index 84df5b77d86..0a8f97f5a82 100644
--- a/cpp/test/Ice/retry/Client.cpp
+++ b/cpp/test/Ice/retry/Client.cpp
@@ -31,19 +31,20 @@ main(int argc, char* argv[])
try
{
- Ice::PropertiesPtr properties = Ice::getDefaultProperties(argc, argv);
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
//
// For this test, we want to disable retries.
//
- properties->setProperty("Ice.RetryIntervals", "-1");
+ initData.properties->setProperty("Ice.RetryIntervals", "-1");
//
// This test kills connections, so we don't want warnings.
//
- properties->setProperty("Ice.Warn.Connections", "0");
+ initData.properties->setProperty("Ice.Warn.Connections", "0");
- communicator = Ice::initialize(argc, argv);
+ communicator = Ice::initialize(argc, argv, initData);
status = run(argc, argv, communicator);
}
catch(const Ice::Exception&)
diff --git a/cpp/test/Ice/timeout/AllTests.cpp b/cpp/test/Ice/timeout/AllTests.cpp
index 694933833dc..3d4a7fdf343 100644
--- a/cpp/test/Ice/timeout/AllTests.cpp
+++ b/cpp/test/Ice/timeout/AllTests.cpp
@@ -299,12 +299,10 @@ allTests(const Ice::CommunicatorPtr& communicator)
// Test Ice.Override.Timeout. This property overrides all
// endpoint timeouts.
//
- int argc = 0;
- char* argv[] = { "" };
Ice::InitializationData initData;
initData.properties = communicator->getProperties()->clone();
initData.properties->setProperty("Ice.Override.Timeout", "500");
- Ice::CommunicatorPtr comm = Ice::initialize(argc, argv, initData);
+ Ice::CommunicatorPtr comm = Ice::initialize(initData);
TimeoutPrx to = TimeoutPrx::checkedCast(comm->stringToProxy(sref));
try
{
@@ -335,12 +333,10 @@ allTests(const Ice::CommunicatorPtr& communicator)
//
// Test Ice.Override.ConnectTimeout.
//
- int argc = 0;
- char* argv[] = { "" };
Ice::InitializationData initData;
initData.properties = communicator->getProperties()->clone();
initData.properties->setProperty("Ice.Override.ConnectTimeout", "500");
- Ice::CommunicatorPtr comm = Ice::initialize(argc, argv, initData);
+ Ice::CommunicatorPtr comm = Ice::initialize(initData);
timeout->holdAdapter(750);
TimeoutPrx to = TimeoutPrx::uncheckedCast(comm->stringToProxy(sref));
try
diff --git a/cpp/test/Ice/timeout/Client.cpp b/cpp/test/Ice/timeout/Client.cpp
index a898c593005..e86880d4538 100644
--- a/cpp/test/Ice/timeout/Client.cpp
+++ b/cpp/test/Ice/timeout/Client.cpp
@@ -31,24 +31,25 @@ main(int argc, char* argv[])
try
{
- Ice::PropertiesPtr properties = Ice::getDefaultProperties(argc, argv);
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
//
// For this test, we want to disable retries.
//
- properties->setProperty("Ice.RetryIntervals", "-1");
+ initData.properties->setProperty("Ice.RetryIntervals", "-1");
//
// This test kills connections, so we don't want warnings.
//
- properties->setProperty("Ice.Warn.Connections", "0");
+ initData.properties->setProperty("Ice.Warn.Connections", "0");
//
// Check for AMI timeouts every second.
//
- properties->setProperty("Ice.MonitorConnections", "1");
+ initData.properties->setProperty("Ice.MonitorConnections", "1");
- communicator = Ice::initialize(argc, argv);
+ communicator = Ice::initialize(argc, argv, initData);
status = run(argc, argv, communicator);
}
catch(const Ice::Exception&)
diff --git a/cpp/test/Ice/timeout/Server.cpp b/cpp/test/Ice/timeout/Server.cpp
index c3625ee948b..b4da1eb153d 100644
--- a/cpp/test/Ice/timeout/Server.cpp
+++ b/cpp/test/Ice/timeout/Server.cpp
@@ -32,14 +32,15 @@ main(int argc, char* argv[])
try
{
- Ice::PropertiesPtr properties = Ice::getDefaultProperties(argc, argv);
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
//
// This test kills connections, so we don't want warnings.
//
- properties->setProperty("Ice.Warn.Connections", "0");
+ initData.properties->setProperty("Ice.Warn.Connections", "0");
- communicator = Ice::initialize(argc, argv);
+ communicator = Ice::initialize(argc, argv, initData);
status = run(argc, argv, communicator);
}
catch(const Ice::Exception& ex)
diff --git a/cpp/test/IceGrid/session/Client.cpp b/cpp/test/IceGrid/session/Client.cpp
index f6df01882f0..3489b53620a 100644
--- a/cpp/test/IceGrid/session/Client.cpp
+++ b/cpp/test/IceGrid/session/Client.cpp
@@ -27,9 +27,10 @@ main(int argc, char* argv[])
Ice::CommunicatorPtr communicator;
try
{
- Ice::PropertiesPtr properties = Ice::getDefaultProperties(argc, argv);
- properties->setProperty("Ice.Warn.Connections", "0");
- communicator = Ice::initialize(argc, argv);
+ Ice::InitializationData initData;
+ initData.properties = Ice::createProperties(argc, argv);
+ initData.properties->setProperty("Ice.Warn.Connections", "0");
+ communicator = Ice::initialize(argc, argv, initData);
communicator->getProperties()->parseCommandLineOptions("", Ice::argsToStringSeq(argc, argv));
status = run(argc, argv, communicator);
}