[hibernate-commits] Hibernate SVN: r15507 - core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Tue Nov 4 17:18:48 EST 2008
Author: adamw
Date: 2008-11-04 17:18:48 -0500 (Tue, 04 Nov 2008)
New Revision: 15507
Modified:
core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AnnotationsMetadataReader.java
Log:
HHH-3570: compatibility classes - detecting @Versioned annotation
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AnnotationsMetadataReader.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AnnotationsMetadataReader.java 2008-11-04 22:11:07 UTC (rev 15506)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AnnotationsMetadataReader.java 2008-11-04 22:18:48 UTC (rev 15507)
@@ -32,6 +32,7 @@
import org.hibernate.envers.SecondaryAuditTable;
import org.hibernate.envers.*;
+import org.hibernate.envers.ModificationStore;
import org.hibernate.envers.tools.Tools;
import org.hibernate.envers.configuration.GlobalConfiguration;
@@ -41,6 +42,7 @@
import org.hibernate.annotations.common.reflection.XProperty;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Property;
+import org.jboss.envers.*;
/**
* A helper class to read versioning meta-data from annotations on a persistent class.
@@ -79,6 +81,13 @@
fieldPersistentProperties = Tools.newHashSet();
}
+ private ModificationStore translateModStore(org.jboss.envers.ModificationStore store) {
+ switch (store) {
+ case FULL: return ModificationStore.FULL;
+ default: throw new AssertionError("Illegal modification store: " + store + "!");
+ }
+ }
+
/**
* Checks if a property is audited and if yes, sets its modification store on the supplied property data.
* @param property Property to check.
@@ -111,10 +120,14 @@
}
// Checking if this property is explicitly audited or if all properties are.
- Audited ver = property.getAnnotation(Audited.class);
- if (ver != null) {
- propertyData.setStore(ver.modStore());
+ Audited aud = property.getAnnotation(Audited.class);
+ Versioned ver = property.getAnnotation(Versioned.class);
+ if (aud != null) {
+ propertyData.setStore(aud.modStore());
return true;
+ } else if (ver != null) {
+ propertyData.setStore(translateModStore(ver.modStore()));
+ return true;
} else {
if (defaultStore != null) {
propertyData.setStore(defaultStore);
@@ -173,6 +186,11 @@
if (defaultAudited != null) {
defaultStore = defaultAudited.modStore();
+ } else {
+ Versioned defaultVersioned = clazz.getAnnotation(Versioned.class);
+ if (defaultVersioned != null) {
+ defaultStore = translateModStore(defaultVersioned.modStore());
+ }
}
}
More information about the hibernate-commits
mailing list