All Versions
17
Latest Version
Avg Release Cycle
69 days
Latest Release
487 days ago

Changelog History
Page 1

  • v0.19.0 Changes

    January 24, 2021

    ➕ Added

    • AutoArray and generic get_array_elements(), along with get_<type>_array_elements helpers. (#287)
    • size() method to AutoArray and AutoPrimitiveArray. (#278 / #287)
    • discard() method to AutoArray and AutoPrimitiveArray. (#275 / #287)

    🔄 Changed

    • ✂ Removed AutoPrimitiveArray::commit(). (#290)
    • AutoByte/PrimitiveArray.commit() now returns Result. (#275)
    • Removed methods get/release/commit_byte/primitive_array_{elements|critical}. (#281)
    • Renamed methods get_auto_byte/long/primitive_array_{elements|critical} to get_byte/long/primitive_array_{elements|critical}. (#281)
  • v0.18.0 Changes

    September 23, 2020

    ➕ Added

    • JNIEnv#define_unnamed_class function that allows loading a class without
      specifying its name. The name is inferred from the class data. (#246)
    • SetStatic<type>Field. (#248)
    • TryFrom<JValue> for types inside JValue variants (#264).
    • Implemented Copy for JNIEnv (#255).
    • repr(transparent) attribute to JavaVM struct (#259)

    🔄 Changed

    • 🍱 ⚠️ Switch from error-chain to thiserror, making all errors Send. Also, support all JNI errors
      in the jni_error_code_to_result function and add more information to the InvalidArgList
      error. (#242)
  • v0.17.0 Changes

    June 30, 2020

    ➕ Added

    • 🚑 Get/ReleaseByteArrayElements, and Get/ReleasePrimitiveArrayCritical. (#237)
  • v0.16.0 Changes

    February 28, 2020

    🛠 Fixed

    • 🍎 Java VM instantiation with some MacOS configurations. (#220, #229, #230).
  • v0.15.0 Changes

    February 28, 2020

    ➕ Added

    • 👷 Ability to pass object wrappers that are convertible to JObject as arguments to the majority of JNIEnv methods without explicit conversion. (#213)
    • JNIEnv#is_same_object implementation. (#213)
    • JNIEnv#register_native_methods. (#214)
    • 👷 Conversion from Into<JObject> to JValue::Object.

    🛠 Fixed

    • Passing null as class loader to define_class method now allowed according to the JNI specification. (#225)
  • v0.14.0 Changes

    October 31, 2019

    🔄 Changed

    • 😌 Relaxed some lifetime restrictions in JNIEnv to support the case when method, field ids; and global references to classes have a different (larger) lifetime than JNIEnv. (#209)
  • v0.13.1 Changes

    August 22, 2019

    🔄 Changed

    • 📚 Various documentation improvements.
  • v0.13.0 Changes

    July 05, 2019

    0.13 brings major improvements in thread management, allowing to attach the native threads
    permanently and safely; Executor for extra convenience and safety; and other
    👌 improvements and fixes.

    📚 ⚠️ If your code attaches native threads — make sure to check the updated documentation
    📄 of JavaVM to learn about the new features!

    ➕ Added

    • JavaVM::attach_current_thread_permanently method, which attaches the current
      thread and detaches it when the thread finishes. Daemon threads attached
      with JavaVM::attach_current_thread_as_daemon also automatically detach themselves
      when finished. The number of currently attached threads may be acquired using
      JavaVM::threads_attached method. (#179, #180)
    • Executor — a simple thread attachment manager which helps to safely
      🆓 execute a closure in attached thread context and to automatically free
      created local references at closure exit. (#186)

    🔄 Changed

    • 0️⃣ The default JNI API version in InitArgsBuilder from V1 to V8. (#178)
    • Extended the lifetimes of AutoLocal to make it more flexible. (#190)
    • 0️⃣ Default exception type from checked java.lang.Exception to unchecked java.lang.RuntimeException.
      👻 It is used implicitly when JNIEnv#throw is invoked with exception message:
      👻 env.throw("Exception message"); however, for efficiency reasons, it is recommended
      to specify the exception type explicitly and use throw_new:
      🆕 env.throw_new(exception_type, "Exception message"). (#194)

    🛠 Fixed

    • Native threads attached with JavaVM::attach_current_thread_as_daemon now automatically detach
      themselves on exit, preventing Java Thread leaks. (#179)
    • Local reference leaks in JList, JMap and JMapIter. (#190, #191)
  • v0.12.3 Changes

    May 24, 2019

    ➕ Added

    • From<jboolean> implementation for JValue (#173)
    • Debug trait for InitArgsBuilder. (#175)
    • InitArgsBuilder#options returning the collected JVM options. (#177)
  • v0.12.2 Changes

    May 02, 2019

    🔄 Changed

    • 📚 Updated documentation of GetXArrayRegion methods (#169)
    • 👌 Improved ABI compatibility on various platforms (#170)