-
Jämes Ménétrey authored
* Add the structure for the Java Bindings Set up the structure hosting the Java bindings using JNA, and provides a binding for the function ks_version. * Ignore the compiled extension of macOS libraries. * Add infrastructure to open and close Keystone handles. Keystone enumerations have been added, as well as the required wrappers for JNA to convert the enumerations to and from the native library. Create exceptions for handling issues related to Keystone. Implement a cleaner that automatically collect any opened Keystone handles when a Keystone instance is garbage collected. * The close method of Keystone is now thread-safe. * Rename the exception KeystoneOpenFailedException into OpenFailedKeystoneException. * Add the assemble function into the wrapper of Keystone. * Enhance the exceptions thrown by Keystone using ks_strerror. The exception classes have been refactored to shorten hardcoded error messages into the wrapper and instead, rely on the error messages generated by the native library, thanks to the function ks_strerror. * Add the ability to check with a given architecture is supported. Enhance the wrapper to map the function function ks_arch_supported in order to determine whether a given architecture is supported. * Add the features the change the assembly syntax and resolve symbols. Enhance the wrapper in order to support the changes of options. * Document the class KeystoneEncoded. * Add additional unit tests for a better coverage. * Reorder the native functions import and document the native functions prototype. * Optimize the code. * Add the target folder to the gitignore. * Add missing Javadoc annotations for the exceptions. * Add a gitkeep for the folder hosting the Keystone library for macOS. * Update the Maven configuration for version and dependencies. Use the version convention defined in the README, add a couple of testing dependencies and plugins to package the bindings in a fat JAR and enable Maven to use jUnit 5. * Use JNA Direct Mapping for better performances on native function calls. * Add the README. * Add myself to the credits :) * Use the syntax highlighting of Java in the README. * Fix a typo. * Optimize imports. * Add predefined folders hosting the library Keystone on Windows. * Add the Java bindings to the README of the bindings summary.
Jämes Ménétrey authored* Add the structure for the Java Bindings Set up the structure hosting the Java bindings using JNA, and provides a binding for the function ks_version. * Ignore the compiled extension of macOS libraries. * Add infrastructure to open and close Keystone handles. Keystone enumerations have been added, as well as the required wrappers for JNA to convert the enumerations to and from the native library. Create exceptions for handling issues related to Keystone. Implement a cleaner that automatically collect any opened Keystone handles when a Keystone instance is garbage collected. * The close method of Keystone is now thread-safe. * Rename the exception KeystoneOpenFailedException into OpenFailedKeystoneException. * Add the assemble function into the wrapper of Keystone. * Enhance the exceptions thrown by Keystone using ks_strerror. The exception classes have been refactored to shorten hardcoded error messages into the wrapper and instead, rely on the error messages generated by the native library, thanks to the function ks_strerror. * Add the ability to check with a given architecture is supported. Enhance the wrapper to map the function function ks_arch_supported in order to determine whether a given architecture is supported. * Add the features the change the assembly syntax and resolve symbols. Enhance the wrapper in order to support the changes of options. * Document the class KeystoneEncoded. * Add additional unit tests for a better coverage. * Reorder the native functions import and document the native functions prototype. * Optimize the code. * Add the target folder to the gitignore. * Add missing Javadoc annotations for the exceptions. * Add a gitkeep for the folder hosting the Keystone library for macOS. * Update the Maven configuration for version and dependencies. Use the version convention defined in the README, add a couple of testing dependencies and plugins to package the bindings in a fat JAR and enable Maven to use jUnit 5. * Use JNA Direct Mapping for better performances on native function calls. * Add the README. * Add myself to the credits :) * Use the syntax highlighting of Java in the README. * Fix a typo. * Optimize imports. * Add predefined folders hosting the library Keystone on Windows. * Add the Java bindings to the README of the bindings summary.