[ 
http://team.ops4j.org/browse/QI-364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17585#comment-17585
 ] 

Paul Merlin commented on QI-364:
--------------------------------


Hi,

I'm getting close. The new Activation system is fully working and unit tested.
I did not remove the Activatable interface yet because that imply a lot of 
tedious changes in libraries, extensions, tools and samples.

The 
"[feature/QI-364_DecouplingServiceActivators|https://github.com/Qi4j/qi4j-sdk/commits/feature/QI-364_DecouplingServiceActivators]";
 branch contains few big commits but their messages should make them reviewable.

This is my first big change to the core and it allowed me to dive deeper in 
Qi4j core.
I must say that it wasn't difficult because it's well thought and written, but 
I already knew that.

Changes have a very little impact on api but more on runtime.

Before moving forward I would like a code review to confirm I took the right 
path and point areas where I could have done something wrong.

Next steps would be:
- porting all libraries, extensions, tools and samples
- removing the Activatable interface
- impact documentation

Niclas, could you handle the code review please?

Cheers

/Paul

                
> Decoupling Service Activators
> -----------------------------
>
>                 Key: QI-364
>                 URL: http://team.ops4j.org/browse/QI-364
>             Project: Qi4j
>          Issue Type: New Feature
>            Reporter: Niclas Hedhman
>            Assignee: Paul Merlin
>            Priority: Blocker
>             Fix For: 2.0 - Reductionism
>
>
> In 1.x, Activatable was used to get Services up and running. However, I feel 
> that the concepts are mixed up in a bad way, since Activatable initially 
> relied on that the Activatable method was exposed like any other method, and 
> that there could only be one. Later, we added that any Mixin that got 
> instantiated, would have its Activatable methods called. But, a pure Mixin 
> for only the purpose of starting up the service couldn't really be supported.
> Further, internally in Qi4j Runtime, there is an Activation mechanism in 
> place;
>   * User "activate" the application.
>   * The Application activates the Layers.
>   * Each Layer activates the Modules.
>   * Each Module activates the Services (if instantiateOnStartup).
> The current system is fragile (if a Mixin with the start-up code has its 
> method(s) overridden it will not be instantiated), and we need to find a new 
> solution. This will break compatibility, so it is imperative that this is 
> solved prior to 2.0 release.
> Action item 1; *Remove Activatable interface*
> There are possibly a few ways to provide this functionality, listed in 
> individual comments below.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
http://team.ops4j.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev

Reply via email to