]> git.somenet.org - pub/jan/dst18.git/blob - ass2-aop/src/test/java/dst/ass2/aop/sample/InterruptedPluginExecutable.java
Add template for assignment 2
[pub/jan/dst18.git] / ass2-aop / src / test / java / dst / ass2 / aop / sample / InterruptedPluginExecutable.java
1 package dst.ass2.aop.sample;
2
3 import org.springframework.aop.support.AopUtils;
4
5 import dst.ass2.aop.IPluginExecutable;
6 import dst.ass2.aop.event.EventBus;
7 import dst.ass2.aop.event.EventType;
8 import dst.ass2.aop.logging.Invisible;
9 import dst.ass2.aop.management.Timeout;
10
11 public class InterruptedPluginExecutable implements IPluginExecutable {
12     private boolean interrupted = false;
13
14     @Override
15     @Invisible
16     @Timeout(2000)
17     public void execute() {
18         EventBus eventBus = EventBus.getInstance();
19         eventBus.add(EventType.PLUGIN_START, this, AopUtils.getTargetClass(this).getSimpleName() + " is executed!");
20
21         while (!interrupted) {
22             try {
23                 Thread.sleep(100);
24             } catch (InterruptedException e) {
25                 // Should not happen but is not critical so the stack trace is printed to grab some attention ;-)
26                 e.printStackTrace();
27             }
28         }
29
30         eventBus.add(EventType.PLUGIN_END, this, AopUtils.getTargetClass(this).getSimpleName() + " is finished!");
31     }
32
33     @Override
34     public void interrupted() {
35         interrupted = true;
36     }
37 }