Author: allee8285
Date: Mon Apr 15 21:35:58 2013
New Revision: 1468234
URL: http://svn.apache.org/r1468234
Log:
OPENJPA-2368 extentable xsd updates
Added:
openjpa/branches/2.2.1.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestCacheRefresh.java
(with props)
Modified:
openjpa/branches/2.2.1.x/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java
openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/fetch-groups-orm.xml
openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/foreign-key-orm.xml
openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/nonstandard-orm.xml
openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/version-columns-orm.xml
openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/embed/lazy/embed-lazy-orm.xml
openjpa/branches/2.2.1.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/SequencedActionsTest.java
openjpa/branches/2.2.1.x/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/extendable-orm.xsd
openjpa/branches/2.2.1.x/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/openjpa-orm.xsd
openjpa/branches/2.2.1.x/openjpa-project/src/doc/manual/ref_guide_meta.xml
Modified: openjpa/branches/2.2.1.x/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java
URL: http://svn.apache.org/viewvc/openjpa/branches/2.2.1.x/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java?rev=1468234&r1=1468233&r2=1468234&view=diff
==============================================================================
--- openjpa/branches/2.2.1.x/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java
(original)
+++ openjpa/branches/2.2.1.x/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java
Mon Apr 15 21:35:58 2013
@@ -65,7 +65,7 @@ public abstract class XMLMetaDataParser
(XMLMetaDataParser.class);
private static boolean _schemaBug;
- private static final String OPENJPA_NAMESPACE = "http://www.apache.org/openjpa/ns/orm";
+ private static final String OPENJPA_NAMESPACE = "http://openjpa.apache.org/ns/orm";
protected int _extendedNamespace = 0;
protected int _openjpaNamespace = 0;
Modified: openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/fetch-groups-orm.xml
URL: http://svn.apache.org/viewvc/openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/fetch-groups-orm.xml?rev=1468234&r1=1468233&r2=1468234&view=diff
==============================================================================
--- openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/fetch-groups-orm.xml
(original)
+++ openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/fetch-groups-orm.xml
Mon Apr 15 21:35:58 2013
@@ -17,8 +17,8 @@
specific language governing permissions and limitations
under the License.
-->
-<entity-mappings xmlns="http://www.apache.org/openjpa/ns/orm/extendable"
- xmlns:openjpa="http://www.apache.org/openjpa/ns/orm"
+<entity-mappings xmlns="http://openjpa.apache.org/ns/orm/extendable"
+ xmlns:openjpa="http://openjpa.apache.org/ns/orm"
xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.0">
Modified: openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/foreign-key-orm.xml
URL: http://svn.apache.org/viewvc/openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/foreign-key-orm.xml?rev=1468234&r1=1468233&r2=1468234&view=diff
==============================================================================
--- openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/foreign-key-orm.xml
(original)
+++ openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/foreign-key-orm.xml
Mon Apr 15 21:35:58 2013
@@ -17,8 +17,8 @@
specific language governing permissions and limitations
under the License.
-->
-<entity-mappings xmlns="http://www.apache.org/openjpa/ns/orm/extendable"
- xmlns:openjpa="http://www.apache.org/openjpa/ns/orm"
+<entity-mappings xmlns="http://openjpa.apache.org/ns/orm/extendable"
+ xmlns:openjpa="http://openjpa.apache.org/ns/orm"
xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.0">
Modified: openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/nonstandard-orm.xml
URL: http://svn.apache.org/viewvc/openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/nonstandard-orm.xml?rev=1468234&r1=1468233&r2=1468234&view=diff
==============================================================================
--- openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/nonstandard-orm.xml
(original)
+++ openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/nonstandard-orm.xml
Mon Apr 15 21:35:58 2013
@@ -17,8 +17,8 @@
specific language governing permissions and limitations
under the License.
-->
-<entity-mappings xmlns="http://www.apache.org/openjpa/ns/orm/extendable"
- xmlns:openjpa="http://www.apache.org/openjpa/ns/orm"
+<entity-mappings xmlns="http://openjpa.apache.org/ns/orm/extendable"
+ xmlns:openjpa="http://openjpa.apache.org/ns/orm"
xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.0">
Modified: openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/version-columns-orm.xml
URL: http://svn.apache.org/viewvc/openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/version-columns-orm.xml?rev=1468234&r1=1468233&r2=1468234&view=diff
==============================================================================
--- openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/version-columns-orm.xml
(original)
+++ openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/META-INF/version-columns-orm.xml
Mon Apr 15 21:35:58 2013
@@ -17,8 +17,8 @@
specific language governing permissions and limitations
under the License.
-->
-<entity-mappings xmlns="http://www.apache.org/openjpa/ns/orm/extendable"
- xmlns:openjpa="http://www.apache.org/openjpa/ns/orm"
+<entity-mappings xmlns="http://openjpa.apache.org/ns/orm/extendable"
+ xmlns:openjpa="http://openjpa.apache.org/ns/orm"
xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.0">
Modified: openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/embed/lazy/embed-lazy-orm.xml
URL: http://svn.apache.org/viewvc/openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/embed/lazy/embed-lazy-orm.xml?rev=1468234&r1=1468233&r2=1468234&view=diff
==============================================================================
--- openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/embed/lazy/embed-lazy-orm.xml
(original)
+++ openjpa/branches/2.2.1.x/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/embed/lazy/embed-lazy-orm.xml
Mon Apr 15 21:35:58 2013
@@ -17,8 +17,8 @@
specific language governing permissions and limitations
under the License.
-->
-<entity-mappings xmlns="http://www.apache.org/openjpa/ns/orm/extendable"
- xmlns:openjpa="http://www.apache.org/openjpa/ns/orm"
+<entity-mappings xmlns="http://openjpa.apache.org/ns/orm/extendable"
+ xmlns:openjpa="http://openjpa.apache.org/ns/orm"
xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.0">
Modified: openjpa/branches/2.2.1.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/SequencedActionsTest.java
URL: http://svn.apache.org/viewvc/openjpa/branches/2.2.1.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/SequencedActionsTest.java?rev=1468234&r1=1468233&r2=1468234&view=diff
==============================================================================
--- openjpa/branches/2.2.1.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/SequencedActionsTest.java
(original)
+++ openjpa/branches/2.2.1.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/SequencedActionsTest.java
Mon Apr 15 21:35:58 2013
@@ -31,6 +31,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import javax.persistence.Cache;
import javax.persistence.EntityManager;
import javax.persistence.LockModeType;
import javax.persistence.Query;
@@ -81,6 +82,11 @@ public abstract class SequencedActionsTe
private String empTableName;
private List<TestThread> threads = null;
+// @Override
+// protected String getPersistenceUnitName() {
+// return "locking-test";
+// }
+
@SuppressWarnings("deprecation")
protected void commonSetUp() {
empTableName = getMapping(LockEmployee.class).getTable().getFullName();
@@ -171,14 +177,22 @@ public abstract class SequencedActionsTe
}
protected Log getDumpStackLog() {
- return emf.getConfiguration().getLog("DumpStack");
+ if (emf != null) {
+ return emf.getConfiguration().getLog("DumpStack");
+ } else {
+ return null;
+ }
}
protected void logStack(Throwable t) {
StringWriter str = new StringWriter();
PrintWriter print = new PrintWriter(str);
t.printStackTrace(print);
- getDumpStackLog().trace(str.toString());
+ if (getDumpStackLog() != null) {
+ getDumpStackLog().trace(str.toString());
+ } else {
+ System.err.println(str.toString());
+ }
}
private void notifyParent() {
@@ -216,6 +230,9 @@ public abstract class SequencedActionsTe
// OpenJPA entity manager API
Detach, // ();
+ // OpenJPA entity manager factory API
+ ClearCache, // ()
+
// Transaction API
StartTx, // ()
CommitTx, // ()
@@ -247,6 +264,7 @@ public abstract class SequencedActionsTe
SaveVersion, // ([int id])
TestVersion, // (int id, int increment)
TestLockMode, // (int id, LockModeType lockMode)
+ TestInCache, // ([int id[, boolean expectedInCache]])
Test, // Open-ended testing actions
};
@@ -530,6 +548,13 @@ public abstract class SequencedActionsTe
log.trace("Employee (after) :" + detEmployee);
break;
+ case ClearCache:
+ Cache cache = em.getEntityManagerFactory().getCache();
+ if (cache != null) {
+ cache.evictAll();
+ }
+ break;
+
case StartTx:
em.getTransaction().begin();
break;
@@ -577,7 +602,7 @@ public abstract class SequencedActionsTe
}
if (waitTime < MinThreadWaitInMs / 2)
waitTime = MinThreadWaitInMs / 2;
- log.trace(">> Started wait for " + waitTime + " ms");
+ log.trace(">> Started thread " + waitThreadid + " wait for " +
waitTime + " ms");
if( waitThreadid != 0) {
thisThread.wait(waitTime);
} else {
@@ -773,6 +798,26 @@ public abstract class SequencedActionsTe
}
break;
+ case TestInCache:
+ id = 1;
+ boolean expectedInCache = false;
+ if (args.length > 1) {
+ id = (Integer)args[1];
+ }
+ if (args.length > 2) {
+ expectedInCache = (Boolean)args[2];
+ }
+ Cache testCache = em.getEntityManagerFactory().getCache();
+ if (testCache != null) {
+ boolean inCache = testCache.contains(LockEmployee.class, id);
+ log.trace("cache.contains(Employee("+id+")) = " + inCache);
+ assertTrue(curAct + ":TestInCache Expecting=" + expectedInCache
+ + ", Testing=" + inCache + "]", inCache == expectedInCache);
+ } else {
+ log.info(curAct+":TestInCache - No Cache found.");
+ }
+ break;
+
case WaitAllChildren:
// wait for threads to die or timeout
log.trace("checking if thread is alive for " +
@@ -833,7 +878,11 @@ public abstract class SequencedActionsTe
break;
case Sleep:
- Thread.sleep((Integer) args[1]);
+ int sleepMS = 5000;
+ if (args.length > 1) {
+ sleepMS = (Integer) args[1];
+ }
+ Thread.sleep(sleepMS);
break;
case DetachSerialize:
id = 1;
Added: openjpa/branches/2.2.1.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestCacheRefresh.java
URL: http://svn.apache.org/viewvc/openjpa/branches/2.2.1.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestCacheRefresh.java?rev=1468234&view=auto
==============================================================================
--- openjpa/branches/2.2.1.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestCacheRefresh.java
(added)
+++ openjpa/branches/2.2.1.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestCacheRefresh.java
Mon Apr 15 21:35:58 2013
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.persistence.lockmgr;
+
+import javax.persistence.EntityManager;
+import javax.persistence.LockModeType;
+
+/**
+ * Test EntityManager find/namedQuery deadlock exceptions.
+ */
+public class TestCacheRefresh extends SequencedActionsTest {
+
+ public void setUp() {
+// setSupportedDatabases(
+// org.apache.openjpa.jdbc.sql.DB2Dictionary.class,
+// org.apache.openjpa.jdbc.sql.DerbyDictionary.class
+//);
+// if (isTestsDisabled()) {
+// return;
+// }
+
+ setUp(LockEmployee.class
+ , "javax.persistence.sharedCache.mode", "all"
+ , "openjpa.LockManager", "mixed"
+ , "openjpa.DataCache", "true"
+ , "openjpa.RemoteCommitProvider", "sjvm"
+// , "openjpa.jdbc.TransactionIsolation", "read-committed"
+ );
+ commonSetUp();
+ EntityManager em = emf.createEntityManager();
+// dbType = getDBType(em);
+ }
+
+ /* ======== Find dead lock exception test ============*/
+ public void testCacheRefresh() {
+// String[] parameters = new String[] { "Thread 1: lock= " + t1Lock + ", expectedEx=
"
+// + Arrays.toString(t1Exceptions) };
+
+ Object[][] threadMain = {
+ {Act.CreateEm},
+ {Act.StartTx},
+
+ {Act.Clear},
+ {Act.ClearCache},
+
+ {Act.Find, 1},
+ {Act.TestInCache, 1, true},
+
+ {Act.NewThread, 1 },
+ {Act.StartThread, 1 },
+
+ {Act.Wait, 0},
+ {Act.Refresh},
+ {Act.TestInCache, 1, true},
+ {Act.TestEmployee, 1, "Modified First Name"},
+ {Act.CommitTx},
+
+ {Act.StartTx},
+ {Act.Clear},
+
+ {Act.Find, 1},
+ {Act.TestInCache, 1, true},
+ {Act.TestEmployee, 1, "Modified First Name"},// "Def FirstName"}, //"Modified
First Name"},
+
+ {Act.RollbackTx},
+ {Act.Sleep, 500},
+ {Act.WaitAllChildren},
+ };
+ Object[][] thread1 = {
+ {Act.CreateEm},
+ {Act.StartTx},
+ {Act.FindWithLock, 1, LockModeType.PESSIMISTIC_FORCE_INCREMENT},
+ {Act.Notify, 0},
+
+ {Act.UpdateEmployee, 1, "Modified First Name"},
+ {Act.CommitTx},
+// {Act.Sleep, 3 },
+ };
+ launchActionSequence("TestCacheRefresh", null, threadMain, thread1);
+ }
+}
Propchange: openjpa/branches/2.2.1.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestCacheRefresh.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: openjpa/branches/2.2.1.x/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/extendable-orm.xsd
URL: http://svn.apache.org/viewvc/openjpa/branches/2.2.1.x/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/extendable-orm.xsd?rev=1468234&r1=1468233&r2=1468234&view=diff
==============================================================================
--- openjpa/branches/2.2.1.x/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/extendable-orm.xsd
(original)
+++ openjpa/branches/2.2.1.x/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/extendable-orm.xsd
Mon Apr 15 21:35:58 2013
@@ -18,8 +18,8 @@
under the License.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- targetNamespace="http://www.apache.org/openjpa/ns/orm/extendable"
- xmlns:extendable-orm="http://www.apache.org/openjpa/ns/orm/extendable"
+ targetNamespace="http://openjpa.apache.org/ns/orm/extendable"
+ xmlns:extendable-orm="http://openjpa.apache.org/ns/orm/extendable"
xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
Modified: openjpa/branches/2.2.1.x/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/openjpa-orm.xsd
URL: http://svn.apache.org/viewvc/openjpa/branches/2.2.1.x/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/openjpa-orm.xsd?rev=1468234&r1=1468233&r2=1468234&view=diff
==============================================================================
--- openjpa/branches/2.2.1.x/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/openjpa-orm.xsd
(original)
+++ openjpa/branches/2.2.1.x/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/openjpa-orm.xsd
Mon Apr 15 21:35:58 2013
@@ -18,15 +18,15 @@
under the License.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- targetNamespace="http://www.apache.org/openjpa/ns/orm"
- xmlns:openjpa-orm="http://www.apache.org/openjpa/ns/orm"
- xmlns:extendable-orm="http://www.apache.org/openjpa/ns/orm/extendable"
+ targetNamespace="http://openjpa.apache.org/ns/orm"
+ xmlns:openjpa-orm="http://openjpa.apache.org/ns/orm"
+ xmlns:extendable-orm="http://openjpa.apache.org/ns/orm/extendable"
xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="1.0">
- <xsd:import namespace="http://www.apache.org/openjpa/ns/orm/extendable"/>
+ <xsd:import namespace="http://openjpa.apache.org/ns/orm/extendable"/>
<xsd:import namespace="http://java.sun.com/xml/ns/persistence/orm"/>
<!-- **************************************************** -->
Modified: openjpa/branches/2.2.1.x/openjpa-project/src/doc/manual/ref_guide_meta.xml
URL: http://svn.apache.org/viewvc/openjpa/branches/2.2.1.x/openjpa-project/src/doc/manual/ref_guide_meta.xml?rev=1468234&r1=1468233&r2=1468234&view=diff
==============================================================================
--- openjpa/branches/2.2.1.x/openjpa-project/src/doc/manual/ref_guide_meta.xml (original)
+++ openjpa/branches/2.2.1.x/openjpa-project/src/doc/manual/ref_guide_meta.xml Mon Apr 15
21:35:58 2013
@@ -987,7 +987,7 @@ public class Magazine
<para>
OpenJPA has extended the JPA 2.0 schema to include elements and attributes corresponding
to OpenJPA extended metadata and mapping annotations. The schema are contained in 2
-files: <ulink url="http://openjpa.apache.org/builds/latest/docs/schema/extendable-orm.xsd">
+files: <ulink url="http://openjpa.apache.org/builds/latest/docs/schema/extendable/extendable-orm.xsd">
extendable-orm.xsd</ulink> and
<ulink url="http://openjpa.apache.org/builds/latest/docs/schema/openjpa-orm.xsd">openjpa-orm.xsd</ulink>.
The extendable-orm.xsd file provides copies of some of the JPA 2.0 schema elements with additional
schema to make it
@@ -1007,8 +1007,8 @@ schemas as well as for the schema for JP
OpenJPA Schema Extensions
</title>
<programlisting>
-<entity-mappings xmlns="http://www.apache.org/openjpa/ns/orm/extendable"
- xmlns:openjpa="http://www.apache.org/openjpa/ns/orm"
+<entity-mappings xmlns="http://openjpa.apache.org/ns/orm/extendable"
+ xmlns:openjpa="http://openjpa.apache.org/ns/orm"
xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.0">
|