package org.springframework.roo.file.monitor.polling;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.apache.felix.scr.annotations.ReferencePolicy;
import org.apache.felix.scr.annotations.ReferenceStrategy;
import org.apache.felix.scr.annotations.Service;
import org.springframework.roo.file.monitor.event.FileEventListener;
import org.springframework.roo.file.monitor.polling.PollingFileMonitorService;
/**
* Extends {@link PollingFileMonitorService} by making it available as an OSGi
* component that automatically monitors the environment's
* {@link FileEventListener} components.
*
* @author Ben Alex
* @since 1.1
*/
@Component
@Service
@Reference(name = "fileEventListener", strategy = ReferenceStrategy.EVENT,
policy = ReferencePolicy.DYNAMIC, referenceInterface = FileEventListener.class,
cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE)
public class PollingFileMonitorComponent extends PollingFileMonitorService {
protected void bindFileEventListener(final FileEventListener listener) {
add(listener);
}
protected void unbindFileEventListener(final FileEventListener listener) {
remove(listener);
}
}