Class XMLSessionConfigLoader


  • public class XMLSessionConfigLoader
    extends java.lang.Object
    Provide a mechanism for loading Session configuration XML files. This is used by the SessionManager to define how to find and load a Session from a sessions XML file. The sessions XML file is typically deployed in the applications jar (ejb-jar) and named sessions.xml in the /META-INF directory. Several loading options are provided,
    • resourceName : The resource path and file name to the sessions XML file, default is /sessions.xml or /META-INF/sessions.xml. (ensure "/" is used, not "\"). A file path can also be provided, although a resource is typically used.
    • shouldLogin : Define if the loaded session should be connected, default true.
    • shouldRefresh : Define if the loaded session should be refreshed from the file, (this old session will be disconnected) default false.
    • classLoader : Define the class loader that should be used to find the resource. This loader will also be used as the loaded session's class loader. This should be the application's class loader. Default is the ConversionManager loader, which is thread-based.
    • shouldCheckClassLoader : Defines if the session will be refreshed from the file if the class loader requesting the load, is different than the loaded session's class loader. This can be used to handle re-deployment.
    Author:
    Guy Pelletier
    Since:
    TopLink 10.1.3
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.ClassLoader classLoader
      Define the class loader that should be used to find the resource.
      protected static java.lang.String DEFAULT_RESOURCE_NAME  
      protected static java.lang.String DEFAULT_RESOURCE_NAME_IN_META_INF  
      static java.lang.String ECLIPSELINK_SESSIONS_SCHEMA  
      protected org.eclipse.persistence.internal.sessions.factories.PersistenceEntityResolver entityResolver
      Used to store the entity resolver to validate the XML schema when parsing.
      protected java.util.Vector<java.lang.Throwable> exceptionStore
      Stores any exceptions that occurred to provide all the exceptions up front if the load fails.
      protected static Project project
      Cache the creation and initialization of the Session XML mapping project.
      protected java.lang.String resourceName  
      protected java.lang.String resourcePath
      Stores the resource path to provide a better error message if the load fails.
      protected java.lang.String sessionName
      Stores the name of the Session in the sessions XML file desired to be loaded.
      protected boolean shouldCheckClassLoader
      Defines if the session will be refreshed from the file if the class loader requesting the load is different than the loaded session's class loader.
      protected boolean shouldLogin
      Define if the loaded session should be connected, default true.
      protected boolean shouldRefresh
      Define if the loaded session should be refreshed from the file.
    • Constructor Summary

      Constructors 
      Constructor Description
      XMLSessionConfigLoader()
      PUBLIC: This constructor is used when the file resource named 'sessions.xml' will be parsed for configuration.
      XMLSessionConfigLoader​(java.lang.String resourceName)
      PUBLIC: This constructor is used when passing in the resource name of the configuration file that should be parsed
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.ClassLoader getClassLoader()
      PUBLIC: Return the class loader that should be used to find the resource.
      java.util.Vector<java.lang.Throwable> getExceptionStore()
      INTERNAL:
      protected static Project getProject()
      Cache the creation and initialization of the Session XML mapping project.
      java.lang.String getResourceName()
      PUBLIC: Returns the resource name we are trying to load.
      java.lang.String getResourcePath()
      INTERNAL: Will return the the resource name with full path of the resource file.
      java.lang.String getSessionName()
      PUBLIC: Returns the name of the Session in the sessions XML file desired to be loaded.
      boolean load​(SessionManager sessionManager, java.lang.ClassLoader loader)
      INTERNAL: This method instantiates the parser and builds the document based on the schema.
      org.eclipse.persistence.internal.sessions.factories.model.SessionConfigs loadConfigsForMappingWorkbench​(java.lang.ClassLoader loader)
      INTERNAL: This method is to be used to load config objects for the Mapping Workbench only.
      org.eclipse.persistence.internal.sessions.factories.model.SessionConfigs loadConfigsForMappingWorkbench​(java.lang.ClassLoader loader, boolean validate)
      INTERNAL: This method is to be used to load config objects for the Mapping Workbench only.
      protected org.w3c.dom.Document loadDocument​(java.lang.ClassLoader loader)
      INTERNAL: Load a session.xml document.
      protected org.w3c.dom.Document loadDocument​(java.lang.ClassLoader loader, boolean validate)
      INTERNAL: Load a session.xml document.
      void setClassLoader​(java.lang.ClassLoader classLoader)
      PUBLIC: Set the class loader that should be used to find the resource.
      void setResourceName​(java.lang.String resourceName)
      PUBLIC: Set the resource name we are trying to load.
      void setSessionName​(java.lang.String sessionName)
      PUBLIC: Set the name of the Session in the sessions XML file desired to be loaded.
      void setShouldCheckClassLoader​(boolean shouldCheckClassLoader)
      PUBLIC: Set if the session will be refreshed from the file if the class loader requesting the load is different than the loaded session's class loader.
      void setShouldLogin​(boolean shouldLogin)
      PUBLIC: Set if the loaded session should be connected.
      void setShouldRefresh​(boolean shouldRefresh)
      PUBLIC: Set if the loaded session should be refreshed from the file.
      boolean shouldCheckClassLoader()
      PUBLIC: Return if the session will be refreshed from the file if the class loader requesting the load is different than the loaded session's class loader.
      boolean shouldLogin()
      PUBLIC: Return if the loaded session should be connected.
      boolean shouldRefresh()
      PUBLIC: Return if the loaded session should be refreshed from the file.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • resourceName

        protected java.lang.String resourceName
      • resourcePath

        protected java.lang.String resourcePath
        Stores the resource path to provide a better error message if the load fails.
      • sessionName

        protected java.lang.String sessionName
        Stores the name of the Session in the sessions XML file desired to be loaded.
      • shouldLogin

        protected boolean shouldLogin
        Define if the loaded session should be connected, default true.
      • shouldRefresh

        protected boolean shouldRefresh
        Define if the loaded session should be refreshed from the file.
      • classLoader

        protected java.lang.ClassLoader classLoader
        Define the class loader that should be used to find the resource.
      • shouldCheckClassLoader

        protected boolean shouldCheckClassLoader
        Defines if the session will be refreshed from the file if the class loader requesting the load is different than the loaded session's class loader.
      • exceptionStore

        protected java.util.Vector<java.lang.Throwable> exceptionStore
        Stores any exceptions that occurred to provide all the exceptions up front if the load fails.
      • entityResolver

        protected org.eclipse.persistence.internal.sessions.factories.PersistenceEntityResolver entityResolver
        Used to store the entity resolver to validate the XML schema when parsing.
      • ECLIPSELINK_SESSIONS_SCHEMA

        public static final java.lang.String ECLIPSELINK_SESSIONS_SCHEMA
        See Also:
        Constant Field Values
      • DEFAULT_RESOURCE_NAME

        protected static final java.lang.String DEFAULT_RESOURCE_NAME
        See Also:
        Constant Field Values
      • DEFAULT_RESOURCE_NAME_IN_META_INF

        protected static final java.lang.String DEFAULT_RESOURCE_NAME_IN_META_INF
        See Also:
        Constant Field Values
      • project

        protected static final Project project
        Cache the creation and initialization of the Session XML mapping project.
    • Constructor Detail

      • XMLSessionConfigLoader

        public XMLSessionConfigLoader()
        PUBLIC: This constructor is used when the file resource named 'sessions.xml' will be parsed for configuration.
      • XMLSessionConfigLoader

        public XMLSessionConfigLoader​(java.lang.String resourceName)
        PUBLIC: This constructor is used when passing in the resource name of the configuration file that should be parsed
    • Method Detail

      • getProject

        protected static Project getProject()
        Cache the creation and initialization of the Session XML mapping project.
      • getResourcePath

        public java.lang.String getResourcePath()
        INTERNAL: Will return the the resource name with full path of the resource file.
      • getExceptionStore

        public java.util.Vector<java.lang.Throwable> getExceptionStore()
        INTERNAL:
      • getResourceName

        public java.lang.String getResourceName()
        PUBLIC: Returns the resource name we are trying to load.
      • setResourceName

        public void setResourceName​(java.lang.String resourceName)
        PUBLIC: Set the resource name we are trying to load.
      • getSessionName

        public java.lang.String getSessionName()
        PUBLIC: Returns the name of the Session in the sessions XML file desired to be loaded.
      • setSessionName

        public void setSessionName​(java.lang.String sessionName)
        PUBLIC: Set the name of the Session in the sessions XML file desired to be loaded.
      • shouldLogin

        public boolean shouldLogin()
        PUBLIC: Return if the loaded session should be connected.
      • setShouldLogin

        public void setShouldLogin​(boolean shouldLogin)
        PUBLIC: Set if the loaded session should be connected.
      • shouldRefresh

        public boolean shouldRefresh()
        PUBLIC: Return if the loaded session should be refreshed from the file.
      • setShouldRefresh

        public void setShouldRefresh​(boolean shouldRefresh)
        PUBLIC: Set if the loaded session should be refreshed from the file.
      • shouldCheckClassLoader

        public boolean shouldCheckClassLoader()
        PUBLIC: Return if the session will be refreshed from the file if the class loader requesting the load is different than the loaded session's class loader.
      • setShouldCheckClassLoader

        public void setShouldCheckClassLoader​(boolean shouldCheckClassLoader)
        PUBLIC: Set if the session will be refreshed from the file if the class loader requesting the load is different than the loaded session's class loader.
      • getClassLoader

        public java.lang.ClassLoader getClassLoader()
        PUBLIC: Return the class loader that should be used to find the resource.
      • setClassLoader

        public void setClassLoader​(java.lang.ClassLoader classLoader)
        PUBLIC: Set the class loader that should be used to find the resource.
      • load

        public boolean load​(SessionManager sessionManager,
                            java.lang.ClassLoader loader)
        INTERNAL: This method instantiates the parser and builds the document based on the schema. If the document is loaded without errors, then the configs are converted to sessions and stored on the session manager and true is returned to indicate success.
      • loadConfigsForMappingWorkbench

        public org.eclipse.persistence.internal.sessions.factories.model.SessionConfigs loadConfigsForMappingWorkbench​(java.lang.ClassLoader loader)
        INTERNAL: This method is to be used to load config objects for the Mapping Workbench only. Do not call this method.
      • loadConfigsForMappingWorkbench

        public org.eclipse.persistence.internal.sessions.factories.model.SessionConfigs loadConfigsForMappingWorkbench​(java.lang.ClassLoader loader,
                                                                                                                       boolean validate)
        INTERNAL: This method is to be used to load config objects for the Mapping Workbench only. Do not call this method.
      • loadDocument

        protected org.w3c.dom.Document loadDocument​(java.lang.ClassLoader loader)
        INTERNAL: Load a session.xml document. The error handler will capture all the errors and allow for a document to be returned.
      • loadDocument

        protected org.w3c.dom.Document loadDocument​(java.lang.ClassLoader loader,
                                                    boolean validate)
        INTERNAL: Load a session.xml document. The error handler will capture all the errors and allow for a document to be returned.