|
| | |
The Castor XML configuration file News Introduction Accessing the properties from within code Current configuration file
News
|
- |
Added a section on how to access the properties as defined in the
Castor properties file from within code.
|
- |
Release 1.2.1::
Added new org.exolab.castor.xml.lenient.integer.validation
property to allow configuration of leniency for validation for Java properties
generated from <xs:integer> types during code generation.
|
- |
Release 1.2:: Access to the org.exolab.castor.util.LocalConfiguration
class has been removed completely. To access the properties as used by Castor
from code, please refer to the below section.
|
- |
Release 1.1.3:
Added special processing of proxied classes. The property
org.exolab.castor.xml.proxyInterfaces allows you to specify a list of interfaces
that such proxied objects implement. If your object implements one of these
interfaces Castor will not use the class itself but its superclass at
introspection or to find class mappings and ClassDescriptors.
|
- |
Release 0.9.7: Added new org.exolab.castor.persist.useProxies property to allow
configuration of JDBC proxy classes. If enabled, JDBC proxy classes will be used to wrap
java.sql.Connection and java.sql.PreparedStatement
instances, to allow for more detailed and complete JDBC statements to be output
during logging. When turned off, no logging statements will be generated at all.
|
Introduction
Castor uses a configuration file for environmental properties that are
shared across all the Castor sub systems. The configuration file is
specified as a Java properties file with the name castor.properties.
The Castor JAR includes a default configuration file. A configuration
file in the Java library directory (e.g. /jdk1.2/lib) can be
used to override the default configuration file with system-wide
properties. In addition, a configuration file can be placed in the
classpath and will override both the system wide properties and
Castor-default configuration.
When running the provided examples, Castor will use the configuration
file located in the examples directory which specifies additional
debugging information as well as pretty printing of all produced XML
documents.
The following properties are currently supported in the configuration
file:
org.exolab.castor.xml.introspector.primitive.nodetype |
Property specifying the type of XML node to use for primitive
values, either element or attribute |
element or attribute |
attribute |
- |
org.exolab.castor.parser |
Property specifying the class name of the SAX XML parser to use. |
- |
- |
- |
org.exolab.castor.parser.validation |
Specifies whether to perform XML document validation by default. |
true and false |
false |
- |
org.exolab.castor.parser.namespaces |
Specifies whether to support XML namespaces by default. |
false and true |
false |
- |
org.exolab.castor.xml.nspackages |
Specifies a list of XML namespace to Java package mappings. |
- |
- |
- |
org.exolab.castor.xml.naming |
Property specifying the 'type' of the XML naming conventions to use. Values
of this property must be either mixed, lower, or the name of a
class which extends XMLNaming. |
mixed, lower, or the name of a class which extends
XMLNaming |
lower |
- |
org.castor.xml.java.naming |
Property specifying the 'type' of the Java naming conventions to use. Values
of this property must be either null or the name of a class which
extends JavaNaming.
|
null or the name of a class which
extends JavaNaming |
null |
- |
org.exolab.castor.marshalling.validation |
Specifies whether to use validation during marshalling. |
false or true |
true |
- |
org.exolab.castor.indent |
Specifies whether XML documents (as generated at marshalling) should use
indentation or not. |
false or true |
false |
- |
org.exolab.castor.sax.features |
Specifies additional features for the XML parser. |
A comma separated list of SAX (parser) features (that might or might
not be supported by the specified SAX parser). |
- |
- |
org.exolab.castor.sax.features-to-disable |
Specifies features to be disbaled on the underlying SAX parser. |
A comma separated list of SAX (parser) features to be disabled. |
- |
1.0.4 |
org.exolab.castor.regexp |
Specifies the regular expression validator to use. |
A class that implements
RegExpValidator. |
- |
- |
org.exolab.castor.xml.strictelements |
Specifies whether to apply strictness to elements when unmarshalling.
When enabled, the existence of elements in the XML document, which cannot be mapped
to a class, causes a {@link SAXException} to be thrown. If set to false,
these 'unknown' elements are ignored. |
false or true |
true |
- |
org.exolab.castor.xml.loadPackageMappings |
Specifies whether the ClassDescriptorResolver should (automatically) search
for and consult with package mapping files (.castor.xml) to
retrieve class descriptor information |
false or true |
true |
1.0.2 |
org.exolab.castor.xml.serializer.factory |
Specifying what XML serializers factory to use. |
A class name |
org.exolab.castor.xml.XercesXMLSerializerFactory |
1.0 |
org.exolab.castor.xml.lenient.sequence.order |
Specifies whether sequence order validation should be lenient. |
false or true |
false |
1.1 |
org.exolab.castor.xml.lenient.id.validation |
Specifies whether id/href validation should be lenient. |
false or true |
false |
1.1 |
org.exolab.castor.xml.proxyInterfaces |
Specifies whether or not to search for an proxy interface at marshalling.
If property is not empty the objects to be marshalled will be searched
if they implement one of the given interface names. If the interface is
implemented, the superclass will be marshalled instead of the class itself. |
A list of proxy interfaces |
- |
1.1.3 |
org.exolab.castor.xml.lenient.integer.validation |
Specifies whether validation for Java properties generated from <xs:integer>
should be lenient, i.e. allow for ints as well. |
false or true |
false |
1.2.1 |
|
Accessing the properties from within code
As of Castor 1.1, it is possible to read and set the value of properties
programmatically using the getProperty(String)
and setProperty(String,String) on the following classes:
Whilst using the setter methods on the first two classes will change the
settings of the respective instances only, using the setProperty()
method on the XMLContext class will change the configuration globally,
and affect all Unmarshaller and Marshaller
instances created thereafter using the
createUnmarshaller() and
createMarshaller() methods.
Current configuration file
This is a copy of the current Castor configuration file as shipped
with the Castor XML JAR file.
# THE CASTOR PROPERTIES FILE
# This file specifies values for Castor run-time which may be configured
# by the user.
# $Id: conf-lib.xml 7076 2007-07-24 22:03:25Z rjoachim $
# This section defines Backwards compatibility switches.
#
# Hashtable/Map default mapping.
# For backward compatibility with 0.9.5.2 and earlier.
#
#org.exolab.castor.xml.saveMapKeys=false
# Defines the default XML parser to be used by Castor.
# The parser must implement org.xml.sax.Parser.
#
org.exolab.castor.parser=org.apache.xerces.parsers.SAXParser
# Defines the (default) XML serializer factory to use by Castor, which must
# implement org.exolab.castor.xml.SerializerFactory;
# Default is org.exolab.castor.xml.XercesXMLSerializerFactory
org.exolab.castor.xml.serializer.factory=org.exolab.castor.xml.XercesXMLSerializerFactory
# Defines the NodeType for use with Java primitive types (int, long, boolean,
# etc). This value is only used by the Introspector. Valid values are either
# "attribute" or "element". By default, all primitives are marshaled as
# attributes. Uncomment the following line to change the NodeType to element.
#
#org.exolab.castor.xml.introspector.primitive.nodetype=element
# Defines the Naming "style" or conventions to use when creating XML names
# from Java class or field names.
# Valid values are as follows:
# -----------------------------------------------------------------
# lower (default) | All names are lowercase with hyphens
# | separating words.
# |
# | Example: personInfo = person-info
# -----------------------------------------------------------------
# mixed | All names are mixed case, with Uppercase
# | character as the first letter of a new word.
# |
# | Example: personInfo = personInfo
# | Example: FooBar = fooBar
# -----------------------------------------------------------------
# {Any ClassName} | Any Class which implements
# | org.exolab.castor.xml.XMLNaming
# -----------------------------------------------------------------
#
# By default, all names are treated as the "lower" option. To preserve the
# Java mixed-case conventions, uncomment the following line.
#
#org.exolab.castor.xml.naming=mixed
###############################
# REGULAR EXPRESSION EVALUATORS
#
# Defines the Regular Expression Evaluator to be used by Castor.
# The evaluator must implement org.exolab.castor.util.RegExpEvaluator.
#
# Uncomment the following to basically suppress Regular expressions evaluation:
#org.exolab.castor.regexp=org.exolab.castor.xml.util.AlwaysTrueRegExpEvaluator
#
# An implementation which uses the Jakarta RegExp library:
#org.exolab.castor.regexp=org.exolab.castor.util.JakartaRegExpEvaluator
#
# An implementation which uses the Jakarta ORO library:
org.exolab.castor.regexp=org.exolab.castor.util.JakartaOroEvaluator
# True if all documents should be indented on output by default.
# Defaults to false.
#
#org.exolab.castor.indent=true
# True if xml documents should be validated by the SAX Parser
# Defaults to false.
#
org.exolab.castor.parser.validation=false
# True for parser to support Namespaces.
# Defaults to false.
#
org.exolab.castor.parser.namespaces=false
# True if all documents should be validated by the marshaling framework
# Defaults to true.
#
org.exolab.castor.marshalling.validation=true
# Comma separated list of SAX 2 features that should be enabled for the
# default parser.
#
#org.exolab.castor.sax.features=
# Comma separated list of SAX 2 features that should be disabled for the
# default parser.
#
#org.exolab.castor.sax.features-to-disable
# True if debugging output should be generated.
# Defaults to false.
#
org.exolab.castor.debug=false
# Property specifying whether or not to search for an proxy interface at marshalling.
# If property is not empty the objects to be marshalled will be searched if they
# implement one of the given interface names. If the interface is implemented the
# superclass will be marshalled instead of the class itself.
#
#org.exolab.castor.xml.proxyInterfaces=\
# net.sf.cglib.proxy.Factory, \
# org.hibernate.proxy.HibernateProxy
# List of collection handlers for Java 1.1 and Java 1.2 run-times:
#
org.exolab.castor.mapping.collections=\
org.exolab.castor.mapping.loader.J1CollectionHandlers,\
org.exolab.castor.mapping.loader.J2CollectionHandlers
# List of persistence factories for the supported database servers:
#
org.exolab.castor.jdo.engines=\
org.exolab.castor.jdo.drivers.OracleFactory,\
org.exolab.castor.jdo.drivers.PostgreSQLFactory,\
org.exolab.castor.jdo.drivers.SybaseFactory,\
org.exolab.castor.jdo.drivers.SQLServerFactory,\
org.exolab.castor.jdo.drivers.DB2Factory,\
org.exolab.castor.jdo.drivers.InformixFactory,\
org.exolab.castor.jdo.drivers.HsqlFactory,\
org.exolab.castor.jdo.drivers.InstantDBFactory,\
org.exolab.castor.jdo.drivers.InterbaseFactory,\
org.exolab.castor.jdo.drivers.MySQLFactory,\
org.exolab.castor.jdo.drivers.SapDbFactory,\
org.exolab.castor.jdo.drivers.GenericFactory,\
org.exolab.castor.jdo.drivers.DerbyFactory,\
org.castor.jdo.drivers.PointbaseFactory,\
org.castor.jdo.drivers.ProgressFactory
# List of key generator factories:
#
org.exolab.castor.jdo.keyGeneratorFactories=\
org.exolab.castor.jdo.keygen.MaxKeyGeneratorFactory,\
org.exolab.castor.jdo.keygen.HighLowKeyGeneratorFactory,\
org.exolab.castor.jdo.keygen.IdentityKeyGeneratorFactory,\
org.exolab.castor.jdo.keygen.SequenceKeyGeneratorFactory,\
org.exolab.castor.jdo.keygen.UUIDKeyGeneratorFactory
# Collection handlers for the source code generator:
#
org.exolab.castor.builder.type.j2=\
org.exolab.castor.builder.FieldInfoFactoryJ2
org.exolab.castor.builder.type.j1=\
org.exolab.castor.builder.FieldInfoFactory
org.exolab.castor.builder.type.odmg=\
org.exolab.castor.builder.FieldInfoFactoryODMG30
# Configures the default time zone to apply to dates/times fetched from
# database fields (if not already part of the data). Specify same format as
# in java.util.TimeZone.getTimeZone, or the empty string to use the computer's
# local time zone. Please see http://de.wikipedia.org/wiki/Zeitzone for
# detailed information about time zones.
#
org.exolab.castor.jdo.defaultTimeZone=
#org.exolab.castor.jdo.defaultTimeZone=GMT-8:00
# List of TxSynchronizeable implementations:
#
#org.exolab.castor.persist.TxSynchronizable=
# Sets the buffer size in bytes for fetching LOBs (this is dependent upon
# the JDBC driver implementation). The value below == 5k.
#
org.exolab.castor.jdo.lobBufferSize=5120
# True if database configuration should be initalization
# when loading it (default: true).
#
#org.exolab.castor.jdo.DatabaseInitializeAtLoad=true
# True if proxy classes should be used for JDBC connections and
# prepared statements.
# Defaults to true.
#
org.exolab.castor.persist.useProxies=false
# MappingLoader implementations:
#
org.castor.mapping.loaderFactories=\
org.castor.mapping.JDOMappingLoaderFactory,\
org.castor.mapping.XMLMappingLoaderFactory
# Cache implementations:
#
org.castor.cache.Factories=\
org.castor.cache.simple.NoCacheFactory,\
org.castor.cache.simple.TimeLimitedFactory,\
org.castor.cache.simple.CountLimitedFactory,\
org.castor.cache.simple.UnlimitedFactory,\
org.castor.cache.distributed.FKCacheFactory,\
org.castor.cache.distributed.JcsCacheFactory,\
org.castor.cache.distributed.JCacheFactory,\
org.castor.cache.distributed.CoherenceCacheFactory,\
org.castor.cache.distributed.OsCacheFactory,\
org.castor.cache.hashbelt.FIFOHashbeltFactory,\
org.castor.cache.hashbelt.LRUHashbeltFactory,\
org.castor.cache.distributed.EHCacheFactory,\
org.castor.cache.distributed.GigaspacesCacheFactory
# TransactionManagerFactory implementations:
#
org.castor.transactionmanager.Factories=\
org.castor.transactionmanager.WebSphereTransactionManagerFactory,\
org.castor.transactionmanager.WebSphere5TransactionManagerFactory,\
org.castor.transactionmanager.WebSphere51TransactionManagerFactory,\
org.castor.transactionmanager.LocalTransactionManagerFactory,\
org.castor.transactionmanager.JNDIENCTransactionManagerFactory,\
org.castor.transactionmanager.JOTMTransactionManagerFactory
# Selects whether the TransactionManager should be initialized at registration,
# or lazily when requested for the first time.
# Defaults to false.
#
org.castor.transactionmanager.InitializeAtRegistration=false
# Instructs Castor JDO to use the JDBC 3.0-specific features to obtain
# the generated value of an identity column.
# Defaults to false.
#
org.castor.jdo.use.jdbc30=false
# Specifies whether to use ANSI-compliant SQL for MS SQL Server.
# Defaults to false.
#
org.exolab.castor.jdo.sqlserver.ansi-compliant=false
# Specifyies whether the ClassDescriptorResolver should (automatically) search
# for and consult with package mapping files (.castor.xml) to retrieve class
# descriptor information; on by default.
# Defaults to true.
#
#org.exolab.castor.xml.loadPackageMappings=false
|
|
Copyright © 1999-2005 ExoLab Group, Intalio Inc.,
and Contributors. All rights reserved.
Java, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered
trademarks of Sun Microsystems, Inc. in the United States and in other
countries. XML, XML Schema, XSLT and related standards are trademarks or registered
trademarks of MIT, INRIA, Keio or others, and a product of the World Wide Web
Consortium. All other product names mentioned herein are trademarks of their respective
owners.
| |