Bug #3714
closed
Support for environment variable in Kepler.
Added by jianwu jianwu almost 16 years ago.
Updated almost 16 years ago.
Description
Users may need environment variable support in Kepler, so that they can easily express path in their workflows and easily reuse them in other machines.
Currently, what we support is that with constant or expression actor, you can specify property("KEPLER") to get the path of kepler.
Another thing is that propert("PTII") works in old Kepler repository but doesn't work in new Kepler repository.
In this way, users may specify the relative path from Kepler to their own paths. It is feasible but not a good way.
I fixed this for the trunk build. You can now choose environment variables that you would like passed into kepler by changing the modules/vanilla-trunk/resources/system.properties/vanilla-trunk.properties file. By default, the PATH and LD_LIBRARY_PATH variables are passed in.
In Java, the environment variable situation is a bit of a mess.
In JDK 1.5, there is java.lang.System.getenv(String), which allows
the user to get an environment variable. Initially, Java had a
getenv() method, which was then removed after awhile. The Java position
has been to use properties instead of environment variables. However,
enough people complained that they wanted access to the environment
variables so getEnv() came back.
The Ptolemy Exec actor has an environment parameter, which will pass
an environment to a subprocess, see
http://ptolemy.eecs.berkeley.edu/ptolemyII/ptII7.0/ptII/doc/codeDoc/ptolemy/actor/lib/Exec.html
I think this is the best way to set environment variables that have
different values than in the current environment.
I updated ptolemy.data.UtilityFunctions and added getenv(String) and
getenv() so now it is possible to get environment variables
and use them in Expression actor.
Original Bugzilla ID was 3714
Also available in: Atom
PDF