Hi! I'd definitely would go the subclassing route.
The problem you describe here is one of my biggest concerns of how Spring's AOP works. This is just not real AOP - it is dynamic proxy creation - not more, not less. An average developer will never be able to figure out what is going wrong here. I had this problem once too, the solution I used then was not to use (the implicit) "this.", but to use a reference to the service object (the proxy instance). In your case this would mean you need to get access to the proxy and then call thisProxy.importLegacyEmployees. That way the call goes through the AOP layer ... but ... I'd consider it as nasty workaround. Ciao, Mario -----Original Message----- From: Mark Struberg [mailto:strub...@yahoo.de] Sent: Tuesday, May 11, 2010 7:30 AM To: dev@openwebbeans.apache.org Subject: Need to switch to subclassing? Hi! There is a subtle difference between implementing interceptors via proxy or via subclasses. I have the following service which imports data from a legacy system into my db. Since commits are very performance intense, they should get imported in packages of 100. So I'll get 100 'Employees' from my legacy system and then call a @Transactional method to store them in my own database. public void ImportService() { public void importEmployee() { List<LegacyEmployee> les; while ((les = getNext100EmployeesFromLegacy()) != nul) { importLegacyEmployees(le); } } @Transactional protected importLegacyEmployees(List<LegacyEmployee> les) { for (LegacyEmployee le: les) { employeeService.store(le); } } } This would actually _not_ when using proxies for the interceptor handling, because calling a method on an own class doesn't invoke the proxyhandler. So is this expected to work? Sure, I could easily move the importLegacyEmployees() to an own service, but that would infringe classic OOP heavily imo. Gurkan, what does the spec say here, I did find nothing. The old spec explicitly mentioned that we need to use subclassing, but I cannot find this anymore. LieGrue, strub