JavaCPP v1.4.4 Release Notes

Release Date: 2019-01-11 // over 5 years ago
    • Allow users to override platform properties via system properties starting with "org.bytedeco.javacpp.platform."
    • Have BuildMojo output its class path back to the Maven project as ${javacpp.platform.artifacts}
    • Fix potential NullPointerException in Loader.findResources() under the bootstrap class loader
    • Add size() and stride() methods to Indexer for convenience
    • Let Parser skip over C++11 style { ... } member initializer lists (pull bytedeco/javacpp-presets#642)
    • Fix Parser not picking up Info for cast operator declarations with const, &, or * (issue bytedeco/javacpp-presets#377)
    • Add validation for Builder.environmentVariables to prevent NullPointerException in executeCommand()
    • Update android-arm-clang.properties and android-x86-clang.properties to API level 21 (Android 5.0) for consistency and forward compatibility
    • Replace calls to Class.getResource() with Loader.findResource() to work around issues with JPMS (pull #276)
    • Enhance Loader.findResources() with Class.getResource() and search among parent packages
    • Take longest common package name among all user classes for the default output path of Builder
    • Add Bfloat16Indexer to access short arrays as bfloat16 floating point numbers
    • When Indexer.sizes.length != 3, return -1 for rows(), cols(), width(), height(), and channels() (pull #275)
    • Synchronize Loader.cacheResources() on Runtime to avoid OverlappingFileLockException with multiple class loaders (issue bytedeco/javacpp-presets#650)
    • Annotate BuildMojo as threadSafe
    • Fix Generator errors for @StdString and other @Adapter on @Virtual return values
    • Use simple name from @Properties(target=..., global=...) class as default for @Platform(library=...) name
    • Make sure Generator does not use position of @Opaque Pointer output parameters with @Adapter (pull bytedeco/javacpp-presets#642)
    • Prevent Builder from trying to use Pointer as library name for the output
    • Add Builder.generate option and corresponding ParseMojo to prioritize parsing header files
    • Fix Parser mapping of const function pointer variable declarations
    • Enhance Loader.cacheResource() with support for HTTP connections
    • Add module-info.java and create a multi-release JAR to comply with JPMS (pull #252)
    • Prevent Parser from outputting twice the same Info.javaText by using it as declaration signature
    • Provide default Info for std::string* and std::wstring* mapping to BytePointer, and CharPointer and IntPointer
    • Ensure Parser skips over attributes of friend declarations or function definitions that are not used
    • Do not let Parser output @Override when overloading a method with less parameters using default arguments
    • Allow Builder to execute javac and java for convenience, and remove "." from class path (issue #192)
    • Enhance support for java.nio.Buffer by taking into account offset, position, limit, and capacity on function calls
    • Make sure Parser always uses the short version of identifiers for Java class declarations
    • Prevent Parser from inheriting constructors with using when not accessible or of incomplete template instances
    • Add default Info to map noexcept attribute from C++11 to @NoException annotation
    • Fix Parser failures on variadic function template arguments ... and destructor attributes (pull bytedeco/javacpp-presets#622)
    • Add @Properties(global=...) value to allow Parser to target Java packages (pull #252)
    • Fix Generator output for @Const parameters of function pointers