Hi Francesco,
are you sure you need the factoryPid?
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]
<mailto:[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] <mailto:[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]>
>> 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
>>>