From jboss-envers-commits at lists.jboss.org Wed Oct 1 06:26:59 2008
From: jboss-envers-commits at lists.jboss.org (jboss-envers-commits at lists.jboss.org)
Date: Wed, 01 Oct 2008 06:26:59 -0400
Subject: [jboss-envers-commits] JBoss Envers SVN: r173 - in trunk:
src/main/org/jboss/envers/entities and 5 other directories.
Message-ID:
Author: adamw
Date: 2008-10-01 06:26:59 -0400 (Wed, 01 Oct 2008)
New Revision: 173
Added:
trunk/src/main/org/jboss/envers/reader/FirstLevelCache.java
trunk/src/test/org/jboss/envers/test/integration/cache/
trunk/src/test/org/jboss/envers/test/integration/cache/OneToManyCache.java
trunk/src/test/org/jboss/envers/test/integration/cache/OneToOneCache.java
trunk/src/test/org/jboss/envers/test/integration/cache/QueryCache.java
Modified:
trunk/resources/test/testng.xml
trunk/src/main/org/jboss/envers/entities/EntityInstantiator.java
trunk/src/main/org/jboss/envers/entities/mapper/relation/ToOneIdMapper.java
trunk/src/main/org/jboss/envers/reader/VersionsReaderImpl.java
trunk/src/main/org/jboss/envers/reader/VersionsReaderImplementor.java
trunk/src/main/org/jboss/envers/tools/ConcurrentReferenceHashMap.java
trunk/src/main/org/jboss/envers/tools/Tools.java
Log:
ENVERS-54: first level cache (versions-reader scoped)
Modified: trunk/resources/test/testng.xml
===================================================================
--- trunk/resources/test/testng.xml 2008-09-26 15:33:14 UTC (rev 172)
+++ trunk/resources/test/testng.xml 2008-10-01 10:26:59 UTC (rev 173)
@@ -4,6 +4,7 @@
+
Modified: trunk/src/main/org/jboss/envers/entities/EntityInstantiator.java
===================================================================
--- trunk/src/main/org/jboss/envers/entities/EntityInstantiator.java 2008-09-26 15:33:14 UTC (rev 172)
+++ trunk/src/main/org/jboss/envers/entities/EntityInstantiator.java 2008-10-01 10:26:59 UTC (rev 173)
@@ -63,6 +63,18 @@
entityName = type;
}
+ // First mapping the primary key
+ IdMapper idMapper = verCfg.getEntCfg().get(entityName).getIdMapper();
+ Map originalId = (Map) versionsEntity.get(verCfg.getVerEntCfg().getOriginalIdPropName());
+
+ Object primaryKey = idMapper.mapToIdFromMap(originalId);
+
+ // Checking if the entity is in cache
+ if (versionsReader.getFirstLevelCache().contains(entityName, revision, primaryKey)) {
+ return versionsReader.getFirstLevelCache().get(entityName, revision, primaryKey);
+ }
+
+ // If it is not in the cache, creating a new entity instance
Object ret;
try {
Class> cls = ReflectionTools.loadClass(entityName);
@@ -71,11 +83,10 @@
throw new VersionsException(e);
}
- IdMapper idMapper = verCfg.getEntCfg().get(entityName).getIdMapper();
- Map originalId = (Map) versionsEntity.get(verCfg.getVerEntCfg().getOriginalIdPropName());
+ // Putting the newly created entity instance into the first level cache, in case a one-to-one bidirectional
+ // relation is present (which is eagerly loaded).
+ versionsReader.getFirstLevelCache().put(entityName, revision, primaryKey, ret);
- Object primaryKey = idMapper.mapToIdFromMap(originalId);
-
verCfg.getEntCfg().get(entityName).getPropertyMapper().mapToEntityFromMap(verCfg, ret, versionsEntity, primaryKey,
versionsReader, revision);
idMapper.mapToEntityFromMap(ret, originalId);
Modified: trunk/src/main/org/jboss/envers/entities/mapper/relation/ToOneIdMapper.java
===================================================================
--- trunk/src/main/org/jboss/envers/entities/mapper/relation/ToOneIdMapper.java 2008-09-26 15:33:14 UTC (rev 172)
+++ trunk/src/main/org/jboss/envers/entities/mapper/relation/ToOneIdMapper.java 2008-10-01 10:26:59 UTC (rev 173)
@@ -71,10 +71,14 @@
if (entityId == null) {
value = null;
} else {
- Class> entityClass = ReflectionTools.loadClass(referencedEntityName);
+ if (versionsReader.getFirstLevelCache().contains(referencedEntityName, revision, entityId)) {
+ value = versionsReader.getFirstLevelCache().get(referencedEntityName, revision, entityId);
+ } else {
+ Class> entityClass = ReflectionTools.loadClass(referencedEntityName);
- value = versionsReader.getSessionImplementor().getFactory().getEntityPersister(referencedEntityName).
- createProxy(null, new ToOneDelegateSessionImplementor(versionsReader, entityClass, entityId, revision));
+ value = versionsReader.getSessionImplementor().getFactory().getEntityPersister(referencedEntityName).
+ createProxy(null, new ToOneDelegateSessionImplementor(versionsReader, entityClass, entityId, revision));
+ }
}
Setter setter = ReflectionTools.getSetter(obj.getClass(), propertyName);
@@ -82,9 +86,9 @@
}
public List mapCollectionChanges(String referencingPropertyName,
- PersistentCollection newColl,
- Serializable oldColl,
- Serializable id) {
+ PersistentCollection newColl,
+ Serializable oldColl,
+ Serializable id) {
return null;
}
}
Added: trunk/src/main/org/jboss/envers/reader/FirstLevelCache.java
===================================================================
--- trunk/src/main/org/jboss/envers/reader/FirstLevelCache.java (rev 0)
+++ trunk/src/main/org/jboss/envers/reader/FirstLevelCache.java 2008-10-01 10:26:59 UTC (rev 173)
@@ -0,0 +1,32 @@
+package org.jboss.envers.reader;
+
+import org.jboss.envers.tools.Triple;
+import static org.jboss.envers.tools.Triple.*;
+import static org.jboss.envers.tools.Tools.newHashMap;
+
+import java.util.Map;
+
+/**
+ * First level cache for versioned entities, versions reader-scoped. Each entity is uniquely identified by a
+ * revision number and entity id.
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class FirstLevelCache {
+ private final Map, Object> cache;
+
+ public FirstLevelCache() {
+ cache = newHashMap();
+ }
+
+ public Object get(String entityName, Number revision, Object id) {
+ return cache.get(make(entityName, revision, id));
+ }
+
+ public void put(String entityName, Number revision, Object id, Object entity) {
+ cache.put(make(entityName, revision, id), entity);
+ }
+
+ public boolean contains(String entityName, Number revision, Object id) {
+ return cache.containsKey(make(entityName, revision, id));
+ }
+}
Modified: trunk/src/main/org/jboss/envers/reader/VersionsReaderImpl.java
===================================================================
--- trunk/src/main/org/jboss/envers/reader/VersionsReaderImpl.java 2008-09-26 15:33:14 UTC (rev 172)
+++ trunk/src/main/org/jboss/envers/reader/VersionsReaderImpl.java 2008-10-01 10:26:59 UTC (rev 173)
@@ -46,12 +46,15 @@
private final VersionsConfiguration verCfg;
private final SessionImplementor sessionImplementor;
private final Session session;
+ private final FirstLevelCache firstLevelCache;
public VersionsReaderImpl(VersionsConfiguration verCfg, Session session,
SessionImplementor sessionImplementor) {
this.verCfg = verCfg;
this.sessionImplementor = sessionImplementor;
this.session = session;
+
+ firstLevelCache = new FirstLevelCache();
}
private void checkSession() {
@@ -68,6 +71,10 @@
return session;
}
+ public FirstLevelCache getFirstLevelCache() {
+ return firstLevelCache;
+ }
+
@SuppressWarnings({"unchecked"})
public T find(Class cls, Object primaryKey, Number revision) throws
IllegalArgumentException, NotVersionedException, IllegalStateException {
@@ -83,14 +90,22 @@
throw new NotVersionedException(entityName, entityName + " is not versioned!");
}
+ if (firstLevelCache.contains(entityName, revision, primaryKey)) {
+ return (T) firstLevelCache.get(entityName, revision, primaryKey);
+ }
+
+ Object result;
try {
- return (T) createQuery().forEntitiesAtRevision(cls, revision)
+ // The result is put into the cache by the entity instantiator called from the query
+ result = createQuery().forEntitiesAtRevision(cls, revision)
.add(VersionsRestrictions.idEq(primaryKey)).getSingleResult();
} catch (NoResultException e) {
- return null;
+ result = null;
} catch (NonUniqueResultException e) {
throw new VersionsException(e);
}
+
+ return (T) result;
}
@SuppressWarnings({"unchecked"})
Modified: trunk/src/main/org/jboss/envers/reader/VersionsReaderImplementor.java
===================================================================
--- trunk/src/main/org/jboss/envers/reader/VersionsReaderImplementor.java 2008-09-26 15:33:14 UTC (rev 172)
+++ trunk/src/main/org/jboss/envers/reader/VersionsReaderImplementor.java 2008-10-01 10:26:59 UTC (rev 173)
@@ -32,4 +32,5 @@
public interface VersionsReaderImplementor extends VersionsReader {
SessionImplementor getSessionImplementor();
Session getSession();
+ FirstLevelCache getFirstLevelCache();
}
Modified: trunk/src/main/org/jboss/envers/tools/ConcurrentReferenceHashMap.java
===================================================================
--- trunk/src/main/org/jboss/envers/tools/ConcurrentReferenceHashMap.java 2008-09-26 15:33:14 UTC (rev 172)
+++ trunk/src/main/org/jboss/envers/tools/ConcurrentReferenceHashMap.java 2008-10-01 10:26:59 UTC (rev 173)
@@ -263,6 +263,7 @@
static interface KeyReference {
int keyHash();
+ Object keyRef();
}
/**
@@ -270,13 +271,17 @@
*/
static final class WeakKeyReference extends WeakReference implements KeyReference {
final int hash;
- WeakKeyReference(K key, int hash, ReferenceQueue refQueue) {
+ WeakKeyReference(K key, int hash, ReferenceQueue refQueue) {
super(key, refQueue);
this.hash = hash;
}
public final int keyHash() {
return hash;
}
+
+ public final Object keyRef() {
+ return this;
+ }
}
/**
@@ -284,15 +289,54 @@
*/
static final class SoftKeyReference extends SoftReference implements KeyReference {
final int hash;
- SoftKeyReference(K key, int hash, ReferenceQueue refQueue) {
+ SoftKeyReference(K key, int hash, ReferenceQueue refQueue) {
super(key, refQueue);
this.hash = hash;
}
public final int keyHash() {
return hash;
}
+
+ public final Object keyRef() {
+ return this;
+ }
}
+ static final class WeakValueReference extends WeakReference implements KeyReference {
+ final Object keyRef;
+ final int hash;
+ WeakValueReference(V value, Object keyRef, int hash, ReferenceQueue refQueue) {
+ super(value, refQueue);
+ this.keyRef = keyRef;
+ this.hash = hash;
+ }
+
+ public final int keyHash() {
+ return hash;
+ }
+
+ public final Object keyRef() {
+ return keyRef;
+ }
+ }
+
+ static final class SoftValueReference extends SoftReference implements KeyReference {
+ final Object keyRef;
+ final int hash;
+ SoftValueReference(V value, Object keyRef, int hash, ReferenceQueue refQueue) {
+ super(value, refQueue);
+ this.keyRef = keyRef;
+ this.hash = hash;
+ }
+ public final int keyHash() {
+ return hash;
+ }
+
+ public final Object keyRef() {
+ return keyRef;
+ }
+ }
+
/**
* ConcurrentReferenceHashMap list entry. Note that this is never exported
* out as a user-visible Map.Entry.
@@ -310,45 +354,39 @@
final int hash;
volatile Object valueRef;
final HashEntry next;
- final ReferenceType keyType;
- final ReferenceType valueType;
HashEntry(K key, int hash, HashEntry next, V value,
ReferenceType keyType, ReferenceType valueType,
- ReferenceQueue refQueue) {
- this.keyType = keyType;
- this.valueType = valueType;
- this.keyRef = newKeyReference(key, hash, refQueue);
+ ReferenceQueue refQueue) {
this.hash = hash;
this.next = next;
- this.valueRef = newValueReference(value);
+ this.keyRef = newKeyReference(key, keyType, refQueue);
+ this.valueRef = newValueReference(value, valueType, refQueue);
}
- final Object newKeyReference(K key, int hash, ReferenceQueue refQueue) {
- switch (keyType) {
- case WEAK:
- return new WeakKeyReference(key, hash, refQueue);
- case SOFT:
- return new SoftKeyReference(key, hash, refQueue);
- }
+ final Object newKeyReference(K key, ReferenceType keyType,
+ ReferenceQueue refQueue) {
+ if (keyType == ReferenceType.WEAK)
+ return new WeakKeyReference(key, hash, refQueue);
+ if (keyType == ReferenceType.SOFT)
+ return new SoftKeyReference(key, hash, refQueue);
return key;
}
- final Object newValueReference(V value) {
- switch (valueType) {
- case WEAK:
- return new WeakReference(value);
- case SOFT:
- return new SoftReference(value);
- }
+ final Object newValueReference(V value, ReferenceType valueType,
+ ReferenceQueue refQueue) {
+ if (valueType == ReferenceType.WEAK)
+ return new WeakValueReference(value, keyRef, hash, refQueue);
+ if (valueType == ReferenceType.SOFT)
+ return new SoftValueReference(value, keyRef, hash, refQueue);
return value;
}
@SuppressWarnings("unchecked")
final K key() {
- if (keyRef instanceof Reference)
+ if (keyRef instanceof KeyReference)
return ((Reference)keyRef).get();
return (K) keyRef;
@@ -360,14 +398,14 @@
@SuppressWarnings("unchecked")
final V dereferenceValue(Object value) {
- if (value instanceof Reference)
+ if (value instanceof KeyReference)
return ((Reference)value).get();
return (V) value;
}
- final void setValue(V value) {
- this.valueRef = newValueReference(value);
+ final void setValue(V value, ReferenceType valueType, ReferenceQueue refQueue) {
+ this.valueRef = newValueReference(value, valueType, refQueue);
}
@SuppressWarnings("unchecked")
@@ -460,7 +498,7 @@
* The collected weak-key reference queue for this segment.
* This should be (re)initialized whenever table is assigned,
*/
- transient volatile ReferenceQueue refQueue;
+ transient volatile ReferenceQueue refQueue;
final ReferenceType keyType;
@@ -493,7 +531,7 @@
void setTable(HashEntry[] newTable) {
threshold = (int)(newTable.length * loadFactor);
table = newTable;
- refQueue = new ReferenceQueue();
+ refQueue = new ReferenceQueue();
}
/**
@@ -525,7 +563,7 @@
}
}
- /* Specialized implementations of mapToMapFromEntity methods */
+ /* Specialized implementations of map methods */
V get(Object key, int hash) {
if (count != 0) { // read-volatile
@@ -589,7 +627,7 @@
boolean replaced = false;
if (e != null && oldValue.equals(e.value())) {
replaced = true;
- e.setValue(newValue);
+ e.setValue(newValue, valueType, refQueue);
}
return replaced;
} finally {
@@ -608,7 +646,7 @@
V oldValue = null;
if (e != null) {
oldValue = e.value();
- e.setValue(newValue);
+ e.setValue(newValue, valueType, refQueue);
}
return oldValue;
} finally {
@@ -639,7 +677,7 @@
if (e != null) {
oldValue = e.value();
if (!onlyIfAbsent)
- e.setValue(value);
+ e.setValue(value, valueType, refQueue);
}
else {
oldValue = null;
@@ -726,19 +764,19 @@
/**
* Remove; match on key only if value null, else match both.
*/
- V remove(Object key, int hash, Object value, boolean weakRemove) {
+ V remove(Object key, int hash, Object value, boolean refRemove) {
lock();
try {
- if (!weakRemove)
+ if (!refRemove)
removeStale();
int c = count - 1;
HashEntry[] tab = table;
int index = hash & (tab.length - 1);
HashEntry first = tab[index];
HashEntry e = first;
- // a weak remove operation compares the WeakReference instance
- while (e != null && (!weakRemove || key != e.keyRef)
- && (e.hash != hash || !keyEq(key, e.key())))
+ // a ref remove operation compares the Reference instance
+ while (e != null && key != e.keyRef
+ && (refRemove || hash != e.hash || !keyEq(key, e.key())))
e = e.next;
V oldValue = null;
@@ -771,12 +809,9 @@
}
final void removeStale() {
- if (keyType == ReferenceType.STRONG)
- return;
-
KeyReference ref;
while ((ref = (KeyReference) refQueue.poll()) != null) {
- remove(ref, ref.keyHash(), null, true);
+ remove(ref.keyRef(), ref.keyHash(), null, true);
}
}
@@ -789,7 +824,7 @@
tab[i] = null;
++modCount;
// replace the reference queue to avoid unnecessary stale cleanups
- refQueue = new ReferenceQueue();
+ refQueue = new ReferenceQueue();
count = 0; // write-volatile
} finally {
unlock();
Modified: trunk/src/main/org/jboss/envers/tools/Tools.java
===================================================================
--- trunk/src/main/org/jboss/envers/tools/Tools.java 2008-09-26 15:33:14 UTC (rev 172)
+++ trunk/src/main/org/jboss/envers/tools/Tools.java 2008-10-01 10:26:59 UTC (rev 173)
@@ -21,14 +21,16 @@
*/
package org.jboss.envers.tools;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Iterator;
+import java.util.*;
/**
* @author Adam Warski (adam at warski dot org)
*/
public class Tools {
+ public static Map newHashMap() {
+ return new HashMap();
+ }
+
public static boolean objectsEqual(Object obj1, Object obj2) {
if (obj1 == null) {
return obj2 == null;
Copied: trunk/src/test/org/jboss/envers/test/integration/cache/OneToManyCache.java (from rev 148, trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSet.java)
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/cache/OneToManyCache.java (rev 0)
+++ trunk/src/test/org/jboss/envers/test/integration/cache/OneToManyCache.java 2008-10-01 10:26:59 UTC (rev 173)
@@ -0,0 +1,120 @@
+package org.jboss.envers.test.integration.cache;
+
+import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.entities.onetomany.SetRefEdEntity;
+import org.jboss.envers.test.entities.onetomany.SetRefIngEntity;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+import org.hibernate.ejb.Ejb3Configuration;
+
+import javax.persistence.EntityManager;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+ at SuppressWarnings({"ObjectEquality"})
+public class OneToManyCache extends AbstractEntityTest {
+ private Integer ed1_id;
+ private Integer ed2_id;
+
+ private Integer ing1_id;
+ private Integer ing2_id;
+
+ public void configure(Ejb3Configuration cfg) {
+ cfg.addAnnotatedClass(SetRefEdEntity.class);
+ cfg.addAnnotatedClass(SetRefIngEntity.class);
+ }
+
+ @BeforeClass(dependsOnMethods = "init")
+ public void initData() {
+ EntityManager em = getEntityManager();
+
+ SetRefEdEntity ed1 = new SetRefEdEntity(1, "data_ed_1");
+ SetRefEdEntity ed2 = new SetRefEdEntity(2, "data_ed_2");
+
+ SetRefIngEntity ing1 = new SetRefIngEntity(1, "data_ing_1");
+ SetRefIngEntity ing2 = new SetRefIngEntity(2, "data_ing_2");
+
+ // Revision 1
+ em.getTransaction().begin();
+
+ em.persist(ed1);
+ em.persist(ed2);
+
+ ing1.setReference(ed1);
+ ing2.setReference(ed1);
+
+ em.persist(ing1);
+ em.persist(ing2);
+
+ em.getTransaction().commit();
+
+ // Revision 2
+ em.getTransaction().begin();
+
+ ing1 = em.find(SetRefIngEntity.class, ing1.getId());
+ ing2 = em.find(SetRefIngEntity.class, ing2.getId());
+ ed2 = em.find(SetRefEdEntity.class, ed2.getId());
+
+ ing1.setReference(ed2);
+ ing2.setReference(ed2);
+
+ em.getTransaction().commit();
+
+ //
+
+ ed1_id = ed1.getId();
+ ed2_id = ed2.getId();
+
+ ing1_id = ing1.getId();
+ ing2_id = ing2.getId();
+ }
+
+ @Test
+ public void testCacheReferenceAccessAfterFind() {
+ SetRefEdEntity ed1_rev1 = getVersionsReader().find(SetRefEdEntity.class, ed1_id, 1);
+
+ SetRefIngEntity ing1_rev1 = getVersionsReader().find(SetRefIngEntity.class, ing1_id, 1);
+ SetRefIngEntity ing2_rev1 = getVersionsReader().find(SetRefIngEntity.class, ing2_id, 1);
+
+ // It should be exactly the same object
+ assert ing1_rev1.getReference() == ed1_rev1;
+ assert ing2_rev1.getReference() == ed1_rev1;
+ }
+
+ @Test
+ public void testCacheReferenceAccessAfterCollectionAccessRev1() {
+ SetRefEdEntity ed1_rev1 = getVersionsReader().find(SetRefEdEntity.class, ed1_id, 1);
+
+ // It should be exactly the same object
+ assert ed1_rev1.getReffering().size() == 2;
+ for (SetRefIngEntity setRefIngEntity : ed1_rev1.getReffering()) {
+ assert setRefIngEntity.getReference() == ed1_rev1;
+ }
+ }
+
+ @Test
+ public void testCacheReferenceAccessAfterCollectionAccessRev2() {
+ SetRefEdEntity ed2_rev2 = getVersionsReader().find(SetRefEdEntity.class, ed2_id, 2);
+
+ assert ed2_rev2.getReffering().size() == 2;
+ for (SetRefIngEntity setRefIngEntity : ed2_rev2.getReffering()) {
+ assert setRefIngEntity.getReference() == ed2_rev2;
+ }
+ }
+
+ @Test
+ public void testCacheFindAfterCollectionAccessRev1() {
+ SetRefEdEntity ed1_rev1 = getVersionsReader().find(SetRefEdEntity.class, ed1_id, 1);
+
+ // Reading the collection
+ assert ed1_rev1.getReffering().size() == 2;
+
+ SetRefIngEntity ing1_rev1 = getVersionsReader().find(SetRefIngEntity.class, ing1_id, 1);
+ SetRefIngEntity ing2_rev1 = getVersionsReader().find(SetRefIngEntity.class, ing2_id, 1);
+
+ for (SetRefIngEntity setRefIngEntity : ed1_rev1.getReffering()) {
+ assert setRefIngEntity == ing1_rev1 || setRefIngEntity == ing2_rev1;
+ }
+ }
+}
\ No newline at end of file
Property changes on: trunk/src/test/org/jboss/envers/test/integration/cache/OneToManyCache.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/src/test/org/jboss/envers/test/integration/cache/OneToOneCache.java (from rev 148, trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/Bidirectional.java)
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/cache/OneToOneCache.java (rev 0)
+++ trunk/src/test/org/jboss/envers/test/integration/cache/OneToOneCache.java 2008-10-01 10:26:59 UTC (rev 173)
@@ -0,0 +1,80 @@
+package org.jboss.envers.test.integration.cache;
+
+import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.integration.onetoone.bidirectional.BiRefEdEntity;
+import org.jboss.envers.test.integration.onetoone.bidirectional.BiRefIngEntity;
+import org.hibernate.ejb.Ejb3Configuration;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import javax.persistence.EntityManager;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+ at SuppressWarnings({"ObjectEquality"})
+public class OneToOneCache extends AbstractEntityTest {
+ private Integer ed1_id;
+ private Integer ed2_id;
+
+ private Integer ing1_id;
+
+ public void configure(Ejb3Configuration cfg) {
+ cfg.addAnnotatedClass(BiRefEdEntity.class);
+ cfg.addAnnotatedClass(BiRefIngEntity.class);
+ }
+
+ @BeforeClass(dependsOnMethods = "init")
+ public void initData() {
+ BiRefEdEntity ed1 = new BiRefEdEntity(1, "data_ed_1");
+ BiRefEdEntity ed2 = new BiRefEdEntity(2, "data_ed_2");
+
+ BiRefIngEntity ing1 = new BiRefIngEntity(3, "data_ing_1");
+
+ // Revision 1
+ EntityManager em = getEntityManager();
+ em.getTransaction().begin();
+
+ ing1.setReference(ed1);
+
+ em.persist(ed1);
+ em.persist(ed2);
+
+ em.persist(ing1);
+
+ em.getTransaction().commit();
+
+ // Revision 2
+ em.getTransaction().begin();
+
+ ing1 = em.find(BiRefIngEntity.class, ing1.getId());
+ ed2 = em.find(BiRefEdEntity.class, ed2.getId());
+
+ ing1.setReference(ed2);
+
+ em.getTransaction().commit();
+
+ //
+
+ ed1_id = ed1.getId();
+ ed2_id = ed2.getId();
+
+ ing1_id = ing1.getId();
+ }
+
+ @Test
+ public void testCacheReferenceAccessAfterFindRev1() {
+ BiRefEdEntity ed1_rev1 = getVersionsReader().find(BiRefEdEntity.class, ed1_id, 1);
+ BiRefIngEntity ing1_rev1 = getVersionsReader().find(BiRefIngEntity.class, ing1_id, 1);
+
+ assert ing1_rev1.getReference() == ed1_rev1;
+ }
+
+ @Test
+ public void testCacheReferenceAccessAfterFindRev2() {
+ BiRefEdEntity ed2_rev2 = getVersionsReader().find(BiRefEdEntity.class, ed2_id, 2);
+ BiRefIngEntity ing1_rev2 = getVersionsReader().find(BiRefIngEntity.class, ing1_id, 2);
+
+ assert ing1_rev2.getReference() == ed2_rev2;
+ }
+}
\ No newline at end of file
Property changes on: trunk/src/test/org/jboss/envers/test/integration/cache/OneToOneCache.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/src/test/org/jboss/envers/test/integration/cache/QueryCache.java (from rev 148, trunk/src/test/org/jboss/envers/test/integration/basic/Simple.java)
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/cache/QueryCache.java (rev 0)
+++ trunk/src/test/org/jboss/envers/test/integration/cache/QueryCache.java 2008-10-01 10:26:59 UTC (rev 173)
@@ -0,0 +1,63 @@
+package org.jboss.envers.test.integration.cache;
+
+import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.entities.IntTestEntity;
+import org.hibernate.ejb.Ejb3Configuration;
+import org.testng.annotations.Test;
+import org.testng.annotations.BeforeClass;
+
+import javax.persistence.EntityManager;
+import java.util.List;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+ at SuppressWarnings({"ObjectEquality"})
+public class QueryCache extends AbstractEntityTest {
+ private Integer id1;
+
+ public void configure(Ejb3Configuration cfg) {
+ cfg.addAnnotatedClass(IntTestEntity.class);
+ }
+
+ @BeforeClass(dependsOnMethods = "init")
+ public void initData() {
+ // Revision 1
+ EntityManager em = getEntityManager();
+ em.getTransaction().begin();
+ IntTestEntity ite = new IntTestEntity(10);
+ em.persist(ite);
+ id1 = ite.getId();
+ em.getTransaction().commit();
+
+ // Revision 2
+ em.getTransaction().begin();
+ ite = em.find(IntTestEntity.class, id1);
+ ite.setNumber(20);
+ em.getTransaction().commit();
+ }
+
+ @Test
+ public void testCacheFindAfterRevisionsOfEntityQuery() {
+ List entsFromQuery = getVersionsReader().createQuery()
+ .forRevisionsOfEntity(IntTestEntity.class, true, false)
+ .getResultList();
+
+ IntTestEntity entFromFindRev1 = getVersionsReader().find(IntTestEntity.class, id1, 1);
+ IntTestEntity entFromFindRev2 = getVersionsReader().find(IntTestEntity.class, id1, 2);
+
+ assert entFromFindRev1 == entsFromQuery.get(0);
+ assert entFromFindRev2 == entsFromQuery.get(1);
+ }
+
+ @Test
+ public void testCacheFindAfterEntitiesAtRevisionQuery() {
+ IntTestEntity entFromQuery = (IntTestEntity) getVersionsReader().createQuery()
+ .forEntitiesAtRevision(IntTestEntity.class, 1)
+ .getSingleResult();
+
+ IntTestEntity entFromFind = getVersionsReader().find(IntTestEntity.class, id1, 1);
+
+ assert entFromFind == entFromQuery;
+ }
+}
\ No newline at end of file
Property changes on: trunk/src/test/org/jboss/envers/test/integration/cache/QueryCache.java
___________________________________________________________________
Name: svn:mergeinfo
+
From jboss-envers-commits at lists.jboss.org Mon Oct 13 06:49:55 2008
From: jboss-envers-commits at lists.jboss.org (jboss-envers-commits at lists.jboss.org)
Date: Mon, 13 Oct 2008 06:49:55 -0400
Subject: [jboss-envers-commits] JBoss Envers SVN: r174 - in trunk: lib/db
and 38 other directories.
Message-ID:
Author: adamw
Date: 2008-10-13 06:49:54 -0400 (Mon, 13 Oct 2008)
New Revision: 174
Added:
trunk/lib/db/postgresql.jar
trunk/src/test/org/jboss/envers/test/AbstractEntityTest.java
trunk/src/test/org/jboss/envers/test/entities/UnversionedStrTestEntity.java
trunk/src/test/org/jboss/envers/test/performance/
trunk/src/test/org/jboss/envers/test/performance/AbstractPerformanceTest.java
trunk/src/test/org/jboss/envers/test/performance/InsertsPerformance.java
trunk/src/test/org/jboss/envers/test/performance/UpdatesPerformance.java
Removed:
trunk/src/test/org/jboss/envers/test/integration/AbstractEntityTest.java
Modified:
trunk/envers.iml
trunk/lib/hibernate-3.3.0/hibernate3.jar
trunk/resources/test/hibernate.test.cfg.xml
trunk/src/main/org/jboss/envers/configuration/metadata/MetadataTools.java
trunk/src/test/org/jboss/envers/test/integration/basic/Delete.java
trunk/src/test/org/jboss/envers/test/integration/basic/GlobalVersioned.java
trunk/src/test/org/jboss/envers/test/integration/basic/ManyOperationsInTransaction.java
trunk/src/test/org/jboss/envers/test/integration/basic/NotVersioned.java
trunk/src/test/org/jboss/envers/test/integration/basic/NullProperties.java
trunk/src/test/org/jboss/envers/test/integration/basic/Simple.java
trunk/src/test/org/jboss/envers/test/integration/basic/SingleOperationInTransaction.java
trunk/src/test/org/jboss/envers/test/integration/basic/UnversionedPropertiesChange.java
trunk/src/test/org/jboss/envers/test/integration/basic/UnversionedProperty.java
trunk/src/test/org/jboss/envers/test/integration/cache/OneToManyCache.java
trunk/src/test/org/jboss/envers/test/integration/cache/OneToOneCache.java
trunk/src/test/org/jboss/envers/test/integration/cache/QueryCache.java
trunk/src/test/org/jboss/envers/test/integration/collection/EnumSet.java
trunk/src/test/org/jboss/envers/test/integration/collection/StringList.java
trunk/src/test/org/jboss/envers/test/integration/collection/StringMap.java
trunk/src/test/org/jboss/envers/test/integration/collection/StringSet.java
trunk/src/test/org/jboss/envers/test/integration/collection/mapkey/ComponentMapKey.java
trunk/src/test/org/jboss/envers/test/integration/collection/mapkey/IdMapKey.java
trunk/src/test/org/jboss/envers/test/integration/components/Components.java
trunk/src/test/org/jboss/envers/test/integration/customtype/CompositeCustom.java
trunk/src/test/org/jboss/envers/test/integration/customtype/ParametrizedCustom.java
trunk/src/test/org/jboss/envers/test/integration/data/Dates.java
trunk/src/test/org/jboss/envers/test/integration/data/Enums.java
trunk/src/test/org/jboss/envers/test/integration/data/Lobs.java
trunk/src/test/org/jboss/envers/test/integration/data/Serializables.java
trunk/src/test/org/jboss/envers/test/integration/flush/AbstractFlushTest.java
trunk/src/test/org/jboss/envers/test/integration/ids/CompositeIds.java
trunk/src/test/org/jboss/envers/test/integration/inheritance/single/ChildVersioning.java
trunk/src/test/org/jboss/envers/test/integration/inheritance/single/ParentVersioning.java
trunk/src/test/org/jboss/envers/test/integration/inheritance/single/childrelation/ChildReferencing.java
trunk/src/test/org/jboss/envers/test/integration/inheritance/single/relation/PolymorphicCollection.java
trunk/src/test/org/jboss/envers/test/integration/manytomany/BasicList.java
trunk/src/test/org/jboss/envers/test/integration/manytomany/BasicMap.java
trunk/src/test/org/jboss/envers/test/integration/manytomany/BasicSet.java
trunk/src/test/org/jboss/envers/test/integration/manytomany/ternary/TernaryMap.java
trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniList.java
trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniMap.java
trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniSet.java
trunk/src/test/org/jboss/envers/test/integration/naming/BasicNaming.java
trunk/src/test/org/jboss/envers/test/integration/naming/JoinNaming.java
trunk/src/test/org/jboss/envers/test/integration/naming/OneToManyUnidirectionalNaming.java
trunk/src/test/org/jboss/envers/test/integration/naming/VersionsJoinTableNaming.java
trunk/src/test/org/jboss/envers/test/integration/naming/ids/JoinEmbIdNaming.java
trunk/src/test/org/jboss/envers/test/integration/naming/ids/JoinMulIdNaming.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicCollection.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicList.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSet.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSetWithEmbId.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSetWithMulId.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSetWithNullsDelete.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/BidirectionalMapKey.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicDetachedList.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicDetachedSet.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicDetachedSetWithEmbId.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicDetachedSetWithMulId.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicJoinColumnSet.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/DataChangesDetachedSet.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/DoubleDetachedSet.java
trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/Bidirectional.java
trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/Bidirectional2.java
trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/BidirectionalNoNulls.java
trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/ids/EmbIdBidirectional.java
trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/ids/MulIdBidirectional.java
trunk/src/test/org/jboss/envers/test/integration/onetoone/unidirectional/Unidirectional.java
trunk/src/test/org/jboss/envers/test/integration/onetoone/unidirectional/UnidirectionalWithNulls.java
trunk/src/test/org/jboss/envers/test/integration/properties/UnversionedOptimisticLockingField.java
trunk/src/test/org/jboss/envers/test/integration/properties/VersionsProperties.java
trunk/src/test/org/jboss/envers/test/integration/query/AggregateQuery.java
trunk/src/test/org/jboss/envers/test/integration/query/CustomRevEntityQuery.java
trunk/src/test/org/jboss/envers/test/integration/query/DeletedEntities.java
trunk/src/test/org/jboss/envers/test/integration/query/MaximalizePropertyQuery.java
trunk/src/test/org/jboss/envers/test/integration/query/OrderByLimitQuery.java
trunk/src/test/org/jboss/envers/test/integration/query/RevisionConstraintQuery.java
trunk/src/test/org/jboss/envers/test/integration/query/SimpleQuery.java
trunk/src/test/org/jboss/envers/test/integration/query/ids/EmbIdOneToManyQuery.java
trunk/src/test/org/jboss/envers/test/integration/query/ids/MulIdOneToManyQuery.java
trunk/src/test/org/jboss/envers/test/integration/reventity/Custom.java
trunk/src/test/org/jboss/envers/test/integration/reventity/CustomBoxed.java
trunk/src/test/org/jboss/envers/test/integration/reventity/Inherited.java
trunk/src/test/org/jboss/envers/test/integration/reventity/Listener.java
trunk/src/test/org/jboss/envers/test/integration/reventity/LongRevNumber.java
trunk/src/test/org/jboss/envers/test/integration/revfordate/RevisionForDate.java
trunk/src/test/org/jboss/envers/test/integration/sameids/SameIds.java
trunk/src/test/org/jboss/envers/test/integration/secondary/BasicSecondary.java
trunk/src/test/org/jboss/envers/test/integration/secondary/NamingSecondary.java
trunk/src/test/org/jboss/envers/test/integration/secondary/ids/EmbIdSecondary.java
trunk/src/test/org/jboss/envers/test/integration/secondary/ids/MulIdSecondary.java
trunk/src/test/org/jboss/envers/test/integration/superclass/MappedSubclassing.java
Log:
Simple performance tests
Modified: trunk/envers.iml
===================================================================
--- trunk/envers.iml 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/envers.iml 2008-10-13 10:49:54 UTC (rev 174)
@@ -53,6 +53,15 @@
+
+
+
+
+
+
+
+
+
Added: trunk/lib/db/postgresql.jar
===================================================================
(Binary files differ)
Property changes on: trunk/lib/db/postgresql.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/lib/hibernate-3.3.0/hibernate3.jar
===================================================================
(Binary files differ)
Modified: trunk/resources/test/hibernate.test.cfg.xml
===================================================================
--- trunk/resources/test/hibernate.test.cfg.xml 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/resources/test/hibernate.test.cfg.xml 2008-10-13 10:49:54 UTC (rev 174)
@@ -6,12 +6,20 @@
+ create-drop
+
org.hibernate.dialect.MySQLDialect
- create-drop
jdbc:mysql:///hibernate_tests?useUnicode=true&characterEncoding=UTF-8
com.mysql.jdbc.Driver
root
+
+
+
false
true
Modified: trunk/src/main/org/jboss/envers/configuration/metadata/MetadataTools.java
===================================================================
--- trunk/src/main/org/jboss/envers/configuration/metadata/MetadataTools.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/main/org/jboss/envers/configuration/metadata/MetadataTools.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -40,6 +40,8 @@
Element generator_mapping = id_mapping.addElement("generator");
generator_mapping.addAttribute("class", "native");
+ /*generator_mapping.addAttribute("class", "sequence");
+ generator_mapping.addElement("param").addAttribute("name", "sequence").setText("custom");*/
return id_mapping;
}
Copied: trunk/src/test/org/jboss/envers/test/AbstractEntityTest.java (from rev 148, trunk/src/test/org/jboss/envers/test/integration/AbstractEntityTest.java)
===================================================================
--- trunk/src/test/org/jboss/envers/test/AbstractEntityTest.java (rev 0)
+++ trunk/src/test/org/jboss/envers/test/AbstractEntityTest.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -0,0 +1,55 @@
+package org.jboss.envers.test;
+
+import org.hibernate.ejb.Ejb3Configuration;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+import org.jboss.envers.VersionsReader;
+import org.jboss.envers.VersionsReaderFactory;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import java.io.IOException;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public abstract class AbstractEntityTest {
+ private EntityManagerFactory emf;
+ private EntityManager entityManager;
+ private VersionsReader versionsReader;
+ private Ejb3Configuration cfg;
+
+ public abstract void configure(Ejb3Configuration cfg);
+
+ @BeforeMethod
+ public void newEntityManager() {
+ if (entityManager != null) {
+ entityManager.close();
+ }
+
+ entityManager = emf.createEntityManager();
+ versionsReader = VersionsReaderFactory.get(entityManager);
+ }
+
+ @BeforeClass
+ public void init() throws IOException {
+ cfg = new Ejb3Configuration();
+ cfg.configure("hibernate.test.cfg.xml");
+ configure(cfg);
+ emf = cfg.buildEntityManagerFactory();
+
+ newEntityManager();
+ }
+
+ public EntityManager getEntityManager() {
+ return entityManager;
+ }
+
+ public VersionsReader getVersionsReader() {
+ return versionsReader;
+ }
+
+ public Ejb3Configuration getCfg() {
+ return cfg;
+ }
+}
Copied: trunk/src/test/org/jboss/envers/test/entities/UnversionedStrTestEntity.java (from rev 148, trunk/src/test/org/jboss/envers/test/entities/StrTestEntity.java)
===================================================================
--- trunk/src/test/org/jboss/envers/test/entities/UnversionedStrTestEntity.java (rev 0)
+++ trunk/src/test/org/jboss/envers/test/entities/UnversionedStrTestEntity.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -0,0 +1,70 @@
+package org.jboss.envers.test.entities;
+
+import org.jboss.envers.Versioned;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.GeneratedValue;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+ at Entity
+public class UnversionedStrTestEntity {
+ @Id
+ @GeneratedValue
+ private Integer id;
+
+ private String str;
+
+ public UnversionedStrTestEntity() {
+ }
+
+ public UnversionedStrTestEntity(String str, Integer id) {
+ this.str = str;
+ this.id = id;
+ }
+
+ public UnversionedStrTestEntity(String str) {
+ this.str = str;
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getStr() {
+ return str;
+ }
+
+ public void setStr(String str) {
+ this.str = str;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof UnversionedStrTestEntity)) return false;
+
+ UnversionedStrTestEntity that = (UnversionedStrTestEntity) o;
+
+ if (id != null ? !id.equals(that.id) : that.id != null) return false;
+ if (str != null ? !str.equals(that.str) : that.str != null) return false;
+
+ return true;
+ }
+
+ public int hashCode() {
+ int result;
+ result = (id != null ? id.hashCode() : 0);
+ result = 31 * result + (str != null ? str.hashCode() : 0);
+ return result;
+ }
+
+ public String toString() {
+ return "USTE(id = " + id + ", str = " + str + ")";
+ }
+}
\ No newline at end of file
Property changes on: trunk/src/test/org/jboss/envers/test/entities/UnversionedStrTestEntity.java
___________________________________________________________________
Name: svn:mergeinfo
+
Deleted: trunk/src/test/org/jboss/envers/test/integration/AbstractEntityTest.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/AbstractEntityTest.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/AbstractEntityTest.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,55 +0,0 @@
-package org.jboss.envers.test.integration;
-
-import org.hibernate.ejb.Ejb3Configuration;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-import org.jboss.envers.VersionsReader;
-import org.jboss.envers.VersionsReaderFactory;
-
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import java.io.IOException;
-
-/**
- * @author Adam Warski (adam at warski dot org)
- */
-public abstract class AbstractEntityTest {
- private EntityManagerFactory emf;
- private EntityManager entityManager;
- private VersionsReader versionsReader;
- private Ejb3Configuration cfg;
-
- public abstract void configure(Ejb3Configuration cfg);
-
- @BeforeMethod
- public void newEntityManager() {
- if (entityManager != null) {
- entityManager.close();
- }
-
- entityManager = emf.createEntityManager();
- versionsReader = VersionsReaderFactory.get(entityManager);
- }
-
- @BeforeClass
- public void init() throws IOException {
- cfg = new Ejb3Configuration();
- cfg.configure("hibernate.test.cfg.xml");
- configure(cfg);
- emf = cfg.buildEntityManagerFactory();
-
- newEntityManager();
- }
-
- public EntityManager getEntityManager() {
- return entityManager;
- }
-
- public VersionsReader getVersionsReader() {
- return versionsReader;
- }
-
- public Ejb3Configuration getCfg() {
- return cfg;
- }
-}
Modified: trunk/src/test/org/jboss/envers/test/integration/basic/Delete.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/basic/Delete.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/basic/Delete.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.basic;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
Modified: trunk/src/test/org/jboss/envers/test/integration/basic/GlobalVersioned.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/basic/GlobalVersioned.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/basic/GlobalVersioned.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.basic;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/basic/ManyOperationsInTransaction.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/basic/ManyOperationsInTransaction.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/basic/ManyOperationsInTransaction.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.basic;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
Modified: trunk/src/test/org/jboss/envers/test/integration/basic/NotVersioned.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/basic/NotVersioned.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/basic/NotVersioned.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.basic;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.exception.NotVersionedException;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.Test;
Modified: trunk/src/test/org/jboss/envers/test/integration/basic/NullProperties.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/basic/NullProperties.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/basic/NullProperties.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.basic;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/basic/Simple.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/basic/Simple.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/basic/Simple.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.basic;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.IntTestEntity;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.Test;
Modified: trunk/src/test/org/jboss/envers/test/integration/basic/SingleOperationInTransaction.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/basic/SingleOperationInTransaction.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/basic/SingleOperationInTransaction.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.basic;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.exception.RevisionDoesNotExistException;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.Test;
Modified: trunk/src/test/org/jboss/envers/test/integration/basic/UnversionedPropertiesChange.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/basic/UnversionedPropertiesChange.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/basic/UnversionedPropertiesChange.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.basic;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
Modified: trunk/src/test/org/jboss/envers/test/integration/basic/UnversionedProperty.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/basic/UnversionedProperty.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/basic/UnversionedProperty.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -4,7 +4,7 @@
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.jboss.envers.test.entities.UnversionedEntity;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import javax.persistence.EntityManager;
import java.util.Arrays;
Modified: trunk/src/test/org/jboss/envers/test/integration/cache/OneToManyCache.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/cache/OneToManyCache.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/cache/OneToManyCache.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.cache;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.onetomany.SetRefEdEntity;
import org.jboss.envers.test.entities.onetomany.SetRefIngEntity;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/cache/OneToOneCache.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/cache/OneToOneCache.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/cache/OneToOneCache.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.cache;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.integration.onetoone.bidirectional.BiRefEdEntity;
import org.jboss.envers.test.integration.onetoone.bidirectional.BiRefIngEntity;
import org.hibernate.ejb.Ejb3Configuration;
Modified: trunk/src/test/org/jboss/envers/test/integration/cache/QueryCache.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/cache/QueryCache.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/cache/QueryCache.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.cache;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.IntTestEntity;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.Test;
Modified: trunk/src/test/org/jboss/envers/test/integration/collection/EnumSet.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/collection/EnumSet.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/collection/EnumSet.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.collection;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.tools.TestTools;
import org.jboss.envers.test.entities.collection.EnumSetEntity;
import org.testng.annotations.BeforeClass;
@@ -9,7 +9,6 @@
import javax.persistence.EntityManager;
import java.util.Arrays;
-import java.util.Collections;
import static org.jboss.envers.test.entities.collection.EnumSetEntity.*;
Modified: trunk/src/test/org/jboss/envers/test/integration/collection/StringList.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/collection/StringList.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/collection/StringList.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.collection;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.tools.TestTools;
import org.jboss.envers.test.entities.collection.StringListEntity;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/collection/StringMap.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/collection/StringMap.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/collection/StringMap.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.collection;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.tools.TestTools;
import org.jboss.envers.test.entities.collection.StringMapEntity;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/collection/StringSet.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/collection/StringSet.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/collection/StringSet.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.collection;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.tools.TestTools;
import org.jboss.envers.test.entities.collection.StringSetEntity;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/collection/mapkey/ComponentMapKey.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/collection/mapkey/ComponentMapKey.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/collection/mapkey/ComponentMapKey.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.collection.mapkey;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.tools.TestTools;
import org.jboss.envers.test.entities.components.ComponentTestEntity;
import org.jboss.envers.test.entities.components.Component1;
Modified: trunk/src/test/org/jboss/envers/test/integration/collection/mapkey/IdMapKey.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/collection/mapkey/IdMapKey.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/collection/mapkey/IdMapKey.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.collection.mapkey;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.tools.TestTools;
import org.jboss.envers.test.entities.StrTestEntity;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/components/Components.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/components/Components.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/components/Components.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.components;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.components.Component1;
import org.jboss.envers.test.entities.components.Component2;
import org.jboss.envers.test.entities.components.ComponentTestEntity;
Modified: trunk/src/test/org/jboss/envers/test/integration/customtype/CompositeCustom.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/customtype/CompositeCustom.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/customtype/CompositeCustom.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.customtype;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.customtype.CompositeCustomTypeEntity;
import org.jboss.envers.test.entities.customtype.Component;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/customtype/ParametrizedCustom.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/customtype/ParametrizedCustom.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/customtype/ParametrizedCustom.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.customtype;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.customtype.ParametrizedCustomTypeEntity;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
Modified: trunk/src/test/org/jboss/envers/test/integration/data/Dates.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/data/Dates.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/data/Dates.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.data;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/data/Enums.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/data/Enums.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/data/Enums.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.data;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/data/Lobs.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/data/Lobs.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/data/Lobs.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.data;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/data/Serializables.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/data/Serializables.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/data/Serializables.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,13 +1,12 @@
package org.jboss.envers.test.integration.data;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import javax.persistence.EntityManager;
import java.util.Arrays;
-import java.util.Date;
/**
* @author Adam Warski (adam at warski dot org)
Modified: trunk/src/test/org/jboss/envers/test/integration/flush/AbstractFlushTest.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/flush/AbstractFlushTest.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/flush/AbstractFlushTest.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.flush;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.StrTestEntity;
import org.hibernate.FlushMode;
import org.hibernate.Session;
Modified: trunk/src/test/org/jboss/envers/test/integration/ids/CompositeIds.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/ids/CompositeIds.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/ids/CompositeIds.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.ids;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.ids.EmbId;
import org.jboss.envers.test.entities.ids.MulId;
import org.jboss.envers.test.entities.ids.EmbIdTestEntity;
Modified: trunk/src/test/org/jboss/envers/test/integration/inheritance/single/ChildVersioning.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/inheritance/single/ChildVersioning.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/inheritance/single/ChildVersioning.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -3,7 +3,7 @@
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import javax.persistence.EntityManager;
import java.util.Arrays;
Modified: trunk/src/test/org/jboss/envers/test/integration/inheritance/single/ParentVersioning.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/inheritance/single/ParentVersioning.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/inheritance/single/ParentVersioning.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -3,7 +3,7 @@
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import javax.persistence.EntityManager;
import java.util.Arrays;
Modified: trunk/src/test/org/jboss/envers/test/integration/inheritance/single/childrelation/ChildReferencing.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/inheritance/single/childrelation/ChildReferencing.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/inheritance/single/childrelation/ChildReferencing.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -3,7 +3,7 @@
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.tools.TestTools;
import javax.persistence.EntityManager;
Modified: trunk/src/test/org/jboss/envers/test/integration/inheritance/single/relation/PolymorphicCollection.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/inheritance/single/relation/PolymorphicCollection.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/inheritance/single/relation/PolymorphicCollection.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -3,7 +3,7 @@
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.tools.TestTools;
import javax.persistence.EntityManager;
Modified: trunk/src/test/org/jboss/envers/test/integration/manytomany/BasicList.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/manytomany/BasicList.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/manytomany/BasicList.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.manytomany;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.manytomany.ListOwningEntity;
import org.jboss.envers.test.entities.manytomany.ListOwnedEntity;
import org.jboss.envers.test.tools.TestTools;
Modified: trunk/src/test/org/jboss/envers/test/integration/manytomany/BasicMap.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/manytomany/BasicMap.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/manytomany/BasicMap.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.manytomany;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.manytomany.MapOwningEntity;
import org.jboss.envers.test.entities.manytomany.MapOwnedEntity;
import org.jboss.envers.test.tools.TestTools;
Modified: trunk/src/test/org/jboss/envers/test/integration/manytomany/BasicSet.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/manytomany/BasicSet.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/manytomany/BasicSet.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.manytomany;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.manytomany.SetOwningEntity;
import org.jboss.envers.test.entities.manytomany.SetOwnedEntity;
import org.jboss.envers.test.tools.TestTools;
Modified: trunk/src/test/org/jboss/envers/test/integration/manytomany/ternary/TernaryMap.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/manytomany/ternary/TernaryMap.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/manytomany/ternary/TernaryMap.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.manytomany.ternary;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.StrTestEntity;
import org.jboss.envers.test.entities.IntTestEntity;
import org.jboss.envers.test.tools.TestTools;
Modified: trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniList.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniList.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniList.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.manytomany.unidirectional;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.manytomany.unidirectional.ListUniEntity;
import org.jboss.envers.test.entities.StrTestEntity;
import org.jboss.envers.test.tools.TestTools;
Modified: trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniMap.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniMap.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniMap.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.manytomany.unidirectional;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.manytomany.unidirectional.MapUniEntity;
import org.jboss.envers.test.entities.StrTestEntity;
import org.jboss.envers.test.tools.TestTools;
Modified: trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniSet.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniSet.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniSet.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.manytomany.unidirectional;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.manytomany.unidirectional.SetUniEntity;
import org.jboss.envers.test.entities.StrTestEntity;
import org.jboss.envers.test.tools.TestTools;
Modified: trunk/src/test/org/jboss/envers/test/integration/naming/BasicNaming.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/naming/BasicNaming.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/naming/BasicNaming.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.naming;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
Modified: trunk/src/test/org/jboss/envers/test/integration/naming/JoinNaming.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/naming/JoinNaming.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/naming/JoinNaming.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.naming;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.hibernate.mapping.Column;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/naming/OneToManyUnidirectionalNaming.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/naming/OneToManyUnidirectionalNaming.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/naming/OneToManyUnidirectionalNaming.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.naming;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.StrTestEntity;
import org.jboss.envers.test.tools.TestTools;
import org.hibernate.ejb.Ejb3Configuration;
Modified: trunk/src/test/org/jboss/envers/test/integration/naming/VersionsJoinTableNaming.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/naming/VersionsJoinTableNaming.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/naming/VersionsJoinTableNaming.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.naming;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.StrTestEntity;
import org.jboss.envers.test.tools.TestTools;
import org.hibernate.ejb.Ejb3Configuration;
Modified: trunk/src/test/org/jboss/envers/test/integration/naming/ids/JoinEmbIdNaming.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/naming/ids/JoinEmbIdNaming.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/naming/ids/JoinEmbIdNaming.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.naming.ids;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.hibernate.mapping.Column;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/naming/ids/JoinMulIdNaming.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/naming/ids/JoinMulIdNaming.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/naming/ids/JoinMulIdNaming.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.naming.ids;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.hibernate.mapping.Column;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicCollection.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicCollection.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicCollection.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetomany;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.onetomany.CollectionRefEdEntity;
import org.jboss.envers.test.entities.onetomany.CollectionRefIngEntity;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicList.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicList.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicList.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetomany;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.onetomany.ListRefEdEntity;
import org.jboss.envers.test.entities.onetomany.ListRefIngEntity;
import org.jboss.envers.test.tools.TestTools;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSet.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSet.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSet.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetomany;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.onetomany.SetRefEdEntity;
import org.jboss.envers.test.entities.onetomany.SetRefIngEntity;
import org.jboss.envers.test.tools.TestTools;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSetWithEmbId.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSetWithEmbId.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSetWithEmbId.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetomany;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.ids.EmbId;
import org.jboss.envers.test.entities.onetomany.ids.SetRefEdEmbIdEntity;
import org.jboss.envers.test.entities.onetomany.ids.SetRefIngEmbIdEntity;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSetWithMulId.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSetWithMulId.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSetWithMulId.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetomany;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.ids.MulId;
import org.jboss.envers.test.entities.onetomany.ids.SetRefEdMulIdEntity;
import org.jboss.envers.test.entities.onetomany.ids.SetRefIngMulIdEntity;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSetWithNullsDelete.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSetWithNullsDelete.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSetWithNullsDelete.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetomany;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.onetomany.SetRefEdEntity;
import org.jboss.envers.test.entities.onetomany.SetRefIngEntity;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetomany/BidirectionalMapKey.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetomany/BidirectionalMapKey.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetomany/BidirectionalMapKey.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetomany;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.tools.TestTools;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicDetachedList.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicDetachedList.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicDetachedList.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetomany.detached;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.onetomany.detached.ListRefCollEntity;
import org.jboss.envers.test.entities.StrTestEntity;
import org.jboss.envers.test.tools.TestTools;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicDetachedSet.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicDetachedSet.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicDetachedSet.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetomany.detached;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.onetomany.detached.SetRefCollEntity;
import org.jboss.envers.test.entities.StrTestEntity;
import org.jboss.envers.test.tools.TestTools;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicDetachedSetWithEmbId.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicDetachedSetWithEmbId.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicDetachedSetWithEmbId.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetomany.detached;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.onetomany.detached.ids.SetRefCollEntityEmbId;
import org.jboss.envers.test.entities.ids.EmbIdTestEntity;
import org.jboss.envers.test.entities.ids.EmbId;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicDetachedSetWithMulId.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicDetachedSetWithMulId.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicDetachedSetWithMulId.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetomany.detached;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.onetomany.detached.ids.SetRefCollEntityMulId;
import org.jboss.envers.test.entities.ids.MulIdTestEntity;
import org.jboss.envers.test.entities.ids.MulId;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicJoinColumnSet.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicJoinColumnSet.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/BasicJoinColumnSet.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetomany.detached;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.StrTestEntity;
import org.jboss.envers.test.entities.onetomany.detached.SetJoinColumnRefCollEntity;
import org.jboss.envers.test.tools.TestTools;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/DataChangesDetachedSet.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/DataChangesDetachedSet.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/DataChangesDetachedSet.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetomany.detached;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.onetomany.detached.SetRefCollEntity;
import org.jboss.envers.test.entities.StrTestEntity;
import org.jboss.envers.test.tools.TestTools;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/DoubleDetachedSet.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/DoubleDetachedSet.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetomany/detached/DoubleDetachedSet.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetomany.detached;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.onetomany.detached.DoubleSetRefCollEntity;
import org.jboss.envers.test.entities.StrTestEntity;
import org.jboss.envers.test.tools.TestTools;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/Bidirectional.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/Bidirectional.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/Bidirectional.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetoone.bidirectional;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/Bidirectional2.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/Bidirectional2.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/Bidirectional2.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetoone.bidirectional;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/BidirectionalNoNulls.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/BidirectionalNoNulls.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/BidirectionalNoNulls.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetoone.bidirectional;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/ids/EmbIdBidirectional.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/ids/EmbIdBidirectional.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/ids/EmbIdBidirectional.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetoone.bidirectional.ids;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.ids.EmbId;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/ids/MulIdBidirectional.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/ids/MulIdBidirectional.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetoone/bidirectional/ids/MulIdBidirectional.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetoone.bidirectional.ids;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.ids.MulId;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetoone/unidirectional/Unidirectional.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetoone/unidirectional/Unidirectional.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetoone/unidirectional/Unidirectional.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetoone.unidirectional;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
Modified: trunk/src/test/org/jboss/envers/test/integration/onetoone/unidirectional/UnidirectionalWithNulls.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetoone/unidirectional/UnidirectionalWithNulls.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/onetoone/unidirectional/UnidirectionalWithNulls.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.onetoone.unidirectional;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
Modified: trunk/src/test/org/jboss/envers/test/integration/properties/UnversionedOptimisticLockingField.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/properties/UnversionedOptimisticLockingField.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/properties/UnversionedOptimisticLockingField.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -2,14 +2,13 @@
import java.util.Arrays;
import java.util.Iterator;
-import java.util.Map;
import javax.persistence.EntityManager;
import org.hibernate.ejb.Ejb3Configuration;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Property;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
Modified: trunk/src/test/org/jboss/envers/test/integration/properties/VersionsProperties.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/properties/VersionsProperties.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/properties/VersionsProperties.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.properties;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/query/AggregateQuery.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/query/AggregateQuery.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/query/AggregateQuery.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.query;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.IntTestEntity;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/query/CustomRevEntityQuery.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/query/CustomRevEntityQuery.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/query/CustomRevEntityQuery.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.query;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.StrIntTestEntity;
import org.jboss.envers.test.entities.reventity.CustomRevEntity;
import org.jboss.envers.query.VersionsRestrictions;
Modified: trunk/src/test/org/jboss/envers/test/integration/query/DeletedEntities.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/query/DeletedEntities.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/query/DeletedEntities.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.query;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.StrIntTestEntity;
import org.jboss.envers.query.VersionsRestrictions;
import org.jboss.envers.RevisionType;
Modified: trunk/src/test/org/jboss/envers/test/integration/query/MaximalizePropertyQuery.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/query/MaximalizePropertyQuery.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/query/MaximalizePropertyQuery.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.query;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.StrIntTestEntity;
import org.jboss.envers.query.VersionsRestrictions;
import org.jboss.envers.query.RevisionProperty;
Modified: trunk/src/test/org/jboss/envers/test/integration/query/OrderByLimitQuery.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/query/OrderByLimitQuery.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/query/OrderByLimitQuery.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.query;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.IntTestEntity;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/query/RevisionConstraintQuery.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/query/RevisionConstraintQuery.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/query/RevisionConstraintQuery.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.query;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.StrIntTestEntity;
import org.jboss.envers.query.VersionsRestrictions;
import org.jboss.envers.query.RevisionProperty;
Modified: trunk/src/test/org/jboss/envers/test/integration/query/SimpleQuery.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/query/SimpleQuery.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/query/SimpleQuery.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.query;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.StrIntTestEntity;
import org.jboss.envers.test.tools.TestTools;
import org.jboss.envers.query.VersionsRestrictions;
Modified: trunk/src/test/org/jboss/envers/test/integration/query/ids/EmbIdOneToManyQuery.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/query/ids/EmbIdOneToManyQuery.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/query/ids/EmbIdOneToManyQuery.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,7 +1,7 @@
package org.jboss.envers.test.integration.query.ids;
import org.hibernate.ejb.Ejb3Configuration;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.onetomany.ids.SetRefEdEmbIdEntity;
import org.jboss.envers.test.entities.onetomany.ids.SetRefIngEmbIdEntity;
import org.jboss.envers.test.entities.ids.EmbId;
Modified: trunk/src/test/org/jboss/envers/test/integration/query/ids/MulIdOneToManyQuery.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/query/ids/MulIdOneToManyQuery.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/query/ids/MulIdOneToManyQuery.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,7 +1,7 @@
package org.jboss.envers.test.integration.query.ids;
import org.hibernate.ejb.Ejb3Configuration;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.tools.TestTools;
import org.jboss.envers.test.entities.ids.MulId;
import org.jboss.envers.test.entities.onetomany.ids.SetRefEdMulIdEntity;
Modified: trunk/src/test/org/jboss/envers/test/integration/reventity/Custom.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/reventity/Custom.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/reventity/Custom.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.reventity;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.StrTestEntity;
import org.jboss.envers.test.entities.reventity.CustomRevEntity;
import org.jboss.envers.exception.RevisionDoesNotExistException;
Modified: trunk/src/test/org/jboss/envers/test/integration/reventity/CustomBoxed.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/reventity/CustomBoxed.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/reventity/CustomBoxed.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.reventity;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.StrTestEntity;
import org.jboss.envers.exception.RevisionDoesNotExistException;
import org.jboss.envers.VersionsReader;
Modified: trunk/src/test/org/jboss/envers/test/integration/reventity/Inherited.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/reventity/Inherited.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/reventity/Inherited.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.reventity;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.StrTestEntity;
import org.jboss.envers.exception.RevisionDoesNotExistException;
import org.jboss.envers.VersionsReader;
Modified: trunk/src/test/org/jboss/envers/test/integration/reventity/Listener.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/reventity/Listener.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/reventity/Listener.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.reventity;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.StrTestEntity;
import org.jboss.envers.exception.RevisionDoesNotExistException;
import org.jboss.envers.VersionsReader;
Modified: trunk/src/test/org/jboss/envers/test/integration/reventity/LongRevNumber.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/reventity/LongRevNumber.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/reventity/LongRevNumber.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,15 +1,13 @@
package org.jboss.envers.test.integration.reventity;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.StrTestEntity;
-import org.jboss.envers.exception.RevisionDoesNotExistException;
import org.jboss.envers.VersionsReader;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.persistence.EntityManager;
-import java.util.Date;
import java.util.Arrays;
/**
Modified: trunk/src/test/org/jboss/envers/test/integration/revfordate/RevisionForDate.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/revfordate/RevisionForDate.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/revfordate/RevisionForDate.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.revfordate;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.StrTestEntity;
import org.jboss.envers.exception.RevisionDoesNotExistException;
import org.jboss.envers.VersionsReader;
Modified: trunk/src/test/org/jboss/envers/test/integration/sameids/SameIds.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/sameids/SameIds.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/sameids/SameIds.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.sameids;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/secondary/BasicSecondary.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/secondary/BasicSecondary.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/secondary/BasicSecondary.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.secondary;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.hibernate.mapping.Join;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/secondary/NamingSecondary.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/secondary/NamingSecondary.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/secondary/NamingSecondary.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.secondary;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.hibernate.mapping.Join;
import org.testng.annotations.BeforeClass;
Modified: trunk/src/test/org/jboss/envers/test/integration/secondary/ids/EmbIdSecondary.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/secondary/ids/EmbIdSecondary.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/secondary/ids/EmbIdSecondary.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.secondary.ids;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.ids.EmbId;
import org.hibernate.ejb.Ejb3Configuration;
import org.hibernate.mapping.Join;
Modified: trunk/src/test/org/jboss/envers/test/integration/secondary/ids/MulIdSecondary.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/secondary/ids/MulIdSecondary.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/secondary/ids/MulIdSecondary.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.secondary.ids;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.jboss.envers.test.entities.ids.MulId;
import org.hibernate.ejb.Ejb3Configuration;
import org.hibernate.mapping.Join;
Modified: trunk/src/test/org/jboss/envers/test/integration/superclass/MappedSubclassing.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/superclass/MappedSubclassing.java 2008-10-01 10:26:59 UTC (rev 173)
+++ trunk/src/test/org/jboss/envers/test/integration/superclass/MappedSubclassing.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -1,6 +1,6 @@
package org.jboss.envers.test.integration.superclass;
-import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.AbstractEntityTest;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
Added: trunk/src/test/org/jboss/envers/test/performance/AbstractPerformanceTest.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/performance/AbstractPerformanceTest.java (rev 0)
+++ trunk/src/test/org/jboss/envers/test/performance/AbstractPerformanceTest.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -0,0 +1,59 @@
+package org.jboss.envers.test.performance;
+
+import org.jboss.envers.test.AbstractEntityTest;
+import org.jboss.envers.tools.Pair;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public abstract class AbstractPerformanceTest extends AbstractEntityTest {
+ protected String getSecondsString(long milliseconds) {
+ return (milliseconds/1000) + "." + (milliseconds%1000);
+ }
+
+ protected long measureTime(Runnable r) {
+ long start = System.currentTimeMillis();
+ r.run();
+ return System.currentTimeMillis() - start;
+ }
+
+ protected abstract Pair doTest();
+
+ protected abstract String getName();
+
+ private long totalUnversioned;
+ private long totalVersioned;
+
+ private void printResults(long unversioned, long versioned) {
+ System.out.println("Unversioned: " + getSecondsString(unversioned));
+ System.out.println(" Versioned: " + getSecondsString(versioned));
+ System.out.println(" Delta: " + getSecondsString(versioned-unversioned));
+ System.out.println(" Factor: " + (double)versioned/unversioned);
+ }
+
+ private void test(boolean count) {
+ Pair result = doTest();
+ long unversioned = result.getFirst();
+ long versioned = result.getSecond();
+
+ totalUnversioned += unversioned;
+ totalVersioned += versioned;
+
+ printResults(unversioned, versioned);
+ }
+
+ public void run(int numberOfRuns) {
+ for (int i=0; i<=numberOfRuns; i++) {
+ System.out.println("");
+ System.out.println(getName() + " TEST, RUN " + i);
+ test(i != 0);
+ }
+
+ totalUnversioned /= numberOfRuns;
+ totalVersioned /= numberOfRuns;
+
+ System.out.println("");
+ System.out.println(getName() + " TEST, AVERAGE");
+ printResults(totalUnversioned, totalVersioned);
+ }
+}
Added: trunk/src/test/org/jboss/envers/test/performance/InsertsPerformance.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/performance/InsertsPerformance.java (rev 0)
+++ trunk/src/test/org/jboss/envers/test/performance/InsertsPerformance.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -0,0 +1,56 @@
+package org.jboss.envers.test.performance;
+
+import org.jboss.envers.test.entities.StrTestEntity;
+import org.jboss.envers.test.entities.UnversionedStrTestEntity;
+import org.jboss.envers.tools.Pair;
+import org.hibernate.ejb.Ejb3Configuration;
+
+import javax.persistence.EntityManager;
+import java.io.IOException;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class InsertsPerformance extends AbstractPerformanceTest {
+ public void configure(Ejb3Configuration cfg) {
+ cfg.addAnnotatedClass(StrTestEntity.class);
+ cfg.addAnnotatedClass(UnversionedStrTestEntity.class);
+ }
+
+ private final static int NUMBER_INSERTS = 1000;
+
+ private void insertUnversioned() {
+ EntityManager entityManager = getEntityManager();
+ for (int i=0; i doTest() {
+ long unversioned = measureTime(new Runnable() { public void run() { insertUnversioned(); } });
+ long versioned = measureTime(new Runnable() { public void run() { insertVersioned(); } });
+
+ return Pair.make(unversioned, versioned);
+ }
+
+ protected String getName() {
+ return "INSERTS";
+ }
+
+ public static void main(String[] args) throws IOException {
+ InsertsPerformance insertsPerformance = new InsertsPerformance();
+ insertsPerformance.init();
+ insertsPerformance.run(10);
+ }
+}
Added: trunk/src/test/org/jboss/envers/test/performance/UpdatesPerformance.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/performance/UpdatesPerformance.java (rev 0)
+++ trunk/src/test/org/jboss/envers/test/performance/UpdatesPerformance.java 2008-10-13 10:49:54 UTC (rev 174)
@@ -0,0 +1,87 @@
+package org.jboss.envers.test.performance;
+
+import org.jboss.envers.test.entities.StrTestEntity;
+import org.jboss.envers.test.entities.UnversionedStrTestEntity;
+import org.jboss.envers.tools.Pair;
+import org.hibernate.ejb.Ejb3Configuration;
+
+import javax.persistence.EntityManager;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class UpdatesPerformance extends AbstractPerformanceTest {
+ public void configure(Ejb3Configuration cfg) {
+ cfg.addAnnotatedClass(StrTestEntity.class);
+ cfg.addAnnotatedClass(UnversionedStrTestEntity.class);
+ }
+
+ private final static int NUMBER_UPDATES = 1000;
+ private final static int NUMBER_ENTITIES = 10;
+
+ private Random random = new Random();
+
+ private List unversioned_ids = new ArrayList();
+ private List versioned_ids = new ArrayList();
+
+ public void setup() {
+ EntityManager entityManager = getEntityManager();
+ entityManager.getTransaction().begin();
+ for (int i=0; i doTest() {
+ long unversioned = measureTime(new Runnable() { public void run() { updateUnversioned(); } });
+ long versioned = measureTime(new Runnable() { public void run() { updateVersioned(); } });
+
+ return Pair.make(unversioned, versioned);
+ }
+
+ protected String getName() {
+ return "UPDATES";
+ }
+
+ public static void main(String[] args) throws IOException {
+ UpdatesPerformance updatesPerformance = new UpdatesPerformance();
+ updatesPerformance.init();
+ updatesPerformance.setup();
+ updatesPerformance.run(10);
+ }
+}
\ No newline at end of file
From jboss-envers-commits at lists.jboss.org Mon Oct 13 08:15:18 2008
From: jboss-envers-commits at lists.jboss.org (jboss-envers-commits at lists.jboss.org)
Date: Mon, 13 Oct 2008 08:15:18 -0400
Subject: [jboss-envers-commits] JBoss Envers SVN: r175 - in trunk:
src/test/org/jboss/envers/test and 1 other directories.
Message-ID:
Author: adamw
Date: 2008-10-13 08:15:18 -0400 (Mon, 13 Oct 2008)
New Revision: 175
Added:
trunk/src/test/org/jboss/envers/test/various/
trunk/src/test/org/jboss/envers/test/various/HsqlTest.java
Modified:
trunk/resources/demo/META-INF/persistence.xml
Log:
Failing HsqlDB test
Modified: trunk/resources/demo/META-INF/persistence.xml
===================================================================
--- trunk/resources/demo/META-INF/persistence.xml 2008-10-13 10:49:54 UTC (rev 174)
+++ trunk/resources/demo/META-INF/persistence.xml 2008-10-13 12:15:18 UTC (rev 175)
@@ -4,15 +4,23 @@
org.hibernate.ejb.HibernatePersistence
org.jboss.envers.demo.Address
org.jboss.envers.demo.Person
+
-
-
-
-
+
+
+
+
+
+
+
Added: trunk/src/test/org/jboss/envers/test/various/HsqlTest.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/various/HsqlTest.java (rev 0)
+++ trunk/src/test/org/jboss/envers/test/various/HsqlTest.java 2008-10-13 12:15:18 UTC (rev 175)
@@ -0,0 +1,129 @@
+package org.jboss.envers.test.various;
+
+import org.jboss.envers.demo.Person;
+import org.jboss.envers.demo.Address;
+import org.hibernate.Session;
+
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+import javax.persistence.EntityManager;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.HashSet;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class HsqlTest {
+ /*
+ Query generated by Hibernate from an old demo, when criteria was used: (works)
+
+ select
+ this_.id as id2_0_,
+ this_._revision as column2_2_0_,
+ this_._revision_type as column3_2_0_,
+ this_.name as name2_0_,
+ this_.surname as surname2_0_,
+ this_.address_id as address6_2_0_
+ from
+ Person_versions this_
+ where
+ this_._revision = (
+ select
+ max(e2_._revision) as y0_
+ from
+ Person_versions e2_
+ where
+ e2_._revision<=1
+ and this_.id=e2_.id
+ )
+ and this_.id=1
+
+ Query generated by Hibernate from a new demo, when query generator is used:
+ (throws Column not found: ID in statement because of "person_ver0_.id=person_ver1_.id")
+
+ select
+ person_ver0_.id as id3_,
+ person_ver0_._revision as column2_3_,
+ person_ver0_._revision_type as column3_3_,
+ person_ver0_.name as name3_,
+ person_ver0_.surname as surname3_,
+ person_ver0_.address_id as address6_3_
+ from
+ Person_versions person_ver0_
+ where
+ person_ver0_._revision_type<>2
+ and person_ver0_._revision=(
+ select
+ max(person_ver1_._revision)
+ from
+ Person_versions person_ver1_
+ where
+ person_ver1_._revision<=1
+ and person_ver0_.id=person_ver1_.id
+ )
+ and person_ver0_.id=1
+
+ Both queries work from HSQL console
+ (to run: java -cp hsqldb.jar org.hsqldb.util.DatabaseManager -user sa -url jdbc:hsqldb:file:/tmp/_versions_demo.db)
+ */
+
+ public static void main(String[] argv) {
+ Map configurationOverrides = new HashMap();
+ EntityManagerFactory emf = Persistence.createEntityManagerFactory("ConsolePU", configurationOverrides);
+ EntityManager entityManager = emf.createEntityManager();
+
+ populateTestData(entityManager);
+
+ entityManager.getTransaction().begin();
+
+ Session sesion = (Session) entityManager.getDelegate();
+ System.out.println(sesion.createQuery(
+ "select e from org.jboss.envers.demo.Person_versions e " +
+ "where " +
+ "e.originalId._revision.id =" +
+ "(select max(e2.originalId._revision.id) " +
+ "from org.jboss.envers.demo.Person_versions e2 " +
+ "where e.originalId.id = :p0) ")
+ .setParameter("p0", 1)
+ .list());
+
+ entityManager.getTransaction().commit();
+
+ entityManager.close();
+ emf.close();
+ }
+
+ private static void populateTestData(EntityManager entityManager) {
+ entityManager.getTransaction().begin();
+
+ if (!hasData(entityManager)) {
+ Person p1 = new Person();
+
+ Address a1 = new Address();
+
+ p1.setName("James");
+ p1.setSurname("Bond");
+ p1.setAddress(a1);
+
+ a1.setStreetName("MI6");
+ a1.setHouseNumber(18);
+ a1.setFlatNumber(25);
+ a1.setPersons(new HashSet());
+ a1.getPersons().add(p1);
+
+ entityManager.persist(a1);
+
+ entityManager.persist(p1);
+
+ System.out.println("The DB was populated with example data.");
+ }
+
+ entityManager.getTransaction().commit();
+ }
+
+ private static boolean hasData(EntityManager entityManager) {
+ return (((Long) entityManager.createQuery("select count(a) from Address a").getSingleResult()) +
+ ((Long) entityManager.createQuery("select count(p) from Person p").getSingleResult())) > 0;
+ }
+}
From jboss-envers-commits at lists.jboss.org Mon Oct 13 08:27:53 2008
From: jboss-envers-commits at lists.jboss.org (jboss-envers-commits at lists.jboss.org)
Date: Mon, 13 Oct 2008 08:27:53 -0400
Subject: [jboss-envers-commits] JBoss Envers SVN: r176 - in trunk:
src/demo/org/jboss/envers/demo and 1 other directory.
Message-ID:
Author: adamw
Date: 2008-10-13 08:27:53 -0400 (Mon, 13 Oct 2008)
New Revision: 176
Modified:
trunk/resources/demo/META-INF/persistence.xml
trunk/src/demo/org/jboss/envers/demo/TestConsole.java
Log:
Updating the demo to use new features
Modified: trunk/resources/demo/META-INF/persistence.xml
===================================================================
--- trunk/resources/demo/META-INF/persistence.xml 2008-10-13 12:15:18 UTC (rev 175)
+++ trunk/resources/demo/META-INF/persistence.xml 2008-10-13 12:27:53 UTC (rev 176)
@@ -19,8 +19,8 @@
-->
-
-
+
Modified: trunk/src/demo/org/jboss/envers/demo/TestConsole.java
===================================================================
--- trunk/src/demo/org/jboss/envers/demo/TestConsole.java 2008-10-13 12:15:18 UTC (rev 175)
+++ trunk/src/demo/org/jboss/envers/demo/TestConsole.java 2008-10-13 12:27:53 UTC (rev 176)
@@ -23,6 +23,8 @@
import org.jboss.envers.VersionsReader;
import org.jboss.envers.VersionsReaderFactory;
+import org.jboss.envers.DefaultRevisionEntity;
+import org.jboss.envers.query.VersionsRestrictions;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
@@ -82,15 +84,21 @@
private void printPersonHistory(StringBuilder sb, int personId) {
VersionsReader reader = VersionsReaderFactory.get(entityManager);
- List revisions = reader.getRevisions(Person.class, personId);
- if (revisions.size() == 0) {
+ List personHistory = reader.createQuery()
+ .forRevisionsOfEntity(Person.class, false, true)
+ .add(VersionsRestrictions.idEq(personId))
+ .getResultList();
+
+ if (personHistory.size() == 0) {
sb.append("A person with id ").append(personId).append(" does not exist.\n");
} else {
- for (Number revision : revisions) {
- sb.append("revision = ").append(revision).append(", ");
- printPerson(sb, reader.find(Person.class, personId, revision));
- sb.append(" (").append(reader.getRevisionDate(revision)).append(")\n");
+ for (Object historyObj : personHistory) {
+ Object[] history = (Object[]) historyObj;
+ DefaultRevisionEntity revision = (DefaultRevisionEntity) history[1];
+ sb.append("revision = ").append(revision.getId()).append(", ");
+ printPerson(sb, (Person) history[0]);
+ sb.append(" (").append(revision.getRevisionDate()).append(")\n");
}
}
}
@@ -213,21 +221,21 @@
private void printAddressHistory(StringBuilder sb, int addressId) {
VersionsReader reader = VersionsReaderFactory.get(entityManager);
- List revisions = reader.getRevisions(Address.class, addressId);
- sb.append("Please notice: changes in the collection of persons associated with ")
- .append("a given address aren't visible! Only changes to non-relations fields and ")
- .append("owned relations fields are shown. ")
- .append("However, querying for an address at a given revision and then retrieving ")
- .append("the persons will always give the correct result.\n\n");
+ List addressHistory = reader.createQuery()
+ .forRevisionsOfEntity(Address.class, false, true)
+ .add(VersionsRestrictions.idEq(addressId))
+ .getResultList();
- if (revisions.size() == 0) {
- sb.append("An address with id ").append(addressId).append(" does not exist.\n");
+ if (addressHistory.size() == 0) {
+ sb.append("A address with id ").append(addressId).append(" does not exist.\n");
} else {
- for (Number revision : revisions) {
- sb.append("revision = ").append(revision).append(", ");
- printAddress(sb, reader.find(Address.class, addressId, revision));
- sb.append(" (").append(reader.getRevisionDate(revision)).append(")\n");
+ for (Object historyObj : addressHistory) {
+ Object[] history = (Object[]) historyObj;
+ DefaultRevisionEntity revision = (DefaultRevisionEntity) history[1];
+ sb.append("revision = ").append(revision.getId()).append(", ");
+ printAddress(sb, (Address) history[0]);
+ sb.append(" (").append(revision.getRevisionDate()).append(")\n");
}
}
}
From jboss-envers-commits at lists.jboss.org Mon Oct 13 10:43:11 2008
From: jboss-envers-commits at lists.jboss.org (jboss-envers-commits at lists.jboss.org)
Date: Mon, 13 Oct 2008 10:43:11 -0400
Subject: [jboss-envers-commits] JBoss Envers SVN: r177 - in trunk/src:
main/org/jboss/envers/configuration and 2 other directories.
Message-ID:
Author: adamw
Date: 2008-10-13 10:43:11 -0400 (Mon, 13 Oct 2008)
New Revision: 177
Added:
trunk/src/test/org/jboss/envers/test/entities/reventity/CustomPropertyAccessRevEntity.java
trunk/src/test/org/jboss/envers/test/integration/reventity/CustomPropertyAccess.java
Modified:
trunk/src/main/org/jboss/envers/RevisionNumber.java
trunk/src/main/org/jboss/envers/RevisionTimestamp.java
trunk/src/main/org/jboss/envers/configuration/RevisionInfoConfiguration.java
Log:
ENVERS-58: revision name and timestamp annotations on a custom revision entity also allowed on getter methods + test
Modified: trunk/src/main/org/jboss/envers/RevisionNumber.java
===================================================================
--- trunk/src/main/org/jboss/envers/RevisionNumber.java 2008-10-13 12:27:53 UTC (rev 176)
+++ trunk/src/main/org/jboss/envers/RevisionNumber.java 2008-10-13 14:43:11 UTC (rev 177)
@@ -32,8 +32,9 @@
* of numbers. The value of this property won't be set by Envers. In most cases, this should be
* an auto-generated database-assigned primary id.
* @author Adam Warski (adam at warski dot org)
+ * @author Sanne Grinovero
*/
@Retention(RetentionPolicy.RUNTIME)
- at Target(ElementType.FIELD)
+ at Target({ElementType.METHOD, ElementType.FIELD})
public @interface RevisionNumber {
}
Modified: trunk/src/main/org/jboss/envers/RevisionTimestamp.java
===================================================================
--- trunk/src/main/org/jboss/envers/RevisionTimestamp.java 2008-10-13 12:27:53 UTC (rev 176)
+++ trunk/src/main/org/jboss/envers/RevisionTimestamp.java 2008-10-13 14:43:11 UTC (rev 177)
@@ -30,8 +30,9 @@
* Marks a property which will hold the timestamp of the revision in a revision entity, see
* {@link RevisionListener}. The value of this property will be automatically set by Envers.
* @author Adam Warski (adam at warski dot org)
+ * @author Sanne Grinovero
*/
@Retention(RetentionPolicy.RUNTIME)
- at Target(ElementType.FIELD)
+ at Target({ElementType.METHOD, ElementType.FIELD})
public @interface RevisionTimestamp {
}
Modified: trunk/src/main/org/jboss/envers/configuration/RevisionInfoConfiguration.java
===================================================================
--- trunk/src/main/org/jboss/envers/configuration/RevisionInfoConfiguration.java 2008-10-13 12:27:53 UTC (rev 176)
+++ trunk/src/main/org/jboss/envers/configuration/RevisionInfoConfiguration.java 2008-10-13 14:43:11 UTC (rev 177)
@@ -87,14 +87,10 @@
return rev_rel_mapping;
}
- private void searchForRevisionInfoCfg(YClass clazz, YReflectionManager reflectionManager,
- MutableBoolean revisionNumberFound, MutableBoolean revisionTimestampFound) {
- YClass superclazz = clazz.getSuperclass();
- if (!"java.lang.Object".equals(superclazz.getName())) {
- searchForRevisionInfoCfg(superclazz, reflectionManager, revisionNumberFound, revisionTimestampFound);
- }
-
- for (YProperty property : clazz.getDeclaredProperties("field")) {
+ private void searchForRevisionInfoCfgInProperties(YClass clazz, YReflectionManager reflectionManager,
+ MutableBoolean revisionNumberFound, MutableBoolean revisionTimestampFound,
+ String accessType) {
+ for (YProperty property : clazz.getDeclaredProperties(accessType)) {
RevisionNumber revisionNumber = property.getAnnotation(RevisionNumber.class);
RevisionTimestamp revisionTimestamp = property.getAnnotation(RevisionTimestamp.class);
@@ -139,6 +135,19 @@
}
}
+ private void searchForRevisionInfoCfg(YClass clazz, YReflectionManager reflectionManager,
+ MutableBoolean revisionNumberFound, MutableBoolean revisionTimestampFound) {
+ YClass superclazz = clazz.getSuperclass();
+ if (!"java.lang.Object".equals(superclazz.getName())) {
+ searchForRevisionInfoCfg(superclazz, reflectionManager, revisionNumberFound, revisionTimestampFound);
+ }
+
+ searchForRevisionInfoCfgInProperties(clazz, reflectionManager, revisionNumberFound, revisionTimestampFound,
+ "field");
+ searchForRevisionInfoCfgInProperties(clazz, reflectionManager, revisionNumberFound, revisionTimestampFound,
+ "property");
+ }
+
@SuppressWarnings({"unchecked"})
public RevisionInfoConfigurationResult configure(Configuration cfg, YReflectionManager reflectionManager) {
Iterator classes = (Iterator) cfg.getClassMappings();
Copied: trunk/src/test/org/jboss/envers/test/entities/reventity/CustomPropertyAccessRevEntity.java (from rev 173, trunk/src/test/org/jboss/envers/test/entities/reventity/CustomRevEntity.java)
===================================================================
--- trunk/src/test/org/jboss/envers/test/entities/reventity/CustomPropertyAccessRevEntity.java (rev 0)
+++ trunk/src/test/org/jboss/envers/test/entities/reventity/CustomPropertyAccessRevEntity.java 2008-10-13 14:43:11 UTC (rev 177)
@@ -0,0 +1,59 @@
+package org.jboss.envers.test.entities.reventity;
+
+import org.jboss.envers.RevisionNumber;
+import org.jboss.envers.RevisionTimestamp;
+import org.jboss.envers.RevisionEntity;
+
+import javax.persistence.Id;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Entity;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+ at Entity
+ at RevisionEntity
+public class CustomPropertyAccessRevEntity {
+ private int customId;
+
+ private long customTimestamp;
+
+ @Id
+ @GeneratedValue
+ @RevisionNumber
+ public int getCustomId() {
+ return customId;
+ }
+
+ public void setCustomId(int customId) {
+ this.customId = customId;
+ }
+
+ @RevisionTimestamp
+ public long getCustomTimestamp() {
+ return customTimestamp;
+ }
+
+ public void setCustomTimestamp(long customTimestamp) {
+ this.customTimestamp = customTimestamp;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof CustomPropertyAccessRevEntity)) return false;
+
+ CustomPropertyAccessRevEntity that = (CustomPropertyAccessRevEntity) o;
+
+ if (customId != that.customId) return false;
+ if (customTimestamp != that.customTimestamp) return false;
+
+ return true;
+ }
+
+ public int hashCode() {
+ int result;
+ result = customId;
+ result = 31 * result + (int) (customTimestamp ^ (customTimestamp >>> 32));
+ return result;
+ }
+}
\ No newline at end of file
Property changes on: trunk/src/test/org/jboss/envers/test/entities/reventity/CustomPropertyAccessRevEntity.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/src/test/org/jboss/envers/test/integration/reventity/CustomPropertyAccess.java (from rev 174, trunk/src/test/org/jboss/envers/test/integration/reventity/Custom.java)
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/reventity/CustomPropertyAccess.java (rev 0)
+++ trunk/src/test/org/jboss/envers/test/integration/reventity/CustomPropertyAccess.java 2008-10-13 14:43:11 UTC (rev 177)
@@ -0,0 +1,111 @@
+package org.jboss.envers.test.integration.reventity;
+
+import org.jboss.envers.test.AbstractEntityTest;
+import org.jboss.envers.test.entities.StrTestEntity;
+import org.jboss.envers.test.entities.reventity.CustomPropertyAccessRevEntity;
+import org.jboss.envers.exception.RevisionDoesNotExistException;
+import org.jboss.envers.VersionsReader;
+import org.hibernate.ejb.Ejb3Configuration;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import javax.persistence.EntityManager;
+import java.util.Date;
+import java.util.Arrays;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class CustomPropertyAccess extends AbstractEntityTest {
+ private Integer id;
+ private long timestamp1;
+ private long timestamp2;
+ private long timestamp3;
+
+ public void configure(Ejb3Configuration cfg) {
+ cfg.addAnnotatedClass(StrTestEntity.class);
+ cfg.addAnnotatedClass(CustomPropertyAccessRevEntity.class);
+ }
+
+ @BeforeClass(dependsOnMethods = "init")
+ public void initData() throws InterruptedException {
+ timestamp1 = System.currentTimeMillis();
+
+ Thread.sleep(100);
+
+ // Revision 1
+ EntityManager em = getEntityManager();
+ em.getTransaction().begin();
+ StrTestEntity te = new StrTestEntity("x");
+ em.persist(te);
+ id = te.getId();
+ em.getTransaction().commit();
+
+ timestamp2 = System.currentTimeMillis();
+
+ Thread.sleep(100);
+
+ // Revision 2
+ em.getTransaction().begin();
+ te = em.find(StrTestEntity.class, id);
+ te.setStr("y");
+ em.getTransaction().commit();
+
+ timestamp3 = System.currentTimeMillis();
+ }
+
+ @Test(expectedExceptions = RevisionDoesNotExistException.class)
+ public void testTimestamps1() {
+ getVersionsReader().getRevisionNumberForDate(new Date(timestamp1));
+ }
+
+ @Test
+ public void testTimestamps() {
+ assert getVersionsReader().getRevisionNumberForDate(new Date(timestamp2)).intValue() == 1;
+ assert getVersionsReader().getRevisionNumberForDate(new Date(timestamp3)).intValue() == 2;
+ }
+
+ @Test
+ public void testDatesForRevisions() {
+ VersionsReader vr = getVersionsReader();
+ assert vr.getRevisionNumberForDate(vr.getRevisionDate(1)).intValue() == 1;
+ assert vr.getRevisionNumberForDate(vr.getRevisionDate(2)).intValue() == 2;
+ }
+
+ @Test
+ public void testRevisionsForDates() {
+ VersionsReader vr = getVersionsReader();
+
+ assert vr.getRevisionDate(vr.getRevisionNumberForDate(new Date(timestamp2))).getTime() <= timestamp2;
+ assert vr.getRevisionDate(vr.getRevisionNumberForDate(new Date(timestamp2)).intValue()+1).getTime() > timestamp2;
+
+ assert vr.getRevisionDate(vr.getRevisionNumberForDate(new Date(timestamp3))).getTime() <= timestamp3;
+ }
+
+ @Test
+ public void testFindRevision() {
+ VersionsReader vr = getVersionsReader();
+
+ long rev1Timestamp = vr.findRevision(CustomPropertyAccessRevEntity.class, 1).getCustomTimestamp();
+ assert rev1Timestamp > timestamp1;
+ assert rev1Timestamp <= timestamp2;
+
+ long rev2Timestamp = vr.findRevision(CustomPropertyAccessRevEntity.class, 2).getCustomTimestamp();
+ assert rev2Timestamp > timestamp2;
+ assert rev2Timestamp <= timestamp3;
+ }
+
+ @Test
+ public void testRevisionsCounts() {
+ assert Arrays.asList(1, 2).equals(getVersionsReader().getRevisions(StrTestEntity.class, id));
+ }
+
+ @Test
+ public void testHistoryOfId1() {
+ StrTestEntity ver1 = new StrTestEntity("x", id);
+ StrTestEntity ver2 = new StrTestEntity("y", id);
+
+ assert getVersionsReader().find(StrTestEntity.class, id, 1).equals(ver1);
+ assert getVersionsReader().find(StrTestEntity.class, id, 2).equals(ver2);
+ }
+}
\ No newline at end of file
Property changes on: trunk/src/test/org/jboss/envers/test/integration/reventity/CustomPropertyAccess.java
___________________________________________________________________
Name: svn:mergeinfo
+
From jboss-envers-commits at lists.jboss.org Mon Oct 13 14:02:35 2008
From: jboss-envers-commits at lists.jboss.org (jboss-envers-commits at lists.jboss.org)
Date: Mon, 13 Oct 2008 14:02:35 -0400
Subject: [jboss-envers-commits] JBoss Envers SVN: r178 - in
trunk/src/main/org/jboss/envers: configuration/metadata and 2
other directories.
Message-ID:
Author: adamw
Date: 2008-10-13 14:02:35 -0400 (Mon, 13 Oct 2008)
New Revision: 178
Modified:
trunk/src/main/org/jboss/envers/configuration/GlobalConfiguration.java
trunk/src/main/org/jboss/envers/configuration/metadata/CollectionMetadataGenerator.java
trunk/src/main/org/jboss/envers/configuration/metadata/QueryGeneratorBuilder.java
trunk/src/main/org/jboss/envers/configuration/metadata/VersionsMetadataGenerator.java
trunk/src/main/org/jboss/envers/entities/mapper/relation/query/OneVersionsEntityQueryGenerator.java
trunk/src/main/org/jboss/envers/entities/mapper/relation/query/QueryGeneratorTools.java
trunk/src/main/org/jboss/envers/entities/mapper/relation/query/ThreeEntityQueryGenerator.java
trunk/src/main/org/jboss/envers/entities/mapper/relation/query/TwoEntityQueryGenerator.java
trunk/src/main/org/jboss/envers/query/impl/EntitiesAtRevisionQuery.java
Log:
ENVERS-57: workaround for HSQLDB
Modified: trunk/src/main/org/jboss/envers/configuration/GlobalConfiguration.java
===================================================================
--- trunk/src/main/org/jboss/envers/configuration/GlobalConfiguration.java 2008-10-13 14:43:11 UTC (rev 177)
+++ trunk/src/main/org/jboss/envers/configuration/GlobalConfiguration.java 2008-10-13 18:02:35 UTC (rev 178)
@@ -39,6 +39,14 @@
// Should the optimistic locking property of an entity be considered unversioned
private final boolean unversionedOptimisticLockingField;
+ /*
+ Which operator to use in correlated subqueries (when we want a property to be equal to the result of
+ a correlated subquery, for example: e.p (select max(e2.p) where e2.p2 = e.p2 ...).
+ Normally, this should be "=". However, HSQLDB has an issue related to that, so as a workaround,
+ "in" is used. See {@link org.jboss.envers.test.various.HsqlTest}.
+ */
+ private final String correlatedSubqueryOperator;
+
public GlobalConfiguration(Properties properties) {
String generateRevisionsForCollectionsStr = properties.getProperty("org.jboss.envers.revisionOnCollectionChange",
"true");
@@ -51,6 +59,9 @@
String ignoreOptimisticLockingPropertyStr = properties.getProperty("org.jboss.envers.unversionedOptimisticLockingField",
"false");
unversionedOptimisticLockingField = Boolean.parseBoolean(ignoreOptimisticLockingPropertyStr);
+
+ correlatedSubqueryOperator = "org.hibernate.dialect.HSQLDialect".equals(
+ properties.getProperty("hibernate.dialect")) ? "in" : "=";
}
public boolean isGenerateRevisionsForCollections() {
@@ -64,4 +75,8 @@
public boolean isUnversionedOptimisticLockingField() {
return unversionedOptimisticLockingField;
}
+
+ public String getCorrelatedSubqueryOperator() {
+ return correlatedSubqueryOperator;
+ }
}
Modified: trunk/src/main/org/jboss/envers/configuration/metadata/CollectionMetadataGenerator.java
===================================================================
--- trunk/src/main/org/jboss/envers/configuration/metadata/CollectionMetadataGenerator.java 2008-10-13 14:43:11 UTC (rev 177)
+++ trunk/src/main/org/jboss/envers/configuration/metadata/CollectionMetadataGenerator.java 2008-10-13 18:02:35 UTC (rev 178)
@@ -154,8 +154,9 @@
MiddleComponentData indexComponentData = addIndex(null, null);
// Generating the query generator - it should read directly from the related entity.
- RelationQueryGenerator queryGenerator = new OneVersionsEntityQueryGenerator(mainGenerator.getVerEntCfg(),
- referencingIdData, referencedEntityName, referencedIdMapping.getIdMapper());
+ RelationQueryGenerator queryGenerator = new OneVersionsEntityQueryGenerator(mainGenerator.getGlobalCfg(),
+ mainGenerator.getVerEntCfg(), referencingIdData, referencedEntityName,
+ referencedIdMapping.getIdMapper());
// Creating common mapper data.
CommonCollectionMapperData commonCollectionMapperData = new CommonCollectionMapperData(
@@ -256,8 +257,8 @@
// Creating a query generator builder, to which additional id data will be added, in case this collection
// references some entities (either from the element or index). At the end, this will be used to build
// a query generator to read the raw data collection from the middle table.
- QueryGeneratorBuilder queryGeneratorBuilder = new QueryGeneratorBuilder(mainGenerator.getVerEntCfg(),
- referencingIdData, versionsMiddleEntityName);
+ QueryGeneratorBuilder queryGeneratorBuilder = new QueryGeneratorBuilder(mainGenerator.getGlobalCfg(),
+ mainGenerator.getVerEntCfg(), referencingIdData, versionsMiddleEntityName);
// Adding the XML mapping for the referencing entity, if the relation isn't inverse.
if (middleEntityXml != null) {
@@ -317,7 +318,6 @@
return new MiddleComponentData(new MiddleMapKeyPropertyComponentMapper(mapKey), currentIndex);
}
}
- // TODO: @MapKeyManyToMany
} else {
// No index - creating a dummy mapper.
return new MiddleComponentData(new MiddleDummyComponentMapper(), 0);
Modified: trunk/src/main/org/jboss/envers/configuration/metadata/QueryGeneratorBuilder.java
===================================================================
--- trunk/src/main/org/jboss/envers/configuration/metadata/QueryGeneratorBuilder.java 2008-10-13 14:43:11 UTC (rev 177)
+++ trunk/src/main/org/jboss/envers/configuration/metadata/QueryGeneratorBuilder.java 2008-10-13 18:02:35 UTC (rev 178)
@@ -30,6 +30,7 @@
import org.jboss.envers.entities.mapper.relation.query.ThreeEntityQueryGenerator;
import org.jboss.envers.entities.mapper.relation.query.TwoEntityQueryGenerator;
import org.jboss.envers.configuration.VersionsEntitiesConfiguration;
+import org.jboss.envers.configuration.GlobalConfiguration;
import java.util.List;
import java.util.ArrayList;
@@ -40,13 +41,15 @@
* @author Adam Warski (adam at warski dot org)
*/
public final class QueryGeneratorBuilder {
+ private final GlobalConfiguration globalCfg;
private final VersionsEntitiesConfiguration verEntCfg;
private final MiddleIdData referencingIdData;
private final String versionsMiddleEntityName;
private final List idDatas;
- QueryGeneratorBuilder(VersionsEntitiesConfiguration verEntCfg, MiddleIdData referencingIdData,
- String versionsMiddleEntityName) {
+ QueryGeneratorBuilder(GlobalConfiguration globalCfg, VersionsEntitiesConfiguration verEntCfg,
+ MiddleIdData referencingIdData, String versionsMiddleEntityName) {
+ this.globalCfg = globalCfg;
this.verEntCfg = verEntCfg;
this.referencingIdData = referencingIdData;
this.versionsMiddleEntityName = versionsMiddleEntityName;
@@ -63,10 +66,10 @@
return new OneEntityQueryGenerator(verEntCfg, versionsMiddleEntityName, referencingIdData,
componentDatas);
} else if (idDatas.size() == 1) {
- return new TwoEntityQueryGenerator(verEntCfg, versionsMiddleEntityName, referencingIdData,
+ return new TwoEntityQueryGenerator(globalCfg, verEntCfg, versionsMiddleEntityName, referencingIdData,
idDatas.get(0), componentDatas);
} else if (idDatas.size() == 2) {
- return new ThreeEntityQueryGenerator(verEntCfg, versionsMiddleEntityName, referencingIdData,
+ return new ThreeEntityQueryGenerator(globalCfg, verEntCfg, versionsMiddleEntityName, referencingIdData,
idDatas.get(0), idDatas.get(1), componentDatas);
} else {
throw new IllegalStateException("Illegal number of related entities.");
Modified: trunk/src/main/org/jboss/envers/configuration/metadata/VersionsMetadataGenerator.java
===================================================================
--- trunk/src/main/org/jboss/envers/configuration/metadata/VersionsMetadataGenerator.java 2008-10-13 14:43:11 UTC (rev 177)
+++ trunk/src/main/org/jboss/envers/configuration/metadata/VersionsMetadataGenerator.java 2008-10-13 18:02:35 UTC (rev 178)
@@ -360,6 +360,10 @@
return cfg;
}
+ GlobalConfiguration getGlobalCfg() {
+ return globalCfg;
+ }
+
VersionsEntitiesConfiguration getVerEntCfg() {
return verEntCfg;
}
Modified: trunk/src/main/org/jboss/envers/entities/mapper/relation/query/OneVersionsEntityQueryGenerator.java
===================================================================
--- trunk/src/main/org/jboss/envers/entities/mapper/relation/query/OneVersionsEntityQueryGenerator.java 2008-10-13 14:43:11 UTC (rev 177)
+++ trunk/src/main/org/jboss/envers/entities/mapper/relation/query/OneVersionsEntityQueryGenerator.java 2008-10-13 18:02:35 UTC (rev 178)
@@ -27,6 +27,7 @@
import org.jboss.envers.entities.mapper.id.IdMapper;
import org.jboss.envers.entities.mapper.relation.MiddleIdData;
import org.jboss.envers.configuration.VersionsEntitiesConfiguration;
+import org.jboss.envers.configuration.GlobalConfiguration;
import org.jboss.envers.reader.VersionsReaderImplementor;
import org.jboss.envers.RevisionType;
import org.jboss.envers.tools.query.QueryBuilder;
@@ -43,8 +44,9 @@
private final String queryString;
private final MiddleIdData referencingIdData;
- public OneVersionsEntityQueryGenerator(VersionsEntitiesConfiguration verEntCfg, MiddleIdData referencingIdData,
- String referencedEntityName, IdMapper referencedIdMapper) {
+ public OneVersionsEntityQueryGenerator(GlobalConfiguration globalCfg, VersionsEntitiesConfiguration verEntCfg,
+ MiddleIdData referencingIdData, String referencedEntityName,
+ IdMapper referencedIdMapper) {
this.referencingIdData = referencingIdData;
/*
@@ -84,7 +86,7 @@
"e." + originalIdPropertyName, "e2." + originalIdPropertyName);
// e.revision = (SELECT max(...) ...)
- rootParameters.addWhere(revisionPropertyPath, false, "=", maxERevQb);
+ rootParameters.addWhere(revisionPropertyPath, false, globalCfg.getCorrelatedSubqueryOperator(), maxERevQb);
// e.revision_type != DEL
rootParameters.addWhereWithNamedParam(verEntCfg.getRevisionTypePropName(), false, "!=", "delrevisiontype");
Modified: trunk/src/main/org/jboss/envers/entities/mapper/relation/query/QueryGeneratorTools.java
===================================================================
--- trunk/src/main/org/jboss/envers/entities/mapper/relation/query/QueryGeneratorTools.java 2008-10-13 14:43:11 UTC (rev 177)
+++ trunk/src/main/org/jboss/envers/entities/mapper/relation/query/QueryGeneratorTools.java 2008-10-13 18:02:35 UTC (rev 178)
@@ -27,13 +27,14 @@
import org.jboss.envers.tools.query.Parameters;
import org.jboss.envers.entities.mapper.relation.MiddleIdData;
import org.jboss.envers.entities.mapper.relation.MiddleComponentData;
+import org.jboss.envers.configuration.GlobalConfiguration;
/**
* @author Adam Warski (adam at warski dot org)
*/
public class QueryGeneratorTools {
- public static void addEntityAtRevision(QueryBuilder qb, Parameters rootParameters, MiddleIdData idData,
- String revisionPropertyPath, String originalIdPropertyName,
+ public static void addEntityAtRevision(GlobalConfiguration globalCfg, QueryBuilder qb, Parameters rootParameters,
+ MiddleIdData idData, String revisionPropertyPath, String originalIdPropertyName,
String alias1, String alias2) {
// SELECT max(e.revision) FROM versionsReferencedEntity e2
QueryBuilder maxERevQb = qb.newSubQueryBuilder(idData.getVersionsEntityName(), alias2);
@@ -47,7 +48,7 @@
alias1 + "." + originalIdPropertyName, alias2 +"." + originalIdPropertyName);
// e.revision = (SELECT max(...) ...)
- rootParameters.addWhere("e." + revisionPropertyPath, false, "=", maxERevQb);
+ rootParameters.addWhere("e." + revisionPropertyPath, false, globalCfg.getCorrelatedSubqueryOperator(), maxERevQb);
}
public static void addAssociationAtRevision(QueryBuilder qb, Parameters rootParameters,
Modified: trunk/src/main/org/jboss/envers/entities/mapper/relation/query/ThreeEntityQueryGenerator.java
===================================================================
--- trunk/src/main/org/jboss/envers/entities/mapper/relation/query/ThreeEntityQueryGenerator.java 2008-10-13 14:43:11 UTC (rev 177)
+++ trunk/src/main/org/jboss/envers/entities/mapper/relation/query/ThreeEntityQueryGenerator.java 2008-10-13 18:02:35 UTC (rev 178)
@@ -27,6 +27,7 @@
import org.jboss.envers.entities.mapper.relation.MiddleIdData;
import org.jboss.envers.entities.mapper.relation.MiddleComponentData;
import org.jboss.envers.configuration.VersionsEntitiesConfiguration;
+import org.jboss.envers.configuration.GlobalConfiguration;
import org.jboss.envers.reader.VersionsReaderImplementor;
import org.jboss.envers.RevisionType;
import org.jboss.envers.tools.query.QueryBuilder;
@@ -43,7 +44,8 @@
private final String queryString;
private final MiddleIdData referencingIdData;
- public ThreeEntityQueryGenerator(VersionsEntitiesConfiguration verEntCfg,
+ public ThreeEntityQueryGenerator(GlobalConfiguration globalCfg,
+ VersionsEntitiesConfiguration verEntCfg,
String versionsMiddleEntityName,
MiddleIdData referencingIdData,
MiddleIdData referencedIdData,
@@ -97,11 +99,11 @@
referencingIdData.getPrefixedMapper().addNamedIdEqualsToQuery(rootParameters, originalIdPropertyName, true);
// e.revision = (SELECT max(...) ...)
- QueryGeneratorTools.addEntityAtRevision(qb, rootParameters, referencedIdData, revisionPropertyPath,
+ QueryGeneratorTools.addEntityAtRevision(globalCfg, qb, rootParameters, referencedIdData, revisionPropertyPath,
originalIdPropertyName, "e", "e2");
// f.revision = (SELECT max(...) ...)
- QueryGeneratorTools.addEntityAtRevision(qb, rootParameters, indexIdData, revisionPropertyPath,
+ QueryGeneratorTools.addEntityAtRevision(globalCfg, qb, rootParameters, indexIdData, revisionPropertyPath,
originalIdPropertyName, "f", "f2");
// ee.revision = (SELECT max(...) ...)
Modified: trunk/src/main/org/jboss/envers/entities/mapper/relation/query/TwoEntityQueryGenerator.java
===================================================================
--- trunk/src/main/org/jboss/envers/entities/mapper/relation/query/TwoEntityQueryGenerator.java 2008-10-13 14:43:11 UTC (rev 177)
+++ trunk/src/main/org/jboss/envers/entities/mapper/relation/query/TwoEntityQueryGenerator.java 2008-10-13 18:02:35 UTC (rev 178)
@@ -27,6 +27,7 @@
import org.jboss.envers.entities.mapper.relation.MiddleIdData;
import org.jboss.envers.entities.mapper.relation.MiddleComponentData;
import org.jboss.envers.configuration.VersionsEntitiesConfiguration;
+import org.jboss.envers.configuration.GlobalConfiguration;
import org.jboss.envers.reader.VersionsReaderImplementor;
import org.jboss.envers.RevisionType;
import org.jboss.envers.tools.query.QueryBuilder;
@@ -43,7 +44,8 @@
private final String queryString;
private final MiddleIdData referencingIdData;
- public TwoEntityQueryGenerator(VersionsEntitiesConfiguration verEntCfg,
+ public TwoEntityQueryGenerator(GlobalConfiguration globalCfg,
+ VersionsEntitiesConfiguration verEntCfg,
String versionsMiddleEntityName,
MiddleIdData referencingIdData,
MiddleIdData referencedIdData,
@@ -86,7 +88,7 @@
referencingIdData.getPrefixedMapper().addNamedIdEqualsToQuery(rootParameters, originalIdPropertyName, true);
// e.revision = (SELECT max(...) ...)
- QueryGeneratorTools.addEntityAtRevision(qb, rootParameters, referencedIdData, revisionPropertyPath,
+ QueryGeneratorTools.addEntityAtRevision(globalCfg, qb, rootParameters, referencedIdData, revisionPropertyPath,
originalIdPropertyName, "e", "e2");
// ee.revision = (SELECT max(...) ...)
Modified: trunk/src/main/org/jboss/envers/query/impl/EntitiesAtRevisionQuery.java
===================================================================
--- trunk/src/main/org/jboss/envers/query/impl/EntitiesAtRevisionQuery.java 2008-10-13 14:43:11 UTC (rev 177)
+++ trunk/src/main/org/jboss/envers/query/impl/EntitiesAtRevisionQuery.java 2008-10-13 18:02:35 UTC (rev 178)
@@ -72,8 +72,8 @@
// e.revision_type != DEL AND
qb.getRootParameters().addWhereWithParam(verEntCfg.getRevisionTypePropName(), "<>", RevisionType.DEL);
- // e.revision = (SELECT max(...) ...)
- qb.getRootParameters().addWhere(revisionPropertyPath, "=", maxRevQb);
+ // e.revision = (SELECT max(...) ...)
+ qb.getRootParameters().addWhere(revisionPropertyPath, verCfg.getGlobalCfg().getCorrelatedSubqueryOperator(), maxRevQb);
// all specified conditions
for (VersionsCriterion criterion : criterions) {
criterion.addToQuery(verCfg, entityName, qb, qb.getRootParameters());
From jboss-envers-commits at lists.jboss.org Tue Oct 21 09:00:23 2008
From: jboss-envers-commits at lists.jboss.org (jboss-envers-commits at lists.jboss.org)
Date: Tue, 21 Oct 2008 09:00:23 -0400
Subject: [jboss-envers-commits] JBoss Envers SVN: r179 -
trunk/src/test/org/jboss/envers/test/various.
Message-ID:
Author: adamw
Date: 2008-10-21 09:00:23 -0400 (Tue, 21 Oct 2008)
New Revision: 179
Modified:
trunk/src/test/org/jboss/envers/test/various/HsqlTest.java
Log:
Test update
Modified: trunk/src/test/org/jboss/envers/test/various/HsqlTest.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/various/HsqlTest.java 2008-10-13 18:02:35 UTC (rev 178)
+++ trunk/src/test/org/jboss/envers/test/various/HsqlTest.java 2008-10-21 13:00:23 UTC (rev 179)
@@ -66,6 +66,8 @@
Both queries work from HSQL console
(to run: java -cp hsqldb.jar org.hsqldb.util.DatabaseManager -user sa -url jdbc:hsqldb:file:/tmp/_versions_demo.db)
+
+ TODO: post hibernate bug
*/
public static void main(String[] argv) {
From jboss-envers-commits at lists.jboss.org Tue Oct 21 09:16:25 2008
From: jboss-envers-commits at lists.jboss.org (jboss-envers-commits at lists.jboss.org)
Date: Tue, 21 Oct 2008 09:16:25 -0400
Subject: [jboss-envers-commits] JBoss Envers SVN: r180 -
trunk/src/test/org/jboss/envers/test/various.
Message-ID:
Author: adamw
Date: 2008-10-21 09:16:25 -0400 (Tue, 21 Oct 2008)
New Revision: 180
Added:
trunk/src/test/org/jboss/envers/test/various/Address.java
trunk/src/test/org/jboss/envers/test/various/Person.java
Modified:
trunk/src/test/org/jboss/envers/test/various/HsqlTest.java
Log:
Test update
Copied: trunk/src/test/org/jboss/envers/test/various/Address.java (from rev 173, trunk/src/demo/org/jboss/envers/demo/Address.java)
===================================================================
--- trunk/src/test/org/jboss/envers/test/various/Address.java (rev 0)
+++ trunk/src/test/org/jboss/envers/test/various/Address.java 2008-10-21 13:16:25 UTC (rev 180)
@@ -0,0 +1,113 @@
+/*
+ * Envers. http://www.jboss.org/envers
+ *
+ * Copyright 2008 Red Hat Middleware, LLC. All rights reserved.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT A WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License, v.2.1 along with this distribution; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ * Red Hat Author(s): Adam Warski
+ */
+package org.jboss.envers.test.various;
+
+import org.jboss.envers.Versioned;
+
+import javax.persistence.*;
+import java.util.Set;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+ at Entity
+public class Address {
+ @Id
+ @GeneratedValue
+ private int id;
+
+ @Versioned
+ private String streetName;
+
+ @Versioned
+ private Integer houseNumber;
+
+ @Versioned
+ private Integer flatNumber;
+
+ @Versioned
+ @OneToMany(mappedBy = "address")
+ private Set persons;
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getStreetName() {
+ return streetName;
+ }
+
+ public void setStreetName(String streetName) {
+ this.streetName = streetName;
+ }
+
+ public Integer getHouseNumber() {
+ return houseNumber;
+ }
+
+ public void setHouseNumber(Integer houseNumber) {
+ this.houseNumber = houseNumber;
+ }
+
+ public Integer getFlatNumber() {
+ return flatNumber;
+ }
+
+ public void setFlatNumber(Integer flatNumber) {
+ this.flatNumber = flatNumber;
+ }
+
+ public Set getPersons() {
+ return persons;
+ }
+
+ public void setPersons(Set persons) {
+ this.persons = persons;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof Address)) return false;
+
+ Address address = (Address) o;
+
+ if (id != address.id) return false;
+ if (flatNumber != null ? !flatNumber.equals(address.flatNumber) : address.flatNumber != null) return false;
+ if (houseNumber != null ? !houseNumber.equals(address.houseNumber) : address.houseNumber != null) return false;
+ if (streetName != null ? !streetName.equals(address.streetName) : address.streetName != null) return false;
+
+ return true;
+ }
+
+ public int hashCode() {
+ int result;
+ result = id;
+ result = 31 * result + (streetName != null ? streetName.hashCode() : 0);
+ result = 31 * result + (houseNumber != null ? houseNumber.hashCode() : 0);
+ result = 31 * result + (flatNumber != null ? flatNumber.hashCode() : 0);
+ return result;
+ }
+}
\ No newline at end of file
Property changes on: trunk/src/test/org/jboss/envers/test/various/Address.java
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: trunk/src/test/org/jboss/envers/test/various/HsqlTest.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/various/HsqlTest.java 2008-10-21 13:00:23 UTC (rev 179)
+++ trunk/src/test/org/jboss/envers/test/various/HsqlTest.java 2008-10-21 13:16:25 UTC (rev 180)
@@ -1,7 +1,5 @@
package org.jboss.envers.test.various;
-import org.jboss.envers.demo.Person;
-import org.jboss.envers.demo.Address;
import org.hibernate.Session;
import javax.persistence.EntityManagerFactory;
Copied: trunk/src/test/org/jboss/envers/test/various/Person.java (from rev 173, trunk/src/demo/org/jboss/envers/demo/Person.java)
===================================================================
--- trunk/src/test/org/jboss/envers/test/various/Person.java (rev 0)
+++ trunk/src/test/org/jboss/envers/test/various/Person.java 2008-10-21 13:16:25 UTC (rev 180)
@@ -0,0 +1,99 @@
+/*
+ * Envers. http://www.jboss.org/envers
+ *
+ * Copyright 2008 Red Hat Middleware, LLC. All rights reserved.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT A WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License, v.2.1 along with this distribution; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ * Red Hat Author(s): Adam Warski
+ */
+package org.jboss.envers.test.various;
+
+import org.jboss.envers.Versioned;
+
+import javax.persistence.*;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+ at Entity
+public class Person {
+ @Id
+ @GeneratedValue
+ private int id;
+
+ @Versioned
+ private String name;
+
+ @Versioned
+ private String surname;
+
+ @Versioned
+ @ManyToOne
+ private Address address;
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getSurname() {
+ return surname;
+ }
+
+ public void setSurname(String surname) {
+ this.surname = surname;
+ }
+
+ public Address getAddress() {
+ return address;
+ }
+
+ public void setAddress(Address address) {
+ this.address = address;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof Person)) return false;
+
+ Person person = (Person) o;
+
+ if (id != person.id) return false;
+ if (name != null ? !name.equals(person.name) : person.name != null) return false;
+ if (surname != null ? !surname.equals(person.surname) : person.surname != null) return false;
+
+ return true;
+ }
+
+ public int hashCode() {
+ int result;
+ result = id;
+ result = 31 * result + (name != null ? name.hashCode() : 0);
+ result = 31 * result + (surname != null ? surname.hashCode() : 0);
+ return result;
+ }
+}
\ No newline at end of file
Property changes on: trunk/src/test/org/jboss/envers/test/various/Person.java
___________________________________________________________________
Name: svn:mergeinfo
+
From jboss-envers-commits at lists.jboss.org Tue Oct 21 13:23:44 2008
From: jboss-envers-commits at lists.jboss.org (jboss-envers-commits at lists.jboss.org)
Date: Tue, 21 Oct 2008 13:23:44 -0400
Subject: [jboss-envers-commits] JBoss Envers SVN: r181 - in demos/seam:
resources and 5 other directories.
Message-ID:
Author: adamw
Date: 2008-10-21 13:23:43 -0400 (Tue, 21 Oct 2008)
New Revision: 181
Added:
demos/seam/lib/envers-1.1.0.ga.jar
demos/seam/src/action/org/jboss/envers/demo/seam/wiki/WikiEdit.java
Removed:
demos/seam/lib/envers-1.1.0.beta1.jar
Modified:
demos/seam/resources/META-INF/persistence-dev.xml
demos/seam/resources/WEB-INF/pages.xml
demos/seam/resources/envers_seam_demo-dev-ds.xml
demos/seam/src/action/org/jboss/envers/demo/seam/wiki/HistoryReader.java
demos/seam/src/model/org/jboss/envers/demo/seam/wiki/WikiPage.java
demos/seam/view/wiki/edit.xhtml
demos/seam/view/wiki/view.xhtml
demos/seam/view/wiki/viewHistory.xhtml
demos/seam/view/wiki/wiki_template.xhtml
Log:
Demo update
Deleted: demos/seam/lib/envers-1.1.0.beta1.jar
===================================================================
(Binary files differ)
Added: demos/seam/lib/envers-1.1.0.ga.jar
===================================================================
(Binary files differ)
Property changes on: demos/seam/lib/envers-1.1.0.ga.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: demos/seam/resources/META-INF/persistence-dev.xml
===================================================================
--- demos/seam/resources/META-INF/persistence-dev.xml 2008-10-21 13:16:25 UTC (rev 180)
+++ demos/seam/resources/META-INF/persistence-dev.xml 2008-10-21 17:23:43 UTC (rev 181)
@@ -8,15 +8,20 @@
org.hibernate.ejb.HibernatePersistence
java:/envers_seam_demoDatasource
-
+
+
+
+
+
+
Modified: demos/seam/resources/WEB-INF/pages.xml
===================================================================
--- demos/seam/resources/WEB-INF/pages.xml 2008-10-21 13:16:25 UTC (rev 180)
+++ demos/seam/resources/WEB-INF/pages.xml 2008-10-21 17:23:43 UTC (rev 181)
@@ -23,11 +23,14 @@
+
+
+
Modified: demos/seam/resources/envers_seam_demo-dev-ds.xml
===================================================================
--- demos/seam/resources/envers_seam_demo-dev-ds.xml 2008-10-21 13:16:25 UTC (rev 180)
+++ demos/seam/resources/envers_seam_demo-dev-ds.xml 2008-10-21 17:23:43 UTC (rev 181)
@@ -1,15 +1,21 @@
+ PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd">
-
- envers_seam_demoDatasource
- jdbc:hsqldb:${jboss.server.data.dir}${/}envers
- org.hsqldb.jdbcDriver
- sa
-
-
+
+ envers_seam_demoDatasource
+
+
+
+ jdbc:mysql:///hibernate_tests?useUnicode=true&characterEncoding=UTF-8
+ com.mysql.jdbc.Driver
+ root
+
+
Modified: demos/seam/src/action/org/jboss/envers/demo/seam/wiki/HistoryReader.java
===================================================================
--- demos/seam/src/action/org/jboss/envers/demo/seam/wiki/HistoryReader.java 2008-10-21 13:16:25 UTC (rev 180)
+++ demos/seam/src/action/org/jboss/envers/demo/seam/wiki/HistoryReader.java 2008-10-21 17:23:43 UTC (rev 181)
@@ -3,6 +3,8 @@
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.In;
import org.jboss.envers.VersionsReader;
+import org.jboss.envers.query.VersionsRestrictions;
+import org.jboss.envers.query.RevisionProperty;
import java.util.List;
import java.util.ArrayList;
@@ -24,9 +26,14 @@
if (history == null) {
history = new ArrayList();
- for (Number revision : versionsReader.getRevisions(WikiPage.class, wikiPageId)) {
- history.add(new HistoryEntry(versionsReader.find(WikiPage.class, wikiPageId, revision),
- versionsReader.findRevision(WikiLog.class, revision)));
+ List versions = versionsReader.createQuery().forRevisionsOfEntity(WikiPage.class, false, false)
+ .add(VersionsRestrictions.idEq(wikiPageId))
+ .addOrder(RevisionProperty.desc())
+ .getResultList();
+
+ for (Object versionDataObject : versions) {
+ Object[] versionData = (Object[]) versionDataObject;
+ history.add(new HistoryEntry((WikiPage) versionData[0], (WikiLog) versionData[1]));
}
}
Added: demos/seam/src/action/org/jboss/envers/demo/seam/wiki/WikiEdit.java
===================================================================
--- demos/seam/src/action/org/jboss/envers/demo/seam/wiki/WikiEdit.java (rev 0)
+++ demos/seam/src/action/org/jboss/envers/demo/seam/wiki/WikiEdit.java 2008-10-21 17:23:43 UTC (rev 181)
@@ -0,0 +1,42 @@
+package org.jboss.envers.demo.seam.wiki;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.ScopeType;
+
+import java.util.ArrayList;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+ at Name("wikiEdit")
+ at Scope(ScopeType.CONVERSATION)
+public class WikiEdit {
+ @In("#{wikiPageHome.instance}")
+ private WikiPage wikiPage;
+
+ private String newLink;
+
+ public String getNewLink() {
+ return newLink;
+ }
+
+ public void setNewLink(String newLink) {
+ this.newLink = newLink;
+ }
+
+ public void addLink() {
+ if (wikiPage.getLinks() == null) {
+ wikiPage.setLinks(new ArrayList());
+ }
+
+ wikiPage.getLinks().add(newLink);
+
+ newLink = null;
+ }
+
+ public void deleteLink(String link) {
+ wikiPage.getLinks().remove(link);
+ }
+}
Modified: demos/seam/src/model/org/jboss/envers/demo/seam/wiki/WikiPage.java
===================================================================
--- demos/seam/src/model/org/jboss/envers/demo/seam/wiki/WikiPage.java 2008-10-21 13:16:25 UTC (rev 180)
+++ demos/seam/src/model/org/jboss/envers/demo/seam/wiki/WikiPage.java 2008-10-21 17:23:43 UTC (rev 181)
@@ -1,10 +1,13 @@
package org.jboss.envers.demo.seam.wiki;
import org.jboss.envers.Versioned;
+import org.hibernate.annotations.CollectionOfElements;
+import org.hibernate.annotations.IndexColumn;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
+import java.util.List;
/**
* @author Adam Warski (adam at warski dot org)
@@ -20,6 +23,10 @@
private String content;
+ @CollectionOfElements
+ @IndexColumn(name = "ind")
+ private List links;
+
public int getId() {
return id;
}
@@ -44,6 +51,14 @@
this.content = content;
}
+ public List getLinks() {
+ return links;
+ }
+
+ public void setLinks(List links) {
+ this.links = links;
+ }
+
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof WikiPage)) return false;
Modified: demos/seam/view/wiki/edit.xhtml
===================================================================
--- demos/seam/view/wiki/edit.xhtml 2008-10-21 13:16:25 UTC (rev 180)
+++ demos/seam/view/wiki/edit.xhtml 2008-10-21 17:23:43 UTC (rev 181)
@@ -16,10 +16,12 @@
+
+
- Title:
+ Title (required):
@@ -27,11 +29,33 @@
+ Links:
+
+
+
+ New link:
+
+
+
+
+
+
-
+
+
+
+
+
Modified: demos/seam/view/wiki/view.xhtml
===================================================================
--- demos/seam/view/wiki/view.xhtml 2008-10-21 13:16:25 UTC (rev 180)
+++ demos/seam/view/wiki/view.xhtml 2008-10-21 17:23:43 UTC (rev 181)
@@ -25,6 +25,21 @@
+ Links:
+
+
+ None
+
+
+
+
+
+
+
#{wikiPageHome.instance.content}
Modified: demos/seam/view/wiki/viewHistory.xhtml
===================================================================
--- demos/seam/view/wiki/viewHistory.xhtml 2008-10-21 13:16:25 UTC (rev 180)
+++ demos/seam/view/wiki/viewHistory.xhtml 2008-10-21 17:23:43 UTC (rev 181)
@@ -54,6 +54,23 @@
+ Links
+
+
+
+ None
+
+
+
+
+
+
+
+
Content
Modified: demos/seam/view/wiki/wiki_template.xhtml
===================================================================
--- demos/seam/view/wiki/wiki_template.xhtml 2008-10-21 13:16:25 UTC (rev 180)
+++ demos/seam/view/wiki/wiki_template.xhtml 2008-10-21 17:23:43 UTC (rev 181)
@@ -43,8 +43,16 @@
VersionsReader
interface, which in this application is managed by the
VersionsReaderManager
- bean.
+ bean. Here, the history of a wiki page is retrieved using a revisions-of-entity
+ query .
+
+
+ With a single revisions-of-entity query you can retrieve the whole history of an entity, along with the
+ metadata (when the change was made and by whom). If the history is large, you can implement paging
+ simply by setting the setFirstResult
and setMaxResults
properties of the
+ query.
+
From jboss-envers-commits at lists.jboss.org Tue Oct 21 13:27:02 2008
From: jboss-envers-commits at lists.jboss.org (jboss-envers-commits at lists.jboss.org)
Date: Tue, 21 Oct 2008 13:27:02 -0400
Subject: [jboss-envers-commits] JBoss Envers SVN: r182 - in
demos/seam/resources: META-INF and 1 other directory.
Message-ID:
Author: adamw
Date: 2008-10-21 13:27:02 -0400 (Tue, 21 Oct 2008)
New Revision: 182
Modified:
demos/seam/resources/META-INF/persistence-dev.xml
demos/seam/resources/envers_seam_demo-dev-ds.xml
Log:
Demo update
Modified: demos/seam/resources/META-INF/persistence-dev.xml
===================================================================
--- demos/seam/resources/META-INF/persistence-dev.xml 2008-10-21 17:23:43 UTC (rev 181)
+++ demos/seam/resources/META-INF/persistence-dev.xml 2008-10-21 17:27:02 UTC (rev 182)
@@ -13,8 +13,8 @@
-
-
+
+
Modified: demos/seam/resources/envers_seam_demo-dev-ds.xml
===================================================================
--- demos/seam/resources/envers_seam_demo-dev-ds.xml 2008-10-21 17:23:43 UTC (rev 181)
+++ demos/seam/resources/envers_seam_demo-dev-ds.xml 2008-10-21 17:27:02 UTC (rev 182)
@@ -7,15 +7,15 @@
envers_seam_demoDatasource
-
+
- jdbc:mysql:///hibernate_tests?useUnicode=true&characterEncoding=UTF-8
+
From jboss-envers-commits at lists.jboss.org Tue Oct 21 13:45:56 2008
From: jboss-envers-commits at lists.jboss.org (jboss-envers-commits at lists.jboss.org)
Date: Tue, 21 Oct 2008 13:45:56 -0400
Subject: [jboss-envers-commits] JBoss Envers SVN: r183 - tags.
Message-ID:
Author: adamw
Date: 2008-10-21 13:45:56 -0400 (Tue, 21 Oct 2008)
New Revision: 183
Added:
tags/1.1.0-ga/
Log:
Tagging the 1.1.0.GA release
Copied: tags/1.1.0-ga (from rev 182, trunk)
From jboss-envers-commits at lists.jboss.org Thu Oct 23 03:48:18 2008
From: jboss-envers-commits at lists.jboss.org (jboss-envers-commits at lists.jboss.org)
Date: Thu, 23 Oct 2008 03:48:18 -0400
Subject: [jboss-envers-commits] JBoss Envers SVN: r184 -
trunk/src/main/org/jboss/envers/tools/reflection.
Message-ID:
Author: adamw
Date: 2008-10-23 03:48:17 -0400 (Thu, 23 Oct 2008)
New Revision: 184
Modified:
trunk/src/main/org/jboss/envers/tools/reflection/ReflectionTools.java
Log:
Reflection cache fix
Modified: trunk/src/main/org/jboss/envers/tools/reflection/ReflectionTools.java
===================================================================
--- trunk/src/main/org/jboss/envers/tools/reflection/ReflectionTools.java 2008-10-21 17:45:56 UTC (rev 183)
+++ trunk/src/main/org/jboss/envers/tools/reflection/ReflectionTools.java 2008-10-23 07:48:17 UTC (rev 184)
@@ -41,11 +41,11 @@
private static final Map, Getter> getterCache =
new ConcurrentReferenceHashMap, Getter>(10,
ConcurrentReferenceHashMap.ReferenceType.SOFT,
- ConcurrentReferenceHashMap.ReferenceType.STRONG);
+ ConcurrentReferenceHashMap.ReferenceType.SOFT);
private static final Map, Setter> setterCache =
new ConcurrentReferenceHashMap, Setter>(10,
ConcurrentReferenceHashMap.ReferenceType.SOFT,
- ConcurrentReferenceHashMap.ReferenceType.STRONG);
+ ConcurrentReferenceHashMap.ReferenceType.SOFT);
private static final PropertyAccessor BASIC_PROPERTY_ACCESSOR = new BasicPropertyAccessor();
From jboss-envers-commits at lists.jboss.org Fri Oct 24 06:41:01 2008
From: jboss-envers-commits at lists.jboss.org (jboss-envers-commits at lists.jboss.org)
Date: Fri, 24 Oct 2008 06:41:01 -0400
Subject: [jboss-envers-commits] JBoss Envers SVN: r185 - in trunk:
resources/test and 5 other directories.
Message-ID:
Author: adamw
Date: 2008-10-24 06:41:00 -0400 (Fri, 24 Oct 2008)
New Revision: 185
Added:
trunk/lib/hibernate-common/hibernate-validator.jar
trunk/src/test/org/jboss/envers/test/integration/notinsertable/
trunk/src/test/org/jboss/envers/test/integration/notinsertable/NotInsertable.java
trunk/src/test/org/jboss/envers/test/integration/notinsertable/NotInsertableTestEntity.java
Modified:
trunk/resources/test/testng.xml
trunk/src/main/org/jboss/envers/configuration/RevisionInfoConfiguration.java
trunk/src/main/org/jboss/envers/configuration/metadata/BasicMetadataGenerator.java
trunk/src/main/org/jboss/envers/configuration/metadata/CollectionMetadataGenerator.java
trunk/src/main/org/jboss/envers/configuration/metadata/IdMetadataGenerator.java
trunk/src/main/org/jboss/envers/configuration/metadata/MetadataTools.java
trunk/src/main/org/jboss/envers/configuration/metadata/VersionsMetadataGenerator.java
trunk/src/main/org/jboss/envers/tools/reflection/YReflectionManager.java
Log:
ENVERS-64: fix for non-insertable columns
Added: trunk/lib/hibernate-common/hibernate-validator.jar
===================================================================
(Binary files differ)
Property changes on: trunk/lib/hibernate-common/hibernate-validator.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/resources/test/testng.xml
===================================================================
--- trunk/resources/test/testng.xml 2008-10-23 07:48:17 UTC (rev 184)
+++ trunk/resources/test/testng.xml 2008-10-24 10:41:00 UTC (rev 185)
@@ -20,6 +20,7 @@
+
Modified: trunk/src/main/org/jboss/envers/configuration/RevisionInfoConfiguration.java
===================================================================
--- trunk/src/main/org/jboss/envers/configuration/RevisionInfoConfiguration.java 2008-10-23 07:48:17 UTC (rev 184)
+++ trunk/src/main/org/jboss/envers/configuration/RevisionInfoConfiguration.java 2008-10-24 10:41:00 UTC (rev 185)
@@ -72,7 +72,7 @@
MetadataTools.addColumn(idProperty, "revision_id", null);
Element timestampProperty = MetadataTools.addProperty(class_mapping, revisionInfoTimestampName,
- revisionInfoTimestampType, false);
+ revisionInfoTimestampType, true, false);
MetadataTools.addColumn(timestampProperty, "revision_timestamp", null);
return document;
Modified: trunk/src/main/org/jboss/envers/configuration/metadata/BasicMetadataGenerator.java
===================================================================
--- trunk/src/main/org/jboss/envers/configuration/metadata/BasicMetadataGenerator.java 2008-10-23 07:48:17 UTC (rev 184)
+++ trunk/src/main/org/jboss/envers/configuration/metadata/BasicMetadataGenerator.java 2008-10-24 10:41:00 UTC (rev 185)
@@ -40,27 +40,27 @@
*/
public final class BasicMetadataGenerator {
boolean addBasic(Element parent, String name, Value value, CompositeMapperBuilder mapper,
- ModificationStore store, String entityName, boolean key) {
+ ModificationStore store, String entityName, boolean insertable, boolean key) {
Type type = value.getType();
if (type instanceof ComponentType) {
addComponent(parent, name, value, mapper, entityName, key);
return true;
} else {
- return addBasicNoComponent(parent, name, value, mapper, store, key);
+ return addBasicNoComponent(parent, name, value, mapper, store, insertable, key);
}
}
boolean addBasicNoComponent(Element parent, String name, Value value, SimpleMapperBuilder mapper,
- ModificationStore store, boolean key) {
+ ModificationStore store, boolean insertable, boolean key) {
Type type = value.getType();
if (type instanceof ImmutableType || type instanceof MutableType) {
- addSimpleValue(parent, name, value, mapper, store, key);
+ addSimpleValue(parent, name, value, mapper, store, insertable, key);
} else if (type instanceof CustomType || type instanceof CompositeCustomType) {
- addCustomValue(parent, name, value, mapper, store, key);
+ addCustomValue(parent, name, value, mapper, store, insertable, key);
} else if ("org.hibernate.type.PrimitiveByteArrayBlobType".equals(type.getClass().getName())) {
- addSimpleValue(parent, name, value, mapper, store, key);
+ addSimpleValue(parent, name, value, mapper, store, insertable, key);
} else {
return false;
}
@@ -70,10 +70,10 @@
@SuppressWarnings({"unchecked"})
private void addSimpleValue(Element parent, String name, Value value, SimpleMapperBuilder mapper,
- ModificationStore store, boolean key) {
+ ModificationStore store, boolean insertable, boolean key) {
if (parent != null) {
Element prop_mapping = MetadataTools.addProperty(parent, name,
- value.getType().getName(), key);
+ value.getType().getName(), insertable, key);
MetadataTools.addColumns(prop_mapping, (Iterator) value.getColumnIterator());
}
@@ -85,10 +85,10 @@
@SuppressWarnings({"unchecked"})
private void addCustomValue(Element parent, String name, Value value, SimpleMapperBuilder mapper,
- ModificationStore store, boolean key) {
+ ModificationStore store, boolean insertable, boolean key) {
if (parent != null) {
Element prop_mapping = MetadataTools.addProperty(parent, name,
- null, key);
+ null, insertable, key);
//CustomType propertyType = (CustomType) value.getType();
@@ -158,7 +158,7 @@
while (properties.hasNext()) {
Property property = properties.next();
addBasic(component_mapping, property.getName(), property.getValue(), componentMapper,
- ModificationStore.FULL, entityName, key);
+ ModificationStore.FULL, entityName, property.isInsertable(), key);
}
}
}
Modified: trunk/src/main/org/jboss/envers/configuration/metadata/CollectionMetadataGenerator.java
===================================================================
--- trunk/src/main/org/jboss/envers/configuration/metadata/CollectionMetadataGenerator.java 2008-10-23 07:48:17 UTC (rev 184)
+++ trunk/src/main/org/jboss/envers/configuration/metadata/CollectionMetadataGenerator.java 2008-10-24 10:41:00 UTC (rev 185)
@@ -366,8 +366,9 @@
return new MiddleComponentData(new MiddleRelatedComponentMapper(referencedIdData),
queryGeneratorBuilder.getCurrentIndex());
} else {
+ // Last but one parameter: collection components are always insertable
boolean mapped = mainGenerator.getBasicMetadataGenerator().addBasicNoComponent(xmlMapping, prefix, value, null,
- ModificationStore.FULL, true);
+ ModificationStore.FULL, true, true);
if (mapped) {
// Simple values are always stored in the first item of the array returned by the query generator.
Modified: trunk/src/main/org/jboss/envers/configuration/metadata/IdMetadataGenerator.java
===================================================================
--- trunk/src/main/org/jboss/envers/configuration/metadata/IdMetadataGenerator.java 2008-10-23 07:48:17 UTC (rev 184)
+++ trunk/src/main/org/jboss/envers/configuration/metadata/IdMetadataGenerator.java 2008-10-24 10:41:00 UTC (rev 185)
@@ -59,8 +59,9 @@
Type propertyType = property.getType();
if (!"_identifierMapper".equals(property.getName())) {
if (propertyType instanceof ImmutableType) {
+ // Last but one parameter: ids are always insertable
mainGenerator.getBasicMetadataGenerator().addBasicNoComponent(parent, property.getName(),
- property.getValue(), mapper, ModificationStore.FULL, key);
+ property.getValue(), mapper, ModificationStore.FULL, true, key);
} else {
throw new MappingException("Type not supported: " + propertyType.getClass().getName());
}
@@ -102,12 +103,13 @@
mapper = new SingleIdMapper();
+ // Last but one parameter: ids are always insertable
mainGenerator.getBasicMetadataGenerator().addBasicNoComponent(rel_id_mapping, id_prop.getName(),
- id_prop.getValue(), mapper, ModificationStore.FULL, false);
+ id_prop.getValue(), mapper, ModificationStore.FULL, true, false);
// null mapper - the mapping where already added the first time, now we only want to generate the xml
mainGenerator.getBasicMetadataGenerator().addBasicNoComponent(orig_id_mapping, id_prop.getName(),
- id_prop.getValue(), null, ModificationStore.FULL, true);
+ id_prop.getValue(), null, ModificationStore.FULL, true, true);
}
orig_id_mapping.addAttribute("name", mainGenerator.getVerEntCfg().getOriginalIdPropName());
Modified: trunk/src/main/org/jboss/envers/configuration/metadata/MetadataTools.java
===================================================================
--- trunk/src/main/org/jboss/envers/configuration/metadata/MetadataTools.java 2008-10-23 07:48:17 UTC (rev 184)
+++ trunk/src/main/org/jboss/envers/configuration/metadata/MetadataTools.java 2008-10-24 10:41:00 UTC (rev 185)
@@ -46,7 +46,7 @@
return id_mapping;
}
- public static Element addProperty(Element parent, String name, String type, boolean key) {
+ public static Element addProperty(Element parent, String name, String type, boolean insertable, boolean key) {
Element prop_mapping;
if (key) {
prop_mapping = parent.addElement("key-property");
@@ -55,6 +55,7 @@
}
prop_mapping.addAttribute("name", name);
+ prop_mapping.addAttribute("insert", Boolean.toString(insertable));
if (type != null) {
prop_mapping.addAttribute("type", type);
Modified: trunk/src/main/org/jboss/envers/configuration/metadata/VersionsMetadataGenerator.java
===================================================================
--- trunk/src/main/org/jboss/envers/configuration/metadata/VersionsMetadataGenerator.java 2008-10-23 07:48:17 UTC (rev 184)
+++ trunk/src/main/org/jboss/envers/configuration/metadata/VersionsMetadataGenerator.java 2008-10-24 10:41:00 UTC (rev 185)
@@ -90,7 +90,7 @@
void addRevisionType(Element any_mapping) {
Element revTypeProperty = MetadataTools.addProperty(any_mapping, verEntCfg.getRevisionTypePropName(),
- verEntCfg.getRevisionTypePropType(), false);
+ verEntCfg.getRevisionTypePropType(), true, false);
revTypeProperty.addAttribute("type", "org.jboss.envers.entities.RevisionTypeType");
}
@@ -119,12 +119,13 @@
@SuppressWarnings({"unchecked"})
void addValue(Element parent, String name, Value value, CompositeMapperBuilder currentMapper,
ModificationStore store, String entityName, EntityXmlMappingData xmlMappingData,
- VersionsJoinTable joinTable, String mapKey, boolean firstPass) {
+ VersionsJoinTable joinTable, String mapKey, boolean insertable, boolean firstPass) {
Type type = value.getType();
// only first pass
if (firstPass) {
- if (basicMetadataGenerator.addBasic(parent, name, value, currentMapper, store, entityName, false)) {
+ if (basicMetadataGenerator.addBasic(parent, name, value, currentMapper, store, entityName, insertable,
+ false)) {
// The property was mapped by the basic generator.
return;
}
@@ -169,7 +170,7 @@
if (store != null) {
addValue(parent, property.getName(), property.getValue(), currentMapper, store, entityName,
xmlMappingData, versioningData.versionsJoinTables.get(property.getName()),
- versioningData.mapKeys.get(property.getName()), firstPass);
+ versioningData.mapKeys.get(property.getName()), property.isInsertable(), firstPass);
}
}
}
@@ -226,8 +227,6 @@
}
}
-
-
private void addPersisterHack(Element class_mapping) {
String persisterClassName;
if (HibernateVersion.get().startsWith("3.3")) {
Modified: trunk/src/main/org/jboss/envers/tools/reflection/YReflectionManager.java
===================================================================
--- trunk/src/main/org/jboss/envers/tools/reflection/YReflectionManager.java 2008-10-23 07:48:17 UTC (rev 184)
+++ trunk/src/main/org/jboss/envers/tools/reflection/YReflectionManager.java 2008-10-24 10:41:00 UTC (rev 185)
@@ -37,7 +37,16 @@
private final YMethodsAndClasses ymc;
public YReflectionManager(Configuration cfg) throws Exception {
- delegate = cfg.getClass().getMethod("getReflectionManager").invoke(cfg);
+ Object delegateTemp;
+ try {
+ delegateTemp = cfg.getClass().getMethod("getReflectionManager").invoke(cfg);
+ } catch (NoSuchMethodException e) {
+ // TODO - what if there it's a pure Hibernate envirionment?
+ delegateTemp = ReflectionTools
+ .loadClass("org.hibernate.cfg.annotations.reflection.EJB3ReflectionManager")
+ .newInstance();
+ }
+ delegate = delegateTemp;
ymc = new YMethodsAndClasses(delegate.getClass());
}
Copied: trunk/src/test/org/jboss/envers/test/integration/notinsertable/NotInsertable.java (from rev 174, trunk/src/test/org/jboss/envers/test/integration/data/Dates.java)
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/notinsertable/NotInsertable.java (rev 0)
+++ trunk/src/test/org/jboss/envers/test/integration/notinsertable/NotInsertable.java 2008-10-24 10:41:00 UTC (rev 185)
@@ -0,0 +1,49 @@
+package org.jboss.envers.test.integration.notinsertable;
+
+import org.jboss.envers.test.AbstractEntityTest;
+import org.hibernate.ejb.Ejb3Configuration;
+import org.testng.annotations.Test;
+import org.testng.annotations.BeforeClass;
+
+import javax.persistence.EntityManager;
+import java.util.Arrays;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class NotInsertable extends AbstractEntityTest {
+ private Integer id1;
+
+ public void configure(Ejb3Configuration cfg) {
+ cfg.addAnnotatedClass(NotInsertableTestEntity.class);
+ }
+
+ @BeforeClass(dependsOnMethods = "init")
+ public void initData() {
+ EntityManager em = getEntityManager();
+ em.getTransaction().begin();
+ NotInsertableTestEntity dte = new NotInsertableTestEntity("data1");
+ em.persist(dte);
+ id1 = dte.getId();
+ em.getTransaction().commit();
+
+ em.getTransaction().begin();
+ dte = em.find(NotInsertableTestEntity.class, id1);
+ dte.setData("data2");
+ em.getTransaction().commit();
+ }
+
+ @Test
+ public void testRevisionsCounts() {
+ assert Arrays.asList(1, 2).equals(getVersionsReader().getRevisions(NotInsertableTestEntity.class, id1));
+ }
+
+ @Test
+ public void testHistoryOfId1() {
+ NotInsertableTestEntity ver1 = new NotInsertableTestEntity(id1, "data1", "data1");
+ NotInsertableTestEntity ver2 = new NotInsertableTestEntity(id1, "data2", "data2");
+
+ assert getVersionsReader().find(NotInsertableTestEntity.class, id1, 1).equals(ver1);
+ assert getVersionsReader().find(NotInsertableTestEntity.class, id1, 2).equals(ver2);
+ }
+}
\ No newline at end of file
Property changes on: trunk/src/test/org/jboss/envers/test/integration/notinsertable/NotInsertable.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/src/test/org/jboss/envers/test/integration/notinsertable/NotInsertableTestEntity.java (from rev 173, trunk/src/test/org/jboss/envers/test/integration/data/DateTestEntity.java)
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/notinsertable/NotInsertableTestEntity.java (rev 0)
+++ trunk/src/test/org/jboss/envers/test/integration/notinsertable/NotInsertableTestEntity.java 2008-10-24 10:41:00 UTC (rev 185)
@@ -0,0 +1,83 @@
+package org.jboss.envers.test.integration.notinsertable;
+
+import org.jboss.envers.Versioned;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Column;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+ at Entity
+ at Versioned
+public class NotInsertableTestEntity {
+ @Id
+ @GeneratedValue
+ private Integer id;
+
+ @Column(name = "data")
+ private String data;
+
+ @Column(name = "data", insertable = false, updatable = false)
+ private String dataCopy;
+
+ public NotInsertableTestEntity() {
+ }
+
+ public NotInsertableTestEntity(Integer id, String data, String dataCopy) {
+ this.id = id;
+ this.data = data;
+ this.dataCopy = dataCopy;
+ }
+
+ public NotInsertableTestEntity(String data) {
+ this.data = data;
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public String getDataCopy() {
+ return dataCopy;
+ }
+
+ public void setDataCopy(String dataCopy) {
+ this.dataCopy = dataCopy;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof NotInsertableTestEntity)) return false;
+
+ NotInsertableTestEntity that = (NotInsertableTestEntity) o;
+
+ if (data != null ? !data.equals(that.data) : that.data != null) return false;
+ if (dataCopy != null ? !dataCopy.equals(that.dataCopy) : that.dataCopy != null) return false;
+ if (id != null ? !id.equals(that.id) : that.id != null) return false;
+
+ return true;
+ }
+
+ public int hashCode() {
+ int result;
+ result = (id != null ? id.hashCode() : 0);
+ result = 31 * result + (data != null ? data.hashCode() : 0);
+ result = 31 * result + (dataCopy != null ? dataCopy.hashCode() : 0);
+ return result;
+ }
+}
\ No newline at end of file
Property changes on: trunk/src/test/org/jboss/envers/test/integration/notinsertable/NotInsertableTestEntity.java
___________________________________________________________________
Name: svn:mergeinfo
+