
# ERExtensions Framework Properties

# These properties are pushed into the Java system properties for 
# applications linking against to this framework
# You can override them from the application's Properties file or 
# command-line arguments.
# Remove the leading '#' to uncomment a property

#########################################################################
# ERXProperties
#########################################################################
## Retain default value
# er.extensions.ERXProperties.RetainDefaultsEnabled = true

## Allows you to specify more config files (good luck:)
# er.extensions.ERXProperties.OptionalConfigurationFiles = (/more/files)

#########################################################################
# Localizer
#########################################################################

## Is localization enabled (as a lot of the components are already localized, it's
## kind of mandatory now to turn it on)
er.extensions.ERXLocalizer.isLocalizationEnabled = true

## The order in which localized files are searched (first entry wins)
#er.extensions.ERXLocalizer.frameworkSearchPath = (app,ERDirectToWeb,ERExtensions)

## Which files to search
er.extensions.ERXLocalizer.fileNamesToWatch = ("Localizable.strings","ValidationTemplate.strings")

## The default language for localization. This gets chosen if the request 
## languages array results in no match.
er.extensions.ERXLocalizer.defaultLanguage = English

## Currently supported languages
er.extensions.ERXLocalizer.availableLanguages = (English,German,Japanese)

## We actually support a lot of other languages, but they are probably not maintained
# er.extensions.ERXLocalizer.availableLanguages = (English,German,French,Norwegian,Japanese,Italian)

## These should go away. It's special handling for Japanese, but would be
## better refactored into a general pluralizing strategy
# er.extensions.ERXLocalizer.pluralFormClassName = er.extensions.localization.ERXLocalizer
# er.extensions.ERXLocalizer.nonPluralFormClassName = er.extensions.localization.ERXNonPluralFormLocalizer

## Components that use ERXToOne/ManyRelationship can have localized display keys
## This can be specified on a per-component basis in the bindings, 
## but here's the default value
# er.extensions.ERXArrayChooser.localizeDisplayKeysDefault = false

## This tells ERXWOString/ERXWOText to use localized 
## formatters. 
# er.extensions.ERXLocalizer.useLocalizedFormatters = true

## Which characters to ignore when formatting
# er.extensions.ERXNumberFormatter.ignoredChars=$%

## Allows you to override the locale for a language
# er.extensions.ERXLocalizer.German.locale = de

## Fallback to localized value in default language when key is not found for current language.
## Default is false.
# er.extensions.ERXLocalizer.fallbackToDefaultLanguage = false

## Components that use ERXToOne/ManyRelationship include missing items when using a possibleChoice
## This can be specified on a per-component basis in the bindings, 
## but here's the default value
# er.extensions.ERXArrayChooser.includeUnmatchedValuesDefault = false

## Components that use ERXToOne/ManyRelationship can sort case 
## sensitive or insensitive
## This can be specified on a per-component basis in the bindings, 
## but here's the default value
# er.extensions.ERXArrayChooser.sortCaseInsensitive = false

## If using EO localization, this will cause ERXGenericRecord to look for data
## in the attribute for the default language if the data for the current langage is 
## null or an empty string. Only works for reads from the attribute not writes 
## (valueForKey vs. takeValueForKey).
# er.extensions.ERXGenericRecord.localizationShouldFallbackToDefaultLanguage = true

#########################################################################
# Request and Encoding
#########################################################################
## This is the one-stop-shop for setting the default encoding everywhere.
## When in doubt, set this one.
# er.extensions.ERXApplication.DefaultEncoding=UTF-8

## Can specify the default message encoding. Defaults to ISO Latin 1
## Accepted encodings: http://java.sun.com/j2se/1.3/docs/guide/intl/encoding.doc.html
## This is a subset of er.extensions.ERXApplication.DefaultEncoding.
# er.extensions.ERXApplication.DefaultMessageEncoding=ISO8859_1

er.extensions.ERXMessageEncoding.Enabled=true

## If true, the browser's form value encoding is set, it will override
## your application encoding for a given request.
# er.extensions.ERXRequest.BrowserFormValueEncodingOverrideEnabled=true

## If true, all https:// URL generation will be disabled and converted
## into http:// URLs. If you are running in DirectConnct, this will 
## allow you to specify secure forms and links without actually having
## to setup SSL. 
# er.extensions.ERXRequest.secureDisabled=false

#########################################################################
# Enterprise Object
##########################################################################
## Specifies if wrong values can stay in the EO after property-level validation failed
## This is  save as validateForSave will still fail.
# er.extensions.ERXValidationShouldPushChangesToObject = true

## ERXGenericRecord and ERXCustomObject's didXXX() rely on a proper EC delegate 
er.extensions.ERXRaiseOnMissingEditingContextDelegate = true

## You can specify a factory class that creates the actual class description 
## before anyone sees them. Useful for model-munging or checking 
## (eg. TIMESTAMPS with Mysql)
# er.extensions.ERXClassDescription.factoryClass = 

## Specifies if not-null fields should result in mandatory relationships
## As this is probably a model error, you should turn it on but fix your model
# er.extensions.ERXEntityClassDescription.isFixingRelationshipsEnabled=true

## rather experimental feature that should allow you to change your model at runtime
## in EOModeler and see the changes immediately
# er.extensions.ERXEntityClassDescription.isRapidTurnaroundEnabled

## Default class to use when "EOGenericRecord" is used in the model. 
# er.extensions.ERXEntityClassDescription.defaultClassName = er.extensions.eof.ERXGenericRecord
## AK: Beats me if I know why this is useful...
# er.extensions.ERXEntityClassDescription.SomeEntityName.ClassName = Foo

## EOEditingContext.setDefaultFetchTimestampLag() as a property
# EOEditingContextDefaultFetchTimestampLag = 3600000

## Specifies if inverse relationships are automagically updated
# er.extensions.ERXEnterpriseObject.updateInverseRelationships=true

## Specifies that you want restricting qualifiers "applied" to your newly
## inserted objects.  For instance, if you have an entity that is part of
## single table inheritance and your restricting qualifier only uses 
## EOAndQualifiers and EOKeyValueQualifiers, ERX can interpret the qualifier
## and make your EO's automatically match the restricting qualifier.  This
## allows you to skip the awakeFromInsertion step where you have to remember
## to make your EO match the restricting qualifier you chose in your model. 
# er.extensions.ERXEnterpriseObject.applyRestrictingQualifierOnInsert=true

## Specifies if the string attributes are trimmed before sending to the DB
# er.extensions.ERXGenericRecord.shouldTrimSpaces = true
# er.extensions.ERXCustomObject.shouldTrimSpaces = true

## Whether to use Validity when validating (NOTE: MOVE this to ERXEntityClassDescription)
# er.extensions.ERXGenericRecord.useValidity = true
# er.extensions.ERXCustomObject.useValidity = true

## Padding for ERXInQualifier
# er.extensions.ERXInQualifier.DefaultPadToSize = 8

## Number of OSCs to use.
# er.extensions.ERXObjectStoreCoordinatorPool.maxCoordinators = 0

#########################################################################
# ERXEOEncodingUtilities
#########################################################################
# Which separator to use
# er.extensions.ERXEOEncodingUtilities.EntityNameSeparator = _
# Allow overrides in URL
# er.extensions.ERXEOEncodingUtilities.SpecifySeparatorInURL = true

#########################################################################
# Cryptography
#########################################################################
## If you use ERXCrypto (or ERXGenericRecord.encryptedPrimaryKey)
## You should set this value to your own password in your app
# er.extensions.ERXBlowfishCipherKey = DefaultCipherKey

#########################################################################
# Browser
#########################################################################
## User-agent sniffing stuff
# er.extensions.ERXBrowserFactory.FactoryClassName=er.extensions.appserver.ERXBrowserFactory
# er.extensions.ERXBrowserFactory.BrowserClassName=er.extensions.appserver.ERXBasicBrowser

#########################################################################
# Direct Action 
#########################################################################
## Direct Action Passwords. CHANGE THESE IN DEPLOYMENT!!
# er.extensions.ERXJUnitPassword = pw
# er.extensions.ERXLog4JPassword = pw
# er.extensions.ERXGCPassword = pw
# er.extensions.ERXDirectAction.ChangeSystemPropertyPassword = pw
# er.extensions.ERXRemoteShellPassword = pw
# er.extensions.ERXDatabaseConsolePassword = pw
# er.extensions.ERXOpenEditingContextLockTracesPassword = pw

#########################################################################
# Signal Handling
#########################################################################
# By default graceful signal handling is disabled
er.extensions.ERXGracefulShutdown.Enabled=false
er.extensions.ERXGracefulShutdown.SignalsToHandle=(TERM, INT)

#########################################################################
# Navigation 
#########################################################################
er.extensions.ERXNavigationManager.NavigationMenuFileName = NavigationMenu.plist
er.extensions.ERXNavigationManager.localizeDisplayKeys = false

#########################################################################
# Shared EO loading patching 
#########################################################################
er.extensions.ERXSharedEOLoader.PatchSharedEOLoading=false

#########################################################################
# ERXPatcher 
#########################################################################
## Set to true if you need XHTML from the dynamic elements. Note that this can
## slow down your app
er.extensions.ERXPatcher.cleanupXHTML=false

#########################################################################
# ERXComponentActionRedirector 
#########################################################################
## decides if the component actions should get redirected to a DA automatically,
## thus making the app bookmarkable. This is rather experimental.
er.extensions.ERXComponentActionRedirector.enabled=false

#########################################################################
# ERXJDBCAdaptor 
#########################################################################
## Class name to use instead of the JDBCAdaptor, the ERXJDBCAdaptor supports
## connection pooling
# er.extensions.ERXJDBCAdaptor.className=er.extensions.jdbc.ERXJDBCAdaptor

## Makes the JDBCAdaptor use the connection broker, so that many
## OSCs use only a few DB channels.
# er.extensions.ERXJDBCAdaptor.useConnectionBroker = true

## Enable JDBC connection used by EOF are switched to read only or read write 
## depending on the database operation. This can speed up database queries because a read only
## connection produces less overhead in a transaction based database.
## This is only used when the JDBCAdaptor is used in the first place
# er.extensions.ERXJDBCAdaptor.switchReadWrite=false
#
#########################################################################
# ERXAdaptorChannelDelegate 
#########################################################################
## Enable delegate to emit SQL debugging info. The Logger used is
## log4j.category.er.extensions.ERXAdaptorChannelDelegate.sqlLogging
# er.extensions.ERXAdaptorChannelDelegate.enabled=false

## How long a statement must run to cause a log message. Messages with longer than
## error also emit a stack-trace
# er.extensions.ERXAdaptorChannelDelegate.trace.milliSeconds.debug=0
# er.extensions.ERXAdaptorChannelDelegate.trace.milliSeconds.info=100
# er.extensions.ERXAdaptorChannelDelegate.trace.milliSeconds.warn=1000
# er.extensions.ERXAdaptorChannelDelegate.trace.milliSeconds.error=5000

## MaxLength of the message
# er.extensions.ERXAdaptorChannelDelegate.trace.maxLength = 3000

## What entities to watch
# er.extensions.ERXAdaptorChannelDelegate.trace.entityMatchPattern = .*

## Collect last x statements to dump them at a later time (if you don't set this, defaults to false and 10)
# er.extensions.ERXSQLExpressionTracker.collectLastStatements = false
# er.extensions.ERXSQLExpressionTracker.numberOfStatementsToCollect = 10


#########################################################################
# ERXDatabaseContext
#########################################################################
## Defines the DBC class
# er.extensions.ERXDatabaseContext.className = er.extensions.eof.ERXDatabaseContext

## but only if it is activated or remote syncing is on
# er.extensions.ERXDatabaseContext.activate = true

# Set to true to have this delegate order the operations (e.g. or MS SQL Server)
com.webobjects.eoaccess.ERXEntityDependencyOrderingDelegate.active = false

#########################################################################
# ERXDatabaseContextDelegate 
#########################################################################
## Instead of throwing an exception, you can define which entities
## only log an error. Default is unset.
# er.extensions.ERXDatabaseContextDelegate.tolerantEntityPattern = ^(Entity1|Entity3)$

## The batch size for automatic batch faulting, default is 0 for unset
# er.extensions.ERXDatabaseContextDelegate.autoBatchFetchSize = 100

#########################################################################
# ERXEC 
#########################################################################
## decides if new ECs use the shared editing context
# er.extensions.ERXEC.useSharedEditingContext=true

## Specifies if new ECs should lock/unlock automatically.
# er.extensions.ERXEC.safeLocking = true

## Specifies if the lock/unlock calls should be marked with the thread (halfway cheap)
# er.extensions.ERXEC.markOpenLocks = true

## Specifies if the lock/unlock calls should be marked with a stack trace (pretty expensive, but more informational)
# er.extensions.ERXEC.traceOpenLocks = true

#########################################################################
# Concurrency - Task OSC Pool
#########################################################################
# Configures the default number of OSCs in the Task OSC Pool which can be used
# for background tasks to avoid blocking the default OSC(s) used by users
# browsing the app
er.extensions.concurrency.ERXTaskObjectStoreCoordinatorPool.maxCoordinators = 1

#########################################################################
# ERX Remote Synchronizer
#########################################################################
## To use remote EOF synchronization, you must turn on the 
## ERXObjectStoreCoordinatorPool.  Just setting it to 1 is enough to
## allow things to work.
#er.extensions.ERXObjectStoreCoordinatorPool.maxCoordinators=1

## Enables remote synchronization (required in addition to ERXObjectStoreCoordinatorPool).
#er.extensions.remoteSynchronizer.enabled=true

## (Optional) the implementation to use for synchronization.  See below for the
## two available implementations, or you can provide your own here.
#er.extensions.remoteSynchronizer=er.extensions.remoteSynchronizer.ERXSimpleMulticastSynchronizer

#########################################################################
# ERXSimpleMulticastSynchronizer
# There are multiple implementations of the remote synchronizer.  By
# default the "simple multicast" one is used.  This works, but is not 
# very robust should be swapped out in favor of ERJGroupsSynchronizer.
#########################################################################
#er.extensions.remoteSynchronizer=er.extensions.remoteSynchronizer.ERXSimpleMulticastSynchronizer

## (Optional) The local bind address defines the network interface that will be used
## to transmit and receive multicast messages.  If not set, multicast synchronizer
## will use WOApplication.application().hostAddress().  If you want to run outside
## of a WOApplication, you should set this value explicitly. 
#er.extensions.multicastSynchronizer.localBindAddress=

## (Optional) If you want to set a specific identifier for this member of this
## multicast group, you can set a six byte hex string here.  If you do not set
## this value, it will be automatically assigned based on the bind address and
## the WOApplication.application().port() value.  If you want to run outside
## of a WOApplication, you should set this value explicitly.
#er.extensions.multicastSynchronizer.identifier=0a6400f113f9

## (Optional) This address defines the multicast group address that all the instances
## will join.  The default value is 230.0.0.1 if you do not set this.  The multicast
## group is similar to defining a "chat room".  Any application that joins this 
## group will send and receive messages to eachother.  Generally, each application 
## that you deploy should set its own multicast synchronizer group.  If you do not
## explicitly set this value, all of your applications will talk to eachother, even
## if they do not share a common set of EOModels, which will lead to exceptions, and
## possibly global thermonuclear war.
#er.extensions.multicastSynchronizer.group=230.0.0.1

## (Optional) The port number is the port that will be used to send multicast messages
## over.  The default value is 9753.
#er.extensions.multicastSynchronizer.port=9753

## (Optional) A comma separated list of entities to multicast synchronize.  The
## default is to not set this, which translates into "include all entities".
#er.extensions.remoteSynchronizer.includeEntities=

## (Optional) A comma separated list of entities to NOT multicast synchronize.  The
## default is to not set this, which translates into "exclude no entities".
#er.extensions.remoteSynchronizer.excludeEntities=

## (Optional) A comma separated list of host names that are allowed to multicast 
## change notifications.  The default is to not set this, which translates into 
## "allow all hosts."  If your network is not secure, not setting this list
## leaves you vulnerable to an DoS-style attack where anyone could notify your
## multicast group of EOGlobalID changes. 
#er.extensions.multicastSynchronizer.whitelist=

## (Optional) The maximum size of a datagram packet that we can send.  Defaults
## to 1024. 
#er.extensions.multicastSynchronizer.maxPacketSize=1024

#########################################################################
# ERJGroupsSynchronizer
# This synchronizer is based on the JGroups clustering framework, which
# is the clustering framework used inside of JBoss (among many other
# applications).  You must include the ERJGroupsSynchronizer framework
# in your application for this to work properly.
#########################################################################
#er.extensions.remoteSynchronizer=er.jgroups.ERJGroupsSynchronizer

## (Optional) an XML JGroups configuration file (defaults to jgroups-default.xml in the ERJGroupsSynchronizer framework)
#er.extensions.jgroupsSynchronizer.properties=apropertyfile.xml

## (Optional) the multicast address to use (defaults to 230.0.0.1, and only necessary if you are using multicast)
#er.extensions.jgroupsSynchronizer.multicastAddress=230.0.0.1

## (Optional) the multicast port to use (defaults to 9753, and only necessary if you are using multicast)
#er.extensions.jgroupsSynchronizer.multicastPort=9753

## (Optional) The local bind address defines the network interface that will be used
## to transmit and receive multicast messages.  If not set, multicast synchronizer
## will use WOApplication.application().hostAddress().  If you want to run outside
## of a WOApplication, you should set this value explicitly. 
#er.extensions.jgroupsSynchronizer.localBindAddress=

## (Optional) the JGroups group name to use (defaults to WOApplication.application.name)
#er.extensions.jgroupsSynchronizer.groupName=MyGroupName

## (Optional) A comma separated list of entities to multicast synchronize.  The
## default is to not set this, which translates into "include all entities".
#er.extensions.remoteSynchronizer.includeEntities=

## (Optional) A comma separated list of entities to NOT multicast synchronize.  The
## default is to not set this, which translates into "exclude no entities".
#er.extensions.remoteSynchronizer.excludeEntities=

#########################################################################
# ERXApplication 
#########################################################################
## decides if locked editing contexts should be unlocked after the RR-loop.
## If you use D2W, it is *strongly* recommended to enable this feature!
# er.extensions.ERXApplication.useEditingContextUnlocker=false

## When true, ERXEC's will generate a stack trace when lock is called that
## can later be accessed via .openLockTrace() or the showOpenEditingContextLockTraces
## ERXDirectAction.  Defaults to false.
# er.extensions.ERXApplication.traceOpenEditingContextLocks = true

## decides if the session store deadlock detection (session can't get 
## checked out because it already was) should be enabled. This is useful 
## for debugging, experimental and doesn't work when concurrent request
## handling is enabled
# er.extensions.ERXApplication.useSessionStoreDeadlockDetection=false

## Base directory for statistics logging
# er.extensions.ERXApplication.StatisticsBaseLogPath = 
## When the logs get rotated [24 hours in ms]
# er.extensions.ERXApplication.StatisticsLogRotationFrequency = 86400000 

## ERXStats support enabling
# er.extensions.erxStats.enabled = true

## ERXStats max size
# er.extensions.erxStats.max = 1000

## to display the stats after the RR loop
# log4j.category.er.extensions.ERXApplication.Statistics=DEBUG


## When set, starts refusing new session once memory is filled up to this 
## threshold, which results in a more responsive app. If mem comes available again
## the app again starts to accept new session.
# er.extensions.ERXApplication.memoryThreshold=0.90

## Enable reponse compression when user agent accepts gzip
# er.extensions.ERXApplication.responseCompressionEnabled = true

### run control
# time in seconds in how long the app should stay alive
# ERTimeToLive=180000
# time in seconds after which the app should start to refuse new sessions
# ERTimeToDie=180000
# time in seconds in which to kill the app after starting to refuse new sessions
# ERTimeToKill=1800

## Handling of low memory conditions. Reserve X KB to keep as last-ditch reserve
## and post a notification to release cache memory. Default is 0, meaning no reserve.
# er.extensions.ERXApplication.lowMemBufferSize=1024

## If you want to rewrite your application URLs from /cgi-bin/WebObjects/YourApp.woa to
## /yourapp, you can set the following properties and add the apache rewrite rule:
## Apache 2.2:
## RewriteRule ^/yourapp(.*)$ /cgi-bin/WebObjects/YourApp.woa$1 [PT,L]
## Apache 1.3:
## RewriteRule ^/yourapp(.*)$ /cgi-bin/WebObjects/YourApp.woa$1 [P,L]
# er.extensions.ERXApplication.replaceApplicationPath.pattern=/cgi-bin/WebObjects/YourApp.woa
# er.extensions.ERXApplication.replaceApplicationPath.replace=/yourapp

#########################################################################
# ERXSession
#########################################################################

# If you want to automatically adjust the time zone on WOTextField and
# WOString dateFormat to use the session's time zone, set this to true
#
# er.extensions.ERXSession.autoAdjustTimeZone=false

# If you are using SSL and want to use secure session cookies, set to true
#
# er.extensions.ERXSession.useSecureSessionCookies=false

#########################################################################
# ERXJDBCConnectionBroker 
#########################################################################
# the minimum number of JDBC connections to use
dbMinConnectionsGLOBAL=1

# the maximum number of JDBC connections to use
# keep in mind that each connection requires an open file
# this means your UNIX process which is running the JVM from 
# your application must be able to use a lot of open files. 
# see ulimit to understand how to change the default settings
# dbMaxConnectionsGLOBAL=5

# time how long a JDBC connection should be reused
# value is in days
# dbConnectionRecycleGLOBAL=1.0

# time in seconds how long a request may use a connection
# in this case a download may not take longer than 3 days
# value is in seconds
# dbMaxCheckoutGLOBAL=86400

# debug level for the Connection Pooling, 0 - 3
# dbDebugLevelGLOBAL=1

# if enabled all connections used by the broker are used
# every er.extensions.ERXJDBCConnectionBroker.connectionPingInterval seconds
# this is very useful if a firewall between the appserver and the database
# kill sockets after a certain time of inactivity and the app is not used 
# a lot.
# er.extensions.ERXJDBCConnectionBroker.connectionPingEnabled=false
# er.extensions.ERXJDBCConnectionBroker.connectionPingInterval=300
# er.extensions.ERXJDBCConnectionBroker.connectionPingSQL=select 1+1;

#########################################################################
# ERXLongPrimaryKeyFactory 
#########################################################################
# if set to true the following conventions are mandatory:
# 1) all entities must have only one PK value whose external type is 
#    comparable to java.lang.Long, for example int8 with Postgresql
# er.extensions.ERXLongPrimaryKeyFactory.encodeEntityInPkValue=false
# if set to true then the next property must have a unique value for each host
# if you want to use synchronization features
# er.extensions.ERXLongPrimaryKeyFactory.encodeHostInPkValue=false
# er.extensions.ERXLongPrimaryKeyFactory.hostCode=a value between 0 and 2<<10

## the amount of keys to cache
# er.extensions.ERXLongPrimaryKeyFactory.increaseBy = 1000

#########################################################################
# ERXWOResponseCache 
#########################################################################
## Enable response caching
# er.extensions.ERXWOResponseCache.Enabled = true

#########################################################################
# ERXWORepetition 
#########################################################################
## Add hash codes to element IDs so backtracking can be controlled.
# er.extensions.ERXWORepetition.checkHashCodes = true
## If an object wasn't found, raise an exception (if unset, the wrong object is used)
# er.extensions.ERXWORepetition.raiseOnUnmatchedObject = true

#########################################################################
# ERXThreadStorage 
#########################################################################
## Define if child threads inherit the variables of the parent or not. Defaults to true.
# er.extensions.ERXThreadStorage.useInheritableThreadLocal = false
## Define whether to log potential problems when using certain values inherited by the parent thread. 
## Defaults to true when running in development mode, defaults to false when app is deployed.
# er.extensions.ERXThreadStorage.logUsageOfProblematicInheritedValues = false

#########################################################################
# ERXModelGroup 
#########################################################################
## Name of the prototypes entity to use. Case insensitive. 
# er.extensions.ERXModelGroup.prototypeModelName=erprototypes

## Set this to false if you don't want to get an exception for non-matching connection dicts
## that point to the same URL and have the same username
# er.extensions.ERXModelGroup.raiseOnUnmatchingConnectionDictionaries=true

## Enable Wonder's "extended prototypes" feature.
## Allows for prototypes with naming conventions as follows and with prototype attributes
## chosen in the following priority order where the same attibute name appears in
## multiple prototype entities:
## EOJDBC<pluginName><modelName>Prototypes, EO<adaptorName><modelName>Prototypes, EO<modelname>Prototypes, EOJDBC<pluginName>CustomPrototypes,
##    EO<adaptorname>CustomPrototypes, EOCustomPrototypes, EOJDBC<pluginName>Prototypes, EO<adaptorname>Prototypes, EOPrototypes.
##
## Note that Wonder's erprototypes generally have the "EOJDBC<pluginName>Prototypes" convention for JDBC adaptor prototypes
## so you can override Wonder's prototypes for your own project by having prototype entities with names such as
## EOJDBCMySQLCustomPrototypes and even override that with model specific variations using sth like EOJDBCMoviesPrototypes
## if your model name was 'Movies'.
# er.extensions.ERXModelGroup.modelClassName = com.webobjects.eoaccess.ERXModel
# er.extensions.ERXModel.useExtendedPrototypes = true

#########################################################################
# ERXMigrator 
#########################################################################
## automatically execute migrations when the app starts ... Default is false.
# er.migration.migrateAtStartup=false

## Migrations track the current versions of your models in a table named "_DBUpdater". 
## createTablesIfNecessary tells wonder to just autogenerate these tables if they don't exist.
## Default is false.
# er.migration.createTablesIfNecessary=false 

## er.migration.modelNames defines the list of top level models to migrate. 
## You do not need to list all the models here, only the top level model. 
## Migrations will look for superclasses and relationships to determine interdependent models 
## that must be migrated first (along with explicit model interdependencies you declare in your migration).
# er.migration.modelNames=HotNewModel

## [modelName].MigrationClassPrefix=some.package.MigrationClassPrefix
## Last but not least, the MigrationClassPrefix. In this case, we have a model named HotNewModel.eomodeld, 
## and therefore we have a HotNewModel.MigrationClassPrefix. Wonder migrations take this value and append 
## incrementing numbers to the name (com.mdimension.hotnew.migration.HotNewModel5, com.mdimension.hotnew.migration.HotNewModel6, etc). 
## If you don't declare this value, migrations will look for a packageless class with the same name as the model. 
## In the above example, each framework would declare the migration class prefixes for its own models in the framework Properties file, 
## so the top level app Properties would only define the app's model.
# HotNewModel.MigrationClassPrefix=com.mdimension.hotnew.migration.HotNewModel

## If you need database specific migrations for ERXMigration subclasses, use
## er.extensions.migration.ERXMigration.useDatabaseSpecificMigrations=true
## The default is not to use database specific migrations. A filename
## for a database specific migration is then for example
##
## HotNewModel1_FrontBase_Upgrade.migration
## or
## HotNewModel1_Postgresql_Upgrade.migration
##
## For the database specific part of the filename, the databaseProductName as from the JDBC
## adaptor is used. So make sure, you're using the correct filename. The migration will throw
## an exception if the appropriate migration textfile can't be found.
# er.extensions.migration.ERXMigration.useDatabaseSpecificMigrations=false

#########################################################################
# ERXExceptionUtilities 
#########################################################################
er.extensions.stackTrace.cleanup=true
er.extensions.stackTrace.skipPatternsFile=StackTraceSkipPatterns-Normal.plist

#########################################################################
# Components 
#########################################################################
er.extensions.ERXWOForm.multipleSubmitDefault=true

#########################################################################
# SSL DirectConnect
#########################################################################
## You should probably not enable any of these settings in a normal Apache webserver deployment,
## in particular the ssl port property, as this is used by ERX to generate https URLs, which must
## match your Apache config.
##
## To enable SSL support with DirectConnect, you must do the following:
##
## * In your Resources folder, run "keytool -genkey -alias WebObjects -keyalg RSA -keystore adaptorssl.key".  Select a 
##   password for your keystore (i.e. "changeit"), and set the "your first name and last name" field to match the hostname 
##   that you will be running your directconnect app off of.
## * In your Resources folder, create an executable script (it MUST BE EXECUTABLE) named "adaptorsslpassphrase" with the
##   contents:
##   echo changeit
##   where you should replace "changeit" for whatever password you selected in the previous step.
## * Set the following property to true
#er.extensions.ERXApplication.ssl.enabled=true

## (optional) To specify an SSL host name other than what is returned from a call to
## application.host(), you can override it below  
#er.extensions.ERXApplication.ssl.host=localhost

## (optional) To select an SSL port other than 443, uncomment the following. If you are already running Apache with SSL,
## you probably want to set this.  If the port number is 0, the SSL port will be automatically assigned (using the same
## mechanism that WO uses to set the regular port) 
#er.extensions.ERXApplication.ssl.port=0
