Ok, thank you, now it works. It would be nice to add this to the documentation in
https://karaf.apache.org/manual/latest/developers-guide/extending.html Maybe under the examples of a simple command. Something like ------- package org.apache.karaf.shell.samples; import org.apache.karaf.shell.api.action.Action; import org.apache.karaf.shell.api.action.Argument; import org.apache.karaf.shell.api.action.Command; import org.apache.karaf.shell.api.action.Completion; import org.apache.karaf.shell.api.action.lifecycle.Reference; import org.apache.karaf.shell.api.action.lifecycle.Service; @Command(scope = "test", name = "hello", description="Says hello") @Service public class HelloShellCommand implements Action { @Argument(index = 0, name = "name", description = "The name that sends the greet.", required = true, multiValued = false) @Completion(SimpleNameCompleter.class) String name = null; @Reference MyService service; @Override public Object execute() throws Exception { System.out.println("Hello " + name); return null; } } ------ Regards, Erwin. On Thursday, April 14, 2016 06:36:12 AM Jean-Baptiste Onofré wrote: > Hi Erwin, > > you have the @Reference annotation in command: > org.apache.karaf.shell.api.action.lifecycle.Reference > > Same usage as in SCR. > > Regards > JB > > On 04/13/2016 10:38 PM, Erwin Müller wrote: > > Thank you, > > > > but how can I inject services like I do in SCR? Or do I need that to do > > manually via the BundleContext? > > > > ------- > > > > @Reference > > private ParserService parseService; > > > > ------- > > > > Regards, Erwin. > > > > On Wednesday, April 13, 2016 08:57:47 PM Jean-Baptiste Onofré wrote: > >> Hi, > >> > >> You don't need SCR if you use the command annotation. > >> > >> Just use the plugin: > >> <plugin> > >> > >> <groupId>org.apache.karaf.tooling</groupId> > >> <artifactId>karaf-services-maven-plugin</artifactId> > >> > >> </plugin> > >> > >> And no need to use @Component. > >> > >> Regards > >> JB > >> > >> On 04/13/2016 08:49 PM, Erwin Müller wrote: > >>> Hello, > >>> > >>> I setup an OSGi application with Felix SCR and Karaf. But how can I use > >>> the > >>> SCR annotations for Karaf commands? I tried the example command from the > >>> Karaf manual and it works fine, but if I add the Felix SCR annotations, > >>> the command is not working anymore in Karaf. > >>> > >>> I'm pretty new to OSGi but I got everything working (Karaf, Pax Exam, > >>> Sling), I'm only stuck > >>> > >>> ---------- > >>> @Command(scope = "sscontrol", name = "parse", description = "Parses the > >>> specified resource and checks for eventual errors.") > >>> @Service > >>> @Component > >>> public class ParseCommand implements Action { > >>> > >>> @Argument(name = "resource", description = "The resource URI to be > >>> > >>> parsed.", required = true, multiValued = false) > >>> > >>> private String resource; > >>> > >>> @Reference > >>> private ParserService parseService; > >>> > >>> @Override > >>> public Object execute() throws Exception { > >>> > >>> Parser parser = parseService.create(); > >>> SscontrolScript script = parser.parse(toUri(resource)); > >>> return script; > >>> > >>> } > >>> > >>> private URI toUri(String resource) throws URISyntaxException { > >>> > >>> return new URI(resource); > >>> > >>> } > >>> > >>> } > >>> -------- -- Erwin Müller - [email protected] Software Entwickler - (+49) 01577-9505569 Pgp - https://pgp.mit.edu/pks/lookup?op=get&search=0x02E820911DD910FD Meine Seite - http://www.mueller-public.de/ ANRI - http://www.anr-institute.com/
signature.asc
Description: This is a digitally signed message part.
