Uploaded image for project: 'PUBLIC - Liferay Portal Community Edition'
  1. PUBLIC - Liferay Portal Community Edition
  2. LPS-56983

Remove OSGi Blueprint dependency from Service Builder applications

    Details

      Description

      A few parts of our current infrastructure is built on top of the Spring framework: transaction management, AOP infrastructure, dependency injection, ....

      Our Service Builder based apps require an specific Spring application context where we put some extra functionality. The current, and first approach, was to build the new infrastructure on top of Eclipse Gemini Blueprint, however is has some drawbacks:

      • The current version we are using is an snapshot. Nobody is taking care of the project and it is not evolving at all.
      • As we are doing more work on top of it, we find it quite inestable when doing redeployments of modules based on this infrastructure.
      • The OSGi Spec has no lead, and nobody seems to be interested in taking the leadership.
      • The startup of this modules is based on an "active waiting" approach so a bunch of threads are blocked while waiting for all the required dependencies.
      • We are revamping the Upgrade Infrastructure and we need a better control of the lifecycle of this apps

      Based on all of these we are going to replace the current infrastructure with a Declarative Service based approach. Some highlights (more technical details will be included on every subtask):

      • We are not removing Spring from the Service Builder apps. We are just using a completely different approach.
      • We are going to deal with the Spring Context as a single static unit. We don't plan to add dynamism to Spring (this is what Blueprint tries to do) but we are just going to deal with the contexts as a whole.
      • You will be able to specify references to OSGi services from your Spring Context, but if one of this references is gone, the whole application context will be gone (this is what "as a single static unit" means)
      • Startup of the apps will be done based on Declarative Services + Dependency Manager so we won't need an "active waiting" any longer.

        Attachments

        1.
        Create a Bnd Plugin to generate Spring Context Dependencies at build time LPS-56986 Technical Task Closed Brian Chan  
        2.
        Rewrite the Gemini Blueprint fragment into a Declarative Services + Dependency Manager LPS-57023 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
        3.
        Rewrite Service Builder tool to generate the new source according to the new solution LPS-57037 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
        4.
        Apply the new solution to the Polls application LPS-57038 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
        5.
        Apply the new solution to the Bookmarks application LPS-57042 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
        6.
        Apply the new solution to the Calendar app LPS-57046 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
        7.
        Apply the new solution to the Dynamic Data List app LPS-57056 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
        8.
        Apply the new solution to the Journal framework LPS-57057 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
        9.
        Apply the new pattern to the Marketplace application LPS-57058 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
        10.
        Apply the new pattern to the Microblogs application LPS-57059 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
        11.
        Apply the new pattern to the Service Access Control app LPS-57060 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
        12.
        Apply the new pattern to the Social Networking app LPS-57061 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
        13.
        Apply the new pattern to the Wiki app LPS-57062 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
        14.
        Apply the new pattern to the Lock service LPS-57064 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  
        15.
        Allow the JsonWS infrastucture to use a custom scanner and registrator LPS-57084 Technical Task Closed Brian Chan  
        16.
        Remove the Service Configurator pattern LPS-57277 Technical Task Closed Miguel Ángel Pastor Olivar (Inactive)  

          Activity

            People

            Assignee:
            miguel.pastor Miguel Ángel Pastor Olivar (Inactive)
            Reporter:
            miguel.pastor Miguel Ángel Pastor Olivar (Inactive)
            Recent user:
            Kiyoshi Lee
            Participants of an Issue:
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Packages

                Version Package
                7.0.0 M6