Implemented class priorities
diff --git a/examples/src/priority/Priority.java b/examples/src/priority/Priority.java
index 7a2224e..9acac7a 100644
--- a/examples/src/priority/Priority.java
+++ b/examples/src/priority/Priority.java
@@ -1,12 +1,13 @@
package priority;
import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
-@Target({METHOD})
+@Target({METHOD, TYPE})
public @interface Priority {
int value() default 0;
}
diff --git a/examples/src/priority/PriorityInterceptor.java b/examples/src/priority/PriorityInterceptor.java
index 1b80847..5853652 100644
--- a/examples/src/priority/PriorityInterceptor.java
+++ b/examples/src/priority/PriorityInterceptor.java
@@ -20,6 +20,12 @@
Priority a1 = mi.getMethod().getMethod().getAnnotation(Priority.class);
if (a1 != null) {
result = a1.value();
+ } else {
+ Class<?> cls = mi.getMethod().getMethod().getDeclaringClass();
+ Priority classPriority = cls.getAnnotation(Priority.class);
+ if (classPriority != null) {
+ result = classPriority.value();
+ }
}
return result;
}
diff --git a/examples/src/priority/PriorityTest.java b/examples/src/priority/PriorityTest.java
index b85996a..51d7290 100644
--- a/examples/src/priority/PriorityTest.java
+++ b/examples/src/priority/PriorityTest.java
@@ -4,18 +4,19 @@
import priority.Priority;
+@Priority(10)
public class PriorityTest {
@Test
- public void b1() { System.out.println("Priority 0");}
+ public void b1() { System.out.println("Default");}
- @Priority(-1)
+ @Priority(-3)
@Test
- public void a1() { System.out.println("Priority -1");}
+ public void a1() { System.out.println("Priority -3");}
- @Priority(-1)
+ @Priority(-3)
@Test
- public void a2() { System.out.println("Priority -1");}
+ public void a2() { System.out.println("Priority -3");}
@Priority(3)
@Test
diff --git a/examples/testng.xml b/examples/testng.xml
index 6765fc1..ef60d3a 100644
--- a/examples/testng.xml
+++ b/examples/testng.xml
@@ -1,6 +1,6 @@
<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
-<suite name="Example" verbose="10">
+<suite name="Example" verbose="1">
<listeners>
<listener class-name="priority.PriorityInterceptor" />