Hi,

On 13 octobre 2014 at 13:35:49, Milen Dyankov (milendyan...@gmail.com) wrote:
Thank you for clarifying Clement! 

The goal it pretty simple. Say I have: 

@Component( 
immediate = true, 
managedservice = "my.service") 
@Provides 
public class MyServiceImpl implements MyService { 

@Property 
protected String someProperty; 
... 
} 

I would like to be able to able to create new instances (register new 
services) by just creating respective my.service-unique_name.cfg files in 
karaf's etc folder. This does not seem to work and up until now I thought 
it's because the ManagedServiceFactory was not created. But if understand 
correctly what you are saying - it should still work just use a different 
approach internally. If that is correct, then must be something else I'm 
doing wrong. I would appreciate any example (a pointer to a project using 
something similar is more than enough) to learn from. 


Remove the ‘managedservice’ attribute exposing a ManagedService and not 
creating new instances. To create new instances, just create a cfg file with 
the given name:

MyServiceImplQualifiedName-id.cfg

The “MyServiceImplQualifiedName” is the qualified name of your class (like 
org.acme.component.MyServiceImpl)

Regards,

Clement





Regards, 
Milen 





On Mon, Oct 13, 2014 at 1:10 PM, Clement Escoffier < 
clement.escoff...@gmail.com> wrote: 

> Hi, 
> 
> You are right, 1.12.0 does not expose ManagedServiceFactory anymore 
> because it uses a ‘configuration tracker’ 
> (org.apache.felix.ipojo.ConfigurationTracker). The documentation is not up 
> to date. However, the feature stay the same. Factory configurations pushed 
> in the config admin create instances et support dynamic reconfiguration. 
> 
> Depending of what you want to do, you can also rely on the Factory service 
> exposed for each @Component. 
> 
> Cheers, 
> 
> Clement 
> 
> On 13 octobre 2014 at 12:02:36, Milen Dyankov (milendyan...@gmail.com) 
> wrote: 
> 
> Hi, 
> can someone point me to an example of using ConfigAdmin's 
> ManagedServiceFactory with iPOJO components, please? 
> 
> The reason I'm asking is, what the docs ( 
> 
> http://felix.apache.org/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/combining-ipojo-and-configuration-admin.html
>  
> ) 
> say: 
> 
> For each (public) component type, a ManagedServiceFactory is published. 
> > For each configurations matching with the component type from the 
> > Configuration Admin, a new component instance is created. 
> 
> 
> does not seem to work for me (iPOJO 1.12.0 in Karaf 3.0.1). No matter what 
> I do, I can't get a "org.osgi.service.cm.ManagedServiceFactory" registered 
> for my component. 
> 
> iPOJO will register "org.osgi.service.cm.ManagedService" for the component 
> if I provide "managedservice = ..... " in the @Component and @Instantiate 
> it! In such case I can indeed use ConfigAdmin to configure the instance. 
> 
> However I couldn't figure out how to instruct iPOJO to register a " 
> ManagedServiceFactory" so that I can later on create new component 
> instances from ConfigAdmin. Am I misinterpreting the docs? Missing 
> something obvious? 
> 
> Regards, 
> Milen 
> 
> 
> -- 
> http://about.me/milen 
> 



-- 
http://about.me/milen 

Reply via email to