Consistency across specs with the use of @Priority

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Consistency across specs with the use of @Priority

John Ament

I found this interesting to say the least.  In CDI, we use highest priority where the value of the @Priority annotation is compared the higher numeric value is considered higher priority.  We followed suite so far in MicroProfile specs.  I'm not looking to throw dirt, but wanted to get a general opinion from others on this.  The JAX-RS treats the lower numeric value as more important (in mathematical terms, it's being treated as the denominator).


> If two or more providers are candidates for a certain task, the one with the highest priority is chosen: the highest priority is defined to be the one with the lowest value in this case. That is, @Priority(1) is higher than @Priority(10). 

So I'm wondering, why did CDI use the approach that CDI is using?


John



NOTICE: This e-mail message and any attachments may contain confidential, proprietary, and/or privileged information which should be treated accordingly. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this message, and destroy all physical and electronic copies. Thank you.
_______________________________________________
cdi-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/cdi-dev

Note that for all code provided on this list, the provider licenses the code under the Apache License, Version 2 (http://www.apache.org/licenses/LICENSE-2.0.html). For all other ideas provided on this list, the provider waives all patent and other intellectual property rights inherent in such information.
Reply | Threaded
Open this post in threaded view
|

Re: Consistency across specs with the use of @Priority

Romain Manni-Bucau
From what I recall it is not the same for interceptors and decorators too. More about the chain vision and what is the "0" from my understanding.

Le 23 oct. 2017 03:55, "John Ament" <[hidden email]> a écrit :

I found this interesting to say the least.  In CDI, we use highest priority where the value of the @Priority annotation is compared the higher numeric value is considered higher priority.  We followed suite so far in MicroProfile specs.  I'm not looking to throw dirt, but wanted to get a general opinion from others on this.  The JAX-RS treats the lower numeric value as more important (in mathematical terms, it's being treated as the denominator).


> If two or more providers are candidates for a certain task, the one with the highest priority is chosen: the highest priority is defined to be the one with the lowest value in this case. That is, @Priority(1) is higher than @Priority(10). 

So I'm wondering, why did CDI use the approach that CDI is using?


John



NOTICE: This e-mail message and any attachments may contain confidential, proprietary, and/or privileged information which should be treated accordingly. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this message, and destroy all physical and electronic copies. Thank you.

_______________________________________________
cdi-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/cdi-dev

Note that for all code provided on this list, the provider licenses the code under the Apache License, Version 2 (http://www.apache.org/licenses/LICENSE-2.0.html). For all other ideas provided on this list, the provider waives all patent and other intellectual property rights inherent in such information.

_______________________________________________
cdi-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/cdi-dev

Note that for all code provided on this list, the provider licenses the code under the Apache License, Version 2 (http://www.apache.org/licenses/LICENSE-2.0.html). For all other ideas provided on this list, the provider waives all patent and other intellectual property rights inherent in such information.
Reply | Threaded
Open this post in threaded view
|

Re: Consistency across specs with the use of @Priority

Martin Kouba
Just to sum it up. In CDI we use pririority (either @Priority or
Prioritized) to:
- select an alternative globally and resolve ambiguous dependencies
- enable interceptor globally
- enable decorator
- order observers
- order CDIProviders

For alternatives the _highest_ priority value wins.

Interceptors and decorators with the _smaller_ priority values are
called first which means that an interceptor/decorator with highest
priority value is the "closest" to a bean business method invocation.

Observers with _smaller_ priority values are called first. BTW there was
a vote about observer ordering:
http://lists.jboss.org/pipermail/cdi-dev/2016-December/009410.html

CDIProvider with _highest_ priority is used.

Personally, I think it's more natural to process components with higher
priority first (note that priority != order). But when it comes to
interceptor chains things get more complicated.

Martin


Dne 23.10.2017 v 07:10 Romain Manni-Bucau napsal(a):

>  From what I recall it is not the same for interceptors and decorators
> too. More about the chain vision and what is the "0" from my understanding.
>
> Le 23 oct. 2017 03:55, "John Ament" <[hidden email]
> <mailto:[hidden email]>> a écrit :
>
>     I found this interesting to say the least. In CDI, we use highest
>     priority where the value of the @Priority annotation is compared the
>     higher numeric value is considered higher priority.  We followed
>     suite so far in MicroProfile specs. I'm not looking to throw dirt,
>     but wanted to get a general opinion from others on this.  The JAX-RS
>     treats the lower numeric value as more important (in mathematical
>     terms, it's being treated as the denominator).
>
>
>      > If two or more providers are candidates for a certain task, the
>     one with the highest priority is chosen: the highest priority is
>     defined to be the one with the lowest value in this case. That is,
>     @Priority(1) is higher than @Priority(10).
>
>     So I'm wondering, why did CDI use the approach that CDI is using?
>
>
>     John
>
>
>     ------------------------------------------------------------------------
>     NOTICE: This e-mail message and any attachments may contain
>     confidential, proprietary, and/or privileged information which
>     should be treated accordingly. If you are not the intended
>     recipient, please notify the sender immediately by return e-mail,
>     delete this message, and destroy all physical and electronic copies.
>     Thank you.
>
>     _______________________________________________
>     cdi-dev mailing list
>     [hidden email] <mailto:[hidden email]>
>     https://lists.jboss.org/mailman/listinfo/cdi-dev
>     <https://lists.jboss.org/mailman/listinfo/cdi-dev>
>
>     Note that for all code provided on this list, the provider licenses
>     the code under the Apache License, Version 2
>     (http://www.apache.org/licenses/LICENSE-2.0.html
>     <http://www.apache.org/licenses/LICENSE-2.0.html>). For all other
>     ideas provided on this list, the provider waives all patent and
>     other intellectual property rights inherent in such information.
>
>
>
> _______________________________________________
> cdi-dev mailing list
> [hidden email]
> https://lists.jboss.org/mailman/listinfo/cdi-dev
>
> Note that for all code provided on this list, the provider licenses the code under the Apache License, Version 2 (http://www.apache.org/licenses/LICENSE-2.0.html). For all other ideas provided on this list, the provider waives all patent and other intellectual property rights inherent in such information.
>

--
Martin Kouba
Senior Software Engineer
Red Hat, Czech Republic
_______________________________________________
cdi-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/cdi-dev

Note that for all code provided on this list, the provider licenses the code under the Apache License, Version 2 (http://www.apache.org/licenses/LICENSE-2.0.html). For all other ideas provided on this list, the provider waives all patent and other intellectual property rights inherent in such information.