summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/DescriptorHelper.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2006-12-14 20:17:06 +0000
committerBenoit Foucher <benoit@zeroc.com>2006-12-14 20:17:06 +0000
commitd01b534b71f13646c29689172ea6c1bb01065771 (patch)
tree5d5012994ec8d372483cc32e6b9d653b48edc5cf /cpp/src/IceGrid/DescriptorHelper.cpp
parentFixed login bug (diff)
downloadice-d01b534b71f13646c29689172ea6c1bb01065771.tar.bz2
ice-d01b534b71f13646c29689172ea6c1bb01065771.tar.xz
ice-d01b534b71f13646c29689172ea6c1bb01065771.zip
Fixed bug 1286 and support for property attribute in the object descriptor.
Diffstat (limited to 'cpp/src/IceGrid/DescriptorHelper.cpp')
-rw-r--r--cpp/src/IceGrid/DescriptorHelper.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/cpp/src/IceGrid/DescriptorHelper.cpp b/cpp/src/IceGrid/DescriptorHelper.cpp
index ba297e1c244..68138d8a469 100644
--- a/cpp/src/IceGrid/DescriptorHelper.cpp
+++ b/cpp/src/IceGrid/DescriptorHelper.cpp
@@ -482,7 +482,7 @@ Resolver::operator()(const PropertySetDescriptorDict& propertySets) const
}
ObjectDescriptorSeq
-Resolver::operator()(const ObjectDescriptorSeq& objects, const string& type) const
+Resolver::operator()(const ObjectDescriptorSeq& objects, const string& type, bool allowProperty) const
{
ObjectDescriptorSeq result;
for(ObjectDescriptorSeq::const_iterator q = objects.begin(); q != objects.end(); ++q)
@@ -490,6 +490,10 @@ Resolver::operator()(const ObjectDescriptorSeq& objects, const string& type) con
ObjectDescriptor obj;
obj.type = operator()(q->type, type + " object type");
obj.id = operator()(q->id, type + " object identity");
+ if(!allowProperty && !q->property.empty())
+ {
+ exception("invalid object descriptor: property attribute is not allowed to be set in this context");
+ }
obj.property = operator()(q->property, type + " object property");
result.push_back(obj);
}
@@ -951,8 +955,8 @@ CommunicatorHelper::instantiateImpl(const CommunicatorDescriptorPtr& instance, c
resolve.exception("unknown replica group `" + adapter.replicaGroupId + "'");
}
adapter.priority = resolve.asInt(p->priority, "object adapter priority");
- adapter.objects = resolve(p->objects, "well-known");
- adapter.allocatables = resolve(p->allocatables, "allocatable");
+ adapter.objects = resolve(p->objects, "well-known", true);
+ adapter.allocatables = resolve(p->allocatables, "allocatable", true);
instance->adapters.push_back(adapter);
//
@@ -2359,7 +2363,7 @@ ApplicationHelper::ApplicationHelper(const Ice::CommunicatorPtr& communicator, c
ReplicaGroupDescriptor desc;
desc.id = r->id;
desc.description = resolve(r->description, "replica group description");
- desc.objects = resolve(r->objects, "replica group well-known");
+ desc.objects = resolve(r->objects, "replica group well-known", false);
if(!r->loadBalancing)
{
resolve.exception("replica group load balancing is not set");