Andi Vajda <va...@apache.org> wrote: > That being said, if you send in javadoc patches, I agree, the results > should be published like they are on the lucene/java site (under > resources) and I can take care of that.
Here's a patch (against the JCC branch_3x): --- java/org/apache/jcc/PythonVM.java (revision 1141989) +++ java/org/apache/jcc/PythonVM.java (working copy) @@ -23,6 +23,18 @@ System.loadLibrary("jcc"); } + /** + * Start the embedded Python interpreter. The specified + * programname and args are set into the Python variable sys.argv. + * This returns an instance of the Python VM; it may be called + * multiple times, and will return the same VM instance each time. + * + * @param programName the name of the Python program, typically + * /usr/bin/python. This is informational; the program is not + * actually executed. + * @param args additional arguments to be put into sys.argv. + * @return a singleton instance of PythonVM + */ static public PythonVM start(String programName, String[] args) { if (vm == null) @@ -34,11 +46,28 @@ return vm; } + /** + * Start the embedded Python interpreter. The specified + * programname is set into the Python variable sys.argv[0]. + * This returns an instance of the Python VM; it may be called + * multiple times, and will return the same VM instance each time. + * + * @param programName the name of the Python program, typically + * /usr/bin/python. This is informational; the program is not + * actually executed. + * @return a singleton instance of PythonVM + */ static public PythonVM start(String programName) { return start(programName, null); } + /** + * Obtain the PythonVM instance, or null if the Python VM + * has not yet been started. + * + * @return a singleton instance of PythonVM, or null + */ static public PythonVM get() { return vm; @@ -50,9 +79,33 @@ protected native void init(String programName, String[] args); + /** + * Instantiate the specified Python class, and return the instance. + * + * @param moduleName the Python module the class is defined in + * @param className the Python class to instantiate. + * @return a handle on the Python instance. + */ public native Object instantiate(String moduleName, String className) throws PythonException; + /** + * Bump the Python thread state counter. Every thread should + * do this before calling into Python, to prevent the Python + * thread state from being inadvertently collected. + * + * @return the Python thread state counter. A return value less + * than zero signals an error. + */ public native int acquireThreadState(); + + /** + * Release the Python thread state counter. Every thread that has + * called acquireThreadState() should call this before + * terminating. + * + * @return the Python thread state counter. A return value less + * than zero signals an error. + */ public native int releaseThreadState(); }