1 /*************************************************************************************** 2 * Copyright (c) Jonas BonŽr, Alexandre Vasseur. All rights reserved. * 3 * http://aspectwerkz.codehaus.org * 4 * ---------------------------------------------------------------------------------- * 5 * The software in this package is published under the terms of the LGPL license * 6 * a copy of which has been included with this distribution in the license.txt file. * 7 **************************************************************************************/ 8 package test.staticinitialization; 9 10 import org.codehaus.aspectwerkz.definition.Pointcut; 11 import org.codehaus.aspectwerkz.joinpoint.JoinPoint; 12 import org.codehaus.aspectwerkz.joinpoint.StaticJoinPoint; 13 14 15 /*** 16 * Aspect on staticinitialization pointcut. 17 * 18 * @author <a href="mailto:the_mindstorm@evolva.ro">Alex Popescu</a> 19 * 20 * @Aspect("perClass") 21 */ 22 public class StaticInitializationAspect { 23 /*** 24 * @Expression staticinitialization(test.staticinitialization.ClinitTarget) 25 */ 26 Pointcut staticInitialization; 27 28 /*** 29 * @Expression staticinitialization(@StaticInitializationService) 30 */ 31 Pointcut staticServiceInitialization; 32 33 /*** 34 * @Expression staticinitialization(@StaticInitializationService test.staticinitialization.*) 35 */ 36 Pointcut staticPatternInitialization; 37 38 /*** 39 * @Before staticInitialization 40 */ 41 public void beforeStaticInitializer() { 42 StaticInitializationTest.s_messages.add(StaticInitializationTest.BEFORE_EXPECTED_MESSAGES[0]); 43 } 44 45 /*** 46 * @Before staticServiceInitialization 47 */ 48 public void beforeStaticServiceInitialization() { 49 StaticInitializationTest.s_messages.add(StaticInitializationTest.BEFORE_EXPECTED_MESSAGES[0]); 50 } 51 52 /*** 53 * @Before staticPatternInitialization 54 */ 55 public void beforeStaticPatternInitialization() { 56 StaticInitializationTest.s_messages.add(StaticInitializationTest.BEFORE_EXPECTED_MESSAGES[0]); 57 } 58 59 /*** 60 * @Before staticInitialization 61 */ 62 public void beforeStaticInitialization(StaticJoinPoint sjp) { 63 StaticInitializationTest.s_staticJoinPoints.add(sjp); 64 } 65 66 /*** 67 * @Before staticServiceInitialization 68 */ 69 public void beforeStaticServiceInitialization(StaticJoinPoint sjp) { 70 StaticInitializationTest.s_staticJoinPoints.add(sjp); 71 } 72 73 /*** 74 * @Before staticPatternInitialization 75 */ 76 public void beforeStaticPatternInitialization(StaticJoinPoint sjp) { 77 StaticInitializationTest.s_staticJoinPoints.add(sjp); 78 } 79 80 /*** 81 * @Before staticInitialization 82 */ 83 public void beforeStaticInitialization(JoinPoint jp) { 84 StaticInitializationTest.s_joinPoints.add(jp); 85 } 86 87 /*** 88 * @Before staticServiceInitialization 89 */ 90 public void beforeStaticServiceInitialization(JoinPoint jp) { 91 StaticInitializationTest.s_joinPoints.add(jp); 92 } 93 94 /*** 95 * @Before staticPatternInitialization 96 */ 97 public void beforeStaticPatternInitialization(JoinPoint jp) { 98 StaticInitializationTest.s_joinPoints.add(jp); 99 } 100 101 /*** 102 * @Around staticInitialization 103 */ 104 public Object aroundStaticInitialization(StaticJoinPoint sjp) throws Throwable { 105 StaticInitializationTest.s_messages.add(StaticInitializationTest.BEFORE_EXPECTED_MESSAGES[1]); 106 StaticInitializationTest.s_staticJoinPoints.add(sjp); 107 108 return sjp.proceed(); 109 } 110 111 /*** 112 * @Around staticServiceInitialization 113 */ 114 public Object aroundStaticServiceInitialization(StaticJoinPoint sjp) throws Throwable { 115 StaticInitializationTest.s_messages.add(StaticInitializationTest.BEFORE_EXPECTED_MESSAGES[1]); 116 StaticInitializationTest.s_staticJoinPoints.add(sjp); 117 118 return sjp.proceed(); 119 } 120 121 /*** 122 * @Around staticPatternInitialization 123 */ 124 public Object aroundStaticPatternInitialization(StaticJoinPoint sjp) throws Throwable { 125 StaticInitializationTest.s_messages.add(StaticInitializationTest.BEFORE_EXPECTED_MESSAGES[1]); 126 StaticInitializationTest.s_staticJoinPoints.add(sjp); 127 128 return sjp.proceed(); 129 } 130 131 /*** 132 * @Around staticInitialization 133 */ 134 public Object aroundStaticInitialization(JoinPoint jp) throws Throwable { 135 StaticInitializationTest.s_messages.add(StaticInitializationTest.BEFORE_EXPECTED_MESSAGES[2]); 136 StaticInitializationTest.s_joinPoints.add(jp); 137 138 return jp.proceed(); 139 } 140 141 /*** 142 * @Around staticServiceInitialization 143 */ 144 public Object aroundStaticServiceInitialization(JoinPoint jp) throws Throwable { 145 StaticInitializationTest.s_messages.add(StaticInitializationTest.BEFORE_EXPECTED_MESSAGES[2]); 146 StaticInitializationTest.s_joinPoints.add(jp); 147 148 return jp.proceed(); 149 } 150 151 /*** 152 * @Around staticPatternInitialization 153 */ 154 public Object aroundStaticPatternInitialization(JoinPoint jp) throws Throwable { 155 StaticInitializationTest.s_messages.add(StaticInitializationTest.BEFORE_EXPECTED_MESSAGES[2]); 156 StaticInitializationTest.s_joinPoints.add(jp); 157 158 return jp.proceed(); 159 } 160 161 /*** 162 * @AfterReturning staticInitialization 163 */ 164 public void afterReturningStaticInitializer() { 165 StaticInitializationTest.s_messages.add(StaticInitializationTest.AFTER_EXPECTED_MESSAGES[0]); 166 } 167 168 /*** 169 * @AfterReturning staticServiceInitialization 170 */ 171 public void afterReturningServiceInitializer() { 172 StaticInitializationTest.s_messages.add(StaticInitializationTest.AFTER_EXPECTED_MESSAGES[0]); 173 } 174 175 /*** 176 * @AfterReturning staticPatternInitialization 177 */ 178 public void afterReturningPatternInitializer() { 179 StaticInitializationTest.s_messages.add(StaticInitializationTest.AFTER_EXPECTED_MESSAGES[0]); 180 } 181 182 /*** 183 * @AfterReturning staticInitialization 184 */ 185 public void afterReturningStaticInitializer(StaticJoinPoint sjp) { 186 StaticInitializationTest.s_staticJoinPoints.add(sjp); 187 } 188 189 /*** 190 * @AfterReturning staticServiceInitialization 191 */ 192 public void afterReturningServiceInitializer(StaticJoinPoint sjp) { 193 StaticInitializationTest.s_staticJoinPoints.add(sjp); 194 } 195 196 /*** 197 * @AfterReturning staticPatternInitialization 198 */ 199 public void afterReturningPatternInitializer(StaticJoinPoint sjp) { 200 StaticInitializationTest.s_staticJoinPoints.add(sjp); 201 } 202 203 /*** 204 * @AfterReturning staticInitialization 205 */ 206 public void afterReturningStaticInitializer(JoinPoint jp) { 207 StaticInitializationTest.s_joinPoints.add(jp); 208 } 209 210 /*** 211 * @AfterReturning staticServiceInitialization 212 */ 213 public void afterReturningServiceInitializer(JoinPoint jp) { 214 StaticInitializationTest.s_joinPoints.add(jp); 215 } 216 217 /*** 218 * @AfterReturning staticPatternInitialization 219 */ 220 public void afterReturningPatternInitializer(JoinPoint jp) { 221 StaticInitializationTest.s_joinPoints.add(jp); 222 } 223 224 /*** 225 * @After staticInitialization 226 */ 227 public void afterStaticInitializer() { 228 StaticInitializationTest.s_messages.add(StaticInitializationTest.AFTER_EXPECTED_MESSAGES[1]); 229 } 230 231 /*** 232 * @After staticServiceInitialization 233 */ 234 public void afterServiceInitializer() { 235 StaticInitializationTest.s_messages.add(StaticInitializationTest.AFTER_EXPECTED_MESSAGES[1]); 236 } 237 238 /*** 239 * @After staticPatternInitialization 240 */ 241 public void afterPatternInitializer() { 242 StaticInitializationTest.s_messages.add(StaticInitializationTest.AFTER_EXPECTED_MESSAGES[1]); 243 } 244 245 /*** 246 * @After staticInitialization 247 */ 248 public void afterStaticInitializer(StaticJoinPoint sjp) { 249 StaticInitializationTest.s_staticJoinPoints.add(sjp); 250 } 251 252 /*** 253 * @After staticServiceInitialization 254 */ 255 public void afterServiceInitializer(StaticJoinPoint sjp) { 256 StaticInitializationTest.s_staticJoinPoints.add(sjp); 257 } 258 259 /*** 260 * @After staticPatternInitialization 261 */ 262 public void afterPatternInitializer(StaticJoinPoint sjp) { 263 StaticInitializationTest.s_staticJoinPoints.add(sjp); 264 } 265 266 /*** 267 * @After staticInitialization 268 */ 269 public void afterStaticInitializer(JoinPoint jp) { 270 StaticInitializationTest.s_joinPoints.add(jp); 271 } 272 273 /*** 274 * @After staticServiceInitialization 275 */ 276 public void afterServiceInitializer(JoinPoint jp) { 277 StaticInitializationTest.s_joinPoints.add(jp); 278 } 279 280 /*** 281 * @After staticPatternInitialization 282 */ 283 public void afterPatternInitializer(JoinPoint jp) { 284 StaticInitializationTest.s_joinPoints.add(jp); 285 } 286 }