Re: [DISCUSS] CDI-4.0 core

2022-10-12 Thread David Blevins
> On Jun 2, 2022, at 12:03 PM, Mark Struberg  wrote:
> 
> I had an idea about how we could implement CDI-4.0 without all the overhead 
> it brings.

Can you elaborate on the overhead you're concerned about? (not a challenge -- 
I'm not very familiar with the details yet)


-David



smime.p7s
Description: S/MIME cryptographic signature


Re: [DISCUSS] CDI-4.0 core

2022-10-12 Thread Romain Manni-Bucau
Well, about the scanning we already handle build time scanning thanks se
api (disableDiscovery + extension for explicit registration /
prescannedmetada service, this is what we use to be graal friendly).

About javax/jakarta: the whole point is to decoralate from the spec which
went in a bad escape lane and only expose supported api and not a set of
api we'll not impl + not fake implementing an api (@inject debate) if we
change the default behavior.

We can still fake the code at build time by monkey matching the spec type
to impl it semi-automatically thanks a build plugin if you find it more
relevant but think if we end up using jakarta spec this idea kind of end in
the status quo since end users will still consume the spec and rely on its
instability and verbosity.

Hope it makes sense.


Le mer. 12 oct. 2022 à 21:02, Arne Limburg 
a écrit :

> Hi Romain,
>
> I would love to elaborate that further. I would remove the scanning part
> in example (or make it pluggable). Then we could easily implement
> compile-time scanning or something like that.
> Maybe the core should start with a set of Beans and only do the runtime
> stuff.
> Setup could be done in different modules (cdi-1, cdi-2, cdi-lite, …)
>
> I like the overall idea also I hate that we would have to wrap Bean
> interface and friends in the CDI module. Maybe we find a better way to do
> that (i.e. extracting a cdi-minmal-api or so, but we still would have to
> decide between javax or jakarta namespace).
>
> 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
> www.openknowledge.de<
> https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.openknowledge.de%2F=04%7C01%7C%7C3004d8758be44c8678c008d93bcc1e23%7C48837bc476f9481d8a76bd7b60b43dec%7C0%7C0%7C637606570139932909%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000=9vRVYZVZ%2Feqk%2BvFxU5COofNvgs8U0AxtxRqwVEwqXHA%3D=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=04%7C01%7C%7C3004d8758be44c8678c008d93bcc1e23%7C48837bc476f9481d8a76bd7b60b43dec%7C0%7C0%7C637606570139932909%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000=8tjmukdm1NxhXQMkn4VnESiBI216kXvh%2Fjb7%2FFYI0kE%3D=0
> >
>
> Von: Romain Manni-Bucau 
> Datum: Mittwoch, 12. Oktober 2022 um 18:11
> An: dev@openwebbeans.apache.org 
> Betreff: Re: [DISCUSS] CDI-4.0 core
> Hi Arne,
>
> What I'm looking for is basically be able to use most of CDI programming
> model (contexts, SE scanning, interceptors, ...) maybe not decorators - no
> strong opinion on them.
> The impl would use a default defining service which would be the
> classloader implementation to be any java version friendly without hacks
> and the preloaded flavor impl should be usable (optim or graal native-image
> case - SM case is no more relevant I guess since it will be dropped).
> We could also probably force to have a META-INF/beans.xml (or
> META-INF/owb.xml if we prefer) for the scanning to not get this broken
> implicit annotated mode CDI 2 introduced.
> In terms of extension I guess we can keep it - adding/mutating
> types/interceptors/... at runtime is key, but it would also be fine to go
> back on CDI 1.0 layer since new API are mainly duplicates or synthaxic
> sugar.
> Since it would be an impl I'm not sure we need the interface/impl split so
> we can save some class by just using a direct class (public class
> ProcessAnnotatedType for ex) if it makes sense.
>
> In terms of supported API set (jakarta.inject.Inject vs
> org.apache.openwebbeans.api.Inject for ex) I guess we would add a service
> in WBC to enable to read the set we want.
> Default would be o.a.owb one, cdi impl module would switch to
> o.a.owb+jakarta/javax ones - a bit like our resource service but more
> generic.
>
> In terms of impl, cdi module would mainly wrap the core objects and extend
> it in some locations, a bit like tomee does for OWB@EE.
>
>
> Romain Manni-Bucau
> @rmannibucau <
> https://eur05.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftwitter.com%2Frmannibucaudata=05%7C01%7Carne.limburg%40openknowledge.de%7C7e1fdc465e22428ceea508daac6c6852%7C8486f66fc6f54811813685d3987d78e6%7C0%7C0%7C638011878848401406%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7Csdata=PQbRCzdzdQ8v2AqUz%2F9SZg0gFwy5c8CR3CzgIPf6vEs%3Dreserved=0>
> |  Blog
> <
> 

AW: [DISCUSS] CDI-4.0 core

2022-10-12 Thread Arne Limburg
Hi Romain,

I would love to elaborate that further. I would remove the scanning part in 
example (or make it pluggable). Then we could easily implement compile-time 
scanning or something like that.
Maybe the core should start with a set of Beans and only do the runtime stuff.
Setup could be done in different modules (cdi-1, cdi-2, cdi-lite, …)

I like the overall idea also I hate that we would have to wrap Bean interface 
and friends in the CDI module. Maybe we find a better way to do that (i.e. 
extracting a cdi-minmal-api or so, but we still would have to decide between 
javax or jakarta namespace).

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
www.openknowledge.de
Registergericht: Amtsgericht Oldenburg, HRB 4670
Geschäftsführer: Lars Röwekamp, Jens Schumann

Treffen Sie uns auf kommenden Konferenzen und Workshops:
Zu unseren 
Events

Von: Romain Manni-Bucau 
Datum: Mittwoch, 12. Oktober 2022 um 18:11
An: dev@openwebbeans.apache.org 
Betreff: Re: [DISCUSS] CDI-4.0 core
Hi Arne,

What I'm looking for is basically be able to use most of CDI programming
model (contexts, SE scanning, interceptors, ...) maybe not decorators - no
strong opinion on them.
The impl would use a default defining service which would be the
classloader implementation to be any java version friendly without hacks
and the preloaded flavor impl should be usable (optim or graal native-image
case - SM case is no more relevant I guess since it will be dropped).
We could also probably force to have a META-INF/beans.xml (or
META-INF/owb.xml if we prefer) for the scanning to not get this broken
implicit annotated mode CDI 2 introduced.
In terms of extension I guess we can keep it - adding/mutating
types/interceptors/... at runtime is key, but it would also be fine to go
back on CDI 1.0 layer since new API are mainly duplicates or synthaxic
sugar.
Since it would be an impl I'm not sure we need the interface/impl split so
we can save some class by just using a direct class (public class
ProcessAnnotatedType for ex) if it makes sense.

In terms of supported API set (jakarta.inject.Inject vs
org.apache.openwebbeans.api.Inject for ex) I guess we would add a service
in WBC to enable to read the set we want.
Default would be o.a.owb one, cdi impl module would switch to
o.a.owb+jakarta/javax ones - a bit like our resource service but more
generic.

In terms of impl, cdi module would mainly wrap the core objects and extend
it in some locations, a bit like tomee does for OWB@EE.


Romain Manni-Bucau
@rmannibucau 

 |  Blog

 | Old Blog

 | Github 

Re: [DISCUSS] CDI-4.0 core

2022-10-12 Thread Romain Manni-Bucau
Hi Arne,

What I'm looking for is basically be able to use most of CDI programming
model (contexts, SE scanning, interceptors, ...) maybe not decorators - no
strong opinion on them.
The impl would use a default defining service which would be the
classloader implementation to be any java version friendly without hacks
and the preloaded flavor impl should be usable (optim or graal native-image
case - SM case is no more relevant I guess since it will be dropped).
We could also probably force to have a META-INF/beans.xml (or
META-INF/owb.xml if we prefer) for the scanning to not get this broken
implicit annotated mode CDI 2 introduced.
In terms of extension I guess we can keep it - adding/mutating
types/interceptors/... at runtime is key, but it would also be fine to go
back on CDI 1.0 layer since new API are mainly duplicates or synthaxic
sugar.
Since it would be an impl I'm not sure we need the interface/impl split so
we can save some class by just using a direct class (public class
ProcessAnnotatedType for ex) if it makes sense.

In terms of supported API set (jakarta.inject.Inject vs
org.apache.openwebbeans.api.Inject for ex) I guess we would add a service
in WBC to enable to read the set we want.
Default would be o.a.owb one, cdi impl module would switch to
o.a.owb+jakarta/javax ones - a bit like our resource service but more
generic.

In terms of impl, cdi module would mainly wrap the core objects and extend
it in some locations, a bit like tomee does for OWB@EE.


Romain Manni-Bucau
@rmannibucau  |  Blog
 | Old Blog
 | Github  |
LinkedIn  | Book



Le mer. 12 oct. 2022 à 17:48, Arne Limburg 
a écrit :

> Hi,
>
> I know, I am late to the party.
> I actually like the idea of an own API and maybe adding CDI-(and/or
> CDI-lite) support on top of it.
> Romain, could you elaborate further, how this API should look like and
> what part of our current impl could be moved into it (and which parts
> should be moved somewhere else)?
>
> 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
> www.openknowledge.de<
> https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.openknowledge.de%2F=04%7C01%7C%7C3004d8758be44c8678c008d93bcc1e23%7C48837bc476f9481d8a76bd7b60b43dec%7C0%7C0%7C637606570139932909%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000=9vRVYZVZ%2Feqk%2BvFxU5COofNvgs8U0AxtxRqwVEwqXHA%3D=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=04%7C01%7C%7C3004d8758be44c8678c008d93bcc1e23%7C48837bc476f9481d8a76bd7b60b43dec%7C0%7C0%7C637606570139932909%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000=8tjmukdm1NxhXQMkn4VnESiBI216kXvh%2Fjb7%2FFYI0kE%3D=0
> >
>
> Von: Romain Manni-Bucau 
> Datum: Freitag, 3. Juni 2022 um 13:47
> An: openwebbeans-dev 
> Betreff: Re: [DISCUSS] CDI-4.0 core
> Le ven. 3 juin 2022 à 13:34, Mark Struberg  a
> écrit :
>
> > The point is that most of the new API is really for that Quarkus use
> case.
> > And this can be done in a portable extension as well if one wants. So I
> see
> > zero reason to implement it. And also zero reason to have those api
> classes
> > in my classpath. The rest would be mostly for tomee to be able to go
> > forward.
> >
>
> Hmm, I don't see it this way:
>
> 1. This is not limited to quarkus case even if it got copied form there and
> if I fully agree the spec was wrongly done at technical level (not a single
> valid reason to do it this way but several to NOT do it)
> 2. We have a very valid reason to implement it: we are a CDI impl, if we
> start to not be spec compliant we don't have any value until we have our
> own API as explained (this is the main exit point for us to not respect the
> full spec IMHO)
> 3. About the classpath: agree, there is also a bug in last cdi release for
> jakarta 10 where it brings transitively build classes (no comment)
>
> This is why I think the topic is OWB API vs 100% spec one more than CDI vs
> CDI.custom which would be more misleading for most consumers IMHO.
>
>
> >
> > LieGrue,
> > strub
> >
> >
> > > Am 03.06.2022 um 08:31 schrieb Romain Manni-Bucau <
> rmannibu...@gmail.com
> > >:
> > >
> > > Le jeu. 2 juin 2022 à 22:44, Mark Struberg 
> a
> > > écrit :
> > >
> > >> would imo introduce too many layers which might be hard to maintain in
> > the
> > >> long run. With 

AW: [DISCUSS] CDI-4.0 core

2022-10-12 Thread Arne Limburg
Hi,

I know, I am late to the party.
I actually like the idea of an own API and maybe adding CDI-(and/or CDI-lite) 
support on top of it.
Romain, could you elaborate further, how this API should look like and what 
part of our current impl could be moved into it (and which parts should be 
moved somewhere else)?

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
www.openknowledge.de
Registergericht: Amtsgericht Oldenburg, HRB 4670
Geschäftsführer: Lars Röwekamp, Jens Schumann

Treffen Sie uns auf kommenden Konferenzen und Workshops:
Zu unseren 
Events

Von: Romain Manni-Bucau 
Datum: Freitag, 3. Juni 2022 um 13:47
An: openwebbeans-dev 
Betreff: Re: [DISCUSS] CDI-4.0 core
Le ven. 3 juin 2022 à 13:34, Mark Struberg  a
écrit :

> The point is that most of the new API is really for that Quarkus use case.
> And this can be done in a portable extension as well if one wants. So I see
> zero reason to implement it. And also zero reason to have those api classes
> in my classpath. The rest would be mostly for tomee to be able to go
> forward.
>

Hmm, I don't see it this way:

1. This is not limited to quarkus case even if it got copied form there and
if I fully agree the spec was wrongly done at technical level (not a single
valid reason to do it this way but several to NOT do it)
2. We have a very valid reason to implement it: we are a CDI impl, if we
start to not be spec compliant we don't have any value until we have our
own API as explained (this is the main exit point for us to not respect the
full spec IMHO)
3. About the classpath: agree, there is also a bug in last cdi release for
jakarta 10 where it brings transitively build classes (no comment)

This is why I think the topic is OWB API vs 100% spec one more than CDI vs
CDI.custom which would be more misleading for most consumers IMHO.


>
> LieGrue,
> strub
>
>
> > Am 03.06.2022 um 08:31 schrieb Romain Manni-Bucau  >:
> >
> > Le jeu. 2 juin 2022 à 22:44, Mark Struberg  a
> > écrit :
> >
> >> would imo introduce too many layers which might be hard to maintain in
> the
> >> long run. With the current plugin structure you can already run without
> >> even class scanning and dynamic bytecode tinkering if one wants.
> >> So don't think it's worth to add another layer of abstraction in the
> >> middle.
> >>
> >
> > Thing is that currently you dont get most benefit, just tech extension
> > points to make the run work:
> >
> > - you leverage jakarta/javax and their mess+breaking
> > changes+inconsistencies from v4
> > - you get more than needed in api
> > - you have constraints on beans you dont need
> >
> > Your proposal is just the same but half baked since we are compatible or
> we
> > are not, this is why I think we should propose something really stable or
> > maybe just stick to impl the spec (modularly or not is a detail but tck
> > require both parts of the spec so passing only one is pointless for users
> > IMHO).
> >
> >
> >
> >> LieGrue,
> >> strub
> >>
> >>
> >>> Am 02.06.2022 um 21:32 schrieb Romain Manni-Bucau <
> rmannibu...@gmail.com
> >>> :
> >>>
> >>> Hi,
> >>>
> >>> Some times ago I proposed to extract a cdi-like-light owb bundle which
> >>> would be a minimal IoC without the cdi 2.0 boilerplate and probably
> >> unsafe
> >>> free to be "all env friendly". This is very close to owb-se except a
> few
> >>> spi, defaults and jakarta dep.
> >>>
> >>> Making it cdi-se/ee as an impl sounds more valuable today for the
> project
> >>> IMHO - because we tend to go lightweight cause of the cloud move and
> >>> projects stacking too much are not that adopted - and is still
> compatible
> >>> with your idea so can be worth starting owb 3 from these basis with a
> >> light
> >>> owb IoC api/spi (TBD if we inherit from jakarta or not) and then back
> >>> owb-impl by this "owb-core" and finally impl your idea on this new api?
> >>>
> >>>
> >>>
> >>> Le jeu. 2 juin 2022 à 21:04, Mark Struberg  >> > a
> >>> écrit :
> >>>
>  hi folks!
> 
>  I had an idea about how we could implement CDI-4.0 without all the
>  overhead it brings.
>  The goal is to keep OWB 

Report due but not yet filled?

2022-10-12 Thread Jean-Louis Monteiro
Hello,

Just noticed while doing Johnzon report that OWB is also due but nothing is
filled in.
Is it ok?
--
Jean-Louis Monteiro
http://twitter.com/jlouismonteiro
http://www.tomitribe.com