1   package org.daisy.pipeline.tts.impl;
2   
3   import org.daisy.pipeline.tts.TTSRegistry;
4   import org.daisy.pipeline.webservice.restlet.WebServiceExtension;
5   
6   import org.restlet.routing.Router;
7   
8   import org.osgi.service.component.annotations.Component;
9   import org.osgi.service.component.annotations.Reference;
10  import org.osgi.service.component.annotations.ReferenceCardinality;
11  import org.osgi.service.component.annotations.ReferencePolicy;
12  
13  @Component(
14  	name = "tts-engines-web-service-extension",
15  	service = { WebServiceExtension.class }
16  )
17  public class TTSEnginesWebServiceExtension implements WebServiceExtension {
18  
19  	static final String TTS_ENGINES_ROUTE = "/tts-engines";
20  
21  	private TTSRegistry ttsRegistry;
22  
23  	@Reference(
24  		name = "TTSRegistry",
25  		unbind = "-",
26  		service = TTSRegistry.class,
27  		cardinality = ReferenceCardinality.MANDATORY,
28  		policy = ReferencePolicy.STATIC
29  	)
30  	protected void setTTSRegistry(TTSRegistry registry) {
31  		ttsRegistry = registry;
32  	}
33  
34  	public void attachTo(Router router) {
35  		router.getContext().getAttributes().put(TTSEnginesResource.TTS_REGISTRY_KEY, ttsRegistry);
36  		router.attach(TTS_ENGINES_ROUTE, TTSEnginesResource.class);
37  	}
38  }