Package org.apache.openjpa.lib.conf
Class ConfigurationImpl
java.lang.Object
org.apache.openjpa.lib.conf.ConfigurationImpl
- All Implemented Interfaces:
BeanInfo,Externalizable,Serializable,Cloneable,Configuration,ValueListener,Closeable
- Direct Known Subclasses:
OpenJPAConfigurationImpl
public class ConfigurationImpl
extends Object
implements Configuration, Externalizable, ValueListener
Default implementation of the
Configuration interface.
Subclasses can choose to obtain configuration
information from JNDI, Properties, a Bean-builder, etc. This class
provides base configuration functionality, including serialization,
the equals and hashCode contracts, and default
property loading.
Property descriptors for Value instances are constructed from
the Localizer for the package of the configuration class. The
following localized strings will be used for describing a value, where
name is the last token of the value's property string:
- name-name: The name that will be displayed for the option in a user interface; required.
- name-desc: A brief description of the option; required.
- name-type: The type or category name for this option; required.
- name-expert: True if this is an expert option, false otherwise; defaults to false.
- name-values: Set of expected or common values, excluding alias keys; optional.
- name-interface: The class name of an interface whose discoverable implementations should be included in the set of expected or common values; optional.
- name-cat: The hierarchical category for the property name, separated by ".".
- name-displayorder: The order in which the property should be displayer.
- Author:
- Abe White
- See Also:
-
Field Summary
FieldsFields inherited from interface java.beans.BeanInfo
ICON_COLOR_16x16, ICON_COLOR_32x32, ICON_MONO_16x16, ICON_MONO_32x32Fields inherited from interface org.apache.openjpa.lib.conf.Configuration
ATTRIBUTE_ALLOWED_VALUES, ATTRIBUTE_CATEGORY, ATTRIBUTE_INTERFACE, ATTRIBUTE_ORDER, ATTRIBUTE_TYPE, ATTRIBUTE_XML, INIT_STATE_FREEZING, INIT_STATE_FROZEN, INIT_STATE_LIQUID -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddBoolean(String property) Add the given value to the set of configuration properties.Add the given value to the set of configuration properties.Add the given value to the set of configuration properties.Add the given value to the set of configuration properties.Add the given value to the set of configuration properties.Add the given value to the set of configuration properties.addPluginList(String property) Add the given value to the set of configuration properties.voidAdds a listener for any property changes.Add the given value to the set of configuration properties.addStringList(String property) Add the given value to the set of configuration properties.<T extends Value>
TaddValue(T val) Add the given value to the set of configuration properties.clone()UsestoProperties(boolean)andfromProperties(java.util.Map)to clone configuration.final voidclose()Closes all closeable values and plugins.booleanPerforms an equality check based on equality of values.voidfromProperties(Map map) Set this Configuration via the given map.BeanInfo[]Returns the logging channelopenjpa.Runtimeby default.intintgetIcon(int kind) getId()An environment-specific identifier for this configuration.getLog()Log plugin setting.Return the log for the given category.The log factory.Return the product name.Return the resource that was set via auto-configuration methodssetProperties(java.lang.String)orsetPropertiesFile(java.io.File), or null if none.Gets all known property keys.getPropertyKeys(String propertyName) Get the set of all known property keys, including any equivalent keys, appropriately prefixed.Gets a class loader that can be additionally used to load custom plugin values.Gets the registered Value for the given propertyName.Value[]Return the set of allValues.inthashCode()Computes hash code based on the hashCodes of the values.voidCall the instantiating get methods for all values.booleanprotected booleanisInvalidProperty(String propName) Returns true if the specified property name should raise a warning if it is not found in the list of known properties.booleanReturn true if this configuration is immutable.booleanAutomatically load global values from the system'sProductDerivations, and from System properties.protected voidpreClose()Invoked by final methodclose()after invoking theProductDerivation.beforeConfigurationClose(org.apache.openjpa.lib.conf.Configuration)callbacks but before performing internal close operations.voidImplementation of theExternalizableinterface to read from the properties written bywriteExternal(java.io.ObjectOutput).voidRemoves a listener for any property changes.booleanremoveValue(Value val) Remove the given value from the set of configuration properties.voidsetDeferResourceLoading(boolean deferResourceLoading) voidAn environment-specific identifier for this configuration.voidLog plugin setting.voidsetLogFactory(LogFactory logFactory) The log factory.voidsetProductName(String name) Set the product name.voidsetProperties(String resourceName) This method loads the named resource as a properties file.voidsetPropertiesFile(File file) This method loads the named file as a properties file.voidsetReadOnly(int newState) Lock down the configuration's state.voidSets an additional classloader to load custom plugin values.toProperties(boolean storeDefaults) An internal method to retrieve properties, to support 2 public methods, getAllProperties() and toProperties(boolean).static StringConvertpropNameto a lowercase-with-hyphens-style string.voidvalueChanged(Value val) Callback used byValueobjects to notify listener of change.voidImplementation of theExternalizableinterface to write the properties returned bytoProperties(boolean).
-
Field Details
-
logFactoryPlugin
-
id
-
-
Constructor Details
-
ConfigurationImpl
public ConfigurationImpl()Default constructor. Attempts to load default properties through system's configuredProductDerivations. -
ConfigurationImpl
public ConfigurationImpl(boolean loadGlobals) Constructor.- Parameters:
loadGlobals- whether to attempt to load the global properties
-
-
Method Details
-
loadGlobals
public boolean loadGlobals()Automatically load global values from the system'sProductDerivations, and from System properties. -
getProductName
Description copied from interface:ConfigurationReturn the product name. Defaults toopenjpa.- Specified by:
getProductNamein interfaceConfiguration
-
setProductName
Description copied from interface:ConfigurationSet the product name.- Specified by:
setProductNamein interfaceConfiguration
-
getLogFactory
Description copied from interface:ConfigurationThe log factory. If no log factory has been set explicitly, this method will create one.- Specified by:
getLogFactoryin interfaceConfiguration
-
setLogFactory
Description copied from interface:ConfigurationThe log factory.- Specified by:
setLogFactoryin interfaceConfiguration
-
getLog
Description copied from interface:ConfigurationLog plugin setting.- Specified by:
getLogin interfaceConfiguration
-
setLog
Description copied from interface:ConfigurationLog plugin setting.- Specified by:
setLogin interfaceConfiguration
-
getLog
Description copied from interface:ConfigurationReturn the log for the given category.- Specified by:
getLogin interfaceConfiguration- See Also:
-
getId
Description copied from interface:ConfigurationAn environment-specific identifier for this configuration. This might correspond to a JPA persistence-unit name, or to some other more-unique value available in the current environment.- Specified by:
getIdin interfaceConfiguration
-
setId
Description copied from interface:ConfigurationAn environment-specific identifier for this configuration. This might correspond to a JPA persistence-unit name, or to some other more-unique value available in the current environment.- Specified by:
setIdin interfaceConfiguration
-
getConfigurationLog
Returns the logging channelopenjpa.Runtimeby default.- Specified by:
getConfigurationLogin interfaceConfiguration
-
getValues
Description copied from interface:ConfigurationReturn the set of allValues.- Specified by:
getValuesin interfaceConfiguration
-
getValue
Gets the registered Value for the given propertyName.- Specified by:
getValuein interfaceConfiguration- Parameters:
property- can be either fully-qualified name or the simple name with which the value has been registered. A value may have multiple equivalent names and this method searches with all equivalent names.
-
setReadOnly
public void setReadOnly(int newState) Description copied from interface:ConfigurationLock down the configuration's state. Attempting to set state on a read-only configuration results in an exception.- Specified by:
setReadOnlyin interfaceConfiguration
-
isDeferResourceLoading
public boolean isDeferResourceLoading() -
setDeferResourceLoading
public void setDeferResourceLoading(boolean deferResourceLoading) -
instantiateAll
public void instantiateAll()Description copied from interface:ConfigurationCall the instantiating get methods for all values. Up-front instantiation allows one to avoid the synchronization necessary with lazy instantiation.- Specified by:
instantiateAllin interfaceConfiguration
-
isReadOnly
public boolean isReadOnly()Description copied from interface:ConfigurationReturn true if this configuration is immutable.- Specified by:
isReadOnlyin interfaceConfiguration
-
addPropertyChangeListener
Description copied from interface:ConfigurationAdds a listener for any property changes. The property events fired will not include the old value.- Specified by:
addPropertyChangeListenerin interfaceConfiguration- Parameters:
listener- the listener to receive notification of property changes
-
removePropertyChangeListener
Description copied from interface:ConfigurationRemoves a listener for any property changes.- Specified by:
removePropertyChangeListenerin interfaceConfiguration- Parameters:
listener- the listener to remove
-
valueChanged
Description copied from interface:ValueListenerCallback used byValueobjects to notify listener of change.- Specified by:
valueChangedin interfaceValueListener
-
close
public final void close()Closes all closeable values and plugins.- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceConfiguration
-
preClose
protected void preClose()Invoked by final methodclose()after invoking theProductDerivation.beforeConfigurationClose(org.apache.openjpa.lib.conf.Configuration)callbacks but before performing internal close operations.- Since:
- 0.9.7
-
getAdditionalBeanInfo
- Specified by:
getAdditionalBeanInfoin interfaceBeanInfo
-
getBeanDescriptor
- Specified by:
getBeanDescriptorin interfaceBeanInfo
-
getDefaultEventIndex
public int getDefaultEventIndex()- Specified by:
getDefaultEventIndexin interfaceBeanInfo
-
getDefaultPropertyIndex
public int getDefaultPropertyIndex()- Specified by:
getDefaultPropertyIndexin interfaceBeanInfo
-
getEventSetDescriptors
- Specified by:
getEventSetDescriptorsin interfaceBeanInfo
-
getIcon
-
getMethodDescriptors
- Specified by:
getMethodDescriptorsin interfaceBeanInfo
-
getPropertyDescriptors
- Specified by:
getPropertyDescriptorsin interfaceBeanInfo
-
toProperties
An internal method to retrieve properties, to support 2 public methods, getAllProperties() and toProperties(boolean).- Specified by:
toPropertiesin interfaceConfiguration- Parameters:
storeDefaults- whether or not to retrieve a property if its value is the default value.
-
fromProperties
Description copied from interface:ConfigurationSet this Configuration via the given map. Any keys missing from the given map will not be set. Note that changes made to this map will not be automatically reflected in this Configuration object. IMPORTANT: If the map contains instantiated objects(rather than string values), only the string representation of those objects are considered in this configuration'sequalsandhashCodemethods. If the object's property has no string form(such as anObjectValue), the object is not part of the equality and hashing calculations.- Specified by:
fromPropertiesin interfaceConfiguration
-
getPropertyKeys
Description copied from interface:ConfigurationGet the set of all known property keys, including any equivalent keys, appropriately prefixed.- Specified by:
getPropertyKeysin interfaceConfiguration- Parameters:
propertyName- the name of the property for which the keys are to be retrieved.
-
getPropertyKeys
Gets all known property keys. The keys are harvested from the property names (including the equivalent names) of the registered values. A key may be prefixed if the corresponding property name was without a prefix.- Specified by:
getPropertyKeysin interfaceConfiguration- See Also:
-
The Values that are marked private are filtered out.
-
isInvalidProperty
Returns true if the specified property name should raise a warning if it is not found in the list of known properties. -
setProperties
This method loads the named resource as a properties file. It is useful for auto-configuration tools so users can specify apropertiesvalue with the name of a resource.- Throws:
IOException
-
setPropertiesFile
This method loads the named file as a properties file. It is useful for auto-configuration tools so users can specify apropertiesFilevalue with the name of a file.- Throws:
IOException
-
getPropertiesResource
Return the resource that was set via auto-configuration methodssetProperties(java.lang.String)orsetPropertiesFile(java.io.File), or null if none. -
equals
-
hashCode
public int hashCode() -
toXMLName
ConvertpropNameto a lowercase-with-hyphens-style string. This algorithm is only designed for mixes of uppercase and lowercase letters and lone digits. A more sophisticated conversion should probably be handled by a proper parser generator or regular expressions. -
readExternal
Implementation of theExternalizableinterface to read from the properties written bywriteExternal(java.io.ObjectOutput).- Specified by:
readExternalin interfaceExternalizable- Throws:
IOExceptionClassNotFoundException
-
writeExternal
Implementation of theExternalizableinterface to write the properties returned bytoProperties(boolean).- Specified by:
writeExternalin interfaceExternalizable- Throws:
IOException
-
clone
UsestoProperties(boolean)andfromProperties(java.util.Map)to clone configuration.- Specified by:
clonein interfaceConfiguration- Overrides:
clonein classObject
-
removeValue
Description copied from interface:ConfigurationRemove the given value from the set of configuration properties.- Specified by:
removeValuein interfaceConfiguration
-
addValue
Description copied from interface:ConfigurationAdd the given value to the set of configuration properties. This method replaces any existing value under the same property.- Specified by:
addValuein interfaceConfiguration
-
addString
Add the given value to the set of configuration properties. -
addFile
Add the given value to the set of configuration properties. -
addInt
Add the given value to the set of configuration properties. -
addDouble
Add the given value to the set of configuration properties. -
addBoolean
Add the given value to the set of configuration properties. -
addStringList
Add the given value to the set of configuration properties. -
addObject
Add the given value to the set of configuration properties. -
addPlugin
Add the given value to the set of configuration properties. -
addPluginList
Add the given value to the set of configuration properties. -
getUserClassLoader
Description copied from interface:ConfigurationGets a class loader that can be additionally used to load custom plugin values.- Specified by:
getUserClassLoaderin interfaceConfiguration- Returns:
- an additional classloader for loading custom plugins. Can be null.
- See Also:
-
setUserClassLoader
Description copied from interface:ConfigurationSets an additional classloader to load custom plugin values. In OSGi environment, we internally set the bundle class loader as the user class loader.- Specified by:
setUserClassLoaderin interfaceConfiguration- Parameters:
cl- a class loader to load custom plugin values
-