-
Doc strings are generated for classes and methods.
-
Complete rewrite of the core module code to deal unattached threads,
improved hardening, and member management. Massive number of internal
bugs were identified during the rewrite and corrected.
See the :doc:ChangeLog-0.7for details of all changes. -
API breakage:
-
Java strings conversion behavior has changed. The previous behavior was
switchable, but only the default convert to Python was working.
Converting to automatically lead to problems in which is was impossible
to work with classes like StringBuilder in Java. To convert a Java
string usestr(). Therefore, string conversion is currently selected
by a switch at the start of the JVM. The default shall be False
starting in JPype 0.8. New code is encouraged to use the future default
of False. For the transition period the default will be True with a
warning if not policy was selected to encourage developers to pick the
string conversion policy that best applies to their application. -
Java exceptions are now derived from Python exception. The old wrapper
types have been removed. Catch the exception with the actual Java
exception type rather thanJException. -
Undocumented exceptions issued from within JPype have been mapped to the
corresponding Python exception types such asTypeErrorand
ValueErrorappropriately. Code catching exceptions from previous
versions should be checked to make sure all exception paths are being
handled. -
Undocumented property import of Java bean pattern get/set accessors was
removed as the default. It is available withimport jpype.beans, but
its use is discouraged.
-
-
API rework:
- JPype factory methods now act as base classes for dynamic
class trees. - Static fields and methods are now available in object
instances. - Inner classes are now imported with the parent class.
jpype.importsworks with Python 2.7.- Proxies and customizers now use decorators rather than
exposing internal classes. ExistingJProxycode
still works. - Decorator style proxies use
@JImplementsand@JOverload
to create proxies from regular classes. - Decorator style customizers use
@JImplementionFor - Module
jpype.typeswas introduced containing only
the Java type wrappers. Usefrom jpype.types import *to
pull in this subset of JPype.
- JPype factory methods now act as base classes for dynamic
-
synchronizedusing the Pythonwithstatement now works
for locking of Java objects. -
Previous bug in initialization of arrays from list has been
corrected. -
Added extra verbiage to the to the raised exception when an overloaded
method could not be matched. It now prints a list of all possible method
signatures. -
The following is now DEPRECATED
jpype.reflect.*- All class information is available with.class_- Unnecessary
JExceptionfrom string now issues a warning.
-
The following is now REMOVED
- Python thread option for
JPypeReferenceQueue. References are always handled with
with the Java cleanup routine. The undocumentedsetUsePythonThreadForDaemon()
has been removed. - Undocumented switch to change strings from automatic to manual
conversion has been removed. - Artifical base classes
JavaClassandJavaObjecthave been removed. - Undocumented old style customizers have been removed.
- Many internal jpype symbols have been removed from the namespace to
prevent leakage of symbols on imports.
- Python thread option for
-
promoted
--install-optionto a--global-optionas it applies to the build as well
as install. -
Added
--enable-tracingto setup.py to allow for compiling with tracing
for debugging. -
Ant is required to build jpype from source, use
--ant=with setup.py
to direct to a specific ant.