The following issue has been updated:

    Updater: James Carman (mailto:[EMAIL PROTECTED])
       Date: Sun, 3 Oct 2004 4:51 PM
    Comment:
Hey, guys.  Here's a sneak peak of the code that I'm writing for TSS.com about 
HiveMind.  It contains code that I've been working on which integrates 
Hibernate and HiveMind.  I would love to have any suggestions, comments.  This 
zip file contains an Ant build file.  You should modify the build.properties 
file (database settings, deploy location, etc) if you want to actually install 
and run the example webapp.  You'll need to run the "get-dependencies" task 
first (hopefully you're not behind a proxy server, because I didn't account for 
that yet).  This is an example of what I have in mind with respect to support 
for Hibernate in HiveMind.  Of course, we might want to change the names of 
some of the interfaces/classes (to protect the innocent).  One thing I don't 
particularly like is the duplication of code between the TransactionInterceptor 
(a service interceptor) and TransactionFilter (a servlet filter) classes, but I 
think it's the easiest way to implement what we need without adding new 
classes/interfaces.  I created a class called HibernateSessionWrapper which 
wraps a Hibernate session and provides many of the common operations you might 
need WITHOUT the checked exceptions (they throw runtime exceptions instead).  
Anyway, please check it out and let me know what you think.  
    Changes:
             Attachment changed to hivemind-article.zip
    ---------------------------------------------------------------------
For a full history of the issue, see:

  http://issues.apache.org/jira/browse/HIVEMIND-54?page=history

---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/browse/HIVEMIND-54

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: HIVEMIND-54
    Summary: Request for built-in support for Hibernate in HiveMind lib
       Type: New Feature

     Status: Open
   Priority: Major

    Project: HiveMind
 Components: 
             documentation
             examples
             hivebuild

   Assignee: Howard M. Lewis Ship
   Reporter: Yuxiang Bu

    Created: Mon, 13 Sep 2004 2:24 AM
    Updated: Sun, 3 Oct 2004 4:51 PM

Description:
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.


---------------------------------------------------------------------
JIRA INFORMATION:
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

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


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

Reply via email to