Yes, now that you mention it, that is actually seeming like more of the motivation for the flag than what I originally recalled. In general I think it’s supposed to make the factory-created instances act as much as possible like regular components.
David Jencks > On Apr 25, 2023, at 9:05 AM, Raymond Augé <raymond.a...@liferay.com.INVALID> > wrote: > > Thanks David, that's great information. > > Let me try to explain what I've witnessed in another way to see if that is > something you would have expected: > > * When a factory component has a reference, which cannot be _immediately_ > resolved at the moment of activation, it will fail. > > * However, when setting felix:persistentFactoryComponent="true" the > component behaves as any other component which might have an unresolved > reference, resulting in deferred activation only upon satisfaction of the > reference. > > Would you consider that inline with the intent? (I certainly hope so :D > because that's what I'm looking for.) > > Ray > > On Tue, Apr 25, 2023 at 11:54 AM David Jencks <david.a.jen...@gmail.com> > wrote: > >> This is my recollection from the distant past, it could be wrong in >> several ways. >> >> IIRC if you have a factory component, when you call it to create a >> component the properties are a mix of the factory component’s properties >> and the ones you supply. >> >> Furthermore, the spec says if you change the factory component’s >> properties, all the previously created instances are immediately disposed >> of. If the manually created component instances are used as dependencies >> this might not be what you want. >> >> So, IIRC, setting this property changes the behavior when you change the >> factory properties so the created instances are not automatically disposed >> of. >> >> I thought I’d documented all the non-standard behaviors I implemented, but >> this certainly isn’t in the .md. >> >> David Jencks >> >>> On Apr 25, 2023, at 6:56 AM, Raymond Augé <raymond.a...@liferay.com.INVALID> >> wrote: >>> >>> Hello all, >>> >>> Could someone explain what it means to use >>> >>> felix:persistentFactoryComponent="true" >>> >>> As in: >>> >>> <components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" >>> >>> xmlns:felix="http://felix.apache.org/xmlns/scr/extensions/v1.0.0"> >>> >>> >>> <scr:component name="factory.component" >>> >>> felix:persistentFactoryComponent="true" >>> >>> enabled="false" >>> >>> factory="factory.component.factory" > >>> >>> <implementation class=" >>> org.apache.felix.scr.integration.components.SimpleComponent" /> >>> >>> </scr:component> >>> >>> ... >>> >>> -- >>> *Raymond Augé* (@rotty3000) >>> Senior Software Architect *Liferay, Inc.* (@Liferay) >>> OSGi Fellow, Java Champion >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@felix.apache.org >> For additional commands, e-mail: users-h...@felix.apache.org >> >> > > -- > *Raymond Augé* (@rotty3000) > Senior Software Architect *Liferay, Inc.* (@Liferay) > OSGi Fellow, Java Champion --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@felix.apache.org For additional commands, e-mail: users-h...@felix.apache.org