From 1cbece39b31c67aa9c8711319c979992b1976536 Mon Sep 17 00:00:00 2001 From: acolyer Date: Mon, 19 Dec 2005 16:54:36 +0000 Subject: [PATCH] merge of RB_V1_5_0 changes back into HEAD --- .../java5-src/org/aspectj/lang/Aspects.java | 190 ++++++++++++++++++ lib/aspectj/lib/aspectjrt.jar | Bin 109157 -> 108661 bytes lib/test/aspectjrt.jar | Bin 109157 -> 108661 bytes .../DeclareParentsInterfaceTest.java | 1 - .../AspectOfWhenAspectNotInIncludeTest.java | 4 +- 5 files changed, 192 insertions(+), 3 deletions(-) create mode 100644 aspectj5rt/java5-src/org/aspectj/lang/Aspects.java diff --git a/aspectj5rt/java5-src/org/aspectj/lang/Aspects.java b/aspectj5rt/java5-src/org/aspectj/lang/Aspects.java new file mode 100644 index 000000000..e82320c2e --- /dev/null +++ b/aspectj5rt/java5-src/org/aspectj/lang/Aspects.java @@ -0,0 +1,190 @@ +/******************************************************************************* + * Copyright (c) 2005 Contributors. + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution and is available at + * http://eclipse.org/legal/epl-v10.html + * + * Contributors: + * initial implementation Alexandre Vasseur + * generic signature update Adrian Colyer + *******************************************************************************/ +package org.aspectj.lang; + + +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.lang.reflect.InvocationTargetException; + +/** + * Handles generic aspectOf method when those are not available in the aspects but added later on + * thru load time weaving. + *

+ * Aspects.aspectOf(..) is doing reflective calls to the aspect aspectOf, so for better performance + * consider using ajc compilation of the aspects and using them as a binary dependancies in your project. + * + * @author Alexandre Vasseur + */ +public class Aspects { + + private final static Class[] EMPTY_CLASS_ARRAY = new Class[0]; + private final static Class[] PEROBJECT_CLASS_ARRAY = new Class[]{Object.class}; + private final static Class[] PERTYPEWITHIN_CLASS_ARRAY = new Class[]{Class.class}; + private final static Object[] EMPTY_OBJECT_ARRAY = new Object[0]; + private final static String ASPECTOF = "aspectOf"; + private final static String HASASPECT = "hasAspect"; + + /** + * Returns the singleton aspect or the percflow / percflowbelow associated with the current thread + * + * @param aspectClass + * @return + * @throws NoAspectBoundException if no such aspect + */ + public static T aspectOf(Class aspectClass) throws NoAspectBoundException { + try { + return (T) getSingletonOrThreadAspectOf(aspectClass).invoke(null, EMPTY_OBJECT_ARRAY); + } catch (InvocationTargetException e) { + //FIXME asc Highly temporary change to see what the build makes of it - dont use 1.4 APIs + throw new NoAspectBoundException(aspectClass.getName(), e);//e.getCause()); + } catch (Exception e) { + throw new NoAspectBoundException(aspectClass.getName(), e); + } + } + + /** + * Returns the perthis / pertarget aspect + * @param aspectClass + * @param perObject + * @return + * @throws NoAspectBoundException if no such aspect, or no aspect bound + */ + public static T aspectOf(Class aspectClass, Object perObject) throws NoAspectBoundException { + try { + return (T) getPerObjectAspectOf(aspectClass).invoke(null, new Object[]{perObject}); + } catch (InvocationTargetException e) { + //FIXME asc Highly temporary change to see what the build makes of it - dont use 1.4 APIs + throw new NoAspectBoundException(aspectClass.getName(), e);//e.getCause()); + } catch (Exception e) { + throw new NoAspectBoundException(aspectClass.getName(), e); + } + } + + /** + * Returns the pertypewithin aspect + * @param aspectClass + * @param perTypeWithin class + * @return + * @throws NoAspectBoundException if no such aspect, or no aspect bound + */ + public static T aspectOf(Class aspectClass, Class perTypeWithin) throws NoAspectBoundException { + try { + return (T) getPerTypeWithinAspectOf(aspectClass).invoke(null, new Object[]{perTypeWithin}); + } catch (InvocationTargetException e) { +// FIXME asc Highly temporary change to see what the build makes of it - dont use 1.4 APIs + throw new NoAspectBoundException(aspectClass.getName(), e);//e.getCause()); + } catch (Exception e) { + throw new NoAspectBoundException(aspectClass.getName(), e); + } + } + + /** + * Returns true if singleton aspect or percflow / percflowbelow aspect is bound + * + * @param aspectClass + * @return + * @throws NoAspectBoundException if not bound + */ + public static boolean hasAspect(Class aspectClass) throws NoAspectBoundException { + try { + return ((Boolean)getSingletonOrThreadHasAspect(aspectClass).invoke(null, EMPTY_OBJECT_ARRAY)).booleanValue(); + } catch (Exception e) { + return false; + } + } + + /** + * Returns true if the perthis / pertarget aspect is bound + * @param aspectClass + * @param perObject + * @return + * @throws NoAspectBoundException if not bound + */ + public static boolean hasAspect(Class aspectClass, Object perObject) throws NoAspectBoundException { + try { + return ((Boolean)getPerObjectHasAspect(aspectClass).invoke(null, new Object[]{perObject})).booleanValue(); + } catch (Exception e) { + return false; + } + } + + /** + * Returns true if the pertypewithin aspect is bound + * @param aspectClass + * @param perTypeWithin class + * @return + * @throws NoAspectBoundException if not bound + */ + public static boolean hasAspect(Class aspectClass, Class perTypeWithin) throws NoAspectBoundException { + try { + return ((Boolean)getPerTypeWithinHasAspect(aspectClass).invoke(null, new Object[]{perTypeWithin})).booleanValue(); + } catch (Exception e) { + return false; + } + } + + // -- aspectOf + + private static Method getSingletonOrThreadAspectOf(Class aspectClass) throws NoSuchMethodException { + Method method = aspectClass.getDeclaredMethod(ASPECTOF, EMPTY_CLASS_ARRAY); + return checkAspectOf(method, aspectClass); + } + + private static Method getPerObjectAspectOf(Class aspectClass) throws NoSuchMethodException { + Method method = aspectClass.getDeclaredMethod(ASPECTOF, PEROBJECT_CLASS_ARRAY); + return checkAspectOf(method, aspectClass); + } + + private static Method getPerTypeWithinAspectOf(Class aspectClass) throws NoSuchMethodException { + Method method = aspectClass.getDeclaredMethod(ASPECTOF, PERTYPEWITHIN_CLASS_ARRAY); + return checkAspectOf(method, aspectClass); + } + + private static Method checkAspectOf(Method method, Class aspectClass) throws NoSuchMethodException { + method.setAccessible(true); + if (!method.isAccessible() + || !Modifier.isPublic(method.getModifiers()) + || !Modifier.isStatic(method.getModifiers())) { + throw new NoSuchMethodException(aspectClass.getName() + ".aspectOf(..) is not accessible public static"); + } + return method; + } + + // -- hasAspect + + private static Method getSingletonOrThreadHasAspect(Class aspectClass) throws NoSuchMethodException { + Method method = aspectClass.getDeclaredMethod(HASASPECT, EMPTY_CLASS_ARRAY); + return checkHasAspect(method, aspectClass); + } + + private static Method getPerObjectHasAspect(Class aspectClass) throws NoSuchMethodException { + Method method = aspectClass.getDeclaredMethod(HASASPECT, PEROBJECT_CLASS_ARRAY); + return checkHasAspect(method, aspectClass); + } + + private static Method getPerTypeWithinHasAspect(Class aspectClass) throws NoSuchMethodException { + Method method = aspectClass.getDeclaredMethod(HASASPECT, PERTYPEWITHIN_CLASS_ARRAY); + return checkHasAspect(method, aspectClass); + } + + private static Method checkHasAspect(Method method, Class aspectClass) throws NoSuchMethodException { + method.setAccessible(true); + if (!method.isAccessible() + || !Modifier.isPublic(method.getModifiers()) + || !Modifier.isStatic(method.getModifiers())) { + throw new NoSuchMethodException(aspectClass.getName() + ".hasAspect(..) is not accessible public static"); + } + return method; + } +} diff --git a/lib/aspectj/lib/aspectjrt.jar b/lib/aspectj/lib/aspectjrt.jar index 297c989ac84ee928985f3b1cd9eca171ebef2182..bca2163810927d85c85943d48d5fb31cccc82eae 100644 GIT binary patch delta 6407 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%0AcSMm zbV2(ZJ*GvJ7S7+C;3iiIlMK|Ypi*$KpP=O%4H39c`9FZhg|GwnbbIuRE- zyMhEwa5IqHS5pFsK&^!}oPXT>|cTWLyiYHvXfeaz;1yoVP)C*W3jP?SX z5q5h4BZRwSpp&sTP)7|Iu@2!KZ$L*#Jq^~v+{DJyzyx9FY2boz>NIdbXnO`6Lip?q z$?Kj42T?omEZB?i`&rWOz&WrVwad=|TZD=}B%b#nPzxT zzQ7)}sea%T!ZUv02*Q3pa2(+tf8dU=-X9!5sC^zBLzrK7M5sarE;`NdQl5DeLy+z_o=m#>1px_^J|2cpx3Ng_br6t8Voj<> z{AL=|8-UmUzc;4)xnvUKAwY?Uhha#w2;sXdlKdVFByjwn)s;%2XtC9#l7n0q62&1i zsnl+`(m7$8d;dvw^%`R_%b*flB`5A;&-QS@#Z1oQ zBI3eliqE*Q<68?HxSL!QiW*zUtJ2>gaUt z!4b&+&n(;~EH1%^yv-MIGuumriGkB(ryn6n{c@T!B!v6khC)U0*%&CTgO{0T@6Ew;Qm6!1LLJI&)?WG)t5kMPYqBaC+ERgZNk2 z`(dph(Gp5_HI4~YCK_jW9wx0`j2K~(wrOM=di~o*>};Z;@%bBU9BY_M zR4JF}KK%bG=KOl+y8Bk%$u<8D{#C%COVL6wf zINT+QkVq6JX~f_uIAs5h|7XZhd<}Gs!5@+E?n4!QN9skm0-k>_t)p;zqME;h1&R{# z1kgmYWI;fV-twE{CBhH^4LJy-T9JXdwM~dfiY0qLg?RIJ%=2~1{4=c@yXB7!!M=sV ziD6$kqC1J>v2Z(us@Gy+^s_FUt|gY7=C6qB=*EgEA4IVt@}1VlW^3BfMdV=!hpDVYvjDYt1l>mSysfO5$i#0|W6!Be<^OEFeUICrmPbedizaj(A z^lt+vVURqtZ}HyW#o7f|YnC8|viNr$5YznxIEW4w%=%^)5c&5VnU@UpZt;)~!^r?G z&V)b;B%5a=Qj4%j0aCcHm2r7YHP}}^*w>A037UCHR|6IhAR1D@JR~xVL|pj)Sa65; zupk*Of=FE=mo>9ObC10;ErN>XP~C)0`Rp9zx*6#$NrjSeY$bd>+xx0!GLkeSamET!9*%bN^_}B^v!^YA~0%sM-QGeBtM1OEwKN zDbimk4J^b1@l532!W`&&8oI7wbB&iKT^ryIfbwOh!F*R`Niv)U_z9tOavo*Vp~Z!U zEV{(8baEFCL1cy^aUdI>yxib1oe;iCx(_2u*&=LVej5-Yj520c;!@G5vH;lcIym+0 z57I|~xa|M#tZ^nxd}Rx% zHkJtliQr7I2&={1l$zcJvpewod+!am_~XAARWF|fMND`6Aq5EMEb_5Ghb+6SNef&M zl#qKnBE|NQWb59Up~pFUY1|zi@N_IJ0bjY6q%;5k delta 6921 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 diff --git a/lib/test/aspectjrt.jar b/lib/test/aspectjrt.jar index 297c989ac84ee928985f3b1cd9eca171ebef2182..bca2163810927d85c85943d48d5fb31cccc82eae 100644 GIT binary patch delta 6407 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%0AcSMm zbV2(ZJ*GvJ7S7+C;3iiIlMK|Ypi*$KpP=O%4H39c`9FZhg|GwnbbIuRE- zyMhEwa5IqHS5pFsK&^!}oPXT>|cTWLyiYHvXfeaz;1yoVP)C*W3jP?SX z5q5h4BZRwSpp&sTP)7|Iu@2!KZ$L*#Jq^~v+{DJyzyx9FY2boz>NIdbXnO`6Lip?q z$?Kj42T?omEZB?i`&rWOz&WrVwad=|TZD=}B%b#nPzxT zzQ7)}sea%T!ZUv02*Q3pa2(+tf8dU=-X9!5sC^zBLzrK7M5sarE;`NdQl5DeLy+z_o=m#>1px_^J|2cpx3Ng_br6t8Voj<> z{AL=|8-UmUzc;4)xnvUKAwY?Uhha#w2;sXdlKdVFByjwn)s;%2XtC9#l7n0q62&1i zsnl+`(m7$8d;dvw^%`R_%b*flB`5A;&-QS@#Z1oQ zBI3eliqE*Q<68?HxSL!QiW*zUtJ2>gaUt z!4b&+&n(;~EH1%^yv-MIGuumriGkB(ryn6n{c@T!B!v6khC)U0*%&CTgO{0T@6Ew;Qm6!1LLJI&)?WG)t5kMPYqBaC+ERgZNk2 z`(dph(Gp5_HI4~YCK_jW9wx0`j2K~(wrOM=di~o*>};Z;@%bBU9BY_M zR4JF}KK%bG=KOl+y8Bk%$u<8D{#C%COVL6wf zINT+QkVq6JX~f_uIAs5h|7XZhd<}Gs!5@+E?n4!QN9skm0-k>_t)p;zqME;h1&R{# z1kgmYWI;fV-twE{CBhH^4LJy-T9JXdwM~dfiY0qLg?RIJ%=2~1{4=c@yXB7!!M=sV ziD6$kqC1J>v2Z(us@Gy+^s_FUt|gY7=C6qB=*EgEA4IVt@}1VlW^3BfMdV=!hpDVYvjDYt1l>mSysfO5$i#0|W6!Be<^OEFeUICrmPbedizaj(A z^lt+vVURqtZ}HyW#o7f|YnC8|viNr$5YznxIEW4w%=%^)5c&5VnU@UpZt;)~!^r?G z&V)b;B%5a=Qj4%j0aCcHm2r7YHP}}^*w>A037UCHR|6IhAR1D@JR~xVL|pj)Sa65; zupk*Of=FE=mo>9ObC10;ErN>XP~C)0`Rp9zx*6#$NrjSeY$bd>+xx0!GLkeSamET!9*%bN^_}B^v!^YA~0%sM-QGeBtM1OEwKN zDbimk4J^b1@l532!W`&&8oI7wbB&iKT^ryIfbwOh!F*R`Niv)U_z9tOavo*Vp~Z!U zEV{(8baEFCL1cy^aUdI>yxib1oe;iCx(_2u*&=LVej5-Yj520c;!@G5vH;lcIym+0 z57I|~xa|M#tZ^nxd}Rx% zHkJtliQr7I2&={1l$zcJvpewod+!am_~XAARWF|fMND`6Aq5EMEb_5Ghb+6SNef&M zl#qKnBE|NQWb59Up~pFUY1|zi@N_IJ0bjY6q%;5k delta 6921 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 diff --git a/tests/java5/ataspectj/ataspectj/DeclareParentsInterfaceTest.java b/tests/java5/ataspectj/ataspectj/DeclareParentsInterfaceTest.java index 2823251e5..d21fc7b7d 100644 --- a/tests/java5/ataspectj/ataspectj/DeclareParentsInterfaceTest.java +++ b/tests/java5/ataspectj/ataspectj/DeclareParentsInterfaceTest.java @@ -14,7 +14,6 @@ package ataspectj; import junit.framework.TestCase; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; -import org.aspectj.lang.annotation.DeclareImplements; import org.aspectj.lang.annotation.DeclareParents; import java.util.Arrays; diff --git a/tests/java5/ataspectj/ataspectj/bugs/AspectOfWhenAspectNotInIncludeTest.java b/tests/java5/ataspectj/ataspectj/bugs/AspectOfWhenAspectNotInIncludeTest.java index 5d4437eef..0703215f3 100644 --- a/tests/java5/ataspectj/ataspectj/bugs/AspectOfWhenAspectNotInIncludeTest.java +++ b/tests/java5/ataspectj/ataspectj/bugs/AspectOfWhenAspectNotInIncludeTest.java @@ -15,9 +15,9 @@ import junit.framework.TestCase; import junit.framework.Test; import junit.framework.TestSuite; import ataspectj.TestHelper; +import org.aspectj.lang.annotation.DeclareParents; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.DeclareImplements; import org.aspectj.lang.Aspects; import java.io.Serializable; @@ -36,7 +36,7 @@ public class AspectOfWhenAspectNotInIncludeTest extends TestCase { @Aspect static class TestAspectForAspect { - @DeclareImplements("ataspectj.bugs.AspectOfWhenAspectNotInIncludeTest.TestAspect") + @DeclareParents("ataspectj.bugs.AspectOfWhenAspectNotInIncludeTest.TestAspect") Serializable shouldNotHappenDueToInclude; } -- 2.39.5