summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/DescriptorBuilder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/DescriptorBuilder.cpp')
-rw-r--r--cpp/src/IceGrid/DescriptorBuilder.cpp36
1 files changed, 12 insertions, 24 deletions
diff --git a/cpp/src/IceGrid/DescriptorBuilder.cpp b/cpp/src/IceGrid/DescriptorBuilder.cpp
index bc3dcc14a25..5d4aed4c74d 100644
--- a/cpp/src/IceGrid/DescriptorBuilder.cpp
+++ b/cpp/src/IceGrid/DescriptorBuilder.cpp
@@ -827,33 +827,21 @@ IceBoxDescriptorBuilder::addAdapter(const XmlAttributesHelper& attrs)
{
throw "<adapter> element can't be a child of an <icebox> element";
}
-
- AdapterDescriptor& desc = _descriptor->adapters.back();
- assert(desc.name == "IceBox.ServiceManager");
- desc.id = attrs("id", desc.id);
- desc.replicaGroupId = attrs("replica-group", desc.replicaGroupId);
- desc.registerProcess = attrs.asBool("register-process", desc.registerProcess);
- if(desc.id == "" && attrs.contains("wait-for-activation"))
- {
- throw "the attribute `wait-for-activation' can only be set if the adapter has an non empty id";
- }
- else
- {
- desc.waitForActivation = attrs.asBool("wait-for-activation", desc.waitForActivation);
- }
- if(attrs.contains("endpoints"))
+ PropertyDescriptorSeq::iterator p = _hiddenProperties.begin();
+ while(p != _hiddenProperties.end())
{
- PropertyDescriptorSeq::iterator p;
- for(p = _descriptor->propertySet.properties.begin(); p != _descriptor->propertySet.properties.end(); ++p)
- {
- if(p->name == "IceBox.ServiceManager.Endpoints")
- {
- p->value = attrs("endpoints");
- break;
- }
- }
+ if(p->name == "IceBox.ServiceManager.Endpoints" || p->name == "IceBox.ServiceManager.RegisterProcess")
+ {
+ p = _hiddenProperties.erase(p);
+ }
+ else
+ {
+ ++p;
+ }
}
+
+ ServerDescriptorBuilder::addAdapter(attrs);
}
void