summaryrefslogtreecommitdiffstats
path: root/tests/bugs164/pr265695/AspNew.aj
blob: ae99590fb794ff4a3622ace05437cc55efe6a3dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
@interface Secured {
	String value();
}

interface DemoService {
    @Secured("READ")
    void secureMethod();
}


class DemoServiceImpl implements DemoService {
    public void secureMethod() {    }    
}

aspect X {
	// None of these match, the subject at execution(secureMethod()) does not have the annotation
	// see http://www.eclipse.org/aspectj/doc/next/adk15notebook/join-point-modifiers.html
	before(): execution(@Secured! * *Service+.*(..))  {	}
	
	
}

public class AspNew {
	public static void main(String[] args) {
		new DemoServiceImpl().secureMethod();
	}
}