summaryrefslogtreecommitdiff
path: root/cpp/src/IceBox/ServiceManagerI.cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2014-09-08 12:03:16 -0400
committerBernard Normier <bernard@zeroc.com>2014-09-08 12:03:16 -0400
commita0f6b6fc1a619c40979f5ba00d71dc661cfc6499 (patch)
tree81b40da86417ed18a186d595c119bb7823b17fcf /cpp/src/IceBox/ServiceManagerI.cpp
parentICE-5658 - NPM support for IceJS distribution (diff)
downloadice-a0f6b6fc1a619c40979f5ba00d71dc661cfc6499.tar.bz2
ice-a0f6b6fc1a619c40979f5ba00d71dc661cfc6499.tar.xz
ice-a0f6b6fc1a619c40979f5ba00d71dc661cfc6499.zip
Fixed ICE-5667: Added Communicator::createAdmin in C++, Java, C# and Python
Diffstat (limited to 'cpp/src/IceBox/ServiceManagerI.cpp')
-rw-r--r--cpp/src/IceBox/ServiceManagerI.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/cpp/src/IceBox/ServiceManagerI.cpp b/cpp/src/IceBox/ServiceManagerI.cpp
index 433985d971a..bffc34ae55a 100644
--- a/cpp/src/IceBox/ServiceManagerI.cpp
+++ b/cpp/src/IceBox/ServiceManagerI.cpp
@@ -618,12 +618,18 @@ IceBox::ServiceManagerI::start(const string& service, const string& entryPoint,
//
// If the Logger is enabled on the IceBox communicator, we tell the service
// to create a LoggerAdmin's Logger, by setting the property Ice.Admin.Logger
- //
+ // to a non-default value
+
+ string loggerFacetName;
+
if(_communicator->findAdminFacet("Logger") != 0)
{
- if(initData.properties->getPropertyWithDefault("Ice.Admin.Logger", "Logger") == "Logger")
+ loggerFacetName = initData.properties->getPropertyWithDefault("Ice.Admin.Logger", "Logger");
+
+ if(loggerFacetName == "Logger")
{
- initData.properties->setProperty("Ice.Admin.Logger", string("IceBox.Service.") + service + ".Logger");
+ loggerFacetName = "IceBox.Service." + service + ".Logger";
+ initData.properties->setProperty("Ice.Admin.Logger", loggerFacetName);
}
}
@@ -634,17 +640,17 @@ IceBox::ServiceManagerI::start(const string& service, const string& entryPoint,
info.communicator = initialize(info.args, initData);
communicator = info.communicator;
- if(_communicator->findAdminFacet("Logger") != 0)
+ if(_communicator->findAdminFacet("Logger"))
{
Ice::LoggerAdminLoggerPtr logger = Ice::LoggerAdminLoggerPtr::dynamicCast(communicator->getLogger());
- assert(logger != 0); // a plugin reset Ice.Admin.Logger to its default??
- if(logger != 0)
+ assert(logger); // a plugin reset Ice.Admin.Logger to its default??
+ if(logger)
{
//
// We add this admin facet to the IceBox main communicator, even though the associated logger
// "works" for the service's communicator
//
- logger->addAdminFacet(_communicator);
+ _communicator->addAdminFacet(logger->getFacet(), loggerFacetName);
}
}