Skip to content

Releases: foldright/inspectable-wrappers

🪐 v0.5.5 rename wrapper spec methods with postfix `_`,  avoid naming conflict with biz methods 👓

10 Jun 15:10
Compare
Choose a tag to compare

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

  • ⚠️ rename wrapper spec methods with postfix _,  avoid naming conflict with biz methods 👓

🧪 Test

  • add a test case for studying the reflection methods: Class.getMethods and Class.getDeclaredMethods

🚜 Chore/Bulid

  • upgrade dependencies/plugins 🛠️
  • improve pom version check ✅
    avoid github actions failure when release version tag

🍼 Java API Doc

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

🍪 Maven dependency

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

🪐 v0.5.4 add new methods of `Inspector` and `WrapperAdapterUtils` ☘️💗

10 Apr 12:52
Compare
Choose a tag to compare

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

Note

Thanks to inspirational discussions from @zavakid about Inspector and WrapperAdapter 💕🫡

☘️ Features

  • add new methods of Inspector ☘️
    • getInstancesOfWrapperChain
    • getBaseOfWrapperChain
    • unwrap
    • isWrapper
    • verifyWrapperChainContracts(W, Class<W>)
    • forEachOnWrapperChain
  • add overloaded methods of WrapperAdapterUtils to add tag interfaces 🤖
  • Inspector check cyclic wrapper chain 🔄 💣

🚜 Chore/Bulid

  • upgrade dependencies/plugins 🛠️
  • add jdk 22 into CI 🤖
  • improve pom version check ✅

🍼 Java API Doc

https://foldright.io/inspectable-wrappers/apidocs/0.5.4/index.html

🍪 Maven dependency

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

🪐 v0.5.3 support `java9 jigsaw` 📦💗

03 Apr 06:41
Compare
Choose a tag to compare

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

Note

Thanks to inspirational discussions from @zavakid about Inspector and WrapperAdapter 💕🫡

☘️ Features

  • check contracts when WrapperAdapterUtils.createWrapperAdapter() ⚖️
  • support java9 jigsaw 📦

📚 Documentation

  • add IntegrationDemoUsingWrapperAdapterUtils 🎡
  • improve docs/javadoc 📚

🚜 Chore/Bulid

  • add check-forbidden-classes.sh 🚫

🍼 Java API Doc

https://foldright.io/inspectable-wrappers/apidocs/0.5.3/index.html

🍪 Maven dependency

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

🪐 v0.5.2 add `WrapperAdapterUtils` 🤖💗

31 Mar 10:39
Compare
Choose a tag to compare

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
  • Util classes:
    • AttachableDelegate class provides a simple Attachable delegate implementation
    • WrapperAdapterUtils class provides utility methods for creating WrapperAdapter instances without writing the boilerplate code to create a new adapter class

Note

Thanks to inspirational discussions from @zavakid about Inspector and WrapperAdapter 💕🫡

☘️ Features

  • add WrapperAdapterUtils 🤖

📚 Documentation

  • improve docs/javadoc 📚

🍼 Java API Doc

https://foldright.io/inspectable-wrappers/apidocs/0.5.2/index.html

🍪 Maven dependency

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

🪐 v0.5.1: add `Inspector.verifyWrapperChainContracts` method ⚖️💗

30 Mar 13:44
Compare
Choose a tag to compare

inspectable-wrappers

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

  • The 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

Note

Thanks to inspirational discussions from @zavakid about Inspector and WrapperAdapter 💕🫡

☘️ Features

🛠️ Refactor

  • rename the methods of Inspector 🔠

Note

Note about usage and method naming of Inspector:

  • All method names contain the word "wrapper chain",
    so the usage code is easily recognizable as related to inspectable wrappers.
  • Because the method names are long and informative,
    it's recommended to static import these methods.

📚 Documentation/Test

  • add wrapper chain graph to the javadoc ⛓️
  • refactor the demo ExistedExecutorWrapper implementation, without leak its underlying executor field
  • improve docs/javadoc 📚

🍼 Java API Doc

https://foldright.io/inspectable-wrappers/apidocs/0.5.1/index.html

🍪 Maven dependency

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

🪐 v0.5.0: add `Inspector` class and `travel` method 🕵️💗

27 Mar 11:05
Compare
Choose a tag to compare

inspectable-wrappers

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

  • Core 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
  • Inspector class is used to inspect the wrapper chain

Note

Thanks to inspirational discussions from @zavakid about Inspector and WrapperAdapter 💕🫡

☘️ Features

  • add Inspector class 🕵️ (by @zavakid)
    extract Inspector from Wrapper
  • add Inspector.travel method 🛥️
    and use it in methods Wrapper.inspect/getAttachment

🐞 BugFix

  • inspection/iteration of wrapper chain should not skip the last non-Wrapper instance 🧐

🛠️ Refactor

  • move util methods to Inspector, remove InternalUtils class
  • add missing QA annotations

📚 Documentation

  • improve docs/javadoc 📚

🧪 Test

  • add test case of inspecting last instance on wrapper chain

🚜 Chore/Bulid

  • upgrade dependencies/plugins 🛠️

🍼 Java API Doc

https://foldright.io/inspectable-wrappers/apidocs/0.5.0/index.html

🍪 Maven dependency

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

🪐 v0.4.0: add `WrapperAdapter` interface used to adapt an existed wrapper without modifying it 🔌💗

24 Mar 16:13
Compare
Choose a tag to compare

inspectable-wrappers

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

  • Wrapper is core interface, used to
    • identify the wrapper instances as a wrapper chain
    • provide static entry methods to inspect the wrapper chain
  • Attachable interface is used to
    enhance the wrapper instances with the attachment storage ability
  • WrapperAdapter interface is used to
    adapt an existed wrapper without modifying it

Note

Thanks to inspirational discussions from @zavakid about WrapperAdapter 💕🫡

☘️ Features

  • add interface WrapperAdapter and its test cases 🔌

🛠️ Refactor

  • add final to parameters for consistency
  • remove redundant type cast

🍼 Java API Doc

https://foldright.io/inspectable-wrappers/apidocs/0.4.0/index.html

🍪 Maven dependency

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

🪐 v0.3.2: a cleanup release 📚💗

23 Mar 16:40
Compare
Choose a tag to compare

inspectable-wrappers

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

  • Wrapper is core interface, used to
    • identify the wrapper instances as a wrapper chain
    • provide static entry methods to inspect the wrapper chain
  • Attachable interface is used to
    enhance the wrapper instances with the attachment storage ability

🛠️ Refactor

  • check null for unwrap() return result when travel the wrapper chain 👻

📚 Documentation/Test

  • add demo to integrate an existed executor wrapper without modification 📚
  • add test cases for exceptions 💣
  • improve demo codes; extract buildExecutorChain method in demo codes 🧪
  • improve javadoc 📚

🚜 Chore/Bulid

  • add pom version check ✅
  • upgrade dependencies/plugins 🛠️
  • upgrade maven wrapper to 3.9.6 🪶
  • remove kotlin.compiler.apiVersion=1.5 kotlin compiler flag

🍼 Java API Doc

https://foldright.io/inspectable-wrappers/apidocs/0.3.2/index.html

🍪 Maven dependency

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

🪐 v0.3.1: generic type support for attachable 🍀💗

08 May 04:58
Compare
Choose a tag to compare

inspectable-wrappers

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

  • Wrapper is core interface, used to
    • identify the wrapper instances as a wrapper chain
    • provide static entry methods to inspect the wrapper chain
  • Attachable interface is used to
    enhance the wrapper instances with the attachment storage ability

🍀 Features

🛠️ Refactor

  • rename Wrapper.check method to inspect 🌈
  • check null for method arguments 👻

📚 Documentation

  • README.md:
    • add logo image
    • update demo code
  • improve wording and format

🍼 Java API Doc

https://foldright.io/inspectable-wrappers/apidocs/0.3.1/index.html

🍪 Maven dependency

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

🪐 v0.3.0: rename to "Inspectable Wrappers" 🌈💗

02 May 14:57
Compare
Choose a tag to compare

inspectable-wrappers

Note

Naming is one of the hardest things! 🤣

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

  • Wrapper is core interface, used to
    • identify the wrapper instances as a wrapper chain
    • provide static entry methods to inspect the wrapper chain
  • Attachable interface is used to
    enhance the wrapper instances with the attachment storage ability

🍀 Features

  • rename to inspectable-wrappers for artifactId, package names, etc. 🌈

🍼 Java API Doc

https://foldright.io/inspectable-wrappers/apidocs/0.3.0/index.html

🍪 Maven dependency

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