The design of the hivemind interceptor mechanism doesn't allow the interception of internal service calls. The reason is that
interceptors are proxy based and the proxies work on the interface
of your service only. That is the interface which is returned by hivemind registry. Since internal calls don't use the interface any longer, the won't get intercepted.

To intercept internal calls it would be necessary to manipulate the
bytecode of your service class and intercept class loading.
Not impossible but that's not in hivemind's scope today.

Achim

wu zhi hui (JIRA) wrote:
I can't apply interceptor to my method of serivce
-------------------------------------------------

         Key: HIVEMIND-142
         URL: http://issues.apache.org/jira/browse/HIVEMIND-142
     Project: HiveMind
        Type: Improvement
Components: framework Versions: 1.1 Reporter: wu zhi hui


I found your interceptor is "assigned" to a service not method, a method of my 
service is called can't cause the interceptor executed twice or more ,for example 
,hivemind.LoggingInterceptor is applied on service TestService
{
public void bus1();
public void bus2();
public void bus3();
public void flowBus();
}
the impl is public void flowBus()
  {
  this.bus1();
 this.bus2();
 this.bus3();
 }
the LoggingInterceptor  will only log following:
TestService [DEBUG]   BEGIN flowBus()
TestService [DEBUG]   END flowBus()

but I expect it is the following :
TestService [DEBUG]   BEGIN flowBus()
TestService [DEBUG]   BEGIN bus1()
TestService [DEBUG]   BEGIN bus2()
TestService [DEBUG]   BEGIN bus3()

TestService [DEBUG]   END bus3()
TestService [DEBUG]   END bus2()
TestService [DEBUG]   END bus1()
TestService [DEBUG]   END flowBus()

if I have a business service  ,I define my  service transaction  using HaveUtil 
api
public void createID()           //         transaction define             
:RequriesNew
public void createUser()      //         transaction define             
:Requries


then ,when I call createUser() method (which call createID() internal ) the 
transaction interceptor only applied on createUser
not applied on createID() (in this internal calling ), then my RequriesNew transaction defined falled can you give me some good idea?







---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to