hidralink es una una framework Java orientada a aspectos (AOP) con un diseño basado en las
interfaces de AOPAlliance, por lo que los aspectos creados pueden ser utilizados en otras implementaciones
de AOP que sean compatibles con AOPAlliance.
hidralink tiene los siguientes features:
Framework orientada a aspectos que por ahora solo soporta interceptores (en próximas versiones soportara Introducciones y mixin)
Soporta interfaces de AOPAlliance
Configuración programática o por declarativa via XML
Utiliza DynamicProxy de J2SE o CGLIB como mecanismo de intercepción de metodos
Simple, rapido y liviano
Implementa interfaces popias que facilitan la programación de los aspectos
Varias estrategias de invocacion, por observers/observable o chain
Diferentes formas de definir pointcuts (todos los metodos de una clase, los metodos de una interface o por expresiones regulares)
Permite cambiar en comportamiento interno mediante configuración
También posee las siguientes caracteristicas:
Un aspecto tiene un advisor que se encarga de definir en que metodos del objeto target se aplica y que advices se ejecutan.
De esta forma se pueden reutilizar los pointcuts y los advices entre diferentes aspectos, solo hay que agregarlos a un advisor
y luego este al aspecto
Un aspecto tiene un solo objeto "target" y un "advisor"
Un advisor tiene n pointcuts (permite aplicar union o interseccion entre pointcuts) + n advices
Los pointcut pueden ser reutilizados entre aspectos
El orden de ejecución de los advice es segun el orden en que se hayan configurado