> On Mar 31, 2017, at 1:02 PM, David Jencks <[email protected]> wrote:
>
>>
>> On Mar 31, 2017, at 11:03 AM, Dave Smith <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> See below
>>
>> On Fri, Mar 31, 2017 at 1:51 PM, David Jencks <[email protected]
>> <mailto:[email protected]>>
>> wrote:
>>
>>> I think scr:info shows you instances of the factory component you’ve
>>> created with newInstance on the ComponentFactory service. If you list
>>> services do you see the ComponentFactory service registered from your
>>> bundle?
>>>
>>
>> No. In the case of a standard service you always get a service pid
>> regardless if the component resolves or not. Thus src:info <pid> will tell
>> you what is not resolved. In the case of ComponentFactory if it resolves it
>> gets a PID that you can then get details on otherwise you have to give it
>> the full name and all this gives you is CompoentInfo but not it's state.
>
> I’m not quite sure what you mean and I don’t think you answered my question
> about what listing services (not using scr, just by bundle) shows. Reviewing
> the code this from ComponentFactoryImpl makes me think that the component
> descriptions
Apparently I’m not yet awake…. component configurations of course.
> shown are those created by newInstance, not including one for the component
> factory itself:
>
> @Override
> public void getComponentManagers(List<AbstractComponentManager<S>> cms)
> {
> synchronized (m_componentInstances)
> {
> cms.addAll(m_componentInstances.keySet());
> }
> }
>
> So I continue to think the scr command won’t tell you much about the
> component factory service itself.
>>
>>
>>>
>>> On a separate note, Ive never seen a plausible use of a factory component
>>> with references, so I’d be interested to see some info about a situation in
>>> which this is a suitable approach.
>>>
>>
>> Legacy UI code that follows a Presentation Model style . It holds the state
>> plus change listeners that call services. Thus the UI looks up the factory
>> and creates an instance to hold state and run actions (Sort of like a
>> Stateful Session bean , remember those?)
>
> What happens to the UI when one of the referenced services disappears? Have
> you found a way to detect this?
Not being able to find a solution to this has led me to either create factory
configurations or use the felix persistent factory components extension I wrote
to try to make the lifecycle more usable.
david jencks
>
> thanks
> david jencks
>
>>
>> Dave
>>
>>
>>
>>>
>>> thanks
>>> david jencks
>>>
>>>> On Mar 31, 2017, at 8:46 AM, Dave Smith <[email protected]
>>>> <mailto:[email protected]>> wrote:
>>>>
>>>> No, It still has to resolve to know if it is available to activate and
>>>> then register a facade. Otherwise non DS services that might use it
>>> would
>>>> not see it.
>>>>
>>>> Dave
>>>>
>>>> On Fri, Mar 31, 2017 at 11:41 AM, Raymond Auge <[email protected]
>>>> <mailto:[email protected]>
>>>>
>>>> wrote:
>>>>
>>>>> On Fri, Mar 31, 2017 at 11:22 AM, Dave Smith <[email protected]
>>>>> <mailto:[email protected]>>
>>>>> wrote:
>>>>>
>>>>>> It is ugly (long story)
>>>>>>
>>>>>> scr:info com.candata.b3.client.bbx.TRACK01
>>>>>> *** Bundle: com.candata.b3.client.jnj (7)
>>>>>> Component Description:
>>>>>> Name: com.candata.b3.client.bbx.TRACK01
>>>>>> Implementation Class: com.candata.b3.client.bbx.TRACK01
>>>>>> Default State: enabled
>>>>>> Activation: delayed
>>>>>>
>>>>>
>>>>> This is significant! It means the component is lazily activated!
>>>>> Effectively this says that the component won't do anything (such as
>>>>> activate) until some other actor requests the service from the service
>>>>> registry.
>>>>>
>>>>> Could that be your issue?
>>>>>
>>>>> - Ray
>>>>>
>>>>>
>>>>>> Configuration Policy: optional
>>>>>> Activate Method: activate
>>>>>> Deactivate Method: deactivate
>>>>>> Modified Method: -
>>>>>> Configuration Pid: [com.candata.b3.client.bbx.TRACK01]
>>>>>> Factory: com.candata.b3.client.bbx.TRACK01
>>>>>> Services:
>>>>>> com.candata.bbx.client.interp.interfaces.BbxProgWithArgs
>>>>>> Service Scope: singleton
>>>>>> Reference: B313AFactory
>>>>>> Interface Name: org.osgi.service.component.ComponentFactory
>>>>>> Target Filter: (component.factory=com.candata.b3.client.bbx.B313A)
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: B3LogDAO
>>>>>> Interface Name: com.candata.b3.common.interfaces.B3LogDAO
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: BbxContext
>>>>>> Interface Name: com.candata.bbx.client.interp.interfaces.BbxContext
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: CCI01AFactory
>>>>>> Interface Name: org.osgi.service.component.ComponentFactory
>>>>>> Target Filter: (component.factory=com.candata.b3.client.bbx.CCI01A)
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: CCIImporterPMFactory
>>>>>> Interface Name: org.osgi.service.component.ComponentFactory
>>>>>> Target Filter: (component.factory=com.candata.custom.fyke.client.
>>>>>> model.CCIImporterPM)
>>>>>> Cardinality: 0..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: CarrierDAO
>>>>>> Interface Name: com.candata.comm.cbsa.common.interfaces.CarrierDAO
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: CompanyInfoService
>>>>>> Interface Name: com.candata.broker.util.common.services.
>>>>>> CompanyInfoService
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: CustomerDAO
>>>>>> Interface Name: com.candata.customer.common.interfaces.CustomerDAO
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: CustomsConfigurationService
>>>>>> Interface Name: com.candata.b3.client.services.
>>>>>> CustomsConfigurationService
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: DisplayThreadService
>>>>>> Interface Name: com.candata.swt.services.DisplayThreadService
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: EntryStatusDAO
>>>>>> Interface Name: com.candata.b3.common.interfaces.EntryStatusDAO
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: ErrorHandlingService
>>>>>> Interface Name: com.candata.gui.services.ErrorHandlingService
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: INV01Service
>>>>>> Interface Name: com.candata.bbx.client.services.INV01Service
>>>>>> Cardinality: 0..1
>>>>>> Policy: dynamic
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: INV11BService
>>>>>> Interface Name: com.candata.bbx.client.services.INV11BService
>>>>>> Cardinality: 0..1
>>>>>> Policy: dynamic
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: IOpenItems
>>>>>> Interface Name: com.candata.core.common.interfaces.invoicing.
>>>>>> IOpenItems
>>>>>> Cardinality: 0..1
>>>>>> Policy: dynamic
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: ITrackCharges
>>>>>> Interface Name: com.candata.core.common.interfaces.invoicing.
>>>>>> ITrackCharges
>>>>>> Cardinality: 0..1
>>>>>> Policy: dynamic
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: InvoiceFindResultService
>>>>>> Interface Name: com.candata.inv.api.common.services.
>>>>>> InvoiceFindResultService
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: InvoiceSettingsService
>>>>>> Interface Name: com.candata.inv.api.client.services.
>>>>>> InvoiceSettingsService
>>>>>> Cardinality: 0..1
>>>>>> Policy: dynamic
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: Logger
>>>>>> Interface Name: com.candata.core.api.interfaces.Logger
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: Mar03Factory
>>>>>> Interface Name: org.osgi.service.component.ComponentFactory
>>>>>> Target Filter: (component.factory=com.candata.customer.client.bbx.
>>>>>> MAR03)
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: Menu13
>>>>>> Interface Name: com.candata.b3.client.bbx.Menu13
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: MostRecentAdminService
>>>>>> Interface Name: com.candata.util.client.services.
>>>>>> MostRecentAdminService
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: PortService
>>>>>> Interface Name: com.candata.util.client.services.PortService
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: PropertiesService
>>>>>> Interface Name: com.candata.util.common.services.PropertiesService
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: ShipmentBus
>>>>>> Interface Name: com.candata.b3.common.interfaces.ShipmentBus
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: ShipmentDAO
>>>>>> Interface Name: com.candata.b3.common.interfaces.ShipmentDAO
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: ShipmentMenuItem
>>>>>> Interface Name: com.candata.b3.client.services.ShipmentMenuItem
>>>>>> Cardinality: 0..n
>>>>>> Policy: dynamic
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: ShipmentResponseDAO
>>>>>> Interface Name: com.candata.b3.common.
>>> interfaces.ShipmentResponseDAO
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: ShipmentValidateAndSaveService
>>>>>> Interface Name: com.candata.b3.common.interfaces.
>>>>>> ShipmentValidateAndSaveService
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: ShipmentVendorDAO
>>>>>> Interface Name: com.candata.b3.common.interfaces.ShipmentVendorDAO
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: TelnetPMFactory
>>>>>> Interface Name: org.osgi.service.component.ComponentFactory
>>>>>> Target Filter: (component.factory=com.candata.telnet.TelnetPM)
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: Track01PMFactory
>>>>>> Interface Name: org.osgi.service.component.ComponentFactory
>>>>>> Target Filter: (component.factory=com.candata.b3.client.bbx.
>>>>> Track01PM)
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: UserProfile
>>>>>> Interface Name: com.candata.core.common.interfaces.UserProfile
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Reference: XMenu
>>>>>> Interface Name: com.candata.bbx.client.bbx.XMenu
>>>>>> Cardinality: 1..1
>>>>>> Policy: static
>>>>>> Policy option: reluctant
>>>>>> Reference Scope: bundle
>>>>>> Component Description Properties:
>>>>>> B313AFactory.target = (component.factory=com.
>>>>>> candata.b3.client.bbx.B313A)
>>>>>> CCI01AFactory.target = (component.factory=com.
>>>>>> candata.b3.client.bbx.CCI01A)
>>>>>> CCIImporterPMFactory.target = (component.factory=com.
>>>>>> candata.custom.fyke.client.model.CCIImporterPM)
>>>>>> Mar03Factory.target = (component.factory=com.
>>>>>> candata.customer.client.bbx.MAR03)
>>>>>> TelnetPMFactory.target = (component.factory=com.
>>>>>> candata.telnet.TelnetPM)
>>>>>> Track01PMFactory.target = (component.factory=com.
>>>>>> candata.b3.client.bbx.Track01PM)
>>>>>> (No Component Configurations)
>>>>>>
>>>>>> On Fri, Mar 31, 2017 at 11:16 AM, Raymond Auge <
>>> [email protected] <mailto:[email protected]>
>>>>>>
>>>>>> wrote:
>>>>>>
>>>>>>> On Fri, Mar 31, 2017 at 11:13 AM, Dave Smith <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> com.candata.b3.client.bbx.TRACK01
>>>>>>>>
>>>>>>>
>>>>>>> please do
>>>>>>>
>>>>>>> scr:info com.candata.b3.client.bbx.TRACK01
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> *Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile>
>>>>>>> (@rotty3000)
>>>>>>> Senior Software Architect *Liferay, Inc.* <http://www.liferay.com>
>>>>>>> (@Liferay)
>>>>>>> Board Member & EEG Co-Chair, OSGi Alliance <http://osgi.org>
>>>>>>> (@OSGiAlliance)
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile>
>>>>> (@rotty3000)
>>>>> Senior Software Architect *Liferay, Inc.* <http://www.liferay.com>
>>>>> (@Liferay)
>>>>> Board Member & EEG Co-Chair, OSGi Alliance <http://osgi.org>
>>>>> (@OSGiAlliance)
>>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> <mailto:[email protected]>
>>> For additional commands, e-mail: [email protected]
>>> <mailto:[email protected]>