fix RetryingTransactionAspect
This commit is contained in:
parent
fd8e1535d5
commit
a07079f17d
@ -9,9 +9,6 @@ import org.alfresco.repo.transaction.RetryingTransactionHelper;
|
|||||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||||
import org.alfresco.service.transaction.TransactionService;
|
import org.alfresco.service.transaction.TransactionService;
|
||||||
import org.aspectj.lang.ProceedingJoinPoint;
|
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.aspectj.lang.reflect.MethodSignature;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@ -41,7 +38,6 @@ import com.inteligr8.alfresco.annotations.util.TransactionalAnnotationAdapter;
|
|||||||
* @see org.springframework.transaction.annotation.Transactional
|
* @see org.springframework.transaction.annotation.Transactional
|
||||||
* @see com.inteligr8.alfresco.annotations.TransactionalRetryable
|
* @see com.inteligr8.alfresco.annotations.TransactionalRetryable
|
||||||
*/
|
*/
|
||||||
@DeclarePrecedence("com.inteligr8.alfresco.annotations.aspect.AuthorizedAspect, com.inteligr8.alfresco.annotations.aspect.RetryingTransactionAspect")
|
|
||||||
public abstract class AbstractRetryingTransactionAspect {
|
public abstract class AbstractRetryingTransactionAspect {
|
||||||
|
|
||||||
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||||
@ -54,17 +50,24 @@ public abstract class AbstractRetryingTransactionAspect {
|
|||||||
|
|
||||||
public abstract String getJtaInterfaceName();
|
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();
|
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(* *(..))")
|
||||||
@Around("isTransactionalAnnotated() || isJtaTransactionalAnnotated() || isTransactionalRetryableAnnotated()")
|
public abstract void isTransactionalRetryableAnnotated();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An @Around annotation is not recognized in super classes.
|
||||||
|
*/
|
||||||
|
//@Around("isTransactionalAnnotated() || isJtaTransactionalAnnotated() || isTransactionalRetryableAnnotated()")
|
||||||
public Object retryingTransactional(ProceedingJoinPoint joinPoint) throws Throwable {
|
public Object retryingTransactional(ProceedingJoinPoint joinPoint) throws Throwable {
|
||||||
this.logger.trace("retryingTransactional({})", joinPoint);
|
this.logger.trace("retryingTransactional({})", joinPoint);
|
||||||
|
|
||||||
|
@ -13,7 +13,5 @@
|
|||||||
<aspect name="com.inteligr8.alfresco.annotations.aspect.NodeTypeAspect" />
|
<aspect name="com.inteligr8.alfresco.annotations.aspect.NodeTypeAspect" />
|
||||||
<aspect name="com.inteligr8.alfresco.annotations.aspect.NodeAspectAspect" />
|
<aspect name="com.inteligr8.alfresco.annotations.aspect.NodeAspectAspect" />
|
||||||
<aspect name="com.inteligr8.alfresco.annotations.aspect.ChildIsPrimaryAspect" />
|
<aspect name="com.inteligr8.alfresco.annotations.aspect.ChildIsPrimaryAspect" />
|
||||||
|
|
||||||
<aspect name="com.inteligr8.alfresco.annotations.aspect.RetryingTransactionAspect" />
|
|
||||||
</aspects>
|
</aspects>
|
||||||
</aspectj>
|
</aspectj>
|
@ -1,6 +1,9 @@
|
|||||||
package com.inteligr8.alfresco.annotations.aspect;
|
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.Aspect;
|
||||||
|
import org.aspectj.lang.annotation.DeclarePrecedence;
|
||||||
import org.aspectj.lang.annotation.Pointcut;
|
import org.aspectj.lang.annotation.Pointcut;
|
||||||
|
|
||||||
import jakarta.transaction.Transactional;
|
import jakarta.transaction.Transactional;
|
||||||
@ -9,6 +12,7 @@ import jakarta.transaction.Transactional;
|
|||||||
* @see jakarta.transaction.Transactional
|
* @see jakarta.transaction.Transactional
|
||||||
*/
|
*/
|
||||||
@Aspect
|
@Aspect
|
||||||
|
@DeclarePrecedence("com.inteligr8.alfresco.annotations.aspect.AuthorizedAspect, com.inteligr8.alfresco.annotations.aspect.RetryingTransactionAspect")
|
||||||
public class RetryingTransactionAspect extends AbstractRetryingTransactionAspect {
|
public class RetryingTransactionAspect extends AbstractRetryingTransactionAspect {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -16,8 +20,21 @@ public class RetryingTransactionAspect extends AbstractRetryingTransactionAspect
|
|||||||
return Transactional.class.getName();
|
return Transactional.class.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Pointcut("@annotation(org.springframework.transaction.annotation.Transactional) && execution(* *(..))")
|
||||||
|
public void isTransactionalAnnotated() {
|
||||||
|
}
|
||||||
|
|
||||||
@Pointcut("@annotation(jakarta.transaction.Transactional) && execution(* *(..))")
|
@Pointcut("@annotation(jakarta.transaction.Transactional) && execution(* *(..))")
|
||||||
public void isJtaTransactionalAnnotated() {
|
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
jakarta/src/main/resources/META-INF/aop.xml
Normal file
5
jakarta/src/main/resources/META-INF/aop.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<aspectj>
|
||||||
|
<aspects>
|
||||||
|
<aspect name="com.inteligr8.alfresco.annotations.aspect.RetryingTransactionAspect" />
|
||||||
|
</aspects>
|
||||||
|
</aspectj>
|
@ -1,12 +1,16 @@
|
|||||||
package com.inteligr8.alfresco.annotations.aspect;
|
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.Aspect;
|
||||||
|
import org.aspectj.lang.annotation.DeclarePrecedence;
|
||||||
import org.aspectj.lang.annotation.Pointcut;
|
import org.aspectj.lang.annotation.Pointcut;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see javax.transaction.Transactional
|
* @see javax.transaction.Transactional
|
||||||
*/
|
*/
|
||||||
@Aspect
|
@Aspect
|
||||||
|
@DeclarePrecedence("com.inteligr8.alfresco.annotations.aspect.AuthorizedAspect, com.inteligr8.alfresco.annotations.aspect.RetryingTransactionAspect")
|
||||||
public class RetryingTransactionAspect extends AbstractRetryingTransactionAspect {
|
public class RetryingTransactionAspect extends AbstractRetryingTransactionAspect {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -14,8 +18,21 @@ public class RetryingTransactionAspect extends AbstractRetryingTransactionAspect
|
|||||||
return javax.transaction.Transactional.class.getName();
|
return javax.transaction.Transactional.class.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Pointcut("@annotation(org.springframework.transaction.annotation.Transactional) && execution(* *(..))")
|
||||||
|
public void isTransactionalAnnotated() {
|
||||||
|
}
|
||||||
|
|
||||||
@Pointcut("@annotation(javax.transaction.Transactional) && execution(* *(..))")
|
@Pointcut("@annotation(javax.transaction.Transactional) && execution(* *(..))")
|
||||||
public void isJtaTransactionalAnnotated() {
|
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
javax/src/main/resources/META-INF/aop.xml
Normal file
5
javax/src/main/resources/META-INF/aop.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<aspectj>
|
||||||
|
<aspects>
|
||||||
|
<aspect name="com.inteligr8.alfresco.annotations.aspect.RetryingTransactionAspect" />
|
||||||
|
</aspects>
|
||||||
|
</aspectj>
|
Loading…
x
Reference in New Issue
Block a user