Here's something that will solve your problem, use AspectJ.

On Tue, May 11, 2010 at 2:51 AM, Mark Struberg <strub...@yahoo.de> wrote:
> Oki let me rephrase: I'd like to know if the spec (or Gavin) intends to 
> define this behaviour or if it is 'intentionally left undefined'.
>
> LieGrue,
> strub
>
> --- On Tue, 5/11/10, Gurkan Erdogdu <gurkanerdo...@yahoo.com> wrote:
>
>> From: Gurkan Erdogdu <gurkanerdo...@yahoo.com>
>> Subject: Re: Need to switch to subclassing?
>> To: dev@openwebbeans.apache.org
>> Date: Tuesday, May 11, 2010, 6:47 AM
>> >>>>Such things should
>> work the same in Weld, CanDI, OWB and all other
>> JSR-299 containers
>> Mmmm, I am not the same. Java EE specifications do not
>> explicitly define some behaviors. Containers could implement
>> those areas with their own way but they are all required to
>> pass the "Java EE TCK". Therefore, one behavior in one
>> container may be differently functioned from other
>> containers. This is mostly observed on container specific
>> security managements.
>>
>> This is the main motivation behind the TCKs.
>>
>>
>> Thanks;
>>
>> --Gurkan
>>
>>
>> ________________________________
>> From: Mark Struberg <strub...@yahoo.de>
>> To: dev@openwebbeans.apache.org
>> Sent: Tue, May 11, 2010 9:22:11 AM
>> Subject: Re: Need to switch to subclassing?
>>
>> I could not find this explicitly stated in the EJB spec
>> neither - so maybe OpenEJB needs a fix too? :D
>>
>> Nah, just like to know what the 299 spec intends. Such
>> things should work the same in Weld, CanDI, OWB and all
>> other JSR-299 containers. I bet there are only very few
>> developers (users!) out there which would find a bug caused
>> by such a behaviour.
>>
>> So my main concern is not the behaviour itself, but that
>> it's currently not really well defined how it should
>> behave.
>>
>> I'll post this also on the weld list to get a feeling what
>> they expect it to do.
>>
>> LieGrue,
>> strub
>>
>> --- On Tue, 5/11/10, Gurkan Erdogdu <gurkanerdo...@yahoo.com>
>> wrote:
>>
>> > From: Gurkan Erdogdu <gurkanerdo...@yahoo.com>
>> > Subject: Re: Need to switch to subclassing?
>> > To: dev@openwebbeans.apache.org
>> > Date: Tuesday, May 11, 2010, 6:11 AM
>> > This will also not work on EJB
>> > containers. For example, in EJB Hello
>> >
>> > @Interceptors(MyInterceptor.class)
>> > public Hello implemenet IHello{
>> >
>> >       public void method1(){
>> >
>>    method2();
>> >      }
>> >
>> >       public void method2(){
>> >
>>    .......
>> >      }
>> > }
>> >
>> > @Local
>> > public interface IHello{
>> >      public void method1();
>> >      public void method2();
>> > }
>> >
>> > main(){
>> >     IHello proxy = getting from
>> intitial context
>> >     proxy.method1();
>> > }
>> >
>> >
>> > Calling method2() from method1() does not trigger
>> > interception. Interceptor is called ones when client
>> calls
>> > method1() on bean proxy. You could try it on OpenEJB
>> for
>> > example
>> >
>> > Thanks;
>> >
>> > Gurkan
>> >
>> >
>> >
>> > ________________________________
>> > From: Mark Struberg <strub...@yahoo.de>
>> > To: dev@openwebbeans.apache.org
>> > Sent: Tue, May 11, 2010 8:30:15 AM
>> > 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
>> >
>> >
>>
>>
>
>
>
>

Reply via email to