Skip to content

Releases: davidmarquis/fluent-interface-proxy

2.2.0

28 Apr 12:31
Compare
Choose a tag to compare

The main goal of this release was to make the library completely standalone, getting rid of Apache Commons BeanUtils as a dependency. Code was re-used from @minimalcode-org as a basis for introspection and reflection, and a custom data converter was implemented to migrate the existing usage of BeanUtils' ConvertUtils class.

These changes should be transparent to your code. Please file an issue if you observe any change in behaviour after upgrading.

  • [NEW]: Default methods on builder interfaces are now supported, although the Java runtime will emit a warning when using them on Java 9+. This is because calling default methods on interfaces via reflection requires a special access that has been restricted in Java 9. This behaviour might result in errors in a future Java release so use default methods sparingly. See #11
  • [CHANGE]: The library is now completely standalone, with an optional dependency on cglib to speed things up a bit. See #12
  • [CHANGE]: Data conversion is now handled internally instead of being delegated to BeanUtils ConvertUtils. The internal data converter supports adding custom conversions but this release does not yet let you define custom ones. If you were using custom conversions from ConvertUtils, you'll need to wait until the next release, which will support custom conversions.

2.1.2

08 Oct 17:55
Compare
Choose a tag to compare
  • [FIX] Fixes #9 : inheritance issue when finding a candidate constructor for instantiation of built beans. The fix allows using instances of objets that are descendants of the type declared in a constructor. Thanks @rahulpilani

To add to your Maven project:

<dependency>
    <groupId>com.github.davidmarquis</groupId>
    <artifactId>fluent-interface-proxy</artifactId>
    <version>2.1.2</version>
</dependency>

2.1.1

03 Sep 17:03
Compare
Choose a tag to compare
  • NEW: Added possibility to specify custom instantiators when creating dynamic builders with ReflectionBuilder.usingInstantiator. See README for details.
  • NEW: Builder methods annotated with @Constructs can now use varargs and those will be properly converted to Lists (or other collections) when calling the target constructor. Those varargs can also be builders.
  • NEW: Simplified usage of custom builder interfaces by providing the AbstractBuilderDelegate class that does much of the heavy lifting.

To add to your Maven project:

<dependency>
    <groupId>com.github.davidmarquis</groupId>
    <artifactId>fluent-interface-proxy</artifactId>
    <version>2.1.1</version>
</dependency>

2.0.0

30 Jun 15:09
Compare
Choose a tag to compare

IMPORTANT: Starting from this version (2.0.0), the minimum JRE requirements to use the library is Java 8.

  • NEW: @Constructs annotation to mark builder methods as constructor invocations
  • NEW: @Sets(via=[Class<? extends Function>]) to use custom conversion functions to process setter values before they are actually set on target properties.
  • NEW: Basic value conversions will now be attempted for setter methods which take a different type as their target property.

To add to your Maven project:

<dependency>
    <groupId>com.github.davidmarquis</groupId>
    <artifactId>fluent-interface-proxy</artifactId>
    <version>2.0.0</version>
</dependency>

1.3.2

03 Sep 14:20
Compare
Choose a tag to compare
  • Better support for setting attributes from object's inheritance hierarchy (thanks @charleech)

To add to your Maven project:

<dependency>
    <groupId>com.github.davidmarquis</groupId>
    <artifactId>fluent-interface-proxy</artifactId>
    <version>1.3.2</version>
</dependency>

fluent-interface-proxy-1.3.1

03 Sep 14:12
Compare
Choose a tag to compare
  • Added support for @Sets annotation (thanks @davidchau)

To add to your Maven project:

<dependency>
    <groupId>com.github.davidmarquis</groupId>
    <artifactId>fluent-interface-proxy</artifactId>
    <version>1.3.1</version>
</dependency>