All Downloads are FREE. Search and download functionalities are using the official Maven repository.

us.datanucleus-rdbms.3.2.6.source-code.plugin.xml Maven / Gradle / Ivy

There is a newer version: 6.0.8
Show newest version
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<!--**********************************************************************
Copyright (c) 2006 Erik Bengtson and others. All rights reserved.
Licensed 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.

Contributors:
2006 Andy Jefferson - added enhancer extension point
2006 Andy Jefferson - added datasource extension point
2006 Andy Jefferson - added L2 cache, value generators, etc
2008 Andy Jefferson - added SQL Expressions, SQL Methods, SQL Operations, SQL TableNamer
2009 Andy Jefferson - added RDBMS Request plugins
    ...
**********************************************************************-->
<plugin id="org.datanucleus.store.rdbms" provider-name="DataNucleus">
    <extension-point id="connectionprovider" name="Connection Provider" schema="schema/connectionprovider.exsd"/>
    <extension-point id="datasource" name="Datasource" schema="schema/datasource.exsd"/>
    <extension-point id="sql_expression" name="SQL Expressions" schema="schema/sql_expression.exsd"/>
    <extension-point id="sql_method" name="SQL Methods" schema="schema/sql_method.exsd"/>
    <extension-point id="sql_operation" name="SQL Expressions" schema="schema/sql_operation.exsd"/>
    <extension-point id="sql_tablenamer" name="SQL Table Namer" schema="schema/sql_tablenamer.exsd"/>
    <extension-point id="rdbms_mapping" name="RDBMS Mapping" schema="schema/rdbms_mapping.exsd"/>

    <!-- STORE MANAGER -->
    <extension point="org.datanucleus.store_manager">
        <store-manager class-name="org.datanucleus.store.rdbms.RDBMSStoreManager" url-key="jdbc" key="rdbms"/>
    </extension>

    <!-- QUERY LANGUAGES -->
    <extension point="org.datanucleus.store_query_query">
        <query class-name="org.datanucleus.store.rdbms.query.JDOQLQuery" datastore="rdbms" name="JDOQL"/>
        <query class-name="org.datanucleus.store.rdbms.query.JPQLQuery" datastore="rdbms" name="JPQL"/>
        <query class-name="org.datanucleus.store.rdbms.query.SQLQuery" datastore="rdbms" name="SQL"/>
        <query class-name="org.datanucleus.store.rdbms.query.StoredProcedureQuery" datastore="rdbms" name="STOREDPROC"/>
    </extension>

    <!-- AUTOSTART MECHANISMS -->
    <extension point="org.datanucleus.autostart">
        <autostart class-name="org.datanucleus.store.rdbms.autostart.SchemaAutoStarter" name="SchemaTable"/>
    </extension>

    <!-- CONNECTION FACTORY -->
    <extension point="org.datanucleus.store_connectionfactory">
        <connectionfactory name="rdbms/tx" class-name="org.datanucleus.store.rdbms.ConnectionFactoryImpl" transactional="true" 
            datastore="rdbms"/>
        <connectionfactory name="rdbms/nontx" class-name="org.datanucleus.store.rdbms.ConnectionFactoryImpl" transactional="false"
            datastore="rdbms"/>
    </extension>

    <!-- PERSISTENCE PROPERTIES -->
    <extension point="org.datanucleus.persistence_properties">
        <persistence-property name="datanucleus.rdbms.useLegacyNativeValueStrategy" datastore="true" value="false"
            validator="org.datanucleus.properties.BooleanPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.dynamicSchemaUpdates" datastore="true" value="false"
            validator="org.datanucleus.properties.BooleanPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.tableColumnOrder" datastore="true" value="owner-first"/>

        <persistence-property name="datanucleus.rdbms.query.fetchDirection" datastore="true" value="forward"
            validator="org.datanucleus.store.rdbms.RDBMSPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.query.resultSetType" datastore="true" value="forward-only"
            validator="org.datanucleus.store.rdbms.RDBMSPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.query.resultSetConcurrency" datastore="true" value="read-only"
            validator="org.datanucleus.store.rdbms.RDBMSPropertyValidator"/>

        <persistence-property name="datanucleus.rdbms.classAdditionMaxRetries" datastore="true" value="3"
            validator="org.datanucleus.properties.IntegerPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.statementBatchLimit" datastore="true" value="50"
            validator="org.datanucleus.properties.IntegerPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.oracleNlsSortOrder" datastore="true" value="LATIN"/>
        <persistence-property name="datanucleus.rdbms.discriminatorPerSubclassTable" datastore="true" value="false"
            validator="org.datanucleus.properties.BooleanPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.constraintCreateMode" datastore="true" value="DataNucleus"
            validator="org.datanucleus.store.rdbms.RDBMSPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.uniqueConstraints.mapInverse" datastore="true" value="true"
            validator="org.datanucleus.properties.BooleanPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.initializeColumnInfo" datastore="true" value="ALL"
            validator="org.datanucleus.store.rdbms.RDBMSPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.stringDefaultLength" datastore="true" value="255"
            validator="org.datanucleus.properties.IntegerPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.stringLengthExceededAction" datastore="true" value="EXCEPTION"
            validator="org.datanucleus.store.rdbms.RDBMSPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.persistEmptyStringAsNull" datastore="true" value="false"
            validator="org.datanucleus.properties.BooleanPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.checkExistTablesOrViews" datastore="true" value="true"
            validator="org.datanucleus.properties.BooleanPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.schemaTable.tableName" datastore="true"/>
        <persistence-property name="datanucleus.rdbms.connectionProviderName" datastore="true" value="PriorityList"/>
        <persistence-property name="datanucleus.rdbms.connectionProviderFailOnError" datastore="true" value="false"
            validator="org.datanucleus.properties.BooleanPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.datastoreAdapterClassName" datastore="true"/>
        <persistence-property name="datanucleus.rdbms.omitDatabaseMetaDataGetColumns" datastore="true" value="false"
            validator="org.datanucleus.properties.BooleanPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.sqlTableNamingStrategy" datastore="true" value="alpha-scheme"/>
        <persistence-property name="datanucleus.rdbms.allowColumnReuse" datastore="true" value="false"/>

        <persistence-property name="datanucleus.rdbms.adapter.informixUseSerialForIdentity" datastore="true"
            validator="org.datanucleus.properties.BooleanPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.statementLogging" datastore="true" value="values-in-brackets"
            validator="org.datanucleus.store.rdbms.RDBMSPropertyValidator"/>
        <persistence-property name="datanucleus.rdbms.fetchUnloadedAutomatically" datastore="true" value="false"
            validator="org.datanucleus.properties.BooleanPropertyValidator"/>

        <!-- TODO Rename these to "datanucleus.rdbms.connectionPool.*" or move to "core" -->
        <persistence-property name="datanucleus.connectionPool.maxStatements" datastore="true" value="0"
            validator="org.datanucleus.properties.IntegerPropertyValidator"/>
        <persistence-property name="datanucleus.connectionPool.maxPoolSize" datastore="true"
            validator="org.datanucleus.properties.IntegerPropertyValidator"/>
        <persistence-property name="datanucleus.connectionPool.minPoolSize" datastore="true"
            validator="org.datanucleus.properties.IntegerPropertyValidator"/>
        <persistence-property name="datanucleus.connectionPool.initialPoolSize" datastore="true"
            validator="org.datanucleus.properties.IntegerPropertyValidator"/>
        <persistence-property name="datanucleus.connectionPool.maxIdle" datastore="true"
            validator="org.datanucleus.properties.IntegerPropertyValidator"/>
        <persistence-property name="datanucleus.connectionPool.minIdle" datastore="true"
            validator="org.datanucleus.properties.IntegerPropertyValidator"/>
        <persistence-property name="datanucleus.connectionPool.maxActive" datastore="true"
            validator="org.datanucleus.properties.IntegerPropertyValidator"/>
        <persistence-property name="datanucleus.connectionPool.maxWait" datastore="true"
            validator="org.datanucleus.properties.IntegerPropertyValidator"/>
        <persistence-property name="datanucleus.connectionPool.testSQL" datastore="true"
            validator="org.datanucleus.properties.StringPropertyValidator"/>
        <persistence-property name="datanucleus.connectionPool.timeBetweenEvictionRunsMillis" datastore="true"
            validator="org.datanucleus.properties.IntegerPropertyValidator"/>
        <persistence-property name="datanucleus.connectionPool.minEvictableIdleTimeMillis" datastore="true"
            validator="org.datanucleus.properties.IntegerPropertyValidator"/>
        <persistence-property name="datanucleus.connectionPool.maxConnections" datastore="true"
            validator="org.datanucleus.properties.IntegerPropertyValidator"/>
        <persistence-property name="datanucleus.connectionPool.driverProps"/>
    </extension>

    <!-- VALUE GENERATORS -->
    <extension point="org.datanucleus.store_valuegenerator">
        <valuegenerator name="datastore-uuid-hex" class-name="org.datanucleus.store.rdbms.valuegenerator.DatastoreUUIDHexGenerator" datastore="rdbms"/>
        <valuegenerator name="increment" class-name="org.datanucleus.store.rdbms.valuegenerator.TableGenerator" datastore="rdbms"/>
        <valuegenerator name="max" class-name="org.datanucleus.store.rdbms.valuegenerator.MaxGenerator" datastore="rdbms"/>
        <valuegenerator name="sequence" class-name="org.datanucleus.store.rdbms.valuegenerator.SequenceGenerator" datastore="rdbms"/>
        <valuegenerator name="table-sequence" class-name="org.datanucleus.store.rdbms.valuegenerator.TableGenerator" datastore="rdbms"/>
    </extension>

    <!-- JAVA TYPES MAPPING, for "mapped" datastores -->
    <extension point="org.datanucleus.store_mapping">
        <!-- "primitive" types -->
        <mapping java-type="boolean" mapping-class="org.datanucleus.store.rdbms.mapping.java.BooleanMapping"/>
        <mapping java-type="byte" mapping-class="org.datanucleus.store.rdbms.mapping.java.ByteMapping"/>
        <mapping java-type="char" mapping-class="org.datanucleus.store.rdbms.mapping.java.CharacterMapping"/>
        <mapping java-type="double" mapping-class="org.datanucleus.store.rdbms.mapping.java.DoubleMapping"/>
        <mapping java-type="float" mapping-class="org.datanucleus.store.rdbms.mapping.java.FloatMapping" />
        <mapping java-type="int" mapping-class="org.datanucleus.store.rdbms.mapping.java.IntegerMapping"/>
        <mapping java-type="long" mapping-class="org.datanucleus.store.rdbms.mapping.java.LongMapping"/>
        <mapping java-type="short" mapping-class="org.datanucleus.store.rdbms.mapping.java.ShortMapping"/>

        <!-- "java.lang" types -->
        <mapping java-type="java.lang.Boolean" mapping-class="org.datanucleus.store.rdbms.mapping.java.BooleanMapping"/>
        <mapping java-type="java.lang.Byte" mapping-class="org.datanucleus.store.rdbms.mapping.java.ByteMapping" />
        <mapping java-type="java.lang.Character" mapping-class="org.datanucleus.store.rdbms.mapping.java.CharacterMapping" />
        <mapping java-type="java.lang.Double" mapping-class="org.datanucleus.store.rdbms.mapping.java.DoubleMapping" />
        <mapping java-type="java.lang.Float" mapping-class="org.datanucleus.store.rdbms.mapping.java.FloatMapping" />
        <mapping java-type="java.lang.Integer" mapping-class="org.datanucleus.store.rdbms.mapping.java.IntegerMapping" />
        <mapping java-type="java.lang.Long" mapping-class="org.datanucleus.store.rdbms.mapping.java.LongMapping" />
        <mapping java-type="java.lang.Short" mapping-class="org.datanucleus.store.rdbms.mapping.java.ShortMapping" />

        <mapping java-type="java.lang.Class" mapping-class="org.datanucleus.store.rdbms.mapping.java.ClassMapping"/>
        <mapping java-type="java.lang.Number" mapping-class="org.datanucleus.store.rdbms.mapping.java.NumberMapping"/>
        <mapping java-type="java.lang.Object" mapping-class="org.datanucleus.store.rdbms.mapping.java.SerialisedMapping"/>
        <mapping java-type="java.lang.String" mapping-class="org.datanucleus.store.rdbms.mapping.java.StringMapping"/>
        <mapping java-type="java.lang.StringBuffer" mapping-class="org.datanucleus.store.rdbms.mapping.java.StringBufferMapping"/>
        <mapping java-type="java.lang.Enum" mapping-class="org.datanucleus.store.rdbms.mapping.java.EnumMapping"/>

        <!-- "java.awt" types -->
        <mapping java-type="java.awt.Color" mapping-class="org.datanucleus.store.rdbms.mapping.java.ColorMapping"/>
        <mapping java-type="java.awt.image.BufferedImage" mapping-class="org.datanucleus.store.rdbms.mapping.java.BufferedImageMapping"/>

        <!-- "java.io" types -->
        <mapping java-type="java.io.Serializable" mapping-class="org.datanucleus.store.rdbms.mapping.java.SerialisedMapping"/>

        <!-- "java.math" types -->
        <mapping java-type="java.math.BigDecimal" mapping-class="org.datanucleus.store.rdbms.mapping.java.BigDecimalMapping"/>
        <mapping java-type="java.math.BigInteger" mapping-class="org.datanucleus.store.rdbms.mapping.java.BigIntegerMapping"/>

        <!-- "java.net" types -->
        <mapping java-type="java.net.URL" mapping-class="org.datanucleus.store.rdbms.mapping.java.URLMapping"/>
        <mapping java-type="java.net.URI" mapping-class="org.datanucleus.store.rdbms.mapping.java.URIMapping"/>

        <!-- "java.util" types -->
        <mapping java-type="java.util.Calendar" mapping-class="org.datanucleus.store.rdbms.mapping.java.GregorianCalendarMapping"/>
        <mapping java-type="java.util.Date" mapping-class="org.datanucleus.store.rdbms.mapping.java.DateMapping"/>
        <mapping java-type="java.util.Locale" mapping-class="org.datanucleus.store.rdbms.mapping.java.LocaleMapping" />
        <mapping java-type="java.util.TimeZone" mapping-class="org.datanucleus.store.rdbms.mapping.java.TimeZoneMapping"/>

        <!-- "javax.time" types -->
        <mapping java-type="javax.time.calendar.LocalDate"
            mapping-class="org.datanucleus.store.rdbms.mapping.java.LocalDateMapping"/>
        <mapping java-type="javax.time.calendar.LocalDateTime"
            mapping-class="org.datanucleus.store.rdbms.mapping.java.LocalDateTimeMapping"/>
        <mapping java-type="javax.time.calendar.LocalTime"
            mapping-class="org.datanucleus.store.rdbms.mapping.java.LocalTimeMapping"/>

        <!-- "java.sql" types -->
        <mapping java-type="java.sql.Date" mapping-class="org.datanucleus.store.rdbms.mapping.java.SqlDateMapping"/>
        <mapping java-type="java.sql.Time" mapping-class="org.datanucleus.store.rdbms.mapping.java.SqlTimeMapping"/>
        <mapping java-type="java.sql.Timestamp" mapping-class="org.datanucleus.store.rdbms.mapping.java.SqlTimestampMapping"/>

        <!-- array types -->
        <mapping java-type="[B" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[C" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[D" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[F" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[I" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[J" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[S" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[Z" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
    
        <mapping java-type="[Ljava.lang.Boolean;" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[Ljava.lang.Byte;" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[Ljava.lang.Character;" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[Ljava.lang.Double;" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[Ljava.lang.Float;" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[Ljava.lang.Integer;" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[Ljava.lang.Long;" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[Ljava.lang.Short;" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
    
        <mapping java-type="[Ljava.lang.Number;" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[Ljava.lang.String;" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[Ljava.lang.Enum;" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[Ljava.math.BigInteger;" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[Ljava.math.BigDecimal;" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[Ljava.util.Date;" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
        <mapping java-type="[Ljava.util.Locale;" mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping"/>
    
        <!-- container types -->
        <mapping java-type="java.util.ArrayList" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="java.util.BitSet" mapping-class="org.datanucleus.store.rdbms.mapping.java.BitSetMapping"/>
        <mapping java-type="java.util.Collection" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="java.util.Currency" mapping-class="org.datanucleus.store.rdbms.mapping.java.CurrencyMapping"/>
        <mapping java-type="java.util.GregorianCalendar" mapping-class="org.datanucleus.store.rdbms.mapping.java.GregorianCalendarMapping"/>
        <mapping java-type="java.util.HashMap" mapping-class="org.datanucleus.store.rdbms.mapping.java.MapMapping"/>
        <mapping java-type="java.util.HashSet" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="java.util.Hashtable" mapping-class="org.datanucleus.store.rdbms.mapping.java.MapMapping"/>
        <mapping java-type="java.util.LinkedList" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="java.util.List" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="java.util.LinkedHashMap" mapping-class="org.datanucleus.store.rdbms.mapping.java.MapMapping"/>
        <mapping java-type="java.util.LinkedHashSet" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="java.util.Map" mapping-class="org.datanucleus.store.rdbms.mapping.java.MapMapping"/>
        <mapping java-type="java.util.PriorityQueue" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="java.util.Properties" mapping-class="org.datanucleus.store.rdbms.mapping.java.MapMapping"/>
        <mapping java-type="java.util.Queue" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="java.util.Set" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="java.util.SortedMap" mapping-class="org.datanucleus.store.rdbms.mapping.java.MapMapping"/>
        <mapping java-type="java.util.SortedSet" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="java.util.Stack" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="java.util.TreeMap" mapping-class="org.datanucleus.store.rdbms.mapping.java.MapMapping"/>
        <mapping java-type="java.util.TreeSet" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="java.util.UUID" mapping-class="org.datanucleus.store.rdbms.mapping.java.UUIDMapping"/>
        <mapping java-type="java.util.Vector" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>

        <!-- DataNucleus types -->
        <mapping java-type="org.datanucleus.identity.OID" mapping-class="org.datanucleus.store.rdbms.mapping.java.OIDMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.ArrayList" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.Collection" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.HashMap" mapping-class="org.datanucleus.store.rdbms.mapping.java.MapMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.HashSet" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.Hashtable" mapping-class="org.datanucleus.store.rdbms.mapping.java.MapMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.LinkedList" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.List" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.LinkedHashSet" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.LinkedHashMap" mapping-class="org.datanucleus.store.rdbms.mapping.java.MapMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.Map" mapping-class="org.datanucleus.store.rdbms.mapping.java.MapMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.PriorityQueue" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.Properties" mapping-class="org.datanucleus.store.rdbms.mapping.java.MapMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.Queue" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.Set" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.SortedMap" mapping-class="org.datanucleus.store.rdbms.mapping.java.MapMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.SortedSet" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.Stack" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.TreeMap" mapping-class="org.datanucleus.store.rdbms.mapping.java.MapMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.TreeSet" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
        <mapping java-type="org.datanucleus.store.types.backed.Vector" mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping"/>
    </extension>

    <!-- RDBMS MAPPING -->
    <!--
    DB2 : JDBC TINYINT, BIT not supported
    Derby : JDBC TINYINT, BIT not supported, SQL INT types are alias to the SQL INTEGER type
    Firebird : JDBC BIT not supported
    H2 : JDBC BIT not supported
    HSQL : JDBC BIT not supported
    MSSQL : JDBC TINYINT, DOUBLE, DATE, TIME not supported, JDBC INTEGER not supported (uses INT instead)
    Informix : JDBC DOUBLE not supported
    Oracle : JDBC DOUBLE not supported
    Pointbase : JDBC BIT not supported
    PostgreSQL : JDBC TINYINT, DECIMAL, FLOAT not supported
    MaxDB/SAPDB : JDBC TINYINT, BIT, BIGINT, NUMERIC not supported, SQL INT types are alias to the SQL INTEGER type
    Sybase : JDBC FLOAT, BIGINT not supported, SQL INT types are alias to the SQL INTEGER type
    -->
    <extension point="org.datanucleus.store.rdbms.rdbms_mapping">
        <mapping java-type="java.lang.Boolean" jdbc-type="BIT" sql-type="BIT" default="true"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.BitRDBMSMapping">
            <excludes vendor-id="derby"/>
            <excludes vendor-id="firebird"/>
            <excludes vendor-id="h2"/>
            <excludes vendor-id="hsql"/>
            <excludes vendor-id="pointbase"/>
            <excludes vendor-id="sapdb"/>
        </mapping>
        <mapping java-type="java.lang.Boolean" jdbc-type="CHAR" sql-type="CHAR" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.CharRDBMSMapping"/>
        <mapping java-type="java.lang.Boolean" jdbc-type="BOOLEAN" sql-type="BOOLEAN" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.BooleanRDBMSMapping"/>
        <mapping java-type="java.lang.Boolean" jdbc-type="TINYINT" sql-type="TINYINT" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.TinyIntRDBMSMapping">
            <excludes vendor-id="db2"/>
            <excludes vendor-id="derby"/>
            <excludes vendor-id="postgresql"/>
            <excludes vendor-id="sapdb"/>
            <excludes vendor-id="sqlserver"/>
        </mapping>
        <mapping java-type="java.lang.Boolean" jdbc-type="SMALLINT" sql-type="SMALLINT" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.SmallIntRDBMSMapping"/>
        <mapping java-type="java.lang.Boolean" jdbc-type="CHAR" sql-type="CHAR" default="true"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.CharRDBMSMapping">
            <includes vendor-id="db2"/>
            <includes vendor-id="derby"/>
            <includes vendor-id="firebird"/>
            <includes vendor-id="pointbase"/>
            <includes vendor-id="sapdb"/>
        </mapping>
        <mapping java-type="java.lang.Boolean" jdbc-type="BOOLEAN" sql-type="BOOLEAN" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.CharRDBMSMapping">
            <includes vendor-id="hsql"/>
        </mapping>
        <mapping java-type="java.lang.Boolean" jdbc-type="NUMERIC" sql-type="NUMERIC" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>

        <mapping java-type="java.lang.Byte" jdbc-type="TINYINT" sql-type="TINYINT" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.TinyIntRDBMSMapping">
            <excludes vendor-id="db2"/>
            <excludes vendor-id="derby"/>
            <excludes vendor-id="postgresql"/>
            <excludes vendor-id="sapdb"/>
            <excludes vendor-id="sqlserver"/>
        </mapping>
        <mapping java-type="java.lang.Byte" jdbc-type="SMALLINT" sql-type="SMALLINT" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.SmallIntRDBMSMapping"/>
        <mapping java-type="java.lang.Byte" jdbc-type="NUMERIC" sql-type="NUMERIC" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>

        <mapping java-type="java.lang.Character" jdbc-type="CHAR" sql-type="CHAR" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.CharRDBMSMapping"/>
        <mapping java-type="java.lang.Character" jdbc-type="INTEGER" sql-type="INTEGER" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.IntegerRDBMSMapping">
            <excludes vendor-id="sqlserver"/>
        </mapping>
        <mapping java-type="java.lang.Character" jdbc-type="INTEGER" sql-type="INT" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.IntegerRDBMSMapping">
            <includes vendor-id="derby"/>
            <includes vendor-id="sapdb"/>
            <includes vendor-id="sqlserver"/>
            <includes vendor-id="sybase"/>
        </mapping>
        <mapping java-type="java.lang.Character" jdbc-type="NUMERIC" sql-type="NUMERIC" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>

        <mapping java-type="java.lang.Double" jdbc-type="DOUBLE" sql-type="DOUBLE" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.DoubleRDBMSMapping">
            <excludes vendor-id="informix"/>
            <excludes vendor-id="sqlserver"/>
        </mapping>
        <mapping java-type="java.lang.Double" jdbc-type="DECIMAL" sql-type="DECIMAL" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.DecimalRDBMSMapping">
            <excludes vendor-id="postgresql"/>
        </mapping>
        <mapping java-type="java.lang.Double" jdbc-type="FLOAT" sql-type="FLOAT" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.FloatRDBMSMapping">
            <includes vendor-id="informix"/>
            <includes vendor-id="oracle"/>
            <includes vendor-id="sqlserver"/>
        </mapping>
        <mapping java-type="java.lang.Double" jdbc-type="NUMERIC" sql-type="NUMBER" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>

        <mapping java-type="java.lang.Float" jdbc-type="FLOAT" sql-type="FLOAT" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.FloatRDBMSMapping">
            <excludes vendor-id="postgresql"/>
            <excludes vendor-id="sybase"/>
            <excludes vendor-id="db2"/>
        </mapping>
        <mapping java-type="java.lang.Float" jdbc-type="DOUBLE" sql-type="DOUBLE" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.DoubleRDBMSMapping">
            <excludes vendor-id="informix"/>
            <excludes vendor-id="sqlserver"/>
        </mapping>
        <mapping java-type="java.lang.Float" jdbc-type="REAL" sql-type="REAL" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.RealRDBMSMapping">
            <excludes vendor-id="db2"/>
        </mapping>
        <mapping java-type="java.lang.Float" jdbc-type="REAL" sql-type="REAL" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.RealRDBMSMapping">
            <includes vendor-id="db2"/>
        </mapping>
        <mapping java-type="java.lang.Float" jdbc-type="DECIMAL" sql-type="DECIMAL" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.DecimalRDBMSMapping">
            <excludes vendor-id="postgresql"/>
        </mapping>
        <mapping java-type="java.lang.Float" jdbc-type="DOUBLE" sql-type="DOUBLE" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.DoubleRDBMSMapping">
            <includes vendor-id="postgresql"/>
            <includes vendor-id="sybase"/>
        </mapping>
        <mapping java-type="java.lang.Float" jdbc-type="NUMERIC" sql-type="NUMBER" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>

        <mapping java-type="java.lang.Integer" jdbc-type="INTEGER" sql-type="INTEGER" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.IntegerRDBMSMapping">
            <excludes vendor-id="sqlserver"/>
        </mapping>
        <mapping java-type="java.lang.Integer" jdbc-type="BIGINT" sql-type="BIGINT" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping">
            <excludes vendor-id="sapdb"/>
            <excludes vendor-id="sybase"/>
        </mapping>
        <mapping java-type="java.lang.Integer" jdbc-type="NUMERIC" sql-type="NUMERIC" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <excludes vendor-id="sapdb"/>
        </mapping>
        <mapping java-type="java.lang.Integer" jdbc-type="INTEGER" sql-type="INT" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.IntegerRDBMSMapping">
            <includes vendor-id="derby"/>
            <includes vendor-id="sapdb"/>
            <includes vendor-id="sqlserver"/>
            <includes vendor-id="sybase"/>
        </mapping>
        <mapping java-type="java.lang.Integer" jdbc-type="NUMERIC" sql-type="NUMERIC" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>
        <mapping java-type="java.lang.Integer" jdbc-type="NUMERIC" sql-type="NUMBER" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>
        <mapping java-type="java.lang.Integer" jdbc-type="TINYINT" sql-type="TINYINT" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.TinyIntRDBMSMapping">
            <excludes vendor-id="db2"/>
            <excludes vendor-id="derby"/>
            <excludes vendor-id="postgresql"/>
            <excludes vendor-id="sapdb"/>
            <excludes vendor-id="sqlserver"/>
        </mapping>
        <mapping java-type="java.lang.Integer" jdbc-type="SMALLINT" sql-type="SMALLINT" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.SmallIntRDBMSMapping"/>
        <mapping java-type="java.lang.Integer" jdbc-type="BIGINT" sql-type="BIGINT" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping">
            <excludes vendor-id="sapdb"/>
            <excludes vendor-id="sybase"/>
        </mapping>

        <mapping java-type="java.lang.Long" jdbc-type="BIGINT" sql-type="BIGINT" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping">
            <excludes vendor-id="sapdb"/>
            <excludes vendor-id="sybase"/>
        </mapping>
        <mapping java-type="java.lang.Long" jdbc-type="INTEGER" sql-type="INT" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.IntegerRDBMSMapping">
            <excludes vendor-id="sybase"/>
        </mapping>
        <mapping java-type="java.lang.Long" jdbc-type="NUMERIC" sql-type="NUMERIC" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <excludes vendor-id="sapdb"/>
        </mapping>
        <mapping java-type="java.lang.Long" jdbc-type="DOUBLE" sql-type="DOUBLE" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.DoubleRDBMSMapping">
            <includes vendor-id="sapdb"/>
        </mapping>
        <mapping java-type="java.lang.Long" jdbc-type="DECIMAL" sql-type="NUMERIC" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.DecimalRDBMSMapping">
            <includes vendor-id="sapdb"/>
        </mapping>
        <mapping java-type="java.lang.Long" jdbc-type="INTEGER" sql-type="INT" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.IntegerRDBMSMapping">
            <includes vendor-id="sybase"/>
        </mapping>
        <mapping java-type="java.lang.Long" jdbc-type="NUMERIC" sql-type="NUMERIC" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>
        <mapping java-type="java.lang.Long" jdbc-type="NUMERIC" sql-type="NUMBER" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>
        <mapping java-type="java.lang.Long" jdbc-type="TINYINT" sql-type="TINYINT" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.TinyIntRDBMSMapping">
            <excludes vendor-id="db2"/>
            <excludes vendor-id="derby"/>
            <excludes vendor-id="postgresql"/>
            <excludes vendor-id="sapdb"/>
            <excludes vendor-id="sqlserver"/>
        </mapping>
        <mapping java-type="java.lang.Long" jdbc-type="SMALLINT" sql-type="SMALLINT" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.SmallIntRDBMSMapping"/>

        <mapping java-type="java.lang.Short" jdbc-type="SMALLINT" sql-type="SMALLINT" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.SmallIntRDBMSMapping"/>
        <mapping java-type="java.lang.Short" jdbc-type="INTEGER" sql-type="INTEGER" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.IntegerRDBMSMapping">
            <excludes vendor-id="sqlserver"/>
        </mapping>
        <mapping java-type="java.lang.Short" jdbc-type="INTEGER" sql-type="INT" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.IntegerRDBMSMapping">
            <includes vendor-id="derby"/>
            <includes vendor-id="sapdb"/>
            <includes vendor-id="sqlserver"/>
            <includes vendor-id="sybase"/>
        </mapping>
        <mapping java-type="java.lang.Short" jdbc-type="NUMERIC" sql-type="NUMERIC" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>
        <mapping java-type="java.lang.Short" jdbc-type="NUMERIC" sql-type="NUMBER" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>
        <mapping java-type="java.lang.Short" jdbc-type="TINYINT" sql-type="TINYINT" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.TinyIntRDBMSMapping">
            <excludes vendor-id="db2"/>
            <excludes vendor-id="derby"/>
            <excludes vendor-id="postgresql"/>
            <excludes vendor-id="sapdb"/>
            <excludes vendor-id="sqlserver"/>
        </mapping>

        <mapping java-type="java.lang.String" jdbc-type="VARCHAR" sql-type="VARCHAR" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.VarCharRDBMSMapping"/>
        <mapping java-type="java.lang.String" jdbc-type="CHAR" sql-type="CHAR" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.CharRDBMSMapping"/>
        <mapping java-type="java.lang.String" jdbc-type="BIGINT" sql-type="BIGINT" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping"/>
        <mapping java-type="java.lang.String" jdbc-type="LONGVARCHAR" sql-type="LONGVARCHAR" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.LongVarcharRDBMSMapping"/>
        <mapping java-type="java.lang.String" jdbc-type="CLOB" sql-type="CLOB" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.ClobRDBMSMapping">
            <excludes vendor-id="oracle"/>
        </mapping>
        <mapping java-type="java.lang.String" jdbc-type="CLOB" sql-type="CLOB" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.oracle.OracleClobRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>
        <mapping java-type="java.lang.String" jdbc-type="BLOB" sql-type="BLOB" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.BlobRDBMSMapping">
            <excludes vendor-id="oracle"/>
        </mapping>
        <mapping java-type="java.lang.String" jdbc-type="BLOB" sql-type="BLOB" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.oracle.OracleBlobRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>
        <mapping java-type="java.lang.String" jdbc-type="DATALINK" sql-type="DATALINK" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.DatalinkRDBMSMapping">
            <includes vendor-id="db2"/>
        </mapping>
        <mapping java-type="java.lang.String" jdbc-type="CHAR" sql-type="UNIQUEIDENTIFIER" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.CharRDBMSMapping">
            <includes vendor-id="sqlserver"/>
        </mapping>
        <mapping java-type="java.lang.String" jdbc-type="SQLXML" sql-type="SQLXML" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.SqlXmlRDBMSMapping">
            <includes vendor-id="db2"/>
        </mapping>
        <mapping java-type="java.lang.String" jdbc-type="LONGVARCHAR" sql-type="LONGTEXT" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.LongVarcharRDBMSMapping">
            <includes vendor-id="mysql"/>
        </mapping>
        <mapping java-type="java.lang.String" jdbc-type="LONGVARCHAR" sql-type="MEDIUMTEXT" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.LongVarcharRDBMSMapping">
            <includes vendor-id="mysql"/>
        </mapping>
        <mapping java-type="java.lang.String" jdbc-type="LONGVARCHAR" sql-type="TEXT" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.LongVarcharRDBMSMapping">
            <includes vendor-id="mysql"/>
        </mapping>
        <mapping java-type="java.lang.String" jdbc-type="BLOB" sql-type="LONGBLOB" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.BlobRDBMSMapping">
            <includes vendor-id="mysql"/>
        </mapping>
        <mapping java-type="java.lang.String" jdbc-type="BLOB" sql-type="MEDIUMBLOB" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.BlobRDBMSMapping">
            <includes vendor-id="mysql"/>
        </mapping>
        <mapping java-type="java.lang.String" jdbc-type="XMLTYPE" sql-type="XMLTYPE" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.oracle.XMLTypeRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>
        <mapping java-type="java.lang.String" jdbc-type="NVARCHAR" sql-type="NVARCHAR" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NVarcharRDBMSMapping"/>
        <mapping java-type="java.lang.String" jdbc-type="NCHAR" sql-type="NCHAR" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NCharRDBMSMapping"/>

        <mapping java-type="java.math.BigDecimal" jdbc-type="DECIMAL" sql-type="DECIMAL" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.DecimalRDBMSMapping">
            <excludes vendor-id="postgresql"/>
        </mapping>
        <mapping java-type="java.math.BigDecimal" jdbc-type="NUMERIC" sql-type="NUMERIC" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <excludes vendor-id="sapdb"/>
        </mapping>
        <mapping java-type="java.math.BigDecimal" jdbc-type="NUMERIC" sql-type="NUMERIC" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <includes vendor-id="postgresql"/>
        </mapping>
        <mapping java-type="java.math.BigDecimal" jdbc-type="NUMERIC" sql-type="NUMERIC" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>
        <mapping java-type="java.math.BigDecimal" jdbc-type="NUMERIC" sql-type="NUMBER" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>

        <mapping java-type="java.math.BigInteger" jdbc-type="NUMERIC" sql-type="NUMERIC" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <excludes vendor-id="sapdb"/>
        </mapping>
        <mapping java-type="java.math.BigInteger" jdbc-type="DECIMAL" sql-type="NUMERIC" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.DecimalRDBMSMapping">
            <includes vendor-id="sapdb"/>
        </mapping>
        <mapping java-type="java.math.BigInteger" jdbc-type="NUMERIC" sql-type="NUMBER" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>

        <mapping java-type="java.sql.Date" jdbc-type="DATE" sql-type="DATE" default="true"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.DateRDBMSMapping">
            <excludes vendor-id="sqlserver"/>
        </mapping>
        <mapping java-type="java.sql.Date" jdbc-type="TIMESTAMP" sql-type="TIMESTAMP" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.TimestampRDBMSMapping"/>
        <mapping java-type="java.sql.Date" jdbc-type="CHAR" sql-type="CHAR" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.CharRDBMSMapping"/>
        <mapping java-type="java.sql.Date" jdbc-type="VARCHAR" sql-type="VARCHAR" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.VarCharRDBMSMapping"/>
        <mapping java-type="java.sql.Date" jdbc-type="BIGINT" sql-type="BIGINT" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping">
            <excludes vendor-id="sapdb"/>
            <excludes vendor-id="sybase"/>
        </mapping>

        <mapping java-type="java.sql.Time" jdbc-type="TIME" sql-type="TIME" default="true"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.TimeRDBMSMapping">
            <excludes vendor-id="sqlserver"/>
        </mapping>
        <mapping java-type="java.sql.Time" jdbc-type="TIMESTAMP" sql-type="TIMESTAMP" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.TimestampRDBMSMapping"/>
        <mapping java-type="java.sql.Time" jdbc-type="CHAR" sql-type="CHAR" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.CharRDBMSMapping"/>
        <mapping java-type="java.sql.Time" jdbc-type="VARCHAR" sql-type="VARCHAR" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.VarCharRDBMSMapping"/>
        <mapping java-type="java.sql.Time" jdbc-type="BIGINT" sql-type="BIGINT" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping">
            <excludes vendor-id="sapdb"/>
            <excludes vendor-id="sybase"/>
        </mapping>

        <mapping java-type="java.sql.Timestamp" jdbc-type="TIMESTAMP" sql-type="TIMESTAMP" default="true"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.TimestampRDBMSMapping"/>
        <mapping java-type="java.sql.Timestamp" jdbc-type="CHAR" sql-type="CHAR" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.CharRDBMSMapping"/>
        <mapping java-type="java.sql.Timestamp" jdbc-type="VARCHAR" sql-type="VARCHAR" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.VarCharRDBMSMapping"/>

        <mapping java-type="java.util.Date" jdbc-type="TIMESTAMP" sql-type="TIMESTAMP" default="true"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.TimestampRDBMSMapping"/>
        <mapping java-type="java.util.Date" jdbc-type="DATE" sql-type="DATE" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.DateRDBMSMapping">
            <excludes vendor-id="sqlserver"/>
        </mapping>
        <mapping java-type="java.util.Date" jdbc-type="CHAR" sql-type="CHAR" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.CharRDBMSMapping"/>
        <mapping java-type="java.util.Date" jdbc-type="VARCHAR" sql-type="VARCHAR" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.VarCharRDBMSMapping"/>
        <mapping java-type="java.util.Date" jdbc-type="BIGINT" sql-type="BIGINT" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping">
            <excludes vendor-id="sapdb"/>
            <excludes vendor-id="sybase"/>
        </mapping>
        <mapping java-type="java.util.Date" jdbc-type="TIME" sql-type="TIME" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.TimeRDBMSMapping"/>

        <mapping java-type="java.io.Serializable" jdbc-type="LONGVARBINARY" sql-type="LONGVARBINARY" default="true"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.LongVarBinaryRDBMSMapping">
        </mapping>
        <mapping java-type="java.io.Serializable" jdbc-type="BLOB" sql-type="BLOB" default="false"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.BlobRDBMSMapping">
            <excludes vendor-id="oracle"/>
        </mapping>
        <mapping java-type="java.io.Serializable" jdbc-type="BLOB" sql-type="BLOB" default="true"
            rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.oracle.OracleBlobRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>
        <mapping java-type="java.io.Serializable" jdbc-type="VARBINARY" sql-type="VARBINARY" default="false"
                 rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.VarBinaryRDBMSMapping">
            <excludes vendor-id="timesten"/>
        </mapping>
        <mapping java-type="java.io.Serializable" jdbc-type="VARBINARY" sql-type="VARBINARY" default="true"
                 rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.TimesTenVarBinaryRDBMSMapping">
            <includes vendor-id="timesten"/>
        </mapping>

        <mapping java-type="org.datanucleus.identity.OID" jdbc-type="BIGINT" sql-type="BIGINT" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping">
            <excludes vendor-id="sapdb"/>
            <excludes vendor-id="sybase"/>
        </mapping>
        <mapping java-type="org.datanucleus.identity.OID" jdbc-type="INTEGER" sql-type="INTEGER" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.IntegerRDBMSMapping">
            <excludes vendor-id="sqlserver"/>
        </mapping>
        <mapping java-type="org.datanucleus.identity.OID" jdbc-type="NUMERIC" sql-type="NUMERIC" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <excludes vendor-id="sapdb"/>
        </mapping>
        <mapping java-type="org.datanucleus.identity.OID" jdbc-type="CHAR" sql-type="CHAR" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.CharRDBMSMapping"/>
        <mapping java-type="org.datanucleus.identity.OID" jdbc-type="VARCHAR" sql-type="VARCHAR" default="false"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.VarCharRDBMSMapping"/>
        <mapping java-type="org.datanucleus.identity.OID" jdbc-type="INTEGER" sql-type="INT" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.IntegerRDBMSMapping">
            <includes vendor-id="sapdb"/>
            <includes vendor-id="sqlserver"/>
            <includes vendor-id="sybase"/>
        </mapping>
        <mapping java-type="org.datanucleus.identity.OID" jdbc-type="NUMERIC" sql-type="NUMERIC" default="true"
             rdbms-mapping-class="org.datanucleus.store.rdbms.mapping.datastore.NumericRDBMSMapping">
            <includes vendor-id="oracle"/>
        </mapping>
    </extension>

    <!-- IDENTIFIER FACTORIES -->
    <extension point="org.datanucleus.store_identifierfactory">
        <identifierfactory name="datanucleus2" class-name="org.datanucleus.store.rdbms.identifier.DN2IdentifierFactory"/>
        <identifierfactory name="jpa" class-name="org.datanucleus.store.rdbms.identifier.JPAIdentifierFactory"/>
        <identifierfactory name="datanucleus1" class-name="org.datanucleus.store.rdbms.identifier.DNIdentifierFactory"/>
		<identifierfactory name="jpox" class-name="org.datanucleus.store.rdbms.identifier.JPOXIdentifierFactory"/>        
    </extension>

    <!-- SQL EXPRESSIONS -->
    <extension point="org.datanucleus.store.rdbms.sql_expression">
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.ArrayMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.ArrayLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.ArrayExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.oracle.OracleArrayMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.ArrayLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.ArrayExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.BigDecimalMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.FloatingPointLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.NumericExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.BigIntegerMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.IntegerLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.NumericExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.BooleanMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.BooleanLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.BooleanExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.ByteMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.ByteLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.ByteExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.CharacterMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.CharacterLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.CharacterExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.CollectionMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.CollectionLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.CollectionExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.oracle.OracleCollectionMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.CollectionLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.CollectionExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.CurrencyMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.StringLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.StringExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.DateMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.TemporalLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.TemporalExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.DiscriminatorLongMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.IntegerLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.NumericExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.DiscriminatorStringMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.StringLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.StringExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.DoubleMapping"
            literal-class="org.datanucleus.store.rdbms.sql.expression.FloatingPointLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.NumericExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.EnumMapping"
            literal-class="org.datanucleus.store.rdbms.sql.expression.EnumLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.EnumExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.FloatMapping"
            literal-class="org.datanucleus.store.rdbms.sql.expression.FloatingPointLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.NumericExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.GregorianCalendarMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.TemporalLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.TemporalExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.IndexMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.IntegerLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.NumericExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.IntegerMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.IntegerLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.NumericExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.LocaleMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.StringLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.StringExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.LongMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.IntegerLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.NumericExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.MapMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.MapLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.MapExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.oracle.OracleMapMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.MapLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.MapExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.NumberMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.FloatingPointLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.NumericExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.OIDMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.ObjectLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.ObjectExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.PersistableMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.ObjectLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.ObjectExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.PersistableIdMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.ObjectLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.ObjectExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.ReferenceIdMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.ObjectLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.ObjectExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.ObjectMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.ObjectLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.ObjectExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.EmbeddedPCMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.ObjectLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.ObjectExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.EmbeddedElementPCMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.ObjectLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.ObjectExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.EmbeddedKeyPCMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.ObjectLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.ObjectExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.EmbeddedValuePCMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.ObjectLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.ObjectExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.ReferenceMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.ObjectLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.ObjectExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.InterfaceMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.ObjectLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.ObjectExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.ShortMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.IntegerLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.NumericExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.SqlDateMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.TemporalLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.TemporalExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.SqlTimeMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.TemporalLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.TemporalExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.SqlTimestampMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.TemporalLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.TemporalExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.StringMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.StringLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.StringExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.oracle.OracleStringMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.StringLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.StringExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.StringBufferMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.StringLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.StringExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.TimeZoneMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.StringLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.StringExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.URLMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.StringLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.StringExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.URIMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.StringLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.StringExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.UUIDMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.StringLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.StringExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.VersionLongMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.IntegerLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.NumericExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.VersionTimestampMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.TemporalLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.TemporalExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.ClassMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.StringLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.StringExpression"/>

        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.LocalDateMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.LocalDateLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.StringTemporalExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.LocalDateTimeMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.LocalDateTimeLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.StringTemporalExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.LocalTimeMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.LocalTimeLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.StringTemporalExpression"/>

        <!-- Fallback for types with a String/Long-based converter and no specific mapping -->
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.TypeConverterStringMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.StringLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.StringExpression"/>
        <sql-expression mapping-class="org.datanucleus.store.rdbms.mapping.java.TypeConverterLongMapping" 
            literal-class="org.datanucleus.store.rdbms.sql.expression.IntegerLiteral"
            expression-class="org.datanucleus.store.rdbms.sql.expression.NumericExpression"/>
    </extension>

    <!-- SQL METHODS -->
    <extension point="org.datanucleus.store.rdbms.sql_method">
        <sql-method method="abs" evaluator="org.datanucleus.store.rdbms.sql.method.AbsFunction"/>
        <sql-method method="acos" evaluator="org.datanucleus.store.rdbms.sql.method.AcosFunction"/>
        <sql-method method="asin" evaluator="org.datanucleus.store.rdbms.sql.method.AsinFunction"/>
        <sql-method method="atan" evaluator="org.datanucleus.store.rdbms.sql.method.AtanFunction"/>
        <sql-method method="avg" evaluator="org.datanucleus.store.rdbms.sql.method.AvgFunction"/>
        <sql-method method="ceil" evaluator="org.datanucleus.store.rdbms.sql.method.CeilFunction"/>
        <sql-method method="cos" evaluator="org.datanucleus.store.rdbms.sql.method.CosFunction"/>
        <sql-method method="count" evaluator="org.datanucleus.store.rdbms.sql.method.CountFunction"/>
        <sql-method method="exp" evaluator="org.datanucleus.store.rdbms.sql.method.ExpFunction"/>
        <sql-method method="floor" evaluator="org.datanucleus.store.rdbms.sql.method.FloorFunction"/>
        <sql-method method="log" evaluator="org.datanucleus.store.rdbms.sql.method.LogFunction"/>
        <sql-method method="max" evaluator="org.datanucleus.store.rdbms.sql.method.MaxFunction"/>
        <sql-method method="min" evaluator="org.datanucleus.store.rdbms.sql.method.MinFunction"/>
        <sql-method method="sin" evaluator="org.datanucleus.store.rdbms.sql.method.SinFunction"/>
        <sql-method method="sqrt" evaluator="org.datanucleus.store.rdbms.sql.method.SqrtFunction"/>
        <sql-method method="sum" evaluator="org.datanucleus.store.rdbms.sql.method.SumFunction"/>
        <sql-method method="tan" evaluator="org.datanucleus.store.rdbms.sql.method.TanFunction"/>
        <sql-method method="ABS" evaluator="org.datanucleus.store.rdbms.sql.method.AbsFunction"/>
        <sql-method method="ACOS" evaluator="org.datanucleus.store.rdbms.sql.method.AcosFunction"/>
        <sql-method method="ASIN" evaluator="org.datanucleus.store.rdbms.sql.method.AsinFunction"/>
        <sql-method method="ATAN" evaluator="org.datanucleus.store.rdbms.sql.method.AtanFunction"/>
        <sql-method method="AVG" evaluator="org.datanucleus.store.rdbms.sql.method.AvgFunction"/>
        <sql-method method="CEIL" evaluator="org.datanucleus.store.rdbms.sql.method.CeilFunction"/>
        <sql-method method="COS" evaluator="org.datanucleus.store.rdbms.sql.method.CosFunction"/>
        <sql-method method="COUNT" evaluator="org.datanucleus.store.rdbms.sql.method.CountFunction"/>
        <sql-method method="EXP" evaluator="org.datanucleus.store.rdbms.sql.method.ExpFunction"/>
        <sql-method method="FLOOR" evaluator="org.datanucleus.store.rdbms.sql.method.FloorFunction"/>
        <sql-method method="LOG" evaluator="org.datanucleus.store.rdbms.sql.method.LogFunction"/>
        <sql-method method="MAX" evaluator="org.datanucleus.store.rdbms.sql.method.MaxFunction"/>
        <sql-method method="MIN" evaluator="org.datanucleus.store.rdbms.sql.method.MinFunction"/>
        <sql-method method="SIN" evaluator="org.datanucleus.store.rdbms.sql.method.SinFunction"/>
        <sql-method method="SQRT" evaluator="org.datanucleus.store.rdbms.sql.method.SqrtFunction"/>
        <sql-method method="SUM" evaluator="org.datanucleus.store.rdbms.sql.method.SumFunction"/>
        <sql-method method="TAN" evaluator="org.datanucleus.store.rdbms.sql.method.TanFunction"/>
        <sql-method method="COALESCE" evaluator="org.datanucleus.store.rdbms.sql.method.CoalesceFunction"/>
        <sql-method method="NULLIF" evaluator="org.datanucleus.store.rdbms.sql.method.NullIfFunction"/>
        <sql-method method="INDEX" evaluator="org.datanucleus.store.rdbms.sql.method.IndexFunction"/>
        <sql-method method="CURRENT_DATE" evaluator="org.datanucleus.store.rdbms.sql.method.CurrentDateFunction"/>
        <sql-method method="CURRENT_TIME" evaluator="org.datanucleus.store.rdbms.sql.method.CurrentTimeFunction"/>
        <sql-method method="CURRENT_TIMESTAMP" evaluator="org.datanucleus.store.rdbms.sql.method.CurrentTimestampFunction"/>
        <sql-method method="Math.abs" evaluator="org.datanucleus.store.rdbms.sql.method.MathAbsMethod"/>
        <sql-method method="Math.acos" evaluator="org.datanucleus.store.rdbms.sql.method.MathAcosMethod"/>
        <sql-method method="Math.asin" evaluator="org.datanucleus.store.rdbms.sql.method.MathAsinMethod"/>
        <sql-method method="Math.atan" evaluator="org.datanucleus.store.rdbms.sql.method.MathAtanMethod"/>
        <sql-method method="Math.ceil" evaluator="org.datanucleus.store.rdbms.sql.method.MathCeilMethod"/>
        <sql-method method="Math.cos" evaluator="org.datanucleus.store.rdbms.sql.method.MathCosMethod"/>
        <sql-method method="Math.exp" evaluator="org.datanucleus.store.rdbms.sql.method.MathExpMethod"/>
        <sql-method method="Math.floor" evaluator="org.datanucleus.store.rdbms.sql.method.MathFloorMethod"/>
        <sql-method method="Math.log" evaluator="org.datanucleus.store.rdbms.sql.method.MathLogMethod"/>
        <sql-method method="Math.sin" evaluator="org.datanucleus.store.rdbms.sql.method.MathSinMethod"/>
        <sql-method method="Math.sqrt" evaluator="org.datanucleus.store.rdbms.sql.method.MathSqrtMethod"/>
        <sql-method method="Math.tan" evaluator="org.datanucleus.store.rdbms.sql.method.MathTanMethod"/>
        <sql-method method="JDOHelper.getObjectId"
            evaluator="org.datanucleus.store.rdbms.sql.method.JDOHelperGetObjectIdMethod"/>
        <sql-method method="JDOHelper.getVersion"
            evaluator="org.datanucleus.store.rdbms.sql.method.JDOHelperGetVersionMethod"/>
        <sql-method method="SQL_cube" datastore="db2"
            evaluator="org.datanucleus.store.rdbms.sql.method.SQLCubeFunction"/>
        <sql-method method="SQL_cube" datastore="oracle"
            evaluator="org.datanucleus.store.rdbms.sql.method.SQLCubeFunction"/>
        <sql-method method="SQL_cube" datastore="sqlserver"
            evaluator="org.datanucleus.store.rdbms.sql.method.SQLCubeFunction"/>
        <sql-method method="SQL_rollup" datastore="db2"
            evaluator="org.datanucleus.store.rdbms.sql.method.SQLRollupFunction"/>
        <sql-method method="SQL_rollup" datastore="oracle"
            evaluator="org.datanucleus.store.rdbms.sql.method.SQLRollupFunction"/>
        <sql-method method="SQL_rollup" datastore="sqlserver"
            evaluator="org.datanucleus.store.rdbms.sql.method.SQLRollupFunction"/>
        <sql-method method="SQL_boolean" evaluator="org.datanucleus.store.rdbms.sql.method.SQLBooleanMethod"/>
        <sql-method method="SQL_numeric" evaluator="org.datanucleus.store.rdbms.sql.method.SQLNumericMethod"/>
        <sql-method method="SQL_function" evaluator="org.datanucleus.store.rdbms.sql.method.SQLFunctionMethod"/>

        <sql-method class="java.lang.Enum" method="ordinal"
            evaluator="org.datanucleus.store.rdbms.sql.method.EnumOrdinalMethod"/>
        <sql-method class="java.lang.Enum" method="toString"
            evaluator="org.datanucleus.store.rdbms.sql.method.EnumToStringMethod"/>
        <sql-method class="java.lang.Object" method="getClass"
            evaluator="org.datanucleus.store.rdbms.sql.method.ObjectGetClassMethod"/>
        <sql-method class="java.lang.String" method="charAt"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringCharAtMethod"/>
        <sql-method class="java.lang.String" method="endsWith"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringEndsWithMethod"/>
        <sql-method class="java.lang.String" method="equals"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringEqualsMethod"/>
        <sql-method class="java.lang.String" method="equalsIgnoreCase"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringEqualsIgnoreCaseMethod"/>
        <sql-method class="java.lang.String" method="indexOf"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringIndexOfMethod"/>
        <sql-method class="java.lang.String" method="indexOf" datastore="oracle"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringIndexOf2Method"/>
        <sql-method class="java.lang.String" method="indexOf" datastore="db2"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringIndexOf3Method"/>
        <sql-method class="java.lang.String" method="indexOf" datastore="sqlserver"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringIndexOf4Method"/>
        <sql-method class="java.lang.String" method="indexOf" datastore="postgresql"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringIndexOf5Method"/>
        <sql-method class="java.lang.String" method="indexOf" datastore="sybase"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringIndexOf4Method"/>
        <sql-method class="java.lang.String" method="length"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringLengthMethod"/>
        <sql-method class="java.lang.String" method="length" datastore="derby"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringLength3Method"/>
        <sql-method class="java.lang.String" method="length" datastore="db2"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringLength3Method"/>
        <sql-method class="java.lang.String" method="length" datastore="mckoi"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringLength3Method"/>
        <sql-method class="java.lang.String" method="length" datastore="firebird"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringLength2Method"/>
        <sql-method class="java.lang.String" method="length" datastore="oracle"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringLength3Method"/>
        <sql-method class="java.lang.String" method="length" datastore="sapdb"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringLength3Method"/>
        <sql-method class="java.lang.String" method="matches"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringMatchesMethod"/>
        <sql-method class="java.lang.String" method="matches" datastore="derby"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringMatchesDerbyMethod"/>
        <sql-method class="java.lang.String" method="replaceAll"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringReplaceAllMethod"/>

        <sql-method class="java.lang.String" method="similarTo" datastore="postgresql"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringSimilarPostgresqlMethod"/>

        <sql-method class="java.lang.String" method="startsWith"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringStartsWithMethod"/>
        <sql-method class="java.lang.String" method="startsWith" datastore="sqlserver"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringStartsWith2Method"/>
        <sql-method class="java.lang.String" method="startsWith" datastore="mysql"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringStartsWith3Method"/>
        <sql-method class="java.lang.String" method="startsWith" datastore="hsql"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringStartsWith3Method"/>
        <sql-method class="java.lang.String" method="startsWith" datastore="derby"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringStartsWith3Method"/>
        <sql-method class="java.lang.String" method="substring"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringSubstringMethod"/>
        <sql-method class="java.lang.String" method="substring" datastore="mckoi"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringSubstring2Method"/>
        <sql-method class="java.lang.String" method="substring" datastore="sqlserver"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringSubstring2Method"/>
        <sql-method class="java.lang.String" method="substring" datastore="sybase"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringSubstring2Method"/>
        <sql-method class="java.lang.String" method="substring" datastore="db2"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringSubstring3Method"/>
        <sql-method class="java.lang.String" method="substring" datastore="derby"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringSubstring3Method"/>
        <sql-method class="java.lang.String" method="substring" datastore="firebird"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringSubstring3Method"/>
        <sql-method class="java.lang.String" method="substring" datastore="informix"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringSubstring3Method"/>
        <sql-method class="java.lang.String" method="substring" datastore="oracle"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringSubstring3Method"/>
        <sql-method class="java.lang.String" method="substring" datastore="sapdb"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringSubstring3Method"/>
        <sql-method class="java.lang.String" method="toUpperCase"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringToUpperMethod"/>
        <sql-method class="java.lang.String" method="toLowerCase"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringToLowerMethod"/>
        <sql-method class="java.lang.String" method="translate"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringTranslateMethod" datastore="postgresql"/>
        <sql-method class="java.lang.String" method="translate"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringTranslateMethod" datastore="oracle"/>
        <sql-method class="java.lang.String" method="translate"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringTranslateMethod" datastore="db2"/>

        <sql-method class="java.lang.String" method="trim" 
            evaluator="org.datanucleus.store.rdbms.sql.method.StringTrimMethod"/>
        <sql-method class="java.lang.String" method="trim" datastore="derby"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringTrim2Method"/>
        <sql-method class="java.lang.String" method="trim" datastore="db2"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringTrim2Method"/>
        <sql-method class="java.lang.String" method="trim" datastore="hsql"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringTrim2Method"/>
        <sql-method class="java.lang.String" method="trim" datastore="sqlserver"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringTrim2Method"/>
        <sql-method class="java.lang.String" method="trim" datastore="mysql"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringTrim3Method"/>
        <sql-method class="java.lang.String" method="trim" datastore="postgresql"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringTrim3Method"/>

        <sql-method class="java.lang.String" method="trimLeft" 
            evaluator="org.datanucleus.store.rdbms.sql.method.StringTrimLeftMethod"/>
        <sql-method class="java.lang.String" method="trimLeft" datastore="mysql"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringTrimLeft3Method"/>
        <sql-method class="java.lang.String" method="trimLeft" datastore="postgresql"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringTrimLeft3Method"/>

        <sql-method class="java.lang.String" method="trimRight" 
            evaluator="org.datanucleus.store.rdbms.sql.method.StringTrimRightMethod"/>
        <sql-method class="java.lang.String" method="trimRight" datastore="mysql"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringTrimRight3Method"/>
        <sql-method class="java.lang.String" method="trimRight" datastore="postgresql"
            evaluator="org.datanucleus.store.rdbms.sql.method.StringTrimRight3Method"/>

        <sql-method class="java.util.Collection" method="contains"
            evaluator="org.datanucleus.store.rdbms.sql.method.CollectionContainsMethod"/>
        <sql-method class="java.util.Collection" method="isEmpty"
            evaluator="org.datanucleus.store.rdbms.sql.method.CollectionIsEmptyMethod"/>
        <sql-method class="java.util.Collection" method="size"
            evaluator="org.datanucleus.store.rdbms.sql.method.CollectionSizeMethod"/>
        <sql-method class="java.util.Collection" method="get"
            evaluator="org.datanucleus.store.rdbms.sql.method.ListGetMethod"/>
        <sql-method class="java.util.Date" method="getDay"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetDayMethod"/>
        <sql-method class="java.util.Date" method="getDay" datastore="oracle"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetDay2Method"/>
        <sql-method class="java.util.Date" method="getDay" datastore="postgresql"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetDay3Method"/>
        <sql-method class="java.util.Date" method="getDate"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetDayMethod"/>
        <sql-method class="java.util.Date" method="getDate" datastore="oracle"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetDay2Method"/>
        <sql-method class="java.util.Date" method="getDate" datastore="postgresql"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetDay3Method"/>
        <sql-method class="java.util.Date" method="getMonth"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetMonthMethod"/>
        <sql-method class="java.util.Date" method="getMonth" datastore="oracle"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetMonth2Method"/>
        <sql-method class="java.util.Date" method="getMonth" datastore="postgresql"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetMonth3Method"/>
        <sql-method class="java.util.Date" method="getYear"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetYearMethod"/>
        <sql-method class="java.util.Date" method="getYear" datastore="oracle"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetYear2Method"/>
        <sql-method class="java.util.Date" method="getYear" datastore="postgresql"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetYear3Method"/>
        <sql-method class="java.util.Date" method="getHour"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetHourMethod"/>
        <sql-method class="java.util.Date" method="getHour" datastore="oracle"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetHour2Method"/>
        <sql-method class="java.util.Date" method="getHour" datastore="postgresql"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetHour3Method"/>
        <sql-method class="java.util.Date" method="getHour" datastore="sqlserver"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetHour4Method"/>
        <sql-method class="java.util.Date" method="getMinute"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetMinuteMethod"/>
        <sql-method class="java.util.Date" method="getMinute" datastore="oracle"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetMinute2Method"/>
        <sql-method class="java.util.Date" method="getMinute" datastore="postgresql"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetMinute3Method"/>
        <sql-method class="java.util.Date" method="getMinute" datastore="sqlserver"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetMinute4Method"/>
        <sql-method class="java.util.Date" method="getSecond"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetSecondMethod"/>
        <sql-method class="java.util.Date" method="getSecond" datastore="oracle"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetSecond2Method"/>
        <sql-method class="java.util.Date" method="getSecond" datastore="postgresql"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetSecond3Method"/>
        <sql-method class="java.util.Date" method="getSecond" datastore="sqlserver"
            evaluator="org.datanucleus.store.rdbms.sql.method.DateGetSecond4Method"/>
        <sql-method class="java.util.Map" method="containsEntry"
            evaluator="org.datanucleus.store.rdbms.sql.method.MapContainsEntryMethod"/>
        <sql-method class="java.util.Map" method="containsKey"
            evaluator="org.datanucleus.store.rdbms.sql.method.MapContainsKeyMethod"/>
        <sql-method class="java.util.Map" method="containsValue"
            evaluator="org.datanucleus.store.rdbms.sql.method.MapContainsValueMethod"/>
        <sql-method class="java.util.Map" method="get"
            evaluator="org.datanucleus.store.rdbms.sql.method.MapGetMethod"/>
        <sql-method class="java.util.Map" method="isEmpty"
            evaluator="org.datanucleus.store.rdbms.sql.method.MapIsEmptyMethod"/>
        <sql-method class="java.util.Map" method="size"
            evaluator="org.datanucleus.store.rdbms.sql.method.MapSizeMethod"/>
        <sql-method class="ARRAY" method="contains"
            evaluator="org.datanucleus.store.rdbms.sql.method.ArrayContainsMethod"/>
        <sql-method class="ARRAY" method="isEmpty"
            evaluator="org.datanucleus.store.rdbms.sql.method.ArrayIsEmptyMethod"/>
        <sql-method class="ARRAY" method="size"
            evaluator="org.datanucleus.store.rdbms.sql.method.ArraySizeMethod"/>
        <sql-method class="ARRAY" method="length"
            evaluator="org.datanucleus.store.rdbms.sql.method.ArraySizeMethod"/>
    </extension>

    <!-- SQL OPERATIONS -->
    <extension point="org.datanucleus.store.rdbms.sql_operation">
        <sql-operation name="mod" datastore="derby"
            evaluator="org.datanucleus.store.rdbms.sql.operation.Mod2Operation"/>
        <sql-operation name="mod" datastore="h2"
            evaluator="org.datanucleus.store.rdbms.sql.operation.Mod2Operation"/>
        <sql-operation name="mod" datastore="hsql"
            evaluator="org.datanucleus.store.rdbms.sql.operation.Mod2Operation"/>
        <sql-operation name="mod" datastore="informix"
            evaluator="org.datanucleus.store.rdbms.sql.operation.Mod2Operation"/>
        <sql-operation name="mod" datastore="oracle"
            evaluator="org.datanucleus.store.rdbms.sql.operation.Mod2Operation"/>
        <sql-operation name="mod" datastore="db2"
            evaluator="org.datanucleus.store.rdbms.sql.operation.Mod3Operation"/>

        <sql-operation name="concat" datastore="mysql"
            evaluator="org.datanucleus.store.rdbms.sql.operation.Concat2Operation"/>
        <sql-operation name="concat" datastore="derby"
            evaluator="org.datanucleus.store.rdbms.sql.operation.Concat3Operation"/>
        <sql-operation name="concat" datastore="db2"
            evaluator="org.datanucleus.store.rdbms.sql.operation.Concat3Operation"/>

        <sql-operation name="numericToString"
            evaluator="org.datanucleus.store.rdbms.sql.operation.NumericToStringOperation"/>
        <sql-operation name="numericToString" datastore="mysql"
            evaluator="org.datanucleus.store.rdbms.sql.operation.NumericToString2Operation"/>
        <sql-operation name="numericToString" datastore="derby"
            evaluator="org.datanucleus.store.rdbms.sql.operation.NumericToString3Operation"/>
    </extension>

    <!-- SQL TABLE NAMING -->
    <extension point="org.datanucleus.store.rdbms.sql_tablenamer">
        <sql-tablenamer name="t-scheme" class="org.datanucleus.store.rdbms.sql.SQLTableTNamer"/>
        <sql-tablenamer name="alpha-scheme" class="org.datanucleus.store.rdbms.sql.SQLTableAlphaNamer"/>
    </extension>

    <!-- DATASTORE ADAPTERS -->
    <extension point="org.datanucleus.store_datastoreadapter">
        <datastore-adapter vendor-id="Adaptive Server Anywhere" class-name="org.datanucleus.store.rdbms.adapter.SybaseAdapter" priority="0"/>
        <datastore-adapter vendor-id="Adaptive Server Enterprise" class-name="org.datanucleus.store.rdbms.adapter.SybaseAdapter" priority="0"/>
        <datastore-adapter vendor-id="Adaptive Server IQ" class-name="org.datanucleus.store.rdbms.adapter.SybaseAdapter" priority="0"/>
        <datastore-adapter vendor-id="as/400" class-name="org.datanucleus.store.rdbms.adapter.DB2AS400Adapter" priority="1"/>
        <datastore-adapter vendor-id="cloudscape" class-name="org.datanucleus.store.rdbms.adapter.DerbyAdapter" priority="0"/>
        <datastore-adapter vendor-id="db2" class-name="org.datanucleus.store.rdbms.adapter.DB2Adapter" priority="0"/>
        <datastore-adapter vendor-id="derby" class-name="org.datanucleus.store.rdbms.adapter.DerbyAdapter" priority="0"/>
        <datastore-adapter vendor-id="firebird" class-name="org.datanucleus.store.rdbms.adapter.FirebirdAdapter" priority="0"/>
        <datastore-adapter vendor-id="h2" class-name="org.datanucleus.store.rdbms.adapter.H2Adapter" priority="0"/>
        <datastore-adapter vendor-id="hsql" class-name="org.datanucleus.store.rdbms.adapter.HSQLAdapter" priority="0"/>
        <datastore-adapter vendor-id="informix" class-name="org.datanucleus.store.rdbms.adapter.InformixAdapter" priority="0"/>
        <datastore-adapter vendor-id="interbase" class-name="org.datanucleus.store.rdbms.adapter.FirebirdAdapter" priority="0"/>
        <datastore-adapter vendor-id="mckoi" class-name="org.datanucleus.store.rdbms.adapter.McKoiAdapter" priority="0"/>
        <datastore-adapter vendor-id="microsoft" class-name="org.datanucleus.store.rdbms.adapter.MSSQLServerAdapter" priority="0"/>
        <datastore-adapter vendor-id="mysql" class-name="org.datanucleus.store.rdbms.adapter.MySQLAdapter" priority="0"/>
        <datastore-adapter vendor-id="oracle" class-name="org.datanucleus.store.rdbms.adapter.OracleAdapter" priority="0"/>
        <datastore-adapter vendor-id="pointbase" class-name="org.datanucleus.store.rdbms.adapter.PointbaseAdapter" priority="0"/>
        <datastore-adapter vendor-id="postgresql" class-name="org.datanucleus.store.rdbms.adapter.PostgreSQLAdapter" priority="0"/>
        <datastore-adapter vendor-id="sap db" class-name="org.datanucleus.store.rdbms.adapter.SAPDBAdapter" priority="0"/>
        <datastore-adapter vendor-id="sapdb" class-name="org.datanucleus.store.rdbms.adapter.SAPDBAdapter" priority="0"/>
        <datastore-adapter vendor-id="sybase" class-name="org.datanucleus.store.rdbms.adapter.SybaseAdapter" priority="0"/>
        <datastore-adapter vendor-id="timesten" class-name="org.datanucleus.store.rdbms.adapter.TimesTenAdapter" priority="0"/>
        <datastore-adapter vendor-id="sqlite" class-name="org.datanucleus.store.rdbms.adapter.SQLiteAdapter" priority="0"/>
        <datastore-adapter vendor-id="virtuoso" class-name="org.datanucleus.store.rdbms.adapter.VirtuosoAdapter" priority="0"/>
    </extension>

    <!-- DATASOURCES -->
    <extension point="org.datanucleus.store.rdbms.datasource">
        <datasource-factory name="dbcp-builtin" class-name="org.datanucleus.store.rdbms.datasource.DBCPBuiltinDataSourceFactory"/>
        <datasource-factory name="None" class-name="org.datanucleus.store.rdbms.datasource.DefaultDataSourceFactory"/>
	    <datasource-factory name="BoneCP" class-name="org.datanucleus.store.rdbms.datasource.BoneCPDataSourceFactory"/>
	    <datasource-factory name="C3P0" class-name="org.datanucleus.store.rdbms.datasource.C3P0DataSourceFactory"/>
	    <datasource-factory name="DBCP" class-name="org.datanucleus.store.rdbms.datasource.DBCPDataSourceFactory"/>
	    <datasource-factory name="Proxool" class-name="org.datanucleus.store.rdbms.datasource.ProxoolDataSourceFactory"/>
	    <datasource-factory name="Tomcat" class-name="org.datanucleus.store.rdbms.datasource.TomcatDataSourceFactory"/>
    </extension>

    <!-- CONNECTION PROVIDER -->
    <extension point="org.datanucleus.store.rdbms.connectionprovider">
        <connection-provider class-name="org.datanucleus.store.rdbms.ConnectionProviderPriorityList" name="PriorityList"/>
    </extension>
</plugin>




© 2015 - 2024 Weber Informatics LLC | Privacy Policy