Official Builds

Release notes

New features and changes in release 0.8.x

  • JDK 1.3 compatible.
  • New online architecture, with several options and java 1.3 support (not dependent on JMangler anymore).
  • New attributes -> XML compiler (no more metaData dir and meta-data compilers)
  • Offline compiler refactored. Now support rollback on error facility. (Note that the bin/aspectwerkz -offline must now be invocated with the definition file as first argument.)
  • Documentation updated and reorganized.
  • Released under a BSD-style license.
  • Tested and verified to work for EJBs under WLS using both online and offline mode.
  • Non-reentrancy configuration for join points.
  • Definition validator.

New features and changes in release 0.7.x

  • Pluggable custom defined join point controller. The join point controller gives you complete control over your advices at runtime (at certain join points).
  • Package namespaces and scopes in the XML definition.
  • cflow (control flow) pointcuts.
  • Performance improvement for advices by a factor of 2.
  • Many, many bugfixes (introduced by the new pointcut model implementation in 0.6.x).
  • The runtime attributes tags have changed. (They now have an aspectwerkz namespace and are using the same syntax as XDoclet.)
  • The prefix ___AW_ is now used at all introduced methods and fields. Including the Identifiable.getUuid method which is renamed to ___AW_getUuid
  • Documentation and examples have been updated.
  • Uses new version of JMangler (3.0.2) which is released under LGPL.

New features and changes in release 0.6.x

  • Completely new definition model. Aspects, advices, introductions and pointcuts are now completely orthogonal and the model now has the essence of the AspectJ model. See the documentation for details.
  • Abstract aspects definitions as well as pointcut expressions (e.g. ((pc1 OR pc2) AND !pc3) and similar).
  • Multiple weave models.
  • Multiple AspectWerkz system can run in the same JVM concurrently.
  • setField and getField now works for get and set java.util.* collection fields (e.g. add/get/remove/size and so on).
  • Advice and introduction container is now pluggable. I.e. the user can provide its own custom implementation (f.e. to enable persistence).
  • The transparent persistence of advices and introductions have been moved to the sandbox.
  • Many bug fixes.

New features and changes in release 0.5.x

  • Caller side pointcuts. I.e. the possibility to advise a method invocation (caller side) apart from method execution (callee side).
  • Fine-grained pattern language for picking out pointcuts. It is now possible to pick out method pointcuts by method name, parameter types and return type as well as field pointcuts by field name and field type. All these support regular expressions.
  • Runtime attributes for advices (method/field/throws). I.e. add meta-data to your methods/field/classes as JavaDoc tags which are picked up by the weaver and used as rule set when doing the transformations.
  • Class selectors for aspects. I.e. pick out classes using regular expressions.
  • Advising of static fields.
  • Parameters to advices. The possibility to pass parameters to advices through the XML definition.
  • Advice stacks. The possibility to define stacks/chains of advices that can be reused throughout the XML definition.
  • MethodAdvice has been renamed to AroundAd vice and the FieldAdvices has been renamed to PreAdvice and PostAdvice.
  • Creation and registration of new advices at runtime (in previous releases you could only add/remove/reorder existing advices).
  • Ant task for offline post-processing.
  • More flexible startup and definition handling process.
  • Multiple pattern declarations for pointcuts.
  • More documentation and examples.
  • Many many bugfixes.