Skip to content

Releases: derklaro/reflexion

v1.8.0

07 Dec 09:12
d50cfb8
Compare
Choose a tag to compare

Changes

  • Added missing throws javadoc tags to newly added unreflect methods in 1.7.0
  • Unrecoverable exceptions caught by Result.tryExecute are instantly rethrown rather than held inside a result instance. These exceptions include:
    • InterruptedException
    • LinkageError
    • ThreadDeath
    • VirtualMachineError
  • All exceptions thrown inside NativeLibLoader.tryLoadNative() are now catched and rethrown. Linkage errors are ignored as they might be releated to some form of incompatibility with reflexion and should not interrupt the program execution.

Dependency

Maven:

<dependency>
  <groupId>dev.derklaro.reflexion</groupId>
  <artifactId>reflexion</artifactId>
  <version>1.8.0</version>
</dependency>

Gradle:

implementation("dev.derklaro.reflexion", "reflexion", "1.8.0")

Releases can take up to 20 minutes to show up in Maven-Central.

Full Changelog

v1.7.0...v1.8.0

v1.7.0

25 Nov 16:12
8075d58
Compare
Choose a tag to compare

Changes

  • Added support to unreflect java members directly rather than adding a need to search them again. There are two ways to unreflect:
    • Reflection.unreflectField/Method/Constructor - will unreflect the given member directly to the associated accessor
    • Reflexion#unreflect - will unreflect the given member while also giving you the possibility to keep the unreflect process in a specific context. For example by having the Reflexion instance bound to a specific type for later use: Reflexion.onBound(instance).unreflect(method).

Dependency Updates

  • Update rust crate jni to 0.20.0 by @renovate in #15
  • Update jmhversion to v1.36 by @renovate in #16
  • Update plugin com.diffplug.spotless to v6.12.0 by @renovate in #17
  • Update gradle to v7.6

Dependency

Maven:

<dependency>
  <groupId>dev.derklaro.reflexion</groupId>
  <artifactId>reflexion</artifactId>
  <version>1.7.0</version>
</dependency>

Gradle:

implementation("dev.derklaro.reflexion", "reflexion", "1.7.0")

Releases can take up to 20 minutes to show up in Maven-Central.

Full Changelog

v1.6.0...v1.7.0

v1.6.0

16 Oct 17:20
cbe31b7
Compare
Choose a tag to compare

Changes

  • Add support for resolving the IMPL_LOOKUP field based on JNA
  • Deprecate Util.fastModulo for removal as it might cause unexpected side effects for some users
  • Improve handling of the target invocation instance. The class instance the associated reflexion instance is bound to is now always considered when calling any method on an accessor
  • Improved the internal handling of sun.misc.Unsafe to be less fiddly
  • Made the bare accessor factory more forceful when possible by using Unsafe to change the accessible boolean which allows bypassing access checks for that factory now as well

Dependency Updates

  • Update plugin me.champeau.jmh to v0.6.7 by @renovate in #11
  • Update plugin me.champeau.jmh to v0.6.8 by @renovate in #13
  • Update junit5 monorepo to v5.9.1 by @renovate in #12
  • Update checkstyle to 10.3.4
  • Update actions/rust-cache to v2

Dependency

Maven:

<dependency>
  <groupId>dev.derklaro.reflexion</groupId>
  <artifactId>reflexion</artifactId>
  <version>1.6.0</version>
</dependency>

Gradle:

implementation("dev.derklaro.reflexion", "reflexion", "1.6.0")

Releases can take up to 20 minutes to show up in Maven-Central.

Full Changelog

v1.5.0...v1.6.0

v1.5.0

06 Aug 09:12
a78f9de
Compare
Choose a tag to compare

Changes

  • Add flatMap and flatMapExceptional to Result for better chaining method calls returning a Result (for example when calling builder methods).
  • Tests are now executed on macos as well.

Dependency Updates

Dependency:

Maven:

<dependency>
  <groupId>dev.derklaro.reflexion</groupId>
  <artifactId>reflexion</artifactId>
  <version>1.5.0</version>
</dependency>

Gradle:

  implementation("dev.derklaro.reflexion", "reflexion", "1.5.0")

Releases can take up to 20 minutes to show up in Maven-Central.

Full changelog

v1.4.0...v1.5.0

v1.4.0

01 Aug 07:27
1a05795
Compare
Choose a tag to compare

Changes

  • Optimize rust release build flags to minify native binaries (and therefore the dependency file size) from ~3.3 MB to ~1.7 MB

Dependency Updates

Dependency:

Maven:

<dependency>
  <groupId>dev.derklaro.reflexion</groupId>
  <artifactId>reflexion</artifactId>
  <version>1.4.0</version>
</dependency>

Gradle:

  implementation("dev.derklaro.reflexion", "reflexion", "1.4.0")

Releases can take up to 20 minutes to show up in Maven-Central.

Full changelog

v1.3.0...v1.4.0

v1.3.0

13 Jun 13:03
fe0237f
Compare
Choose a tag to compare

Changes

  • The trusted lookup field can now also be accessed via a direct field access if the module system allows so

Dependency:

Maven:

<dependency>
  <groupId>dev.derklaro.reflexion</groupId>
  <artifactId>reflexion</artifactId>
  <version>1.3.0</version>
</dependency>

Gradle:

  implementation("dev.derklaro.reflexion", "reflexion", "1.3.0")

Releases can take up to 20 minutes to show up in Maven-Central.

Full changelog

v1.2.0...v1.3.0

v1.2.0

22 Apr 09:07
07c1e83
Compare
Choose a tag to compare

Changes

  • The native code based and method handle factories are now only marked as available if IMPL_LOOKUP was loaded successfully, else bare member access will be used instead.

Dependency Updates

Dependency:

Maven:

<dependency>
  <groupId>dev.derklaro.reflexion</groupId>
  <artifactId>reflexion</artifactId>
  <version>1.2.0</version>
</dependency>

Gradle:

  implementation("dev.derklaro.reflexion", "reflexion", "1.2.0")

Releases can take up to 20 minutes to show up in Maven-Central.

Full changelog

v1.1.0...v1.2.0

v1.1.0

30 Mar 19:46
0c053f1
Compare
Choose a tag to compare

Changes

  • Most of the native reflection code was removed (by @0utplay ) and replaced by just accessing the jvm-internal IMPL_LOOKUP field and then using trusted MethodHandles.

Dependency Updates

Dependency:

Maven:

<dependency>
  <groupId>dev.derklaro.reflexion</groupId>
  <artifactId>reflexion</artifactId>
  <version>1.1.0</version>
</dependency>

Gradle:

  implementation("dev.derklaro.reflexion", "reflexion", "1.1.0")

Releases can take up to 20 minutes to show up in Maven-Central.

Full changelog

v1.0.0...v1.1.0

v1.0.0

16 Mar 16:59
a932dc2
Compare
Choose a tag to compare

Initial release of the library, see README for more information.

Dependency:

Maven:

<dependency>
  <groupId>dev.derklaro.reflexion</groupId>
  <artifactId>reflexion</artifactId>
  <version>1.0.0</version>
</dependency>

Gradle:

  implementation("dev.derklaro.reflexion", "reflexion", "1.0.0")