Package org.datanucleus
Class AbstractNucleusContext
- java.lang.Object
-
- org.datanucleus.AbstractNucleusContext
-
- All Implemented Interfaces:
NucleusContext
- Direct Known Subclasses:
EnhancementNucleusContextImpl,PersistenceNucleusContextImpl
public abstract class AbstractNucleusContext extends Object implements NucleusContext
Base implementation of a NucleusContext, providing configuration, metadata management, type management, plugin management and ClassLoader services.
-
-
Field Summary
Fields Modifier and Type Field Description protected ApiAdapterapiAdapterAPI adapter used by the context.protected StringclassLoaderResolverClassNameName of the class providing the ClassLoaderResolver.protected Map<String,ClassLoaderResolver>classLoaderResolverMapMap of the ClassLoaderResolver, keyed by the clr class and the primaryLoader name.protected ConfigurationconfigConfiguration for this context.protected ClassLoaderResolverdefaultCLRDefault ClassLoaderResolver, when no primaryLoader is specified.protected MetaDataManagermetaDataManagerMetaDataManager for handling the MetaData.protected PluginManagerpluginManagerManager for plug-ins.static Set<String>STARTUP_PROPERTIESprotected TypeManagertypeManagerManager for java types.
-
Constructor Summary
Constructors Constructor Description AbstractNucleusContext(String apiName, Map startupProps, PluginManager pluginMgr)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidapplyDefaultProperties(Configuration conf)Method called when initialising the Configuration to load up defaults for the properties appropriate for this NucleusContext.voidclose()Clear out resources for the supported services.ApiAdaptergetApiAdapter()StringgetApiName()Accessor for the name of the API (JDO, JPA, etc).ClassLoaderResolvergetClassLoaderResolver(ClassLoader primaryLoader)Accessor for a ClassLoaderResolver to use in resolving classes.ConfigurationgetConfiguration()Accessor for the overall configuration for DataNucleus.MetaDataManagergetMetaDataManager()Accessor for the manager for persistence metadata information.PluginManagergetPluginManager()Accessor for the manager for DataNucleus plugins.TypeManagergetTypeManager()Accessor for manager for java types.voidinitialise()Method to initialise the context for use.protected voidlogConfiguration()Method to log the configuration of this context.protected abstract voidlogConfigurationDetails()Convenience method so that extending implementations can log their own configuration.booleansupportsORMMetaData()
-
-
-
Field Detail
-
config
protected final Configuration config
Configuration for this context.
-
pluginManager
protected final PluginManager pluginManager
Manager for plug-ins.
-
metaDataManager
protected MetaDataManager metaDataManager
MetaDataManager for handling the MetaData.
-
apiAdapter
protected final ApiAdapter apiAdapter
API adapter used by the context.
-
typeManager
protected TypeManager typeManager
Manager for java types.
-
classLoaderResolverClassName
protected final String classLoaderResolverClassName
Name of the class providing the ClassLoaderResolver.
-
classLoaderResolverMap
protected transient Map<String,ClassLoaderResolver> classLoaderResolverMap
Map of the ClassLoaderResolver, keyed by the clr class and the primaryLoader name.
-
defaultCLR
protected ClassLoaderResolver defaultCLR
Default ClassLoaderResolver, when no primaryLoader is specified.
-
-
Constructor Detail
-
AbstractNucleusContext
public AbstractNucleusContext(String apiName, Map startupProps, PluginManager pluginMgr)
-
-
Method Detail
-
applyDefaultProperties
public void applyDefaultProperties(Configuration conf)
Description copied from interface:NucleusContextMethod called when initialising the Configuration to load up defaults for the properties appropriate for this NucleusContext.- Specified by:
applyDefaultPropertiesin interfaceNucleusContext- Parameters:
conf- The configuration
-
initialise
public void initialise()
Description copied from interface:NucleusContextMethod to initialise the context for use. If any services are considered essential for operation then they will be enabled here, otherwise left for lazy initialisation.- Specified by:
initialisein interfaceNucleusContext
-
close
public void close()
Description copied from interface:NucleusContextClear out resources for the supported services.- Specified by:
closein interfaceNucleusContext
-
getApiAdapter
public ApiAdapter getApiAdapter()
- Specified by:
getApiAdapterin interfaceNucleusContext
-
getApiName
public String getApiName()
Description copied from interface:NucleusContextAccessor for the name of the API (JDO, JPA, etc).- Specified by:
getApiNamein interfaceNucleusContext- Returns:
- the api
-
getConfiguration
public Configuration getConfiguration()
Description copied from interface:NucleusContextAccessor for the overall configuration for DataNucleus.- Specified by:
getConfigurationin interfaceNucleusContext- Returns:
- The Configuration
-
getPluginManager
public PluginManager getPluginManager()
Description copied from interface:NucleusContextAccessor for the manager for DataNucleus plugins.- Specified by:
getPluginManagerin interfaceNucleusContext- Returns:
- The PluginManager
-
getMetaDataManager
public MetaDataManager getMetaDataManager()
Description copied from interface:NucleusContextAccessor for the manager for persistence metadata information.- Specified by:
getMetaDataManagerin interfaceNucleusContext- Returns:
- The MetaDataManager
-
supportsORMMetaData
public boolean supportsORMMetaData()
- Specified by:
supportsORMMetaDatain interfaceNucleusContext
-
getTypeManager
public TypeManager getTypeManager()
Description copied from interface:NucleusContextAccessor for manager for java types.- Specified by:
getTypeManagerin interfaceNucleusContext- Returns:
- The TypeManager
-
getClassLoaderResolver
public ClassLoaderResolver getClassLoaderResolver(ClassLoader primaryLoader)
Description copied from interface:NucleusContextAccessor for a ClassLoaderResolver to use in resolving classes. Caches the resolver for the specified primary loader, and hands it out if present.- Specified by:
getClassLoaderResolverin interfaceNucleusContext- Parameters:
primaryLoader- Loader to use as the primary loader (or null)- Returns:
- The ClassLoader resolver
-
logConfiguration
protected void logConfiguration()
Method to log the configuration of this context.
-
logConfigurationDetails
protected abstract void logConfigurationDetails()
Convenience method so that extending implementations can log their own configuration.
-
-