diff options
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/src/IceGrid/DescriptorBuilder.cpp | 38 | ||||
-rw-r--r-- | cpp/src/IceGrid/DescriptorBuilder.h | 1 | ||||
-rw-r--r-- | cpp/src/IceGrid/NodeCache.cpp | 11 |
3 files changed, 27 insertions, 23 deletions
diff --git a/cpp/src/IceGrid/DescriptorBuilder.cpp b/cpp/src/IceGrid/DescriptorBuilder.cpp index 1914a86de54..f3d723d55e7 100644 --- a/cpp/src/IceGrid/DescriptorBuilder.cpp +++ b/cpp/src/IceGrid/DescriptorBuilder.cpp @@ -909,10 +909,28 @@ IceBoxDescriptorBuilder::init(const IceBoxDescriptorPtr& desc, const XmlAttribut { ServerDescriptorBuilder::init(desc, attrs); _descriptor = desc; +} - addProperty(_hiddenProperties, "IceBox.InstanceName", "${server}"); - addProperty(_hiddenProperties, "Ice.OA.IceBox.ServiceManager.Endpoints", "tcp -h 127.0.0.1"); - addProperty(_hiddenProperties, "Ice.OA.IceBox.ServiceManager.RegisterProcess", "1"); +void +IceBoxDescriptorBuilder::finish() +{ + if(getProperty(_descriptor->propertySet.properties, "IceBox.InstanceName").empty()) + { + _hiddenProperties.push_back(createProperty("IceBox.InstanceName", "${server}")); + } + if(_descriptor->adapters.empty()) + { + if(getProperty(_descriptor->propertySet.properties, "Ice.OA.IceBox.ServiceManager.Endpoints").empty()) + { + _hiddenProperties.push_back(createProperty("Ice.OA.IceBox.ServiceManager.Endpoints", "tcp -h 127.0.0.1")); + } + if(getProperty(_descriptor->propertySet.properties, "Ice.OA.IceBox.ServiceManager.RegisterProcess").empty()) + { + _hiddenProperties.push_back(createProperty("Ice.OA.IceBox.ServiceManager.RegisterProcess", "1")); + } + } + + ServerDescriptorBuilder::finish(); } ServiceDescriptorBuilder* @@ -935,20 +953,6 @@ IceBoxDescriptorBuilder::addAdapter(const XmlAttributesHelper& attrs) throw "<adapter> element can't be a child of an <icebox> element"; } - PropertyDescriptorSeq::iterator p = _hiddenProperties.begin(); - while(p != _hiddenProperties.end()) - { - if(p->name == "Ice.OA.IceBox.ServiceManager.Endpoints" || - p->name == "Ice.OA.IceBox.ServiceManager.RegisterProcess") - { - p = _hiddenProperties.erase(p); - } - else - { - ++p; - } - } - ServerDescriptorBuilder::addAdapter(attrs); } diff --git a/cpp/src/IceGrid/DescriptorBuilder.h b/cpp/src/IceGrid/DescriptorBuilder.h index 7f29469f1c6..e2b1d3fee14 100644 --- a/cpp/src/IceGrid/DescriptorBuilder.h +++ b/cpp/src/IceGrid/DescriptorBuilder.h @@ -282,6 +282,7 @@ public: IceBoxDescriptorBuilder(const Ice::CommunicatorPtr&, const XmlAttributesHelper&); void init(const IceBoxDescriptorPtr&, const XmlAttributesHelper&); + virtual void finish(); virtual ServiceDescriptorBuilder* createService(const XmlAttributesHelper&); virtual ServiceInstanceDescriptorBuilder* createServiceInstance(const XmlAttributesHelper&); diff --git a/cpp/src/IceGrid/NodeCache.cpp b/cpp/src/IceGrid/NodeCache.cpp index af59791511e..adb0feb1236 100644 --- a/cpp/src/IceGrid/NodeCache.cpp +++ b/cpp/src/IceGrid/NodeCache.cpp @@ -55,12 +55,7 @@ struct ToInternalServerDescriptor : std::unary_function<CommunicatorDescriptorPt // // Add the adapters and their configuration. // - string oaPropertyPrefix = "Ice.OA."; - if(getMMVersion(_desc->iceVersion) < 30200) - { - oaPropertyPrefix = ""; - } - + string oaPropertyPrefix = getMMVersion(_desc->iceVersion) < 30200 ? "" : "Ice.OA."; for(AdapterDescriptorSeq::const_iterator q = desc->adapters.begin(); q != desc->adapters.end(); ++q) { _desc->adapters.push_back(new InternalAdapterDescriptor(q->id, q->serverLifetime)); @@ -873,6 +868,10 @@ NodeEntry::getInternalServerDescriptor(const ServerInfo& info) const props.push_back(createProperty("# Server configuration")); props.push_back(createProperty("Ice.ServerId", info.descriptor->id)); props.push_back(createProperty("Ice.ProgramName", info.descriptor->id)); + + // + // Add IceBox properties. + // string servicesStr; IceBoxDescriptorPtr iceBox = IceBoxDescriptorPtr::dynamicCast(info.descriptor); if(iceBox) |