December 11, 2015 2:25 PM from Frank Pavageau
    |
    |  I think that by using an ITD …
    |

ITD works. For the benefit of others, here’s a sample of how to get 
HttpServlet*’s for the active servlet:

public interface IServletContext {
     HttpServletRequest  _getRequest();
     HttpServletResponse _getResponse();
}

public aspect Foo perthis(endPointsNoArgs(IServletContext)){

  declare parents: (@javax.ws.rs.Path *) implements IServletContext;

  @Context private HttpServletRequest IServletContext._request;

  public HttpServletRequest IServletContext._getRequest() {
    return _request;
  };

  @Context private HttpServletResponse IServletContext._response;

  public HttpServletResponse IServletContext._getResponse() {
    return _response;
  };

  pointcut endPointsNoArgs(IServletContext servletContext):
    ( execution (@javax.ws.rs.GET * *.*()) ||
      execution (@javax.ws.rs.PUT * *.*()) ||
      execution (@javax.ws.rs.POST * *.*()) ||
      execution (@javax.ws.rs.DELETE * *.*()) ) &&
    target(servletContext);

  Object around(IServletContext servletContext): 
endPointsNoArgs(servletContext) {
    HttpServletRequest request = servletContext._getRequest();
    HttpServletResponse response = servletContext._getResponse();
    // you can use request and response here
    Object result = proceed(servletContext);
    // and here
    return result;
  }
}

All Izz Well
Regards,
Shackman
_______________________________________________
aspectj-users mailing list
aspectj-users@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to