[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.technology.ajdt] Re: how to capture method joinpoints in EJB 3 session bean?

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@xxxxxxxxxxxxxxx, "ppk"
<imperfectluk-ppk@xxxxxxxxxxxx> 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
> 
>