summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/DescriptorHelper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/DescriptorHelper.cpp')
-rw-r--r--cpp/src/IceGrid/DescriptorHelper.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/cpp/src/IceGrid/DescriptorHelper.cpp b/cpp/src/IceGrid/DescriptorHelper.cpp
index f42f21aa2db..2679c8594cd 100644
--- a/cpp/src/IceGrid/DescriptorHelper.cpp
+++ b/cpp/src/IceGrid/DescriptorHelper.cpp
@@ -280,7 +280,6 @@ Resolver::Resolver(const ApplicationHelper& app) :
_ignore.insert("node.version");
_ignore.insert("node.machine");
_ignore.insert("node.datadir");
- _ignore.insert("session.id");
}
Resolver::Resolver(const Resolver& resolve,
@@ -456,6 +455,12 @@ Resolver::getProperties(const Ice::StringSeq& references) const
}
void
+Resolver::addIgnored(const string& name)
+{
+ _ignore.insert(name);
+}
+
+void
Resolver::exception(const string& reason) const
{
throw DeploymentException(_context + ": " + reason);
@@ -1524,6 +1529,12 @@ ServerInstanceHelper::init(const ServerDescriptorPtr& definition, const Resolver
Resolver svrResolve(resolve, parameterValues, true);
svrResolve.setReserved("server", svrResolve(def->id, "server id", false));
svrResolve.setContext("server `${server}'");
+ if(svrResolve(def->activation, "server activation", true) == "session")
+ {
+ // Ignore undefined session.id variables, it will get defined
+ // when the server is allocated.
+ svrResolve.addIgnored("session.id");
+ }
//
// Instantiate the server instance definition (we use the server