summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/IceGrid/DescriptorBuilder.cpp38
-rw-r--r--cpp/src/IceGrid/DescriptorBuilder.h1
-rw-r--r--cpp/src/IceGrid/NodeCache.cpp11
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)