Skip to content

🪐 v0.5.6

Latest
Compare
Choose a tag to compare
@oldratlee oldratlee released this 09 May 11:46
· 7 commits to main since this release

inspectable-wrappers

The purpose of Inspectable Wrappers is to provide a standard for wrapper chain with the inspection ability.

  • The core interfaces/specification interfaces:
    • Wrapper interface is used to
      be implemented by wrapper classes, make an inspectable wrapper chain(linked list)
    • Attachable interface is used to
      enhance the wrapper instances with the attachment storage ability
    • WrapperAdapter interface is used to
      adapt an existed wrapper instance to type Wrapper without modifying it
  • The Inspector class is used to inspect the wrapper chain
  • The utility classes:
    • AttachableDelegate class provides a simple Attachable delegate implementation
    • WrapperAdapterUtils class provides utility methods for creating WrapperAdapter instances without writing boilerplate codes of creating new adapter classes

🛠 Refactor/Improvements

  • refactor(Inspector): use fast and slow pointers instead of history IdentityHashMap to detect the wrapper chain loop 🔁
  • refactor: use Class#isInstance method of isAssignableFrom, more straightforward codes 🔤
  • style: small adjust of line breaks

🧪 Test

  • add junit-jupiter dependency in order to run JUnit 5 test cases in IntelliJ IDEA 🧪
  • add kotest.properties to disable Kotest autoscan 🍩

🚜 Chore/Bulid

  • add qodana CI checks on github workflow 🧠
  • add IntelliJ IDEA project dict 📖
  • upgrade dependencies/plugins 🛠️
  • upgrade maven wrapper to 3.9.9 🪶
  • upgraded non-LTS JDK to 24 from 22 🤖

🍼 Java API Doc

https://foldright.io/api-docs/inspectable-wrappers/0.5.6/

🍪 Maven dependency

<dependency>
    <groupId>io.foldright</groupId>
    <artifactId>inspectable-wrappers</artifactId>
    <version>0.5.6</version>
</dependency>