polygene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kent Sølvsten (JIRA) <j...@apache.org>
Subject [jira] [Commented] (POLYGENE-295) Activation broken
Date Thu, 29 Mar 2018 07:35:00 GMT

    [ 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)?



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

View raw message