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 }