The model controls the UI. When a service becomes unavailable the
deactivate is called which then tells the UI that is is not available. In
reality this never happens , so it is not an issue.

I would suggest then there is an issue. We should be able to find out why
factory components do not resolve , no?

Dave

On Fri, Mar 31, 2017 at 5:12 PM, David Jencks <[email protected]>
wrote:

>
> > 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]>
>

Reply via email to