jboss-user
[Arriba] [Todas las Listas]

[jboss-Usuario] [JBoss AOP] - Consejo de Constructor

To: User development <jboss-user@xxxxxxxxxxxxxxx>
Subject: [jboss-Usuario] [JBoss AOP] - Consejo de Constructor
From: David Tucker <do-not-reply@xxxxxxxxx>
Date: Wed, 14 Sep 2011 09:11:21 -0400
Auto-submitted: yes
Delivery-date: Wed, 14 Sep 2011 09:12:39 -0400
Envelope-to: traductor@xxxxxxxxxxx
List-archive: <http://lists.jboss.org/pipermail/jboss-user>
List-help: <mailto:jboss-user-request@lists.jboss.org?subject=help>
List-id: The JBoss User main mailing list <jboss-user.lists.jboss.org>
List-post: <mailto:jboss-user@lists.jboss.org>
List-subscribe: <https://lists.jboss.org/mailman/listinfo/jboss-user>, <mailto:jboss-user-request@lists.jboss.org?subject=subscribe>
List-unsubscribe: <https://lists.jboss.org/mailman/listinfo/jboss-user>, <mailto:jboss-user-request@lists.jboss.org?subject=unsubscribe>
Reply-to: The JBoss User main mailing list <jboss-user@xxxxxxxxxxxxxxx>
Sender: jboss-user-bounces@xxxxxxxxxxxxxxx
David Tucker [*http://comunidad.*jboss.*org/Personas/*codefox] creó el Consejo

"de Constructor de la discusión"

para ver la discusión, visita: *http://comunidad.*jboss.*org/Mensaje/626443#626443

--------------------------------------------------------------
he sido escribiendo AOP contra acciones en mi tubería de ESB (cuando nosotros todo ahora sabe  :)  ) y mientras escribiendo *pointcuts contra los métodos de proceso trabaja bien, tengo una necesidad de tener consejo alrededor de los constructores de las acciones de modo que puedo poblar algún *metadata.  El problema es que ninguno del *pointcuts he escrito parecer para hacer cualquier cosa.  He probado varias cosas desde él parecido que el ESB podría ser *instantiating las acciones *via reflexión pero que no pareció para trabajar tampoco.  Cuándo escribí consejo contra la clase *ActionProcessingPipeline justo para ver si él  *grab cualquier constructor, no conseguía ninguna producción de mi consejo de constructor.  Aquí es mi código actual:


*jboss-*aop.*xml:
<*pointcut *expr="Ejecución(público *com.*amentra.*->Nuevo(..)) Nombra=*NewInstancePC"/>

<nombre de aspecto="*ConstructorAdvice" clase="*com.*amentra.*aop.Consejo.*ConstructorAdvice" El Alcance="POR_VM"/>

<liga *pointcut="*NewInstancePC">  
        <antes de aspecto="*ConstructorAdvice" nombre="*interceptConstructor"/>
</liga>


también he probado haciendo este *via reflexión aun así y extendido el *appropriate clase en mi *ConstructorAdvice y que también no resultó en cualquier cosa.  La reflexión probé de este modo:

*jboss-*aop.*xml:

<*pointcut *expr="Llamada(* *java.*lang.Refleja.Constructor->*newInstance()) nombre=*NewInstancePC/>
<*pointcut *expr="llamada(* *java.*lang.Clase->*newInstance()) nombra=*ClassNewInstancePC/>

<nombre de aspecto="*ConstructorAdvice" clase="*com.*amentra.*aop.Consejo.*ConstructorAdvice" El Alcance="POR_VM"/>

<liga *pointcut="*NewInstancePC OR *ClassNewInstancePC">
        <antes de aspecto="*ConstructorAdvice" nombre="*interceptConstructor"/>
</ligar>


*ConstructorAdvice.*java:


Paquete *com.*amentra.*aop.Consejo;

importación *java.*lang.Refleja.Constructor;

importación *org.*apache.*log4*j.*Logger;
Importación *org.*jboss.*aop.*joinpoint.Invocación;
importación *org.*jboss.*aop.Reflexión.*ReflectionAspect;

Clase pública *ConstructorAdvice extiende *ReflectionAspect

    #unknown{^*Logger *LOG = *Logger.*getLogger(Esto.*getClass());
        
    @*Override
    Objeto protegido *interceptConstructor(invocación de Invocación, Constructor<?> Constructor, Objeto[] *args) echa *Throwable
        #unknown{^*LOG.*info("****************CONSEJO de CONSTRUCTOR****************");
        
        regreso *super.*interceptConstructor(Invocación, constructor, *args);
    }
}


*Thanks para cualquier ayuda en conseguir AOP para reconocer mis constructores.
--------------------------------------------------------------

Respuesta a este mensaje por ir a Comunidad
[*http://comunidad.*jboss.*org/Mensaje/626443#626443]

Empieza una discusión nueva en *JBoss AOP en Comunidad
[*http://comunidad.*jboss.*org/Escoge-contenedor!Entrada.*jspa?*contentType=1&*containerType=14&contenedor=2027]

David Tucker [http://community.jboss.org/people/codefox] created the discussion

"Constructor Advice"

To view the discussion, visit: http://community.jboss.org/message/626443#626443

--------------------------------------------------------------
I've been writing AOP against actions in my ESB pipeline (as we all now know  :)  ) and while writing pointcuts against the process methods works fine, I have a need to have advice around the constructors of the actions so that I can populate some metadata.  The problem is that none of the pointcuts I've written seem to do anything.  I've tried various things since it seemed that the ESB might be instantiating the actions via reflection but that didn't seem to work either.  When I wrote advice against the class ActionProcessingPipeline just to see if it would grab any constructor, I got no output from my constructor advice.  Here is my current code:


jboss-aop.xml:
<pointcut expr="execution(public com.amentra.*->new(..)) name=NewInstancePC"/>

<aspect name="ConstructorAdvice" class="com.amentra.aop.advice.ConstructorAdvice" scope="PER_VM"/>

<bind pointcut="NewInstancePC">  
        <before aspect="ConstructorAdvice" name="interceptConstructor"/>
</bind>


I've also tried doing this via reflection though and extended the appropriate class in my ConstructorAdvice and that also didn't result in anything.  The reflection I tried this way:

jboss-aop.xml:

<pointcut expr="call(* java.lang.reflect.Constructor->newInstance()) name=NewInstancePC/>
<pointcut expr="call(* java.lang.Class->newInstance()) name=ClassNewInstancePC/>

<aspect name="ConstructorAdvice" class="com.amentra.aop.advice.ConstructorAdvice" scope="PER_VM"/>

<bind pointcut="NewInstancePC OR ClassNewInstancePC">
        <before aspect="ConstructorAdvice" name="interceptConstructor"/>
</bind>


ConstructorAdvice.java:


package com.amentra.aop.advice;

import java.lang.reflect.Constructor;

import org.apache.log4j.Logger;
import org.jboss.aop.joinpoint.Invocation;
import org.jboss.aop.reflection.ReflectionAspect;

public class ConstructorAdvice extends ReflectionAspect {

    Logger LOG = Logger.getLogger(this.getClass());
        
    @Override
    protected Object interceptConstructor(Invocation invocation, Constructor<?> constructor, Object[] args) throws Throwable
    {
        LOG.info("****************CONSTRUCTOR ADVICE****************");
        
        return super.interceptConstructor(invocation, constructor, args);
    }
}


Thanks for any help on getting AOP to recognize my constructors.
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/626443#626443]

Start a new discussion in JBoss AOP at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2027]

_______________________________________________
*jboss-Usuario *mailing lista
*jboss-user@xxxxxxxxxxxxxxx
*https://listas.*jboss.*org/*mailman/*listinfo/*jboss-Usuario
_______________________________________________
jboss-user mailing list
jboss-user@xxxxxxxxxxxxxxx
https://lists.jboss.org/mailman/listinfo/jboss-user
<Anterior por Tema] Tema Actual [Siguiente por Tema>
  • [jboss-Usuario] [JBoss AOP] - Consejo de Constructor, David Tucker <=