--
You received this message because you are subscribed to the Google Groups "Eclipse MicroProfile" group.
To unsubscribe from this group and stop receiving emails from it, send an email to microprofile...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/cad6a501-e285-4430-a138-15c087b99b02%40googlegroups.com.
I never viewed the Architectural removal of EL from CDI as being specifically to specifications only, and not applicable for the platform.
--
You received this message because you are subscribed to the Google Groups "Eclipse MicroProfile" group.
To unsubscribe from this group and stop receiving emails from it, send an email to microprofile...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/251a5457-816b-4de8-87d9-034c9f43849f%40googlegroups.com.
It documents all steps and reasons for the decision. The last comment states that EL is removed from the platform but, unfortunately, the platform spec wasn't updated to specify this, only individual specs were updated to remove EL.
Ondro
On Feb 24, 2020, at 14:39, 'Emily Jiang' via Eclipse MicroProfile <microp...@googlegroups.com> wrote:
--
You received this message because you are subscribed to the Google Groups "Eclipse MicroProfile" group.
To unsubscribe from this group and stop receiving emails from it, send an email to microprofile...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/b7e9b3b4-69c9-420f-aa15-9f0f478b5f1d%40googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to microp...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to microprofile...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/b84f44da-2dea-4bad-af45-d5484712b0e6%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/b84f44da-2dea-4bad-af45-d5484712b0e6%40googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to microprofile...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/b84f44da-2dea-4bad-af45-d5484712b0e6%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/b84f44da-2dea-4bad-af45-d5484712b0e6%40googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to microprofile+unsubscribe@googlegroups.com.
You received this message because you are subscribed to a topic in the Google Groups "Eclipse MicroProfile" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/microprofile/Rg4MPG4E6J4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to microprofile...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/5e98c22a.1c69fb81.eaa5e.c047%40mx.google.com.
You received this message because you are subscribed to a topic in the Google Groups "Eclipse MicroProfile" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/microprofile/Rg4MPG4E6J4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to microprofile...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/523db308-7ced-4bde-bad2-07173f419949%40googlegroups.com.
To unsubscribe from this group and all its topics, send an email to microp...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/523db308-7ced-4bde-bad2-07173f419949%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Eclipse MicroProfile" group.
To unsubscribe from this group and stop receiving emails from it, send an email to microprofile...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/8af1e9ae-3cb0-4187-939c-909ae28414af%40googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to microp...@googlegroups.com.
Thanks Jason for sharing that blog post. For others that have not seen it before, I think the additional context will help.Having read it a few times now, there is one aspect that still remains unclear. Is the desire to exclude portable extensions primarily driven by a current technical limitation of Graal or is it a longer term design tradeoff in favor of performance over an expanded feature set for CDI extensions writers? Could you kindly help provide a clear and definitive answer to that?
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/5e9ae1a4.1c69fb81.84168.66cc%40mx.google.com.
--
You received this message because you are subscribed to the Google Groups "Eclipse MicroProfile" group.
To unsubscribe from this group and stop receiving emails from it, send an email to microprofile...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/5e8f3cc8-af67-449a-a510-66733dcd4978%40googlegroups.com.
On Apr 18, 2020, at 6:16 AM, m.reza.rahman <m.reza...@gmail.com> wrote:Thanks Jason for sharing that blog post. For others that have not seen it before, I think the additional context will help.
Having read it a few times now, there is one aspect that still remains unclear. Is the desire to exclude portable extensions primarily driven by a current technical limitation of Graal or is it a longer term design tradeoff in favor of performance over an expanded feature set for CDI extensions writers? Could you kindly help provide a clear and definitive answer to that?
I do have another related and perhaps even more important question. The Micronaut folks recently expressed an interest in adopting Jakarta EE APIs. I imagine this likely includes things like CDI, JAX-RS, JPA, Bean Validation and Servlet. Has anyone reached out to those folks to see what their options on some of these things are? Wouldn't it be helpful if those folks also validated some of the design decisions in Quarkus with regards to CDI Lite? To me, the prospect of broadening the reach of the Jakarta EE ecosystem would be a pretty compelling value proposition for CDI Lite?
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/5e9ae1a4.1c69fb81.84168.66cc%40mx.google.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/A1E90974-E881-4B75-9044-D7ED2DE9EDD6%40redhat.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/A1E90974-E881-4B75-9044-D7ED2DE9EDD6%40redhat.com.
It’s not quite either of these things. The desire to allow extensibility is a reasonable one, it's the mechanism by which that is accomplished that is the issue. The problem is basically an impedance mismatch. The portable extension SPI is a very loose, weakly encapsulated SPI that is open-ended, and very much built around the assumption that injection happens at runtime as part of a traditional application deployment/initialization phase. The side effect of that it’s approach is inherently incompatible with any build-time injection approach (Guice/Dagger, Micronaut, Quarkus etc).Further, since a CDI Portable Extension is expected to be executed at runtime, and with a lifecycle that is commingled with the application and framework runtime, extensions end up being strongly coupled to application elements. Live objects can and often are, directly passed between the layers. This can’t work in a build-time model because injection decisions and application start are executed at completely different points in time and in completely different VMs.Build-time injection is very important to native compilation, since otherwise you negate optimizations the compilation process would otherwise bring. However, it also benefits JVM execution as well, since discovery, wiring, and code generation is all precomputed, and you avoid a significant number of reflection call sites, as well as massive amount of metadata and large lookup tables to support it all.To use an example of this on the native side, AOT native compilers like GraalVM, can do closed-world optimizations such as dead code elimination, however, if you tried to handle this with traditional runtime injection like in Weld, you would have to force the compiler to include everything (all classes, all methods all fields, etc) because until injection is resolved it’s not known what’s used and what’s not used. So if there was 100 classes, but only one of them was actually wired (alternatives etc), you include the 99 and all the dependencies they bring anyway. This is especially the case when portable extensions are involved, since they can transform anything into a bean, arbitrarily rewrite metadata, generate proxies, and/or new bytecode/classes. The latter will not work at all since the application is already compiled, and there is no JVM to recompile it.The problems portable extensions are intended to solve can be addressed with purpose-built SPIs that are more encapsulated and thus better suited to tolerate implementation variance (and likely simpler to use). Think of it as USB/bluetooth vs the soldering iron + screwdriver we have in the spec today. This would all be complementary, and not in competition. Antoine mentioned in the referenced blog how something similar was already partly done in SE.Once we have a CDI-Lite that addresses these points it can make a much cleaner dependency for MP, although it might be worth considering defining the dependency on JSR-330/Atinject since that offers even greater flexibility to implementations and solves the problem today.
You received this message because you are subscribed to a topic in the Google Groups "Eclipse MicroProfile" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/microprofile/Rg4MPG4E6J4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to microprofile...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/A1E90974-E881-4B75-9044-D7ED2DE9EDD6%40redhat.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/A1E90974-E881-4B75-9044-D7ED2DE9EDD6%40redhat.com.
> On Apr 21, 2020, at 8:43 AM, Guillermo González de Agüero <z06.gu...@gmail.com> wrote:
>
> Hi Jason,
>
> If current extension mechanism is not suited for build time, then we should aim for an alternative mechanism before making the current one optional.
Hello Guillermo,
The problem is that while we could declare this as a new requirement (the status quo is undefined, so its effectively already optiional), it would be at best ineffective or at worst hurt participation.
You ultimately can’t force working implementations that can implement all of the MP specs from implementing something that they can’t do, that is incompatible with their architecture ( can’t squeeze blood from a stone!) There isn’t much teeth with an open spec/standard anyway, since everyone is free to implement the APIs and report that truth . What you can do though is make them feel unwelcome, to discourage future implementations from joining, and discourage existing participants from contributing improvements and innovations that benefit everyone back. We need more carrot and less stick. More value and less you can’t dos
At the end of the day the same number of platforms that support portable extensions will remain, regardless of any decision made here, since those that can support full CDI will and already do. So there is no harm on that side of the equation, only the potential for more on the other frameworks.
-Jason
--
You received this message because you are subscribed to the Google Groups "Eclipse MicroProfile" group.
To unsubscribe from this group and stop receiving emails from it, send an email to microprofile...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/EDFA9144-CFFB-4FDE-A115-8938BB831626%40redhat.com.
The problem is that while we could declare this as a new requirement (the status quo is undefined, so its effectively already optiional)
On Apr 21, 2020, at 11:05 AM, Guillermo González de Agüero <z06.gu...@gmail.com> wrote:
Hi Jason,Thanks for replying!
On Tue, Apr 21, 2020 at 4:59 PM Jason Greene <jason....@redhat.com> wrote:
> On Apr 21, 2020, at 8:43 AM, Guillermo González de Agüero <z06.gu...@gmail.com> wrote:
>
> Hi Jason,
>
> If current extension mechanism is not suited for build time, then we should aim for an alternative mechanism before making the current one optional.
Hello Guillermo,
The problem is that while we could declare this as a new requirement (the status quo is undefined, so its effectively already optiional), it would be at best ineffective or at worst hurt participation.There are multiple interpretations of what exactly it means (hence this thread), but I don't think that means exactly that some arbitrary feature (extensions in this case) is optional.
You ultimately can’t force working implementations that can implement all of the MP specs from implementing something that they can’t do, that is incompatible with their architecture ( can’t squeeze blood from a stone!) There isn’t much teeth with an open spec/standard anyway, since everyone is free to implement the APIs and report that truth . What you can do though is make them feel unwelcome, to discourage future implementations from joining, and discourage existing participants from contributing improvements and innovations that benefit everyone back. We need more carrot and less stick. More value and less you can’t dosThe current situation is that extensions are not AOT friendly, but Helidon using Weld with AOT demonstrates that it's actually possible. Quarkus decided to create a CDI implementation optimized for native compilation, but to my knowledge, the reason it doesn't support Extensions is because they can't be optimized, but because they *can't* be done.
Interesting point indeed. What is the practical assessment of when it will be possible to create an AOT friendly equivalent of portable extensions? Is it truly that far afield? If it isn't, why not wait a bit to define CDI Lite properly?Reza RahmanJakarta EE Ambassador, Author, Blogger, SpeakerPlease note views expressed here are my own as an individual community member and do not reflect the views of my employer.Sent via the Samsung Galaxy S7, an AT&T 4G LTE smartphone-------- Original message --------From: Guillermo González de Agüero <z06.gu...@gmail.com>Date: 4/21/20 9:43 AM (GMT-05:00)To: Eclipse MicroProfile <microp...@googlegroups.com>Subject: Re: [microprofile] MP definition of CDI
Hi Jason,If current extension mechanism is not suited for build time, then we should aim for an alternative mechanism before making the current one optional. Most CDI integrations are done via extensions today, mainly because they are the only mechanism we have. Most of those extensions could be migrated to a different SPI that can be processed at build time, but making the only available mechanism optional now just means they won't work.With all EE specs leaning to CDI, having Extensions support on MP means I can basically plug those new specs, on any runtime. I can add Soteria dependency and get EE Security API on my MP implementation (provided that it has Servlet and JASPIC, but that's another story). Making them optional breaks this assumption by making the main integration mechanism vendor specific.Yes, current extensions SPI misses a lot of build time optimization opportunities, but as you say, that doesn't mean they don't work. Helidon has full native CDI support, using JBoss Weld. You can warn users about the trade-offs of using Extensions, encourage not to use them and provide vendor specific alternatives. But I don't think it's fair to make it optional for MP until there's an *official* alternative, as Emily proposed.Regards,Guillermo González de Agüero
On Tue, Apr 21, 2020 at 1:41 AM Jason Greene <jason...@redhat.com> wrote:
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/46d0f36f-132c-4433-8ea1-5ac4a9082809%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Eclipse MicroProfile" group.
To unsubscribe from this group and stop receiving emails from it, send an email to microp...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/5e9ae1a4.1c69fb81.84168.66cc%40mx.google.com.
--
You received this message because you are subscribed to the Google Groups "Eclipse MicroProfile" group.
To unsubscribe from this group and stop receiving emails from it, send an email to microp...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/A1E90974-E881-4B75-9044-D7ED2DE9EDD6%40redhat.com.
--
You received this message because you are subscribed to the Google Groups "Eclipse MicroProfile" group.
To unsubscribe from this group and stop receiving emails from it, send an email to microp...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/CAG1ZpUZfP6WEOESfjEdmYA7r%2B1zXMgQaMuYuF41qMyMsDhVhdg%40mail.gmail.com.