diff --git a/source/test-java/org/alfresco/traitextender/RouteTestExtesnions.java b/source/test-java/org/alfresco/traitextender/RouteTestExtesnions.java new file mode 100644 index 0000000000..70e1a90368 --- /dev/null +++ b/source/test-java/org/alfresco/traitextender/RouteTestExtesnions.java @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2005-2015 Alfresco Software Limited. + * + * This file is part of Alfresco + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see http://www.gnu.org/licenses/. + */ + +package org.alfresco.traitextender; + +import org.aspectj.lang.annotation.AfterThrowing; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.DeclarePrecedence; + +@Aspect +@DeclarePrecedence("org.alfresco.traitextender.RouteTestExtesnions,org.alfresco.traitextender.RouteExtensions") +public class RouteTestExtesnions +{ + @AfterThrowing(pointcut = "execution(@org.alfresco.traitextender.Extend * *(..) throws TestException) && (@annotation(extendAnnotation))", throwing = "ete") + public void intercept(Extend extendAnnotation, ExtensionTargetException ete) throws TestException + { + Throwable exception = AJExtender.asCheckThrowable(ete.getCause(), + TestException.class); + if (exception instanceof TestException) + { + throw (TestException) exception; + } + else + { + throw ete; + } + } +} diff --git a/source/test-java/org/alfresco/traitextender/RunTestExtensions.aj b/source/test-java/org/alfresco/traitextender/RunTestExtensions.aj deleted file mode 100644 index 9e02315eea..0000000000 --- a/source/test-java/org/alfresco/traitextender/RunTestExtensions.aj +++ /dev/null @@ -1,26 +0,0 @@ - -package org.alfresco.traitextender; - -import org.alfresco.traitextender.AJExtender; -import org.alfresco.traitextender.Extend; -import org.alfresco.traitextender.ExtensionTargetException; -import org.alfresco.traitextender.RouteExtensions; - -public aspect RunTestExtensions -{ - declare precedence: RunTestExtensions,RouteExtensions; - - pointcut throwsTestException(Extend meAnnotation):execution(@org.alfresco.traitextender.Extend * *(..) throws TestException) && (@annotation(meAnnotation)); - - after(Extend meAnnotation) throwing(ExtensionTargetException ete) throws TestException :throwsTestException(meAnnotation){ - Throwable exception = AJExtender.asCheckThrowable(ete.getCause(), TestException.class); - if (exception instanceof TestException) - { - throw (TestException) exception; - } - else - { - throw ete; - } - } -} diff --git a/source/test-java/org/alfresco/traitextender/TraitExtenderUnitTestSuite.java b/source/test-java/org/alfresco/traitextender/TraitExtenderUnitTestSuite.java index 8bb6b06482..7beb2280ed 100644 --- a/source/test-java/org/alfresco/traitextender/TraitExtenderUnitTestSuite.java +++ b/source/test-java/org/alfresco/traitextender/TraitExtenderUnitTestSuite.java @@ -1,3 +1,21 @@ +/* + * Copyright (C) 2005-2015 Alfresco Software Limited. + * + * This file is part of Alfresco + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see http://www.gnu.org/licenses/. + */ package org.alfresco.traitextender;