# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.  

ClassResolver-name: Class resolver
ClassResolver-desc: The org.apache.openjpa.util.ClassResolver implementation \
    that should be used for class resolution.  Defaults to a spec-compliant \
    resolver.
ClassResolver-type: General
ClassResolver-cat: Persistence.Classes
ClassResolver-displayorder: 50
ClassResolver-expert: true
ClassResolver-interface: org.apache.openjpa.util.ClassResolver

BrokerFactory-name: BrokerFactory implementation
BrokerFactory-desc: The name of the org.apache.openjpa.kernel.BrokerFactory \
    class that Bootstrap.getBrokerFactory should create.  Typically \
	org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory
BrokerFactory-type: Persistence
BrokerFactory-cat: Persistence.Advanced
BrokerFactory-displayorder: 50

BrokerImpl-name: Broker implementation
BrokerImpl-desc: Broker plugin and properties.  If you use a custom class, it \
	must extend org.apache.openjpa.kernel.BrokerImpl.
BrokerImpl-type: General
BrokerImpl-cat: Persistence.Advanced
BrokerImpl-displayorder: 50
BrokerImpl-expert: true
BrokerImpl-interface: org.apache.openjpa.kernel.BrokerImpl

DataCache-name: Data cache
DataCache-desc: Plugin used to cache data loaded from the data store. Must \
	implement org.apache.openjpa.datacache.DataCache.
DataCache-type: General
DataCache-cat: Cache
DataCache-displayorder: 50
DataCache-expert: true
DataCache-interface: org.apache.openjpa.datacache.DataCache

DataCacheManager-name: Data cache
DataCacheManager-desc: Plugin used to manage configuration''s cache instances.
DataCacheManager-type: General
DataCacheManager-cat: Cache
DataCacheManager-displayorder: 50
DataCacheManager-expert: true
DataCacheManager-interface: org.apache.openjpa.datacache.DataCacheManager

DataCacheTimeout-name: Default data cache timeout
DataCacheTimeout-desc: The number of milliseconds that data in the data cache \
	is valid for. A value of 0 or less means that by default, cached data does \
	not time out.
DataCacheTimeout-type: General
DataCacheTimeout-cat: Cache
DataCacheTimeout-displayorder: 50
DataCacheTimeout-expert: true

QueryCache-name: Query cache
QueryCache-desc: Plugin used to cache query results loaded from the data \
	store. Must implement org.apache.openjpa.datacache.QueryCache.
QueryCache-type: General
QueryCache-cat: Cache.Queries
QueryCache-displayorder: 50
QueryCache-expert: true
QueryCache-interface: org.apache.openjpa.datacache.QueryCache

QueryCompilationCache-name: Query compilation cache
QueryCompilationCache-desc: Plugin used to cache query compilation data. \
	Must implement java.util.Map. Does not need to be thread-safe -- it will \
	be wrapped via the Collections.synchronizedMap() method if it does not \
	extend org.apache.openjpa.util.CacheMap.
QueryCompilationCache-type: General
QueryCompilationCache-cat: Cache.Queries
QueryCompilationCache-displayorder: 50
QueryCompilationCache-expert: true
QueryCompilationCache-interface: java.util.Map

RemoteCommitProvider-name: Remote commit provider
RemoteCommitProvider-desc: Plugin used to communicate commit information \
	among JVMs. Must implement org.apache.openjpa.event.RemoteCommitProvider.
RemoteCommitProvider-type: General
RemoteCommitProvider-cat: Cache
RemoteCommitProvider-displayorder: 50
RemoteCommitProvider-expert: true
RemoteCommitProvider-interface: org.apache.openjpa.event.RemoteCommitProvider

TransactionMode-name: Transaction mode
TransactionMode-desc: Either "local" or "managed".
TransactionMode-type: Connecting
TransactionMode-cat: Persistence.Transactions
TransactionMode-displayorder: 50

ManagedRuntime-name: Managed runtime
ManagedRuntime-desc: Plugin used to integrate with an external transaction \
	manager.  Must implement org.apache.openjpa.kernel.ManagedRuntime.
ManagedRuntime-type: General
ManagedRuntime-cat: Persistence.Advanced
ManagedRuntime-displayorder: 50
ManagedRuntime-expert: true
ManagedRuntime-interface: org.apache.openjpa.ee.ManagedRuntime

FetchBatchSize-name: Default fetch batch size
FetchBatchSize-desc: The number of rows that will be pre-fetched when \
	an element in a result is accessed.  Use -1 to pre-fetch all results.
FetchBatchSize-type: Optimization
FetchBatchSize-cat: Fetching
FetchBatchSize-displayorder: 50
FetchBatchSize-expert: true

MaxFetchDepth-name: Maximum fetch depth.
MaxFetchDepth-desc: The maximum relation depth to traverse when eager \
    fetching, or -1 for no limit.
MaxFetchDepth-type: Optimization
MaxFetchDepth-cat: Fetching
MaxFetchDepth-displayorder: 50
MaxFetchDepth-expert: true

FetchGroups-name: Fetch groups to add to default fetch group
FetchGroups-desc: A comma-separated list of fetch group names that wll be \
	loaded by default when fetching data from the data store.
FetchGroups-type: Optimization
FetchGroups-cat: Fetching
FetchGroups-displayorder: 50
FetchGroups-expert: true

FlushBeforeQueries-name: Automatically flush changes before queries
FlushBeforeQueries-desc: Whether or not OpenJPA should automatically flush \
	modifications to the data store before executing queries.
FlushBeforeQueries-type: General
FlushBeforeQueries-cat: Queries
FlushBeforeQueries-displayorder: 50
FlushBeforeQueries-expert: true

LockTimeout-name: Object lock timeout
LockTimeout-desc: The number of milliseconds to wait for an object lock before \
	throwing an exception, or -1 for no limit.
LockTimeout-type: Optimization
LockTimeout-cat: Locking
LockTimeout-displayorder: 50
LockTimeout-expert: true

ReadLockLevel-name: Default transactional read lock level
ReadLockLevel-desc: The default lock level to use when loading objects within \
	non-optimistic transactions.  Set to none, read, write, or the numeric \
	value of the desired lock level for your lock manager.
ReadLockLevel-type: Optimization
ReadLockLevel-cat: Locking
ReadLockLevel-displayorder: 50
ReadLockLevel-expert: true

WriteLockLevel-name: Default transactional write lock level
WriteLockLevel-desc: The default lock level to use when changing objects \
	within non-optimistic transactions.  Set to none, read, write, or the \
	numeric value of the desired lock level for your lock manager.
WriteLockLevel-type: Optimization
WriteLockLevel-cat: Locking
WriteLockLevel-displayorder: 50
WriteLockLevel-expert: true

Sequence-name: Default system sequence
Sequence-desc: The default org.apache.openjpa.runime.Seq for system use.
Sequence-type: General
Sequence-cat: Mappings.Defaults
Sequence-displayorder: 50
Sequence-expert: true
Sequence-interface: org.apache.openjpa.kernel.Seq

AutoClear-name: Auto clear values
AutoClear-desc: If "datastore", an object''s field values clears when it \
	enters a datastore transaction.  If "all", object field values also \
	clear when entering optimistic transactions.
AutoClear-type: General
AutoClear-cat: Persistence.Transactions.Advanced
AutoClear-displayorder: 50

ConnectionRetainMode-name: Connection retain mode
ConnectionRetainMode-desc: This property dictates when OpenJPA will retain and \
	release data store connections.  Available options are "on-demand" for \
	retaining a connection only during pessimistic transactions and data store \
	operations, "transaction" for retaining a connection for the life of each \
	transaction, or "always" to indicate that a persistence context should \
	retain and reuse a single connection for its entire lifespan.
ConnectionRetainMode-type: Connecting
ConnectionRetainMode-cat: Connecting.Advanced
ConnectionRetainMode-displayorder: 50
ConnectionRetainMode-expert: true

FilterListeners-name: Query filter listeners
FilterListeners-desc: A comma-separated list of query filter listeners to add \
	to the default list of extensions.  Each listener must implement the \
	org.apache.openjpa.kernel.FilterListener interface.
FilterListeners-type: General
FilterListeners-cat: Queries.Extensions
FilterListeners-displayorder: 50
FilterListeners-expert: true

AggregateListeners-name: Query aggregate listeners
AggregateListeners-desc: A comma-separated list of query aggregate listeners \
	to add to the default list of extensions.  Each listener must implement \
	the org.apache.openjpa.kernel.AggregateListener interface.
AggregateListeners-type: General
AggregateListeners-cat: Queries.Extensions
AggregateListeners-displayorder: 50
AggregateListeners-expert: true

RetryClassRegistration-name: Retry class registration
RetryClassRegistration-desc: Whether to log a warning and defer registration \
	when a registered persistent class cannot be processed, instead of \
	throwing an exception.  Should only be set to true under complex \
	classloader topologies that are causing registration errors.
RetryClassRegistration-type: General
RetryClassRegistration-cat: Persistence.Classes
RetryClassRegistration-displayorder: 60
RetryClassRegistration-expert: true

ProxyManager-name: Proxy manager
ProxyManager-desc: Plugin used to proxy second class object fields of managed \
	instances.  Must implement org.apache.openjpa.util.ProxyManager.
ProxyManager-type: General
ProxyManager-cat: Persistence.Advanced
ProxyManager-displayorder: 50
ProxyManager-expert: true

ConnectionProperties-name: Connection properties
ConnectionProperties-desc: A comma-separated list of properties to be passed \
	to the database driver when obtaining a connection. Properties are of the \
	form "key=value".  If the given driver class is a DataSource, these \
	properties will be used to configure the bean properties of the DataSource. 
ConnectionProperties-type: Connecting
ConnectionProperties-cat: Connecting.Advanced
ConnectionProperties-displayorder: 50

ConnectionFactoryMode-name: ConnectionFactory mode
ConnectionFactoryMode-desc: The type of data source in use.  Available options \
	are "local" for a standard data source under OpenJPA''s control, or \
	"managed" for a data source managed by an application server and \
	automatically enlisted in global transactions.
ConnectionFactoryMode-type: Connecting
ConnectionFactoryMode-cat: Database.Transactions
ConnectionFactoryMode-displayorder: 50
ConnectionFactoryMode-expert: true

ConnectionFactoryProperties-name: Connection factory properties
ConnectionFactoryProperties-desc: A comma-separated list of properties \
	used to configure the javax.sql.DataSource used as the ConnectionFactory. \
	Each property should be of the form "key=value", where "key" is the name \
	of some bean-like property of the data source.
ConnectionFactoryProperties-type: Connecting
ConnectionFactoryProperties-cat: Connecting.Advanced
ConnectionFactoryProperties-displayorder: 50

Connection2UserName-name: Unmanaged connection username
Connection2UserName-desc: The username for the connection listed in \
	Connection2URL.
Connection2UserName-type: Connecting
Connection2UserName-cat: Connecting.XA
Connection2UserName-displayorder: 50
Connection2UserName-expert: true

Connection2Password-name: Unmanaged connection password
Connection2Password-desc: The password for the user specified in \
	Connection2UserName
Connection2Password-type: Connecting
Connection2Password-cat: Connecting.XA
Connection2Password-displayorder: 50
Connection2Password-expert: true

Connection2URL-name: Unmanaged connection URL
Connection2URL-desc: The URL for the unmanaged data source.
Connection2URL-type: Connecting
Connection2URL-cat: Connecting.XA
Connection2URL-displayorder: 50
Connection2URL-expert: true

Connection2DriverName-name: Unmanaged connection driver
Connection2DriverName-desc: The class name of the database driver, or an \
	instance of a DataSource to use to connect to the unmanaged data source.
Connection2DriverName-type: Connecting
Connection2DriverName-cat: Connecting.XA
Connection2DriverName-displayorder: 50
Connection2DriverName-expert: true

Connection2Properties-name: Non-XA connection properties
Connection2Properties-desc: A comma-separated list of properties to be passed \
	to the unmanaged database driver when obtaining a connection. Properties \
	are of the form "key=value".  If the given driver class is a DataSource, \
	these properties will be used to configure the bean properties of the \
	DataSource. 
Connection2Properties-type: Connecting
Connection2Properties-cat: Connecting.XA
Connection2Properties-displayorder: 50
Connection2Properties-expert: true

ConnectionFactory2Properties-name: Unmanaged connection factory properties
ConnectionFactory2Properties-desc: A comma-separated list of properties \
	used to configure the javax.sql.DataSource used as the unmanaged \
	ConnectionFactory. Each property should be of the form "key=value", \
	where "key" is the name of some bean-like property of the data source.
ConnectionFactory2Properties-type: Connecting
ConnectionFactory2Properties-cat: Connecting.XA
ConnectionFactory2Properties-displayorder: 50
ConnectionFactory2Properties-expert: true

Optimistic-name: Optimistic transactions
Optimistic-desc: Selects between optimistic and pessimistic (data store) \
	transactional modes.
Optimistic-type: Persistence
Optimistic-cat: Persistence.Transactions
Optimistic-displayorder: 50

RetainState-name: Retain values
RetainState-desc: If true, then fields in a persistence-capable object that \
	have been read during a transaction must be preserved in memory after the \
	transaction commits. Otherwise, persistence-capable objects must \
	transition to the hollow state upon commit, meaning that subsequent reads \
	will result in a database round-trip.
RetainState-type: Persistence
RetainState-cat: Persistence.Transactions.Advanced
RetainState-displayorder: 50

RestoreState-name: Restore state
RestoreState-desc: If true, then immutable fields in a persistence-capable \
	object that have been changed during a transaction will be restored to \
	their original values upon a rollback. If set to "all", mutable fields \
	will also be restored.  If false, the values will not be changed upon \
	rollback.
RestoreState-type: Persistence
RestoreState-cat: Persistence.Transactions.Advanced
RestoreState-displayorder: 50

AutoDetach-name: Auto detach
AutoDetach-desc: A comma separated list of events upon which the managed \
	instances will be automatically detached.  Events are "close", "commit", \
	and "nontx-read".
AutoDetach-type: General
AutoDetach-cat: Optimization
AutoDetach-displayorder: 50
AutoDetach-expert: true

DetachState-name: Detach states
DetachState-desc: Plugin describing the set of field values which will be \
	included in the default detach and related options.  These states are \
	"loaded", "all", and "fetch-groups".
DetachState-type: General
DetachState-cat: Optimization
DetachState-displayorder: 50
DetachState-expert: true

IgnoreChanges-name: Ignore changes
IgnoreChanges-desc: If false, then OpenJPA must consider modifications, \
	deletions, and additions in the current trasnaction when executing a \
	query.  Else, OpenJPA is free to ignore changes and execute the query \
	directly against the data store.
IgnoreChanges-type: Persistence
IgnoreChanges-cat: Queries
IgnoreChanges-displayorder: 50

NontransactionalRead-name: Non-transactional read
NontransactionalRead-desc: If true, then it is possible to read \
	persistent data outside the context of a transaction. Otherwise, a \
	transaction must be in progress in order read data.
NontransactionalRead-type: Persistence
NontransactionalRead-cat: Persistence.Transactions
NontransactionalRead-displayorder: 50

NontransactionalWrite-name: Non-transactional write
NontransactionalWrite-desc: If true, then it is possible to write to \
	fields of a persistent-nontransactional object when a transaction is not \
	in progress. If false, such a write will result in an exception.
NontransactionalWrite-type: Persistence
NontransactionalWrite-cat: Persistence.Transactions
NontransactionalWrite-displayorder: 50

Multithreaded-name: Multithreaded
Multithreaded-desc: If true, then the application plans to have multiple \
	threads simultaneously accessing a single context or object, so measures \
	must be taken to ensure that the implementation is thread-safe. Otherwise, \
	the implementation need not address thread safety.
Multithreaded-type: Persistence
Multithreaded-cat: Persistence.Optimization
Multithreaded-displayorder: 50

ConnectionUserName-name: Connection username
ConnectionUserName-desc: The username for the connection listed in \
	ConnectionURL.
ConnectionUserName-type: Connecting
ConnectionUserName-cat: Connecting
ConnectionUserName-displayorder: 50

ConnectionPassword-name: Connection password
ConnectionPassword-desc: The password for the user specified in \
	ConnectionUserName
ConnectionPassword-type: Connecting
ConnectionPassword-cat: Connecting
ConnectionPassword-displayorder: 50

ConnectionURL-name: Connection URL
ConnectionURL-desc: The URL for the data source.
ConnectionURL-type: Connecting
ConnectionURL-cat: Connecting
ConnectionURL-displayorder: 50

ConnectionDriverName-name: Connection driver
ConnectionDriverName-desc: The class name of the database driver, or an \
	instance of a DataSource to use to connect to the data source.
ConnectionDriverName-type: Connecting
ConnectionDriverName-cat: Connecting
ConnectionDriverName-displayorder: 50

ConnectionFactoryName-name: Connection factory name
ConnectionFactoryName-desc: The JNDI name of the connection factory to use \
	for obtaining connections.
ConnectionFactoryName-type: Connecting
ConnectionFactoryName-cat: Connecting.Advanced
ConnectionFactoryName-displayorder: 50

ConnectionFactory-name: Connection factory
ConnectionFactory-desc: The factory to use for obtaining datastore connections.
ConnectionFactory-type: Connecting
ConnectionFactory-cat: Connecting.Advanced
ConnectionFactory-displayorder: 50

ConnectionFactory2Name-name: Unmanaged connection factory name
ConnectionFactory2Name-desc: The JNDI name of the connection factory to use \
	for finding unmanaged connections.  If specified, this is the connection \
	that will be used for obtaining sequence numbers.
ConnectionFactory2Name-type: Connecting
ConnectionFactory2Name-cat: Connecting.XA
ConnectionFactory2Name-displayorder: 50
ConnectionFactory2Name-expert: true

ConnectionFactory2-name: Unmanaged connection factory
ConnectionFactory2-desc: The factory to use for obtaining unmanaged \
	datastore connections.
ConnectionFactory2-type: Connecting
ConnectionFactory2-cat: Connecting.Advanced
ConnectionFactory2-displayorder: 50

PersistenceServer-name: Remote persistence support
PersistenceServer-desc: Define the remote persistence server.
PersistenceServer-type: General
PersistenceServer-cat: Persistence.Remote
PersistenceServer-displayorder: 50
PersistenceServer-expert: true
PersistenceServer-interface: org.apache.openjpa.lib.remote.Transport

LockManager-name: Lock manager
LockManager-desc: Plugin used to handle acquiring locks on persistent \
	instances.  Must implement org.apache.openjpa.kernel.LockManager.
LockManager-type: General
LockManager-cat: Locking
LockManager-displayorder: 50
LockManager-expert: true
LockManager-interface: org.apache.openjpa.kernel.LockManager

InverseManager-name: Inverse manager
InverseManager-desc: Plugin used to manage inverse relations during flush. \
	Set to true to use the default inverse manager.  Custom inverse managers \
	must extend org.apache.openjpa.kernel.InverseManager.
InverseManager-type: General
InverseManager-cat: Persistence.Advanced
InverseManager-displayorder: 50
InverseManager-expert: true
InverseManager-interface: org.apache.openjpa.kernel.InverseManager

SavepointManager-name: Savepoint manager
SavepointManager-desc: Plugin used to create and manage savepoints for \
	partial rollback/commit support.  Defaults to "in-mem". Custom savepoint \
	managers must implement org.apache.openjpa.kernel.SavepointManager.
SavepointManager-type: General
SavepointManager-cat: Persistence.Advanced
SavepointManager-displayorder: 50
SavepointManager-expert: true
SavepointManager-interface: org.apache.openjpa.kernel.SavepointManager

OrphanedKeyAction-name: Orphaned key action
OrphanedKeyAction-desc: Action to take when OpenJPA discovers an orphaned key \
    in the database.  May be a custom action implementing \
	org.apache.openjpa.event.OrphanedKeyAction.
OrphanedKeyAction-type: General
OrphanedKeyAction-cat: Persistence.Advanced
OrphanedKeyAction-displayorder: 50
OrphanedKeyAction-expert: true
OrphanedKeyAction-interface: org.apache.openjpa.event.OrphanedKeyAction

DynamicDataStructs-name: Dynamic data structs
DynamicDataStructs-desc: Whether to dynamically create custom structs to hold \
	and transfer persistent state in the OpenJPA data cache and remote \
	persistence frameworks.  Dynamic structs can reduce data cache \
	memory consumption, reduce the amount of data serialized back and forth \
	under remote persistence, and improve the overall performance \
	of these systems.  However, they increase application warm-up time while \
	the custom classes are generated and loaded into the JVM.  Set to true to \
	enable dynamic data structs.
DynamicDataStructs-type: General
DynamicDataStructs-cat: Optimization
DynamicDataStructs-displayorder: 50
DynamicDataStructs-expert: true

MetaDataFactory-name: Metadata factory
MetaDataFactory-desc: The org.apache.openjpa.meta.MetaDataFactory that \
    provides persistence metadata.
MetaDataFactory-type: General
MetaDataFactory-cat: Mappings
MetaDataFactory-displayorder: 50
MetaDataFactory-interface: org.apache.openjpa.meta.MetaDataFactory

MetaDataRepository-name: Metadata repository
MetaDataRepository-desc: The org.apache.openjpa.meta.MetaDataRepository that \
    manages persistence metadata.
MetaDataRepository-type: General
MetaDataRepository-cat: Mappings
MetaDataRepository-displayorder: 50
MetaDataRepository-interface: org.apache.openjpa.meta.MetaDataRepository

Mapping-name: Datastore mapping
Mapping-desc: The name of the datastore mapping to use.
Mapping-type: Persistence
Mapping-cat: Mappings
Mapping-displayorder: 50

Compatibility-name: Compatibility Information
Compatibility-desc: Details about various compatibiity options for the current \
	environment.
Compatibility-type: General
Compatibility-cat: Persistence.Advanced
Compatibility-displayorder: 50
Compatibility-expert: true
Compatibility-interface: org.apache.openjpa.conf.Compatibility

RuntimeUnenhancedClasses-name: Runtime unenhanced classes
RuntimeUnenhancedClasses-desc: Either "supported", "unsupported", or "warn". \
    Defaults to "supported".
RuntimeUnenhancedClasses-type: General
RuntimeUnenhancedClasses-cat: Optimization
RuntimeUnenhancedClasses-displayorder: 50

no-named-cf: use a DataSource bound to JNDI
diff-specs: Attempt to configure for multiple specifications.  Was configured \
	for "{0}".  Attempt to now configure for "{1}".  This attempt will be \
	ignored.
