Releases: davidmarquis/fluent-interface-proxy
Releases · davidmarquis/fluent-interface-proxy
2.2.0
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 fromConvertUtils
, you'll need to wait until the next release, which will support custom conversions.
2.1.2
- [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
- 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
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
- 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
- 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>