blob: 05837f1d634026e6dee583a398500ae5a6f332b1 [file] [log] [blame]
Pierre De Rop18929942010-01-11 21:48:36 +00001package org.apache.felix.dm.test.annotation;
2
3import org.apache.felix.dm.annotation.api.Composition;
4import org.apache.felix.dm.annotation.api.Service;
5import org.apache.felix.dm.annotation.api.ServiceDependency;
6import org.apache.felix.dm.annotation.api.Start;
7import org.apache.felix.dm.annotation.api.Stop;
8
9@Service(provide = { ServiceProvider2.class })
10public class ServiceProvider2
11{
12 Composite m_composite = new Composite();
13 Sequencer m_sequencer;
14
15 @ServiceDependency(required=false, filter="(foo=bar)")
16 Runnable m_runnable;
17
18 @ServiceDependency(service=Sequencer.class)
19 void bind(Sequencer seq)
20 {
21 m_sequencer = seq;
22 m_sequencer.next(1);
23 }
24
25 @Start
26 void start()
27 {
28 m_sequencer.next(3);
29 m_runnable.run();
30 }
31
32 @Stop
33 void stop()
34 {
35 m_sequencer.next(11);
36 }
37
38 @Composition
39 Object[] getComposition()
40 {
41 return new Object[] { this, m_composite };
42 }
43}
44
45class Composite
46{
47 void bind(Sequencer seq)
48 {
49 seq.next(2);
50 }
51}
52