Hi Michal,

In Kepler trunk, if I run command like ./kepler.sh -D"arg1"="value1", the workflow can get the new value. You can get its value in the workflow by using property("arg1") in Expression actor. I also tried ./kepler.sh -D"user.home"="$HOME/test-home", which also works for me. Please try whether this way works for you.

Your patch looks good. Just it is not general. Users may also want to pass other properties. Luckily, the current kepler trunk support any property to be set after kepler.sh. At least in my tests.

Best wishes

Sincerely yours

Jianwu Wang, Ph.D.
[email protected]
http://users.sdsc.edu/~jianwu/

Assistant Project Scientist
Scientific Workflow Automation Technologies (SWAT) Laboratory
San Diego Supercomputer Center
University of California, San Diego
San Diego, CA, U.S.A.


On 5/25/12 1:21 AM, Michal Owsiak wrote:
Hello Matt,

I have prepared patch for the trunk version. File is attached to the e-mail.

I have tested it with most recent Kepler version (trunk version from SVN).

I hope you will find it useful and will incorporate it into main release.

To apply it, simply execute:

patch Run.java < Run.java.trunk.patch

inside

kepler/build-area/src/org/kepler/build

Regards

Michal

Michal,

This change looks fairly innocuous and seems to be a reasonable change.
Thanks. Please let us know how your testing against trunk goes, and if it goes well, it seems reasonable to commit it so that it can be part of the
Kepler 2.4 release.

Matt

On Thu, May 24, 2012 at 3:25 AM, Michal Owsiak
<[email protected]>wrote:

Hello Kepler team,

it looks like Kepler has a bug in Run.java file.

In this description I refer to Kepler 2.2 - as I have patch for this
version.

At the moment it is not possible to spawn Kepler with custom HOME
location. This is due to bug in file:

./build-area/src/org/kepler/**build/Run.java

Inside this file new Java process is spawn. However, user.home property is
not correctly passed to this sub-process. That means, even though user
executes Kepler following way:

java -D"user.home"="$USER_HOME/**kepler_local" -classpath
$KEPLER/build-area/lib/ant.**jar:$KEPLER/kepler.jar
org.kepler.build.runner.Kepler

these settings are not passed to new process and new Java process uses
original $HOME location instead of location specified by -Duser.home - in
that case

-D"user.home"="$USER_HOME/**kepler_local"

To make it possible to run Kepler in custom HOME locations, one must
update Run.java with the patch attached to the e-mail.

As soon as I test this solution for trunk version I will post the message
to the group with proper patch.

Why this bug exists:

Java Virtual Machine doesn't use $HOME environment variable to set
user.home. Instead it gets it from system directly. Each new Java Virtual
Machine must be provided with user.home variable set in order to change
default settings.

Regards

Michal

--
Michal Owsiak<[email protected]>

Institute of Bioorganic Chemistry PAS
Poznan Supercomputing and Networking Center
Noskowskiego 12/14, 61-704 Poznan, POLAND

http://www.man.poznan.pl

_______________________________________________
Kepler-dev mailing list
[email protected]
http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-dev







_______________________________________________
Kepler-dev mailing list
[email protected]
http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-dev
_______________________________________________
Kepler-dev mailing list
[email protected]
http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-dev

Reply via email to