Trugger Changelog

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.