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:
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" <john.ament(a)spartasystems.com
<mailto:john.ament@spartasystems.com>> 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
cdi-dev(a)lists.jboss.org <mailto:cdi-dev@lists.jboss.org>
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
cdi-dev(a)lists.jboss.org
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.