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_ work 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?
I remember that the old spec explicitly says that we need to use subclassing, but cannot
find this paragraph anymore. So what does the spec require us to do? And what is Weld
going to do?
txs and LieGrue,
strub