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