Hi Romain,
1. Because Failsafe is a battle tested library. For me it's more
important to have a hardened implementation than avoid issues with
container isolation. Do you have an example or a test for one of those
issues?
2. The TCK are external validation tests. I prefer the current
separation. I see your point of fast test feedback but, again, the tests
in the implementation should be safegard tests to make the lib as good
as possible and then, see if it passes the TCK.
I can live with an installed lib that doesn't pass the TCK. We only need
to make sure it's working before we release.
Cheers and thanks for your interest.
Bruno Baptista
https://twitter.com/brunobat_
On 22/11/18 13:07, Romain Manni-Bucau wrote:
Le jeu. 22 nov. 2018 à 12:33, Bruno Baptista <[email protected]
<mailto:[email protected]>> a écrit :
Hi Romain,
1. Against in the near future. Too much effort, risk and a long
time to harden the code without obvious gains.
Why? :)
Also note that in tomee this is key to avoid issues since tomee does
not want of container/app isolation (for good reasons)
Finally half of the required impl is not in the lib so it is like
importing commons-lang to do placeholder handling in an app, likely
overkilled.
2. +1
3. why?
To not install/deploy a failling module, most of the impl tests are
the tck so this is a bad practise to have it tested after it is
installed - and can lead to broken deployments.
4. +0
5. There will be additional changes around the interceptor.
On a general note, I'm more concerned in implementing the MP-FT
features than re-write the whole thing and in the end be in the
same place were we started.
Cheers.
Bruno Baptista
https://twitter.com/brunobat_
On 22/11/18 10:57, Romain Manni-Bucau wrote:
There are several discussions about safeguard so i'd like we try
to get a dedicated thread about it and see how we move forward
this lib.
Personally I'd like to align it on the way other impls are done
which concretely means:
1. drop failsafe
2. probably drop the API module which mainly adds builders and
definition models to make it part of the implementation and stick
to the spec in terms of exposed API
3. merge tck module in the implementation module
4. probably make FailsafeExecutionManager a cdi bean (we can keep
it usable programmatically if needed too, this is not one or the
other) to let the nested components be injected and overridable
one by one instead of having to override them all
5. try to respect CDI model and not use reflections in
interceptors (drop AnnotationUtil), this is likely the hardest
since the spec does not enables it directly but we did with quite
some success in other specs
I did a quick check and once 2 is done the effort for 1 is very
doable and 3/4 are quite trivial
Wdyt?
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>