felix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Smith <dave.sm...@candata.com>
Subject Re: SCR : Unsatisfied ComponentFactory
Date Fri, 31 Mar 2017 18:03:21 GMT
See below

On Fri, Mar 31, 2017 at 1:51 PM, David Jencks <david.a.jencks@gmail.com>
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.


>
> 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?)

Dave



>
> thanks
> david jencks
>
> > On Mar 31, 2017, at 8:46 AM, Dave Smith <dave.smith@candata.com> 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 <raymond.auge@liferay.com
> >
> > wrote:
> >
> >> On Fri, Mar 31, 2017 at 11:22 AM, Dave Smith <dave.smith@candata.com>
> >> 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 <
> raymond.auge@liferay.com
> >>>
> >>> wrote:
> >>>
> >>>> On Fri, Mar 31, 2017 at 11:13 AM, Dave Smith <dave.smith@candata.com>
> >>>> 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: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message