By the way, you can login using anonymous/anon.

On 12/11/07, James Carman <[EMAIL PROTECTED]> wrote:
> You might also want to take a look at some of the HiveMind-based
> projects at JavaForge.  In particular, look at:
>
> http://svn.javaforge.com/svn/hivemind/hivemind-transaction
> http://svn.javaforge.com/svn/hivemind/hivemind-hibernate3
>
> Those two projects basically set up the Spring transaction/hibernate
> support for you in HiveMind.  I wrote those two projects after my
> article.
>
> On 12/11/07, Alebu <[EMAIL PROTECTED]> wrote:
> > Hi Kaspar,
> > There is a tutorial on TSS about Hivemind by James Carman.
> > http://www.theserverside.com/tt/articles/article.tss?l=HivemindBuzz
> > And as example of interceptor there is a TransactionInterceptor.
> > Perhaps it can help you to start your own solution.
> > And dont be shy to ask help in mailing list. Hivemind is a great product
> > but lack of
> > documentation is most is thing about it, so others people help is very
> > important.
> >
> > Kaspar Fischer wrote:
> > > Dear Jean-François,
> > >
> > > Thank you for your email. I think I get the basic idea of what you are
> > > saying:
> > > Tell Hivemind to put the "begin()" and "commit()" around the relevant
> > > methods
> > > of Tapestry (and make it call "rollback()" on uncaught exceptions). Is
> > > this
> > > correct, so far?
> > >
> > > One first uncertainty in this is what Tapestry method I should intercept?
> > > It can't be around a single page-request as redirecting, rewinding,
> > > etc. won't
> > > work then. Do you happen to know what might be the right method?
> > >
> > > I've taken a look at HiveTranse and understand parts of it. However, I do
> > > not know where to start -- obviously, I need to inject my own "begin()"
> > > and "commit()" as I am neither running Hibernate, not JDBC, etc.
> > > directly.
> > >
> > > Could you maybe provide a few directions on how to write my HiveMind
> > > interceptor?
> > > Maybe it's easier without HiveTranse first?
> > >
> > > I am sorry if my questions are very basic, and I imagine it's probably
> > > boring
> > > for you. I can promise that I will post a solution to the tapestry
> > > list and
> > > also extend the article I've written at the Alfresco Wiki:
> > >
> > >
> > > http://wiki.alfresco.com/wiki/Alfresco_and_Tapestry_on_the_Same_Tomcat_Installation
> > >
> > >
> > > With this, you're help will hopefully not just help me but others as
> > > well.
> > >
> > > Best,
> > > Kaspar
> > >
> > > On 05.12.2007, at 14:09, Jean-Francois Poilpret wrote:
> > >
> > >> Hi Kaspar,
> > >>
> > >> I think you'd rather take a look at HiveMind interceptors rather than
> > >> factories.
> > >> You can create an Interceptor that will be called before and after any
> > >> method of another service.
> > >> There are several ways to create interceptors in HiveMind, take a
> > >> look at
> > >> HiveMind website to see simple examples.
> > >>
> > >> If you want to see a real-life implementation of such a system you
> > >> may take
> > >> a look at hivetranse (http://hivetranse.sourceforge.net) which
> > >> implements
> > >> the same kind of behavior as you are looking for. I think you could
> > >> quite
> > >> easily adapt one of the numerous hivetranse interceptors (choose one
> > >> -the
> > >> simples- as an example).
> > >>
> > >> Cheers
> > >>
> > >> Jean-Francois
> > >>
> > >> -----Original Message-----
> > >> From: Kaspar Fischer [mailto:[EMAIL PROTECTED]
> > >> Sent: Wednesday, December 05, 2007 7:32 PM
> > >> To: [email protected]
> > >> Subject: Using Hivemind to wrap a transaction around a request
> > >>
> > >> [Note: This is a cross-post; I have initially posted to the list
> > >> [EMAIL PROTECTED] but I guess the issue is more related to
> > >> hivemind,
> > >> so I post here.]
> > >>
> > >> Hi list,
> > >>
> > >> I need to wrap "begin transaction" and "end transaction" actions around
> > >> a task (a Tapestry web request, actually). I've read about Hivemind,
> > >>
> > >>    http://www.nabble.com/hivemind-factory-service-tf251931.html#a704856
> > >>
> > >> and configured a service point (see below). This works very well: my
> > >> transaction is created, but I cannot see when it is ended (committed/
> > >> rolled back).
> > >>
> > >> More precisely, I am struggling with:
> > >>
> > >> * What method is called on the object created by the factory when it
> > >>    is discarded? It is threadDidDiscardService(), right?
> > >>
> > >> * How can I catch exceptions from my actual task so that I can do a
> > >> rollback
> > >>   instead of a commit?
> > >>
> > >> I am new to Hivemind, so please excuse these rather simple questions.
> > >>
> > >> Many thanks for you patience!
> > >> Kaspar
> > >>
> > >> --
> > >> Here's my configuration:
> > >>
> > >>   <service-point
> > >> interface="org.my.tapestry.alfresco.AlfrescoTransactionContext"
> > >> id="alfrescoContext">
> > >>    <invoke-factory service-id="AlfrescoTransactionFactory"
> > >> model="threaded" />
> > >>   </service-point>
> > >>   <service-point
> > >> interface="org.apache.hivemind.ServiceImplementationFactory"
> > >> id="AlfrescoTransactionFactory" parameters-occurs="none">
> > >>    <create-instance
> > >> class="org.my.tapestry.alfresco.AlfrescoTransactionFactory" />
> > >>   </service-point>
> > >>
> > >> Here is my factory:
> > >>
> > >> public class AlfrescoTransactionFactory implements
> > >> ServiceImplementationFactory, Discardable {
> > >>
> > >>    public Object createCoreServiceImplementation
> > >> (ServiceImplementationFactoryParameters factoryParameters)
> > >>    {
> > >>      System.err.println("createCoreServiceImplementation"); // gets
> > >> called!
> > >>      UserTransaction transaction;
> > >>      ServiceRegistry serviceRegistry;
> > >>      try {
> > >>        transaction =
> > >> AlfrescoApplicationInitializer.createAndBeginAuthenticatedTransaction
> > >> (true);
> > >>        serviceRegistry =
> > >> AlfrescoApplicationInitializer.getServiceRegistry();
> > >>      }
> > >>      catch (Exception e) {
> > >>        throw new ApplicationRuntimeException("Could not create an
> > >> Alfresco transactoin.", e);
> > >>      }
> > >>      return new AlfrescoTransactionContextImpl(transaction,
> > >> serviceRegistry);
> > >>    }
> > >>
> > >>    public void threadDidDiscardService()
> > >>    {
> > >>      System.err.println("threadDidDiscardService"); // never called!
> > >>      // ... end the transaction here (todo)
> > >>    }
> > >> }
> > >>
> > >
> > >
> >
> >
>

Reply via email to