I have pushed a version to the branch OWB-1393. Feel free to take a look at it. If it looks ok, I can merge it tomorrow. With this version we don’t have to touch the cache, simply registering the lifecycle observer methods first and only after all lifecycle observer methods of all extensions are registered, registering the non lifecycle observer methods of the extensions (which then throws the ProcessObserverMethod events and correctly sets up the cache).
Cheers, Arne OPEN KNOWLEDGE GmbH Poststraße 1, 26122 Oldenburg Mobil: +49 151 - 108 22 942 Tel: +49 441 - 4082-154 Fax: +49 441 - 4082-111 arne.limb...@openknowledge.de<mailto:arne.limb...@openknowledge.de> www.openknowledge.de<https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.openknowledge.de%2F&data=04%7C01%7C%7C3004d8758be44c8678c008d93bcc1e23%7C48837bc476f9481d8a76bd7b60b43dec%7C0%7C0%7C637606570139932909%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=9vRVYZVZ%2Feqk%2BvFxU5COofNvgs8U0AxtxRqwVEwqXHA%3D&reserved=0> Registergericht: Amtsgericht Oldenburg, HRB 4670 Geschäftsführer: Lars Röwekamp, Jens Schumann Treffen Sie uns auf kommenden Konferenzen und Workshops: Zu unseren Events<https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.openknowledge.de%2Fevent%2F&data=04%7C01%7C%7C3004d8758be44c8678c008d93bcc1e23%7C48837bc476f9481d8a76bd7b60b43dec%7C0%7C0%7C637606570139932909%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=8tjmukdm1NxhXQMkn4VnESiBI216kXvh%2Fjb7%2FFYI0kE%3D&reserved=0> Von: Romain Manni-Bucau <rmannibu...@gmail.com> Datum: Sonntag, 10. Oktober 2021 um 20:04 An: openwebbeans-dev <dev@openwebbeans.apache.org> Betreff: Re: OWB-1393 +1, thanks Arne Romain Manni-Bucau @rmannibucau <https://twitter.com/rmannibucau> | Blog <https://rmannibucau.metawerx.net/> | Old Blog <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book <https://www.packtpub.com/application-development/java-ee-8-high-performance> Le dim. 10 oct. 2021 à 20:02, Arne Limburg <arne.limb...@openknowledge.de> a écrit : > Yes, basically that’s my option 2. I am currently implementing it. > Feel free to review it, when I have pushed it. > > Cheers, > Arne > > OPEN KNOWLEDGE GmbH > Poststraße 1, 26122 Oldenburg > Mobil: +49 151 - 108 22 942 > Tel: +49 441 - 4082-154 > Fax: +49 441 - 4082-111 > arne.limb...@openknowledge.de<mailto:arne.limb...@openknowledge.de> > www.openknowledge.de<<http://www.openknowledge.de%3c> > https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.openknowledge.de%2F&data=04%7C01%7C%7C3004d8758be44c8678c008d93bcc1e23%7C48837bc476f9481d8a76bd7b60b43dec%7C0%7C0%7C637606570139932909%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=9vRVYZVZ%2Feqk%2BvFxU5COofNvgs8U0AxtxRqwVEwqXHA%3D&reserved=0 > > > Registergericht: Amtsgericht Oldenburg, HRB 4670 > Geschäftsführer: Lars Röwekamp, Jens Schumann > > Treffen Sie uns auf kommenden Konferenzen und Workshops: > Zu unseren Events< > https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.openknowledge.de%2Fevent%2F&data=04%7C01%7C%7C3004d8758be44c8678c008d93bcc1e23%7C48837bc476f9481d8a76bd7b60b43dec%7C0%7C0%7C637606570139932909%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=8tjmukdm1NxhXQMkn4VnESiBI216kXvh%2Fjb7%2FFYI0kE%3D&reserved=0 > > > > Von: Romain Manni-Bucau <rmannibu...@gmail.com> > Datum: Sonntag, 10. Oktober 2021 um 18:32 > An: openwebbeans-dev <dev@openwebbeans.apache.org> > Betreff: Re: OWB-1393 > Hmm, > > Maybe I misread the options (or misinterpreted them) but think we should: > > 1. Register all extensions without any fire > 2. Start firing events > > 2. Means we keep the lazy resolution of observers and can destroy/reset the > cache after afterdeploymentvalidation event. > > > No? > > Le dim. 10 oct. 2021 à 18:03, Arne Limburg <arne.limb...@openknowledge.de> > a écrit : > > > Hi, > > > > you can fire any Event from extensions and listen to any event in > > extensions with every of the three options. > > The first option would have the disadvantage that an extension, that > > listens to ProcessObserverMethod would not receive the > > ProcessObserverMethod event for non-lifecycle observer methods of other > > extensions, which would not be a problem I guess (also I don’t know what > > the spec says about it). > > > > Imho the second option would be the cleanest. It would basically mean: > > First register every lifecycle event observer of every extension, then > > register every non-lifecycle event of every extension (and fire > > ProcessObserverMethod for every of that observer methods). This would be > > valid, too. But it’s the hardest option to implement with the current > code > > base. > > > > The third variant would mean, that ProcessObserverMethod would be thrown > > again, but not every extension would get every ProcessObserverMethod > event > > for every non-lifecycle-event of other extensions (which again should be > no > > problem). Or we should disable that cache completely during extension > > registration. > > > > Writing that, I will take a deeper look at variant two or three. > > > > Cheers, > > Arne > > > > OPEN KNOWLEDGE GmbH > > Poststraße 1, 26122 Oldenburg > > Mobil: +49 151 - 108 22 942 > > Tel: +49 441 - 4082-154 > > Fax: +49 441 - 4082-111 > > arne.limb...@openknowledge.de<mailto:arne.limb...@openknowledge.de> > > www.openknowledge.de<<http://www.openknowledge.de%3c<http://www.openknowledge.de%3c%3chttp:/www.openknowledge.de%3c>> > > > https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.openknowledge.de%2F&data=04%7C01%7C%7C3004d8758be44c8678c008d93bcc1e23%7C48837bc476f9481d8a76bd7b60b43dec%7C0%7C0%7C637606570139932909%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=9vRVYZVZ%2Feqk%2BvFxU5COofNvgs8U0AxtxRqwVEwqXHA%3D&reserved=0 > > > > > Registergericht: Amtsgericht Oldenburg, HRB 4670 > > Geschäftsführer: Lars Röwekamp, Jens Schumann > > > > Treffen Sie uns auf kommenden Konferenzen und Workshops: > > Zu unseren Events< > > > https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.openknowledge.de%2Fevent%2F&data=04%7C01%7C%7C3004d8758be44c8678c008d93bcc1e23%7C48837bc476f9481d8a76bd7b60b43dec%7C0%7C0%7C637606570139932909%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=8tjmukdm1NxhXQMkn4VnESiBI216kXvh%2Fjb7%2FFYI0kE%3D&reserved=0 > > > > > > > Von: Romain Manni-Bucau <rmannibu...@gmail.com> > > Datum: Sonntag, 10. Oktober 2021 um 17:39 > > An: openwebbeans-dev <dev@openwebbeans.apache.org> > > Betreff: Re: OWB-1393 > > Hi > > > > 3 sounds the only valid option since it is valid and used to fire any > event > > in extensions and is used to communicate between them from time to time. > > > > Hope it helps. > > > > Le dim. 10 oct. 2021 à 13:57, Arne Limburg < > arne.limb...@openknowledge.de> > > a écrit : > > > > > FYI, > > > I now went with solution 1 and pushed it to a branch. If there are no > > > objections, I’ll merge it tomorrow or so. > > > > > > Cheers, > > > Arne > > > > > > OPEN KNOWLEDGE GmbH > > > Poststraße 1, 26122 Oldenburg > > > Mobil: +49 151 - 108 22 942 > > > Tel: +49 441 - 4082-154 > > > Fax: +49 441 - 4082-111 > > > arne.limb...@openknowledge.de<mailto:arne.limb...@openknowledge.de> > > > www.openknowledge.de<<http://www.openknowledge.de%3c<<http://www.openknowledge.de%3c%3chttp:/www.openknowledge.de%3c%3c> > http://www.openknowledge.de%3c%3chttp:/www.openknowledge.de%3c>> > > > > > > https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.openknowledge.de%2F&data=04%7C01%7C%7C3004d8758be44c8678c008d93bcc1e23%7C48837bc476f9481d8a76bd7b60b43dec%7C0%7C0%7C637606570139932909%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=9vRVYZVZ%2Feqk%2BvFxU5COofNvgs8U0AxtxRqwVEwqXHA%3D&reserved=0 > > > > > > > Registergericht: Amtsgericht Oldenburg, HRB 4670 > > > Geschäftsführer: Lars Röwekamp, Jens Schumann > > > > > > Treffen Sie uns auf kommenden Konferenzen und Workshops: > > > Zu unseren Events< > > > > > > https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.openknowledge.de%2Fevent%2F&data=04%7C01%7C%7C3004d8758be44c8678c008d93bcc1e23%7C48837bc476f9481d8a76bd7b60b43dec%7C0%7C0%7C637606570139932909%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=8tjmukdm1NxhXQMkn4VnESiBI216kXvh%2Fjb7%2FFYI0kE%3D&reserved=0 > > > > > > > > > > Von: Arne Limburg <arne.limb...@openknowledge.de> > > > Datum: Sonntag, 10. Oktober 2021 um 12:34 > > > An: dev@openwebbeans.apache.org <dev@openwebbeans.apache.org> > > > Betreff: OWB-1393 > > > Hi, > > > > > > I’ve created OWB-1393 and am going to fix it. > > > > > > When we find an extension that contains an observer method, that > observes > > > an event that is no lifecycle event, we currently fire > > > ProcessObserverMethod during addExtension(…) (before every Extension is > > > registered). That leads to a caching problem. We cache too early (and > > thus > > > too less entries) and don’t invalidate the cache later. > > > > > > Note: org.apache.cxf.cdi.JAXRSCdiResourceExtension observes a > > > non-lifecycle event, so we have that bug currently in meecrowave > (where I > > > observed it). > > > > > > That leads me to a few questions: > > > > > > Is it covered by the spec, that an extension may contain non-lifecycle > > > events? > > > If not: Should we throw an exception then, which would break CXF and > thus > > > Meecrowave. > > > > > > In any case, how should we handle it? > > > 1. Don’t fire ProcessObserverMethod during extension registration at > all? > > > 2. First register every Lifecycle-Event-Observer during extension > > > registration and only then register the non-lifecycle-Observers (which > > > fires the ProcessObserverMethod events)? > > > 3. Invalidate that cache after extension registration (probably the > most > > > inperformant way)? > > > > > > Any opinion? > > > > > > Cheers, > > > Arne > > > OPEN KNOWLEDGE GmbH > > > Poststraße 1, 26122 Oldenburg > > > Mobil: +49 151 - 108 22 942 > > > Tel: +49 441 - 4082-154 > > > Fax: +49 441 - 4082-111 > > > arne.limb...@openknowledge.de<mailto:arne.limb...@openknowledge.de> > > > www.openknowledge.de<<http://www.openknowledge.de%3c<<http://www.openknowledge.de%3c%3chttp:/www.openknowledge.de%3c%3c> > http://www.openknowledge.de%3c%3chttp:/www.openknowledge.de%3c>> > > > > > > https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.openknowledge.de%2F&data=04%7C01%7C%7C3004d8758be44c8678c008d93bcc1e23%7C48837bc476f9481d8a76bd7b60b43dec%7C0%7C0%7C637606570139932909%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=9vRVYZVZ%2Feqk%2BvFxU5COofNvgs8U0AxtxRqwVEwqXHA%3D&reserved=0 > > > <http://www.openknowledge.de%3chttps:/ > > > > > > eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.openknowledge.de%2F&data=04%7C01%7C%7C3004d8758be44c8678c008d93bcc1e23%7C48837bc476f9481d8a76bd7b60b43dec%7C0%7C0%7C637606570139932909%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=9vRVYZVZ%2Feqk%2BvFxU5COofNvgs8U0AxtxRqwVEwqXHA%3D&reserved=0 > > > >> > > > Registergericht: Amtsgericht Oldenburg, HRB 4670 > > > Geschäftsführer: Lars Röwekamp, Jens Schumann > > > > > > Treffen Sie uns auf kommenden Konferenzen und Workshops: > > > Zu unseren Events< > > > > > > https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.openknowledge.de%2Fevent%2F&data=04%7C01%7C%7C3004d8758be44c8678c008d93bcc1e23%7C48837bc476f9481d8a76bd7b60b43dec%7C0%7C0%7C637606570139932909%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=8tjmukdm1NxhXQMkn4VnESiBI216kXvh%2Fjb7%2FFYI0kE%3D&reserved=0 > > > > > > > > > >