I think it's all clear now! Sincerely, - Ray
On Wed, Jun 17, 2015 at 4:03 PM, <chris.g...@kiffer.be> wrote: > Since B is the one creating the service objects, B must be wired up to C > in order to use the same runtime package. The fact that these objects are > being created because of some magic cookies in A doesn't really change > very much - B could as well register a servlice every time it receives a > tweet with the hashtag #crackerjack. Or am I missing something? > > > > On Wed, Jun 17, 2015 at 3:38 PM, BJ Hargrave <hargr...@us.ibm.com> > wrote: > > > >> Well you were the one describing the scenario, I was trying to repeat > >> what > >> I thought you were saying :-) > >> > >> So C is a bundle which does not have any implementation of Servlet and > >> does not import the servlet package and B will register a Servlet > >> service, > >> using C's bundle context, with some object implementing Servlet and B > >> does > >> not import the servlet package. > >> > >> How does B get an object implementing Servlet to register as the service > >> since it has no wiring to any package containing Servlet? > >> > > > > I never said that B doesn't know about Servlet... In fact I said exactly > > that B knows about making Servlets. > > > > > >> It seems odd that neither B or C is wired to the servlet package, yet > >> they > >> conspire to register a Servlet service. > >> > > > > B should certainly be wired to the servlet package... and the same one as > > the whiteboard. > > > > Let me try to clarify with a concrete example. > > > > There are many "webby" technologies in existence which remove the need > for > > a developer to have any knowledge of Servlet API. These technologies use > > things like annotations or even simply pure packaging conventions for > > describing their application. > > > > However, in the end, you need a servlet. Typically some framework looks > at > > the packaging convention and then reacts to that by creating a Servlet > > which turns the convention into something concrete. > > > > In this scenario the original "bundle" doesn't know anything about > > Servlet... BUT there is certainly a "concrete" servlet implementation > > somewhere that knows about the convention. > > > > However, this concrete thing (the extender) wants to use the whiteboard > > instead of handling all the HTTP stuff itself. > > > > the whiteboard knows nothing about this extender. > > > > > > > > > >> > >> -- > >> > >> BJ Hargrave > >> Senior Technical Staff Member, IBM // office: +1 386 848 1781 > >> OSGi Fellow and CTO of the OSGi Alliance // mobile: +1 386 848 3788 > >> hargr...@us.ibm.com > >> > >> > >> > >> ----- Original message ----- > >> From: Raymond Auge <raymond.a...@liferay.com> > >> Sent by: osgi-dev-boun...@mail.osgi.org > >> To: OSGi Developer Mail List <osgi-dev@mail.osgi.org> > >> Cc: > >> Subject: Re: [osgi-dev] whiteboard pattern & extenders > >> Date: Wed, Jun 17, 2015 3:32 PM > >> > >> Actually Chris is correct in describing the scenario and BJ you are not > >> correct. > >> > >> C) is some bundle which has a header "ImCool: oh so cool!" > >> B) is an extender which makes servlets from the header "ImCool" IT knows > >> how to make a Servlet service. > >> A) is the whiteboard > >> > >> > >> This doesn't work because C) does not import Servlet. > >> > >> - Ray > >> > >> On Wed, Jun 17, 2015 at 3:24 PM, BJ Hargrave <hargr...@us.ibm.com> > >> wrote: > >> > >> OK. > >> > >> So A, the whiteboard impl, has ServiceTrackers and must care about the > >> specific package. > >> > >> B is the extends which registers the services. It has no ServiceTrackers > >> and does not care about the package since it does not use the package > >> itself. > >> > >> C also must care about the same package as A (so they are type > >> compatible). > >> > >> So there is not bundle which both is the extender and registers the > >> services and also has ServiceTrackers which must care about the specific > >> package. Therefore trackAllServices=true is not needed. > >> > >> -- > >> > >> BJ Hargrave > >> Senior Technical Staff Member, IBM // office: +1 386 848 1781 > >> OSGi Fellow and CTO of the OSGi Alliance // mobile: +1 386 848 3788 > >> hargr...@us.ibm.com > >> > >> > >> > >> ----- Original message ----- > >> From: Raymond Auge <raymond.a...@liferay.com> > >> Sent by: osgi-dev-boun...@mail.osgi.org > >> To: OSGi Developer Mail List <osgi-dev@mail.osgi.org> > >> Cc: > >> Subject: Re: [osgi-dev] whiteboard pattern & extenders > >> Date: Wed, Jun 17, 2015 2:55 PM > >> > >> > >> > >> On Wed, Jun 17, 2015 at 2:44 PM, BJ Hargrave <hargr...@us.ibm.com> > >> wrote: > >> > >> So this is like DS (an extender) registering Servlet services on behalf > >> of > >> a bundle using DS. Then of course the extender bundle does not care > >> about > >> the servlet package but also the extender bundle is not using > >> ServiceTrackers to track the Servlet services. That is done by the Http > >> Whiteboard impl bundle which does care about the servlet package and its > >> version. > >> > >> > >> I'm sorry but you've lost me, and DS isn't an example of the scenario > >> because the DS bundle is itself tracker in this scenario. > >> > >> In the scenario I'm describing there are 3 bundles in play: > >> > >> A) the whiteboard bundle (has the trackers) > >> B) an extender which registers services that the whiteboard > >> C) a bundle which is being extended by B) but doesn't know anything > >> about > >> A) or the API it's being extended with > >> > >> Sincerely, > >> - Ray > >> > >> > >> > >> -- > >> > >> BJ Hargrave > >> Senior Technical Staff Member, IBM office: +1 386 848 1781 > >> OSGi Fellow and CTO of the OSGi Alliance mobile: +1 386 848 3788 > >> hargr...@us.ibm.com > >> > >> > >> > >> ----- Original message ----- > >> From: Raymond Auge <raymond.a...@liferay.com> > >> Sent by: osgi-dev-boun...@mail.osgi.org > >> To: OSGi Developer Mail List <osgi-dev@mail.osgi.org> > >> Cc: > >> Subject: Re: [osgi-dev] whiteboard pattern & extenders > >> Date: Wed, Jun 17, 2015 2:23 PM > >> > >> But an extender who registers services to a whiteboard impl on behalf of > >> extendee will result in those services not being visible to the > >> whiteboard > >> if the extendee does not import the packages used by the services? > >> > >> On Wed, Jun 17, 2015 at 2:16 PM, BJ Hargrave <hargr...@us.ibm.com> > >> wrote: > >> > >> Well whiteboard and extenders are different. > >> > >> Whiteboard should not use true since it cares about the specific API > >> package version. > >> > >> Extenders should use BundleTrackers rather than ServiceTrackers since > >> they > >> are not using whiteboard services. > >> > >> -- > >> > >> BJ Hargrave > >> Senior Technical Staff Member, IBM office: +1 386 848 1781 > >> OSGi Fellow and CTO of the OSGi Alliance mobile: +1 386 848 3788 > >> hargr...@us.ibm.com > >> > >> > >> > >> ----- Original message ----- > >> From: Raymond Auge <raymond.a...@liferay.com> > >> Sent by: osgi-dev-boun...@mail.osgi.org > >> To: OSGi Developer Mail List <osgi-dev@mail.osgi.org> > >> Cc: > >> Subject: [osgi-dev] whiteboard pattern & extenders > >> Date: Wed, Jun 17, 2015 2:12 PM > >> > >> When implementing a whiteboard pattern should we always open trackers > >> using the trackAllServices = true ? via: > >> > >> ServiceTracker.open(true); > >> > >> It would seem that this is the only way that we can support extenders > >> where the extendee has no knowledge of the APIs in question, correct? > >> > >> -- > >> *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) > >> _______________________________________________ > >> OSGi Developer Mail List > >> osgi-dev@mail.osgi.org > >> https://mail.osgi.org/mailman/listinfo/osgi-dev > >> > >> > >> > >> _______________________________________________ > >> OSGi Developer Mail List > >> osgi-dev@mail.osgi.org > >> https://mail.osgi.org/mailman/listinfo/osgi-dev > >> > >> > >> > >> > >> -- > >> *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) > >> _______________________________________________ > >> OSGi Developer Mail List > >> osgi-dev@mail.osgi.org > >> https://mail.osgi.org/mailman/listinfo/osgi-dev > >> > >> > >> > >> _______________________________________________ > >> OSGi Developer Mail List > >> osgi-dev@mail.osgi.org > >> https://mail.osgi.org/mailman/listinfo/osgi-dev > >> > >> > >> > >> > >> -- > >> *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) > >> _______________________________________________ > >> OSGi Developer Mail List > >> osgi-dev@mail.osgi.org > >> https://mail.osgi.org/mailman/listinfo/osgi-dev > >> > >> > >> > >> _______________________________________________ > >> OSGi Developer Mail List > >> osgi-dev@mail.osgi.org > >> https://mail.osgi.org/mailman/listinfo/osgi-dev > >> > >> > >> > >> > >> -- > >> *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) > >> _______________________________________________ > >> OSGi Developer Mail List > >> osgi-dev@mail.osgi.org > >> https://mail.osgi.org/mailman/listinfo/osgi-dev > >> > >> > >> > >> _______________________________________________ > >> OSGi Developer Mail List > >> osgi-dev@mail.osgi.org > >> https://mail.osgi.org/mailman/listinfo/osgi-dev > >> > > > > > > > > -- > > *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) > > _______________________________________________ > > OSGi Developer Mail List > > osgi-dev@mail.osgi.org > > https://mail.osgi.org/mailman/listinfo/osgi-dev > > > _______________________________________________ > OSGi Developer Mail List > osgi-dev@mail.osgi.org > https://mail.osgi.org/mailman/listinfo/osgi-dev > -- *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)
_______________________________________________ OSGi Developer Mail List osgi-dev@mail.osgi.org https://mail.osgi.org/mailman/listinfo/osgi-dev