Changes are split into three categories:
- Major changes: The major new features that all users should know about.
- Minor changes: Any smaller changes, including bug fixes.
- API changes: Any changes to the API that could impact existing users.
Version 1.0
Major changes
- Use JDK 5 language features.
- Added builder classes for all toys (refer Martin Fowler's FluentInterface).
- New FutureToy to run methods asynchronously (PTOYS-5).
- New PrivilegeToy to run methods as privileged actions.
- Maven groupId changes from "proxytoys" to "com.thoughtworks.proxytoys".
This release is source and binary incompatible with any previous version to allow maximum support of Java 5 features in the API.
Version 0.2
Major changes
- Added Pool proxy (PTOYS-4).
- Added Dispatcher proxy (PTOYS-9).
- Compatibility for CGLIB 2.0.2 (PTOYS-7) and CGLIB 2.1.
- Classes compiled for JDK 1.3.
- Multicaster proxies implement now Multicast.
- A lot of Javadoc and package overviews with examples.
- Removed Future object (PTOYS-2)
- Ensure proxies can be serialized by JDK and XStream even with JDK 1.3.
Minor changes
- Fix equality for delegated objects (PTOYS-3).
- Fix recursion problem for delegating objects (PTOYS-8).
- Decorates can now call the protected methods of its delegate.
- Echo objects use now the given ProxyFactory.
- Echo objects will now also trace return values and thrown exceptions.
- Fixed a lot of concurrency issues.
- Multicaster will no longer try and fail to proxy final classes.
- Multicaster handles now all primitive types.
- Hot swapping proxy could not handle concrete classes (fix by Aaron Knauf).
- Fixed implicit and unnecessary references of the proxy instance to the ProxyFactory.
- Delegating proxies cache the matching methods internally.
API changes
- Copied ClassHierarchyInspector to ReflectionUtils in new package com.thoughtworks.proxy.kit and deprecated ClassHierarchyInspector.
- Methods of ReflectionUtils use now Set instances instead of Class arrays.
- Moved ObjectReference and SimpleReference into new package com.thoughtworks.proxy.kit.
- SimpleInvoker into new package com.thoughtworks.proxy.kit.
- InvocationDecorator methods now all receive at any time the proxy, the called method and the arguments.
- DelegatingInvoker no longer has public constants, use always Delegating.MODE_XXX constants
- The delegation mode is no longer set by a boolean (STATIC_TYPE or DYNAMIC_TYPE), but an integer value now (MODE_XXX).
- DelegatingInvoker no longer has public constants, use always Delegating.MODE_XXX constants
Version 0.1
Initial release.