What's new in Trugger 5.1
Aug 5, 2014
- New Modules:
- Validation (completely from scratch and much better than the old and ugly validation module)
- New Features:
- InterceptionHandler for validating method arguments using the Validation module
- Component ArgumentsValidator for validating arguments of constructors and methods
- New element finder for lists behaving as the element finder for arrays
- Major Changes:
- Predicate for parameters assignable to a given type (use with caution)
- Predicate for primitive array types
- Method ParameterPredicates#name renamed to named
- Context now throws an UnresolvableValueException instead of returning null to indicate an unresolvable value
- Changed ValueHandler#get to #value
- Renamed ElementPredicates#type to ofType
- AnnotationMock removed because its functionality can be achieved using Mockito and a few lines of code
- Registry and ImplementationLoader moved to package util
- Minor Changes:
- Context Factories now sorts the constructors descending using their parameter counts
- EasyMock replaced by Mockito
New in Trugger 5.0.0 (May 1, 2014)
- This is a huge update. I'm going to focus on keep this project simple and easy to maintain (since I don't have money to put a great effort on it). Lots of code changed and lots of modules gone to /dev/null.
- This release is also the first one to have a README with a basic guide.
- Major Changes:
- Java 8 support:
- Removed Predicate, Iteration and Date modules
- Removed the tons of selector classes (lambdas are now a good solution) and everything are now centred in filter methods
- Renamed Invoker#handlingExceptionsWith to onError
- Unique searches no longer throws exceptions if two or more results are found
- Reformulated the Interception module, now the DSL implementation can be changed
- Immutable classes
- Element copies only applies functions to non null values (to prevent NPEs)
- No more single selections for field and method without specifying a name
- No more exception handlers for invocations (method and constructor)
- Removed Reflection#newInstanceOf method
- Changed the return of selections to List
- Renamed get and set methods in ValueHandler
- Reformulated Class Scan module
- recursively changed to deep and belongs now to DeepSelector
- ContextFactory utility class
- ComponentFactory utility class (a grown up version of the removed AnnotationBasedFactory)
- Minor Changes:
- Removed non used classes
- Renamed some methods and classes to improve code readability
New in Trugger 4.3.0 (May 1, 2014)
- Major Changes:
- Using ServiceLoader for loading implementations
New in Trugger 4.2.0 (May 1, 2014)
- Three modules removed since I don't have time/money to maintain them.
- Modules removed:
- Validation
- Bind
- Annotation (only Domain Annotation was kept)
- Minor Improvements:
- Reflection#newInstanceOf uses Utils#resolveType
New in Trugger 4.1.1 (May 1, 2014)
- Bug Fixes:
- Fixed a bug with getter method finder on overrided methods.
New in Trugger 4.1.0 (May 1, 2014)
- Major Changes:
- Added the possibility to reflect only public members of a class or the declared ones.
- ImplementationLoader#getInstance renamed to instance
- Removed AccessSelector
- Refactor on ReflectionPredicates
- Getter and Setter specs changed to include more cases
- Iteration DSL improved
- Finding operation separated in Find class
- Class scan DSL improved
- Interceptor class simplified and improved DSL to create a proxy
- Reflection DSL improved
- Predicates improved
- Predicable interface removed
- Changed scope of EasyMock to test
- Mocks for Element and ElementFinder are now in test packages
- Annotation mock still in the binaries, but is implemented using Interceptor class instead of EasyMock
- Bind DSL improved
- Validation DSL improved
- Removed pluggable binders and factories (use the composite ones to override the default ValidationFactory
- Other Changes:
- Using Gradle as the build system (good bye, Maven)
New in Trugger 4.0.1 (May 1, 2014)
- Fixed a bug when using a non-named field as selector for binding.
New in Trugger 4.0.0 (May 1, 2014)
- New Modules:
- Exception Handling
- Major Changes:
- Packages renamed from net.sf to org.atatec (back to the origin ^_^)
- pom groupId moved to org.atatec.trugger
- Reflection Invokers and Handlers does not throw a NPE if a null object is passed
- Class hierarchy helpers removed. Use ClassIterator and Reflection#hierarchyOf
- Support for JBoss Virtual Filesystem 3.1 (allows class scanning in JBoss AS 7.x)
- Improved API for registering a ResourceFinder.
- Method RegistryEntry#registry renamed to RegistryEntry#value
- Method Predicates#newComposition removed. Use Predicates#is instead.
- ElementFinder for arrays.
- Minor Changes:
- Using SoftReferences to cache annotation and object elements
New in Trugger 3.1.0 (May 1, 2014)
- Major Changes:
- Changed method PredicateSelector#thatMatches to that
- Transformers to all wrapper classes
- Simplified methods like elementsMatching and allElements in iteration module.
New in Trugger 3.0.0 (May 1, 2014)
- Major Changes:
- Removed cglib and commons collections dependency
- Removed PredicateDSL and TransformerDSL
- Performance improvements in validation
- Interceptor used only for interfaces
New in Trugger 2.8.0 (May 1, 2014)
- Major Changes:
- Reformulated Reflection DSL
- Code improvements
- Support for JBoss Virtual Filesystem (allows class scanning in JBoss AS 5.x and 6.x)
- Bug fixes:
- ElementMockBuilder now supports call for getAnnotation method.
New in Trugger 2.7.0 (May 1, 2014)
- New Modules:
- Domain Annotations
- Major changes:
- Reformulated DSL Criteria.
- Refactor in Interception module
- Non-named element and field selector for bind operations.
- AnnotationBased factory now searchs in the entire annotation levels.
- Renamed method Bind#newBind to newBinder.
- More operations in Reflector.
- Renamed BindableElement#getTarget method to target.
- Removed generic type "?" from ReflectionPredicates and ClassScanner.
- Bug fixes:
- Binder can now bind null values.
New in Trugger 2.6.0 (May 1, 2014)
- Major changes:
- Validation Binder for using Seam Components inside of a validator.
- Generic type reflection without specifying the generic parameter name.
- Additions to PredicateDSL.
- Renamed the bind(Resolver) method to use(Resolver).
- Merged Field elements and Property elements, so, if you want a property behaviour use the Properties class instead of Elements.
- New DSL for transform operations.
- Bug fixes:
- Element type check on element copies.