|
Re: how to capture method joinpoints in EJB 3 session bean? [message #371211 is a reply to message #351436] |
Wed, 29 July 2009 04:55 |
Eclipse User |
|
|
|
Originally posted by: andrew.eisenberg.springsource.com
One thing that you can do is create an abstract aspect that defines the
advice and an abstract pointcut. People who want to use your aspect need to
create a concrete aspect and instantiate the pointcut.
Eg-
abstract aspect AbstractSessionBeanAspect {
protected abstract pointcut sessionBeanMethods();
before() : sessionBeanMethods() {
// do something
}
}
aspect MySessionBeanAspect extends AbstractSessionBeanAspect {
protected pointcut sessionBeanMethods() : execution(
SessionBeanInterface.*(..));
}
On 28/07/09 2:46 AM, in article
ecf71309e5f50e59fcb367e208c87a5e$1@www.eclipse.org, "ppk"
<imperfectluk-ppk@yahoo.com.hk> wrote:
> Hi all,
>
> i am new to aspectj and i am trying to write aspect to capture the method
> of all a session bean (EJB 3.0 syntax).
>
> the methods i want to captures are the 'business method' in the session
> bean.
> As EJB 3.0 session bean can be created in the following form:
>
> ------------------------------------------------------------ --
> public interface SessionBeanInterface {
> public void advicedMethod();
> }
> ------------------------------------------------------------ --
>
> @Stateless(name="SessionBean")
> @Remote(SessionBeanInterface.class)
> public class SessionBean implements SessionBeanInterface {
>
> public void advicedMethod(){
>
> //this method to be captured by before execution(...) pointcut
>
> }
>
> public void nonAdvicedMethod() {
> //this method is NOT to be captured
> }
> }
> ------------------------------------------------------------ -------
>
> could anybody tell me the pointcut to capture ONLY the
> method in the SessionBeanInterface interface??
>
> *** i CANNOT HARDCODE the interface in the aspect as i am now writing a
> *** generic tool to capture all the session bean interface method
>
> thank you.
>
> ppk
>
>
|
|
|
|
Powered by
FUDForum. Page generated in 0.03170 seconds