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 @@ + + - + @@ -27,11 +29,33 @@ + + + + - +
Title:Title (required):
Links: + +
    + +
  • + #{link} + +
  • +
    +
+
+ 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

+
+ +
    + +
  • #{link}
  • +
    +
+
+ +
+ #{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 + + +
    + +
  • #{link}
  • +
    +
+
+
+ + + 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 +