Hi all,

This is not advertising as we are willing to donate this (maybe to the ASF).

I developped for my corporation an Aspect framework that we will use in our
other developments. It is Free Software so you can use it already. The license
is derived from the ASL.

See http://www.clever-age.org/java/concern/

It is Avalon-based, as all the components are defined with interfaces.

It uses the interceptor concept however does not rely on the Spice Interceptor
service as this does not seem to be stable. But i think this is the road to
follow if this service gets cleany and in a standard manner incorporated into
standard Avalon containers.

The pointcut provider service is cut in several services as only the core one is
needed to implement the others. (For instance, ControlFlowPointcutManager uses
an ControlFlowObservation class that is already an aspect.)

Aspecting of objects is done through the ObjectAspecter service. You must aspect
every objects one by one. This has the benefit that you can control exactely
what part of your program is to be aspected. And if you have factories this is
really not a problem. However if someone has some ideas as to make a
class-loading oriented mechanism this would really be welcome.

The default PointcutManager and ObjectAspecter implementations use JDK proxy
classes and so do not support field-get and set pointcuts nor poincuts for
methods not defined on interfaces (as you may know).

We plan to make a Javassist implementation. We sketched the implementation on
paper and it seems it will be straightfoward, however this is not our immediate
concern as we do develop against the Avalon contracts (so quid of methods
defined on classes) and we maybe will have one case where we need field pointcuts.

The DesignatorPointcutManager service is still not implemented. We need for this
to implement the NameResolver service which must index classes names by
inspecting some jars. If someone has some workable stuff i could use or
integrate, this is welcome too.

In order to start with it, you should read the "Getting Started" article and
you'll find some more use examples in the test (not yet complete) sources.
Also an example of design pattern abstraction in the com.cleverage.concern.patterns.

I'm in fact somehow proud of those services. So i really would like to have
feedback.

Cheers,
A+. Didier.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to