diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2006-04-07 14:03:22 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2006-04-07 14:03:22 +0000 |
commit | c95db5ffb0a898568066a79aaa15acbaee24ac3a (patch) | |
tree | b57c3f89352234f57c5c95b930ed5e45fd019013 | |
parent | Bug 803 - Changed communicator initialzation (diff) | |
download | ice-c95db5ffb0a898568066a79aaa15acbaee24ac3a.tar.bz2 ice-c95db5ffb0a898568066a79aaa15acbaee24ac3a.tar.xz ice-c95db5ffb0a898568066a79aaa15acbaee24ac3a.zip |
Bug 803 - changed communicator initialization
148 files changed, 1187 insertions, 1294 deletions
diff --git a/cpp/CHANGES b/cpp/CHANGES index 79adbc11456..be44fef9fe0 100644 --- a/cpp/CHANGES +++ b/cpp/CHANGES @@ -1,6 +1,14 @@ Changes since version 3.0.1 --------------------------- +- Added communicator initialize method which takes a InitializationData + structure containing communicator members which are only allowed + to be set during communicator creation. Currently included are + Properties, Logger, Stats and default context. The initializeWith + communicator initialization functions have been deprecated and the + setLogge()r, setStats() and setDefaultContext() methods have been + removed. + - Added the new slice metadata, "deprecate" which can be used to qualify operations. On most platforms this will cause a compiler warning to be issued if user code uses the deprecated operation. diff --git a/cppe/CHANGES b/cppe/CHANGES index 87e802c2b65..5efd34fea52 100644 --- a/cppe/CHANGES +++ b/cppe/CHANGES @@ -1,6 +1,13 @@ Changes since version 1.1.0 --------------------------- +- Added communicator initialize method which takes a InitializationData + structure containing communicator members which are only allowed + to be set during communicator creation. Currently included are + Properties, Logger, and default context. The initializeWith + communicator initialization functions have been deprecated and the + setLogger() and setDefaultContext() methods have been removed. + - Added support for the "cpp:type:wstring" slice metadata. When used generated code will use std::wstring instead of std::string. See manual for more details. diff --git a/cppe/demo/IceE/MFC/client/HelloClient.cpp b/cppe/demo/IceE/MFC/client/HelloClient.cpp index 00c19bf82dd..fbb5246fe0a 100644 --- a/cppe/demo/IceE/MFC/client/HelloClient.cpp +++ b/cppe/demo/IceE/MFC/client/HelloClient.cpp @@ -47,12 +47,13 @@ CHelloClientApp::InitInstance() try
{
int argc = 0;
- Ice::PropertiesPtr properties = Ice::createProperties();
+ Ice::InitializationData initData; + initData.properties = Ice::createProperties();
// // Set a default value for Hello.Proxy so that the demo will // run without a configuration file. // - properties->setProperty("Hello.Proxy", "hello:tcp -p 10000"); + initData.properties->setProperty("Hello.Proxy", "hello:tcp -p 10000"); // // Now, load the configuration file if present. Under WinCE we @@ -65,13 +66,13 @@ CHelloClientApp::InitInstance() #endif try { - properties->load(config); + initData.properties->load(config); } catch(const Ice::FileException&) { } - communicator = Ice::initializeWithProperties(argc, 0, properties);
+ communicator = Ice::initialize(argc, 0, initData);
}
catch(const Ice::Exception& ex)
{
diff --git a/cppe/demo/IceE/MFC/server/HelloServer.cpp b/cppe/demo/IceE/MFC/server/HelloServer.cpp index b4ff8999560..4fdd5fbb5db 100644 --- a/cppe/demo/IceE/MFC/server/HelloServer.cpp +++ b/cppe/demo/IceE/MFC/server/HelloServer.cpp @@ -51,13 +51,14 @@ BOOL CHelloServerApp::InitInstance() try
{
int argc = 0;
- Ice::PropertiesPtr properties = Ice::createProperties();
+ Ice::InitializationData initData; + initData.properties = Ice::createProperties();
// // Set a default value for Hello.Endpoints so that the demo // will run without a configuration file. // - properties->setProperty("Hello.Endpoints", "tcp -p 10000"); + initData.properties->setProperty("Hello.Endpoints", "tcp -p 10000"); // // Now, load the configuration file if present. Under WinCE we @@ -70,15 +71,16 @@ BOOL CHelloServerApp::InitInstance() #endif try { - properties->load(config); + initData.properties->load(config); } catch(const Ice::FileException&) { } - communicator = Ice::initializeWithProperties(argc, 0, properties);
log = new LogI;
- communicator->setLogger(log);
+ initData.logger = log; + + communicator = Ice::initializeWithProperties(argc, 0, initData);
adapter = communicator->createObjectAdapter("Hello");
}
catch(const IceUtil::Exception& ex)
diff --git a/cppe/demo/IceE/bidir/Client.cpp b/cppe/demo/IceE/bidir/Client.cpp index 63b82151152..8a1b16f3875 100644 --- a/cppe/demo/IceE/bidir/Client.cpp +++ b/cppe/demo/IceE/bidir/Client.cpp @@ -65,9 +65,10 @@ main(int argc, char* argv[]) try { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->load("config"); - communicator = Ice::initializeWithProperties(argc, argv, properties); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->load("config"); + communicator = Ice::initialize(argc, argv, initData); status = run(argc, argv, communicator); } catch(const Ice::Exception& ex) diff --git a/cppe/demo/IceE/bidir/Server.cpp b/cppe/demo/IceE/bidir/Server.cpp index 49a7a737b19..5ae67a7765d 100644 --- a/cppe/demo/IceE/bidir/Server.cpp +++ b/cppe/demo/IceE/bidir/Server.cpp @@ -44,9 +44,10 @@ main(int argc, char* argv[]) try { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->load("config"); - communicator = Ice::initializeWithProperties(argc, argv, properties); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->load("config"); + communicator = Ice::initialize(argc, argv, initData); status = run(argc, argv, communicator); } catch(const Ice::Exception& ex) diff --git a/cppe/demo/IceE/callback/Client.cpp b/cppe/demo/IceE/callback/Client.cpp index 70d71608ca4..39ab222f55d 100644 --- a/cppe/demo/IceE/callback/Client.cpp +++ b/cppe/demo/IceE/callback/Client.cpp @@ -132,9 +132,10 @@ main(int argc, char* argv[]) try { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->load("config"); - communicator = Ice::initializeWithProperties(argc, argv, properties); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->load("config"); + communicator = Ice::initialize(argc, argv, initData); status = run(argc, argv, communicator); } catch(const Ice::Exception& ex) diff --git a/cppe/demo/IceE/callback/Server.cpp b/cppe/demo/IceE/callback/Server.cpp index 8e74e9c0757..92a4ff9e786 100644 --- a/cppe/demo/IceE/callback/Server.cpp +++ b/cppe/demo/IceE/callback/Server.cpp @@ -31,9 +31,10 @@ main(int argc, char* argv[]) try { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->load("config"); - communicator = Ice::initializeWithProperties(argc, argv, properties); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->load("config"); + communicator = Ice::initialize(argc, argv, initData); status = run(argc, argv, communicator); } catch(const Ice::Exception& ex) diff --git a/cppe/demo/IceE/chat/ChatClient.cpp b/cppe/demo/IceE/chat/ChatClient.cpp index 87a05b93480..2cb282b8fb8 100644 --- a/cppe/demo/IceE/chat/ChatClient.cpp +++ b/cppe/demo/IceE/chat/ChatClient.cpp @@ -52,10 +52,12 @@ BOOL CChatClientApp::InitInstance() LogIPtr log; try { - int argc = 0; - communicator = Ice::initialize(argc, 0); + Ice::InitializationData initData; log = new LogI; - communicator->setLogger(log); + initData.logger = log; + + int argc = 0; + communicator = Ice::initialize(argc, 0, initData); } catch(const Ice::Exception& ex) { diff --git a/cppe/demo/IceE/chat/Client.cpp b/cppe/demo/IceE/chat/Client.cpp index 4e8d68de504..da7c38f1d7f 100755 --- a/cppe/demo/IceE/chat/Client.cpp +++ b/cppe/demo/IceE/chat/Client.cpp @@ -173,9 +173,10 @@ main(int argc, char* argv[]) try { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->load("config"); - communicator = Ice::initializeWithProperties(argc, argv, properties); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->load("config"); + communicator = Ice::initialize(argc, argv, initData); status = run(argc, argv, communicator); } catch(const Ice::Exception& ex) diff --git a/cppe/demo/IceE/hello/Client.cpp b/cppe/demo/IceE/hello/Client.cpp index 82b0b336360..ff5f5a44896 100644 --- a/cppe/demo/IceE/hello/Client.cpp +++ b/cppe/demo/IceE/hello/Client.cpp @@ -147,9 +147,10 @@ main(int argc, char* argv[]) try { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->load("config"); - communicator = Ice::initializeWithProperties(argc, argv, properties); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->load("config"); + communicator = Ice::initialize(argc, argv, initData); status = run(argc, argv, communicator); } catch(const Ice::Exception& ex) diff --git a/cppe/demo/IceE/hello/Server.cpp b/cppe/demo/IceE/hello/Server.cpp index 237855a6c85..924ba67ddd2 100644 --- a/cppe/demo/IceE/hello/Server.cpp +++ b/cppe/demo/IceE/hello/Server.cpp @@ -31,10 +31,11 @@ main(int argc, char* argv[]) try { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->load("config"); - properties->setProperty("Ice.Override.Timeout", "100"); - communicator = Ice::initializeWithProperties(argc, argv, properties); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->load("config"); + initData.properties->setProperty("Ice.Override.Timeout", "100"); + communicator = Ice::initialize(argc, argv, initData); status = run(argc, argv, communicator); } catch(const Ice::Exception& ex) diff --git a/cppe/demo/IceE/latency/Client.cpp b/cppe/demo/IceE/latency/Client.cpp index 5ef9881f3a6..674c4b4c834 100644 --- a/cppe/demo/IceE/latency/Client.cpp +++ b/cppe/demo/IceE/latency/Client.cpp @@ -61,9 +61,10 @@ main(int argc, char* argv[]) try { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->load("config"); - communicator = Ice::initializeWithProperties(argc, argv, properties); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->load("config"); + communicator = Ice::initialize(argc, argv, initData); status = run(argc, argv, communicator); } catch(const Ice::Exception& ex) diff --git a/cppe/demo/IceE/latency/Server.cpp b/cppe/demo/IceE/latency/Server.cpp index 36e63112e82..929359f5e09 100644 --- a/cppe/demo/IceE/latency/Server.cpp +++ b/cppe/demo/IceE/latency/Server.cpp @@ -37,9 +37,10 @@ main(int argc, char* argv[]) try { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->load("config"); - communicator = Ice::initializeWithProperties(argc, argv, properties); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->load("config"); + communicator = Ice::initialize(argc, argv, initData); status = run(argc, argv, communicator); } catch(const Ice::Exception& ex) diff --git a/cppe/demo/IceE/latency/WinCEClient.cpp b/cppe/demo/IceE/latency/WinCEClient.cpp index 4475acba3d1..ab3fd070251 100755 --- a/cppe/demo/IceE/latency/WinCEClient.cpp +++ b/cppe/demo/IceE/latency/WinCEClient.cpp @@ -108,13 +108,14 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmd try { - Ice::PropertiesPtr properties = Ice::createProperties(); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); // // Set a default value for Latency.Proxy so that the demo will // run without a configuration file. // - properties->setProperty("Latency.Proxy", "ping:tcp -p 10000"); + initData.properties->setProperty("Latency.Proxy", "ping:tcp -p 10000"); // // Now, load the configuration file if present. Under WinCE we @@ -122,16 +123,16 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmd // try { - properties->load("config.txt"); + initData.properties->load("config.txt"); } catch(const Ice::FileException&) { } - communicator = Ice::initializeWithProperties(__argc, __argv, properties); + communicator = Ice::initialize(__argc, __argv, initData); const char* proxyProperty = "Latency.Proxy"; - string proxy = properties->getProperty(proxyProperty); + string proxy = initData.properties->getProperty(proxyProperty); PingPrx ping = PingPrx::checkedCast(communicator->stringToProxy(proxy)); if(!ping) diff --git a/cppe/demo/IceE/latency/WinCEServer.cpp b/cppe/demo/IceE/latency/WinCEServer.cpp index 85cbf568752..61a42284e16 100755 --- a/cppe/demo/IceE/latency/WinCEServer.cpp +++ b/cppe/demo/IceE/latency/WinCEServer.cpp @@ -117,12 +117,13 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmd try { - Ice::PropertiesPtr properties = Ice::createProperties(); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); // // Set a default value for Latency.Endpoints so that the demo // will run without a configuration file. // - properties->setProperty("Latency.Endpoints","tcp -p 10000"); + initData.properties->setProperty("Latency.Endpoints","tcp -p 10000"); // // Now, load the configuration file if present. Under WinCE we @@ -130,13 +131,13 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmd // try { - properties->load("config.txt"); + initData.properties->load("config.txt"); } catch(const Ice::FileException&) { } - communicator = Ice::initializeWithProperties(__argc, __argv, properties); + communicator = Ice::initialize(__argc, __argv, initData); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("Latency"); adapter->add(new PingI, Ice::stringToIdentity("ping")); diff --git a/cppe/demo/IceE/minimal/Client.cpp b/cppe/demo/IceE/minimal/Client.cpp index 2082888bdae..9934a1cea59 100644 --- a/cppe/demo/IceE/minimal/Client.cpp +++ b/cppe/demo/IceE/minimal/Client.cpp @@ -89,9 +89,10 @@ main(int argc, char* argv[]) try { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->load("config"); - communicator = Ice::initializeWithProperties(argc, argv, properties); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->load("config"); + communicator = Ice::initialize(argc, argv, initData); status = run(argc, argv, communicator); } catch(const Ice::Exception& ex) diff --git a/cppe/demo/IceE/minimal/Server.cpp b/cppe/demo/IceE/minimal/Server.cpp index a02cfd22eab..feb0cc1d6a3 100644 --- a/cppe/demo/IceE/minimal/Server.cpp +++ b/cppe/demo/IceE/minimal/Server.cpp @@ -44,9 +44,10 @@ main(int argc, char* argv[]) try { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->load("config"); - communicator = Ice::initializeWithProperties(argc, argv, properties); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->load("config"); + communicator = Ice::initialize(argc, argv, initData); status = run(argc, argv, communicator); } catch(const Ice::Exception& ex) diff --git a/cppe/demo/IceE/minimal/WinCEClient.cpp b/cppe/demo/IceE/minimal/WinCEClient.cpp index f4ebc3711f9..ba12b687f79 100644 --- a/cppe/demo/IceE/minimal/WinCEClient.cpp +++ b/cppe/demo/IceE/minimal/WinCEClient.cpp @@ -24,13 +24,14 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmd try { - Ice::PropertiesPtr properties = Ice::createProperties(); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); // // Set a default value for "Hello.Proxy" so that the demo will // run without a configuration file. // - properties->setProperty("Hello.Proxy", "hello:tcp -p 10000"); + initData.properties->setProperty("Hello.Proxy", "hello:tcp -p 10000"); // // Now, load the configuration file if present. Under WinCE we @@ -38,15 +39,16 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmd // try { - properties->load("config.txt"); + initData.properties->load("config.txt"); } catch(const Ice::FileException&) { } - communicator = Ice::initializeWithProperties(__argc, __argv, properties); + communicator = Ice::initialize(__argc, __argv, initData); - HelloPrx hello = HelloPrx::checkedCast(communicator->stringToProxy(properties->getProperty("Hello.Proxy"))); + HelloPrx hello = + HelloPrx::checkedCast(communicator->stringToProxy(initData.properties->getProperty("Hello.Proxy"))); if(!hello) { MessageBox(NULL, L"invalid proxy", L"Minimal Client", MB_ICONEXCLAMATION | MB_OK); diff --git a/cppe/demo/IceE/minimal/WinCEServer.cpp b/cppe/demo/IceE/minimal/WinCEServer.cpp index f316d33a95b..12b2109245e 100644 --- a/cppe/demo/IceE/minimal/WinCEServer.cpp +++ b/cppe/demo/IceE/minimal/WinCEServer.cpp @@ -146,12 +146,13 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmd try { - Ice::PropertiesPtr properties = Ice::createProperties(); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); // // Set a default value for Hello.Endpoints so that the demo // will run without a configuration file. // - properties->setProperty("Hello.Endpoints","tcp -p 10000"); + initData.properties->setProperty("Hello.Endpoints","tcp -p 10000"); // // Now, load the configuration file if present. Under WinCE we @@ -159,13 +160,13 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmd // try { - properties->load("config.txt"); + initData.properties->load("config.txt"); } catch(const Ice::FileException&) { } - communicator = Ice::initializeWithProperties(__argc, __argv, properties); + communicator = Ice::initialize(__argc, __argv, initData); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("Hello"); adapter->add(new HelloI(mainWnd), Ice::stringToIdentity("hello")); diff --git a/cppe/demo/IceE/throughput/Client.cpp b/cppe/demo/IceE/throughput/Client.cpp index 87e85df9226..4fcd3be1a76 100644 --- a/cppe/demo/IceE/throughput/Client.cpp +++ b/cppe/demo/IceE/throughput/Client.cpp @@ -413,9 +413,10 @@ main(int argc, char* argv[]) try { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->load("config"); - communicator = Ice::initializeWithProperties(argc, argv, properties); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->load("config"); + communicator = Ice::initialize(argc, argv, initData); status = run(argc, argv, communicator); } catch(const Ice::Exception& ex) diff --git a/cppe/demo/IceE/throughput/Server.cpp b/cppe/demo/IceE/throughput/Server.cpp index c1445ab6d53..1604cb2c27e 100644 --- a/cppe/demo/IceE/throughput/Server.cpp +++ b/cppe/demo/IceE/throughput/Server.cpp @@ -42,10 +42,11 @@ main(int argc, char* argv[]) try { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->load("config"); - properties->setProperty("Ice.Override.Timeout", "100"); - communicator = Ice::initializeWithProperties(argc, argv, properties); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->load("config"); + initData.properties->setProperty("Ice.Override.Timeout", "100"); + communicator = Ice::initialize(argc, argv, initData); status = run(argc, argv, communicator); } catch(const Ice::Exception& ex) diff --git a/cppe/demo/IceE/throughput/WinCEClient.cpp b/cppe/demo/IceE/throughput/WinCEClient.cpp index 62beedbfe44..c0362300956 100755 --- a/cppe/demo/IceE/throughput/WinCEClient.cpp +++ b/cppe/demo/IceE/throughput/WinCEClient.cpp @@ -108,13 +108,14 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmd try { - Ice::PropertiesPtr properties = Ice::createProperties(); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); // // Set a default value for Throughput.Proxy so that the demo will // run without a configuration file. // - properties->setProperty("Throughput.Proxy", "throughput:tcp -p 10000"); + initData.properties->setProperty("Throughput.Proxy", "throughput:tcp -p 10000"); // // Now, load the configuration file if present. Under WinCE we @@ -122,16 +123,16 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmd // try { - properties->load("config.txt"); + initData.properties->load("config.txt"); } catch(const Ice::FileException&) { } - communicator = Ice::initializeWithProperties(__argc, __argv, properties); + communicator = Ice::initialize(__argc, __argv, initData); const char* proxyProperty = "Throughput.Proxy"; - string proxy = properties->getProperty(proxyProperty); + string proxy = initData.properties->getProperty(proxyProperty); ThroughputPrx throughput = ThroughputPrx::checkedCast(communicator->stringToProxy(proxy)); if(!throughput) diff --git a/cppe/demo/IceE/throughput/WinCEServer.cpp b/cppe/demo/IceE/throughput/WinCEServer.cpp index 1a1462c95cf..d45b4c834da 100755 --- a/cppe/demo/IceE/throughput/WinCEServer.cpp +++ b/cppe/demo/IceE/throughput/WinCEServer.cpp @@ -111,13 +111,14 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmd try { - Ice::PropertiesPtr properties = Ice::createProperties(); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); // // Set a default value for Latency.Endpoints so that the demo // will run without a configuration file. // - properties->setProperty("Throughput.Endpoints","tcp -p 10000"); + initData.properties->setProperty("Throughput.Endpoints","tcp -p 10000"); // // Now, load the configuration file if present. Under WinCE we @@ -125,13 +126,13 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmd // try { - properties->load("config.txt"); + initData.properties->load("config.txt"); } catch(const Ice::FileException&) { } - communicator = Ice::initializeWithProperties(__argc, __argv, properties); + communicator = Ice::initialize(__argc, __argv, initData); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("Throughput"); Ice::ObjectPtr object = new ThroughputI(100); diff --git a/cppe/include/IceE/Communicator.h b/cppe/include/IceE/Communicator.h index 39c30d4832e..d7c97a6e9fd 100755 --- a/cppe/include/IceE/Communicator.h +++ b/cppe/include/IceE/Communicator.h @@ -6,76 +6,71 @@ // ICEE_LICENSE file included in this distribution. // // ********************************************************************** -
-#ifndef ICEE_COMMUNICATOR_H
-#define ICEE_COMMUNICATOR_H
-
-#include <IceE/CommunicatorF.h>
-#include <IceE/LoggerF.h>
-#include <IceE/PropertiesF.h>
-#include <IceE/InstanceF.h>
-
-#include <IceE/RecMutex.h>
-#include <IceE/Initialize.h> // For the friend declarations.
-
-namespace Ice
-{
-
-class ICE_API Communicator : public ::IceUtil::Shared
-{
-public:
-
- void destroy();
- void shutdown();
- void waitForShutdown();
-
- ObjectPrx stringToProxy(const std::string&) const;
- std::string proxyToString(const ObjectPrx&) const;
-
- ObjectAdapterPtr createObjectAdapter(const std::string&);
- ObjectAdapterPtr createObjectAdapterWithEndpoints(const std::string&, const std::string&);
-
- void setDefaultContext(const Context&);
- Context getDefaultContext() const;
-
- PropertiesPtr getProperties() const;
-
- LoggerPtr getLogger() const;
- void setLogger(const LoggerPtr&);
-
-#ifdef ICEE_HAS_ROUTER
- RouterPrx getDefaultRouter() const;
- void setDefaultRouter(const RouterPrx&);
-#endif
-
-#ifdef ICEE_HAS_LOCATOR
- LocatorPrx getDefaultLocator() const;
- void setDefaultLocator(const LocatorPrx&);
-#endif
-
-#ifdef ICEE_HAS_BATCH
- void flushBatchRequests();
-#endif
-
-private:
-
- Communicator(const PropertiesPtr&);
- ~Communicator();
-
- //
- // Certain initialization tasks need to be completed after the
- // constructor.
- //
- void finishSetup(int&, char*[]);
-
- friend ICE_API CommunicatorPtr initialize(int&, char*[], Int);
- friend ICE_API CommunicatorPtr initializeWithProperties(int&, char*[], const PropertiesPtr&, Int);
- friend ICE_API ::IceInternal::InstancePtr IceInternal::getInstance(const ::Ice::CommunicatorPtr&);
-
- const ::IceInternal::InstancePtr _instance;
- const ::Ice::Context _dfltContext;
-};
-
-}
-
-#endif
+ +#ifndef ICEE_COMMUNICATOR_H +#define ICEE_COMMUNICATOR_H + +#include <IceE/CommunicatorF.h> +#include <IceE/LoggerF.h> +#include <IceE/PropertiesF.h> +#include <IceE/InstanceF.h> + +#include <IceE/RecMutex.h> +#include <IceE/Initialize.h> // For the friend declarations. + +namespace Ice +{ + +class ICE_API Communicator : public ::IceUtil::Shared +{ +public: + + void destroy(); + void shutdown(); + void waitForShutdown(); + + ObjectPrx stringToProxy(const std::string&) const; + std::string proxyToString(const ObjectPrx&) const; + + ObjectAdapterPtr createObjectAdapter(const std::string&); + ObjectAdapterPtr createObjectAdapterWithEndpoints(const std::string&, const std::string&); + + Context getDefaultContext() const; + PropertiesPtr getProperties() const; + LoggerPtr getLogger() const; + +#ifdef ICEE_HAS_ROUTER + RouterPrx getDefaultRouter() const; + void setDefaultRouter(const RouterPrx&); +#endif + +#ifdef ICEE_HAS_LOCATOR + LocatorPrx getDefaultLocator() const; + void setDefaultLocator(const LocatorPrx&); +#endif + +#ifdef ICEE_HAS_BATCH + void flushBatchRequests(); +#endif + +private: + + Communicator(const InitializationData&); + ~Communicator(); + + // + // Certain initialization tasks need to be completed after the + // constructor. + // + void finishSetup(int&, char*[]); + + friend ICE_API CommunicatorPtr initialize(int&, char*[], InitializationData, Int); + friend ICE_API ::IceInternal::InstancePtr IceInternal::getInstance(const ::Ice::CommunicatorPtr&); + + const ::IceInternal::InstancePtr _instance; + const ::Ice::Context _dfltContext; +}; + +} + +#endif diff --git a/cppe/include/IceE/Initialize.h b/cppe/include/IceE/Initialize.h index 90f168d76f9..3b25713c0c9 100644 --- a/cppe/include/IceE/Initialize.h +++ b/cppe/include/IceE/Initialize.h @@ -12,6 +12,7 @@ #include <IceE/CommunicatorF.h> #include <IceE/PropertiesF.h> +#include <IceE/LoggerF.h> #include <IceE/InstanceF.h> #include <IceE/BuiltinSequences.h> @@ -31,8 +32,15 @@ ICE_API PropertiesPtr createProperties(); ICE_API PropertiesPtr createProperties(StringSeq&); ICE_API PropertiesPtr createProperties(int&, char*[]); -ICE_API CommunicatorPtr initialize(int&, char*[], Int = ICEE_INT_VERSION); -ICE_API CommunicatorPtr initializeWithProperties(int&, char*[], const PropertiesPtr&, Int = ICEE_INT_VERSION); +struct InitializationData +{ + PropertiesPtr properties; + LoggerPtr logger; + Context defaultContext; +}; + +ICE_API CommunicatorPtr initialize(int&, char*[], InitializationData = InitializationData(), Int = ICEE_INT_VERSION); +ICE_API ICE_DEPRECATED_API CommunicatorPtr initializeWithProperties(int&, char*[], const PropertiesPtr&, Int = ICEE_INT_VERSION); ICE_API PropertiesPtr getDefaultProperties(); ICE_API PropertiesPtr getDefaultProperties(StringSeq&); diff --git a/cppe/src/IceE/Communicator.cpp b/cppe/src/IceE/Communicator.cpp index 5a81bbd35cf..bdb1a047fc0 100755 --- a/cppe/src/IceE/Communicator.cpp +++ b/cppe/src/IceE/Communicator.cpp @@ -84,34 +84,22 @@ Ice::Communicator::createObjectAdapterWithEndpoints(const string& name, const st #endif -void -Ice::Communicator::setDefaultContext(const Context& ctx) -{ - _instance->setDefaultContext(ctx); -} - Ice::Context Ice::Communicator::getDefaultContext() const { - return _instance->getDefaultContext(); + return _instance->initializationData().defaultContext; } PropertiesPtr Ice::Communicator::getProperties() const { - return _instance->properties(); + return _instance->initializationData().properties; } LoggerPtr Ice::Communicator::getLogger() const { - return _instance->logger(); -} - -void -Ice::Communicator::setLogger(const LoggerPtr& logger) -{ - _instance->logger(logger); + return _instance->initializationData().logger; } #ifdef ICEE_HAS_ROUTER @@ -156,12 +144,12 @@ Ice::Communicator::flushBatchRequests() #endif -Ice::Communicator::Communicator(const PropertiesPtr& properties) +Ice::Communicator::Communicator(const InitializationData& initData) { __setNoDelete(true); try { - const_cast<InstancePtr&>(_instance) = new Instance(this, properties); + const_cast<InstancePtr&>(_instance) = new Instance(this, initData); } catch(...) { @@ -175,7 +163,7 @@ Ice::Communicator::~Communicator() { if(!_instance->destroyed()) { - Warning out(_instance->logger()); + Warning out(_instance->initializationData().logger); out << "Ice::Communicator::destroy() has not been called"; } } diff --git a/cppe/src/IceE/Connection.cpp b/cppe/src/IceE/Connection.cpp index 6e15315278b..9b76b84b31a 100755 --- a/cppe/src/IceE/Connection.cpp +++ b/cppe/src/IceE/Connection.cpp @@ -864,7 +864,7 @@ Ice::Connection::createProxy(const Identity& ident) const // vector<ConnectionPtr> connections; connections.push_back(const_cast<Connection*>(this)); - ReferencePtr ref = _instance->referenceFactory()->create(ident, _instance->getDefaultContext(), "", + ReferencePtr ref = _instance->referenceFactory()->create(ident, _instance->initializationData().defaultContext, "", Reference::ModeTwoway, connections); return _instance->proxyFactory()->referenceToProxy(ref); } @@ -905,9 +905,9 @@ Ice::Connection::Connection(const InstancePtr& instance, _desc(transceiver->toString()), _type(transceiver->type()), _endpoint(endpoint), - _logger(_instance->logger()), // Cached for better performance. + _logger(_instance->initializationData().logger), // Cached for better performance. _traceLevels(_instance->traceLevels()), // Cached for better performance. - _warn(_instance->properties()->getPropertyAsInt("Ice.Warn.Connections") > 0), + _warn(_instance->initializationData().properties->getPropertyAsInt("Ice.Warn.Connections") > 0), #ifndef ICEE_PURE_CLIENT _in(_instance.get(), this, _stream, adapter), #endif @@ -929,9 +929,9 @@ Ice::Connection::Connection(const InstancePtr& instance, { #ifndef ICEE_PURE_BLOCKING_CLIENT # ifdef ICEE_PURE_CLIENT - _blocking = _instance->properties()->getPropertyAsInt("Ice.Blocking") > 0; + _blocking = _instance->initializationData().properties->getPropertyAsInt("Ice.Blocking") > 0; # else - _blocking = _instance->properties()->getPropertyAsInt("Ice.Blocking") > 0 && !adapter; + _blocking = _instance->initializationData().properties->getPropertyAsInt("Ice.Blocking") > 0 && !adapter; # endif if(_blocking) { @@ -1815,17 +1815,17 @@ Ice::Connection::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.toString(); } 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/cppe/src/IceE/Incoming.cpp b/cppe/src/IceE/Incoming.cpp index ea4839bd101..fd110d6f71c 100644 --- a/cppe/src/IceE/Incoming.cpp +++ b/cppe/src/IceE/Incoming.cpp @@ -175,7 +175,7 @@ IceInternal::Incoming::invoke(bool response, Int requestId) 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); } @@ -230,7 +230,7 @@ IceInternal::Incoming::invoke(bool response, Int requestId) { _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); } @@ -254,7 +254,7 @@ IceInternal::Incoming::invoke(bool response, Int requestId) { _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); } @@ -278,7 +278,7 @@ IceInternal::Incoming::invoke(bool response, Int requestId) { _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); } @@ -302,7 +302,7 @@ IceInternal::Incoming::invoke(bool response, Int requestId) { _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); } @@ -326,7 +326,7 @@ IceInternal::Incoming::invoke(bool response, Int requestId) { _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); } @@ -350,7 +350,7 @@ IceInternal::Incoming::invoke(bool response, Int requestId) { _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); } @@ -374,7 +374,7 @@ IceInternal::Incoming::invoke(bool response, Int requestId) { _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()); } @@ -399,7 +399,7 @@ IceInternal::Incoming::invoke(bool response, Int requestId) { _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"); } @@ -479,7 +479,7 @@ IceInternal::Incoming::__warning(const Exception& ex) const void IceInternal::Incoming::__warning(const string& msg) const { - Warning out(_os.instance()->logger()); + Warning out(_os.instance()->initializationData().logger); out << "dispatch exception: " << msg; out << "\nidentity: " << identityToString(_current.id); out << "\nfacet: " << IceUtil::escapeString(_current.facet, ""); diff --git a/cppe/src/IceE/IncomingConnectionFactory.cpp b/cppe/src/IceE/IncomingConnectionFactory.cpp index 28ec47c0a8c..50643c0cc22 100644 --- a/cppe/src/IceE/IncomingConnectionFactory.cpp +++ b/cppe/src/IceE/IncomingConnectionFactory.cpp @@ -175,7 +175,7 @@ IceInternal::IncomingConnectionFactory::IncomingConnectionFactory(const Instance _instance(instance), _endpoint(endpoint), _adapter(adapter), - _warn(_instance->properties()->getPropertyAsInt("Ice.Warn.Connections") > 0), + _warn(_instance->initializationData().properties->getPropertyAsInt("Ice.Warn.Connections") > 0), _state(StateHolding) { if(_instance->defaultsAndOverrides()->overrideTimeout) @@ -202,7 +202,7 @@ IceInternal::IncomingConnectionFactory::IncomingConnectionFactory(const Instance catch(const Ice::Exception& ex) { { - Error out(_instance->logger()); + Error out(_instance->initializationData().logger); out << "cannot create thread for incoming connection factory:\n" << ex.toString(); } @@ -321,7 +321,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.toString() << "\n" << _acceptor->toString(); } } @@ -420,17 +420,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.toString(); } 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/cppe/src/IceE/Initialize.cpp b/cppe/src/IceE/Initialize.cpp index 1cf8d21602a..dd2536e93d3 100644 --- a/cppe/src/IceE/Initialize.cpp +++ b/cppe/src/IceE/Initialize.cpp @@ -123,14 +123,7 @@ Ice::getDefaultProperties(int& argc, char* argv[]) } CommunicatorPtr -Ice::initialize(int& argc, char* argv[], Int version) -{ - PropertiesPtr properties = getDefaultProperties(argc, argv); - return initializeWithProperties(argc, argv, properties, version); -} - -CommunicatorPtr -Ice::initializeWithProperties(int& argc, char* argv[], const PropertiesPtr& properties, Int version) +Ice::initialize(int& argc, char* argv[], InitializationData initData, Int version) { #ifndef ICE_IGNORE_VERSION // @@ -150,15 +143,28 @@ Ice::initializeWithProperties(int& argc, char* argv[], const PropertiesPtr& prop } #endif + if(!initData.properties) + { + initData.properties = getDefaultProperties(argc, argv); + } + StringSeq args = argsToStringSeq(argc, argv); - args = properties->parseIceCommandLineOptions(args); + args = initData.properties->parseIceCommandLineOptions(args); stringSeqToArgs(args, argc, argv); - CommunicatorPtr communicator = new Communicator(properties); + CommunicatorPtr communicator = new Communicator(initData); communicator->finishSetup(argc, argv); return communicator; } +CommunicatorPtr +Ice::initializeWithProperties(int& argc, char* argv[], const PropertiesPtr& properties, Int version) +{ + InitializationData initData; + initData.properties = properties; + return initialize(argc, argv, initData, version); +} + InstancePtr IceInternal::getInstance(const CommunicatorPtr& communicator) { diff --git a/cppe/src/IceE/Instance.cpp b/cppe/src/IceE/Instance.cpp index a62fa3ef374..1aa787dd08d 100644 --- a/cppe/src/IceE/Instance.cpp +++ b/cppe/src/IceE/Instance.cpp @@ -66,41 +66,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; -} - TraceLevelsPtr IceInternal::Instance::traceLevels() const { @@ -257,35 +222,9 @@ IceInternal::Instance::flushBatchRequests() } #endif -void -IceInternal::Instance::setDefaultContext(const Context& ctx) -{ - IceUtil::RecMutex::Lock sync(*this); - - if(_state == StateDestroyed) - { - throw CommunicatorDestroyedException(__FILE__, __LINE__); - } - - _defaultContext = ctx; -} - -Context -IceInternal::Instance::getDefaultContext() const -{ - IceUtil::RecMutex::Lock sync(*this); - - if(_state == StateDestroyed) - { - throw CommunicatorDestroyedException(__FILE__, __LINE__); - } - - return _defaultContext; -} - -IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const PropertiesPtr& properties) : +IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const InitializationData& initData) : _state(StateActive), - _properties(properties), + _initData(initData), _messageSizeMax(0) #ifndef ICEE_PURE_BLOCKING_CLIENT , _threadPerConnectionStackSize(0) @@ -304,8 +243,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 != "") { @@ -351,13 +290,13 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Prope srand48(seed); #endif - 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()); @@ -412,15 +351,18 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Prope sync.release(); - _logger = new LoggerI(_properties->getProperty("Ice.ProgramName")); + if(!_initData.logger) + { + _initData.logger = new LoggerI(_initData.properties->getProperty("Ice.ProgramName")); + } - 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. @@ -438,7 +380,7 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Prope #ifndef ICEE_PURE_BLOCKING_CLIENT { - Int stackSize = _properties->getPropertyAsInt("Ice.ThreadPerConnection.StackSize"); + Int stackSize = _initData.properties->getPropertyAsInt("Ice.ThreadPerConnection.StackSize"); if(stackSize < 0) { stackSize = 0; @@ -544,7 +486,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!) diff --git a/cppe/src/IceE/Instance.h b/cppe/src/IceE/Instance.h index e9956d209f8..73d2e9a395e 100644 --- a/cppe/src/IceE/Instance.h +++ b/cppe/src/IceE/Instance.h @@ -27,6 +27,7 @@ #endif #include <IceE/Shared.h> #include <IceE/RecMutex.h> +#include <IceE/Initialize.h> namespace IceInternal { @@ -36,9 +37,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&); + const Ice::InitializationData& initializationData() const { return _initData; } TraceLevelsPtr traceLevels() const; DefaultsAndOverridesPtr defaultsAndOverrides() const; #ifdef ICEE_HAS_ROUTER @@ -56,8 +55,6 @@ public: #ifdef ICEE_HAS_BATCH void flushBatchRequests(); #endif - void setDefaultContext(const ::Ice::Context&); - ::Ice::Context getDefaultContext() const; #ifndef ICEE_PURE_BLOCKING_CLIENT size_t threadPerConnectionStackSize() const; #endif @@ -68,7 +65,7 @@ public: private: - Instance(const Ice::CommunicatorPtr&, const Ice::PropertiesPtr&); + Instance(const Ice::CommunicatorPtr&, const Ice::InitializationData&); virtual ~Instance(); void finishSetup(int&, char*[]); @@ -82,8 +79,7 @@ private: StateDestroyed }; State _state; - const Ice::PropertiesPtr _properties; // Immutable, not reset by destroy(). - Ice::LoggerPtr _logger; // Not reset by destroy(). + Ice::InitializationData _initData; // Immutable, not reset by destroy(). 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(). @@ -100,7 +96,6 @@ private: ProxyFactoryPtr _proxyFactory; OutgoingConnectionFactoryPtr _outgoingConnectionFactory; EndpointFactoryPtr _endpointFactory; - Ice::Context _defaultContext; #ifndef ICEE_PURE_CLIENT ObjectAdapterFactoryPtr _objectAdapterFactory; diff --git a/cppe/src/IceE/LocatorInfo.cpp b/cppe/src/IceE/LocatorInfo.cpp index d6d36eb67da..abe2db7d5cb 100644 --- a/cppe/src/IceE/LocatorInfo.cpp +++ b/cppe/src/IceE/LocatorInfo.cpp @@ -353,7 +353,7 @@ IceInternal::LocatorInfo::getEndpoints(const IndirectReferencePtr& ref, bool& ca { 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) { @@ -451,7 +451,7 @@ IceInternal::LocatorInfo::trace(const string& msg, const IndirectReferencePtr& ref, const vector<EndpointPtr>& 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/cppe/src/IceE/ObjectAdapter.cpp b/cppe/src/IceE/ObjectAdapter.cpp index 81d1feddeb3..2a025eb64a2 100644 --- a/cppe/src/IceE/ObjectAdapter.cpp +++ b/cppe/src/IceE/ObjectAdapter.cpp @@ -102,7 +102,8 @@ Ice::ObjectAdapter::activate() #ifdef ICEE_HAS_LOCATOR locatorInfo = _locatorInfo; #endif - printAdapterReady = _instance->properties()->getPropertyAsInt("Ice.PrintAdapterReady") > 0; + printAdapterReady = + _instance->initializationData().properties->getPropertyAsInt("Ice.PrintAdapterReady") > 0; _printAdapterReadyDone = true; } @@ -468,7 +469,7 @@ Ice::ObjectAdapter::createReverseProxy(const Identity& ident) const // reference. // vector<EndpointPtr> endpoints; - ReferencePtr ref = _instance->referenceFactory()->create(ident, _instance->getDefaultContext(), "", + ReferencePtr ref = _instance->referenceFactory()->create(ident, _instance->initializationData().defaultContext, "", Reference::ModeTwoway, connections); return _instance->proxyFactory()->referenceToProxy(ref); } @@ -631,8 +632,8 @@ Ice::ObjectAdapter::ObjectAdapter(const InstancePtr& instance, const Communicato _printAdapterReadyDone(false), _name(name), #ifdef ICEE_HAS_LOCATOR - _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")), #endif _directCount(0), _waitForDeactivate(false) @@ -655,7 +656,7 @@ Ice::ObjectAdapter::ObjectAdapter(const InstancePtr& instance, const Communicato // Parse published endpoints. 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()) { @@ -670,7 +671,7 @@ Ice::ObjectAdapter::ObjectAdapter(const InstancePtr& instance, const Communicato not1(Ice::constMemFun(&Endpoint::publish))), _publishedEndpoints.end()); #ifdef ICEE_HAS_ROUTER - 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))); @@ -678,7 +679,7 @@ Ice::ObjectAdapter::ObjectAdapter(const InstancePtr& instance, const Communicato #endif #ifdef ICEE_HAS_LOCATOR - 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))); @@ -703,12 +704,12 @@ Ice::ObjectAdapter::~ObjectAdapter() { 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 @@ -760,11 +761,11 @@ Ice::ObjectAdapter::newDirectProxy(const Identity& ident, const string& facet) c // Create a reference and return a proxy for this reference. // #ifdef ICEE_HAS_ROUTER - ReferencePtr ref = _instance->referenceFactory()->create(ident, _instance->getDefaultContext(), facet, - Reference::ModeTwoway, false, endpoints, 0); + ReferencePtr ref = _instance->referenceFactory()->create(ident, _instance->initializationData().defaultContext, + facet, Reference::ModeTwoway, false, endpoints, 0); #else - ReferencePtr ref = _instance->referenceFactory()->create(ident, _instance->getDefaultContext(), facet, - Reference::ModeTwoway, false, endpoints); + ReferencePtr ref = _instance->referenceFactory()->create(ident, _instance->initializationData().defaultContext, + facet, Reference::ModeTwoway, false, endpoints); #endif return _instance->proxyFactory()->referenceToProxy(ref); @@ -778,12 +779,12 @@ Ice::ObjectAdapter::newIndirectProxy(const Identity& ident, const string& facet, // Create a reference with the adapter id. // #ifdef ICEE_HAS_ROUTER - ReferencePtr ref = _instance->referenceFactory()->create(ident, _instance->getDefaultContext(), facet, - Reference::ModeTwoway, false, id, 0, _locatorInfo); + ReferencePtr ref = _instance->referenceFactory()->create(ident, _instance->initializationData().defaultContext, + facet, Reference::ModeTwoway, false, id, 0, _locatorInfo); #else - ReferencePtr ref = _instance->referenceFactory()->create(ident, _instance->getDefaultContext(), facet, - Reference::ModeTwoway, false, id, _locatorInfo); + ReferencePtr ref = _instance->referenceFactory()->create(ident, _instance->initializationData().defaultContext, + facet, Reference::ModeTwoway, false, id, _locatorInfo); #endif // diff --git a/cppe/src/IceE/OutgoingConnectionFactory.cpp b/cppe/src/IceE/OutgoingConnectionFactory.cpp index 94338c8ce0f..301d39d0f7e 100755 --- a/cppe/src/IceE/OutgoingConnectionFactory.cpp +++ b/cppe/src/IceE/OutgoingConnectionFactory.cpp @@ -278,7 +278,7 @@ IceInternal::OutgoingConnectionFactory::create(const vector<EndpointPtr>& endpts 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(q + 1 != endpoints.end()) diff --git a/cppe/src/IceE/ProxyFactory.cpp b/cppe/src/IceE/ProxyFactory.cpp index d4c7cd5a6e8..cc0a7ab68d8 100644 --- a/cppe/src/IceE/ProxyFactory.cpp +++ b/cppe/src/IceE/ProxyFactory.cpp @@ -144,7 +144,7 @@ IceInternal::ProxyFactory::checkRetryAfterException(const LocalException& ex, co assert(cnt > 0); TraceLevelsPtr traceLevels = _instance->traceLevels(); - LoggerPtr logger = _instance->logger(); + LoggerPtr logger = _instance->initializationData().logger; if(cnt > static_cast<int>(_retryIntervals.size())) { @@ -181,7 +181,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/cppe/src/IceE/Reference.cpp b/cppe/src/IceE/Reference.cpp index 7fe34d4c0ef..8d2a1ac0958 100644 --- a/cppe/src/IceE/Reference.cpp +++ b/cppe/src/IceE/Reference.cpp @@ -43,7 +43,7 @@ ReferencePtr IceInternal::Reference::defaultContext() const { ReferencePtr r = _instance->referenceFactory()->copy(this); - r->_context = _instance->getDefaultContext(); + r->_context = _instance->initializationData().defaultContext; return r; } @@ -1004,10 +1004,9 @@ IceInternal::IndirectReference::getConnection() 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.toString(); } diff --git a/cppe/src/IceE/ReferenceFactory.cpp b/cppe/src/IceE/ReferenceFactory.cpp index 9e6ec3278aa..c5a319d0f71 100644 --- a/cppe/src/IceE/ReferenceFactory.cpp +++ b/cppe/src/IceE/ReferenceFactory.cpp @@ -431,9 +431,10 @@ IceInternal::ReferenceFactory::create(const string& str) { #ifdef ICEE_HAS_LOCATOR # ifdef ICEE_HAS_ROUTER - return create(ident, _instance->getDefaultContext(), facet, mode, secure, "", routerInfo, locatorInfo); + return create(ident, _instance->initializationData().defaultContext, facet, mode, secure, "", routerInfo, + locatorInfo); # else - return create(ident, _instance->getDefaultContext(), facet, mode, secure, "", locatorInfo); + return create(ident, _instance->initializationData().defaultContext, facet, mode, secure, "", locatorInfo); # endif #else ProxyParseException ex(__FILE__, __LINE__); @@ -480,9 +481,10 @@ IceInternal::ReferenceFactory::create(const string& str) throw ex; } else if(unknownEndpoints.size() != 0 && - _instance->properties()->getPropertyAsIntWithDefault("Ice.Warn.Endpoints", 1) > 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) { @@ -491,9 +493,10 @@ IceInternal::ReferenceFactory::create(const string& str) } #ifdef ICEE_HAS_ROUTER - return create(ident, _instance->getDefaultContext(), facet, mode, secure, endpoints , routerInfo); + return create(ident, _instance->initializationData().defaultContext, facet, mode, secure, endpoints, + routerInfo); #else - return create(ident, _instance->getDefaultContext(), facet, mode, secure, endpoints); + return create(ident, _instance->initializationData().defaultContext, facet, mode, secure, endpoints); #endif break; } @@ -537,9 +540,11 @@ IceInternal::ReferenceFactory::create(const string& str) } #ifdef ICEE_HAS_ROUTER - return create(ident, _instance->getDefaultContext(), facet, mode, secure, adapter, routerInfo, locatorInfo); + return create(ident, _instance->initializationData().defaultContext, facet, mode, secure, adapter, + routerInfo, locatorInfo); #else - return create(ident, _instance->getDefaultContext(), facet, mode, secure, adapter, locatorInfo); + return create(ident, _instance->initializationData().defaultContext, facet, mode, secure, adapter, + locatorInfo); #endif break; } @@ -613,9 +618,10 @@ IceInternal::ReferenceFactory::create(const Identity& ident, BasicStream* s) endpoints.push_back(endpoint); } #ifdef ICEE_HAS_ROUTER - return create(ident, _instance->getDefaultContext(), facet, mode, secure, endpoints, routerInfo); + return create(ident, _instance->initializationData().defaultContext, facet, mode, secure, endpoints, + routerInfo); #else - return create(ident, _instance->getDefaultContext(), facet, mode, secure, endpoints); + return create(ident, _instance->initializationData().defaultContext, facet, mode, secure, endpoints); #endif } else @@ -624,9 +630,11 @@ IceInternal::ReferenceFactory::create(const Identity& ident, BasicStream* s) LocatorInfoPtr locatorInfo = _instance->locatorManager()->get(getDefaultLocator()); s->read(adapterId); # ifdef ICEE_HAS_ROUTER - return create(ident, _instance->getDefaultContext(), facet, mode, secure, adapterId, routerInfo, locatorInfo); + return create(ident, _instance->initializationData().defaultContext, facet, mode, secure, adapterId, + routerInfo, locatorInfo); # else - return create(ident, _instance->getDefaultContext(), facet, mode, secure, adapterId, locatorInfo); + return create(ident, _instance->initializationData().defaultContext, facet, mode, secure, adapterId, + locatorInfo); # endif #else throw ProxyUnmarshalException(__FILE__, __LINE__); diff --git a/cppe/src/TcpTransport/Acceptor.cpp b/cppe/src/TcpTransport/Acceptor.cpp index 06a9b8bce06..208b4261f1a 100644 --- a/cppe/src/TcpTransport/Acceptor.cpp +++ b/cppe/src/TcpTransport/Acceptor.cpp @@ -103,7 +103,7 @@ IceInternal::Acceptor::effectivePort() IceInternal::Acceptor::Acceptor(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/cppe/src/TcpTransport/Connector.cpp b/cppe/src/TcpTransport/Connector.cpp index b1306435688..d12d4dea9a0 100644 --- a/cppe/src/TcpTransport/Connector.cpp +++ b/cppe/src/TcpTransport/Connector.cpp @@ -56,7 +56,7 @@ Connector::toString() const Connector::Connector(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/cppe/src/TcpTransport/Transceiver.cpp b/cppe/src/TcpTransport/Transceiver.cpp index 3a964f43fa3..7bea32667e4 100644 --- a/cppe/src/TcpTransport/Transceiver.cpp +++ b/cppe/src/TcpTransport/Transceiver.cpp @@ -374,7 +374,7 @@ IceInternal::Transceiver::toString() const IceInternal::Transceiver::Transceiver(const InstancePtr& instance, SOCKET fd) : _traceLevels(instance->traceLevels()), - _logger(instance->logger()), + _logger(instance->initializationData().logger), _fd(fd), _readTimeout(-1), _writeTimeout(-1), diff --git a/cppe/test/Common/TestCommon.cpp b/cppe/test/Common/TestCommon.cpp index 303d3f697ad..8f85aad14c1 100755 --- a/cppe/test/Common/TestCommon.cpp +++ b/cppe/test/Common/TestCommon.cpp @@ -477,6 +477,12 @@ TestApplication::TestApplication(const std::string& name) { } +LoggerPtr +TestApplication::getLogger() +{ + return new LoggerI(); +} + void TestApplication::setCommunicator(const CommunicatorPtr& communicator) { @@ -487,7 +493,6 @@ TestApplication::setCommunicator(const CommunicatorPtr& communicator) _tprintfp = fopen(("log-" + _name + ".txt").c_str(), "w"); } #endif - _communicator->setLogger(new LoggerI); } diff --git a/cppe/test/IceE/adapterDeactivation/Client.cpp b/cppe/test/IceE/adapterDeactivation/Client.cpp index a66f18b93dd..bdcc4dab8e9 100644 --- a/cppe/test/IceE/adapterDeactivation/Client.cpp +++ b/cppe/test/IceE/adapterDeactivation/Client.cpp @@ -27,9 +27,11 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); TestIntfPrx allTests(const CommunicatorPtr&); TestIntfPrx obj = allTests(communicator()); diff --git a/cppe/test/IceE/adapterDeactivation/Collocated.cpp b/cppe/test/IceE/adapterDeactivation/Collocated.cpp index 4cb0bb519dd..b14404657f0 100644 --- a/cppe/test/IceE/adapterDeactivation/Collocated.cpp +++ b/cppe/test/IceE/adapterDeactivation/Collocated.cpp @@ -27,11 +27,13 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); Ice::ObjectPtr object = new TestI; diff --git a/cppe/test/IceE/adapterDeactivation/Server.cpp b/cppe/test/IceE/adapterDeactivation/Server.cpp index 4f10d3c9c9a..8ecf6c1c52c 100644 --- a/cppe/test/IceE/adapterDeactivation/Server.cpp +++ b/cppe/test/IceE/adapterDeactivation/Server.cpp @@ -27,11 +27,13 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); Ice::ObjectPtr object = new TestI; diff --git a/cppe/test/IceE/custom/Client.cpp b/cppe/test/IceE/custom/Client.cpp index 54ef21550b0..c80c581c5c4 100644 --- a/cppe/test/IceE/custom/Client.cpp +++ b/cppe/test/IceE/custom/Client.cpp @@ -26,10 +26,12 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); Test::TestIntfPrx allTests(const Ice::CommunicatorPtr&); Test::TestIntfPrx test = allTests(communicator()); diff --git a/cppe/test/IceE/custom/Collocated.cpp b/cppe/test/IceE/custom/Collocated.cpp index c3582f2925f..7b440949847 100644 --- a/cppe/test/IceE/custom/Collocated.cpp +++ b/cppe/test/IceE/custom/Collocated.cpp @@ -27,14 +27,16 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); - properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); - //properties->setProperty("Ice.Trace.Network", "5"); - //properties->setProperty("Ice.Trace.Protocol", "5"); + initData.properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); + //initData.properties->setProperty("Ice.Trace.Network", "5"); + //initData.properties->setProperty("Ice.Trace.Protocol", "5"); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); adapter->add(new TestIntfI(communicator()), Ice::stringToIdentity("test")); diff --git a/cppe/test/IceE/custom/Server.cpp b/cppe/test/IceE/custom/Server.cpp index b564ea0543e..ba435f5310b 100644 --- a/cppe/test/IceE/custom/Server.cpp +++ b/cppe/test/IceE/custom/Server.cpp @@ -27,14 +27,16 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); - properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); - //properties->setProperty("Ice.Trace.Network", "5"); - //properties->setProperty("Ice.Trace.Protocol", "5"); + initData.properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); + //initData.properties->setProperty("Ice.Trace.Network", "5"); + //initData.properties->setProperty("Ice.Trace.Protocol", "5"); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); adapter->add(new TestIntfI(communicator()), Ice::stringToIdentity("test")); diff --git a/cppe/test/IceE/exceptions/Client.cpp b/cppe/test/IceE/exceptions/Client.cpp index 367fbd2f93a..0019a3bd223 100644 --- a/cppe/test/IceE/exceptions/Client.cpp +++ b/cppe/test/IceE/exceptions/Client.cpp @@ -26,9 +26,11 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); ThrowerPrx allTests(const Ice::CommunicatorPtr&); ThrowerPrx thrower = allTests(communicator()); diff --git a/cppe/test/IceE/exceptions/Collocated.cpp b/cppe/test/IceE/exceptions/Collocated.cpp index d8232315a83..ee0603d4a5e 100644 --- a/cppe/test/IceE/exceptions/Collocated.cpp +++ b/cppe/test/IceE/exceptions/Collocated.cpp @@ -26,13 +26,15 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); - properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); - properties->setProperty("Ice.Warn.Dispatch", "0"); + initData.properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); + initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); Ice::ObjectPtr object = new ThrowerI(adapter); diff --git a/cppe/test/IceE/exceptions/Server.cpp b/cppe/test/IceE/exceptions/Server.cpp index f7e7c908cc2..6380523d537 100644 --- a/cppe/test/IceE/exceptions/Server.cpp +++ b/cppe/test/IceE/exceptions/Server.cpp @@ -25,12 +25,14 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->setProperty("Ice.Warn.Dispatch", "0"); - properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->setProperty("Ice.Warn.Dispatch", "0"); + initData.properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); Ice::ObjectPtr object = new ThrowerI(adapter); diff --git a/cppe/test/IceE/facets/Client.cpp b/cppe/test/IceE/facets/Client.cpp index 585786ba180..26bf95a97b5 100644 --- a/cppe/test/IceE/facets/Client.cpp +++ b/cppe/test/IceE/facets/Client.cpp @@ -26,9 +26,11 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); GPrx allTests(const Ice::CommunicatorPtr&); GPrx g = allTests(communicator()); diff --git a/cppe/test/IceE/facets/Collocated.cpp b/cppe/test/IceE/facets/Collocated.cpp index 939b9a28221..3057be10780 100644 --- a/cppe/test/IceE/facets/Collocated.cpp +++ b/cppe/test/IceE/facets/Collocated.cpp @@ -26,11 +26,13 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); Ice::ObjectPtr d = new DI; diff --git a/cppe/test/IceE/facets/Server.cpp b/cppe/test/IceE/facets/Server.cpp index 4490d0fe357..40948706ea2 100644 --- a/cppe/test/IceE/facets/Server.cpp +++ b/cppe/test/IceE/facets/Server.cpp @@ -25,11 +25,13 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); Ice::ObjectPtr d = new DI; diff --git a/cppe/test/IceE/faultTolerance/Client.cpp b/cppe/test/IceE/faultTolerance/Client.cpp index f5f6e3aa67e..891cfc85614 100644 --- a/cppe/test/IceE/faultTolerance/Client.cpp +++ b/cppe/test/IceE/faultTolerance/Client.cpp @@ -31,14 +31,15 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + loadConfig(initData.properties); + setCommunicator(Ice::initialize(argc, argv, initData)); // // This test aborts servers, so we don't want warnings. // - properties->setProperty("Ice.Warn.Connections", "0"); + initData.properties->setProperty("Ice.Warn.Connections", "0"); vector<int> ports; for(int i = 1; i < argc; ++i) diff --git a/cppe/test/IceE/faultTolerance/Server.cpp b/cppe/test/IceE/faultTolerance/Server.cpp index db0abc4ec81..58aaad12c32 100644 --- a/cppe/test/IceE/faultTolerance/Server.cpp +++ b/cppe/test/IceE/faultTolerance/Server.cpp @@ -32,9 +32,11 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); int port = 0; for(int i = 1; i < argc; ++i) @@ -65,7 +67,7 @@ public: char buf[32]; sprintf(buf, "default -p %d", port); - properties->setProperty("TestAdapter.Endpoints", buf); + initData.properties->setProperty("TestAdapter.Endpoints", buf); Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); Ice::ObjectPtr object = new TestI(adapter); adapter->add(object, Ice::stringToIdentity("test")); diff --git a/cppe/test/IceE/inheritance/Client.cpp b/cppe/test/IceE/inheritance/Client.cpp index 3e63473bba9..edc2dc0a23a 100644 --- a/cppe/test/IceE/inheritance/Client.cpp +++ b/cppe/test/IceE/inheritance/Client.cpp @@ -26,9 +26,11 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); InitialPrx allTests(const Ice::CommunicatorPtr&); InitialPrx initial = allTests(communicator()); diff --git a/cppe/test/IceE/inheritance/Collocated.cpp b/cppe/test/IceE/inheritance/Collocated.cpp index eb8272e9862..869bd4f8f0c 100644 --- a/cppe/test/IceE/inheritance/Collocated.cpp +++ b/cppe/test/IceE/inheritance/Collocated.cpp @@ -26,11 +26,13 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); Ice::ObjectPtr object = new InitialI(adapter); diff --git a/cppe/test/IceE/inheritance/Server.cpp b/cppe/test/IceE/inheritance/Server.cpp index a182a98d5bf..bb3e88f363a 100644 --- a/cppe/test/IceE/inheritance/Server.cpp +++ b/cppe/test/IceE/inheritance/Server.cpp @@ -25,11 +25,13 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); Ice::ObjectPtr object = new InitialI(adapter); diff --git a/cppe/test/IceE/location/Client.cpp b/cppe/test/IceE/location/Client.cpp index e9b95aeadef..7c0239a0de4 100644 --- a/cppe/test/IceE/location/Client.cpp +++ b/cppe/test/IceE/location/Client.cpp @@ -28,21 +28,23 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(argc, argv); - loadConfig(properties); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(argc, argv); + loadConfig(initData.properties); // // For blocking client change retry interval from default. // - if(properties->getPropertyAsInt("Ice.Blocking") > 0) + if(initData.properties->getPropertyAsInt("Ice.Blocking") > 0) { - properties->setProperty("Ice.RetryIntervals", "0 0"); - properties->setProperty("Ice.Warn.Connections", "0"); + initData.properties->setProperty("Ice.RetryIntervals", "0 0"); + initData.properties->setProperty("Ice.Warn.Connections", "0"); } - properties->setProperty("Ice.Default.Locator", - properties->getPropertyWithDefault("Location.Locator", "locator:default -p 12010")); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + initData.properties->setProperty("Ice.Default.Locator", + initData.properties->getPropertyWithDefault("Location.Locator", "locator:default -p 12010")); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); void allTests(const Ice::CommunicatorPtr&); allTests(communicator()); diff --git a/cppe/test/IceE/location/Server.cpp b/cppe/test/IceE/location/Server.cpp index 1507d8704d8..586b32225a4 100644 --- a/cppe/test/IceE/location/Server.cpp +++ b/cppe/test/IceE/location/Server.cpp @@ -29,33 +29,35 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(argc, argv); - properties->setProperty("ServerManager.Endpoints", "default -p 12010"); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(argc, argv); + initData.properties->setProperty("ServerManager.Endpoints", "default -p 12010"); - loadConfig(properties); + loadConfig(initData.properties); // // For blocking client test, set timeout so CloseConnection send will // return quickly. Otherwise server will hang since client is not // listening for these messages. // - if(properties->getPropertyAsInt("Ice.Blocking") > 0) + if(initData.properties->getPropertyAsInt("Ice.Blocking") > 0) { - properties->setProperty("Ice.Override.Timeout", "100"); - properties->setProperty("Ice.Warn.Connections", "0"); + initData.properties->setProperty("Ice.Override.Timeout", "100"); + initData.properties->setProperty("Ice.Warn.Connections", "0"); } // // These properties cannot be overridden. The OAs started by // the ServerManager must be local. // - properties->setProperty("TestAdapter.Endpoints", "default"); - properties->setProperty("TestAdapter.AdapterId", "TestAdapter"); - properties->setProperty("TestAdapter.ReplicaGroupId", "ReplicatedAdapter"); - properties->setProperty("TestAdapter2.Endpoints", "default"); - properties->setProperty("TestAdapter2.AdapterId", "TestAdapter2"); + 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"); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); // // Register the server manager. The server manager creates a @@ -72,7 +74,7 @@ public: // ServerLocatorRegistryPtr registry = new ServerLocatorRegistry(); registry->addObject(adapter->createProxy(Ice::stringToIdentity("ServerManager"))); - Ice::ObjectPtr object = new ServerManagerI(adapter, registry, properties); + Ice::ObjectPtr object = new ServerManagerI(adapter, registry, initData.properties); adapter->add(object, Ice::stringToIdentity("ServerManager")); Ice::LocatorRegistryPrx registryPrx = diff --git a/cppe/test/IceE/location/TestI.cpp b/cppe/test/IceE/location/TestI.cpp index 51a5d006028..b6da40a70a3 100644 --- a/cppe/test/IceE/location/TestI.cpp +++ b/cppe/test/IceE/location/TestI.cpp @@ -45,8 +45,10 @@ ServerManagerI::startServer(const Ice::Current&) // its endpoints with the locator and create references containing // the adapter id instead of the endpoints. // - Ice::CommunicatorPtr serverCommunicator = Ice::initializeWithProperties(argc, argv, _properties); - serverCommunicator->setLogger(_adapter->getCommunicator()->getLogger()); + Ice::InitializationData initData; + initData.properties = _properties; + initData.logger = _adapter->getCommunicator()->getLogger(); + Ice::CommunicatorPtr serverCommunicator = Ice::initialize(argc, argv, initData); _communicators.push_back(serverCommunicator); Ice::ObjectAdapterPtr adapter = serverCommunicator->createObjectAdapter("TestAdapter"); diff --git a/cppe/test/IceE/operations/Client.cpp b/cppe/test/IceE/operations/Client.cpp index 550254df87f..00a4136e677 100644 --- a/cppe/test/IceE/operations/Client.cpp +++ b/cppe/test/IceE/operations/Client.cpp @@ -26,23 +26,25 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); // // 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"); - //properties->setProperty("Ice.Trace.Network", "5"); - //properties->setProperty("Ice.Trace.Protocol", "5"); + initData.properties->setProperty("Ice.MessageSizeMax", "100"); + //initData.properties->setProperty("Ice.Trace.Network", "5"); + //initData.properties->setProperty("Ice.Trace.Protocol", "5"); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); // // We don't want connection warnings because of the timeout test. // - properties->setProperty("Ice.Warn.Connections", "0"); + initData.properties->setProperty("Ice.Warn.Connections", "0"); Test::MyClassPrx allTests(const Ice::CommunicatorPtr&); Test::MyClassPrx myClass = allTests(communicator()); diff --git a/cppe/test/IceE/operations/Collocated.cpp b/cppe/test/IceE/operations/Collocated.cpp index 7d16d82448e..85376091a7a 100644 --- a/cppe/test/IceE/operations/Collocated.cpp +++ b/cppe/test/IceE/operations/Collocated.cpp @@ -26,20 +26,22 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); // // 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"); - properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); - //properties->setProperty("Ice.Trace.Network", "5"); - //properties->setProperty("Ice.Trace.Protocol", "5"); + initData.properties->setProperty("Ice.MessageSizeMax", "100"); + initData.properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); + //initData.properties->setProperty("Ice.Trace.Network", "5"); + //initData.properties->setProperty("Ice.Trace.Protocol", "5"); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); Ice::Identity id = Ice::stringToIdentity("test"); diff --git a/cppe/test/IceE/operations/Server.cpp b/cppe/test/IceE/operations/Server.cpp index 673b636e279..83facd40c7a 100644 --- a/cppe/test/IceE/operations/Server.cpp +++ b/cppe/test/IceE/operations/Server.cpp @@ -26,14 +26,16 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); - properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); - //properties->setProperty("Ice.Trace.Network", "5"); - //properties->setProperty("Ice.Trace.Protocol", "5"); + initData.properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); + //initData.properties->setProperty("Ice.Trace.Network", "5"); + //initData.properties->setProperty("Ice.Trace.Protocol", "5"); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); Ice::Identity id = Ice::stringToIdentity("test"); diff --git a/cppe/test/IceE/operations/Twoways.cpp b/cppe/test/IceE/operations/Twoways.cpp index 5bcd0718328..ecf6b5c15ed 100644 --- a/cppe/test/IceE/operations/Twoways.cpp +++ b/cppe/test/IceE/operations/Twoways.cpp @@ -645,45 +645,31 @@ 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); string ref = communicator->getProperties()->getPropertyWithDefault( "Operations.Proxy", "test:default -p 12010 -t 10000"); Test::MyClassPrx c = Test::MyClassPrx::checkedCast(communicator->stringToProxy(ref)); - test(c->opContext() == dflt); + 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/cppe/test/IceE/retry/Client.cpp b/cppe/test/IceE/retry/Client.cpp index 2f40ceb4ece..21ccc08bae3 100644 --- a/cppe/test/IceE/retry/Client.cpp +++ b/cppe/test/IceE/retry/Client.cpp @@ -26,23 +26,25 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); - //properties->setProperty("Ice.Trace.Network", "5"); - //properties->setProperty("Ice.Trace.Protocol", "5"); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + //initData.properties->setProperty("Ice.Trace.Network", "5"); + //initData.properties->setProperty("Ice.Trace.Protocol", "5"); - loadConfig(properties); + loadConfig(initData.properties); // // For this test, we want to disable retries. // - properties->setProperty("Ice.RetryIntervals", "-1"); + initData.properties->setProperty("Ice.RetryIntervals", "-1"); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); // // This test kills connections, so we don't want warnings. // - properties->setProperty("Ice.Warn.Connections", "0"); + initData.properties->setProperty("Ice.Warn.Connections", "0"); Test::RetryPrx allTests(const Ice::CommunicatorPtr&); Test::RetryPrx retry = allTests(communicator()); diff --git a/cppe/test/IceE/retry/Server.cpp b/cppe/test/IceE/retry/Server.cpp index 660c9293660..f11f6168fe6 100644 --- a/cppe/test/IceE/retry/Server.cpp +++ b/cppe/test/IceE/retry/Server.cpp @@ -26,14 +26,16 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); - properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); - //properties->setProperty("Ice.Trace.Network", "5"); - //properties->setProperty("Ice.Trace.Protocol", "5"); + initData.properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); + //initData.properties->setProperty("Ice.Trace.Network", "5"); + //initData.properties->setProperty("Ice.Trace.Protocol", "5"); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); Ice::ObjectPtr object = new RetryI; diff --git a/cppe/test/IceE/slicing/Client.cpp b/cppe/test/IceE/slicing/Client.cpp index 26703721335..a8762d778aa 100644 --- a/cppe/test/IceE/slicing/Client.cpp +++ b/cppe/test/IceE/slicing/Client.cpp @@ -26,9 +26,11 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); TestIntfPrx allTests(const Ice::CommunicatorPtr&); TestIntfPrx Test = allTests(communicator()); diff --git a/cppe/test/IceE/slicing/Server.cpp b/cppe/test/IceE/slicing/Server.cpp index 700d45bfeff..3545ea999ed 100644 --- a/cppe/test/IceE/slicing/Server.cpp +++ b/cppe/test/IceE/slicing/Server.cpp @@ -25,12 +25,14 @@ public: virtual int run(int argc, char* argv[]) { - Ice::PropertiesPtr properties = Ice::createProperties(); - properties->setProperty("Ice.Warn.Dispatch", "0"); - properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 2000"); + Ice::InitializationData initData; + initData.properties = Ice::createProperties(); + initData.properties->setProperty("Ice.Warn.Dispatch", "0"); + initData.properties->setProperty("TestAdapter.Endpoints", "default -p 12010 -t 2000"); - loadConfig(properties); - setCommunicator(Ice::initializeWithProperties(argc, argv, properties)); + loadConfig(initData.properties); + initData.logger = getLogger(); + setCommunicator(Ice::initialize(argc, argv, initData)); Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); Ice::ObjectPtr object = new TestI(adapter); diff --git a/cppe/test/include/TestApplication.h b/cppe/test/include/TestApplication.h index b7e8f0d0b20..578b8add33f 100644 --- a/cppe/test/include/TestApplication.h +++ b/cppe/test/include/TestApplication.h @@ -37,6 +37,8 @@ public: virtual int run(int, char*[]) = 0; + Ice::LoggerPtr getLogger(); + void setCommunicator(const Ice::CommunicatorPtr&); Ice::CommunicatorPtr communicator(); diff --git a/cs/CHANGES b/cs/CHANGES index ddc5c817cac..7af065f5a20 100644 --- a/cs/CHANGES +++ b/cs/CHANGES @@ -1,6 +1,14 @@ Changes since version 3.0.1 --------------------------- +- Added communicator initialize method which takes a InitializationData + structure containing communicator members which are only allowed + to be set during communicator creation. Currently included are + Properties, Logger, Stats and default context. The initializeWith + communicator initialization functions have been deprecated and the + setLogger(), setStats() and setDefaultContext() methods have been + removed. + - Fixed a bug where the ice_locator proxy method wouldn't change the proxy locator. diff --git a/cs/src/Ice/Application.cs b/cs/src/Ice/Application.cs index d5dcba3d036..90b4d2a99b5 100755 --- a/cs/src/Ice/Application.cs +++ b/cs/src/Ice/Application.cs @@ -57,16 +57,14 @@ namespace Ice try { + InitializationData initData = new InitializationData(); + initData.logger = logger; if(configFile != null) { - Properties properties = Util.createProperties(); - properties.load(configFile); - _communicator = Util.initializeWithPropertiesAndLogger(ref args, properties, logger); - } - else - { - _communicator = Util.initializeWithLogger(ref args, logger); + initData.properties = Util.createProperties(); + initData.properties.load(configFile); } + _communicator = Util.initialize(ref args, initData); Properties props = _communicator.getProperties(); _nohup = props.getPropertyAsInt("Ice.Nohup") != 0; diff --git a/cs/src/Ice/BasicStream.cs b/cs/src/Ice/BasicStream.cs index ebae60f65b9..ee356b7468a 100755 --- a/cs/src/Ice/BasicStream.cs +++ b/cs/src/Ice/BasicStream.cs @@ -1264,7 +1264,7 @@ namespace IceInternal } if(_traceSlicing > 0) { - TraceUtil.traceSlicing("class", id, _slicingCat, instance_.logger()); + TraceUtil.traceSlicing("class", id, _slicingCat, instance_.initializationData().logger); } skipSlice(); // Slice off this derived part -- we don't understand it. id = readTypeId(); // Read next id for next iteration. @@ -1355,7 +1355,7 @@ namespace IceInternal } if(_traceSlicing > 0) { - TraceUtil.traceSlicing("exception", id, _slicingCat, instance_.logger()); + TraceUtil.traceSlicing("exception", id, _slicingCat, instance_.initializationData().logger); } skipSlice(); // Slice off what we don't understand. id = readString(); // Read type id for next slice. @@ -1438,7 +1438,7 @@ namespace IceInternal } catch(System.Exception ex) { - instance_.logger().warning("exception raised by ice_postUnmarshal::\n" + ex); + instance_.initializationData().logger.warning("exception raised by ice_postUnmarshal::\n" + ex); } } } @@ -1459,7 +1459,7 @@ namespace IceInternal } catch(System.Exception ex) { - instance_.logger().warning("exception raised by ice_preMarshal::\n" + ex); + instance_.initializationData().logger.warning("exception raised by ice_preMarshal::\n" + ex); } v.write__(this); } diff --git a/cs/src/Ice/CommunicatorI.cs b/cs/src/Ice/CommunicatorI.cs index 86d06cc8d5d..6e421ad4229 100755 --- a/cs/src/Ice/CommunicatorI.cs +++ b/cs/src/Ice/CommunicatorI.cs @@ -64,27 +64,17 @@ namespace Ice public Properties getProperties() { - return instance_.properties(); + return instance_.initializationData().properties; } public Logger getLogger() { - return instance_.logger(); + return instance_.initializationData().logger; } - public void setLogger(Logger logger) - { - instance_.logger(logger); - } - public Stats getStats() { - return instance_.stats(); - } - - public void setStats(Stats stats) - { - instance_.stats(stats); + return instance_.initializationData().stats; } public RouterPrx getDefaultRouter() @@ -109,12 +99,7 @@ namespace Ice public Ice.Context getDefaultContext() { - return instance_.getDefaultContext(); - } - - public void setDefaultContext(Ice.Context ctx) - { - instance_.setDefaultContext(ctx); + return instance_.initializationData().defaultContext; } public PluginManager getPluginManager() @@ -127,9 +112,9 @@ namespace Ice instance_.flushBatchRequests(); } - internal CommunicatorI(Properties properties, Logger logger) + internal CommunicatorI(InitializationData initData) { - instance_ = new IceInternal.Instance(this, properties, logger); + instance_ = new IceInternal.Instance(this, initData); } #if DEBUG @@ -141,7 +126,8 @@ namespace Ice { if(!System.Environment.HasShutdownStarted) { - instance_.logger().warning("Ice::Communicator::destroy() has not been called"); + instance_.initializationData().logger.warning( + "Ice::Communicator::destroy() has not been called"); } else { diff --git a/cs/src/Ice/ConnectionFactory.cs b/cs/src/Ice/ConnectionFactory.cs index 9dae9baed65..48b550639b7 100644 --- a/cs/src/Ice/ConnectionFactory.cs +++ b/cs/src/Ice/ConnectionFactory.cs @@ -332,7 +332,7 @@ namespace IceInternal s.Append(" and no more endpoints to try\n"); } s.Append(exception); - instance_.logger().trace(traceLevels.retryCat, s.ToString()); + instance_.initializationData().logger.trace(traceLevels.retryCat, s.ToString()); } } @@ -862,7 +862,8 @@ namespace IceInternal _adapter = adapter; _registeredWithPool = false; _finishedCount = 0; - _warn = instance_.properties().getPropertyAsInt("Ice.Warn.Connections") > 0 ? true : false; + _warn = + instance_.initializationData().properties.getPropertyAsInt("Ice.Warn.Connections") > 0 ? true : false; _connections = new LinkedList(); _state = StateHolding; @@ -933,7 +934,8 @@ namespace IceInternal } catch(System.Exception ex) { - instance_.logger().error("cannot create thread for incoming connection factory:\n" + ex); + instance_.initializationData().logger.error( + "cannot create thread for incoming connection factory:\n" + ex); throw; } } @@ -1123,7 +1125,7 @@ namespace IceInternal private void warning(Ice.LocalException ex) { - instance_.logger().warning("connection exception:\n" + ex + '\n' + _acceptor.ToString()); + instance_.initializationData().logger.warning("connection exception:\n" + ex + '\n' + _acceptor.ToString()); } private void run() @@ -1248,12 +1250,13 @@ namespace IceInternal } catch(Ice.Exception ex) { - instance_.logger().error("exception in thread per incoming connection factory:\n" + ToString() + - ex.ToString()); + instance_.initializationData().logger.error("exception in thread per incoming connection factory:\n" + + ToString() + ex.ToString()); } catch(System.Exception ex) { - instance_.logger().error("system exception in thread per incoming connection factory:\n" + ToString() + + instance_.initializationData().logger.error( + "system exception in thread per incoming connection factory:\n" + ToString() + ex.ToString()); } } diff --git a/cs/src/Ice/ConnectionI.cs b/cs/src/Ice/ConnectionI.cs index 2919fa616ed..454a58d915b 100755 --- a/cs/src/Ice/ConnectionI.cs +++ b/cs/src/Ice/ConnectionI.cs @@ -1071,7 +1071,8 @@ namespace Ice ConnectionI[] connections = new ConnectionI[1]; connections[0] = this; IceInternal.Reference @ref = instance_.referenceFactory().create( - ident, instance_.getDefaultContext(), "", IceInternal.Reference.Mode.ModeTwoway, connections); + ident, instance_.initializationData().defaultContext, "", IceInternal.Reference.Mode.ModeTwoway, + connections); return instance_.proxyFactory().referenceToProxy(@ref); } @@ -1268,11 +1269,11 @@ namespace Ice _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; _acmAbsoluteTimeoutMillis = 0; _nextRequestId = 1; _batchStream = new IceInternal.BasicStream(instance); @@ -1299,7 +1300,8 @@ namespace Ice } } - _compressionLevel = instance_.properties().getPropertyAsIntWithDefault("Ice.Compression.Level", 1); + _compressionLevel = + instance_.initializationData().properties.getPropertyAsIntWithDefault("Ice.Compression.Level", 1); if(_compressionLevel < 1) { _compressionLevel = 1; @@ -1348,11 +1350,11 @@ namespace Ice { if(instance_.threadPerConnection()) { - instance_.logger().error("cannot create thread for connection:\n" + ex); + _logger.error("cannot create thread for connection:\n" + ex); } else { - instance_.logger().error("cannot create thread pool for connection:\n" + ex); + _logger.error("cannot create thread pool for connection:\n" + ex); } try @@ -2000,7 +2002,7 @@ namespace Ice activate(); } - bool warnUdp = instance_.properties().getPropertyAsInt("Ice.Warn.Datagrams") > 0; + bool warnUdp = instance_.initializationData().properties.getPropertyAsInt("Ice.Warn.Datagrams") > 0; bool closed = false; @@ -2239,11 +2241,11 @@ namespace Ice } catch(Exception ex) { - instance_.logger().error("exception in thread per connection:\n" + ToString() + "\n" + ex.ToString()); + _logger.error("exception in thread per connection:\n" + ToString() + "\n" + ex.ToString()); } catch(System.Exception ex) { - instance_.logger().error("system exception in thread per connection:\n" + ToString() + "\n" + + _logger.error("system exception in thread per connection:\n" + ToString() + "\n" + ex.ToString()); } } diff --git a/cs/src/Ice/ConnectionMonitor.cs b/cs/src/Ice/ConnectionMonitor.cs index 551806f0f04..c1d2d71f6ff 100755 --- a/cs/src/Ice/ConnectionMonitor.cs +++ b/cs/src/Ice/ConnectionMonitor.cs @@ -64,7 +64,7 @@ namespace IceInternal _interval = interval * 1000; _connections = new Set(); - string threadName = instance_.properties().getProperty("Ice.ProgramName"); + string threadName = instance_.initializationData().properties.getProperty("Ice.ProgramName"); if(threadName.Length > 0) { threadName += "-"; @@ -130,7 +130,7 @@ namespace IceInternal { return; } - instance_.logger().error("exception in connection monitor thread " + _thread.Name + + instance_.initializationData().logger.error("exception in connection monitor thread " + _thread.Name + "::\n" + ex); } } @@ -142,7 +142,7 @@ namespace IceInternal { return; } - instance_.logger().error("unknown exception in connection monitor thread " + + instance_.initializationData().logger.error("unknown exception in connection monitor thread " + _thread.Name + ":\n" + ex); } } diff --git a/cs/src/Ice/Incoming.cs b/cs/src/Ice/Incoming.cs index 89c6c2671a7..78cfa1f864c 100755 --- a/cs/src/Ice/Incoming.cs +++ b/cs/src/Ice/Incoming.cs @@ -116,7 +116,7 @@ namespace IceInternal output.print("\noperation: " + current_.operation); output.print("\n"); output.print(ex.ToString()); - os_.instance().logger().warning(sw.ToString()); + os_.instance().initializationData().logger.warning(sw.ToString()); } } @@ -285,7 +285,8 @@ namespace IceInternal 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); } @@ -340,7 +341,8 @@ namespace IceInternal { _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); } @@ -364,7 +366,8 @@ namespace IceInternal { _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); } @@ -388,7 +391,8 @@ namespace IceInternal { _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); } @@ -412,7 +416,8 @@ namespace IceInternal { _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); } @@ -437,7 +442,8 @@ namespace IceInternal { _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); } @@ -462,7 +468,8 @@ namespace IceInternal { _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); } diff --git a/cs/src/Ice/IncomingAsync.cs b/cs/src/Ice/IncomingAsync.cs index fc671660aa7..487cf86c5a6 100755 --- a/cs/src/Ice/IncomingAsync.cs +++ b/cs/src/Ice/IncomingAsync.cs @@ -95,7 +95,8 @@ namespace IceInternal 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); } @@ -146,7 +147,8 @@ namespace IceInternal } catch(Ice.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); } @@ -166,7 +168,8 @@ namespace IceInternal } catch(Ice.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); } @@ -186,7 +189,8 @@ namespace IceInternal } catch(Ice.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); } @@ -206,7 +210,8 @@ namespace IceInternal } catch(Ice.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); } @@ -226,7 +231,8 @@ namespace IceInternal } catch(Ice.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); } @@ -246,7 +252,8 @@ namespace IceInternal } catch(System.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); } diff --git a/cs/src/Ice/Instance.cs b/cs/src/Ice/Instance.cs index c16a41a2c63..50f2d90eb92 100755 --- a/cs/src/Ice/Instance.cs +++ b/cs/src/Ice/Instance.cs @@ -19,66 +19,15 @@ namespace IceInternal return _state == StateDestroyed; } - public Ice.Properties properties() + public Ice.InitializationData initializationData() { // // No check for destruction. It must be possible to access the - // properties after destruction. + // initialization data after destruction. // // No mutex lock, immutable. // - return _properties; - } - - public Ice.Logger logger() - { - lock(this) - { - // - // No check for destruction. It must be possible to access the - // logger after destruction. - // - return _logger; - } - } - - public void logger(Ice.Logger logger) - { - lock(this) - { - // - // No check for destruction. It must be possible to set the - // logger after destruction (needed by logger plugins for - // example to unset the logger). - // - _logger = logger; - } - } - - public Ice.Stats stats() - { - lock(this) - { - if(_state == StateDestroyed) - { - throw new Ice.CommunicatorDestroyedException(); - } - - return _stats; - } - } - - public void stats(Ice.Stats stats) - { - lock(this) - { - if(_state == StateDestroyed) - { - throw new Ice.CommunicatorDestroyedException(); - } - - _stats = stats; - } + return _initData; } public TraceLevels traceLevels() @@ -227,7 +176,7 @@ namespace IceInternal if(_serverThreadPool == null) // Lazy initialization. { - int timeout = _properties.getPropertyAsInt("Ice.ServerIdleTime"); + int timeout = _initData.properties.getPropertyAsInt("Ice.ServerIdleTime"); _serverThreadPool = new ThreadPool(this, "Ice.ThreadPool.Server", timeout); } @@ -285,39 +234,6 @@ namespace IceInternal return _serverACM; } - public void setDefaultContext(Ice.Context ctx) - { - lock(this) - { - if(_state == StateDestroyed) - { - throw new Ice.CommunicatorDestroyedException(); - } - - if(ctx == null || ctx.Count == 0) - { - _defaultContext = _emptyContext; - } - else - { - _defaultContext = (Ice.Context)ctx.Clone(); - } - } - } - - public Ice.Context getDefaultContext() - { - lock(this) - { - if(_state == StateDestroyed) - { - throw new Ice.CommunicatorDestroyedException(); - } - - return (Ice.Context)_defaultContext.Clone(); - } - } - public void flushBatchRequests() { OutgoingConnectionFactory connectionFactory; @@ -341,11 +257,10 @@ namespace IceInternal // // Only for use by Ice.CommunicatorI // - public Instance(Ice.Communicator communicator, Ice.Properties properties, Ice.Logger logger) + public Instance(Ice.Communicator communicator, Ice.InitializationData initData) { _state = StateActive; - _properties = properties; - _logger = logger; + _initData = initData; try { @@ -353,8 +268,8 @@ namespace IceInternal { if(!_oneOffDone) { - string stdOut = _properties.getProperty("Ice.StdOut"); - string stdErr = _properties.getProperty("Ice.StdErr"); + string stdOut = _initData.properties.getProperty("Ice.StdOut"); + string stdErr = _initData.properties.getProperty("Ice.StdErr"); System.IO.StreamWriter outStream = null; @@ -403,28 +318,27 @@ namespace IceInternal } } - if(_logger == null) + if(_initData.logger == null) { - if(_properties.getPropertyAsInt("Ice.UseSyslog") > 0) + if(_initData.properties.getPropertyAsInt("Ice.UseSyslog") > 0) { - _logger = new Ice.SysLoggerI(_properties.getProperty("Ice.ProgramName")); + _initData.logger = new Ice.SysLoggerI(_initData.properties.getProperty("Ice.ProgramName")); } else { - _logger = new Ice.LoggerI(_properties.getProperty("Ice.ProgramName"), - _properties.getPropertyAsInt("Ice.Logger.Timestamp") > 0); + _initData.logger = new Ice.LoggerI(_initData.properties.getProperty("Ice.ProgramName"), + _initData.properties.getPropertyAsInt("Ice.Logger.Timestamp") > 0); } } - _stats = null; // There is no default statistics callback object. - - _traceLevels = new TraceLevels(_properties); + _traceLevels = new TraceLevels(_initData.properties); - _defaultsAndOverrides = new DefaultsAndOverrides(_properties); + _defaultsAndOverrides = new DefaultsAndOverrides(_initData.properties); { const int defaultMessageSizeMax = 1024; - int num = _properties.getPropertyAsIntWithDefault("Ice.MessageSizeMax", defaultMessageSizeMax); + int num = + _initData.properties.getPropertyAsIntWithDefault("Ice.MessageSizeMax", defaultMessageSizeMax); if(num < 1) { _messageSizeMax = defaultMessageSizeMax * 1024; // Ignore stupid values. @@ -442,10 +356,10 @@ namespace IceInternal // // Client ACM enabled by default. Server ACM disabled by default. // - _clientACM = _properties.getPropertyAsIntWithDefault("Ice.ACM.Client", 60); - _serverACM = _properties.getPropertyAsInt("Ice.ACM.Server"); + _clientACM = _initData.properties.getPropertyAsIntWithDefault("Ice.ACM.Client", 60); + _serverACM = _initData.properties.getPropertyAsInt("Ice.ACM.Server"); - _threadPerConnection = _properties.getPropertyAsInt("Ice.ThreadPerConnection") > 0; + _threadPerConnection = _initData.properties.getPropertyAsInt("Ice.ThreadPerConnection") > 0; _routerManager = new RouterManager(); @@ -463,7 +377,10 @@ namespace IceInternal _pluginManager = new Ice.PluginManagerI(communicator); - _defaultContext = _emptyContext; + if(_initData.defaultContext == null) + { + _initData.defaultContext = _emptyContext; + } _outgoingConnectionFactory = new OutgoingConnectionFactory(this); @@ -530,7 +447,7 @@ namespace IceInternal // lock(this) { - if(!_printProcessIdDone && _properties.getPropertyAsInt("Ice.PrintProcessId") > 0) + if(!_printProcessIdDone && _initData.properties.getPropertyAsInt("Ice.PrintProcessId") > 0) { using(Process p = Process.GetCurrentProcess()) { @@ -563,7 +480,7 @@ namespace IceInternal { interval = _serverACM; } - interval = _properties.getPropertyAsIntWithDefault("Ice.MonitorConnections", interval); + interval = _initData.properties.getPropertyAsIntWithDefault("Ice.MonitorConnections", interval); if(interval > 0) { _connectionMonitor = new ConnectionMonitor(this, interval); @@ -712,9 +629,7 @@ namespace IceInternal private const int StateDestroyInProgress = 1; private const int StateDestroyed = 2; private int _state; - private Ice.Properties _properties; // Immutable, not reset by destroy(). - private Ice.Logger _logger; // Not reset by destroy(). - private Ice.Stats _stats; // Not reset by destroy(). + private Ice.InitializationData _initData; // Immutable, not reset by destroy(). private TraceLevels _traceLevels; // Immutable, not reset by destroy(). private DefaultsAndOverrides _defaultsAndOverrides; // Immutable, not reset by destroy(). private int _messageSizeMax; // Immutable, not reset by destroy(). @@ -733,7 +648,6 @@ namespace IceInternal private bool _threadPerConnection; private EndpointFactoryManager _endpointFactoryManager; private Ice.PluginManager _pluginManager; - private Ice.Context _defaultContext; private static Ice.Context _emptyContext = new Ice.Context(); private static bool _printProcessIdDone = false; diff --git a/cs/src/Ice/LocatorInfo.cs b/cs/src/Ice/LocatorInfo.cs index 037bfe9b10c..22f7b8ee797 100755 --- a/cs/src/Ice/LocatorInfo.cs +++ b/cs/src/Ice/LocatorInfo.cs @@ -179,7 +179,8 @@ namespace IceInternal s.Append("object = " + Ice.Util.identityToString(identity) + "\n"); } s.Append("reason = " + ex); - @ref.getInstance().logger().trace(@ref.getInstance().traceLevels().locationCat, s.ToString()); + @ref.getInstance().initializationData().logger.trace( + @ref.getInstance().traceLevels().locationCat, s.ToString()); } } @@ -285,7 +286,7 @@ namespace IceInternal } } - r.getInstance().logger().trace(r.getInstance().traceLevels().locationCat, s.ToString()); + r.getInstance().initializationData().logger.trace(r.getInstance().traceLevels().locationCat, s.ToString()); } private readonly Ice.LocatorPrx _locator; diff --git a/cs/src/Ice/ObjectAdapterI.cs b/cs/src/Ice/ObjectAdapterI.cs index 0b3eef94acf..f7cbab67cb5 100755 --- a/cs/src/Ice/ObjectAdapterI.cs +++ b/cs/src/Ice/ObjectAdapterI.cs @@ -48,9 +48,11 @@ namespace Ice 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; } @@ -526,7 +528,8 @@ namespace Ice connections.CopyTo(arr, 0); } IceInternal.Reference @ref = instance_.referenceFactory().create( - ident, instance_.getDefaultContext(), "", IceInternal.Reference.Mode.ModeTwoway, arr); + ident, instance_.initializationData().defaultContext, "", IceInternal.Reference.Mode.ModeTwoway, + arr); return instance_.proxyFactory().referenceToProxy(@ref); } } @@ -836,8 +839,8 @@ namespace Ice _servantManager = new IceInternal.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"); _incomingConnectionFactories = new ArrayList(); _routerEndpoints = new ArrayList(); _routerInfos = new ArrayList(); @@ -862,7 +865,7 @@ namespace Ice // 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.Count == 0) { @@ -885,13 +888,13 @@ namespace Ice } _publishedEndpoints = tmp; - string router = instance_.properties().getProperty(name + ".Router"); + string router = instance_.initializationData().properties.getProperty(name + ".Router"); if(router.Length > 0) { addRouter(RouterPrxHelper.uncheckedCast(instance_.proxyFactory().stringToProxy(router))); } - string locator = instance_.properties().getProperty(name + ".Locator"); + string locator = instance_.initializationData().properties.getProperty(name + ".Locator"); if(locator.Length > 0) { setLocator(LocatorPrxHelper.uncheckedCast(instance_.proxyFactory().stringToProxy(locator))); @@ -903,8 +906,9 @@ namespace Ice 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 IceInternal.ThreadPool(instance_, _name + ".ThreadPool", 0); @@ -928,7 +932,8 @@ namespace Ice { if(!Environment.HasShutdownStarted) { - instance_.logger().warning("object adapter `" + _name + "' has not been deactivated"); + instance_.initializationData().logger.warning("object adapter `" + _name + + "' has not been deactivated"); } else { @@ -939,7 +944,7 @@ namespace Ice { if(!Environment.HasShutdownStarted) { - instance_.logger().warning("object adapter `" + _name + + instance_.initializationData().logger.warning("object adapter `" + _name + "' deactivation had not been waited for"); } else @@ -1005,7 +1010,7 @@ namespace Ice // Create a reference and return a proxy for this reference. // IceInternal.Reference reference = - instance_.referenceFactory().create(ident, instance_.getDefaultContext(), facet, + instance_.referenceFactory().create(ident, instance_.initializationData().defaultContext, facet, IceInternal.Reference.Mode.ModeTwoway, false, endpoints, null, instance_.defaultsAndOverrides(). defaultCollocationOptimization); @@ -1019,7 +1024,7 @@ namespace Ice // proxy for the reference. // IceInternal.Reference reference = - instance_.referenceFactory().create(ident, instance_.getDefaultContext(), facet, + instance_.referenceFactory().create(ident, instance_.initializationData().defaultContext, facet, IceInternal.Reference.Mode.ModeTwoway, false, id, null, _locatorInfo, instance_.defaultsAndOverrides().defaultCollocationOptimization, diff --git a/cs/src/Ice/OutgoingAsync.cs b/cs/src/Ice/OutgoingAsync.cs index 11e64ba5da2..f9624ff1051 100755 --- a/cs/src/Ice/OutgoingAsync.cs +++ b/cs/src/Ice/OutgoingAsync.cs @@ -374,9 +374,10 @@ namespace IceInternal if(os__ != null) // Don't print anything if cleanup() was already called. { Reference rf = ((Ice.ObjectPrxHelperBase)_proxy).reference__(); - if(rf.getInstance().properties().getPropertyAsIntWithDefault("Ice.Warn.AMICallback", 1) > 0) + if(rf.getInstance().initializationData().properties.getPropertyAsIntWithDefault( + "Ice.Warn.AMICallback", 1) > 0) { - rf.getInstance().logger().warning("exception raised by AMI callback:\n" + ex); + rf.getInstance().initializationData().logger.warning("exception raised by AMI callback:\n" + ex); } } } diff --git a/cs/src/Ice/ProxyFactory.cs b/cs/src/Ice/ProxyFactory.cs index f6abcd27e23..f4a04db58b6 100755 --- a/cs/src/Ice/ProxyFactory.cs +++ b/cs/src/Ice/ProxyFactory.cs @@ -125,7 +125,7 @@ namespace IceInternal Debug.Assert(cnt > 0); TraceLevels traceLevels = instance_.traceLevels(); - Ice.Logger logger = instance_.logger(); + Ice.Logger logger = instance_.initializationData().logger; if(cnt > _retryIntervals.Length) { @@ -168,7 +168,7 @@ namespace IceInternal { instance_ = instance; - string str = instance_.properties().getPropertyWithDefault("Ice.RetryIntervals", "0"); + string str = instance_.initializationData().properties.getPropertyWithDefault("Ice.RetryIntervals", "0"); char[] separators = { ' ', '\t', '\n', '\r' }; string[] arr = str.Trim().Split(separators); diff --git a/cs/src/Ice/Reference.cs b/cs/src/Ice/Reference.cs index ce27f7235f1..c42b6fbf415 100755 --- a/cs/src/Ice/Reference.cs +++ b/cs/src/Ice/Reference.cs @@ -53,7 +53,7 @@ namespace IceInternal public Reference defaultContext() { Reference r = instance_.referenceFactory().copy(this); - r.context_ = instance_.getDefaultContext(); + r.context_ = instance_.initializationData().defaultContext; return r; } @@ -1435,13 +1435,12 @@ namespace IceInternal if(cached) { TraceLevels traceLevels = getInstance().traceLevels(); - Ice.Logger logger = getInstance().logger(); if(traceLevels.retry >= 2) { String s = "connection to cached endpoints failed\n" + "removing endpoints from cache and trying one more time\n" + ex; - logger.trace(traceLevels.retryCat, s); + getInstance().initializationData().logger.trace(traceLevels.retryCat, s); } continue; diff --git a/cs/src/Ice/ReferenceFactory.cs b/cs/src/Ice/ReferenceFactory.cs index 117936d8b27..3ba11e80f4e 100755 --- a/cs/src/Ice/ReferenceFactory.cs +++ b/cs/src/Ice/ReferenceFactory.cs @@ -401,8 +401,8 @@ namespace IceInternal if(beg == -1) { - 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); } @@ -442,7 +442,8 @@ namespace IceInternal throw e2; } else if(unknownEndpoints.Count != 0 && - instance_.properties().getPropertyAsIntWithDefault("Ice.Warn.Endpoints", 1) > 0) + instance_.initializationData().properties.getPropertyAsIntWithDefault( + "Ice.Warn.Endpoints", 1) > 0) { string msg = "Proxy contains unknown endpoints:"; int sz = unknownEndpoints.Count; @@ -450,11 +451,11 @@ namespace IceInternal { msg += " `" + (string)unknownEndpoints[idx] + "'"; } - instance_.logger().warning(msg); + instance_.initializationData().logger.warning(msg); } EndpointI[] ep = (EndpointI[])endpoints.ToArray(typeof(EndpointI)); - return create(ident, instance_.getDefaultContext(), facet, mode, secure, ep, routerInfo, + return create(ident, instance_.initializationData().defaultContext, facet, mode, secure, ep, routerInfo, instance_.defaultsAndOverrides().defaultCollocationOptimization); } else if(s[beg] == '@') @@ -493,8 +494,8 @@ namespace IceInternal e.str = s; throw e; } - 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); } @@ -555,15 +556,16 @@ namespace IceInternal { endpoints[i] = instance_.endpointFactoryManager().read(s); } - return create(ident, instance_.getDefaultContext(), facet, (Reference.Mode)mode, secure, endpoints, - routerInfo, instance_.defaultsAndOverrides().defaultCollocationOptimization); + return create(ident, instance_.initializationData().defaultContext, facet, (Reference.Mode)mode, + secure, endpoints, routerInfo, + instance_.defaultsAndOverrides().defaultCollocationOptimization); } else { endpoints = new EndpointI[0]; adapterId = s.readString(); - return create(ident, instance_.getDefaultContext(), facet, (Reference.Mode)mode, secure, adapterId, - routerInfo, locatorInfo, + return create(ident, instance_.initializationData().defaultContext, facet, (Reference.Mode)mode, + secure, adapterId, routerInfo, locatorInfo, instance_.defaultsAndOverrides().defaultCollocationOptimization, instance_.defaultsAndOverrides().defaultLocatorCacheTimeout); } diff --git a/cs/src/Ice/ServantManager.cs b/cs/src/Ice/ServantManager.cs index 89fdfdcab56..602e38b0ee2 100755 --- a/cs/src/Ice/ServantManager.cs +++ b/cs/src/Ice/ServantManager.cs @@ -237,7 +237,7 @@ public sealed class ServantManager { string s = "exception during locator deactivation:\n" + "object adapter: `" + _adapterName + "'\n" + "locator category: `" + p.Key + "'\n" + ex; - instance_.logger().error(s); + instance_.initializationData().logger.error(s); } } diff --git a/cs/src/Ice/TcpAcceptor.cs b/cs/src/Ice/TcpAcceptor.cs index 42b32dbc7aa..b27c2487352 100755 --- a/cs/src/Ice/TcpAcceptor.cs +++ b/cs/src/Ice/TcpAcceptor.cs @@ -103,7 +103,7 @@ namespace IceInternal { instance_ = instance; _traceLevels = instance.traceLevels(); - _logger = instance.logger(); + _logger = instance.initializationData().logger; _backlog = 0; if(_backlog <= 0) diff --git a/cs/src/Ice/TcpConnector.cs b/cs/src/Ice/TcpConnector.cs index cc02ed2abf8..b3194920be0 100755 --- a/cs/src/Ice/TcpConnector.cs +++ b/cs/src/Ice/TcpConnector.cs @@ -48,7 +48,7 @@ namespace IceInternal { instance_ = instance; _traceLevels = instance.traceLevels(); - _logger = instance.logger(); + _logger = instance.initializationData().logger; _addr = Network.getAddress(host, port); } diff --git a/cs/src/Ice/TcpTransceiver.cs b/cs/src/Ice/TcpTransceiver.cs index 2d5519eebf9..f110966220e 100755 --- a/cs/src/Ice/TcpTransceiver.cs +++ b/cs/src/Ice/TcpTransceiver.cs @@ -281,8 +281,8 @@ namespace IceInternal { _fd = fd; _traceLevels = instance.traceLevels(); - _logger = instance.logger(); - _stats = instance.stats(); + _logger = instance.initializationData().logger; + _stats = instance.initializationData().stats; _desc = Network.fdToString(_fd); } diff --git a/cs/src/Ice/ThreadPool.cs b/cs/src/Ice/ThreadPool.cs index c8ba68242a0..f6b98f735a3 100755 --- a/cs/src/Ice/ThreadPool.cs +++ b/cs/src/Ice/ThreadPool.cs @@ -45,7 +45,7 @@ namespace IceInternal 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 @@ -53,7 +53,7 @@ namespace IceInternal // Debug.Assert(!instance_.threadPerConnection()); - string programName = instance_.properties().getProperty("Ice.ProgramName"); + string programName = instance_.initializationData().properties.getProperty("Ice.ProgramName"); if(programName.Length > 0) { _programNamePrefix = programName + "-"; @@ -73,19 +73,20 @@ namespace IceInternal // 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", + int sizeWarn = instance_.initializationData().properties.getPropertyAsIntWithDefault(_prefix + ".SizeWarn", sizeMax * 80 / 100); size_ = size; sizeMax_ = sizeMax; @@ -106,7 +107,7 @@ namespace IceInternal catch(System.Exception ex) { string s = "cannot create thread for `" + _prefix + "':\n" + ex; - instance_.logger().error(s); + instance_.initializationData().logger.error(s); destroy(); joinWithAllThreads(); @@ -198,7 +199,7 @@ namespace IceInternal string s = "thread pool `" + _prefix + "' is running low on threads\n" + "Size=" + size_ + ", " + "SizeMax=" + sizeMax_ + ", " + "SizeWarn=" + sizeWarn_; - instance_.logger().warning(s); + instance_.initializationData().logger.warning(s); } Debug.Assert(inUse_ <= running_); @@ -215,7 +216,7 @@ namespace IceInternal catch(System.Exception ex) { string s = "cannot create thread for `" + _prefix + "':\n" + ex; - instance_.logger().error(s); + instance_.initializationData().logger.error(s); } } } @@ -531,7 +532,7 @@ namespace IceInternal { string s = "exception in `" + _prefix + "' while calling finished():\n" + ex + "\n" + handler.ToString(); - instance_.logger().error(s); + instance_.initializationData().logger.error(s); } // @@ -577,9 +578,11 @@ namespace IceInternal { if(handler.datagram()) { - if(instance_.properties().getPropertyAsInt("Ice.Warn.Connections") > 0) + if(instance_.initializationData().properties.getPropertyAsInt( + "Ice.Warn.Connections") > 0) { - instance_.logger().warning("datagram connection exception:\n" + ex + + instance_.initializationData().logger.warning( + "datagram connection exception:\n" + ex + handler.ToString()); } } @@ -609,7 +612,7 @@ namespace IceInternal catch(Ice.LocalException ex) { string s = "exception in `" + _prefix + "' while calling message():\n" + ex; - instance_.logger().error(s); + instance_.initializationData().logger.error(s); } // @@ -805,8 +808,8 @@ namespace IceInternal { if(warnUdp_) { - instance_.logger().warning("DatagramLimitException: maximum size of " + stream.pos() + - " exceeded"); + instance_.initializationData().logger.warning("DatagramLimitException: maximum size of " + + stream.pos() + " exceeded"); } stream.pos(0); stream.resize(0, true); @@ -929,13 +932,13 @@ namespace IceInternal catch(Ice.LocalException ex) { string s = "exception in `" + thread_Pool._prefix + "' thread " + thread_.Name + ":\n" + ex; - thread_Pool.instance_.logger().error(s); + thread_Pool.instance_.initializationData().logger.error(s); promote = true; } catch(System.Exception ex) { string s = "unknown exception in `" + thread_Pool._prefix + "' thread " + thread_.Name + ":\n" + ex; - thread_Pool.instance_.logger().error(s); + thread_Pool.instance_.initializationData().logger.error(s); promote = true; } diff --git a/cs/src/Ice/UdpTransceiver.cs b/cs/src/Ice/UdpTransceiver.cs index 6699fac3f99..001eca54edc 100755 --- a/cs/src/Ice/UdpTransceiver.cs +++ b/cs/src/Ice/UdpTransceiver.cs @@ -444,10 +444,10 @@ namespace IceInternal internal UdpTransceiver(Instance instance, string host, int port) { _traceLevels = instance.traceLevels(); - _logger = instance.logger(); - _stats = instance.stats(); + _logger = instance.initializationData().logger; + _stats = instance.initializationData().stats; _connect = true; - _warn = instance.properties().getPropertyAsInt("Ice.Warn.Datagrams") > 0; + _warn = instance.initializationData().properties.getPropertyAsInt("Ice.Warn.Datagrams") > 0; try { @@ -477,10 +477,10 @@ namespace IceInternal internal UdpTransceiver(Instance instance, string host, int port, bool connect) { _traceLevels = instance.traceLevels(); - _logger = instance.logger(); - _stats = instance.stats(); + _logger = instance.initializationData().logger; + _stats = instance.initializationData().stats; _connect = connect; - _warn = instance.properties().getPropertyAsInt("Ice.Warn.Datagrams") > 0; + _warn = instance.initializationData().properties.getPropertyAsInt("Ice.Warn.Datagrams") > 0; _shutdownReadWrite = false; try @@ -538,7 +538,8 @@ namespace IceInternal // // 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) { _logger.warning("Invalid " + prop + " value of " + sizeRequested + " adjusted to " + dfltSize); diff --git a/cs/src/Ice/Util.cs b/cs/src/Ice/Util.cs index 099d8179a13..8cabb9fdd2f 100755 --- a/cs/src/Ice/Util.cs +++ b/cs/src/Ice/Util.cs @@ -11,12 +11,22 @@ namespace Ice { using IceInternal; + using System; using System.Runtime.InteropServices; using System.Diagnostics; using System.IO; using System.Text; using System.Globalization; + + public class InitializationData + { + public Properties properties; + public Logger logger; + public Stats stats; + public Context defaultContext; + } + public sealed class Util { public static Properties createProperties() @@ -55,29 +65,47 @@ namespace Ice public static Communicator initialize(ref string[] args) { - Properties defaultProperties = getDefaultProperties(ref args); - return initializeWithPropertiesAndLogger(ref args, defaultProperties, null); + InitializationData initData = new InitializationData(); + return initialize(ref args, initData); } + public static Communicator initialize(ref string[] args, InitializationData initData) + { + if(initData.properties == null) + { + initData.properties = getDefaultProperties(ref args); + } + args = initData.properties.parseIceCommandLineOptions(args); + + CommunicatorI result = new CommunicatorI(initData); + result.finishSetup(ref args); + return result; + } + + [Obsolete("This method has been deprecated, use initialize instead.")] public static Communicator initializeWithLogger(ref string[] args, Logger logger) { - Properties defaultProperties = getDefaultProperties(ref args); - return initializeWithPropertiesAndLogger(ref args, defaultProperties, logger); + InitializationData initData = new InitializationData(); + initData.logger = logger; + return initialize(ref args, initData); } + [Obsolete("This method has been deprecated, use initialize instead.")] public static Communicator initializeWithProperties(ref string[] args, Properties properties) { - return initializeWithPropertiesAndLogger(ref args, properties, null); + InitializationData initData = new InitializationData(); + initData.properties = properties; + return initialize(ref args, initData); } + [Obsolete("This method has been deprecated, use initialize instead.")] public static Communicator initializeWithPropertiesAndLogger(ref string[] args, Properties properties, Ice.Logger logger) { - args = properties.parseIceCommandLineOptions(args); - - CommunicatorI result = new CommunicatorI(properties, logger); - result.finishSetup(ref args); - return result; + InitializationData initData = new InitializationData(); + initData.properties = properties; + initData.logger = logger; + return initialize(ref args, initData); } public static IceInternal.Instance getInstance(Communicator communicator) diff --git a/cs/src/IceBox/ServiceManagerI.cs b/cs/src/IceBox/ServiceManagerI.cs index 2bc01796806..4496d27e31f 100644 --- a/cs/src/IceBox/ServiceManagerI.cs +++ b/cs/src/IceBox/ServiceManagerI.cs @@ -365,7 +365,9 @@ class ServiceManagerI : IceBox.ServiceManagerDisp_ serviceArgs = serviceProperties.parseIceCommandLineOptions(serviceArgs); serviceArgs = serviceProperties.parseCommandLineOptions(service, serviceArgs); - info.communicator = Ice.Util.initializeWithProperties(ref serviceArgs, serviceProperties); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = serviceProperties; + info.communicator = Ice.Util.initialize(ref serviceArgs, initData); } Ice.Communicator communicator = info.communicator != null ? info.communicator : diff --git a/cs/test/Ice/binding/Server.cs b/cs/test/Ice/binding/Server.cs index b9c3e197d06..e8ad70047d5 100755 --- a/cs/test/Ice/binding/Server.cs +++ b/cs/test/Ice/binding/Server.cs @@ -28,9 +28,10 @@ public class Server try { - Ice.Properties properties = Ice.Util.createProperties(ref args); - properties.setProperty("Ice.ServerIdleTime", "30"); - communicator = Ice.Util.initializeWithProperties(ref args, properties); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = Ice.Util.createProperties(ref args); + initData.properties.setProperty("Ice.ServerIdleTime", "30"); + communicator = Ice.Util.initialize(ref args, initData); status = run(args, communicator); } catch(Ice.LocalException ex) diff --git a/cs/test/Ice/exceptions/Server.cs b/cs/test/Ice/exceptions/Server.cs index 1eba06761c9..e4cbdc7e591 100755 --- a/cs/test/Ice/exceptions/Server.cs +++ b/cs/test/Ice/exceptions/Server.cs @@ -30,12 +30,6 @@ public class Server { private static int run(string[] args, Ice.Communicator communicator) { - // - // For this test, we need a dummy logger, otherwise the - // assertion test will print an error message. - // - communicator.setLogger(new DummyLogger()); - Ice.Properties properties = communicator.getProperties(); // We don't need to disable warnings because we have a dummy logger. //properties.setProperty("Ice.Warn.Dispatch", "0"); @@ -55,7 +49,13 @@ public class Server try { - communicator = Ice.Util.initialize(ref args); + // + // For this test, we need a dummy logger, otherwise the + // assertion test will print an error message. + // + Ice.InitializationData initData = new Ice.InitializationData(); + initData.logger = new DummyLogger(); + communicator = Ice.Util.initialize(ref args, initData); status = run(args, communicator); } catch(Ice.LocalException ex) diff --git a/cs/test/Ice/location/Client.cs b/cs/test/Ice/location/Client.cs index 2b724f6a239..cd145197750 100755 --- a/cs/test/Ice/location/Client.cs +++ b/cs/test/Ice/location/Client.cs @@ -22,9 +22,10 @@ public class Client try { - Ice.Properties properties = Ice.Util.createProperties(ref args); - properties.setProperty("Ice.Default.Locator", "locator:default -p 12010"); - communicator = Ice.Util.initializeWithProperties(ref args, properties); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = Ice.Util.createProperties(ref args); + initData.properties.setProperty("Ice.Default.Locator", "locator:default -p 12010"); + communicator = Ice.Util.initialize(ref args, initData); status = run(args, communicator); } catch(System.Exception ex) diff --git a/cs/test/Ice/operations/Collocated.cs b/cs/test/Ice/operations/Collocated.cs index d3e4fef938c..21ff52ebf83 100755 --- a/cs/test/Ice/operations/Collocated.cs +++ b/cs/test/Ice/operations/Collocated.cs @@ -18,6 +18,7 @@ public class Collocated Ice.Identity id = Ice.Util.stringToIdentity("test"); adapter.add(new MyDerivedClassI(adapter, id), id); adapter.add(new TestCheckedCastI(), Ice.Util.stringToIdentity("context")); + adapter.activate(); AllTests.allTests(communicator, true); @@ -33,6 +34,7 @@ public class Collocated { Ice.Properties properties = Ice.Util.getDefaultProperties(); properties.setProperty("Ice.ThreadPool.Client.Size", "2"); // For nested AMI. + properties.setProperty("Ice.ThreadPool.Client.SizeWarn", "0"); communicator = Ice.Util.initialize(ref args); status = run(args, communicator); diff --git a/cs/test/Ice/operations/Twoways.cs b/cs/test/Ice/operations/Twoways.cs index b7032300a00..4053f0f78a5 100755 --- a/cs/test/Ice/operations/Twoways.cs +++ b/cs/test/Ice/operations/Twoways.cs @@ -574,69 +574,57 @@ class Twoways } { - Ice.Context ctx = new Ice.Context(); - ctx["one"] = "ONE"; - ctx["two"] = "TWO"; - ctx["three"] = "THREE"; { - test(p.ice_getContext().Count == 0); - Ice.Context r = p.opContext(); - test(!r.Equals(ctx)); - } - { - Ice.Context r = p.opContext(ctx); - test(p.ice_getContext().Count == 0); - test(r.Equals(ctx)); - } - { - Test.MyClassPrx p2 = Test.MyClassPrxHelper.checkedCast(p.ice_context(ctx)); - test(p2.ice_getContext().Equals(ctx)); - Ice.Context r = p2.opContext(); - test(r.Equals(ctx)); - r = p2.opContext(ctx); - test(r.Equals(ctx)); + Ice.Context ctx = new Ice.Context(); + ctx["one"] = "ONE"; + ctx["two"] = "TWO"; + ctx["three"] = "THREE"; + { + test(p.ice_getContext().Count == 0); + Ice.Context r = p.opContext(); + test(!r.Equals(ctx)); + } + { + Ice.Context r = p.opContext(ctx); + test(p.ice_getContext().Count == 0); + test(r.Equals(ctx)); + } + { + Test.MyClassPrx p2 = Test.MyClassPrxHelper.checkedCast(p.ice_context(ctx)); + test(p2.ice_getContext().Equals(ctx)); + Ice.Context r = p2.opContext(); + test(r.Equals(ctx)); + r = p2.opContext(ctx); + test(r.Equals(ctx)); + } } { // // Test that default context is obtained correctly from communicator. // - Ice.Context dflt = new Ice.Context(); - dflt["a"] = "b"; - communicator.setDefaultContext(dflt); - test(!p.opContext().Equals(dflt)); - - Test.MyClassPrx p2 = Test.MyClassPrxHelper.uncheckedCast(p.ice_context(new Ice.Context())); - test(p2.opContext().Count == 0); - - p2 = Test.MyClassPrxHelper.uncheckedCast(p.ice_defaultContext()); - test(p2.opContext().Equals(dflt)); + string[] args = new string[0]; + Ice.InitializationData initData = new Ice.InitializationData(); + initData.defaultContext = new Ice.Context(); + initData.defaultContext["a"] = "b"; + Ice.Communicator communicator2 = Ice.Util.initialize(ref args, initData); - communicator.setDefaultContext(new Ice.Context()); - test(p2.opContext().Count != 0); - - communicator.setDefaultContext(dflt); Test.MyClassPrx c = Test.MyClassPrxHelper.checkedCast( - communicator.stringToProxy("test:default -p 12010 -t 10000")); - test(c.opContext().Equals(dflt)); - - dflt["a"] = "c"; - Test.MyClassPrx c2 = Test.MyClassPrxHelper.uncheckedCast(c.ice_context(dflt)); + communicator2.stringToProxy("test:default -p 12010 -t 10000")); + test(c.opContext().Equals(initData.defaultContext)); + + Ice.Context ctx = new Ice.Context(); + ctx["a"] = "c"; + Test.MyClassPrx c2 = Test.MyClassPrxHelper.uncheckedCast(c.ice_context(ctx)); test(c2.opContext()["a"].Equals("c")); - dflt.Clear(); - Test.MyClassPrx c3 = Test.MyClassPrxHelper.uncheckedCast(c2.ice_context(dflt)); + ctx.Clear(); + Test.MyClassPrx c3 = Test.MyClassPrxHelper.uncheckedCast(c2.ice_context(ctx)); test(c3.opContext()["a"] == null); Test.MyClassPrx c4 = Test.MyClassPrxHelper.uncheckedCast(c2.ice_defaultContext()); test(c4.opContext()["a"].Equals("b")); - dflt["a"] = "d"; - communicator.setDefaultContext(dflt); - - Test.MyClassPrx c5 = Test.MyClassPrxHelper.uncheckedCast(c2.ice_defaultContext()); - test(c5.opContext()["a"].Equals("d")); - - communicator.setDefaultContext(new Ice.Context()); + communicator2.destroy(); } } } diff --git a/cs/test/Ice/operations/TwowaysAMI.cs b/cs/test/Ice/operations/TwowaysAMI.cs index 4823fc8377b..ffee2e390ad 100755 --- a/cs/test/Ice/operations/TwowaysAMI.cs +++ b/cs/test/Ice/operations/TwowaysAMI.cs @@ -1254,71 +1254,49 @@ public class TwowaysAMI } { - Ice.Context ctx = new Ice.Context(); - ctx["one"] = "ONE"; - ctx["two"] = "TWO"; - ctx["three"] = "THREE"; - { - test(p.ice_getContext().Count == 0); - AMI_MyClass_opContextNotEqualI cb = new AMI_MyClass_opContextNotEqualI(ctx); - p.opContext_async(cb); - test(cb.check()); - } - { - test(p.ice_getContext().Count == 0); - AMI_MyClass_opContextEqualI cb = new AMI_MyClass_opContextEqualI(ctx); - p.opContext_async(cb, ctx); - test(cb.check()); - } - Test.MyClassPrx p2 = Test.MyClassPrxHelper.checkedCast(p.ice_context(ctx)); - test(p2.ice_getContext().Equals(ctx)); - { - AMI_MyClass_opContextEqualI cb = new AMI_MyClass_opContextEqualI(ctx); - p2.opContext_async(cb); - test(cb.check()); - } - { - AMI_MyClass_opContextEqualI cb = new AMI_MyClass_opContextEqualI(ctx); - p2.opContext_async(cb, ctx); - test(cb.check()); - } + { + Ice.Context ctx = new Ice.Context(); + ctx["one"] = "ONE"; + ctx["two"] = "TWO"; + ctx["three"] = "THREE"; + { + test(p.ice_getContext().Count == 0); + AMI_MyClass_opContextNotEqualI cb = new AMI_MyClass_opContextNotEqualI(ctx); + p.opContext_async(cb); + test(cb.check()); + } + { + test(p.ice_getContext().Count == 0); + AMI_MyClass_opContextEqualI cb = new AMI_MyClass_opContextEqualI(ctx); + p.opContext_async(cb, ctx); + test(cb.check()); + } + Test.MyClassPrx p2 = Test.MyClassPrxHelper.checkedCast(p.ice_context(ctx)); + test(p2.ice_getContext().Equals(ctx)); + { + AMI_MyClass_opContextEqualI cb = new AMI_MyClass_opContextEqualI(ctx); + p2.opContext_async(cb); + test(cb.check()); + } + { + AMI_MyClass_opContextEqualI cb = new AMI_MyClass_opContextEqualI(ctx); + p2.opContext_async(cb, ctx); + test(cb.check()); + } + } + { // // Test that default context is obtained correctly from communicator. // - Ice.Context dflt = new Ice.Context(); - dflt["a"] = "b"; - communicator.setDefaultContext(dflt); - { - AMI_MyClass_opContextNotEqualI cb = new AMI_MyClass_opContextNotEqualI(dflt); - p.opContext_async(cb); - test(cb.check()); - } - - p2 = Test.MyClassPrxHelper.uncheckedCast(p.ice_context(new Ice.Context())); - { - AMI_MyClass_opContextEqualI cb = new AMI_MyClass_opContextEqualI(new Ice.Context()); - p2.opContext_async(cb); - test(cb.check()); - } - - p2 = Test.MyClassPrxHelper.uncheckedCast(p.ice_defaultContext()); - { - AMI_MyClass_opContextEqualI cb = new AMI_MyClass_opContextEqualI(dflt); - p2.opContext_async(cb); - test(cb.check()); - } - - communicator.setDefaultContext(new Ice.Context()); - { - AMI_MyClass_opContextNotEqualI cb = new AMI_MyClass_opContextNotEqualI(new Ice.Context()); - p2.opContext_async(cb); - test(cb.check()); - } + string[] args = new string[0]; + Ice.InitializationData initData = new Ice.InitializationData(); + initData.defaultContext = new Ice.Context(); + initData.defaultContext["a"] = "b"; + Ice.Communicator communicator2 = Ice.Util.initialize(ref args, initData); - communicator.setDefaultContext(dflt); Test.MyClassPrx c = Test.MyClassPrxHelper.checkedCast( - communicator.stringToProxy("test:default -p 12010 -t 10000")); + communicator2.stringToProxy("test:default -p 12010 -t 10000")); { Ice.Context tmp = new Ice.Context(); tmp["a"] = "b"; @@ -1327,8 +1305,9 @@ public class TwowaysAMI test(cb.check()); } - dflt["a"] = "c"; - Test.MyClassPrx c2 = Test.MyClassPrxHelper.uncheckedCast(c.ice_context(dflt)); + Ice.Context ctx = new Ice.Context(); + ctx["a"] = "c"; + Test.MyClassPrx c2 = Test.MyClassPrxHelper.uncheckedCast(c.ice_context(ctx)); { Ice.Context tmp = new Ice.Context(); tmp["a"] = "c"; @@ -1337,8 +1316,8 @@ public class TwowaysAMI test(cb.check()); } - dflt.Clear(); - Test.MyClassPrx c3 = Test.MyClassPrxHelper.uncheckedCast(c2.ice_context(dflt)); + ctx.Clear(); + Test.MyClassPrx c3 = Test.MyClassPrxHelper.uncheckedCast(c2.ice_context(ctx)); { Ice.Context tmp = new Ice.Context(); AMI_MyClass_opContextEqualI cb = new AMI_MyClass_opContextEqualI(tmp); @@ -1355,19 +1334,7 @@ public class TwowaysAMI test(cb.check()); } - dflt["a"] = "d"; - communicator.setDefaultContext(dflt); - - Test.MyClassPrx c5 = Test.MyClassPrxHelper.uncheckedCast(c.ice_defaultContext()); - { - Ice.Context tmp = new Ice.Context(); - tmp["a"] = "d"; - AMI_MyClass_opContextEqualI cb = new AMI_MyClass_opContextEqualI(tmp); - c5.opContext_async(cb); - test(cb.check()); - } - - communicator.setDefaultContext(new Ice.Context()); + communicator2.destroy(); } } diff --git a/cs/test/Ice/timeout/AllTests.cs b/cs/test/Ice/timeout/AllTests.cs index 795a57a6ced..86cefdcde87 100644 --- a/cs/test/Ice/timeout/AllTests.cs +++ b/cs/test/Ice/timeout/AllTests.cs @@ -325,9 +325,10 @@ public class AllTests // endpoint timeouts. // string[] args = new string[0]; - Ice.Properties props = communicator.getProperties().ice_clone_(); - props.setProperty("Ice.Override.Timeout", "500"); - Ice.Communicator comm = Ice.Util.initializeWithProperties(ref args, props); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = communicator.getProperties().ice_clone_(); + initData.properties.setProperty("Ice.Override.Timeout", "500"); + Ice.Communicator comm = Ice.Util.initialize(ref args, initData); Test.TimeoutPrx to = Test.TimeoutPrxHelper.checkedCast(comm.stringToProxy(sref)); try { @@ -359,9 +360,10 @@ public class AllTests // Test Ice.Override.ConnectTimeout. // string[] args = new string[0]; - Ice.Properties props = communicator.getProperties().ice_clone_(); - props.setProperty("Ice.Override.ConnectTimeout", "500"); - Ice.Communicator comm = Ice.Util.initializeWithProperties(ref args, props); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = communicator.getProperties().ice_clone_(); + initData.properties.setProperty("Ice.Override.ConnectTimeout", "500"); + Ice.Communicator comm = Ice.Util.initialize(ref args, initData); timeout.holdAdapter(750); Test.TimeoutPrx to = Test.TimeoutPrxHelper.uncheckedCast(comm.stringToProxy(sref)); try diff --git a/javae/CHANGES b/javae/CHANGES index 49d84a698ff..056b09999b8 100755 --- a/javae/CHANGES +++ b/javae/CHANGES @@ -1,6 +1,13 @@ Changes since version 1.1.0 --------------------------- +- Added communicator initialize method which takes a InitializationData + structure containing communicator members which are only allowed + to be set during communicator creation. Currently included are + Properties, Logger, and default context. The initializeWith + communicator initialization functions have been deprecated and the + setLogger() and setDefaultContext() methods have been removed. + - Added requestId to Current. Changes since version 1.0.0 diff --git a/javae/demo/IceE/jdk/bidir/Client.java b/javae/demo/IceE/jdk/bidir/Client.java index 7ef7cd7a724..a1f36b5cb10 100755 --- a/javae/demo/IceE/jdk/bidir/Client.java +++ b/javae/demo/IceE/jdk/bidir/Client.java @@ -52,9 +52,10 @@ public class Client try { - Ice.Properties properties = Ice.Util.createProperties(); - properties.load("config"); - communicator = Ice.Util.initializeWithProperties(args, properties); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = Ice.Util.createProperties(); + initData.properties.load("config"); + communicator = Ice.Util.initialize(args, initData); status = run(args, communicator); } catch(Ice.LocalException ex) diff --git a/javae/demo/IceE/jdk/bidir/Server.java b/javae/demo/IceE/jdk/bidir/Server.java index 2e4086a280b..fe5052b6512 100755 --- a/javae/demo/IceE/jdk/bidir/Server.java +++ b/javae/demo/IceE/jdk/bidir/Server.java @@ -49,9 +49,10 @@ public class Server try { - Ice.Properties properties = Ice.Util.createProperties(); - properties.load("config"); - communicator = Ice.Util.initializeWithProperties(args, properties); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = Ice.Util.createProperties(); + initData.properties.load("config"); + communicator = Ice.Util.initialize(args, initData); status = run(args, communicator); } catch(Ice.LocalException ex) diff --git a/javae/demo/IceE/jdk/callback/Client.java b/javae/demo/IceE/jdk/callback/Client.java index f08531130f4..d3b1f403cb2 100644 --- a/javae/demo/IceE/jdk/callback/Client.java +++ b/javae/demo/IceE/jdk/callback/Client.java @@ -128,9 +128,10 @@ public class Client try { - Ice.Properties properties = Ice.Util.createProperties(); - properties.load("config"); - communicator = Ice.Util.initializeWithProperties(args, properties); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = Ice.Util.createProperties(); + initData.properties.load("config"); + communicator = Ice.Util.initialize(args, initData); status = run(args, communicator); } catch(Ice.LocalException ex) diff --git a/javae/demo/IceE/jdk/callback/Server.java b/javae/demo/IceE/jdk/callback/Server.java index 166c2ba3305..d118d3e2430 100644 --- a/javae/demo/IceE/jdk/callback/Server.java +++ b/javae/demo/IceE/jdk/callback/Server.java @@ -29,9 +29,10 @@ public class Server try { - Ice.Properties properties = Ice.Util.createProperties(); - properties.load("config"); - communicator = Ice.Util.initializeWithProperties(args, properties); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = Ice.Util.createProperties(); + initData.properties.load("config"); + communicator = Ice.Util.initialize(args, initData); status = run(args, communicator); } catch(Ice.LocalException ex) diff --git a/javae/demo/IceE/jdk/chat/Client.java b/javae/demo/IceE/jdk/chat/Client.java index 30b27b66e81..b6ad2239952 100644 --- a/javae/demo/IceE/jdk/chat/Client.java +++ b/javae/demo/IceE/jdk/chat/Client.java @@ -161,9 +161,10 @@ public class Client try { - Ice.Properties properties = Ice.Util.createProperties(); - properties.load("config"); - communicator = Ice.Util.initializeWithProperties(args, properties); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = Ice.Util.createProperties(); + initData.properties.load("config"); + communicator = Ice.Util.initialize(args, initData); status = run(args, communicator); } catch(Ice.LocalException ex) diff --git a/javae/demo/IceE/jdk/hello/Client.java b/javae/demo/IceE/jdk/hello/Client.java index 40f56413736..f95a173cec0 100644 --- a/javae/demo/IceE/jdk/hello/Client.java +++ b/javae/demo/IceE/jdk/hello/Client.java @@ -146,9 +146,10 @@ public class Client try { - Ice.Properties properties = Ice.Util.createProperties(); - properties.load("config"); - communicator = Ice.Util.initializeWithProperties(args, properties); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = Ice.Util.createProperties(); + initData.properties.load("config"); + communicator = Ice.Util.initialize(args, initData); status = run(args, communicator); } catch(Ice.LocalException ex) diff --git a/javae/demo/IceE/jdk/hello/Server.java b/javae/demo/IceE/jdk/hello/Server.java index 6227b802e0b..93b6270bbf7 100644 --- a/javae/demo/IceE/jdk/hello/Server.java +++ b/javae/demo/IceE/jdk/hello/Server.java @@ -30,9 +30,10 @@ public class Server try { - Ice.Properties properties = Ice.Util.createProperties(); - properties.load("config"); - communicator = Ice.Util.initializeWithProperties(args, properties); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = Ice.Util.createProperties(); + initData.properties.load("config"); + communicator = Ice.Util.initialize(args, initData); status = run(args, communicator); } catch(Ice.LocalException ex) diff --git a/javae/demo/IceE/jdk/latency/Client.java b/javae/demo/IceE/jdk/latency/Client.java index 2459ebb4e4e..a50504319cd 100644 --- a/javae/demo/IceE/jdk/latency/Client.java +++ b/javae/demo/IceE/jdk/latency/Client.java @@ -60,9 +60,10 @@ public class Client try { - Ice.Properties properties = Ice.Util.createProperties(); - properties.load("config"); - communicator = Ice.Util.initializeWithProperties(args, properties); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = Ice.Util.createProperties(); + initData.properties.load("config"); + communicator = Ice.Util.initialize(args, initData); status = run(args, communicator); } catch(Ice.LocalException ex) diff --git a/javae/demo/IceE/jdk/latency/Server.java b/javae/demo/IceE/jdk/latency/Server.java index 36096eab205..2e8a1008ea4 100644 --- a/javae/demo/IceE/jdk/latency/Server.java +++ b/javae/demo/IceE/jdk/latency/Server.java @@ -30,9 +30,10 @@ public class Server try { - Ice.Properties properties = Ice.Util.createProperties(); - properties.load("config"); - communicator = Ice.Util.initializeWithProperties(args, properties); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = Ice.Util.createProperties(); + initData.properties.load("config"); + communicator = Ice.Util.initialize(args, initData); status = run(args, communicator); } catch(Ice.LocalException ex) diff --git a/javae/demo/IceE/jdk/throughput/Client.java b/javae/demo/IceE/jdk/throughput/Client.java index 8cd074c98f7..04b4a37b22b 100644 --- a/javae/demo/IceE/jdk/throughput/Client.java +++ b/javae/demo/IceE/jdk/throughput/Client.java @@ -425,9 +425,10 @@ public class Client try { - Ice.Properties properties = Ice.Util.createProperties(); - properties.load("config"); - communicator = Ice.Util.initializeWithProperties(args, properties); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = Ice.Util.createProperties(); + initData.properties.load("config"); + communicator = Ice.Util.initialize(args, initData); status = run(args, communicator); } catch(Ice.LocalException ex) diff --git a/javae/demo/IceE/jdk/throughput/Server.java b/javae/demo/IceE/jdk/throughput/Server.java index 28067175b43..803775d9b0e 100644 --- a/javae/demo/IceE/jdk/throughput/Server.java +++ b/javae/demo/IceE/jdk/throughput/Server.java @@ -40,9 +40,10 @@ public class Server try { - Ice.Properties properties = Ice.Util.createProperties(); - properties.load("config"); - communicator = Ice.Util.initializeWithProperties(args, properties); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = Ice.Util.createProperties(); + initData.properties.load("config"); + communicator = Ice.Util.initialize(args, initData); status = run(args, communicator); } catch(Ice.LocalException ex) diff --git a/javae/demo/IceE/midp/hello/ClientMIDlet.java b/javae/demo/IceE/midp/hello/ClientMIDlet.java index cedc483dc2f..7c2568077df 100644 --- a/javae/demo/IceE/midp/hello/ClientMIDlet.java +++ b/javae/demo/IceE/midp/hello/ClientMIDlet.java @@ -35,9 +35,10 @@ public class ClientMIDlet startApp() { java.io.InputStream is = getClass().getResourceAsStream("config"); - Ice.Properties properties = Ice.Util.createProperties(); - properties.load(is); - _communicator = Ice.Util.initializeWithProperties(new String[0], properties); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = Ice.Util.createProperties(); + initData.properties.load(is); + _communicator = Ice.Util.initialize(new String[0], initData); if(_display == null) { diff --git a/javae/demo/IceE/midp/hello/ServerMIDlet.java b/javae/demo/IceE/midp/hello/ServerMIDlet.java index 803d3637536..e790283dedf 100644 --- a/javae/demo/IceE/midp/hello/ServerMIDlet.java +++ b/javae/demo/IceE/midp/hello/ServerMIDlet.java @@ -69,9 +69,10 @@ public class ServerMIDlet startApp() { java.io.InputStream is = getClass().getResourceAsStream("config"); - Ice.Properties properties = Ice.Util.createProperties(); - properties.load(is); - _communicator = Ice.Util.initializeWithProperties(new String[0], properties); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = Ice.Util.createProperties(); + initData.properties.load(is); + _communicator = Ice.Util.initialize(new String[0], initData); if(_display == null) { diff --git a/javae/jdk/IceInternal/Acceptor.java b/javae/jdk/IceInternal/Acceptor.java index 340dd9a03be..04893261f34 100644 --- a/javae/jdk/IceInternal/Acceptor.java +++ b/javae/jdk/IceInternal/Acceptor.java @@ -122,7 +122,7 @@ class Acceptor { _instance = instance; _traceLevels = instance.traceLevels(); - _logger = instance.logger(); + _logger = instance.initializationData().logger; _backlog = 0; if(_backlog <= 0) diff --git a/javae/jdk/IceInternal/Connector.java b/javae/jdk/IceInternal/Connector.java index 5ab107761c7..0f2b5b9932a 100644 --- a/javae/jdk/IceInternal/Connector.java +++ b/javae/jdk/IceInternal/Connector.java @@ -185,7 +185,7 @@ final class Connector { _instance = instance; _traceLevels = instance.traceLevels(); - _logger = instance.logger(); + _logger = instance.initializationData().logger; _addr = Network.getAddress(host, port); } diff --git a/javae/jdk/IceInternal/Transceiver.java b/javae/jdk/IceInternal/Transceiver.java index 47f0482bb4e..7bd0354de4e 100644 --- a/javae/jdk/IceInternal/Transceiver.java +++ b/javae/jdk/IceInternal/Transceiver.java @@ -235,7 +235,7 @@ final public class Transceiver { _fd = fd; _traceLevels = instance.traceLevels(); - _logger = instance.logger(); + _logger = instance.initializationData().logger; _desc = Network.fdToString(_fd); try { diff --git a/javae/midp/IceInternal/Acceptor.java b/javae/midp/IceInternal/Acceptor.java index 6ad48dbc8b6..48e66956627 100755 --- a/javae/midp/IceInternal/Acceptor.java +++ b/javae/midp/IceInternal/Acceptor.java @@ -138,7 +138,7 @@ class Acceptor { _instance = instance; _traceLevels = instance.traceLevels(); - _logger = instance.logger(); + _logger = instance.initializationData().logger; _backlog = 0; if(_backlog <= 0) diff --git a/javae/midp/IceInternal/Connector.java b/javae/midp/IceInternal/Connector.java index a0acfeee2fe..cfc24922340 100755 --- a/javae/midp/IceInternal/Connector.java +++ b/javae/midp/IceInternal/Connector.java @@ -190,7 +190,7 @@ final class Connector { _instance = instance; _traceLevels = instance.traceLevels(); - _logger = instance.logger(); + _logger = instance.initializationData().logger; _url = "socket://" + host + ':' + port; } diff --git a/javae/midp/IceInternal/Transceiver.java b/javae/midp/IceInternal/Transceiver.java index 09dab58d444..8cfbab34226 100755 --- a/javae/midp/IceInternal/Transceiver.java +++ b/javae/midp/IceInternal/Transceiver.java @@ -442,7 +442,7 @@ final public class Transceiver { _connection = (javax.microedition.io.SocketConnection)connection; _traceLevels = instance.traceLevels(); - _logger = instance.logger(); + _logger = instance.initializationData().logger; _desc = Network.toString(_connection); try { diff --git a/javae/src/Ice/Communicator.java b/javae/src/Ice/Communicator.java index 44ddab29cec..c56b308fabe 100644 --- a/javae/src/Ice/Communicator.java +++ b/javae/src/Ice/Communicator.java @@ -56,19 +56,13 @@ public final class Communicator public Properties getProperties() { - return _instance.properties(); + return _instance.initializationData().properties; } public Logger getLogger() { - return _instance.logger(); - } - - public void - setLogger(Logger logger) - { - _instance.logger(logger); + return _instance.initializationData().logger; } public RouterPrx @@ -98,13 +92,7 @@ public final class Communicator public java.util.Hashtable getDefaultContext() { - return _instance.getDefaultContext(); - } - - public void - setDefaultContext(java.util.Hashtable ctx) - { - _instance.setDefaultContext(ctx); + return _instance.initializationData().defaultContext; } public void @@ -113,9 +101,9 @@ public final class Communicator _instance.flushBatchRequests(); } - Communicator(Properties properties) + Communicator(InitializationData initData) { - _instance = new IceInternal.Instance(this, properties); + _instance = new IceInternal.Instance(this, initData); } // diff --git a/javae/src/Ice/Connection.java b/javae/src/Ice/Connection.java index b83d87c3080..e7b88ecbe16 100644 --- a/javae/src/Ice/Connection.java +++ b/javae/src/Ice/Connection.java @@ -830,9 +830,9 @@ public final class Connection _desc = transceiver.toString(); _type = transceiver.type(); _endpoint = endpoint; - _logger = instance.logger(); // Cached for better performance. + _logger = instance.initializationData().logger; // Cached for better performance. _traceLevels = instance.traceLevels(); // Cached for better performance. - _warn = _instance.properties().getPropertyAsInt("Ice.Warn.Connections") > 0 ? true : false; + _warn = _instance.initializationData().properties.getPropertyAsInt("Ice.Warn.Connections") > 0 ? true : false; _nextRequestId = 1; _batchStream = new IceInternal.BasicStream(instance); _batchStreamInUse = false; @@ -840,7 +840,7 @@ public final class Connection _dispatchCount = 0; _state = StateNotValidated; _stateTime = System.currentTimeMillis(); - _blocking = _instance.properties().getPropertyAsInt("Ice.Blocking") > 0 && adapter == null; + _blocking = _instance.initializationData().properties.getPropertyAsInt("Ice.Blocking") > 0 && adapter == null; _stream = new IceInternal.BasicStream(_instance); _in = new IceInternal.Incoming(_instance, this, _stream, adapter); @@ -864,7 +864,7 @@ public final class Connection ex.printStackTrace(); String s = "cannot create thread for connection:\n";; s += ex.toString(); - _instance.logger().error(s); + _logger.error(s); try { diff --git a/javae/src/Ice/InitializationData.java b/javae/src/Ice/InitializationData.java new file mode 100644 index 00000000000..ad0363e281e --- /dev/null +++ b/javae/src/Ice/InitializationData.java @@ -0,0 +1,22 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2006 ZeroC, Inc. All rights reserved. +// +// This copy of Ice-E is licensed to you under the terms described in the +// ICEE_LICENSE file included in this distribution. +// +// ********************************************************************** + +package Ice; + +public final class InitializationData +{ + public + InitializationData() + { + } + + public Properties properties; + public Logger logger; + public java.util.Hashtable defaultContext; +} diff --git a/javae/src/Ice/ObjectAdapter.java b/javae/src/Ice/ObjectAdapter.java index f7efb418be1..51b1b2a820e 100644 --- a/javae/src/Ice/ObjectAdapter.java +++ b/javae/src/Ice/ObjectAdapter.java @@ -41,7 +41,8 @@ public final class ObjectAdapter if(!_printAdapterReadyDone) { locatorInfo = _locatorInfo; - printAdapterReady = _instance.properties().getPropertyAsInt("Ice.PrintAdapterReady") > 0; + printAdapterReady = + _instance.initializationData().properties.getPropertyAsInt("Ice.PrintAdapterReady") > 0; _printAdapterReadyDone = true; } @@ -672,8 +673,8 @@ public final class ObjectAdapter _servantManager = new IceInternal.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; @@ -696,16 +697,16 @@ public final class ObjectAdapter // Parse published endpoints. 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); - String router = _instance.properties().getProperty(name + ".Router"); + String router = _instance.initializationData().properties.getProperty(name + ".Router"); if(router.length() > 0) { addRouter(RouterPrxHelper.uncheckedCast(_instance.proxyFactory().stringToProxy(router))); } - String locator = _instance.properties().getProperty(name + ".Locator"); + String locator = _instance.initializationData().properties.getProperty(name + ".Locator"); if(locator.length() > 0) { setLocator(LocatorPrxHelper.uncheckedCast(_instance.proxyFactory().stringToProxy(locator))); @@ -729,11 +730,12 @@ public final class ObjectAdapter { if(!_deactivated) { - _instance.logger().warning("object adapter `" + _name + "' has not been deactivated"); + _instance.initializationData().logger.warning("object adapter `" + _name + "' has not been deactivated"); } else if(_instance != null) { - _instance.logger().warning("object adapter `" + _name + "' deactivation had not been waited for"); + _instance.initializationData().logger.warning("object adapter `" + _name + + "' deactivation had not been waited for"); } else { diff --git a/javae/src/Ice/Util.java b/javae/src/Ice/Util.java index 4ed351234c1..09a58857c96 100644 --- a/javae/src/Ice/Util.java +++ b/javae/src/Ice/Util.java @@ -60,8 +60,8 @@ public final class Util public static Communicator initialize(StringSeqHolder args) { - Properties properties = getDefaultProperties(args); - return initializeWithProperties(args, properties); + InitializationData initData = new InitializationData(); + return initialize(args, initData); } public static Communicator @@ -72,20 +72,46 @@ public final class Util } public static Communicator - initializeWithProperties(StringSeqHolder args, Properties properties) + initialize(StringSeqHolder args, InitializationData initData) { - args.value = properties.parseIceCommandLineOptions(args.value); + if(initData.properties == null) + { + initData.properties = getDefaultProperties(args); + } + args.value = initData.properties.parseIceCommandLineOptions(args.value); - Communicator result = new Communicator(properties); + Communicator result = new Communicator(initData); result.finishSetup(args); return result; } public static Communicator - initializeWithProperties(String[] args, Properties properties) + initialize(String[] args, InitializationData initData) { StringSeqHolder argsH = new StringSeqHolder(args); - return initializeWithProperties(argsH, properties); + return initialize(argsH, initData); + } + + /** + * @deprecated This method has been deprecated, use initialize instead. + **/ + public static Communicator + initializeWithProperties(StringSeqHolder args, Properties properties) + { + InitializationData initData = new InitializationData(); + initData.properties = properties; + return initialize(args, initData); + } + + /** + * @deprecated This method has been deprecated, use initialize instead. + **/ + public static Communicator + initializeWithProperties(String[] args, Properties properties) + { + InitializationData initData = new InitializationData(); + initData.properties = properties; + return initialize(args, initData); } public static IceInternal.Instance diff --git a/javae/src/IceInternal/BasicStream.java b/javae/src/IceInternal/BasicStream.java index d23f5ecda18..fda02df2558 100644 --- a/javae/src/IceInternal/BasicStream.java +++ b/javae/src/IceInternal/BasicStream.java @@ -1365,7 +1365,7 @@ public class BasicStream if(pos != -1) { String topLevelModule = id.substring(2, pos); - String pkg = _instance.properties().getProperty("Ice.Package." + topLevelModule); + String pkg = _instance.initializationData().properties.getProperty("Ice.Package." + topLevelModule); if(pkg.length() > 0) { c = getConcreteClass(pkg + "." + className); @@ -1375,7 +1375,7 @@ public class BasicStream if(c == null) { - String pkg = _instance.properties().getProperty("Ice.Default.Package"); + String pkg = _instance.initializationData().properties.getProperty("Ice.Default.Package"); if(pkg.length() > 0) { c = getConcreteClass(pkg + "." + className); diff --git a/javae/src/IceInternal/Incoming.java b/javae/src/IceInternal/Incoming.java index 60d14c643c8..f525ac5016a 100644 --- a/javae/src/IceInternal/Incoming.java +++ b/javae/src/IceInternal/Incoming.java @@ -150,7 +150,7 @@ final public class Incoming 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); } @@ -208,7 +208,7 @@ final public class Incoming { _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); } @@ -232,7 +232,7 @@ final public class Incoming { _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); } @@ -256,7 +256,7 @@ final public class Incoming { _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); } @@ -280,7 +280,7 @@ final public class Incoming { _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); } @@ -315,7 +315,7 @@ final public class Incoming { _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); } @@ -425,7 +425,7 @@ final public class Incoming sb.append("\noperation: " + _current.operation); sb.append("\n"); sb.append(ex.toString()); - _os.instance().logger().warning(sb.toString()); + _os.instance().initializationData().logger.warning(sb.toString()); } // diff --git a/javae/src/IceInternal/IncomingConnectionFactory.java b/javae/src/IceInternal/IncomingConnectionFactory.java index 21ab2ce7072..4143e5f3173 100644 --- a/javae/src/IceInternal/IncomingConnectionFactory.java +++ b/javae/src/IceInternal/IncomingConnectionFactory.java @@ -208,7 +208,7 @@ public final class IncomingConnectionFactory _instance = instance; _endpoint = endpoint; _adapter = adapter; - _warn = _instance.properties().getPropertyAsInt("Ice.Warn.Connections") > 0 ? true : false; + _warn = _instance.initializationData().properties.getPropertyAsInt("Ice.Warn.Connections") > 0 ? true : false; _state = StateHolding; DefaultsAndOverrides defaultsAndOverrides = _instance.defaultsAndOverrides(); @@ -401,14 +401,14 @@ public final class IncomingConnectionFactory warning(Ice.LocalException ex) { String s = "connection exception:\n" + ex.toString() + '\n' + _acceptor.toString(); - _instance.logger().warning(s); + _instance.initializationData().logger.warning(s); } public void error(String msg, Exception ex) { String s = msg + ":\n" + toString() + ex.toString(); - _instance.logger().error(s); + _instance.initializationData().logger.error(s); } public void diff --git a/javae/src/IceInternal/IndirectReference.java b/javae/src/IceInternal/IndirectReference.java index 509fe614d70..ce0ad959a33 100644 --- a/javae/src/IceInternal/IndirectReference.java +++ b/javae/src/IceInternal/IndirectReference.java @@ -170,13 +170,11 @@ public class IndirectReference extends RoutableReference if(cached.value) { TraceLevels traceLevels = getInstance().traceLevels(); - Ice.Logger logger = getInstance().logger(); - if(traceLevels.retry >= 2) { String s = "connection to cached endpoints failed\n" + "removing endpoints from cache and trying one more time\n" + ex; - logger.trace(traceLevels.retryCat, s); + getInstance().initializationData().logger.trace(traceLevels.retryCat, s); } continue; diff --git a/javae/src/IceInternal/Instance.java b/javae/src/IceInternal/Instance.java index 323ad934ebf..6c4e5949955 100644 --- a/javae/src/IceInternal/Instance.java +++ b/javae/src/IceInternal/Instance.java @@ -11,37 +11,16 @@ package IceInternal; public class Instance { - public Ice.Properties - properties() + public Ice.InitializationData + initializationData() { // // No check for destruction. It must be possible to access the - // properties after destruction. + // initialization data after destruction. // // No mutex lock, immutable. // - return _properties; - } - - public synchronized Ice.Logger - logger() - { - // - // No check for destruction. It must be possible to access the - // logger after destruction. - // - return _logger; - } - - public synchronized void - logger(Ice.Logger 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). - // - _logger = logger; + return _initData; } public TraceLevels @@ -149,49 +128,6 @@ public class Instance } public void - setDefaultContext(java.util.Hashtable ctx) - { - if(ctx == null || ctx.isEmpty()) - { - _defaultContext = _emptyContext; - } - else - { - _defaultContext = new java.util.Hashtable(ctx.size()); - java.util.Enumeration e = ctx.keys(); - while(e.hasMoreElements()) - { - java.lang.Object key = e.nextElement(); - _defaultContext.put(key, ctx.get(key)); - } - } - } - - public java.util.Hashtable - getDefaultContext() - { - // - // JDK 1.1 raises IllegalArgumentException if we pass 0 as the initial capacity. - // - if(_defaultContext.isEmpty()) - { - return new java.util.Hashtable(); - } - else - { - java.util.Hashtable result = new java.util.Hashtable(_defaultContext.size()); - java.util.Enumeration e = _defaultContext.keys(); - while(e.hasMoreElements()) - { - java.lang.Object key = e.nextElement(); - java.lang.Object value = _defaultContext.get(key); - result.put(key, value); - } - return result; - } - } - - public void flushBatchRequests() { OutgoingConnectionFactory connectionFactory; @@ -216,25 +152,28 @@ public class Instance // Only for use by Ice.Communicator // public - Instance(Ice.Communicator communicator, Ice.Properties properties) + Instance(Ice.Communicator communicator, Ice.InitializationData initData) { _state = StateActive; - _properties = properties; + _initData = initData; try { - _logger = new Ice.LoggerI(_properties.getProperty("Ice.ProgramName"), - _properties.getPropertyAsInt("Ice.Logger.Timestamp") > 0); + if(_initData.logger == null) + { + _initData.logger = new Ice.LoggerI(_initData.properties.getProperty("Ice.ProgramName"), + _initData.properties.getPropertyAsInt("Ice.Logger.Timestamp") > 0); + } validatePackages(); - _traceLevels = new TraceLevels(_properties); + _traceLevels = new TraceLevels(_initData.properties); - _defaultsAndOverrides = new DefaultsAndOverrides(_properties); + _defaultsAndOverrides = new DefaultsAndOverrides(_initData.properties); { final int defaultMessageSizeMax = 1024; - int num = _properties.getPropertyAsIntWithDefault("Ice.MessageSizeMax", defaultMessageSizeMax); + int num = _initData.properties.getPropertyAsIntWithDefault("Ice.MessageSizeMax", defaultMessageSizeMax); if(num < 1) { _messageSizeMax = defaultMessageSizeMax * 1024; // Ignore stupid values. @@ -250,7 +189,7 @@ public class Instance } { - int stackSize = _properties.getPropertyAsInt("Ice.ThreadPerConnection.StackSize"); + int stackSize = _initData.properties.getPropertyAsInt("Ice.ThreadPerConnection.StackSize"); if(stackSize < 0) { stackSize = 0; @@ -268,7 +207,10 @@ public class Instance _endpointFactory = new EndpointFactory(this); - _defaultContext = _emptyContext; + if(_initData.defaultContext == null) + { + _initData.defaultContext = _emptyContext; + } _outgoingConnectionFactory = new OutgoingConnectionFactory(this); @@ -406,7 +348,7 @@ public class Instance validatePackages() { final String prefix = "Ice.Package."; - java.util.Hashtable map = _properties.getPropertiesForPrefix(prefix); + java.util.Hashtable map = _initData.properties.getPropertiesForPrefix(prefix); java.util.Enumeration p = map.keys(); while(p.hasMoreElements()) { @@ -414,7 +356,7 @@ public class Instance String pkg = (String)map.get(key); if(key.length() == prefix.length()) { - _logger.warning("ignoring invalid property: " + key + "=" + pkg); + _initData.logger.warning("ignoring invalid property: " + key + "=" + pkg); } String module = key.substring(prefix.length()); String className = pkg + "." + module + "._Marker"; @@ -424,7 +366,7 @@ public class Instance } catch(java.lang.Exception ex) { - _logger.warning("unable to validate package: " + key + "=" + pkg); + _initData.logger.warning("unable to validate package: " + key + "=" + pkg); } } } @@ -434,8 +376,7 @@ public class Instance private static final int StateDestroyed = 2; private int _state; - private final Ice.Properties _properties; // Immutable, not reset by destroy(). - private Ice.Logger _logger; // Not reset by destroy(). + private final Ice.InitializationData _initData; // Immutable, not reset by destroy(). private final TraceLevels _traceLevels; // Immutable, not reset by destroy(). private final DefaultsAndOverrides _defaultsAndOverrides; // Immutable, not reset by destroy(). private final int _messageSizeMax; // Immutable, not reset by destroy(). @@ -447,7 +388,6 @@ public class Instance private ObjectAdapterFactory _objectAdapterFactory; private final int _threadPerConnectionStackSize; private EndpointFactory _endpointFactory; - private java.util.Hashtable _defaultContext; private static java.util.Hashtable _emptyContext = new java.util.Hashtable(); private static boolean _oneOffDone = false; diff --git a/javae/src/IceInternal/LocatorInfo.java b/javae/src/IceInternal/LocatorInfo.java index 1639b1f1549..08ad865d3a0 100644 --- a/javae/src/IceInternal/LocatorInfo.java +++ b/javae/src/IceInternal/LocatorInfo.java @@ -173,7 +173,8 @@ public final class LocatorInfo s.append("object = " + Ice.Util.identityToString(identity) + "\n"); } s.append("reason = " + ex); - ref.getInstance().logger().trace(ref.getInstance().traceLevels().locationCat, s.toString()); + ref.getInstance().initializationData().logger.trace( + ref.getInstance().traceLevels().locationCat, s.toString()); } throw ex; } @@ -281,7 +282,7 @@ public final class LocatorInfo s.append(":"); } - ref.getInstance().logger().trace(ref.getInstance().traceLevels().locationCat, s.toString()); + ref.getInstance().initializationData().logger.trace(ref.getInstance().traceLevels().locationCat, s.toString()); } private /*final*/ Ice.LocatorPrx _locator; diff --git a/javae/src/IceInternal/OutgoingConnectionFactory.java b/javae/src/IceInternal/OutgoingConnectionFactory.java index 04bf8818fb7..61e4e82692f 100644 --- a/javae/src/IceInternal/OutgoingConnectionFactory.java +++ b/javae/src/IceInternal/OutgoingConnectionFactory.java @@ -322,7 +322,7 @@ public final class OutgoingConnectionFactory s.append(" and no more endpoints to try\n"); } s.append(exception.toString()); - _instance.logger().trace(traceLevels.retryCat, s.toString()); + _instance.initializationData().logger.trace(traceLevels.retryCat, s.toString()); } } diff --git a/javae/src/IceInternal/ProxyFactory.java b/javae/src/IceInternal/ProxyFactory.java index c1b6633f29b..21ecc721ca2 100644 --- a/javae/src/IceInternal/ProxyFactory.java +++ b/javae/src/IceInternal/ProxyFactory.java @@ -137,7 +137,7 @@ public final class ProxyFactory IceUtil.Debug.Assert(cnt > 0); TraceLevels traceLevels = _instance.traceLevels(); - Ice.Logger logger = _instance.logger(); + Ice.Logger logger = _instance.initializationData().logger; if(cnt > _retryIntervals.length) { @@ -186,7 +186,7 @@ public final class ProxyFactory { _instance = instance; - String str = _instance.properties().getPropertyWithDefault("Ice.RetryIntervals", "0"); + String str = _instance.initializationData().properties.getPropertyWithDefault("Ice.RetryIntervals", "0"); String[] arr = IceUtil.StringUtil.split(str.trim(), " \t\n\r"); diff --git a/javae/src/IceInternal/Reference.java b/javae/src/IceInternal/Reference.java index f482ab14d52..b7de4b1dc60 100644 --- a/javae/src/IceInternal/Reference.java +++ b/javae/src/IceInternal/Reference.java @@ -58,7 +58,7 @@ public abstract class Reference defaultContext() { Reference r = _instance.referenceFactory().copy(this); - r._context = _instance.getDefaultContext(); + r._context = _instance.initializationData().defaultContext; return r; } diff --git a/javae/src/IceInternal/ReferenceFactory.java b/javae/src/IceInternal/ReferenceFactory.java index a18457c7bcf..32f98d80de4 100644 --- a/javae/src/IceInternal/ReferenceFactory.java +++ b/javae/src/IceInternal/ReferenceFactory.java @@ -383,7 +383,8 @@ public final class ReferenceFactory if(beg == -1) { - return create(ident, _instance.getDefaultContext(), facet, mode, secure, "", routerInfo, locatorInfo); + return create(ident, _instance.initializationData().defaultContext, facet, mode, secure, "", routerInfo, + locatorInfo); } java.util.Vector endpoints = new java.util.Vector(); @@ -421,7 +422,7 @@ public final class ReferenceFactory throw e; } else if(unknownEndpoints.size() != 0 && - _instance.properties().getPropertyAsIntWithDefault("Ice.Warn.Endpoints", 1) > 0) + _instance.initializationData().properties.getPropertyAsIntWithDefault("Ice.Warn.Endpoints", 1) > 0) { String msg = "Proxy contains unknown endpoints:"; java.util.Enumeration e = unknownEndpoints.elements(); @@ -429,12 +430,12 @@ public final class ReferenceFactory { msg += " `" + (String)e.nextElement() + "'"; } - _instance.logger().warning(msg); + _instance.initializationData().logger.warning(msg); } Endpoint[] endp = new Endpoint[endpoints.size()]; endpoints.copyInto(endp); - return create(ident, _instance.getDefaultContext(), facet, mode, secure, endp, routerInfo); + return create(ident, _instance.initializationData().defaultContext, facet, mode, secure, endp, routerInfo); } else if(s.charAt(beg) == '@') { @@ -474,7 +475,8 @@ public final class ReferenceFactory throw e; } adapter = token.value; - return create(ident, _instance.getDefaultContext(), facet, mode, secure, adapter, routerInfo, locatorInfo); + return create(ident, _instance.initializationData().defaultContext, facet, mode, secure, adapter, + routerInfo, locatorInfo); } Ice.ProxyParseException ex = new Ice.ProxyParseException(); @@ -535,13 +537,15 @@ public final class ReferenceFactory { endpoints[i] = _instance.endpointFactory().read(s); } - return create(ident, _instance.getDefaultContext(), facet, mode, secure, endpoints, routerInfo); + return create(ident, _instance.initializationData().defaultContext, facet, mode, secure, endpoints, + routerInfo); } else { endpoints = new Endpoint[0]; adapterId = s.readString(); - return create(ident, _instance.getDefaultContext(), facet, mode, secure, adapterId, routerInfo, locatorInfo); + return create(ident, _instance.initializationData().defaultContext, facet, mode, secure, adapterId, + routerInfo, locatorInfo); } } diff --git a/javae/test/IceE/exceptions/Collocated.java b/javae/test/IceE/exceptions/Collocated.java index 9028b38dc08..6a70eed389a 100644 --- a/javae/test/IceE/exceptions/Collocated.java +++ b/javae/test/IceE/exceptions/Collocated.java @@ -12,12 +12,6 @@ public class Collocated public static int run(String[] args, Ice.Communicator communicator, java.io.PrintStream out) { - // - // For this test, we need a dummy logger, otherwise the - // assertion test will print an error message. - // - communicator.setLogger(new DummyLogger()); - communicator.getProperties().setProperty("Test.Proxy", "thrower:default -p 12010 -t 10000"); communicator.getProperties().setProperty("TestAdapter.Endpoints", "default -p 12010 -t 10000"); Ice.ObjectAdapter adapter = communicator.createObjectAdapter("TestAdapter"); @@ -38,7 +32,13 @@ public class Collocated try { - communicator = Ice.Util.initialize(args); + // + // For this test, we need a dummy logger, otherwise the + // assertion test will print an error message. + // + Ice.InitializationData initData = new Ice.InitializationData(); + initData.logger = new DummyLogger(); + communicator = Ice.Util.initialize(args, initData); status = run(args, communicator, System.out); } catch(Ice.LocalException ex) diff --git a/javae/test/IceE/exceptions/Server.java b/javae/test/IceE/exceptions/Server.java index e5166113eea..c3e26811ada 100644 --- a/javae/test/IceE/exceptions/Server.java +++ b/javae/test/IceE/exceptions/Server.java @@ -13,12 +13,6 @@ public class Server run(String[] args, Ice.Communicator communicator, java.io.PrintStream out) { // - // For this test, we need a dummy logger, otherwise the - // assertion test will print an error message. - // - communicator.setLogger(new DummyLogger()); - - // // When running as a MIDlet the properties for the server may be // overridden by configuration. If it isn't then we assume // defaults. @@ -44,7 +38,13 @@ public class Server try { - communicator = Ice.Util.initialize(args); + // + // For this test, we need a dummy logger, otherwise the + // assertion test will print an error message. + // + Ice.InitializationData initData = new Ice.InitializationData(); + initData.logger = new DummyLogger(); + communicator = Ice.Util.initialize(args, initData); status = run(args, communicator, System.out); } catch(Ice.LocalException ex) diff --git a/javae/test/IceE/location/Client.java b/javae/test/IceE/location/Client.java index 85179b9309f..8cb62f219b9 100644 --- a/javae/test/IceE/location/Client.java +++ b/javae/test/IceE/location/Client.java @@ -25,16 +25,17 @@ public class Client try { Ice.StringSeqHolder argsH = new Ice.StringSeqHolder(args); - Ice.Properties properties = Ice.Util.createProperties(argsH); - properties.setProperty("Ice.Default.Locator", "locator:default -p 12010"); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.properties = Ice.Util.createProperties(argsH); + initData.properties.setProperty("Ice.Default.Locator", "locator:default -p 12010"); - if(properties.getPropertyAsInt("Ice.Blocking") > 0) + if(initData.properties.getPropertyAsInt("Ice.Blocking") > 0) { - properties.setProperty("Ice.RetryIntervals", "0 0"); - properties.setProperty("Ice.Warn.Connections", "0"); + initData.properties.setProperty("Ice.RetryIntervals", "0 0"); + initData.properties.setProperty("Ice.Warn.Connections", "0"); } - communicator = Ice.Util.initializeWithProperties(argsH, properties); + communicator = Ice.Util.initialize(argsH, initData); status = run(argsH.value, communicator, System.out); } catch (Ice.LocalException ex) diff --git a/javae/test/IceE/operations/Twoways.java b/javae/test/IceE/operations/Twoways.java index 2c830a0ab3e..17fef2f9f57 100644 --- a/javae/test/IceE/operations/Twoways.java +++ b/javae/test/IceE/operations/Twoways.java @@ -597,70 +597,57 @@ class Twoways } { - java.util.Hashtable ctx = new java.util.Hashtable(); - ctx.put("one", "ONE"); - ctx.put("two", "TWO"); - ctx.put("three", "THREE"); { - test(p.ice_getContext().isEmpty()); - java.util.Hashtable r = p.opContext(); - test(!IceUtil.Hashtable.equals(r, ctx)); - } - { - java.util.Hashtable r = p.opContext(ctx); - test(p.ice_getContext().isEmpty()); - test(IceUtil.Hashtable.equals(r, ctx)); - } - { - Test.MyClassPrx p2 = Test.MyClassPrxHelper.checkedCast(p.ice_context(ctx)); - test(IceUtil.Hashtable.equals(p2.ice_getContext(), ctx)); - java.util.Hashtable r = p2.opContext(); - test(IceUtil.Hashtable.equals(r, ctx)); - r = p2.opContext(ctx); - test(IceUtil.Hashtable.equals(r, ctx)); + java.util.Hashtable ctx = new java.util.Hashtable(); + ctx.put("one", "ONE"); + ctx.put("two", "TWO"); + ctx.put("three", "THREE"); + { + test(p.ice_getContext().isEmpty()); + java.util.Hashtable r = p.opContext(); + test(!IceUtil.Hashtable.equals(r, ctx)); + } + { + java.util.Hashtable r = p.opContext(ctx); + test(p.ice_getContext().isEmpty()); + test(IceUtil.Hashtable.equals(r, ctx)); + } + { + Test.MyClassPrx p2 = Test.MyClassPrxHelper.checkedCast(p.ice_context(ctx)); + test(IceUtil.Hashtable.equals(p2.ice_getContext(), ctx)); + java.util.Hashtable r = p2.opContext(); + test(IceUtil.Hashtable.equals(r, ctx)); + r = p2.opContext(ctx); + test(IceUtil.Hashtable.equals(r, ctx)); + } } { // // Test that default context is obtained correctly from communicator. // - java.util.Hashtable dflt = new java.util.Hashtable(); - dflt.put("a", "b"); - communicator.setDefaultContext(dflt); - test(!IceUtil.Hashtable.equals(p.opContext(), dflt)); - - Test.MyClassPrx p2 = Test.MyClassPrxHelper.uncheckedCast(p.ice_context(new java.util.Hashtable())); - test(p2.opContext().isEmpty()); + Ice.InitializationData initData = new Ice.InitializationData(); + initData.defaultContext = new java.util.Hashtable(); + initData.defaultContext.put("a", "b"); + Ice.Communicator communicator2 = Ice.Util.initialize(new String[0], initData); - p2 = Test.MyClassPrxHelper.uncheckedCast(p.ice_defaultContext()); - test(IceUtil.Hashtable.equals(p2.opContext(), dflt)); - - communicator.setDefaultContext(new java.util.Hashtable()); - test(!p2.opContext().isEmpty()); - - communicator.setDefaultContext(dflt); - String ref = communicator.getProperties().getPropertyWithDefault("Test.Proxy", + String ref = communicator2.getProperties().getPropertyWithDefault("Test.Proxy", "test:default -p 12010 -t 10000"); - Test.MyClassPrx c = Test.MyClassPrxHelper.checkedCast(communicator.stringToProxy(ref)); - test(IceUtil.Hashtable.equals(c.opContext(), dflt)); + Test.MyClassPrx c = Test.MyClassPrxHelper.checkedCast(communicator2.stringToProxy(ref)); + test(IceUtil.Hashtable.equals(c.opContext(), initData.defaultContext)); - dflt.put("a", "c"); - Test.MyClassPrx c2 = Test.MyClassPrxHelper.uncheckedCast(c.ice_context(dflt)); + java.util.Hashtable ctx = new java.util.Hashtable(); + ctx.put("a", "c"); + Test.MyClassPrx c2 = Test.MyClassPrxHelper.uncheckedCast(c.ice_context(ctx)); test(c2.opContext().get("a").equals("c")); - dflt.clear(); - Test.MyClassPrx c3 = Test.MyClassPrxHelper.uncheckedCast(c2.ice_context(dflt)); + ctx.clear(); + Test.MyClassPrx c3 = Test.MyClassPrxHelper.uncheckedCast(c2.ice_context(ctx)); test(c3.opContext().get("a") == null); Test.MyClassPrx c4 = Test.MyClassPrxHelper.uncheckedCast(c2.ice_defaultContext()); test(c4.opContext().get("a").equals("b")); - dflt.put("a", "d"); - communicator.setDefaultContext(dflt); - - Test.MyClassPrx c5 = Test.MyClassPrxHelper.uncheckedCast(c2.ice_defaultContext()); - test(c5.opContext().get("a").equals("d")); - - communicator.setDefaultContext(new java.util.Hashtable()); + communicator2.destroy(); } } diff --git a/php/src/ice/communicator.cpp b/php/src/ice/communicator.cpp index 988b8c28eb0..0dedea01c38 100644 --- a/php/src/ice/communicator.cpp +++ b/php/src/ice/communicator.cpp @@ -637,7 +637,9 @@ initCommunicator(ice_object* obj TSRMLS_DC) int argc = 0; char** argv = 0; - Ice::CommunicatorPtr communicator = Ice::initializeWithProperties(argc, argv, *properties); + Ice::InitializationData initData; + initData.properties = *properties; + Ice::CommunicatorPtr communicator = Ice::initialize(argc, argv, initData); obj->ptr = new Ice::CommunicatorPtr(communicator); // diff --git a/php/test/Ice/operations/Client.php b/php/test/Ice/operations/Client.php index 1d17c356ba6..5cf967a6ba1 100644 --- a/php/test/Ice/operations/Client.php +++ b/php/test/Ice/operations/Client.php @@ -402,6 +402,7 @@ function twoways($communicator, $p) $r = $p2->opContext($ctx); test($r == $ctx); } + /* { // // Test that default context is obtained correctly from communicator. @@ -446,6 +447,7 @@ function twoways($communicator, $p) $communicator->setDefaultContext(array()); } + */ } } diff --git a/py/CHANGES b/py/CHANGES index c06144a6993..b97e85f88ee 100644 --- a/py/CHANGES +++ b/py/CHANGES @@ -1,6 +1,14 @@ Changes since version 3.0.1 --------------------------- +- Added communicator initialize method which takes a InitializationData + structure containing communicator members which are only allowed + to be set during communicator creation. Currently included are + Properties, Logger, Stats and default context. The initializeWith + communicator initialization functions have been deprecated and the + setLogger(), setStats() and setDefaultContext() methods have been + removed. + - Fixed an assertion failure in the object adapter when find is called for a non-existent identity. diff --git a/py/modules/IcePy/Communicator.cpp b/py/modules/IcePy/Communicator.cpp index e83c46c4c31..a7ca8fb41ac 100644 --- a/py/modules/IcePy/Communicator.cpp +++ b/py/modules/IcePy/Communicator.cpp @@ -163,7 +163,10 @@ communicatorInit(CommunicatorObject* self, PyObject* args, PyObject* /*kwds*/) Ice::CommunicatorPtr communicator; try { - communicator = Ice::initializeWithPropertiesAndLogger(argc, argv, props, log); + Ice::InitializationData initData; + initData.properties = props; + initData.logger = log; + communicator = Ice::initialize(argc, argv, initData); } catch(const Ice::Exception& ex) { @@ -533,36 +536,6 @@ communicatorGetLogger(CommunicatorObject* self) extern "C" #endif static PyObject* -communicatorSetLogger(CommunicatorObject* self, PyObject* args) -{ - PyObject* loggerType = lookupType("Ice.Logger"); - assert(loggerType != NULL); - - PyObject* logger; - if(!PyArg_ParseTuple(args, STRCAST("O!"), loggerType, &logger)) - { - return NULL; - } - - Ice::LoggerPtr wrapper = new LoggerWrapper(logger); - try - { - (*self->communicator)->setLogger(wrapper); - } - catch(const Ice::Exception& ex) - { - setPythonException(ex); - return NULL; - } - - Py_INCREF(Py_None); - return Py_None; -} - -#ifdef WIN32 -extern "C" -#endif -static PyObject* communicatorAddObjectFactory(CommunicatorObject* self, PyObject* args) { PyObject* factoryType = lookupType("Ice.ObjectFactory"); @@ -663,39 +636,6 @@ communicatorFindObjectFactory(CommunicatorObject* self, PyObject* args) extern "C" #endif static PyObject* -communicatorSetDefaultContext(CommunicatorObject* self, PyObject* args) -{ - PyObject* dict; - if(!PyArg_ParseTuple(args, STRCAST("O!"), &PyDict_Type, &dict)) - { - return NULL; - } - - Ice::Context ctx; - if(!dictionaryToContext(dict, ctx)) - { - return NULL; - } - - try - { - (*self->communicator)->setDefaultContext(ctx); - } - catch(const Ice::Exception& ex) - { - setPythonException(ex); - return NULL; - - } - - Py_INCREF(Py_None); - return Py_None; -} - -#ifdef WIN32 -extern "C" -#endif -static PyObject* communicatorGetDefaultContext(CommunicatorObject* self) { Ice::Context ctx; @@ -964,16 +904,12 @@ static PyMethodDef CommunicatorMethods[] = PyDoc_STR(STRCAST("removeObjectFactory(id) -> None")) }, { STRCAST("findObjectFactory"), (PyCFunction)communicatorFindObjectFactory, METH_VARARGS, PyDoc_STR(STRCAST("findObjectFactory(id) -> Ice.ObjectFactory")) }, - { STRCAST("setDefaultContext"), (PyCFunction)communicatorSetDefaultContext, METH_VARARGS, - PyDoc_STR(STRCAST("setDefaultContext(ctx) -> None")) }, { STRCAST("getDefaultContext"), (PyCFunction)communicatorGetDefaultContext, METH_NOARGS, PyDoc_STR(STRCAST("getDefaultContext() -> Ice.Context")) }, { STRCAST("getProperties"), (PyCFunction)communicatorGetProperties, METH_NOARGS, PyDoc_STR(STRCAST("getProperties() -> Ice.Properties")) }, { STRCAST("getLogger"), (PyCFunction)communicatorGetLogger, METH_NOARGS, PyDoc_STR(STRCAST("getLogger() -> Ice.Logger")) }, - { STRCAST("setLogger"), (PyCFunction)communicatorSetLogger, METH_VARARGS, - PyDoc_STR(STRCAST("setLogger(Ice.Logger) -> None")) }, { STRCAST("getDefaultRouter"), (PyCFunction)communicatorGetDefaultRouter, METH_NOARGS, PyDoc_STR(STRCAST("getDefaultRouter() -> proxy")) }, { STRCAST("setDefaultRouter"), (PyCFunction)communicatorSetDefaultRouter, METH_VARARGS, diff --git a/py/test/Ice/operations/Twoways.py b/py/test/Ice/operations/Twoways.py index b70eb8c3fec..ff6a536019c 100644 --- a/py/test/Ice/operations/Twoways.py +++ b/py/test/Ice/operations/Twoways.py @@ -460,39 +460,39 @@ def twoways(communicator, p): # # Test that default context is obtained correctly from communicator. # - dflt = {'a': 'b'} - communicator.setDefaultContext(dflt) - test(p.opContext() != dflt) +# dflt = {'a': 'b'} +# communicator.setDefaultContext(dflt) +# test(p.opContext() != dflt) - p2 = Test.MyClassPrx.uncheckedCast(p.ice_context({})) - test(len(p2.opContext()) == 0) +# p2 = Test.MyClassPrx.uncheckedCast(p.ice_context({})) +# test(len(p2.opContext()) == 0) - p2 = Test.MyClassPrx.uncheckedCast(p.ice_defaultContext()) - test(p2.opContext() == dflt) +# p2 = Test.MyClassPrx.uncheckedCast(p.ice_defaultContext()) +# test(p2.opContext() == dflt) - communicator.setDefaultContext({}) - test(len(p2.opContext()) > 0) +# communicator.setDefaultContext({}) +# test(len(p2.opContext()) > 0) - communicator.setDefaultContext(dflt) - c = Test.MyClassPrx.checkedCast(communicator.stringToProxy("test:default -p 12010 -t 10000")) - test(c.opContext() == dflt) +# communicator.setDefaultContext(dflt) +# c = Test.MyClassPrx.checkedCast(communicator.stringToProxy("test:default -p 12010 -t 10000")) +# test(c.opContext() == dflt) - dflt['a'] = 'c' - c2 = Test.MyClassPrx.uncheckedCast(c.ice_context(dflt)) - test(c2.opContext()['a'] == 'c') +# dflt['a'] = 'c' +# c2 = Test.MyClassPrx.uncheckedCast(c.ice_context(dflt)) +# test(c2.opContext()['a'] == 'c') - dflt = {} - c3 = Test.MyClassPrx.uncheckedCast(c2.ice_context(dflt)) - tmp = c3.opContext() - test(not tmp.has_key('a')) +# dflt = {} +# c3 = Test.MyClassPrx.uncheckedCast(c2.ice_context(dflt)) +# tmp = c3.opContext() +# test(not tmp.has_key('a')) - c4 = Test.MyClassPrx.uncheckedCast(c2.ice_defaultContext()) - test(c4.opContext()['a'] == 'b') +# c4 = Test.MyClassPrx.uncheckedCast(c2.ice_defaultContext()) +# test(c4.opContext()['a'] == 'b') - dflt['a'] = 'd' - communicator.setDefaultContext(dflt) +# dflt['a'] = 'd' +# communicator.setDefaultContext(dflt) - c5 = Test.MyClassPrx.uncheckedCast(c.ice_defaultContext()) - test(c5.opContext()['a'] == 'd') +# c5 = Test.MyClassPrx.uncheckedCast(c.ice_defaultContext()) +# test(c5.opContext()['a'] == 'd') - communicator.setDefaultContext({}) +# communicator.setDefaultContext({}) diff --git a/py/test/Ice/operations/TwowaysAMI.py b/py/test/Ice/operations/TwowaysAMI.py index cbc30370c69..6f82b0fc217 100644 --- a/py/test/Ice/operations/TwowaysAMI.py +++ b/py/test/Ice/operations/TwowaysAMI.py @@ -792,59 +792,59 @@ def twowaysAMI(communicator, p): # # Test that default context is obtained correctly from communicator. # - dflt = {'a': 'b'} - communicator.setDefaultContext(dflt) - cb = AMI_MyClass_opContextNotEqualI(dflt) - p.opContext_async(cb) - test(cb.check()) - - p2 = Test.MyClassPrx.uncheckedCast(p.ice_context({})) - cb = AMI_MyClass_opContextEqualI({}) - p2.opContext_async(cb) - test(cb.check()) - - p2 = Test.MyClassPrx.uncheckedCast(p.ice_defaultContext()) - cb = AMI_MyClass_opContextEqualI(dflt) - p2.opContext_async(cb) - test(cb.check()) - - communicator.setDefaultContext({}) - cb = AMI_MyClass_opContextNotEqualI({}) - p2.opContext_async(cb) - test(cb.check()) - - communicator.setDefaultContext(dflt) - c = Test.MyClassPrx.checkedCast(communicator.stringToProxy("test:default -p 12010 -t 10000")) - cb = AMI_MyClass_opContextEqualI({'a': 'b'}) - c.opContext_async(cb) - test(cb.check()) - - dflt['a'] = 'c' - c2 = Test.MyClassPrx.uncheckedCast(c.ice_context(dflt)) - cb = AMI_MyClass_opContextEqualI({'a': 'c'}) - c2.opContext_async(cb) - test(cb.check()) - - dflt = {} - c3 = Test.MyClassPrx.uncheckedCast(c2.ice_context(dflt)) - cb = AMI_MyClass_opContextEqualI({}) - c3.opContext_async(cb) - test(cb.check()) - - c4 = Test.MyClassPrx.uncheckedCast(c2.ice_defaultContext()) - cb = AMI_MyClass_opContextEqualI({'a': 'b'}) - c4.opContext_async(cb) - test(cb.check()) - - dflt['a'] = 'd' - communicator.setDefaultContext(dflt) - - c5 = Test.MyClassPrx.uncheckedCast(c.ice_defaultContext()) - cb = AMI_MyClass_opContextEqualI({'a': 'd'}) - c5.opContext_async(cb) - test(cb.check()) - - communicator.setDefaultContext({}) +# dflt = {'a': 'b'} +# communicator.setDefaultContext(dflt) +# cb = AMI_MyClass_opContextNotEqualI(dflt) +# p.opContext_async(cb) +# test(cb.check()) + +# p2 = Test.MyClassPrx.uncheckedCast(p.ice_context({})) +# cb = AMI_MyClass_opContextEqualI({}) +# p2.opContext_async(cb) +# test(cb.check()) + +# p2 = Test.MyClassPrx.uncheckedCast(p.ice_defaultContext()) +# cb = AMI_MyClass_opContextEqualI(dflt) +# p2.opContext_async(cb) +# test(cb.check()) + +# communicator.setDefaultContext({}) +# cb = AMI_MyClass_opContextNotEqualI({}) +# p2.opContext_async(cb) +# test(cb.check()) + +# communicator.setDefaultContext(dflt) +# c = Test.MyClassPrx.checkedCast(communicator.stringToProxy("test:default -p 12010 -t 10000")) +# cb = AMI_MyClass_opContextEqualI({'a': 'b'}) +# c.opContext_async(cb) +# test(cb.check()) + +# dflt['a'] = 'c' +# c2 = Test.MyClassPrx.uncheckedCast(c.ice_context(dflt)) +# cb = AMI_MyClass_opContextEqualI({'a': 'c'}) +# c2.opContext_async(cb) +# test(cb.check()) + +# dflt = {} +# c3 = Test.MyClassPrx.uncheckedCast(c2.ice_context(dflt)) +# cb = AMI_MyClass_opContextEqualI({}) +# c3.opContext_async(cb) +# test(cb.check()) + +# c4 = Test.MyClassPrx.uncheckedCast(c2.ice_defaultContext()) +# cb = AMI_MyClass_opContextEqualI({'a': 'b'}) +# c4.opContext_async(cb) +# test(cb.check()) + +# dflt['a'] = 'd' +# communicator.setDefaultContext(dflt) + +# c5 = Test.MyClassPrx.uncheckedCast(c.ice_defaultContext()) +# cb = AMI_MyClass_opContextEqualI({'a': 'd'}) +# c5.opContext_async(cb) +# test(cb.check()) + +# communicator.setDefaultContext({}) derived = Test.MyDerivedClassPrx.checkedCast(p) test(derived) |