Agreed,
We have a complete new dev guide in progress.
Regards
JB
On 04/14/2016 10:14 AM, Erwin Müller wrote:
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);
}
}
--------
--
Jean-Baptiste Onofré
[email protected]
http://blog.nanthrax.net
Talend - http://www.talend.com