You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pc...@apache.org on 2006/07/19 23:35:07 UTC

svn commit: r423615 [37/44] - in /incubator/openjpa/trunk: ./ openjpa-jdbc-5/ openjpa-jdbc-5/src/ openjpa-jdbc-5/src/main/ openjpa-jdbc-5/src/main/java/ openjpa-jdbc-5/src/main/java/org/ openjpa-jdbc-5/src/main/java/org/apache/ openjpa-jdbc-5/src/main/...

Propchange: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/Sized.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/Sized.java?rev=423615&view=auto
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/Sized.java (added)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/Sized.java Wed Jul 19 14:34:44 2006
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * 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.
+ */
+package org.apache.openjpa.jdbc.sql;
+
+/**
+ * A sized value. Used to represent both a value and its size for calls
+ * to {@link Row#setObject}.
+ *
+ * @author Abe White
+ */
+public class Sized {
+
+    public final Object value;
+    public final int size;
+
+    public Sized(Object value, int size) {
+        this.value = value;
+        this.size = size;
+    }
+}

Propchange: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/Sized.java
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SybaseDictionary.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SybaseDictionary.java?rev=423615&view=auto
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SybaseDictionary.java (added)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SybaseDictionary.java Wed Jul 19 14:34:44 2006
@@ -0,0 +1,298 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * 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.
+ */
+package org.apache.openjpa.jdbc.sql;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.sql.Types;
+import java.util.Arrays;
+
+import org.apache.openjpa.jdbc.schema.Column;
+import org.apache.openjpa.jdbc.schema.ForeignKey;
+import org.apache.openjpa.jdbc.schema.PrimaryKey;
+import org.apache.openjpa.jdbc.schema.Table;
+import org.apache.openjpa.jdbc.schema.Unique;
+import org.apache.openjpa.lib.jdbc.DelegatingConnection;
+import org.apache.openjpa.lib.util.Localizer;
+import org.apache.openjpa.meta.JavaTypes;
+
+/**
+ * Dictionary for Sybase.
+ *  The main point of interest is that by default, every table
+ * that is created will have a unique column named "UNQ_INDEX" of
+ * the "IDENTITY" type. OpenJPA will not ever utilize this column. However,
+ * due to internal Sybase restrictions, this column is required
+ * in order to support pessimistic (datastore) locking, since Sybase
+ * requires that any tables in a "SELECT ... FOR UPDATE" clause have
+ * a unique index that is <strong>not</strong> included in the list
+ * of columns, as described in the
+ * <a href="http://www.sybase.com/detail/1,6904,1023075,00.html"
+ * >Sybase documentation</a>. This behavior can be surpressed by setting the
+ * dictionary property <code>CreateIdentityColumn=false</code>. The
+ * name of the unique column can be changed by setting the property
+ * <code>IdentityColumnName=COLUMN_NAME</code>.
+ *  A good Sybase type reference is can be found <a
+ * href="http://www.ispirer.com/doc/sqlways36/sybase/syb_dtypes.html">here</a>.
+ */
+public class SybaseDictionary
+    extends AbstractSQLServerDictionary {
+
+    private static Localizer _loc = Localizer.forPackage
+        (SybaseDictionary.class);
+
+    /**
+     * If true, then whenever the <code>schematool</code> creates a
+     * table, it will append an additional IDENTITY column to the
+     * table's creation SQL. This is so Sybase will be able to
+     * perform <code>SELECT...FOR UPDATE</code> statements.
+     */
+    public boolean createIdentityColumn = true;
+
+    /**
+     * If {@link #createIdentityColumn} is true, then the
+     * <code>identityColumnName</code> will be the name of the
+     * additional unique column that will be created.
+     */
+    public String identityColumnName = "UNQ_INDEX";
+
+    public SybaseDictionary() {
+        platform = "Sybase";
+        schemaCase = SCHEMA_CASE_PRESERVE;
+        forUpdateClause = "FOR UPDATE AT ISOLATION SERIALIZABLE";
+
+        supportsLockingWithDistinctClause = false;
+        supportsNullTableForGetColumns = false;
+        requiresAutoCommitForMetaData = true;
+
+        maxTableNameLength = 30;
+        maxColumnNameLength = 30;
+        maxIndexNameLength = 30;
+        maxConstraintNameLength = 30;
+
+        bigintTypeName = "NUMERIC(38)";
+        bitTypeName = "TINYINT";
+
+        // Sybase doesn't understand "X CROSS JOIN Y", but it does understand
+        // the equivalent "X JOIN Y ON 1 = 1"
+        crossJoinClause = "JOIN";
+        requiresConditionForCrossJoin = true;
+
+        // these tables should not be reflected on
+        systemTableSet.addAll(Arrays.asList(new String[]{
+            "IJDBC_FUNCTION_ESCAPES", "JDBC_FUNCTION_ESCAPES",
+            "SPT_IJDBC_CONVERSION", "SPT_IJDBC_MDA", "SPT_IJDBC_TABLE_TYPES",
+            "SPT_JDBC_CONVERSION", "SPT_JDBC_TABLE_TYPES", "SPT_JTEXT",
+            "SPT_LIMIT_TYPES", "SPT_MDA", "SPT_MONITOR", "SPT_VALUES",
+            "SYBLICENSESLOG",
+        }));
+
+        // reserved words specified at:
+        // http://manuals.sybase.com/onlinebooks/group-as/asg1250e/
+        // refman/@Generic__BookTextView/26603
+        reservedWordSet.addAll(Arrays.asList(new String[]{
+            "ARITH_OVERFLOW", "BREAK", "BROWSE", "BULK", "CHAR_CONVERT",
+            "CHECKPOINT", "CLUSTERED", "COMPUTE", "CONFIRM", "CONTROLROW",
+            "DATABASE", "DBCC", "DETERMINISTIC", "DISK DISTINCT", "DUMMY",
+            "DUMP", "ENDTRAN", "ERRLVL", "ERRORDATA", "ERROREXIT", "EXCLUSIVE",
+            "EXIT", "EXP_ROW_SIZE", "FILLFACTOR", "FUNC", "FUNCTION",
+            "HOLDLOCK", "IDENTITY_GAP", "IDENTITY_INSERT", "IDENTITY_START",
+            "IF", "INDEX", "INOUT", "INSTALL", "INTERSECT", "JAR", "KILL",
+            "LINENO", "LOAD", "LOCK", "MAX_ROWS_PER_PAGE", "MIRROR",
+            "MIRROREXIT", "MODIFY", "NEW", "NOHOLDLOCK", "NONCLUSTERED",
+            "NUMERIC_TRUNCATION", "OFF", "OFFSETS", "ONCE", "ONLINE", "OUT",
+            "OVER", "PARTITION", "PERM", "PERMANENT", "PLAN", "PRINT", "PROC",
+            "PROCESSEXIT", "PROXY_TABLE", "QUIESCE", "RAISERROR", "READ",
+            "READPAST", "READTEXT", "RECONFIGURE", "REFERENCES REMOVE", "REORG",
+            "REPLACE", "REPLICATION", "RESERVEPAGEGAP", "RETURN", "RETURNS",
+            "ROLE", "ROWCOUNT", "RULE", "SAVE", "SETUSER", "SHARED",
+            "SHUTDOWN", "SOME", "STATISTICS", "STRINGSIZE", "STRIPE",
+            "SYB_IDENTITY", "SYB_RESTREE", "SYB_TERMINATE", "TEMP", "TEXTSIZE",
+            "TRAN", "TRIGGER", "TRUNCATE", "TSEQUAL", "UNPARTITION", "USE",
+            "USER_OPTION", "WAITFOR", "WHILE", "WRITETEXT",
+        }));
+    }
+
+    public int getJDBCType(int metaTypeCode, boolean lob) {
+        switch (metaTypeCode) {
+            // the default mapping for BYTE is a TINYINT, but Sybase's TINYINT
+            // type can't handle the complete range for a Java byte
+            case JavaTypes.BYTE:
+            case JavaTypes.BYTE_OBJ:
+                return getPreferredType(Types.SMALLINT);
+            default:
+                return super.getJDBCType(metaTypeCode, lob);
+        }
+    }
+
+    public void setBigInteger(PreparedStatement stmnt, int idx, BigInteger val,
+        Column col)
+        throws SQLException {
+        // setBigDecimal doesn't work here: in one case, a stored value
+        // of 7799438514924349440 turns into 7799438514924349400
+        // setObject gets around this in the Sybase JDBC drivers
+        setObject(stmnt, idx, new BigDecimal(val), Types.BIGINT, col);
+    }
+
+    public String[] getAddForeignKeySQL(ForeignKey fk) {
+        // Sybase has problems with adding foriegn keys via ALTER TABLE command
+        return new String[0];
+    }
+
+    public String[] getCreateTableSQL(Table table) {
+        if (!createIdentityColumn)
+            return super.getCreateTableSQL(table);
+
+        StringBuffer buf = new StringBuffer();
+        buf.append("CREATE TABLE ").append(getFullName(table, false)).
+            append(" (");
+
+        Column[] cols = table.getColumns();
+        boolean hasIdentity = false;
+
+        for (int i = 0; i < cols.length; i++) {
+            if (cols[i].isAutoAssigned())
+                hasIdentity = true;
+
+            buf.append(i == 0 ? "" : ", ");
+            buf.append(getDeclareColumnSQL(cols[i], false));
+        }
+
+        // add an identity column if we do not already have one
+        if (!hasIdentity)
+            buf.append(", ").append(identityColumnName).
+                append(" NUMERIC IDENTITY UNIQUE");
+
+        PrimaryKey pk = table.getPrimaryKey();
+        if (pk != null)
+            buf.append(", ").append(getPrimaryKeyConstraintSQL(pk));
+
+        Unique[] unqs = table.getUniques();
+        String unqStr;
+        for (int i = 0; i < unqs.length; i++) {
+            unqStr = getUniqueConstraintSQL(unqs[i]);
+            if (unqStr != null)
+                buf.append(", ").append(unqStr);
+        }
+
+        buf.append(")");
+        return new String[]{ buf.toString() };
+    }
+
+    protected String getDeclareColumnSQL(Column col, boolean alter) {
+        StringBuffer buf = new StringBuffer();
+        buf.append(col).append(" ");
+        buf.append(getTypeName(col));
+
+        // can't add constraints to a column we're adding after table
+        // creation, cause some data might already be inserted
+        if (!alter) {
+            if (col.getDefaultString() != null && !col.isAutoAssigned())
+                buf.append(" DEFAULT ").append(col.getDefaultString());
+            if (col.isAutoAssigned())
+                buf.append(" IDENTITY");
+        }
+
+        if (col.isNotNull())
+            buf.append(" NOT NULL");
+        else if (!col.isPrimaryKey()) {
+            // sybase forces you to explicitly specify that
+            // you will allow NULL values
+            buf.append(" NULL");
+        }
+
+        return buf.toString();
+    }
+
+    public String[] getDropColumnSQL(Column column) {
+        // Sybase uses "ALTER TABLE DROP <COLUMN_NAME>" rather than the
+        // usual "ALTER TABLE DROP COLUMN <COLUMN_NAME>"
+        return new String[]{ "ALTER TABLE "
+            + getFullName(column.getTable(), false) + " DROP " + column };
+    }
+
+    public void refSchemaComponents(Table table) {
+        // note that we use getColumns() rather than getting the column by name
+        // because under some circumstances this method is called under the
+        // dynamic schema factory, where getting a column by name creates
+        // that column
+        Column[] cols = table.getColumns();
+        for (int i = 0; i < cols.length; i++)
+            if (identityColumnName.equalsIgnoreCase(cols[i].getName()))
+                cols[i].ref();
+    }
+
+    public void endConfiguration() {
+        super.endConfiguration();
+
+        // warn about jdbc compliant flag
+        String url = conf.getConnectionURL();
+        if (url != null && url.length() > 0
+            && url.toLowerCase().indexOf("jdbc:sybase:tds") != -1
+            && url.toLowerCase().indexOf("be_as_jdbc_compliant_as_possible=")
+            == -1) {
+            log.warn(_loc.get("sybase-compliance", url));
+        }
+    }
+
+    public Connection decorate(Connection conn)
+        throws SQLException {
+        return new SybaseConnection(super.decorate(conn));
+    }
+
+    /**
+     * Connection wrapper to cache the {@link Connection#getCatalog} result,
+     * which takes a very long time with the Sybase Connection (and
+     * which we frequently invoke).
+     */
+    private static class SybaseConnection
+        extends DelegatingConnection {
+
+        private String _catalog = null;
+
+        public SybaseConnection(Connection conn) {
+            super(conn);
+        }
+
+        public String getCatalog()
+            throws SQLException {
+            if (_catalog == null)
+                _catalog = super.getCatalog();
+            return _catalog;
+        }
+
+        public void setAutoCommit(boolean autocommit)
+            throws SQLException {
+            // the sybase jdbc driver demands that the Connection always
+            // be rolled back before autocommit status changes. Failure to
+            // do so will yield "SET CHAINED command not allowed within
+            // multi-statement transaction." exceptions
+            try {
+                super.setAutoCommit(autocommit);
+            } catch (SQLException e) {
+                // failed for some reason: try rolling back and then
+                // setting autocommit again.
+                if (autocommit)
+                    super.commit();
+                else
+                    super.rollback();
+                super.setAutoCommit(autocommit);
+            }
+        }
+    }
+}

Propchange: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SybaseDictionary.java
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/Union.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/Union.java?rev=423615&view=auto
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/Union.java (added)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/Union.java Wed Jul 19 14:34:44 2006
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * 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.
+ */
+package org.apache.openjpa.jdbc.sql;
+
+/**
+ * SQL UNION.
+ *
+ * @author Abe White
+ */
+public interface Union
+    extends SelectExecutor {
+
+    /**
+     * Return the selects that make up this union.
+     */
+    public Select[] getSelects();
+
+    /**
+     * Get the union-level ordering, if any.
+     */
+    public String getOrdering();
+
+    /**
+     * Whether this union will return at most a single result. Setting this
+     * flag makes it more efficient to execute logical unions that are actually
+     * made up from multiple selects executed in batch.
+     */
+    public boolean isSingleResult();
+
+    /**
+     * Whether this union will return at most a single result. Setting this
+     * flag makes it more efficient to execute logical unions that are actually
+     * made up from multiple selects executed in batch.
+     */
+    public void setSingleResult(boolean single);
+
+    /**
+     * Whether this is a true UNION, rather than a logical combination of
+     * independent selects.
+     */
+    public boolean isUnion();
+
+    /**
+     * Force the use of a series of standard selects rather than a true UNION.
+     */
+    public void abortUnion();
+
+    /**
+     * Select data using the given selector.
+     */
+    public void select(Selector selector);
+
+    /**
+     * A callback used to create the selects in a SQL union.
+     */
+    public static interface Selector {
+
+        /**
+         * Populate the <code>i</code>th select in the union.
+         */
+        public void select(Select sel, int i);
+    }
+}

Propchange: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/Union.java
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/package.html
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/package.html?rev=423615&view=auto
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/package.html (added)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/package.html Wed Jul 19 14:34:44 2006
@@ -0,0 +1,9 @@
+<html>
+<body>
+<p><strong>OpenJPA-JDBC SQL Abstraction</strong></p>
+
+<p>
+    Utilities for generating SQL.
+</p>
+</body>
+</html>

Propchange: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/package.html
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/META-INF/services/org.apache.openjpa.conf.ProductDerivation
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/META-INF/services/org.apache.openjpa.conf.ProductDerivation?rev=423615&view=auto
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/META-INF/services/org.apache.openjpa.conf.ProductDerivation (added)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/META-INF/services/org.apache.openjpa.conf.ProductDerivation Wed Jul 19 14:34:44 2006
@@ -0,0 +1 @@
+org.apache.openjpa.jdbc.conf.JDBCProductDerivation

Propchange: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/META-INF/services/org.apache.openjpa.conf.ProductDerivation
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/ant/localizer.properties
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/ant/localizer.properties?rev=423615&view=auto
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/ant/localizer.properties (added)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/ant/localizer.properties Wed Jul 19 14:34:44 2006
@@ -0,0 +1,2 @@
+bad-conf: The options supplied to the {0} are not valid. Please check your \
+	ant build file.

Propchange: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/ant/localizer.properties
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/conf/localizer.properties
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/conf/localizer.properties?rev=423615&view=auto
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/conf/localizer.properties (added)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/conf/localizer.properties Wed Jul 19 14:34:44 2006
@@ -0,0 +1,226 @@
+Schema-name: Schema
+Schema-desc: The default schema for unqualified table names. 
+Schema-type: Connecting
+Schema-cat: Database.Schemas
+Schema-displayorder: 50
+
+Schemas-name: Schemas
+Schemas-desc: A comma-separated list of the schemas and/or tables you are \
+	using for persistent class tables.  
+Schemas-type: Connecting
+Schemas-cat: Database.Schemas
+Schemas-displayorder: 50
+
+TransactionIsolation-name: JDBC transaction isolation level
+TransactionIsolation-desc: The name of the JDBC transaction isolation \
+	level to use.  "default" indicates to use \
+	the JDBC driver''s default level. \
+	Other standard values are "none", "read-committed", "read-uncommitted", \
+	"repeatable-read", and "serializable".
+TransactionIsolation-type: Connecting
+TransactionIsolation-cat: Database.Transactions
+TransactionIsolation-displayorder: 50
+TransactionIsolation-expert: true
+
+ResultSetType-name: JDBC result set type
+ResultSetType-desc: The name of the JDBC result set type to use.  Standard \
+	values are "forward-only", "scroll-sensitive", and "scroll-insensitive".
+ResultSetType-type: Optimization
+ResultSetType-cat: JDBC
+ResultSetType-displayorder: 50
+ResultSetType-expert: true
+
+FetchDirection-name: JDBC fetch direction
+FetchDirection-desc: The name of the JDBC fetch direction to use.  Standard \
+	values are "forward", "reverse", and "unknown".
+FetchDirection-type: Optimization
+FetchDirection-cat: JDBC
+FetchDirection-displayorder: 50
+FetchDirection-expert: true
+
+EagerFetchMode-name: Eager fetch mode
+EagerFetchMode-desc: Specifies the default eager fetch mode to use.  Either \
+	"none" to never eagerly-load relations, "join" for selecting 1-1 relations \
+	along with the target object using inner or outer joins, or "parallel" for \
+	selecting 1-1 relations via joins, and collections (including to-many \
+	relations) along with the target object using separate select statements \
+	executed in parallel.
+EagerFetchMode-type: Optimization
+EagerFetchMode-cat: Fetching
+EagerFetchMode-displayorder: 50
+EagerFetchMode-expert: true
+
+SubclassFetchMode-name: Subclass fetch mode
+SubclassFetchMode-desc: Specifies the default subclass fetch mode to use. \
+	Eitehr "none" to always select data in base class tables only, "join" to \
+	outer-join to tables for all subclasses, or "parallel" to execute a \
+	separate select in parallel for each possible subclass.  Parallel mode is \
+	only applicable to Query execution; in other situations it mirrors \
+	join mode.
+SubclassFetchMode-type: Optimization
+SubclassFetchMode-cat: Fetching
+SubclassFetchMode-displayorder: 50
+SubclassFetchMode-expert: true
+
+LRSSize-name: Large result set size mode
+LRSSize-desc: The mode to use for calculating the size of large result sets. \
+	Legal values are "unknown", "last", and "query".
+LRSSize-type: Optimization
+LRSSize-cat: JDBC
+LRSSize-displayorder: 50
+LRSSize-expert: true
+
+SynchronizeMappings-name: Automatically synchronize schema
+SynchronizeMappings-desc: Controls whether OpenJPA will attempt to run the \
+	mapping tool on all persistent classes to synchronize their mappings \
+	and schema at runtime.
+SynchronizeMappings-type: General
+SynchronizeMappings-cat: Mappings
+SynchronizeMappings-displayorder: 50
+SynchronizeMappings-expert: true
+
+JDBCListeners-name: JDBC event listeners
+JDBCListeners-desc: A comma-separated list of \
+	org.apache.openjpa.lib.jdbc.JDBCListener implementations to install on \
+	all connection pools.
+JDBCListeners-type: Connecting
+JDBCListeners-cat: JDBC.Advanced
+JDBCListeners-displayorder: 50
+JDBCListeners-expert: true
+
+ConnectionDecorators-name: Connection decorators
+ConnectionDecorators-desc: A comma-separated list of \
+	org.apache.openjpa.lib.jdbc.ConnectionDecorator implementations to install \
+	on all connection pools.
+ConnectionDecorators-type: Connecting
+ConnectionDecorators-cat: JDBC.Advanced
+ConnectionDecorators-displayorder: 50
+ConnectionDecorators-expert: true
+ConnectionDecorators-interface: org.apache.openjpa.lib.jdbc.ConnectionDecorator
+
+DBDictionary-name: Database dictionary
+DBDictionary-desc: The org.apache.openjpa.jdbc.sql.DBDictionary to use for database \
+	interaction. This is auto-detected based on the ConnectionURL setting, \
+	so you need only set this to override the default with your own custom \
+	dictionary or if you are using an unrecognized driver.
+DBDictionary-type: Connecting
+DBDictionary-cat: Database
+DBDictionary-displayorder: 50
+DBDictionary-interface: org.apache.openjpa.jdbc.sql.DBDictionary
+
+UpdateManager-name: Update manager
+UpdateManager-desc: The org.apache.openjpa.jdbc.kernel.UpdateManager to use to flush \
+	persistent object modifications to the database.
+UpdateManager-type: General
+UpdateManager-cat: JDBC.Interaction
+UpdateManager-displayorder: 50
+UpdateManager-expert: true
+UpdateManager-interface: org.apache.openjpa.jdbc.kernel.UpdateManager
+
+DriverDataSource-name: Update manager
+DriverDataSource-desc: The org.apache.openjpa.jdbc.schema.DriverDataSource to use to wrap \
+	a JDBC driver in a DataSource.
+DriverDataSource-type: General
+DriverDataSource-cat: JDBC.Interaction
+DriverDataSource-displayorder: 50
+DriverDataSource-expert: true
+DriverDataSource-interface: org.apache.openjpa.jdbc.schema.DriverDataSource
+
+SchemaFactory-name: Schema factory
+SchemaFactory-desc: The org.apache.openjpa.jdbc.schema.SchemaFactory that \
+	will provide information about the existing tables and other database \
+	structures at runtime.
+SchemaFactory-type: General
+SchemaFactory-cat: JDBC.Interaction
+SchemaFactory-displayorder: 50
+SchemaFactory-expert: true
+SchemaFactory-interface: org.apache.openjpa.jdbc.schema.SchemaFactory
+
+SQLFactory-name: SQL factory
+SQLFactory-desc: The org.apache.openjpa.jdbc.sql.SQLFactory used to create SQL constructs.
+SQLFactory-type: General
+SQLFactory-cat: JDBC.Interaction
+SQLFactory-displayorder: 50
+SQLFactory-expert: true
+SQLFactory-interface: org.apache.openjpa.jdbc.sql.SQLFactory
+
+MappingFactory-name: Mapping factory
+MappingFactory-desc: The org.apache.openjpa.meta.MetaDataFactory that will provide the \
+	object-relational mapping information needed to map each persistent class \
+	to the database, if it isn't provided by current metadata MetaDataFactory.
+MappingFactory-type: General
+MappingFactory-cat: Mappings
+MappingFactory-displayorder: 50
+MappingFactory-expert: true
+MappingFactory-interface: org.apache.openjpa.meta.MetaDataFactory
+
+MappingDefaults-name: Mapping defaults
+MappingDefaults-desc: The org.apache.openjpa.jdbc.meta.MappingDefaults that determines \
+	default table names, column names, and other information.
+MappingDefaults-type: General
+MappingDefaults-cat: Mappings
+MappingDefaults-displayorder: 50
+MappingDefaults-interface: org.apache.openjpa.jdbc.meta.MappingDefaults
+
+ConnectionDriverName-values: org.hsqldb.jdbcDriver,org.hsql.jdbcDriver,\
+	COM.cloudscape.core.JDBCDriver,in.co.daffodil.db.jdbc.DaffodilDBDriver,\
+	com.ddtek.jdbc.db2.DB2Driver,interbase.interclient.Driver,\
+	com.mysql.jdbc.Driver,com.ddtek.jdbc.oracle.OracleDriver,\
+	org.postgresql.Driver,com.pointbase.jdbc.jdbcUniversalDriver,\
+	org.sourceforge.jxdbcon.JXDBConDriver,\
+	com.ddtek.jdbc.sqlserver.SQLServerDriver,com.jnetdirect.jsql.JSQLDriver,\
+	com.microsoft.jdbc.sqlserver.SQLServerDriver,\
+	weblogic.jdbc.mssqlserver4.Driver,com.ddtek.jdbc.sybase.SybaseDriver,\
+	oracle.jdbc.pool.OracleDataSource,org.axiondb.jdbc.AxionDriver,\
+	COM.ibm.db2.jdbc.app.DB2Driver,com.ibm.as400.access.AS400JDBCDriver,\
+	COM.FirstSQL.Dbcp.DbcpDriver,COM.ibm.db2.jdbc.net.DB2Driver,\
+	org.enhydra.instantdb.jdbc.idbDriver,com.informix.jdbc.IfxDriver,\
+	com.microsoft.jdbc.sqlserver.SQLServerDriver,\
+	com.imaginary.sql.msql.MsqlDriver,sun.jdbc.odbc.JdbcOdbcDriver,\
+	oracle.jdbc.driver.OracleDriver,intersolv.jdbc.sequelink.SequeLinkDriver,\
+	openlink.jdbc2.Driver,com.pointbase.jdbc.jdbcUniversalDriver,\
+	postgres95.PGDriver,postgresql.Driver,solid.jdbc.SolidDriver,\
+ 	centura.java.sqlbase.SqlbaseDriver,interbase.interclient.Driver,\
+	com.mckoi.JDBCDriver,com.inet.tds.TdsDriver,\
+	com.microsoft.jdbc.sqlserver.SQLServerDriver,com.thinweb.tds.Driver,\
+	weblogic.jdbc.mssqlserver4.Driver,com.mysql.jdbc.DatabaseMetaData,\
+	org.gjt.mm.mysql.Driver,com.sap.dbtech.jdbc.DriverSapDB,\
+	com.sybase.jdbc2.jdbc.SybDriver,com.sybase.jdbc.SybDriver,\
+	com.internetcds.jdbc.tds.Driver,weblogic.jdbc.pool.Driver
+ConnectionURL-values: jdbc:JSQLConnect://<hostname>/database=<database>,\
+	jdbc:cloudscape:<database>;create=true,\
+	jdbc:twtds:sqlserver://<hostname>/<database>,\
+	jdbc:daffodilDB_embedded:<database>;create=true,\
+	jdbc:datadirect:db2://<hostname>:50000;databaseName=<database>,\
+	jdbc:inetdae:<hostname>:1433,\
+	jdbc:datadirect:oracle://<hostname>:1521;SID=<database>;\
+	MaxPooledStatements=0,\
+	jdbc:datadirect:sqlserver://<hostname>:1433;SelectMethod=cursor;\
+	DatabaseName=<database>,jdbc:datadirect:sybase://<hostname>:5000,\
+	jdbc:db2://<hostname>/<database>,jdbc:hsqldb:<database>,\
+	jdbc:idb:<database>.properties,\
+	jdbc:informix-sqli://<hostname>:1526/<database>:INFORMIXSERVER=<database>,\
+	jdbc:interbase://<hostname>//<database>.gdb,\
+	jdbc:microsoft:sqlserver://<hostname>:1433;DatabaseName=<database>;\
+	SelectMethod=cursor,jdbc:mysql://<hostname>/<database>?autoReconnect=true,\
+	jdbc:oracle:thin:@<hostname>:1521:<database>,\
+	jdbc:postgresql://<hostname>:5432/<database>,\
+	jdbc:postgresql:net//<hostname>/<database>,\
+	jdbc:sybase:Tds:<hostname>:4100/<database>?ServiceName=<database>,\
+	jdbc:weblogic:mssqlserver4:<database>@<hostname>:1433,\
+	jdbc:odbc:<database>,jdbc:sequelink://<hostname>:4003/[Oracle],\
+	jdbc:sequelink://<hostname>:4004/[Informix];Database=<database>,\
+	jdbc:sequelink://<hostname>:4005/[Sybase];Database=<database>,\
+	jdbc:sequelink://<hostname>:4006/[SQLServer];Database=<database>,\
+	jdbc:sequelink://<hostname>:4011/[ODBC MS Access];Database=<database>,\
+	jdbc:openlink://<hostname>/DSN=SQLServerDB/UID=sa/PWD=,\
+	jdbc:solid://<hostname>:<port>/<UID>/<PWD>,\
+	jdbc:dbaw://<hostname>:8889/<database>
+
+connecting-for-dictionary: OpenJPA will now connect to the database to attempt to \
+	determine what type of database dictionary to use.  To prevent this \
+	connection in the future, set your org.apache.openjpa.jdbc.DBDictionary configuration \
+	property to the appropriate value for your database (see the documentation \
+	for available values).
+map-factory: Using mapping factory "{0}".
+meta-factory: Using metadata factory "{0}".

Propchange: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/conf/localizer.properties
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/kernel/exps/localizer.properties
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/kernel/exps/localizer.properties?rev=423615&view=auto
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/kernel/exps/localizer.properties (added)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/kernel/exps/localizer.properties Wed Jul 19 14:34:44 2006
@@ -0,0 +1,11 @@
+bad-getobjectid: Attempt to get the object id of a non-persistent or \
+	embedded object field "{0}".
+non-pers-field: Field "{0}" is not persistent, and thus cannot be queried.
+no-in-mem: The filter listener "{0}" does not support in-memory operation; it \
+	can only be used with queries against the database.
+const-only: The filter listener "{0}" requires a constant argument.	
+path-only: The target for filter listener "{0}" must be "this" or some \
+	field traversal to a related objects, such as "company.address".
+no-col: The column "{0}" given to filter "{1}" doesn''t exist in the table \
+	of the specified target.
+cant-convert: Attempt to compare incompatible types "{0}" and "{1}".

Propchange: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/kernel/exps/localizer.properties
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/kernel/localizer.properties
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/kernel/localizer.properties?rev=423615&view=auto
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/kernel/localizer.properties (added)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/kernel/localizer.properties Wed Jul 19 14:34:44 2006
@@ -0,0 +1,81 @@
+error-rollback: An error occurred attempting to rollback to the savepoint "{0}"
+error-save: An error occurred attempting to set the savepoint "{0}".  This \
+	driver may not support JDBC 3 savepoints.
+mult-mapping-aggregate: Cannot perform an aggregate query on a hierarchy with \
+	unjoined subclasses: {0}
+sqlquery-missing-params: SQL query "{0}" declares a parameter index "{1}" for \
+	which no value was given.  The given parameters were: {2}
+no-sql: You have not specified a SQL filter to execute in your SQL query.
+del-ins-cycle: An unresolvable constraint cycle was detected.  This typically \
+	means that you are persisting a new object with the same primary key value \
+	as an object you are deleting in the same transaction, and at the same \
+	time you have circular foreign key dependencies in the transaction.  The \
+	combination of these two factors can sometimes lead to a situation in \
+	which OpenJPA cannot meet all the database constraints.
+ref-cycle: An unresolvable constraint cycle was detected.  This typically \
+	means that a mapping in a table other than the class'' primary table has \
+	a foreign key that is part of a circular foreign key dependency.  OpenJPA \
+	sometimes cannot meet circular dependencies when some of the involved \
+	mappings are in secondary tables.
+update-failed-no-failed-obj: Database operation failed. Update count for SQL \
+    statement was {0}. Statement: {1}
+virtual-mapping: Cannot instantiate virtual mapping "{0}".
+press-key-end: Server running.  Press enter to stop.
+no-server-conf: There is no persistence server configured.
+server-usage: Usage: java org.apache.openjpa.jdbc.kernel.StartPersistenceServer\n\
+	\t[-properties/-p <properties file or resource>]\n\
+	\t[-<property name> <property value>]* 
+cant-lock-on-load: The database is unable to lock this query.  Each object \
+	matching the query will be locked individually after it is loaded; \
+	however, it is technically possible that another transaction could modify \
+	the data before the lock is obtained.  See the documentation on Object \
+	Locking for details.\n"{0}" 
+start-trans-for-lock: Though you are using optimistic transactions, OpenJPA is \
+	now beginning a datastore transaction because you have requested a lock \
+	on some data.
+millis-timeout: JDBC lock manager does not support millisecond-granularity \
+	timeouts.  Use timeouts that are multiples of 1000 for even second values.
+millis-query-timeout: JDBC lock manager does not support \
+	millisecond-granularity timeouts.  Use timeouts that are multiples \
+	of 1000 for even second values.
+batch-not-supported: The update count for the statement was an invalid \
+	value ({0}). This indicates that your database or JDBC driver does not \
+	have complete support for executing batch statements. Batch \
+	functionality should be disabled by including "BatchLimit=0" in \
+	your org.apache.openjpa.jdbc.DBDictionary configuration property. Statement: {1}
+bad-synch-mappings: Invalid SynchronizeMappings operation ("{0}") specified. \
+	Valid operations are: {1}
+make-native-seq: Creating sequence.
+drop-native-seq: Dropping sequence.
+make-seq-table: Creating sequence table.
+drop-seq-table: Dropping sequence table.
+bad-seq-up: Attempt to update the sequence table "{0}" failed.  The sequence \
+	table is typically created when you run the mappingtool''s refresh action \
+	on any datastore identity class. If you have not run the mappingtool but \
+	want to create the sequence table, run:\n\
+	java org.apache.openjpa.jdbc.kernel.TableJDBCSeq -action add
+bad-seq-type: This sequence of type "{0}" cannot generate values for \
+	persistent type "{1}".
+no-seq-sql: Error instantiating named sequence "{0}": Your database dictionary \
+	does not support native sequences.  To tell the dictionary how to select \
+	sequence values, use:\n\
+	org.apache.openjpa.jdbc.DBDictionary: NextSequenceQuery="SELECT NEXT VALUE FOR \{0\}"\n\
+	Where the above string is replaced with the proper SQL for your database.
+invalid-seq-sql: No rows returned for sql "{0}".  Check your configuration.
+insert-seq: Inserting row for this mapping into sequence table.
+no-seq-row: There is no row for mapping "{0}" in sequence table "{1}", and \
+	the attempt to insert a row has apparently failed.
+update-seq: Updating sequence values.
+get-seq: Getting current sequence values.
+seq-usage: Usage: java org.apache.openjpa.jdbc.kernel.TableJDBCSeq\n\
+	\t[-properties/-p <properties file or resource>]\n\
+	\t[-<property name> <property value>]*\n\
+	\t-action/-a <add | drop | get | set> [value]
+clstable-seq-usage: Usage: java org.apache.openjpa.jdbc.kernel.ClassTableJDBCSeq\n\
+	\t[-properties/-p <properties file or resource>]\n\
+	\t[-<property name> <property value>]*\n\
+	\t-action/-a <add | drop | get | set>\n\
+	\t[class name | .java file | .class file | .jdo file] [value]
+native-seq-usage: Usage: java org.apache.openjpa.jdbc.kernel.NativeJDBCSeq\n\
+	\t[-properties/-p <properties file or resource>]\n\
+	\t[-<property name> <property value>]*

Propchange: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/kernel/localizer.properties
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/java-keywords.rsrc
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/java-keywords.rsrc?rev=423615&view=auto
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/java-keywords.rsrc (added)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/java-keywords.rsrc Wed Jul 19 14:34:44 2006
@@ -0,0 +1 @@
+abstract,abs,assert,assertion,boolean,bool,break,brk,byte,bits,case,cse,catch,ctch,char,ch,class,type,const,cnst,continue,cont,default,def,do,doIt,double,dbl,else,els,extends,extend,final,fnl,finally,fnly,float,flt,for,forWhat,goto,go2,if,ifTrue,implements,impl,import,imports,instanceof,instance,int,integer,interface,intrface,long,longint,native,natively,new,isNew,null,isNull,package,pkg,private,priv,protected,protect,public,pub,return,ret,short,shrt,static,stat,super,sup,switch,change,synchronized,synch,this,thisOne,throw,thrw,throws,thrws,transient,trans,try,tryIt,void,isVoid,volatile,vol,while,whil

Propchange: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/java-keywords.rsrc
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/localizer.properties
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/localizer.properties?rev=423615&view=auto
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/localizer.properties (added)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/localizer.properties Wed Jul 19 14:34:44 2006
@@ -0,0 +1,400 @@
+resolve-mapping: Resolving mapping for "{0}".
+init-mapping: Initializing mapping for "{0}".
+strategy: "{0}" has mapping strategy "{1}".
+field-strategy: \t"{0}" has mapping strategy "{1}".
+no-equiv-col: Cannot use "{0}" as the mapped-by value for a field in "{1}".  \
+	There is no column "{2}" in this subclass'' table.
+no-equiv-field: Cannot use "{0}" as the mapped-by value for a field in "{1}".  \
+	There is no target-field "{2}" for column "{3}" in this subclass.
+bad-equiv-field: Cannot use "{0}" as the mapped-by value for a field in "{1}". \
+	The target-field "{2}" for column "{3}" is mapped to multiple columns.
+no-mapping: No mapping information found for type "{0}".
+bad-mapped-by: Collection field "{0}" declares that it is mapped by "{1}", but \
+	this is not a valid inverse relation.
+no-targetfield: Some of the columns on "{0}" are missing target field \
+	declarations.
+bad-targetfield: "{0}" has a column with target field "{1}", but that is not a \
+	primary key field of the related class.
+bad-col-lg-counts: Cannot synchronize mapping information: the number of \
+	version columns is not equal to the number of lock groups.
+no-joinable: You cannot join on column "{0}".  It is not managed by a mapping \
+	that supports joins.
+join-required: Missing table name for field "{0}".  This field cannot reside \
+	in the owning class table.
+bad-discrim-value: The declared discriminator value "{1}" for type "{0}" \
+	cannot be parsed as a number, though it starts with a digit.   
+unexpected-cols: You have supplied columns for "{0}", but this mapping cannot \
+	have columns in this context.
+unexpected-index: "{0}" is marked as indexed, but OpenJPA does not support \
+	an index on this mapping in this context.
+unexpected-unique: "{0}" is marked as having a unique constraint, but OpenJPA \
+	does not support a constraint on this mapping in this context.
+unexpected-fk: "{0}" is marked as having a foreign key, but OpenJPA does not \
+	support a foreign key on this mapping in this context.
+unexpected-join: "{0}" has columns with targets, but OpenJPA does not support any \
+	joins on this mapping in this context.
+unexpected-strategy: "{0}" has an invalid mapping strategy in this context. \
+	Expected "{1}" but found "{2}".
+no-table: No table was given for persistent type "{0}".
+bad-table: Table "{0}" given for "{1}" does not exist.
+generic-num-cols: For "{0}", expected {1} column(s), but found {2}.
+generic-no-col-name: No column name was given for "{0}".
+generic-bad-col-name: "{0}" declares column "{1}", but this column does not \
+	exist in table "{2}".
+generic-incompat-col: "{0}" declares a column "{1}" whose jdbc-type is not \
+	compatible with the expected type "{2}".
+generic-bad-col: "{0}" declares a column that is not compatible with the \
+	expected type "{1}".  Column details:\n{2}
+datastoreid-num-cols: For type "{0}", expected {1} datastore identity \
+	column(s), but found {2}.
+datastoreid-no-col-name: No datastore identity column name was given for "{0}".
+datastoreid-bad-col-name: Type "{0}" declares datastore identity column "{1}", \
+	but this column does not exist in table "{2}".
+datastoreid-incompat-col: Type "{0}" declares a datastore identity column \
+	"{1}" whose jdbc-type is not compatible with the expected type "{2}".
+datastoreid-bad-col: Type "{0}" declares a datastore identity column that is \
+	not compatible with the expected type "{1}".  Column details:\n{2}
+nondfg-field-orderable: Cannot order "{0}" on "{1}", because that field is not \
+	in the default fetch group.  You can only order on fields that will be \
+	selected when the related object is loaded.
+order-conflict: Field "{0}" declares both a synthetic ordering column and \
+	order-by values.  You cannot use both.  
+order-no-col-name: No order column name was given for "{0}".
+order-bad-col-name: "{0}" declares order column "{1}", but this column does \
+	not exist in table "{2}".
+order-incompat-col: "{0}" declares an order column "{1}" whose jdbc-type is \
+	not compatible with the expected type "{2}".
+order-bad-col: "{0}" declares an order column column that is not compatible \
+	with the expected type "{1}".  Column details:\n{2}
+null-ind-no-col-name: No null-indicator column name was given for "{0}".
+null-ind-bad-col-name: "{0}" declares null-indicator column "{1}", but this \
+	column does not exist in table "{2}".
+null-ind-incompat-col: "{0}" declares a null-indicator column "{1}" whose \
+	jdbc-type is not compatible with the expected type "{2}".
+null-ind-bad-col: "{0}" declares a null-indicator column column that is not \
+	compatible with the expected type "{1}".  Column details:\n{2}
+generic-no-index-cols: "{0}" declares an index, but has no columns.
+generic-index-exists: "{0}" marks its columns as explicitly not indexed, but \
+	an index exists.
+generic-index-not-unique: "{0}" marks its columns as having a unique index, \
+	but the existing index on those columns is not unique.
+generic-no-unique-cols: "{0}" declares a unique constraint, but has no columns.
+generic-unique-exists: "{0}" marks its columns as explicitly not unique, but \
+	a unique constraint exists.
+generic-unique-support: "{0}" marks its columns as having a unique constraint, \
+	but your database does not support unique constraints.  Include \
+	"SupportsUniqueConstraints=true" in the org.apache.openjpa.jdbc.DBDictionary \
+	configuration property to override this default.
+generic-defer-unique: "{0}" marks its columns as having a deferred unique \
+	constraint, but the existing constraint on these columns is not deferred. \
+	OpenJPA cannot change the deferrability of a constraint.
+generic-create-defer-unique: "{0}" marks its columns as having a deferred \
+	unique constraint, but the database dictionary "{1}" reports that it does \
+	not support deferred constraints.  Creating an undeferred constraint.
+generic-no-fk-cols: "{0}" declares a foreign key, but has no columns.
+generic-no-fkcol-name: "{0}" does not supply a name for at least one declared \
+	column.
+generic-bad-fkconst: "{0}" declares invalid constant value target "{1}" for \
+	column with name "{2}".
+generic-bad-fktarget-inverse: "{0}" declares a target for column "{1}" in \
+	table "{3}", but all targets must be in table "{2}".
+generic-bad-fk-inverse: "{0}" declares a column in table "{1}", but all \
+	columns must be in table "{2}".
+generic-bad-fk-self-inverse: "{0}" declares an inverse self-join on table \
+	"{1}", but this mapping does not allow inverse joins.  If you did not \
+	intend to make this an inverse join, take the table name out of the \
+	column names for this mapping.
+generic-no-fkcol-name-adapt: "{0}" does not supply a name for at least one \
+	declared column.  Since this mapping can involve multiple columns or uses \
+	constant joins, each column must give either its name or a non-constant \
+	target.
+generic-no-fkcol-target-adapt: "{0}" does not supply a target for column \
+	"{1}".  Since this mapping can involve multiple columns and the a target \
+	column with the same name doesn''t exist, you must give a target explicitly.
+generic-bad-fktarget: "{0}" defines a target of "{1}" for column "{2}", but \
+	that target does not exist in table "{3}".
+generic-bad-fktargetcls: "{0}" defines target field "{1}" for column \
+	"{2}", but OpenJPA cannot deterimine the owning class for that field.
+generic-bad-fktargetfield: "{0}" defines target field "{1}" for column \
+	"{2}", but that field does not exist in type "{3}".
+generic-fktargetfield-cols: "{0}" defines target field "{1}" for column \
+	"{2}", but that field is either unmapped or has multiple columns.
+generic-mult-fk-tables: "{0}" uses columns from multiple different tables: \
+	"{1}", "{2}"
+generic-fk-exists: "{0}" marks its columns as explicitly not having a foreign \
+	key delete action, but a database foreign key exists on these columns.
+generic-defer-fk: "{0}" marks its columns as having a deferred foreign key, \
+	but the existing constraint on these columns is not deferred. OpenJPA cannot \
+	change the deferrability of a constraint.
+generic-create-defer-fk: "{0}" marks its columns as having a deferred foreign \
+	key, but the database dictionary "{1}" reports that it does not support \
+	deferred constraints.  Creating an undeferred constraint.
+generic-unsupported-fk-action: "{0}" uses an unsupported foreign key delete or \
+	update action on its columns.  Reverting to a logical foreign key.
+generic-const-join: "{0}" attmpts to join a constant value to another constant \
+	value.
+superclass-no-fk-cols: Type "{0}" is missing information on how to join to \
+	its superclass.
+superclass-no-fkcol-name: Type "{0}" does not supply a name for at least one \
+	declared superclass join column.
+superclass-bad-fkconst: Type "{0}" declares invalid constant value target \
+	"{1}" for the column with name "{2}" in its superclass join.
+superclass-bad-fktarget-inverse: Type "{0}" declares superclass join column \
+	"{1}" with a target in table "{3}", but all targets must be in table "{2}".
+superclass-bad-fk-inverse: Type "{0}" declares a superclass join in table \
+	"{1}", but all columns must be in table "{2}".
+superclass-no-fkcol-name-adapt: Type "{0}" does not supply a name for at \
+	least one declared column in its superclass join.  Since this join can \
+	involve multiple columns, each column must give either its name or its \
+	target.
+superclass-no-fkcol-target-adapt: Type "{0}" does not supply a target for \
+	column "{1}" in its superclass join.  Since this mapping can involve \
+	multiple columns and the a target column with the same name doesn''t \
+	exist, you must give a target explicitly.
+superclass-bad-fktarget: Type "{0}" defines a target of "{1}" for superclass \
+	join column "{2}", but that target does not exist in table "{3}".
+superclass-bad-fktargetcls: "{0}" defines target field "{1}" for superclass \
+	join column "{2}", but OpenJPA cannot deterimine the owning class for that \
+	field.
+superclass-bad-fktargetfield: Type "{0}" defines target field of "{1}" for \
+	superclass join column "{2}", but that field does not exist in type "{3}".
+superclass-fktargetfield-cols: Type "{0}" defines target field "{1}" for \
+	superclass join column "{2}", but that field is either unmapped or has \
+	multiple columns.
+superclass-mult-fk-tables: The superclass join on type "{0}" uses columns from \
+	multiple different tables: "{1}", "{2}"
+superclass-fk-exists: Type "{0}" marks its superclass join columns as \
+	explicitly not having a foreign key delete action, but a database foreign \
+	key exists on these columns.
+superclass-defer-fk: Type "{0}" marks its superclass join columns as having a \
+	deferred foreign key, but the existing constraint on these columns is not \
+	deferred. OpenJPA cannot change the deferrability of a constraint.
+superclass-create-defer-fk: Type "{0}" marks its superclass join columns as \
+	having a deferred foreign key, but the database dictionary "{1}" reports \
+	that it does not support deferred constraints.  Creating an undeferred \
+	constraint.
+superclass-unsupported-fk-action: Type "{0}" uses an unsupported foreign key \
+	delete or update action on its superclass join columns.  Reverting to a \
+	logical foreign key.
+superclass-const-join: "{0}" attmpts to join a constant value to another \
+	constant value.
+join-no-index-cols: "{0}" declares a join index, but has no join columns.
+join-index-exists: "{0}" marks its join columns as explicitly not indexed, but \
+	an index exists.
+join-index-not-unique: "{0}" marks its join columns as having a unique index, \
+	but the existing index on those columns is not unique.
+join-no-unique-cols: "{0}" declares a unique join constraint, but has no \
+	join columns.
+join-unique-exists: "{0}" marks its join columns as explicitly not unique, but \
+	a unique constraint exists.
+join-unique-support: "{0}" marks its join columns as having a unique \
+	constraint, but your database does not support unique constraints.  \
+	Include "SupportsUniqueConstraints=true" in the org.apache.openjpa.jdbc.DBDictionary \
+	configuration property to override this default.
+join-defer-unique: "{0}" marks its join columns as having a deferred unique \
+	constraint, but the existing constraint on these columns is not deferred. \
+	OpenJPA cannot change the deferrability of a constraint.
+join-create-defer-unique: "{0}" marks its join columns as having a deferred \
+	unique constraint, but the database dictionary "{1}" reports that it does \
+	not support deferred constraints.  Creating an undeferred constraint.
+join-no-fk-cols: "{0}" declares a join foreign key, but has no join columns.
+join-no-fkcol-name: "{0}" does not supply a name for at least one declared \
+	join column.
+join-bad-fkconst: "{0}" declares invalid constant value target "{1}" for \
+	join column with name "{2}".
+join-bad-fktarget-inverse: "{0}" declares a target for join column "{1}" in \
+	table "{3}", but all join targets must be in table "{2}".
+join-bad-fk-inverse: "{0}" declares a join column in table "{1}", but all \
+	join columns must be in table "{2}".
+join-bad-fk-self-inverse: "{0}" declares an inverse self-join on table \
+	"{1}", but this mapping does not allow inverse joins.  If you did not \
+	intend to make this an inverse join, take the table name out of the \
+	column names for this mapping.
+join-no-fkcol-name-adapt: "{0}" does not supply a name for at least one \
+	declared join column.  Since this join can involve multiple columns or \
+	uses constant joins, each column must give either its name or a \
+	non-constant target.
+join-no-fkcol-target-adapt: "{0}" does not supply a target for join column \
+	"{1}".  Since this join can involve multiple columns and the a target \
+	column with the same name doesn''t exist, you must give a target explicitly.
+join-bad-fktarget: "{0}" defines a target of "{1}" for join column "{2}", but \
+	that target does not exist in table "{3}".
+join-bad-fktargetcls: "{0}" defines target field "{1}" for join column "{2}", \
+	but OpenJPA cannot deterimine the owning class for that field.
+join-bad-fktargetfield: "{0}" defines target field of "{1}" for join column \
+	"{2}", but that field does not exist in type "{3}".
+join-fktargetfield-cols: "{0}" defines target field "{1}" for join column \
+	"{2}", but that field is either unmapped or has multiple columns.
+join-mult-fk-tables: "{0}" uses join columns from multiple different tables: \
+	"{1}", "{2}"
+join-fk-exists: "{0}" marks its join columns as explicitly not having a \
+	foreign key delete action, but a database foreign key exists on these \
+	columns.
+join-defer-fk: "{0}" marks its join columns as having a deferred foreign key, \
+	but the existing constraint on these columns is not deferred. OpenJPA cannot \
+	change the deferrability of a constraint.
+join-create-defer-fk: "{0}" marks its join columns as having a deferred \
+	foreign key, but the database dictionary "{1}" reports that it does not \
+	support deferred constraints.  Creating an undeferred constraint.
+join-unsupported-fk-action: "{0}" uses an unsupported foreign key delete or \
+	update action on its join columns.  Reverting to a logical foreign key.
+join-const-join: "{0}" attmpts to join a constant value to another constant \
+	value.
+unmapped: Attempt to map "{0}" failed: the owning entity is not mapped.
+col-wrong-table: When mapping "{0}" to table "{1}", found a column mapped to \
+	illegal table "{2}".
+target-wrong-cls: When mapping "{0}", found join with a target-field in class \
+	"{1}".  This class does not match the expected source or target mappings \
+	for the join ("{2}", "{3}").
+no-equiv-mapped-by: "{0}" does not have a valid mapping.  It declares that it \
+	is mapped by "{2}", but "{1}", a subclass of its declared type, does not \
+	inherit that relation field.
+cant-inverse: "{0}" is not a valid mapping.  Inverse foreign key-based \
+	relations to types with unjoined subclasses are not supported.
+importexport-instantiate: Could not instantiate library to import \
+	or export mapping information.
+tool-usage: Usage: java org.apache.openjpa.jdbc.meta.MappingTool\n\
+	\t[-properties/-p <properties file or resource>]\n\
+	\t[-<property name> <property value>]*\n\
+	\t[-file/-f <stdout | output file or resource>]\n\
+	\t[-schemaFile/-sf <stdout | output file or resource>]\n\
+	\t[-sqlFile/-sql <stdout | output file or resource>]\n\
+	\t[-schemaAction/-sa <add | retain | drop | refresh | build | none>]\n\
+	\t[-schemas/-s <schemas and tables>]\n\
+	\t[-readSchema/-rs <true/t | false/f>]\n\
+	\t[-primaryKeys/-pk <true/t | false/f>]\n\
+	\t[-foreignKeys/-fk <true/t | false/f>]\n\
+	\t[-indexes/-ix <true/t | false/f>]\n\
+	\t[-dropTables/-dt <true/t | false/f>]\n\
+	\t[-openjpaTables/-kt <true/t | false/f>]\n\
+	\t[-dropSequences/-dsq <true/t | false/f>]\n\
+	\t[-sequences/-sq <true/t | false/f>]\n\
+	\t[-ignoreErrors/-i <true/t | false/f>]\n\
+	\t[-action/-a <refresh | add | buildSchema | drop | validate | import \n\
+	| export>]\n\
+	\t<class name | .java file | .class file | .jdo file | .orm file | \
+	.mapping file>*
+tool-running: Mapping tool running on type "{0}" with action "{1}".
+tool-time: The tool is now reading existing schema information; this process \
+	may take some time.  Enable the org.apache.openjpa.jdbc.Schema logging category to see \
+	messages about schema data.  Also see the -readSchema tool flag.
+tool-record: Recording mapping and schema changes.
+bad-store: Your configured MetaDataFactory or MappingFactory plugin does not \
+	support storing information.  You must write the information by hand. If \
+	you are trying to create a schema using default column and table names, \
+	run mappingtool with the "buildSchema" action instead of the \
+	"refresh" or "add" actions.
+bad-drop: Some of the following mappings may not have been dropped: {0}. \
+	Undropped mappings will not affect the system.
+no-drop-meta: The schema for type "{0}" may not be dropped, because its \
+	mapping could not be parsed.
+bad-bk-file: Could not create a backup file for "{0}".
+running-all-classes: No targets were given.  Running on all classes listed in \
+	your configuration, or all persistent classes in the classpath if no \
+	classes are configured.
+fatal-change: There has been a fatal change to the definition of "{0}" or its \
+	schema since it was last mapped, or the mapping you defined is invalid:\n\
+	{1}\nOpenJPA will attempt to create a new mapping.
+bad-field-strategy: Field "{0}" declared custom mapping strategy "{1}", but \
+	this strategy cannot be instantiated.
+bad-cls-strategy: Could not instantiate custom class strategy "{1}" \
+	for type "{0}".  Make sure this is a valid ClassStrategy implementation.
+bad-discrim-strategy: Could not instantiate custom discriminator strategy \
+	"{1}" for type "{0}".  Make sure this is a valid DiscriminatorStrategy \
+	implementation.
+bad-version-strategy: Could not instantiate custom version strategy \
+	"{1}" for type "{0}".  Make sure this is a valid VersionStrategy \
+	implementation.
+bad-value-handler: "{0}" declared custom value handler "{1}", but this handler \
+	cannot be instantiated.
+bad-mapped-strategy: The type for "{0}" is mapped to custom strategy "{1}", \
+	but this strategy cannot be instantiated.
+no-field-strategy: OpenJPA cannot map field "{0}" efficiently.  It is of an \
+	unsupported type. The field value will be serialized to a BLOB by default.
+max-embed-lob: "{0}" is being mapped with a handler that may not be able to \
+	store values over {1} bytes/chars long.
+incomplete-join: The system has detected an incomplete join on column "{0}".  \
+	When you specify a join between tables, you must join to all the columns \
+	of any fields involved.
+bad-remap: Column "{0}" cannot be involved in polymorphic table-per-class \
+	relationships because its corresponding field is mapped differently in \
+	various classes in the hierarchy.
+unmap-table: Table "{0}" could not be reverse mapped.  This means that the \
+	table does not have a primary key (primary keys are required to establish \
+	unique identifiers for all persistent objects) and does not match a known \
+	pattern for a table used for cross-reference or value collections.
+unmap-cols: The following columns of table "{0}" could not be reverse \
+	mapped "{1}".
+no-pk-fields: Reverse-mapped type "{0}" is configured to use application \
+	identity, but has no primary key fields.
+class-code: Writing java code for generated type "{0}".
+cant-use-char: Column "{0}" is type CHAR(1), but OpenJPA cannot \
+	reverse map it into a Java char because OpenJPA is currently configured to \
+	store Java chars into numeric database columns.  To configure OpenJPA to \
+	store Java chars into CHAR(1) columns, set the following property:\n\
+	org.apache.openjpa.jdbc.DBDictionary: StoreCharsAsNumbers=false
+revtool-running: The reverse mapping tool will run on the database.  The tool \
+	is gathering schema information; this process may take some time.  Enable \
+	the org.apache.openjpa.jdbc.Schema logging category to see messages about schema data.
+revtool-running-file: The reverse mapping tool will run on schema file "{0}".
+revtool-map: Calculating reverse mappings.
+revtool-write-code: Writing generated class source code.
+revtool-write-appid: Writing generated application identity classes.
+revtool-write-metadata: Writing generated metadata.
+revtool-usage: Usage: java org.apache.openjpa.jdbc.meta.ReverseMappingTool\n\
+	\t[-properties/-p <properties file or resource>]\n\
+	\t[-<property name> <property value>]*\n\
+	\t[-directory/-d <output directory>]\n\
+	\t[-schemas/-s <schema and table list>]\n\
+	\t[-package/-pkg <package name>]\n\
+	\t[-useSchemaName/-sn <true/t | false/f>]\n\
+	\t[-useForeignKeyName/-fkn <true/t | false/f>]\n\
+	\t[-nullableAsObject/-no <true/t | false/f>]\n\
+	\t[-blobAsObject/-bo <true/t | false/f>]\n\
+	\t[-typeMap/-type <types>]\n\
+	\t[-primaryKeyOnJoin/-pkj <true/t | false/f>]\n\
+	\t[-useDatastoreIdentity/-ds <true/t | false/f>]\n\
+	\t[-useBuiltinIdentityClass/-bic <true/t | false/f>]\n\
+	\t[-innerIdentityClasses/-inn <true/t | false/f>]\n\
+	\t[-identityClassSuffix/-is <suffix>]\n\
+	\t[-inverseRelations/-ir <true/t | false/f>]\n\
+	\t[-detachable/-det <true/t | false/f>]\n\
+	\t[-discriminatorStrategy/-ds <strategy>]\n\
+	\t[-versionStrategy/-vs <strategy>]\n\
+	\t[-metadata/-md <package | class>]\n\
+	\t[-customizerClass/-cc <full class name>]\n\
+	\t[-customizerProperties/-cp <properties file or resource>]\n\
+	\t[-customizer/-c.<property name> <property value>]*\n\
+	\t[-codeFormat/-cf.<property name> <property value>]*\n\
+	\t[.schema file]*
+custom-class: Customized name found for class "{0}": will rename as "{1}".
+custom-no-class: No customized name found for class "{0}" of table "{1}".
+custom-rm-class: Removing class "{0}" of table "{1}" from reverse mapped set.
+custom-field: Customized name found for field "{0}" in type "{1}": will \
+	rename as "{1}".
+custom-no-field: No customized name found for field "{0}" in type "{1}".
+custom-rm-field: Removing field "{0}" in type "{1}" from reverse mapped set.
+custom-unused-props: The following customizer properties were not used in \
+	the reverse mapping process: {0}.
+reverse-type: Overriding type mapping for column of type name "{0}" to Java \
+	class "{1}". 
+no-reverse-type: No overridden type mapping for column of type name "{0}".
+no-query-res: There is no query result mapping for "{0}" with name "{1}".
+null-path: Attempt to add a null or empty path to result type "{1}" in mapping \
+	"{0}". 
+bad-path: Result path "{2}" in result type "{1}" of mapping "{0}" contains \
+	invalid fields.
+untraversable-path: Result path "{2}" in result type "{1}" of mapping "{0}" \
+	attempts to traverse through a non-relation field.
+num-cols-path: Result path "{2}" in result type "{1}" of mapping "{0}" \
+	attempts to map a field that does not have exactly 1 column.
+lock-group-requires-perf-pack: Field "{0}" declares the lock-group extension. \
+	In order to use custom lock groups, you must have a performance pack or \
+	enterprise edition license. Contact sales@bea.com for details on \
+	upgrading your license.
+sub-lock-groups: Type "{0}" has a mapped superclass, and therefore cannot \
+	declare additional lock groups.  Use the "lock-groups" extension on the \
+	mapped superclass to declare any additional lock groups needed by this \
+	type.  {1}
+vers-mult-lock-groups: Type "{0}" cannot use a version field because it has \
+	multiple lock groups.

Propchange: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/localizer.properties
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/strats/localizer.properties
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/strats/localizer.properties?rev=423615&view=auto
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/strats/localizer.properties (added)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/strats/localizer.properties Wed Jul 19 14:34:44 2006
@@ -0,0 +1,121 @@
+rel-to-unknownid: You cannot map a logical foreign key relation to an object \
+	with an unknown identity type.
+cant-mapped-by: Field "{0}" cannot declare that it is mapped by another field. \
+	Its mapping strategy ({1}) does not support mapping by another field.
+mapped-inverse-unjoined: Field "{0}" as defined in "{1}" cannot be mapped by \
+	"{2}".  You cannot use an inverse foreign key to map a superclass field of \
+	an unjoined subclass.
+mapped-by-unmapped: Field "{0}" cannot be mapped by "{1}", because the related \
+	type is unmapped.
+cant-join: Cannot join across "{0}".  The related type has unjoined subclasses.
+cant-inverse: "{0}" is not a valid mapping.  Inverse foreign key-based \
+	relations to types with unjoined subclasses are not supported.
+cant-load: "{0}" is not a valid mapping. The related type has subclasses that \
+	are not reachable via joins, so OpenJPA must be able to construct an oid \
+	from the mapped foreign key.  But your foreign key does not represent all \
+	primary key values of the related type. 
+flush-virtual: Attempt to flush an unmapped object of type "{0}" with oid "{1}".
+cant-project-owned: "{0}" cannot be used in a projection, because it can only \
+	be loaded as part of its owning object.
+not-embeddable: "{0}" is mapped as embedded, but embedded field "{1}" is not \
+	embeddable.  Embedded element/key/value types are limited to simple fields \
+	and direct relations to other persistent types.
+oid-invalid: Object id data "{0}" loaded from the database for "{1}" is not in \
+	the correct format. Please ensure that your database records are in the \
+	correct format.
+lrs-no-owner: This container was loaded in large result set field "{0}", but \
+	has been removed from its owning field.  Therefore, it can no longer be \
+	used.
+not-full: Type "{0}" specifies a full class mapping strategy, but has a mapped \
+	persistence capable superclass or is embedded.  Use a valid subclass or \
+	embedded strategy instead.
+not-base-vers: Type "{0}" specifies a version strategy, but has a mapped \
+	persistence capable superclass or is embedded.  Subclasses and embedded \
+	values must use the version strategy of the base or embedding class.
+not-base-disc: Type "{0}" specifies a discriminator strategy, but has a mapped \
+	persistence capable superclass or is embedded.  Subclasses and embedded \
+	values must use the discriminator strategy of the base or embedding class.
+not-sub: Type "{0}" specifies a subclass mapping strategy, but does not \
+	have a mapped persistence capable superclass or is embedded.  Use a valid \
+	base or embedded class strategy instead.
+not-embed: "{0}" specifies an embedded mapping strategy, but it is not \
+	embedded.
+not-oid: "{0}" species an object id mapping strategy, but it is not \
+	an object id field.
+oid-not-joinable: Field "{0}" embedded within object id field "{1}" cannot be \
+	a primary key value.  Its mapping does not it to be a join target.
+flat-table: Type "{0}" uses a flat inheritance mapping, but declares a table \
+	name of "{1}", which does not match the superclass table "{2}".  
+not-string: Field "{0}" declares a string field mapping strategy, but is not \
+	a string field.
+not-primitive: Field "{0}" declares a primitive field mapping strategy, but \
+	is not of a primitive type.
+not-clobstring: Field "{0}" declares a clob field mapping strategy, but is \
+	not a string field.
+not-bytes: Field "{0}" declares a byte array field mapping strategy, but is \
+	not a byte array field.
+not-chars: Field "{0}" declares a char array field mapping strategy, but is \
+	not a char array field.
+not-serialized: Field "{0}" declares a blob mapping strategy, but the \
+	field''s value is not serialized.  Set the field''s "serialized" attribute \
+	to true.  
+not-relation: "{0}" declares a relation mapping strategy, but is not a \
+	direct, non-embedded relation to another persistence-capable object.
+not-elem-relation: "{0}" declares a to-many relation strategy, but its \
+	elements are not direct, non-embedded relations to another mapped \
+	persistence-capable object.
+not-inv-relation: Field "{0}" declares "{1}" as its mapped-by field, but this \
+	field is not a direct relation.
+not-inv-relation-coll: Field "{0}" declares "{1}" as its mapped-by field, but \
+	this field is not a collection of inverse relations.
+not-coll: Field "{0}" declares a collection mapping strategy, but is not a \
+	collection or array type.
+coll-owner:  Inefficient mapping: You have declared that field "{0}" is mapped \
+	by collection "{1}".  The mapping would be much more efficient if instead \
+	you map "{0}" and declare that "{1}" is mapped by it.
+class-crit-owner: Field "{0}" declares that it uses class criteria for joins, \
+	and this field is not owned by an inverse field.  As a result, it is \
+	impossible to correctly null the inverse foreign keys when the field is \
+	deleted.  OpenJPA may leave orphan key values in the database if you do not \
+	provide an owning inverse relation using the "mapped-by" attribute.
+not-map: Field "{0}" declares a map mapping strategy, but is not a map type.
+mapped-by-key: Map field "{0}" is attempting to use a map table, but its key \
+	is mapped by another field.  Use an inverse key or join table mapping.
+not-mapped-by-key: Map field "{0}" is attempting to use an inverse key or join \
+	table mapping, but its key is not mapped by another field.  Use a map \
+	table mapping. 
+no-handler: Field "{0}" declares a handler-based mapping strategy, but no \
+	value handler is installed.
+auto-assign-handler: Attempt to use an auto-assigned column value in a handler \
+	with multiple columns.  To use an auto-assigned column value with field \
+	"{0}", you will have to write a custom field mapping that implements the \
+	org.apache.openjpa.jdbc.meta.Joinable interface.
+no-lock-groups: Type "{0}" does not have any fields that participate in \
+	optimistic locking.  Set its version strategy to "none".
+load-subs: Loading subclasses from discriminator column of "{0}".
+no-class-name: The discriminator column "{1}" for type "{1}" contains a null \
+	or empty value. 
+cant-init-subs: The discriminator for type "{0}" cannot compute the list of \
+	its subclasses on its own.  You should either use a discriminator strategy \
+	that has this ability (such as the class-name strategy), include the set \
+	of persistent classes in the "org.apache.openjpa.MetaDataFactory" property so that OpenJPA \
+	can discover all persistent classes at startup, or make sure that all \
+	subclasses of this type have had their class instantiated in the JVM \
+	before performing any persistent operations on this class or its \
+	subclasses.  If this class does not have any subclasses, consider making \
+	the class final or changing its discriminator strategy to "final".
+no-discrim-value: Type "{0}" uses the value-map discriminator strategy, but \
+	does not declare a discriminator value.
+dup-discrim-value: Discriminator value "{0}" is used for two different \
+	classes in the same inheritance tree: "{1}", "{2}"
+outer-join-support: The subclass-join class indicator mapped to "{0}" requires \
+	outer joins to function.  Your database dictionary is configured to use \
+	"traditional" join syntax, which does not support outer joins.  To \
+	use SQL 92 joins instead, set the following property:\n\
+	org.apache.openjpa.jdbc.DBDictionary: JoinSyntax=sql92
+unknown-discrim-value: Could not map disciminator value "{0}" to any \
+	known subclasses of the requested class "{1}" (known discriminator \
+	values: {2}).
+bad-unmapped-rel: "{0}" cannot be mapped without stringifying the oid of \
+	the related object to a string column.  The related type is unmapped and \
+	its "{1}" primary key field does not use a simple mapping.

Propchange: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/strats/localizer.properties
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/schema/localizer.properties
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/schema/localizer.properties?rev=423615&view=auto
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/schema/localizer.properties (added)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/schema/localizer.properties Wed Jul 19 14:34:44 2006
@@ -0,0 +1,132 @@
+bad-join: The following error was detected when creating a foreign key: \
+	"{0}".  The foreign key is being ignored.
+no-driver: A JDBC Driver or DataSource class name must be specified in the \
+	ConnectionDriverName property.
+bad-driver: The specified driver "{0}" is neither a java.sql.Driver \
+	nor a javax.sql.DataSource class name.
+bad-sch-ref: The schema information table could not be created: {0}
+bad-sch-read: Attempt to read the schema information table failed; continuing \
+	on the assumption that the table has not been created yet, and there is \
+	no data to read: {0}
+bad-sch-write-1: First attempt to write to the schema information table \
+	failed; will attempt to create the table in case it has been dropped \
+	before re-trying: {0}
+bad-sch-write-2: Attempt to write the schema information table for the second \
+	time failed.  See previous log messages for possible reasons.
+bad-seq-num: Bad numeric constant for attribute in sequence "{0}".
+pk-resolve: The column "{0}" specified as a primary key for table "{1}" \
+	does not exist in that table.
+index-info: Unable to get index information for table "{0}": "{1}"
+index-resolve: The column "{1}" specified as part of index "{0}" on table \
+	"{2}" does not exist in that table.
+unq-resolve: The column "{1}" specified as part of unique constraint "{0}" on \
+	table "{2}" does not exist in that table.
+fk-totable: The foreign table "{1}" specified in foreign key "{0}" on \
+	table "{2}" does not exist or does not have a primary key.
+fk-nocol: The column "{1}" specified by foreign key "{0}" on table "{2}" \
+	does not exist in that table.
+fk-nopkcol: The column "{1}" of table "{2}" joined to by foreign key "{0}" \
+	on table "{3}" does not exist or is not a primary key column.
+bad-name: You must supply a valid name for this schema component.
+dup-col-name: The name "{0}" is already taken by a column in this table.
+table-mismatch: You are attempting to add a column from table "{0}" to a \
+	constraint or index on table "{1}".
+fk-mismatch: You are attempting to link to a primary key column in table \
+	"{0}" in a foreign key that is already linked to primary key columns in \
+	table "{1}".
+ser-schema: Writing schema "{0}".
+tool-norepos: You cannot perform this action until you set the schema group \
+	to act on.
+tool-running: Schema tool will run on schema file "{0}".
+tool-import-store: Storing imported schema data in schema factory.
+tool-export-gen: Gathering schema information to export; this process \
+	may take some time.  Enable the org.apache.openjpa.jdbc.Schema logging category to see \
+	messages about the collection of schema data.
+tool-action: Schema tool running action "{0}".  This process may take some \
+	time.  Enable the org.apache.openjpa.jdbc.Schema logging category to see messages about \
+	the collection of schema data, and the org.apache.openjpa.jdbc.SQL category to see \
+	generated SQL commands.
+tool-record: Recording schema changes.
+tool-export-write: Writing schema data to XML.
+tool-usage: Usage: java org.apache.openjpa.jdbc.schema.SchemaTool\n\
+	\t[-properties/-p <properties file or resource>]\n\
+	\t[-<property name> <property value>]*\n\
+	\t[-file/-f <stdout | output file or resource>]\n\
+	\t[-ignoreErrors/-i <true/t | false/f>]\n\
+	\t[-dropTables/-dt <true/t | false/f>]\n\
+	\t[-openjpaTables/-kt <true/t | false/f>]\n\
+	\t[-dropSequences/-dsq <true/t | false/f>]\n\
+	\t[-sequences/-sq <true/t | false/f>]\n\
+	\t[-primaryKeys/-pk <true/t | false/f>]\n\
+	\t[-foreignKeys/-fk <true/t | false/f>]\n\
+	\t[-indexes/-ix <true/t | false/f>]\n\
+	\t[-record/-r <true/t | false/f>]\n\
+	\t[-action/-a <add | retain | drop | refresh | build | reflect\n\
+	\t\t| createDB | dropDB | import | export>]\n\
+	\t<.schema file or resource>*
+sch-reflect: Reflecting on schemas "{0}".  This process may take some time.  \
+	Enable the org.apache.openjpa.jdbc.Schema logging category to see messages about the \
+	collection of schema data.
+sch-reflect-write: Writing XML representation of schema.
+drop-index: The index "{0}" was not dropped from table "{1}".
+drop-fk: The foreign key "{0}" was not dropped from table "{1}".
+drop-pk: The primary key "{0}" was not dropped from table "{1}".
+drop-col: The column "{0}" was not dropped from table "{1}".
+drop-table: The table "{0}" was not dropped.
+drop-seq: The sequence "{0}" was not dropped.
+add-col: The column "{0}" was not added to table "{1}".
+add-index: The index "{0}" was not created on table "{1}".
+too-many-indexes: The index "{0}" was not created on table "{1}", since it \
+	would go beyond the maximum index limit of {2}.
+add-pk: The primary key "{0}" was not added to table "{1}".
+add-fk: The foreign key "{0}" was not added to table "{1}".
+add-table: The table "{0}" was not created.
+add-seq: The sequence "{0}" was not added to the database.
+bad-col: Existing column "{0}" on table "{1}" is incompatible with the \
+	same column in the given schema definition. Existing column:\n{2}\
+	Given column:\n{3}	
+bad-pk: Existing primary key "{0}" on table "{1}" is incompatible with \
+	the same primary key in the given schema definition.
+bad-index: Existing index "{0}" on table "{1}" is incompatible with the \
+	same index in the given schema definition.
+bad-fk: Existing foreign key "{0}" on table "{1}" is incompatible with \
+	the same foreign key in the given schema definition.
+bad-fk-action-hint: "{1}" is not a recognized foreign key action, though it \
+	closely resembles the standard action "{2}". Available actions are: {3}
+bad-fk-action: "{1}" is not a recognized foreign key action.  Available \
+	actions are: {2}
+gen-pk: Found existing primary key "{0}" on table "{1} ({2})".
+gen-index: Found existing index "{0}" on table "{1} ({2})".
+gen-fk: Found existing foreign key "{0}" on table "{1} ({2})" linking to \
+	table "{3} ({4})".  Sequence: "{5}".
+gen-nofktable: Table "{0}" has a foreign key to table "{1}" that has not been \
+	generated.  You must run the schema generator on all inter-related tables \
+	at once.
+gen-tables: Reading table information for schema name "{0}", table name "{1}".
+gen-pks: Reading primary keys for schema name "{0}", table name "{1}".
+gen-indexes: Reading indexes for schema name "{0}", table name "{1}".
+gen-fks: Reading foreign keys for schema name "{0}", table name "{1}".
+col-table: Reading column information for table "{0}".
+gen-column: Found existing column "{0}" on table "{1}".
+gen-seqs: Reading sequence information for schema "{0}", sequence name "{1}".
+no-idx-meta: Unable to get index metadata for table "{0}": {1}
+make-sch-table: Creating table to hold schema information.
+drop-sch-table: Dropping schema table.
+sch-usage: Usage: java org.apache.openjpa.jdbc.schema.TableSchemaFactory\n\
+	\t[-properties <properties file or resource>]\n\
+	\t[-<property name> <property value>]\n\
+	\t-action/-a <add | drop>
+refresh-cancelled: Refresh operation cancelled.
+generating-schemas: Reading schemas
+generating-schema: Reading schema "{0}"
+generating-all-primaries: Reading primary keys for schema "{0}"
+generating-all-indexes: Reading indexes for schema "{0}"
+generating-all-foreigns: Reading foreign keys for schema "{0}"
+generating-columns: Reading columns for table "{1}"
+generating-primary: Reading primary keys for table "{1}"
+generating-indexes: Reading indexes for table "{1}"
+generating-foreign: Reading foreign keys for table "{1}"
+generating-sequences: Reading sequences for schema "{0}"
+no-custom-ds: use a custom DataSource
+max-pool-license: Your license only permits a maximum of {0} pooled \
+	connections; the connection pool will be configured accordingly.

Propchange: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/schema/localizer.properties
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/schema/schemas-doctype.rsrc
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/schema/schemas-doctype.rsrc?rev=423615&view=auto
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/schema/schemas-doctype.rsrc (added)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/schema/schemas-doctype.rsrc Wed Jul 19 14:34:44 2006
@@ -0,0 +1,47 @@
+<!DOCTYPE schemas [
+	<!ELEMENT schemas (schema)*>
+	<!ELEMENT schema (table|sequence)*>
+	<!ATTLIST schema name CDATA #IMPLIED>
+	<!ELEMENT table (column|index|pk|fk)+>
+	<!ATTLIST table name CDATA #REQUIRED>
+	<!ELEMENT column EMPTY>
+	<!ATTLIST column name CDATA #REQUIRED> 
+ 	<!ATTLIST column type (array|bigint|binary|bit|blob|char|clob|date|decimal|distinct|double|float|integer|java_object|longvarbinary|longvarchar|null|numeric|other|real|ref|smallint|struct|time|timestamp|tinyint|varbinary|varchar) #REQUIRED>
+	<!ATTLIST column type-name CDATA #IMPLIED>
+	<!ATTLIST column not-null (true|false) #IMPLIED>
+	<!ATTLIST column auto-assign (true|false) #IMPLIED>
+	<!ATTLIST column auto-increment (true|false) #IMPLIED> <!-- deprecated -->
+	<!ATTLIST column default CDATA #IMPLIED>
+	<!ATTLIST column size CDATA #IMPLIED>
+	<!ATTLIST column decimal-digits CDATA #IMPLIED>
+	<!ELEMENT index (on)*>
+	<!ATTLIST index name CDATA #REQUIRED>
+	<!ATTLIST index column CDATA #IMPLIED>
+	<!ATTLIST index unique (true|false) #IMPLIED>
+	<!ELEMENT pk (on)*>
+	<!ATTLIST pk name CDATA #IMPLIED>
+	<!ATTLIST pk logical (true|false) #IMPLIED>
+	<!ATTLIST pk column CDATA #IMPLIED>
+	<!ELEMENT on EMPTY>
+	<!ATTLIST on column CDATA #REQUIRED>
+	<!ELEMENT fk (join)*>
+	<!ATTLIST fk name CDATA #IMPLIED>
+	<!ATTLIST fk deferred (true|false) #IMPLIED>
+	<!ATTLIST fk to-table CDATA #REQUIRED>
+	<!ATTLIST fk column CDATA #IMPLIED>
+	<!ATTLIST fk delete-action (cascade|default|restrict|exception|none|null) #IMPLIED>
+	<!ATTLIST fk update-action (cascade|default|restrict|exception|none|null) #IMPLIED>
+	<!ELEMENT join EMPTY>
+	<!ATTLIST join column CDATA #IMPLIED>
+	<!ATTLIST join to-column CDATA #IMPLIED>
+	<!ATTLIST join value CDATA #IMPLIED>
+	<!ELEMENT unique (on)*>
+	<!ATTLIST unique name CDATA #IMPLIED>
+	<!ATTLIST unique column CDATA #IMPLIED>
+	<!ATTLIST unique deferred (true|false) #IMPLIED>
+	<!ELEMENT sequence EMPTY>
+	<!ATTLIST sequence name CDATA #REQUIRED>
+	<!ATTLIST sequence initial-value CDATA #IMPLIED>
+	<!ATTLIST sequence increment CDATA #IMPLIED>
+	<!ATTLIST sequence allocate CDATA #IMPLIED>
+]>

Propchange: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/schema/schemas-doctype.rsrc
------------------------------------------------------------------------------
    svn:executable = *