Hi Lukasz,

Thanks for helping!

The ServiceLoader impl is in DefaultClassResolver which is used *by
default*, i.e. in normal servlet containers.
In OSGi environments the application developer could provide
OsgiClassResolver that will use OSGi APIs to find the impls of a class
(IInitializer in this case). Would that work ?

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Wed, Mar 16, 2016 at 5:24 PM, Łukasz Dywicki <[email protected]> wrote:

> Martin,
> As far I know it will not help, cause of classloader visibility.
> ServiceLoader call without given context will use TCCL which could be
> everything but app classloader during initialization. Making service loader
> working properly under OSGi requires some extra steps (ie. via
> aries-spi-fly or geronimo-osgi-locator/registry).
>
> Long time ago I’ve written an improved osgi integration for wicket which
> is much simpler than pax-wicket. It is something between wicket stuff and
> pax:
> https://github.com/Code-House/wicket-osgi <
> https://github.com/Code-House/wicket-osgi>
>
>  It is based on initializers. :-)
>
> Best regards,
> Lukasz
> —
> [email protected]
> Twitter: ldywicki
> Blog: http://dywicki.pl
> Code-House - http://code-house.org
>
> > Wiadomość napisana przez Martin Grigorov <[email protected]> w dniu
> 14 mar 2016, o godz. 22:51:
> >
> > Hi,
> >
> > With [1] I've made a change in Wicket to use IClassResolver to find all
> > IInitializer impls.
> > Could this help for friendlier OSGi usage ?
> > Is it OK to find all impls by interface class in OSGi environment ?
> >
> > The only problem is that you have to register OsgiClassResolver in
> > MyApplication#internalInit(), not in #init().
> >
> > 1.
> >
> https://git1-us-west.apache.org/repos/asf?p=wicket.git;a=commit;h=39f897aa
> >
> > Martin Grigorov
> > Wicket Training and Consulting
> > https://twitter.com/mtgrigorov
> >
> > On Mon, Feb 29, 2016 at 7:35 PM, Łukasz Dywicki <[email protected]>
> wrote:
> >
> >> FYI there is pax-wicket project which is intended to support OSGi based
> >> deployments for Wicket.
> >>
> >> Cheers,
> >> Lukasz
> >> —
> >> [email protected]
> >> Twitter: ldywicki
> >> Blog: http://dywicki.pl
> >> Code-House - http://code-house.org
> >>
> >>> Wiadomość napisana przez Daniel Stoch <[email protected]> w dniu
> >> 23 lut 2016, o godz. 15:01:
> >>>
> >>> On Tue, Feb 23, 2016 at 2:33 PM, Martin Grigorov <[email protected]
> >
> >> wrote:
> >>>
> >>>>
> >>>> Please check
> >>>>
> >>
> https://github.com/wicketstuff/core/blob/master/wicket-osgi-parent/wicket-osgi/src/main/java/org/wicketstuff/osgi/OsgiClassResolver.java
> >>>> (or its wicket-6.x version).
> >>>
> >>> But I think this implementation is incorrect and it can work only
> >>> under special conditions. It assumes that class of my application has
> >>> access to all classes: so bundle should contains:
> >>> DynamicImport-Package: *.
> >>> But even when I add such line to MANIFEST.MF with my application
> >>> bundle, the situation is the same like using my own implementation of
> >>> IClassResolver: some IInitializers are not found at all.
> >>>
> >>> So even with OsgiClassResolver it does not work as it is designed.
> >>>
> >>> --
> >>> Daniel
> >>
> >>
>
>

Reply via email to