package com.vci.transaction;
|
|
import org.jbpm.api.JbpmException;
|
import org.jbpm.api.cmd.Command;
|
import org.jbpm.pvm.internal.env.EnvironmentImpl;
|
import org.jbpm.pvm.internal.svc.Interceptor;
|
import org.jbpm.pvm.internal.tx.StandardTransaction;
|
|
public class JBPMTransactionInterceptor extends Interceptor {
|
|
public <T> T execute(Command<T> command) {
|
EnvironmentImpl environment = EnvironmentImpl.getCurrent();
|
if (environment == null) {
|
throw new JbpmException("no environment for managing hibernate transaction");
|
}
|
|
StandardTransaction standardTransaction = (StandardTransaction)environment.get(StandardTransaction.class);
|
if (standardTransaction == null) {
|
throw new JbpmException("no standard-transaction in environment");
|
}
|
try
|
{
|
return this.next.execute(command);
|
}
|
catch (RuntimeException e)
|
{
|
throw e;
|
}
|
finally {
|
}
|
}
|
|
}
|