Scott, is that usable in-process, as in no remoting? - Ray
On Thu, Nov 22, 2018, 14:55 Scott Lewis via osgi-dev <osgi-dev@mail.osgi.org wrote: > On 11/22/2018 8:19 AM, Raymond Auge via osgi-dev wrote: > > Mohamed, if I understand correctly, what you really need in order to cache > method calls are proxies around arbitrary services. > > First I don't think there's a OOTB solution for your problem description > specifically to do method caching. > > Also, OSGi doesn't natively provide a proxy mechanism. > > Forgive me if I'm misinterpreting the needs as I haven't read entire > thread, but OSGi Remote Service Admin does have a specified service proxing > [A]. ECF's implementation of RSA [B] allows one to create/use custom > distribution providers that could do method-level caching [B]. > Distribution providers are typically for across-process proxies, but can be > in-process as well. > > Scott > > [A] > https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteserviceadmin.html#i1742961 > > [B] https://wiki.eclipse.org/Eclipse_Communication_Framework_Project > > > In fact, it generally goes out of it's way to avoid needing that kind of > indirection. However it does provide a few technologies that give you > capabilities to build this. There are also some open source projects that > can help with this. > > In order of depth of integration: > > *1. framework weaving hooks* [1] > PROS > - TRANSPARENT to service providers & consumers > - you can control any bytecode used anywhere in the framework from > here > CONS > - it can be an intense journey into bytecode manipulation.. if you > have the heart for it you can do crazy stuff here, but it won't be trivial > - start ordering will be your biggest foe > > *2. framework service hooks* [2] > PROS > - TRANSPARENT service to providers & consumers > - you can intercept and modify the visibility or accessibility of > services before they are gotten by consumers which means you could proxy > here > CONS > - still pretty low level and high degree of awareness of the OSGi > service registry behaviour is required > - start ordering is also a complexity you need to think about > > 3. *use an injection framework* that supports proxies > PROS > - use existing technology do to the heavy lifting (spring, CDI... > upcoming spec [3] ... try the RI [4] ..., etc.) > CONS > - service to providers need to use the selected framework > - no unobtrusive, transversal configuration > > 4. *AspecIO* [5] > PROS > - TRANSPARENT to providers & consumers > - unobtrusive and transversal configuration > - no start ordering issues? (I think Simon built a solution for this > ???) > CONS > - start ordering issues? (I think Simon built a solution for this ???) > > FYI, this is not a pitch for the project because I'm not involved in it at > all. I only know that it covers almost all your requirements (which I've > extrapolated from between the lines). > > Hope that helps in some way. > > - Ray > > [1] > https://osgi.org/specification/osgi.core/7.0.0/framework.weavinghooks.html > [2] > https://osgi.org/specification/osgi.core/7.0.0/framework.servicehooks.html > [3] https://osgi.org/specification/osgi.enterprise/7.0.0/service.cdi.html > [4] > https://repository.apache.org/content/repositories/snapshots/org/apache/aries/cdi/org.apache.aries.cdi.extender/0.0.2-SNAPSHOT/ > [5] https://github.com/primeval-io/aspecio > > > On Thu, Nov 22, 2018 at 10:34 AM Mohamed AFIF via osgi-dev < > osgi-dev@mail.osgi.org> wrote: > >> Hi Alain, >> >> Thanks a lot for sharing your experience, but as I've seen on >> documentation , I'm not sure that infinispan handles cache of methods . >> >> Regards. >> >> Mohamed. >> >> >> Le jeu. 22 nov. 2018 à 11:10, Alain Picard <pic...@castortech.com> a >> écrit : >> >>> If it might help, we are in the process of using Infinispan at our end. >>> It is OSGi compliant (almost) and for Karaf users (not us yet), it comes >>> with features for easy deployment. >>> >>> Alain >>> >>> >>> On Thu, Nov 22, 2018 at 5:02 AM Mohamed AFIF via osgi-dev < >>> osgi-dev@mail.osgi.org> wrote: >>> >>>> Hello everybody, >>>> >>>> We need to implement a cache system in our Karaf (Felix) , our need is >>>> especially to cache method results, but It’s hard to find a cache solution >>>> which is OSGI compliant, Spring can do that but it’s cache feature can be >>>> used only over a spring managed beans, so we ‘re using Blueprint than the >>>> Spring solution could not be used, also spring has some problems to run >>>> inside a Kataf, so we’re thanking to use the AOP, with AspectJ, but we >>>> should manage by ourself the data synchronization …., Thus I would like to >>>> know if some users among this mailing list have already been facing this >>>> problem and which solution could be better to implement inside a >>>> Karaf/Felix, >>>> >>>> >>>> >>>> Thank you very much for your help >>>> >>>> >>>> >>>> M.AFIF >>>> >>>> -- >>>> >>>> Cdt >>>> Mohamed AFIF >>>> _______________________________________________ >>>> 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 > listosgi-...@mail.osgi.orghttps://mail.osgi.org/mailman/listinfo/osgi-dev > > > _______________________________________________ > 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