From: <epb...@us...> - 2006-02-10 16:33:12
|
Update of /cvsroot/hibernate/HibernateExt/metadata/src/java/org/hibernate/cfg In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7960/metadata/src/java/org/hibernate/cfg Modified Files: AnnotationBinder.java AnnotationConfiguration.java Log Message: ANN-234 validation has to be dones after the 2nd pass Index: AnnotationBinder.java =================================================================== RCS file: /cvsroot/hibernate/HibernateExt/metadata/src/java/org/hibernate/cfg/AnnotationBinder.java,v retrieving revision 1.171 retrieving revision 1.172 diff -u -d -r1.171 -r1.172 --- AnnotationBinder.java 26 Jan 2006 15:02:55 -0000 1.171 +++ AnnotationBinder.java 10 Feb 2006 16:32:55 -0000 1.172 @@ -13,6 +13,7 @@ import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.DiscriminatorType; +import javax.persistence.DiscriminatorValue; import javax.persistence.Embeddable; import javax.persistence.Embedded; import javax.persistence.EmbeddedId; @@ -42,7 +43,6 @@ import javax.persistence.SqlResultSetMapping; import javax.persistence.TableGenerator; import javax.persistence.Version; -import javax.persistence.DiscriminatorValue; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -113,7 +113,6 @@ import org.hibernate.type.ForeignKeyDirection; import org.hibernate.type.TypeFactory; import org.hibernate.util.StringHelper; -import org.hibernate.validator.ClassValidator; /** * JSR 175 annotation binder @@ -666,9 +665,6 @@ entityBinder.addIndexes( annotatedClass.getAnnotation( org.hibernate.annotations.Table.class ) ); entityBinder.addIndexes( annotatedClass.getAnnotation( org.hibernate.annotations.Tables.class ) ); - //integrate the validate framework - // TODO: migrate the Validator to the X layer - new ClassValidator( clazzToProcess.toClass() ).apply( persistentClass ); } /** Index: AnnotationConfiguration.java =================================================================== RCS file: /cvsroot/hibernate/HibernateExt/metadata/src/java/org/hibernate/cfg/AnnotationConfiguration.java,v retrieving revision 1.48 retrieving revision 1.49 diff -u -d -r1.48 -r1.49 --- AnnotationConfiguration.java 25 Jan 2006 21:48:21 -0000 1.48 +++ AnnotationConfiguration.java 10 Feb 2006 16:32:55 -0000 1.49 @@ -12,6 +12,7 @@ import java.util.Properties; import java.util.Set; import java.util.StringTokenizer; +import java.util.Collection; import javax.persistence.MappedSuperclass; import javax.persistence.Entity; @@ -22,14 +23,17 @@ import org.dom4j.Element; import org.hibernate.AnnotationException; import org.hibernate.MappingException; +import org.hibernate.validator.ClassValidator; import org.hibernate.mapping.Column; import org.hibernate.mapping.Join; import org.hibernate.mapping.Table; import org.hibernate.mapping.UniqueKey; +import org.hibernate.mapping.PersistentClass; import org.hibernate.reflection.ReflectionManager; import org.hibernate.reflection.XClass; import org.hibernate.util.JoinedIterator; import org.hibernate.util.ReflectHelper; +import org.hibernate.util.StringHelper; /** * Add JSR 175 configuration capability. @@ -107,7 +111,7 @@ * @return the configuration object */ public AnnotationConfiguration addAnnotatedClass(Class persistentClass) throws MappingException { - XClass persistentXClass = ReflectionManager.INSTANCE.toXClass( persistentClass ); + XClass persistentXClass = ReflectionManager.INSTANCE.toXClass( persistentClass ); try { if ( persistentXClass.isAnnotationPresent( Entity.class ) ) { annotatedClassEntities.put( persistentXClass.getName(), persistentXClass ); @@ -255,6 +259,19 @@ buildUniqueKeyFromColumnNames( columnNames, table, keyName ); } } + for (PersistentClass persistentClazz : ( Collection < PersistentClass > ) classes.values() ) { + //integrate the validate framework + // TODO: migrate the Validator to the X layer + String className = persistentClazz.getClassName(); + if ( StringHelper.isNotEmpty( className ) ) { + try { + new ClassValidator( ReflectHelper.classForName( className ) ).apply( persistentClazz ); + } + catch (ClassNotFoundException e) { + //swallow them + } + } + } } private void processArtifactsOfType(String artifact) { @@ -379,7 +396,7 @@ ncdf ); } - + addAnnotatedClass( loadedClass ); } else { |