[ https://issues.apache.org/jira/browse/POLYGENE-295?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16418548#comment-16418548
]
Kent Sølvsten commented on POLYGENE-295:
----------------------------------------
Hi Niclas
I guess that your last point regarding assembly is adressed by ServiceDeclaration#withActivators
(at least i guess the method is intended to solve that case)?
Also,
The disucussion is a little bit confusing to me.
Am i correct in assuming that the ServiceActivation is indeed invoked when setup correctly,
so the issue should rather be described as
# ServiceActivation is too difficult to use
# ServiceActivation has threading issued if the service is initialized lazily
> Activation broken
> -----------------
>
> Key: POLYGENE-295
> URL: https://issues.apache.org/jira/browse/POLYGENE-295
> Project: Polygene
> Issue Type: Bug
> Affects Versions: 2.0, 2.1, 3.0.0
> Reporter: Niclas Hedhman
> Priority: Major
>
> It is quite possible to get service calls before the activate() method has been called.
For instance, inject a Service into the constructor of an Object and call objectFactory.newObject().
Even if instantiateOnStartup(), the activation is not called first.
> On top of that, we have a general issue that the bootstrap code is not really thread-safe
(no effort was made on that), and lazy-initialization may cause model corruption due to that,
which kind of ties in with the Activation system. I suspect that the above problem is some
kind of mixing of concerns and it gets messed up what is supposed to have happened already.
> Step 1; Fix that activation is ALWAYS called before method calls.
> Step 2; Discuss how to deal with lazy initialization. Either make sure that everything
in Core Runtime is thread-safe, or drop the current lazy initialization, and possibly replace
with a Concern instead (which intercepts the activate() call, and make that happen upon next
method call to the service. That seems to be a lot more straight forward and also inline with
Polygene principles (eat your own dog food).
>
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
|