• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Best Practices - Properties files
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Best Practices - Properties files


  • Subject: Re: Best Practices - Properties files
  • From: David Avendasora <email@hidden>
  • Date: Thu, 25 Jun 2009 09:25:37 -0400


On Jun 25, 2009, at 9:18 AM, Jacob Fisher wrote:

I just tried to start a wiki page for the properties file under 'http://wiki.objectstyle.org/confluence/display/WONDER/Home' but I don't see a clear way to ask for an account.

http://issues.objectstyle.org/jira/secure/Dashboard.jspa

I'll update the Wonder home page with a link.

Dave


Could someone either help point me in the right direction or someone with access maybe volunteer to put in a start to documentation for the Wonder Properties files. I admit as one who has just started looking at Wonder finally it was one of my first questions and I should have come to the list as Tim did. Though making the email thread horrible I am posting the properties file contents in 'ERExtensions/Resource' for those who might not have looked at it but will when they see it pass through their email box. hope thats helpful :-)

Thanks,
~Jake

Look at bottom of thread for props summary




On Jun 24, 2009, at 10:17 PM, Kieran Kelleher wrote:

As you saw u can use Properties.<username> for specific user configurations. This same feature can be used for configurations too, for example have a deployment config file named Properties.deploy and then in the WOMonitor args, simply put
-Duser.name=deploy


For sensitive passwords that you want kept out of svn repository, you can put them in WOMonitor args directly like
-DMyEOModel.password = mypassword


OR use @@ template substitution and in WOMonitor args, put this:
-Duser.name=deploy
-Dsecretpassword=mypassword

and in Properties.deploy you can use a wonder simple template format like this which does property resolving/substitution
MyEOModel.password = @@secretpassword@@


For *most* properties, see the file ERExtensions/Resources/ Properties. In fact the Resources/Properties file of each Wonder framework usually documents the Properties that can be configured. Also a new Wonder project in WOLips will usually have recommended property settings. Browsing the source code of Wonder can sometimes lead you to discover configurable properties that are not documented anywhere too.

Deployment scripts generally take the split tar.gz's created by the standard build.xml and scp them to a remote server using ssh where dsa public/private keypairs remove the need to enter passwords. Then the copied tar.gz's can be copied from one remote machine to all other WO servers in the cluster and inflated and permissions can be set.


Tim, I am sure there are other ways too to skin the cat.

HTH, Kieran

On Jun 24, 2009, at 9:59 PM, Tim Worman wrote:

All:

context: I've been wanting to start some threads on simple best practices and maybe get involved in helping with the wiki. From my own work, this seemed as good a place to start as any.

--------------

I have a project that is pretty recently moved to Wonder. From searching list posting and blogs I have seen mentions of different configurations of Properties files that Wonder will discover and use for database connection stuff, etc. Some of them I hadn't seen mention of elsewhere.

I've recently started using Properties.<username> for doing dev work and keeping passwords in there (and away from my code repository). However, I've also recently seen whisper of a Properties.dev.

Two things I'd like to see:

1. a full concise list of what all the possible Properties files (requiring Wonder or not) and also how the more experienced among us leverage them. If it turns out there are some that don't have great documentation I'll volunteer to update the wiki!!

2. It still seems to me that another Properties file must be inserted at deployment for different db passwords, etc. How do the veterans among handle this? I've seen some deployment scripts around but haven't dug into that stuff yet. I still build very locally and deploy very manually (scp). :-)

Tim
UCLA GSE&IS
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden

_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden


# 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
#########################################################################
# 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

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


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

## Specifies if new ECs should lock/unlock automatically. Use with care...
# er.extensions.ERXEC.defaultAutomaticLockUnlock = true


#########################################################################
# 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


## 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


#########################################################################
# 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


#########################################################################
# 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



_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden



_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
References: 
 >Best Practices - Properties files (From: Tim Worman <email@hidden>)
 >Re: Best Practices - Properties files (From: Kieran Kelleher <email@hidden>)
 >Re: Best Practices - Properties files (From: Jacob Fisher <email@hidden>)

  • Prev by Date: Re: Best Practices - Properties files
  • Next by Date: Re: [Wonder-disc] Best Practices - Properties files
  • Previous by thread: Re: Best Practices - Properties files
  • Next by thread: Re: [Wonder-disc] Best Practices - Properties files
  • Index(es):
    • Date
    • Thread