Inicio > ADF / Java > ADF tips: Reglas de auditoría en JDeveloper – Crea tus propias reglas (Modificador)

ADF tips: Reglas de auditoría en JDeveloper – Crea tus propias reglas (Modificador)

ADF tips

Siguiendo con la serie de posts sobre reglas de auditoria, donde ya hemos explicado cómo crear nuestra propia regla de auditoria creando nuestro analizador, ahora explicaremos cómo crear un Transform que nos sugiera el código que debemos poner.

Siguiendo el ejemplo de nuestra regla de auditoria, que no nos deja tener en el código la sentencia System.out.print porque por ejemplo estamos usando ADFLogger y en nuestras clases todas tienen el siguiente código de inicialización del ADFLogger:

 private static ADFLogger logger = ADFLogger.createADFLogger(TestAudit.class);

Vamos a crear una clase Transform que nos cambiará el código System.out.println(‘texto’); por logger.info(‘texto’);

Para hacer esto modificaremos el fichero Extension.xml definiendo nuestra clase y mapeándola con la clase Analizer definida anteriormente, quedando así:

<extension id="com.avanttic.extension.auditreglas" version="1.0.0" esdk-version="2.0" rsbundle-class="com.avanttic.extension.auditreglas.AuditReglas" xmlns="http://jcp.org/jsr/198/extension-manifest">
 <name>${EXTENSION_NAME}</name>
 <owner>${EXTENSION_OWNER}</owner>
 <trigger-hooks xmlns="http://xmlns.oracle.com/ide/extension">
 <!-- TODO Declare triggering functionality provided by extension: com.avanttic.extension.auditreglas -->
 <triggers>
   <audit-hook id="com.avanttic.extension.auditreglas">
    <trigger>
      <technology>Java</technology>
    </trigger>
    <category-definition id="AuditAvanttic"/>
    <category-definition id="ReglaJava">
       <category>AuditAvanttic</category>
    </category-definition>
    <transform-definition id="transform-system-print">
       <transform-class>com.avanttic.extension.auditreglas.transform.java.JavaTransformImpl</transform-class>
    </transform-definition>
    <rule-definition id="system-print">
      <category>ReglaJava</category>
      <enabled>true</enabled>
      <severity>error</severity>
      <transform-binding>
         <transform>transform-system-print</transform>
      </transform-binding>
    </rule-definition>
    <analyzer-definition>
        <analyzer-class>com.avanttic.extension.auditreglas.analizers.java.JavaAnalizerImpl</analyzer-class>
    </analyzer-definition>
   </audit-hook>
 </triggers>
 </trigger-hooks>
 <hooks>
 <!-- TODO Declare functionality provided by extension: com.avanttic.extension.auditreglas -->
 </hooks>
</extension>

Explicación de los nuevos tags:

  • transform-definition: Define una clase java que extenderá  oracle.jdeveloper.audit.transform.Transform y servirá para hacer la modificación.
  • transform-binding: Mapeamos nuestro modificador con el Analizer.

Después crearemos la clase java:

 package com.avanttic.extension.auditreglas.transform.java;

import oracle.javatools.parser.java.v2.internal.symbol.stmt.ExpressionStmt;

import oracle.jdeveloper.audit.java.JavaTransformAdapter;
import oracle.jdeveloper.audit.java.JavaTransformContext;
import oracle.jdeveloper.audit.transform.Transform;

public class JavaTransformImpl extends Transform {
 public JavaTransformImpl() {
 super(new JavaTransformAdapter());
 }

 public void apply(JavaTransformContext context, ExpressionStmt stmt) {
  // Aqui pondremos el codigo que realiará las modificaciones
 }
}

Una vez tengamos esto haremos el deploy de nuestro proyecto de reglas y comprobaremos cómo nos hace el cambio:

transform1

transform2

Conclusión: Hemos visto cómo en tiempo de codificación podemos controlar que se cumplan nuestras especificaciones QA  y cómo podemos ayudar al programador a cumplirlas, al poder sugerirle el código correcto que tiene que usar.

Categorías:ADF / Java Etiquetas: , ,
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: