Releases: derklaro/reflexion
Releases · derklaro/reflexion
v1.8.0
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
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 accessorReflexion#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
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
Changes
- Add
flatMap
andflatMapExceptional
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
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
gradle
from v7.4.2 to v7.5 by @renovate in #8junit5
from v5.8.2 to v5.9.0 by @renovate in #9checkstyle-tools
from v10.0 to v10.3.2 by @derklaro
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
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
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
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.