On Tue, 7 Aug 2018 at 20:14, Manfred Baedke <[email protected]> wrote:
> Hi Francesco, > > are you sure you need the factoryPid? > You are right. There is no need to repeat the PID in the `factoryPid` attribute in `@ObjectClassDefinition`. It's sufficient to set `factory` to true in `@Designate`. In summary, the fix seems to be to drop the `factory` attribute from `@Component`. > I found this on migration of config factories from Felix to new OSGi > annotations: > > Felix variation: > https://techrevel.blog/2017/04/12/felix-configuration-factory/ > OSGi variation: > https://techrevel.blog/2017/08/23/osgi-annotations-configuration-factory/ > > On 8/7/2018 8:02 PM, Francesco Mari wrote: > > Hi Manfred, > > Thanks for you suggestion. I'm currently experimenting with dropping the > `factory` attribute from `@Component` and setting the `factoryPid` > attribute in `@ObjectClassDefinition`. This seems to produce the wanted > result in both the component and metatype descriptors. I will run more > tests tomorrow. > > On Tue, 7 Aug 2018 at 19:56, Manfred Baedke <[email protected]> > wrote: > >> Hi Francesco, >> >> I think that you don't want to make this a factory component but instead >> you want to use a factory configuration (the difference being a >> component lifecycle control thing, if I got that right - ask a real OSGi >> expert :)). Just try dropping the factory attribute from the Component >> annotation and you should be fine. >> >> On 8/7/2018 6:32 PM, Francesco Mari wrote: >> > The weird situation I'm looking into is that before my commit (e.g. at >> > 01c07cfec2), the component descriptor for SegmentNodeStoreFactory, >> > generated with the old annotations, contained a declaration like the >> > following (whitespaces included for clarity): >> > >> > <scr:component >> > xmlns:scr="http://www.osgi.org/xmlns/scr/v1.2.0" >> > name="org.apache.jackrabbit.oak.segment.SegmentNodeStoreFactory" >> > configuration-policy="require" >> > activate="activate" >> > deactivate="deactivate"> >> > >> > After my commit, in trunk, using the new annotations, the component >> > descriptor contains the following: >> > >> > <scr:component >> > xmlns:scr="http://www.osgi.org/xmlns/scr/v1.3.0" >> > >> name="org.apache.jackrabbit.oak.segment.SegmentNodeStoreFactory" >> > configuration-policy="require" >> > >> factory="org.apache.jackrabbit.oak.segment.SegmentNodeStoreFactory" >> > activate="activate" >> > deactivate="deactivate"> >> > >> > According to the declarative services specification [1], "a factory >> > component is used if the 'factory' attribute of the 'component' element >> is >> > set to a factory identifier". Isn't then my commit actually fixing the >> > component descriptor? >> > >> > [1]: >> > >> https://osgi.org/specification/osgi.cmpn/7.0.0/service.component.html#service.component-factorycomponent >> > >> > >> > On Tue, 7 Aug 2018 at 16:00, Francesco Mari <[email protected]> >> > wrote: >> > >> >> The issue is weird. The activate method of SegmentNodeStoreFactory is >> not >> >> even called. As far as I know, all the other tests in oak-pojosr are >> >> working correctly. I will look into it. >> >> >> >> On Tue, 7 Aug 2018 at 15:19, Marcel Reutegger >> <[email protected]> <[email protected]> >> >> wrote: >> >> >> >>> Hi, >> >>> >> >>> On 07.08.18 14:57, Davide Giannella wrote: >> >>>> Hello team, there are no blockers for the issues as of now. If none >> will >> >>>> come I'll proceed with the cut tomorrow Wednesday 8th August. >> >>> I'd like to highlight OAK-6770. I just re-opened that issue, which has >> >>> changes that would go into the release. >> >>> >> >>> Regards >> >>> Marcel >> >>> >> >> >
