Registro de accesos (hasta v4.9.1)

A partir de v5.0 AccessTracking no se incluye en la distribución. Puedes usar el nuevo AccessTracker de OpenXava o Hibernate Envers, crear tu propio listener u obtener AccessTracking de una distribución anterior.
Hasta OpenXava 4.9.1 se incluía el proyecto AccessTracking (registro de accesos) por defecto. Este proyecto define un oyente de entidad (entity listener) que nos permite llevar la pista de todos los accesos a los datos de nuestra aplicación. Actualmente, este proyecto permite que nuestra aplicación pueda cumplir con la Ley de Protección de Datos española, incluyendo datos con nivel de seguridad alto. Aunque es los suficientemente genérica para ser útil en una amplia variedad de escenarios.

Aplicando el oyente

Cuando aplicamos el oyente a nuestra entidad, el código de AccessTrackingListener se ejecuta cada vez que un objeto es creado, leido, modificado o eliminado. AccessTrackingListener escribe un registro en una tabla de la base de dato con la información sobre el acceso.
Para aplicar este oyente solo necesitas escribir esto en el código de entidad:
@Entity
@EntityListeners(AccessTrackingListener.class)
public class Almacen {
De esta forma tan sencilla, una sola línea, todos los accesos a las entidades de tipo Almacen se registrarán en una tabla de la base de datos.

Configurar AccessTracking

Si queremos usar AccessTracking en nuestro proyecto hemos de seguir los siguientes pasos:
  • Añadir AccessTracking como proyecto referenciado: Dentro de Eclipse ponerse encima del proyecto, pulsar el botón derecho e ir a Properties > Java Build Path > Projects.
  • Crear una tabla en nuestra base de datos que guarde el registro de los accesos. Podemos encontrar el CREATE TABLE en el archivo AccessTracking/data/access-tracking-db.script.
  • Dentro del proyecto AccessTracking hemos de seleccionar una configuración (editando build.xml) y regenerar el código de hibernate (con la tarea ant generateHibernate) para el proyecto AccessTracking.
También necesitamos modificar la tarea ant deployWar de nuestro build.xml de esta forma:
<target name="deployWar">
    <ant antfile="../AccessTracking/build.xml" target="createTracker"/>
    ...
</target>
Ahora solo nos queda desplegar el war de nuestro proyecto.
Todos los accesos se registran en una tabla con el nombre TRACKING.ACCESS. Si queremos podemos desplegar el módulo web o el portlet del proyecto AccessTracking para tener una aplicación web para examinar los accesos.
Para más detalles podemos echar un vistazo el proyecto OpenXavaTest.