I have a bundle with a blueprint.xml file that contains
managed-service-factory elements.  Inside my java class that is implementing
the managed-service-factory (the "client") I would like to access a service
that is defined inside a different bundle (the "server"). 

The blueprint.xml for the client looks like this: 

<cm:managed-service-factory 
                id="xxxFactory" 
                factory-pid="whatever" 
                interface="name of interface">
                
                <cm:managed-component 
                        class="name.of.my.java.class" 
                        init-method="init" destroy-method="destroy">
                        <cm:managed-properties persistent-id="" 
                                update-strategy="container-managed" />
                        <argument
ref="NickName_for_class_that_implements_the_method_I_want_to_call" />
                        <property name="name" 
                                value="blahBlahBlah" />
                        <property name="description" 
                                value="yadayada" />
... 
        </cm:managed-component>
        </cm:managed-service-factory>

The blueprint.xml for the service looks like this: 

<bean id="NickName_for_class_that_implements_the_method_I_want_to_call"
class="this_is_the_real_class_name that_contains_the_method"
init-method="init" destroy-method="destroy" />
<service ref="NickName_for_class_that_implements_the_method_I_want_to_call"
interface="the_name_of_the_interface_for_the_class_i_want_to_call"/>

In my client class, name.of.my.java.class, I added a ctor that takes in the
NickName_for_class_that_implements_the_method_I_want_to_call.  The code in
the client class to call the method compiles successfully.  I have a log
statement before it calls the method and a log statement after the method.
When the code executes, I see in my karaf.log file that the method is about
to be called and then NOTHING after that. 

This is a new job for me with existing code that I am trying to understand
and modify.  I can not change the existing infrastructure.  I must
understand how the code is working and make minor modifications.  It is not
possible for me to install different tools that might be more evolved. 

If you can point me towards some examples of clients that are configured
with managed-service-factory that are calling services that are implemented
in a different bundle that will help me to understand what to change to make
this work. 

 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to