Class BaseApplicationContextHelper

java.lang.Object
org.alfresco.util.BaseApplicationContextHelper
Direct Known Subclasses:
DataModelTestApplicationContextHelper

public abstract class BaseApplicationContextHelper extends Object
Helper class to provide static and common access to the Spring application context.
Author:
Derek Hulley
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    Can be used in Spring configuration to search for all resources matching an array of patterns.
    protected static class 
    A wrapper around ClassPathXmlApplicationContext which allows us to enable lazy loading or prevent Subsystem autostart as requested.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    buildClassLoader(String[] classLocations)
    Build a classloader for the given classLocations, using the thread's context class loader as its parent.
    static void
    Closes and releases the application context.
    static org.springframework.context.ApplicationContext
    getApplicationContext(String[] configLocations)
     
    static org.springframework.context.ApplicationContext
    getApplicationContext(String[] configLocations, String[] classLocations)
    Provides a static, single instance of the application context.
    static boolean
    Is there currently a context loaded and cached?
    static boolean
    Will Subsystems with the autoStart=true property set on them be allowed to auto start? The default is to honour the spring configuration and allow them to, but they can be prevented if required.
    static boolean
    Will the Spring beans be initilised in a lazy manner, or all in one go? The default it to load everything in one go, as spring normally does.
    static void
    setNoAutoStart(boolean noAutoStart)
    Should the autoStart=true property on subsystems be honoured, or should this property be ignored and the auto start prevented? Normally we will use the spring configuration to decide what to start, but when running tests, you can use this to prevent the auto start.
    static void
    setUseLazyLoading(boolean lazyLoading)
    Should the Spring beans be initilised in a lazy manner, or all in one go? Normally lazy loading/intialising shouldn't be used when running with the full context, but it may be appropriate to reduce startup times when using a small, cut down context.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • BaseApplicationContextHelper

      public BaseApplicationContextHelper()
  • Method Details

    • getApplicationContext

      public static org.springframework.context.ApplicationContext getApplicationContext(String[] configLocations)
    • buildClassLoader

      public static ClassLoader buildClassLoader(String[] classLocations) throws IOException
      Build a classloader for the given classLocations, using the thread's context class loader as its parent.
      Parameters:
      classLocations - String[]
      Returns:
      ClassLoader
      Throws:
      IOException
    • getApplicationContext

      public static org.springframework.context.ApplicationContext getApplicationContext(String[] configLocations, String[] classLocations) throws IOException
      Provides a static, single instance of the application context. This method can be called repeatedly.

      If the configuration requested differs from one used previously, then the previously-created context is shut down.

      Returns:
      Returns an application context for the given configuration
      Throws:
      IOException
    • closeApplicationContext

      public static void closeApplicationContext()
      Closes and releases the application context. On the next call to getApplicationContext(String[]) , a new context will be given.
    • setUseLazyLoading

      public static void setUseLazyLoading(boolean lazyLoading)
      Should the Spring beans be initilised in a lazy manner, or all in one go? Normally lazy loading/intialising shouldn't be used when running with the full context, but it may be appropriate to reduce startup times when using a small, cut down context.
    • isUsingLazyLoading

      public static boolean isUsingLazyLoading()
      Will the Spring beans be initilised in a lazy manner, or all in one go? The default it to load everything in one go, as spring normally does.
    • setNoAutoStart

      public static void setNoAutoStart(boolean noAutoStart)
      Should the autoStart=true property on subsystems be honoured, or should this property be ignored and the auto start prevented? Normally we will use the spring configuration to decide what to start, but when running tests, you can use this to prevent the auto start.
    • isNoAutoStart

      public static boolean isNoAutoStart()
      Will Subsystems with the autoStart=true property set on them be allowed to auto start? The default is to honour the spring configuration and allow them to, but they can be prevented if required.
    • isContextLoaded

      public static boolean isContextLoaded()
      Is there currently a context loaded and cached?