3 new revisions:

Revision: 00342e052b17
Author:   Janne Härkönen <[email protected]>
Date:     Thu Jan 12 01:52:56 2012
Log:      RunnerFactory: create new PySystemState for each call...
http://code.google.com/p/robotframework/source/detail?r=00342e052b17

Revision: 8ce8f133b4b2
Author:   Janne Härkönen <[email protected]>
Date:     Thu Jan 12 02:58:18 2012
Log:      remove jython.har from version control...
http://code.google.com/p/robotframework/source/detail?r=8ce8f133b4b2

Revision: 8586ef1fd7b4
Author:   Janne Härkönen <[email protected]>
Date:     Thu Jan 12 02:58:25 2012
Log:      merge
http://code.google.com/p/robotframework/source/detail?r=8586ef1fd7b4

==============================================================================
Revision: 00342e052b17
Author:   Janne Härkönen <[email protected]>
Date:     Thu Jan 12 01:52:56 2012
Log:      RunnerFactory: create new PySystemState for each call

Update issue 1029
Status: Done
Owner: janne.t.harkonen
http://code.google.com/p/robotframework/source/detail?r=00342e052b17

Modified:
 /src/java/org/robotframework/RunnerFactory.java

=======================================
--- /src/java/org/robotframework/RunnerFactory.java     Sun Feb  6 01:24:10 2011
+++ /src/java/org/robotframework/RunnerFactory.java     Thu Jan 12 01:52:56 2012
@@ -16,6 +16,7 @@
 package org.robotframework;

 import org.python.core.PyObject;
+import org.python.core.PySystemState;
 import org.python.util.PythonInterpreter;

 /**
@@ -33,7 +34,7 @@
     }

     private PyObject importRunnerClass() {
-        PythonInterpreter interpreter = new PythonInterpreter();
+ PythonInterpreter interpreter = new PythonInterpreter(null, new PySystemState()); interpreter.exec("import robot; from robot.jarrunner import JarRunner");
         return interpreter.get("JarRunner");
     }

==============================================================================
Revision: 8ce8f133b4b2
Author:   Janne Härkönen <[email protected]>
Date:     Thu Jan 12 02:58:18 2012
Log:      remove jython.har from version control

package.py downloads it if needed
http://code.google.com/p/robotframework/source/detail?r=8ce8f133b4b2

Deleted:
 /ext-lib/jython-standalone-2.5.1.jar
Modified:
 /.hgignore
 /package.py

=======================================
--- /ext-lib/jython-standalone-2.5.1.jar        Thu Aug 26 05:52:44 2010
+++ /dev/null   
File is too large to display a diff.
=======================================
--- /.hgignore  Thu Jul 14 07:00:45 2011
+++ /.hgignore  Thu Jan 12 02:58:18 2012
@@ -9,4 +9,4 @@
 .*project
 *.pyc
 *$py.class
-glob:.idea
+ext-lib
=======================================
--- /package.py Tue Oct 11 00:06:46 2011
+++ /package.py Thu Jan 12 02:58:18 2012
@@ -44,6 +44,7 @@
 import subprocess
 import zipfile
 from glob import glob
+import urllib


 ROOT_PATH = abspath(dirname(__file__))
@@ -51,7 +52,7 @@
 BUILD_PATH = join(ROOT_PATH, 'build')
 ROBOT_PATH = join(ROOT_PATH, 'src', 'robot')
 JAVA_SRC = join(ROOT_PATH, 'src', 'java', 'org', 'robotframework')
-JYTHON_JAR = glob(join(ROOT_PATH, 'ext-lib', 'jython-standalone-*.jar'))[0]
+JYTHON_VERSION = '2.5.2'
 SETUP_PATH = join(ROOT_PATH, 'setup.py')
 VERSION_PATH = join(ROBOT_PATH, 'version.py')
 POM_PATH = join(ROOT_PATH, 'pom.xml')
@@ -181,22 +182,37 @@
         print abspath(join(DIST_PATH, path))

 def jar(*version_info):
+    jython_jar = _get_jython_jar()
+    print 'Using Jython %s' % jython_jar
     ver = version(*version_info)
     tmpdir = _create_tmpdir()
-    _compile_java_classes(tmpdir)
-    _unzip_jython_jar(tmpdir)
+    _compile_java_classes(tmpdir, jython_jar)
+    _unzip_jython_jar(tmpdir, jython_jar)
     _copy_robot_files(tmpdir)
-    _compile_all_py_files(tmpdir)
+    _compile_all_py_files(tmpdir, jython_jar)
     _overwrite_manifest(tmpdir, ver)
     jar_path = _create_jar_file(tmpdir, ver)
     shutil.rmtree(tmpdir)
-    print 'Created %s based on %s' % (jar_path, JYTHON_JAR)
-
-def _compile_java_classes(tmpdir):
+    print 'Created %s based on %s' % (jar_path, jython_jar)
+
+def _get_jython_jar():
+    lib_dir = join(ROOT_PATH, 'ext-lib')
+    jar_path = join(lib_dir, 'jython-standalone-%s.jar' % JYTHON_VERSION)
+    if os.path.exists(jar_path):
+        return jar_path
+    if not os.path.exists(lib_dir):
+        os.mkdir(lib_dir)
+ dl_url = "http://search.maven.org/remotecontent?filepath=org/python/jython-standalone/%s/jython-standalone-%s.jar"; \
+            % (JYTHON_VERSION, JYTHON_VERSION)
+    print 'Jython not found, goind to download from %s' % dl_url
+    urllib.urlretrieve(dl_url, jar_path)
+    return jar_path
+
+def _compile_java_classes(tmpdir, jython_jar):
     source_files = [join(JAVA_SRC, f)
                     for f in os.listdir(JAVA_SRC) if f.endswith('.java')]
     print 'Compiling %d source files' % len(source_files)
- subprocess.call(['javac', '-d', tmpdir, '-target', '1.5', '-cp', JYTHON_JAR] + subprocess.call(['javac', '-d', tmpdir, '-target', '1.5', '-cp', jython_jar]
                     + source_files)

 def _create_tmpdir():
@@ -206,8 +222,8 @@
     os.mkdir(tmpdir)
     return tmpdir

-def _unzip_jython_jar(tmpdir):
-    zipfile.ZipFile(JYTHON_JAR).extractall(tmpdir)
+def _unzip_jython_jar(tmpdir, jython_jar):
+    zipfile.ZipFile(jython_jar).extractall(tmpdir)

 def _copy_robot_files(tmpdir):
     # pyc files must be excluded so that compileall works properly.
@@ -215,8 +231,8 @@
shutil.copytree(ROBOT_PATH, todir, ignore=shutil.ignore_patterns('*.pyc'))
     shutil.rmtree(join(todir, 'webcontent', 'testdata'))

-def _compile_all_py_files(tmpdir):
- subprocess.call(['java', '-jar', JYTHON_JAR, '-m', 'compileall', tmpdir])
+def _compile_all_py_files(tmpdir, jython_jar):
+ subprocess.call(['java', '-jar', jython_jar, '-m', 'compileall', tmpdir])
     # Jython will not work without its py-files, but robot will
     for root, _, files in os.walk(join(tmpdir,'Lib','robot')):
         for f in files:
@@ -246,5 +262,6 @@
     try:
         globals()[sys.argv[1]](*sys.argv[2:])
     except (KeyError, IndexError, TypeError, ValueError):
+        raise
         print __doc__


==============================================================================
Revision: 8586ef1fd7b4
Author:   Janne Härkönen <[email protected]>
Date:     Thu Jan 12 02:58:25 2012
Log:      merge
http://code.google.com/p/robotframework/source/detail?r=8586ef1fd7b4


Reply via email to