Hi, yes I confirm it by myself, the @Reference is resolved from the OSGi
service registry.

Specifically, in the old command implementation I was injecting inside the
commands other beans directly taken from the the same beans.xml file. Now I
have to publish as OSGi services.


So in summary, previously  I was using:

<bean id="myService" class="net.cristcost.MyService" />

<command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.0.0";>
<command name="test/hello">
<action class="net.cristcost.HelloCommand">
<property name="myService" ref="myService" />
</action>
</command>
</command-bundle>


Now I've changed the code of net.cristcost.HelloCommand with  @Service and
@Reference on the myService field, plus my blueprint.xml has changed into:

<bean id="myService" class="net.cristcost.MyService" />

<service ref="myService" interface="net.cristcost.MyService" />


...and the instruction <Karaf-Commands>*</Karaf-Commands> on the pom.xml !

Thank you
Cristiano




Il giorno ven 1 apr 2016 alle ore 15:11 Cristiano Costantini <
[email protected]> ha scritto:

> Yeah!
> that's what I'm searching to achieve...
>
> I've finally found the documentation page at
> https://karaf.apache.org/manual/latest/developers-guide/extending.html
>
> and in my initial attempts, I also was missing that it is required to add
> this instruction on the pom:
> <plugin>
>
>     <groupId>org.apache.felix</groupId>
>     <artifactId>maven-bundle-plugin</artifactId>
>     <configuration>
>         <instructions>
>             <Karaf-Commands>*</Karaf-Commands>
>         </instructions>
>     </configuration>
> </plugin>
>
>
> but I still don't understand how @Reference works... it is not explained
> on the guide:
>
> In the Jdbc command example,
>
> @Reference
> private JdbcService jdbcService;
>
> how the JdbcService it injected? is it resolved from OSGi services?
>
> Thank you
> Cristiano
>
>
>
> Il giorno ven 1 apr 2016 alle ore 14:59 Morgan Hautman <
> [email protected]> ha scritto:
>
>> Hi Christiano,
>>
>> If you mean custom commands, the jdbc command is an example:
>> https://github.com/apache/karaf/tree/master/jdbc/src/main/java/org/apache/karaf/jdbc/command
>>
>> Regards,
>> Morgan
>>
>> 2016-04-01 14:26 GMT+02:00 Cristiano Costantini <
>> [email protected]>:
>>
>>> Hi all,
>>> in my application I've developed some shell command using the now
>>> @Deprecated org.apache.karaf.shell.console.OsgiCommandSupport
>>>
>>> Is there any guide or can you suggest me an example on how to implement
>>> the commands with the new API?
>>>
>>> Thanks.
>>> Cristiano
>>>
>>
>>

Reply via email to