From: <am...@us...> - 2009-10-17 16:03:59
|
Revision: 6866 http://jython.svn.sourceforge.net/jython/?rev=6866&view=rev Author: amak Date: 2009-10-17 16:03:45 +0000 (Sat, 17 Oct 2009) Log Message: ----------- Fixing a previously unnoticed bug where a relative value for "python.home" was not being treated relative to the context root and should have been. Modified Paths: -------------- trunk/jython/src/com/xhaus/modjy/ModjyJServlet.java trunk/jython/tests/modjy/java/com/xhaus/modjy/ModjyTestBase.java Modified: trunk/jython/src/com/xhaus/modjy/ModjyJServlet.java =================================================================== --- trunk/jython/src/com/xhaus/modjy/ModjyJServlet.java 2009-10-17 02:11:46 UTC (rev 6865) +++ trunk/jython/src/com/xhaus/modjy/ModjyJServlet.java 2009-10-17 16:03:45 UTC (rev 6866) @@ -52,6 +52,8 @@ protected final static String LOAD_SITE_PACKAGES_PARAM = "load_site_packages"; + protected final static String PYTHON_HOME_PARAM = "python.home"; + protected PythonInterpreter interp; protected HttpServlet modjyServlet; @@ -78,6 +80,14 @@ String name = (String)e.nextElement(); props.put(name, getInitParameter(name)); } + // Check if python home is relative, in which case find it in the servlet context + String pythonHomeString = props.getProperty(PYTHON_HOME_PARAM); + if (pythonHomeString != null) { + File pythonHome = new File(pythonHomeString); + if (!pythonHome.isAbsolute()) + pythonHomeString = context.getRealPath(pythonHomeString); + props.setProperty(PYTHON_HOME_PARAM, pythonHomeString); + } return props; } @@ -101,7 +111,7 @@ interp.exec("from modjy.modjy import " + MODJY_PYTHON_CLASSNAME); } catch (PyException ix) { throw new ServletException("Unable to import '" + MODJY_PYTHON_CLASSNAME - + "': maybe you need to set the 'python.home' parameter?", ix); + + "': maybe you need to set the '" + PYTHON_HOME_PARAM + "' parameter?", ix); } PyObject pyServlet = ((PyType)interp.get(MODJY_PYTHON_CLASSNAME)).__call__(); Object temp = pyServlet.__tojava__(HttpServlet.class); Modified: trunk/jython/tests/modjy/java/com/xhaus/modjy/ModjyTestBase.java =================================================================== --- trunk/jython/tests/modjy/java/com/xhaus/modjy/ModjyTestBase.java 2009-10-17 02:11:46 UTC (rev 6865) +++ trunk/jython/tests/modjy/java/com/xhaus/modjy/ModjyTestBase.java 2009-10-17 16:03:45 UTC (rev 6866) @@ -195,13 +195,12 @@ String jythonHome = System.getProperty("JYTHON_HOME"); setRealPath(jythonHome, jythonHome); setRealPath("/WEB-INF/" + LIB_PYTHON_DIR, LIB_PYTHON_TEST_PATH); - setRealPath("/WEB-INF/lib/modjy.jar", "../modjy.jar"); setPythonHome(jythonHome); setAppDir(DEFAULT_APP_DIR); setAppFile(DEFAULT_APP_FILE); setAppName(DEFAULT_APP_NAME); setInitParameter("exc_handler", "testing"); -// dumpContextRealPaths(); +// dumpContextRealPaths(); } protected PyObject evalPythonString(String pyString) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |