Le 4 avr. 2018 19:37, "Mark Struberg" <strub...@yahoo.de.invalid> a écrit :

But that's still problematic.
you have request1 ongoing and call in the following order:
ftpConfig.host();ftpConfig.port();// <- and here some config update happens
ftpConfig.username();


So even if we update the whole ftpConfig 'at once' you will end up with
mixed up information in this request, right?
The only viable solution is to have a @RequestScoped ConfigTransaction
spanning all those TypedResolvers of the whole @Configuration. At least I
could not find any better solution.


This doesnt work for at least two reasons:

1. You assume you have request scoped
2. You assume the tx has tx guarantee

The only way to have 2 is to lock the whole "current" config for the read
time (so a readwritelock for a simple impl) which makes this request scope
useless since you just need to swap the cache value and update it at once
with the lock.

LieGrue,strub



    On Wednesday, 4 April 2018, 18:44:13 CEST, Romain Manni-Bucau <
rmannibu...@gmail.com> wrote:

 Since the cache is per instance we should just clear it on eviction at once
IMHO
the issue is: do you want to populate it at once too? tempted to say yes

this means it can always be active but requires to be able to copy the
current config state or prevent *any* update while populating such "cache"

+1 to do it without any flag


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
>

2018-04-04 18:40 GMT+02:00 Mark Struberg <strub...@yahoo.de.invalid>:

> We should also enhance the support to include @Configuration.
> e.g. if you have some class like
> @Configuration(cacheFor=60, cacheUnit=TimeUnit.MINUTES)
> public class FtpConfigation {  String host();  Integer port();  String
> username();  String encryptedPwd();}
>
> Then you will likely resolve all those values in an atomic way. This means
> that the values are basically backed by a @RequestScoped ConfigTransaction
> holder.
> Do we _always_ like to activate this feature?Or do we like to introduce
> another flag in the @Configuration annotation?
> What about threads which have no request Context active?Should it
> automatically fallback to on-demand resolving?
> LieGrue,strub
>
>    On Wednesday, 4 April 2018, 18:08:09 CEST, Mark Struberg
> <strub...@yahoo.de.INVALID> wrote:
>
>  hi folks!
> please review the proposed solution for DELTASPIKE-1335
> https://issues.apache.org/jira/browse/DELTASPIKE-1335
>
> Not quite sure about startTransaction and ConfigTransation are the right
> terms. Happy to get feedback!
>
> txs and LieGrue,strub
>

Reply via email to