Hi Milen, effective means that it expects a service available in the registry. So, if ComponentFactory is preset in the registry (you can check with the ls command), it should work via the feature.
I will provide a fix to Thiago. Regards JB On 03/09/2018 16:40, Milen Dyankov wrote: > This is a shot it the dark and I'm sure JB will correct me if I'm > wrong but I think it may be due to `effective:=active` directive. > > See, if you deploy the `scr` feature and your bundles, they are > activated. But IMHO the application bundle shouldn't resolve because > It has > `Require-Capability: ... > osgi.service;filter:="(objectClass=org.osgi.service.component.ComponentFactory)";effective:=active, > .....` > but there is no such service registered. > > Therefore my guess is that direct deployment of bundles ignores the > requirement as it is `effective:=active` but it is enforced by the > feature/kar resolver. > > Best, > Milen > On Mon, Sep 3, 2018 at 3:55 PM Francois Papon > <francois.pa...@openobject.fr> wrote: >> >> Hi, >> >> I tried yesterday and I'm able to reproduce after migrate on >> maven-bundle-plugin, I will search more deeply for the component-factory ;) >> >> regards, >> >> François Papon >> fpa...@apache.org >> >> Le 03/09/2018 à 17:47, Thiago Moreira (timba) a écrit : >> >> >> Hey guys, were you able to reproduce the problem? >> >> Thanks >> >> Thiago Moreira >> +55 48 99911-6331 >> >> >> On Sun, Sep 2, 2018 at 1:10 PM Jean-Baptiste Onofré <j...@nanthrax.net> >> wrote: >>> >>> Some may see this as a pro, some as a cons ;) >>> >>> Anyway, maven-bundle-plugin uses bnd (library). The bnd plugin allows to >>> delegate the headers definition in the specific file. >>> >>> maven-bundle-plugin defines a lot of default headers based on Maven. >>> That's what I would like to check (the diff in the generated headers). >>> >>> Regards >>> JB >>> >>> On 02/09/2018 17:25, Francois Papon wrote: >>>> You don't have to declare things in a bnd.bnd file, you can define it >>>> directly in the plugin configuration in your pom.xml like this : >>>> >>>> <plugin> >>>> <groupId>org.apache.felix</groupId> >>>> <artifactId>maven-bundle-plugin</artifactId> >>>> <configuration> >>>> <instructions> >>>> <Export-Package> >>>> org.apache.karaf.vineyard.registry.api >>>> </Export-Package> >>>> </instructions> >>>> </configuration> >>>> </plugin> >>>> >>>> regards, >>>> >>>> François Papon >>>> fpa...@apache.org >>>> >>>> Le 02/09/2018 à 19:21, Thiago Moreira (timba) a écrit : >>>>> >>>>> What is the advantages in your point of view of bundle over bnd? >>>>> Maybe I should start another thread... >>>>> >>>>> Thiago Moreira >>>>> +55 48 99911-6331 >>>>> >>>>> >>>>> On Sun, Sep 2, 2018 at 12:12 PM Francois Papon >>>>> <francois.pa...@openobject.fr <mailto:francois.pa...@openobject.fr>> >>>>> wrote: >>>>> >>>>> Sorry, I missed it, I see it now :) >>>>> >>>>> @Component(service = Bot.class, factory = "bot.factory") >>>>> public class BotImpl implements Bot { >>>>> >>>>> regards >>>>> >>>>> François Papon >>>>> fpa...@apache.org <mailto:fpa...@apache.org> >>>>> >>>>> Le 02/09/2018 à 19:09, Francois Papon a écrit : >>>>>> >>>>>> Ok, >>>>>> >>>>>> You should use the maven-bundle-plugin instead of the bnd-plugin, >>>>>> it's more convenient ;) >>>>>> >>>>>> Btw, I see that in your BotApplication class you are searching a >>>>>> service with a component.factory property = bot.factory but I >>>>>> can't see where you are registring this factory >>>>>> >>>>>> @Reference(target = "(component.factory=bot.factory)") >>>>>> protected ComponentFactory factory; >>>>>> >>>>>> regards, >>>>>> >>>>>> François Papon >>>>>> fpa...@apache.org <mailto:fpa...@apache.org> >>>>>> Le 02/09/2018 à 19:01, Thiago Moreira (timba) a écrit : >>>>>>> >>>>>>> Nice! I already look the example. >>>>>>> >>>>>>> Thiago Moreira >>>>>>> +55 48 99911-6331 >>>>>>> >>>>>>> >>>>>>> On Sun, Sep 2, 2018 at 11:57 AM Francois Papon >>>>>>> <francois.pa...@openobject.fr >>>>>>> <mailto:francois.pa...@openobject.fr>> wrote: >>>>>>> >>>>>>> I will take a look ;) >>>>>>> >>>>>>> You can also take a look on the Karaf SCR example to deal >>>>>>> with scr. >>>>>>> >>>>>>> regards, >>>>>>> >>>>>>> François Papon >>>>>>> fpa...@apache.org <mailto:fpa...@apache.org> >>>>>>> >>>>>>> Le 02/09/2018 à 18:01, Thiago Moreira (timba) a écrit : >>>>>>>> >>>>>>>> Hey François, the project is available >>>>>>>> here https://github.com/tmoreira2020/poc-osgi-whiteboard >>>>>>>> >>>>>>>> Thanks >>>>>>>> >>>>>>>> Thiago Moreira >>>>>>>> +55 48 99911-6331 >>>>>>>> >>>>>>>> >>>>>>>> On Sun, Sep 2, 2018 at 10:45 AM francois.papon >>>>>>>> <francois.pa...@openobject.fr >>>>>>>> <mailto:francois.pa...@openobject.fr>> wrote: >>>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> Can you share your bundle and your feature ? >>>>>>>> >>>>>>>> Regards, >>>>>>>> >>>>>>>> François >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Envoyé depuis mon smartphone Samsung Galaxy. >>>>>>>> >>>>>>>> -------- Message d'origine -------- >>>>>>>> De : "Thiago Moreira (timba)" <tmoreira2...@gmail.com >>>>>>>> <mailto:tmoreira2...@gmail.com>> >>>>>>>> Date : 02/09/2018 16:14 (GMT+04:00) >>>>>>>> À : user@karaf.apache.org <mailto:user@karaf.apache.org> >>>>>>>> Objet : Re: Unable to deploy a Karaf kar file >>>>>>>> containing a ComponentFactory OSGi declarative service >>>>>>>> >>>>>>>> >>>>>>>> I have tried with Karaf 4.2.1 without lucky. My steps: >>>>>>>> >>>>>>>> 1. Unzip the bundle >>>>>>>> 2. Start with karaf command >>>>>>>> 3. Build the project with mvn clean install >>>>>>>> 4. Install the kar file >>>>>>>> 1. Copy the kar file >>>>>>>> br.com.thiagomoreira.kar-1.0.0-SNAPSHOT.kar to >>>>>>>> the deploy folder >>>>>>>> 2. Or use the kar:install command >>>>>>>> 5. Logs and console prints the exception: *Unable to >>>>>>>> resolve >>>>>>>> br.com.thiagomoreira.application/1.0.0.201809021204: >>>>>>>> missing >>>>>>>> requirement >>>>>>>> [br.com.thiagomoreira.application/1.0.0.201809021204] >>>>>>>> osgi.service; >>>>>>>> >>>>>>>> filter:="(objectClass=org.osgi.service.component.ComponentFactory)"; >>>>>>>> effective:=active* >>>>>>>> >>>>>>>> I have tried to install SCR feature before the kar >>>>>>>> fail too, without lucky. What I'm missing? >>>>>>>> >>>>>>>> Yes, I was using ServiceMix 7.0.1 but now I switched >>>>>>>> to Karaf 4.2.1 (after your reply in the ServiceMix >>>>>>>> mailing list) >>>>>>>> >>>>>>>> Thanks >>>>>>>> >>>>>>>> Thiago Moreira >>>>>>>> +55 48 99911-6331 >>>>>>>> >>>>>>>> >>>>>>>> On Sun, Sep 2, 2018 at 1:53 AM Jean-Baptiste Onofré >>>>>>>> <j...@nanthrax.net <mailto:j...@nanthrax.net>> wrote: >>>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> I tried on both Karaf 4.1.6 and Karaf 4.2.1, and it >>>>>>>> works fine for me: >>>>>>>> the SCR feature is installed and my SCR bundle >>>>>>>> starts correctly when I >>>>>>>> put the kar in the deploy folder or when I use >>>>>>>> kar:install. >>>>>>>> >>>>>>>> So, you are using SMX 7.0.1 as Karaf version ? >>>>>>>> >>>>>>>> Regards >>>>>>>> JB >>>>>>>> >>>>>>>> On 01/09/2018 19:10, Thiago Moreira (timba) wrote: >>>>>>>> > >>>>>>>> > I need scr as prerequisite to run my app. The >>>>>>>> thing is I'm running a >>>>>>>> > docker that has a vanilla ServiceMix (7.0.1) >>>>>>>> installation and my goal is >>>>>>>> > to be able to deploy a single file with >>>>>>>> everything that I need. >>>>>>>> > >>>>>>>> > I tried to install scr and then deploy the kar >>>>>>>> (via deploy folder) but >>>>>>>> > not lucky >>>>>>>> > >>>>>>>> > Yes, the >>>>>>>> service org.osgi.service.component.ComponentFactory is >>>>>>>> > installed and it is provided by my "Bot >>>>>>>> Implementation" bundle. >>>>>>>> > >>>>>>>> > I didn't understand your last question. Is >>>>>>>> there another way to >>>>>>>> > achieve the installation of everything at once >>>>>>>> (like EARs)? >>>>>>>> > >>>>>>>> > BTW, I'm an OSGi/Karaf/ServiceMix beginner. :D >>>>>>>> > >>>>>>>> > Thiago Moreira >>>>>>>> > +55 48 99911-6331 >>>>>>>> > >>>>>>>> > >>>>>>>> > On Sat, Sep 1, 2018 at 1:28 PM Jean-Baptiste >>>>>>>> Onofré <j...@nanthrax.net <mailto:j...@nanthrax.net> >>>>>>>> > <mailto:j...@nanthrax.net >>>>>>>> <mailto:j...@nanthrax.net>>> wrote: >>>>>>>> > >>>>>>>> > Oh sorry, I missed the cause: the service >>>>>>>> > org.osgi.service.component.ComponentFactory >>>>>>>> is not there ;) >>>>>>>> > >>>>>>>> > Why do you have as a prerequisite ? >>>>>>>> > >>>>>>>> > I guess that if you install the scr feature >>>>>>>> before the kar it works fine >>>>>>>> > right ? >>>>>>>> > >>>>>>>> > Can you check if you have the >>>>>>>> ComponentFactory service ? >>>>>>>> > >>>>>>>> > By the way, why did you define the >>>>>>>> requirement in your bundle ? >>>>>>>> > >>>>>>>> > Regards >>>>>>>> > JB >>>>>>>> > >>>>>>>> > On 01/09/2018 18:19, Thiago Moreira (timba) >>>>>>>> wrote: >>>>>>>> > > >>>>>>>> > > Hey JB, yes it does. Check it here >>>>>>>> feature.xml >>>>>>>> > > >>>>>>>> > >>>>>>>> >>>>>>>> <https://github.com/tmoreira2020/poc-osgi-whiteboard/blob/master/br.com.thiagomoreira.kar/src/main/feature/feature.xml> >>>>>>>> > > >>>>>>>> > > Thiago Moreira >>>>>>>> > > +55 48 99911-6331 >>>>>>>> > > >>>>>>>> > > >>>>>>>> > > On Sat, Sep 1, 2018 at 1:05 PM >>>>>>>> Jean-Baptiste Onofré >>>>>>>> > <j...@nanthrax.net <mailto:j...@nanthrax.net> >>>>>>>> <mailto:j...@nanthrax.net <mailto:j...@nanthrax.net>> >>>>>>>> > > <mailto:j...@nanthrax.net >>>>>>>> <mailto:j...@nanthrax.net> <mailto:j...@nanthrax.net >>>>>>>> <mailto:j...@nanthrax.net>>>> wrote: >>>>>>>> > > >>>>>>>> > > Hi, >>>>>>>> > > >>>>>>>> > > does the features XML used to create >>>>>>>> the kar contain the scr >>>>>>>> > feature ? >>>>>>>> > > >>>>>>>> > > Basically, as you are using DS, you >>>>>>>> have to install the scr >>>>>>>> > feature. >>>>>>>> > > >>>>>>>> > > Regards >>>>>>>> > > JB >>>>>>>> > > >>>>>>>> > > On 01/09/2018 17:52, Thiago Moreira >>>>>>>> (timba) wrote: >>>>>>>> > > > >>>>>>>> > > > Hey all! Does anyone can help me >>>>>>>> with this question? >>>>>>>> > > > >>>>>>>> > > >>>>>>>> > >>>>>>>> >>>>>>>> https://stackoverflow.com/questions/52118716/unable-to-deploy-a-karaf-kar-file-containing-a-componentfactory-osgi-declarative >>>>>>>> > > > >>>>>>>> > > > Thanks >>>>>>>> > > > >>>>>>>> > > > p.s. I have tried to send the >>>>>>>> question directly to here >>>>>>>> > before but >>>>>>>> > > seems >>>>>>>> > > > that I wasn't properly added to the >>>>>>>> list. Given another try... >>>>>>>> > > > >>>>>>>> > > > Thiago Moreira >>>>>>>> > > > +55 48 99911-6331 >>>>>>>> > > >>>>>>>> > > -- >>>>>>>> > > Jean-Baptiste Onofré >>>>>>>> > > jbono...@apache.org >>>>>>>> <mailto:jbono...@apache.org> >>>>>>>> <mailto:jbono...@apache.org >>>>>>>> <mailto:jbono...@apache.org>> >>>>>>>> > <mailto:jbono...@apache.org >>>>>>>> <mailto:jbono...@apache.org> >>>>>>>> <mailto:jbono...@apache.org >>>>>>>> <mailto:jbono...@apache.org>>> >>>>>>>> > > http://blog.nanthrax.net >>>>>>>> > > Talend - http://www.talend.com >>>>>>>> > > >>>>>>>> > >>>>>>>> > -- >>>>>>>> > Jean-Baptiste Onofré >>>>>>>> > jbono...@apache.org >>>>>>>> <mailto:jbono...@apache.org> >>>>>>>> <mailto:jbono...@apache.org >>>>>>>> <mailto:jbono...@apache.org>> >>>>>>>> > http://blog.nanthrax.net >>>>>>>> > Talend - http://www.talend.com >>>>>>>> > >>>>>>>> >>>>>>>> -- >>>>>>>> Jean-Baptiste Onofré >>>>>>>> jbono...@apache.org <mailto:jbono...@apache.org> >>>>>>>> http://blog.nanthrax.net >>>>>>>> Talend - http://www.talend.com >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >> >> > > -- Jean-Baptiste Onofré jbono...@apache.org http://blog.nanthrax.net Talend - http://www.talend.com