[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