org.argeo.slc.process,
org.aspectj.lang,
org.aspectj.lang.annotation,
org.argeo.slc.process,
org.aspectj.lang,
org.aspectj.lang.annotation,
+ org.hibernate,
+ org.hibernate.classic,
org.springframework.beans.factory;version="2.5.6.SEC01",
org.springframework.transaction;version="2.5.6.SEC01"
Require-Bundle: org.springframework.orm;bundle-version="2.5.6"
org.springframework.beans.factory;version="2.5.6.SEC01",
org.springframework.transaction;version="2.5.6.SEC01"
Require-Bundle: org.springframework.orm;bundle-version="2.5.6"
package org.argeo.slc.client.aspects;
package org.argeo.slc.client.aspects;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
+import org.hibernate.LockMode;
+import org.hibernate.SessionFactory;
+import org.springframework.orm.hibernate3.HibernateTransactionManager;
+import org.springframework.transaction.PlatformTransactionManager;
@Aspect
public class ContentProviderAspect {
@Aspect
public class ContentProviderAspect {
- // private final static Log log = LogFactory
- // .getLog(ContentProviderAspect.class);
+ private final static Log log = LogFactory
+ .getLog(ContentProviderAspect.class);
+
+ private SessionFactory sessionFactory;
+ private HibernateTransactionManager transactionManager;
- @Around("execution (* getLabel(..))")
+ @Around("execution (* org.argeo.slc.client.core.*.get*(Object, int))")
public Object aroundGetVariable(ProceedingJoinPoint thisJoinPoint)
throws Throwable {
public Object aroundGetVariable(ProceedingJoinPoint thisJoinPoint)
throws Throwable {
- //log.debug("***************** IN THE ASPECT. Before proceed");
+
+ // log.debug("***************** IN THE ASPECT. Before proceed");
// log.debug("We have an open session : "
// + sessionFactory.getCurrentSession().isOpen());
// log.debug("Current transaction is active : "
// + sessionFactory.getCurrentSession().getTransaction()
// .isActive());
// log.debug("We have an open session : "
// + sessionFactory.getCurrentSession().isOpen());
// log.debug("Current transaction is active : "
// + sessionFactory.getCurrentSession().getTransaction()
// .isActive());
- Object o = thisJoinPoint.proceed();
- //log.debug("**************** IN THE ASPECT. After proceed");
- return o;
+ Object o = thisJoinPoint.getArgs()[0];
+ sessionFactory.getCurrentSession().beginTransaction();
+ // reassociate a transient instance with a session (LockMode.NONE).
+ sessionFactory.getCurrentSession().lock(o, LockMode.NONE);
+ Object result = thisJoinPoint.proceed();
+ sessionFactory.getCurrentSession().getTransaction().commit();
+
+ // log.debug("**************** IN THE ASPECT. After proceed");
+ return result;
}
// @Before("methodeTrace()")
}
// @Before("methodeTrace()")
- // public void setSessionFactory(SessionFactory sessionFactory) {
- // this.sessionFactory = sessionFactory;
- // }
- //
- // public void setTransactionManager(
- // PlatformTransactionManager transactionManager) {
- // if (transactionManager instanceof HibernateTransactionManager)
- // this.transactionManager = (HibernateTransactionManager)
- // transactionManager;
- // }
+ public void setSessionFactory(SessionFactory sessionFactory) {
+ this.sessionFactory = sessionFactory;
+ }
+
+ public void setTransactionManager(
+ PlatformTransactionManager transactionManager) {
+ if (transactionManager instanceof HibernateTransactionManager)
+ this.transactionManager = (HibernateTransactionManager) transactionManager;
+ }
- // return se.getStartDate().toString();
+ return se.getStartDate().toString();
// Workaround to insure that we have no Lazy Init PB
// Workaround to insure that we have no Lazy Init PB
- return slcExecutionDao.getSlcExecution(se.getUuid()).getStartDate()
- .toString();
+ // return
+ // slcExecutionDao.getSlcExecution(se.getUuid()).getStartDate()
+ // .toString();
case 1:
return se.getHost();
case 2:
case 1:
return se.getHost();
case 2:
org.argeo.slc.client.aspects,
org.argeo.slc.client.core,
org.argeo.slc.dao.process;version="0.13.0.SNAPSHOT-r3777",
org.argeo.slc.client.aspects,
org.argeo.slc.client.core,
org.argeo.slc.dao.process;version="0.13.0.SNAPSHOT-r3777",
+ org.hibernate,
+ org.hibernate.classic,
org.springframework.aop;version="2.5.6.SEC01",
org.springframework.aop.aspectj.annotation;version="2.5.6.SEC01",
org.springframework.aop.framework;version="2.5.6.SEC01",
org.springframework.aop;version="2.5.6.SEC01",
org.springframework.aop.aspectj.annotation;version="2.5.6.SEC01",
org.springframework.aop.framework;version="2.5.6.SEC01",
<!-- Events -->
<aop:aspectj-autoproxy />
<bean id="contentProviderAspect" class="org.argeo.slc.client.aspects.ContentProviderAspect">
<!-- Events -->
<aop:aspectj-autoproxy />
<bean id="contentProviderAspect" class="org.argeo.slc.client.aspects.ContentProviderAspect">
- <!-- <property name="sessionFactory" ref="sessionFactory" /> <property
- name="transactionManager" ref="transactionManager" /> -->
+ <property name="sessionFactory" ref="sessionFactory" />
+ <property name="transactionManager" ref="transactionManager" />
<reference id="transactionManager"
interface="org.springframework.transaction.PlatformTransactionManager"
context-class-loader="service-provider" />
<reference id="transactionManager"
interface="org.springframework.transaction.PlatformTransactionManager"
context-class-loader="service-provider" />
- <!-- <reference id="sessionFactory" interface="org.hibernate.SessionFactory"
- /> -->
+ <reference id="sessionFactory" interface="org.hibernate.SessionFactory" />
</beans:beans>
\ No newline at end of file
</beans:beans>
\ No newline at end of file