blob: 05837f1d634026e6dee583a398500ae5a6f332b1 [file] [log] [blame]
package org.apache.felix.dm.test.annotation;
import org.apache.felix.dm.annotation.api.Composition;
import org.apache.felix.dm.annotation.api.Service;
import org.apache.felix.dm.annotation.api.ServiceDependency;
import org.apache.felix.dm.annotation.api.Start;
import org.apache.felix.dm.annotation.api.Stop;
@Service(provide = { ServiceProvider2.class })
public class ServiceProvider2
{
Composite m_composite = new Composite();
Sequencer m_sequencer;
@ServiceDependency(required=false, filter="(foo=bar)")
Runnable m_runnable;
@ServiceDependency(service=Sequencer.class)
void bind(Sequencer seq)
{
m_sequencer = seq;
m_sequencer.next(1);
}
@Start
void start()
{
m_sequencer.next(3);
m_runnable.run();
}
@Stop
void stop()
{
m_sequencer.next(11);
}
@Composition
Object[] getComposition()
{
return new Object[] { this, m_composite };
}
}
class Composite
{
void bind(Sequencer seq)
{
seq.next(2);
}
}