diff options
author | Benoit Foucher <benoit@zeroc.com> | 2005-07-13 14:24:51 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2005-07-13 14:24:51 +0000 |
commit | 24abfcd7a2c568bc556d244cf4c89660511a2cab (patch) | |
tree | 6ea87a0e4f3d89b78ab00e51598786d5722c645c /cpp/src/IceGrid/DescriptorHelper.cpp | |
parent | Added chat demo (diff) | |
download | ice-24abfcd7a2c568bc556d244cf4c89660511a2cab.tar.bz2 ice-24abfcd7a2c568bc556d244cf4c89660511a2cab.tar.xz ice-24abfcd7a2c568bc556d244cf4c89660511a2cab.zip |
Changed server descriptor attributse to be strings to allow the use of
variables
Diffstat (limited to 'cpp/src/IceGrid/DescriptorHelper.cpp')
-rw-r--r-- | cpp/src/IceGrid/DescriptorHelper.cpp | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/cpp/src/IceGrid/DescriptorHelper.cpp b/cpp/src/IceGrid/DescriptorHelper.cpp index 32b396fc0ee..18398e16d17 100644 --- a/cpp/src/IceGrid/DescriptorHelper.cpp +++ b/cpp/src/IceGrid/DescriptorHelper.cpp @@ -1359,13 +1359,13 @@ ServerDescriptorHelper::ServerDescriptorHelper(const DescriptorHelper& helper, c _descriptor->exe = attributes("exe"); } _descriptor->interpreter = interpreter; - _descriptor->activationTimeout = attributes.asInt("activation-timeout", "0"); - _descriptor->deactivationTimeout = attributes.asInt("deactivation-timeout", "0"); + _descriptor->activationTimeout = attributes("activation-timeout", "0"); + _descriptor->deactivationTimeout = attributes("deactivation-timeout", "0"); ComponentDescriptorHelper::init(_descriptor, attrs); _descriptor->pwd = attributes("pwd", ""); - _descriptor->activation = (attributes("activation", "manual") == "on-demand") ? OnDemand : Manual; + _descriptor->activation = attributes("activation", "manual"); if(interpreter == "icebox" || interpreter == "java-icebox") { @@ -1646,6 +1646,38 @@ ServerDescriptorHelper::instantiateImpl(const ServerDescriptorPtr& desc, set<str substitute(desc->exe); substitute(desc->pwd); + substitute(desc->activation); + if(!desc->activation.empty() && desc->activation != "manual" && desc->activation != "on-demand") + { + DeploymentException ex; + ex.reason = "invalid server `" + desc->name + "': unknown activation `" + desc->activation + "'"; + throw ex; + } + substitute(desc->activationTimeout); + if(!desc->activationTimeout.empty()) + { + int value; + istringstream v(desc->activationTimeout); + if(!(v >> value)) + { + DeploymentException ex; + ex.reason = "invalid server `" + desc->name + "': activation timeout is not an integer value"; + throw ex; + } + } + substitute(desc->deactivationTimeout); + if(!desc->deactivationTimeout.empty()) + { + int value; + istringstream v(desc->deactivationTimeout); + if(!(v >> value)) + { + DeploymentException ex; + ex.reason = "invalid server `" + desc->name + "': deactivation timeout is not an integer value"; + throw ex; + } + } + for_each(desc->options.begin(), desc->options.end(), substitute); for_each(desc->envs.begin(), desc->envs.end(), substitute); substitute(desc->interpreter); |