You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hivemind.apache.org by "James Carman (JIRA)" <hi...@jakarta.apache.org> on 2005/08/17 16:01:54 UTC

[jira] Commented: (HIVEMIND-54) Request for built-in support for Hibernate in HiveMind lib

    [ http://issues.apache.org/jira/browse/HIVEMIND-54?page=comments#action_12319022 ] 

James Carman commented on HIVEMIND-54:
--------------------------------------

I'm +1 for closing this issue.  Hibernate-specific stuff should go into external helper libraries like hiveutils, or whatever Jean-Francois is calling it now. :-)  He's done a lot of cool work in that project that others could leverage.

> Request for built-in support for Hibernate in HiveMind lib
> ----------------------------------------------------------
>
>          Key: HIVEMIND-54
>          URL: http://issues.apache.org/jira/browse/HIVEMIND-54
>      Project: HiveMind
>         Type: New Feature
>   Components: examples, documentation, hivebuild
>     Reporter: Yuxiang Bu
>     Assignee: Howard M. Lewis Ship
>  Attachments: doconline.zip, hivemind-article.zip, hivemind-hibernate.tar.gz, hivemind.hibernate.zip
>
> Request for adding build-in support for Hibernate Session and Transaction management in HiveMind lib.
> Since Hibernate is so popular now, I believe it will become a hot request.
> At first I try to develop an HibernateInterceptorFactory service using javassist.
> But I found javassist cannot support "finally" yet. And the target code like this: 
>     boolean isTransactionBegunInThisMethod = false;
>     try {
>         isTransactionBegunInThisMethod = tm.beginTransaction();
>         Object result = _inner....
>         if (isTransactionBegunInThisMethod)
>             tm.commitTransaction();
>         return result;
>     } finally {
>         if (isTransactionBegunInThisMethod)
>             tm.rollbackTransaction();
>     }
> And I cannot develop similar codes in javassist.
> Then I developed an Interceptor with JDK proxy.
> However, the interceptor cannot be used after HiveMind LoggingInterceptor.
> The Registry successfully applies my HibernateInterceptor to service but fail to apply the Logging Interceptor.
> org.apache.hivemind.ApplicationRuntimeException: Unable to construct service doconline.Adder: Unable to lookup $Proxy0: $Proxy0
> 	at org.apache.hivemind.impl.servicemodel.AbstractServiceModelImpl.constructNewServiceImplementation(AbstractServiceModelImpl.java:156)
> ......
> Caused by: org.apache.hivemind.ApplicationRuntimeException: Unable to lookup $Proxy0: $Proxy0
> 	at org.apache.hivemind.service.impl.CtClassSource.getCtClass(CtClassSource.java:60)
> 	at org.apache.hivemind.service.impl.ClassFabImpl.addField(ClassFabImpl.java:71)
> 	at org.apache.hivemind.service.impl.LoggingInterceptorFactory.createInfrastructure(LoggingInterceptorFactory.java:236)
> ......
> Caused by: javassist.NotFoundException: $Proxy0
> 	at javassist.ClassPoolTail.openClassfile(ClassPoolTail.java:300)
> 	at javassist.ClassPoolTail.checkClassName(ClassPoolTail.java:177)
> 	at javassist.ClassPool.checkClassName(ClassPool.java:709)
> 	at javassist.ClassPool.get0(ClassPool.java:572)
> 	at javassist.ClassPool.get(ClassPool.java:561)
> 	at org.apache.hivemind.service.impl.CtClassSource.getCtClass(CtClassSource.java:56)
> 	... 48 more
> The problem seems occurs when javassist want to find the class file in classpath but cannot find it( Of course it cannot ).
> If I put Transaction Interceptor before the Logging Interceptor, all works well.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: hivemind-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: hivemind-dev-help@jakarta.apache.org