Skip to content

Bug fix release

Compare
Choose a tag to compare
@marscher marscher released this 03 Apr 10:54
· 2041 commits to master since this release
  • Java reference counting has been converted to use JNI
    PushLocalFrame/PopLocalFrame. Several resource leaks
    were removed.

  • java.lang.Class<>.forName() will now return the java.lang.Class.
    Work arounds for requiring the class loader are no longer needed.
    Customizers now support customization of static members.

  • Support of java.lang.Class<>

  • java.lang.Object().getClass() on Java objects returns a java.lang.Class
    rather than the Python class

  • java.lang.Object().class on Java objects returns the python class
    as do all python objects

  • java.lang.Object.class_ maps to the java statement 'java.lang.Object.class' and
    returns the java.lang.Class<java.lang.object>

  • java.lang.Class supports reflection methods

  • private fields and methods can be accessed via reflection

  • annotations are avaiable via reflection

  • Java objects and arrays will not accept setattr unless the
    attribute corresponds to a java method or field whith
    the exception of private attributes that begin with
    underscore.

  • Added support for automatic conversion of boxed types.

  • Boxed types automatically convert to python primitives.

  • Boxed types automatically convert to java primitives when resolving functions.

  • Functions taking boxed or primitives still resolve based on closest match.

  • Python integer primitives will implicitly match java float and double as per
    Java specification.

  • Added support for try with resources for java.lang.Closeable.
    Use python "with MyJavaResource() as resource:" statement
    to automatically close a resource at the end of a block.