Improve Confluence startup time by avoiding Spring's createBean() post-processing

XMLWordPrintable

      Post processing via Spring createBean() is expensive for plugin modules

      Confluence module descriptors and macro modules are now created via the Spring bean factory's createBean() method. This change in code path has been implemented so that these modules can be manipulated by bean post processors declared in the application context. Unfortunately the computation of point cut shadows that is a part of this process is fairly expensive resulting in slower application start up times.

      Courses of attack:

      • Optimise the pointcut matching operations
      • Short circuit the pointcut shadow evaluations, make sure only the necessary bean post processors are activated when the module is created. This might be easily achieved when we start using a separate plugin Spring context.

      Classes affected:

      • com.atlassian.confluence.plugin.descriptor.CustomMacroModuleDescriptor
      • com.atlassian.confluence.plugin.ConfluenceModuleDescriptorFactory

              Assignee:
              Christopher Owen [Atlassian]
              Reporter:
              Christopher Owen [Atlassian]
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: