Commit a07079f1 authored by Brian Long's avatar Brian Long
Browse files

fix RetryingTransactionAspect

parent fd8e1535
Loading
Loading
Loading
Loading
+16 −13
Original line number Diff line number Diff line
@@ -9,9 +9,6 @@ import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.service.transaction.TransactionService;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.DeclarePrecedence;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,7 +38,6 @@ import com.inteligr8.alfresco.annotations.util.TransactionalAnnotationAdapter;
 * @see org.springframework.transaction.annotation.Transactional
 * @see com.inteligr8.alfresco.annotations.TransactionalRetryable
 */
@DeclarePrecedence("com.inteligr8.alfresco.annotations.aspect.AuthorizedAspect, com.inteligr8.alfresco.annotations.aspect.RetryingTransactionAspect")
public abstract class AbstractRetryingTransactionAspect {
	
	private final Logger logger = LoggerFactory.getLogger(this.getClass());
@@ -54,17 +50,24 @@ public abstract class AbstractRetryingTransactionAspect {
	
	public abstract String getJtaInterfaceName();
	
	@Pointcut("@annotation(org.springframework.transaction.annotation.Transactional) && execution(* *(..))")
	public void isTransactionalAnnotated() {
	}
	/**
	 * A @Pointcunt annotation is not recognized in super classes.
	 */
	//@Pointcut("@annotation(org.springframework.transaction.annotation.Transactional) && execution(* *(..))")
	public abstract void isTransactionalAnnotated();
	
	public abstract void isJtaTransactionalAnnotated();

	@Pointcut("@annotation(com.inteligr8.alfresco.annotations.TransactionalRetryable) && execution(* *(..))")
	public void isTransactionalRetryableAnnotated() {
	}
	/**
	 * A @Pointcunt annotation is not recognized in super classes.
	 */
	//@Pointcut("@annotation(com.inteligr8.alfresco.annotations.TransactionalRetryable) && execution(* *(..))")
	public abstract void isTransactionalRetryableAnnotated();

	@Around("isTransactionalAnnotated() || isJtaTransactionalAnnotated() || isTransactionalRetryableAnnotated()")
	/**
	 * An @Around annotation is not recognized in super classes.
	 */
	//@Around("isTransactionalAnnotated() || isJtaTransactionalAnnotated() || isTransactionalRetryableAnnotated()")
	public Object retryingTransactional(ProceedingJoinPoint joinPoint) throws Throwable {
		this.logger.trace("retryingTransactional({})", joinPoint);
		
+0 −2
Original line number Diff line number Diff line
@@ -13,7 +13,5 @@
		<aspect name="com.inteligr8.alfresco.annotations.aspect.NodeTypeAspect" />
		<aspect name="com.inteligr8.alfresco.annotations.aspect.NodeAspectAspect" />
		<aspect name="com.inteligr8.alfresco.annotations.aspect.ChildIsPrimaryAspect" />
		
		<aspect name="com.inteligr8.alfresco.annotations.aspect.RetryingTransactionAspect" />
	</aspects>
</aspectj>
 No newline at end of file
+17 −0
Original line number Diff line number Diff line
package com.inteligr8.alfresco.annotations.aspect;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.DeclarePrecedence;
import org.aspectj.lang.annotation.Pointcut;

import jakarta.transaction.Transactional;
@@ -9,6 +12,7 @@ import jakarta.transaction.Transactional;
 * @see jakarta.transaction.Transactional
 */
@Aspect
@DeclarePrecedence("com.inteligr8.alfresco.annotations.aspect.AuthorizedAspect, com.inteligr8.alfresco.annotations.aspect.RetryingTransactionAspect")
public class RetryingTransactionAspect extends AbstractRetryingTransactionAspect {
	
	@Override
@@ -16,8 +20,21 @@ public class RetryingTransactionAspect extends AbstractRetryingTransactionAspect
		return Transactional.class.getName();
	}
	
	@Pointcut("@annotation(org.springframework.transaction.annotation.Transactional) && execution(* *(..))")
	public void isTransactionalAnnotated() {
	}
	
	@Pointcut("@annotation(jakarta.transaction.Transactional) && execution(* *(..))")
	public void isJtaTransactionalAnnotated() {
	}
	
	@Pointcut("@annotation(com.inteligr8.alfresco.annotations.TransactionalRetryable) && execution(* *(..))")
	public void isTransactionalRetryableAnnotated() {
	}
	
	@Around("isTransactionalAnnotated() || isJtaTransactionalAnnotated() || isTransactionalRetryableAnnotated()")
	public Object retryingTransactional(ProceedingJoinPoint joinPoint) throws Throwable {
		return super.retryingTransactional(joinPoint);
	}

}
+5 −0
Original line number Diff line number Diff line
<aspectj>
	<aspects>
		<aspect name="com.inteligr8.alfresco.annotations.aspect.RetryingTransactionAspect" />
	</aspects>
</aspectj>
 No newline at end of file
+17 −0
Original line number Diff line number Diff line
package com.inteligr8.alfresco.annotations.aspect;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.DeclarePrecedence;
import org.aspectj.lang.annotation.Pointcut;

/**
 * @see javax.transaction.Transactional
 */
@Aspect
@DeclarePrecedence("com.inteligr8.alfresco.annotations.aspect.AuthorizedAspect, com.inteligr8.alfresco.annotations.aspect.RetryingTransactionAspect")
public class RetryingTransactionAspect extends AbstractRetryingTransactionAspect {
	
	@Override
@@ -14,8 +18,21 @@ public class RetryingTransactionAspect extends AbstractRetryingTransactionAspect
		return javax.transaction.Transactional.class.getName();
	}
	
	@Pointcut("@annotation(org.springframework.transaction.annotation.Transactional) && execution(* *(..))")
	public void isTransactionalAnnotated() {
	}
	
	@Pointcut("@annotation(javax.transaction.Transactional) && execution(* *(..))")
	public void isJtaTransactionalAnnotated() {
	}
	
	@Pointcut("@annotation(com.inteligr8.alfresco.annotations.TransactionalRetryable) && execution(* *(..))")
	public void isTransactionalRetryableAnnotated() {
	}
	
	@Around("isTransactionalAnnotated() || isJtaTransactionalAnnotated() || isTransactionalRetryableAnnotated()")
	public Object retryingTransactional(ProceedingJoinPoint joinPoint) throws Throwable {
		return super.retryingTransactional(joinPoint);
	}

}
Loading