Hibernate SVN: r20227 - in core/branches/Branch_3_5/envers/src: test/java/org/hibernate/envers/test/entities/manytomany/unidirectional and 1 other directories.
by hibernate-commits@lists.jboss.org
Author: adamw
Date: 2010-08-23 10:49:35 -0400 (Mon, 23 Aug 2010)
New Revision: 20227
Added:
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/entities/manytomany/unidirectional/M2MIndexedListTargetNotAuditedEntity.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/unidirectional/M2MIndexedListNotAuditedTarget.java
Modified:
core/branches/Branch_3_5/envers/src/main/java/org/hibernate/envers/entities/mapper/relation/lazy/initializor/ListCollectionInitializor.java
Log:
HHH-5142:
Exception when initializing lazy @ManyToMany indexed collection containing not audited entities
Modified: core/branches/Branch_3_5/envers/src/main/java/org/hibernate/envers/entities/mapper/relation/lazy/initializor/ListCollectionInitializor.java
===================================================================
--- core/branches/Branch_3_5/envers/src/main/java/org/hibernate/envers/entities/mapper/relation/lazy/initializor/ListCollectionInitializor.java 2010-08-23 14:21:30 UTC (rev 20226)
+++ core/branches/Branch_3_5/envers/src/main/java/org/hibernate/envers/entities/mapper/relation/lazy/initializor/ListCollectionInitializor.java 2010-08-23 14:49:35 UTC (rev 20227)
@@ -23,15 +23,15 @@
*/
package org.hibernate.envers.entities.mapper.relation.lazy.initializor;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
import org.hibernate.envers.configuration.AuditConfiguration;
import org.hibernate.envers.entities.mapper.relation.MiddleComponentData;
import org.hibernate.envers.entities.mapper.relation.query.RelationQueryGenerator;
import org.hibernate.envers.reader.AuditReaderImplementor;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
/**
* Initializes a map.
* @author Adam Warski (adam at warski dot org)
@@ -64,8 +64,10 @@
@SuppressWarnings({"unchecked"})
protected void addToCollection(List collection, Object collectionRow) {
Object elementData = ((List) collectionRow).get(elementComponentData.getComponentIndex());
- Object element = elementComponentData.getComponentMapper().mapToObjectFromFullMap(entityInstantiator,
- (Map<String, Object>) elementData, null, revision);
+ Object element = elementData instanceof Map ?
+ elementComponentData.getComponentMapper().mapToObjectFromFullMap(entityInstantiator,
+ (Map<String, Object>) elementData, null, revision)
+ : elementData ;
Object indexData = ((List) collectionRow).get(indexComponentData.getComponentIndex());
Object indexObj = indexComponentData.getComponentMapper().mapToObjectFromFullMap(entityInstantiator,
@@ -74,4 +76,4 @@
collection.set(index, element);
}
-}
\ No newline at end of file
+}
Copied: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/entities/manytomany/unidirectional/M2MIndexedListTargetNotAuditedEntity.java (from rev 20226, core/trunk/envers/src/test/java/org/hibernate/envers/test/entities/manytomany/unidirectional/M2MIndexedListTargetNotAuditedEntity.java)
===================================================================
--- core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/entities/manytomany/unidirectional/M2MIndexedListTargetNotAuditedEntity.java (rev 0)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/entities/manytomany/unidirectional/M2MIndexedListTargetNotAuditedEntity.java 2010-08-23 14:49:35 UTC (rev 20227)
@@ -0,0 +1,92 @@
+package org.hibernate.envers.test.entities.manytomany.unidirectional;
+
+import org.hibernate.envers.Audited;
+import org.hibernate.envers.RelationTargetAuditMode;
+import org.hibernate.envers.test.entities.UnversionedStrTestEntity;
+
+import javax.persistence.*;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Vladimir Klyushnikov
+ */
+@Entity
+public class M2MIndexedListTargetNotAuditedEntity {
+
+ @Id
+ private Integer id;
+
+ @Audited
+ private String data;
+
+ @Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
+ @OrderColumn(name = "sortOrder")
+ @ManyToMany(fetch = FetchType.LAZY)
+ private List<UnversionedStrTestEntity> references = new ArrayList<UnversionedStrTestEntity>();
+
+
+ public M2MIndexedListTargetNotAuditedEntity() {
+ }
+
+
+ public M2MIndexedListTargetNotAuditedEntity(Integer id, String data) {
+ this.id = id;
+ this.data = data;
+ }
+
+ public M2MIndexedListTargetNotAuditedEntity(Integer id, String data, List<UnversionedStrTestEntity> references) {
+ this.id = id;
+ this.data = data;
+ this.references = references;
+ }
+
+ 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 List<UnversionedStrTestEntity> getReferences() {
+ return references;
+ }
+
+ public void setReferences(List<UnversionedStrTestEntity> references) {
+ this.references = references;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ M2MIndexedListTargetNotAuditedEntity that = (M2MIndexedListTargetNotAuditedEntity) o;
+
+ //noinspection RedundantIfStatement
+ if (data != null ? !data.equals(that.data) : that.data != null) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return data != null ? data.hashCode() : 0;
+ }
+
+
+ @Override
+ public String toString() {
+ return "M2MIndexedListTargetNotAuditedEntity(id = " + id + ", data = " + data + ")";
+ }
+}
Copied: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/unidirectional/M2MIndexedListNotAuditedTarget.java (from rev 20226, core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/unidirectional/M2MIndexedListNotAuditedTarget.java)
===================================================================
--- core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/unidirectional/M2MIndexedListNotAuditedTarget.java (rev 0)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/unidirectional/M2MIndexedListNotAuditedTarget.java 2010-08-23 14:49:35 UTC (rev 20227)
@@ -0,0 +1,119 @@
+package org.hibernate.envers.test.integration.manytomany.unidirectional;
+
+import org.hibernate.ejb.Ejb3Configuration;
+import org.hibernate.envers.test.AbstractEntityTest;
+import org.hibernate.envers.test.entities.UnversionedStrTestEntity;
+import org.hibernate.envers.test.entities.manytomany.unidirectional.M2MIndexedListTargetNotAuditedEntity;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import javax.persistence.EntityManager;
+
+import java.util.Arrays;
+import java.util.List;
+
+import static org.hibernate.envers.test.tools.TestTools.checkList;
+import static org.testng.Assert.*;
+
+/**
+ * A test for auditing a many-to-many indexed list where the target entity is not audited.
+ *
+ * @author Vladimir Klyushnikov
+ * @author Adam Warski
+ */
+public class M2MIndexedListNotAuditedTarget extends AbstractEntityTest {
+ private Integer itnae1_id;
+ private Integer itnae2_id;
+
+ private UnversionedStrTestEntity uste1;
+ private UnversionedStrTestEntity uste2;
+
+
+ public void configure(Ejb3Configuration cfg) {
+ cfg.addAnnotatedClass(UnversionedStrTestEntity.class);
+ cfg.addAnnotatedClass(M2MIndexedListTargetNotAuditedEntity.class);
+ }
+
+ @BeforeClass(dependsOnMethods = "init")
+ public void initData() {
+ EntityManager em = getEntityManager();
+
+ uste1 = new UnversionedStrTestEntity("str1");
+ uste2 = new UnversionedStrTestEntity("str2");
+
+ // No revision
+ em.getTransaction().begin();
+
+ em.persist(uste1);
+ em.persist(uste2);
+
+ em.getTransaction().commit();
+
+ // Revision 1
+ em.getTransaction().begin();
+
+ uste1 = em.find(UnversionedStrTestEntity.class, uste1.getId());
+ uste2 = em.find(UnversionedStrTestEntity.class, uste2.getId());
+
+ M2MIndexedListTargetNotAuditedEntity itnae1 = new M2MIndexedListTargetNotAuditedEntity(1, "tnae1");
+
+ itnae1.getReferences().add(uste1);
+ itnae1.getReferences().add(uste2);
+
+ em.persist(itnae1);
+
+ em.getTransaction().commit();
+
+ // Revision 2
+ em.getTransaction().begin();
+
+ M2MIndexedListTargetNotAuditedEntity itnae2 = new M2MIndexedListTargetNotAuditedEntity(2, "tnae2");
+
+ itnae2.getReferences().add(uste2);
+
+ em.persist(itnae2);
+
+ em.getTransaction().commit();
+
+ // Revision 3
+ em.getTransaction().begin();
+
+ itnae1.getReferences().set(0, uste2);
+ itnae1.getReferences().set(1, uste1);
+ em.getTransaction().commit();
+
+ itnae1_id = itnae1.getId();
+ itnae2_id = itnae2.getId();
+ }
+
+ @Test
+ public void testRevisionsCounts() {
+ List<Number> revisions = getAuditReader().getRevisions(M2MIndexedListTargetNotAuditedEntity.class, itnae1_id);
+ assertEquals(revisions, Arrays.asList(1, 3));
+
+ revisions = getAuditReader().getRevisions(M2MIndexedListTargetNotAuditedEntity.class, itnae2_id);
+ assertEquals(revisions, Arrays.asList(2));
+ }
+
+ @Test
+ public void testHistory1() throws Exception {
+ M2MIndexedListTargetNotAuditedEntity rev1 = getAuditReader().find(M2MIndexedListTargetNotAuditedEntity.class, itnae1_id, 1);
+ M2MIndexedListTargetNotAuditedEntity rev2 = getAuditReader().find(M2MIndexedListTargetNotAuditedEntity.class, itnae1_id, 2);
+ M2MIndexedListTargetNotAuditedEntity rev3 = getAuditReader().find(M2MIndexedListTargetNotAuditedEntity.class, itnae1_id, 3);
+
+ assertTrue(checkList(rev1.getReferences(), uste1, uste2));
+ assertTrue(checkList(rev2.getReferences(), uste1, uste2));
+ assertTrue(checkList(rev3.getReferences(), uste2, uste1));
+ }
+
+ @Test
+ public void testHistory2() throws Exception {
+ M2MIndexedListTargetNotAuditedEntity rev1 = getAuditReader().find(M2MIndexedListTargetNotAuditedEntity.class, itnae2_id, 1);
+ M2MIndexedListTargetNotAuditedEntity rev2 = getAuditReader().find(M2MIndexedListTargetNotAuditedEntity.class, itnae2_id, 2);
+ M2MIndexedListTargetNotAuditedEntity rev3 = getAuditReader().find(M2MIndexedListTargetNotAuditedEntity.class, itnae2_id, 3);
+
+ assertNull(rev1);
+ assertTrue(checkList(rev2.getReferences(), uste2));
+ assertTrue(checkList(rev3.getReferences(), uste2));
+ }
+}
15 years, 4 months
Hibernate SVN: r20226 - in core/trunk/envers/src: test/java/org/hibernate/envers/test/entities/manytomany/unidirectional and 1 other directories.
by hibernate-commits@lists.jboss.org
Author: adamw
Date: 2010-08-23 10:21:30 -0400 (Mon, 23 Aug 2010)
New Revision: 20226
Added:
core/trunk/envers/src/test/java/org/hibernate/envers/test/entities/manytomany/unidirectional/M2MIndexedListTargetNotAuditedEntity.java
core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/unidirectional/M2MIndexedListNotAuditedTarget.java
Modified:
core/trunk/envers/src/main/java/org/hibernate/envers/entities/mapper/relation/lazy/initializor/ListCollectionInitializor.java
Log:
HHH-5142:
Exception when initializing lazy @ManyToMany indexed collection containing not audited entities
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/entities/mapper/relation/lazy/initializor/ListCollectionInitializor.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/entities/mapper/relation/lazy/initializor/ListCollectionInitializor.java 2010-08-23 14:02:20 UTC (rev 20225)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/entities/mapper/relation/lazy/initializor/ListCollectionInitializor.java 2010-08-23 14:21:30 UTC (rev 20226)
@@ -23,15 +23,15 @@
*/
package org.hibernate.envers.entities.mapper.relation.lazy.initializor;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
import org.hibernate.envers.configuration.AuditConfiguration;
import org.hibernate.envers.entities.mapper.relation.MiddleComponentData;
import org.hibernate.envers.entities.mapper.relation.query.RelationQueryGenerator;
import org.hibernate.envers.reader.AuditReaderImplementor;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
/**
* Initializes a map.
* @author Adam Warski (adam at warski dot org)
@@ -64,8 +64,10 @@
@SuppressWarnings({"unchecked"})
protected void addToCollection(List collection, Object collectionRow) {
Object elementData = ((List) collectionRow).get(elementComponentData.getComponentIndex());
- Object element = elementComponentData.getComponentMapper().mapToObjectFromFullMap(entityInstantiator,
- (Map<String, Object>) elementData, null, revision);
+ Object element = elementData instanceof Map ?
+ elementComponentData.getComponentMapper().mapToObjectFromFullMap(entityInstantiator,
+ (Map<String, Object>) elementData, null, revision)
+ : elementData ;
Object indexData = ((List) collectionRow).get(indexComponentData.getComponentIndex());
Object indexObj = indexComponentData.getComponentMapper().mapToObjectFromFullMap(entityInstantiator,
@@ -74,4 +76,4 @@
collection.set(index, element);
}
-}
\ No newline at end of file
+}
Added: core/trunk/envers/src/test/java/org/hibernate/envers/test/entities/manytomany/unidirectional/M2MIndexedListTargetNotAuditedEntity.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/entities/manytomany/unidirectional/M2MIndexedListTargetNotAuditedEntity.java (rev 0)
+++ core/trunk/envers/src/test/java/org/hibernate/envers/test/entities/manytomany/unidirectional/M2MIndexedListTargetNotAuditedEntity.java 2010-08-23 14:21:30 UTC (rev 20226)
@@ -0,0 +1,92 @@
+package org.hibernate.envers.test.entities.manytomany.unidirectional;
+
+import org.hibernate.envers.Audited;
+import org.hibernate.envers.RelationTargetAuditMode;
+import org.hibernate.envers.test.entities.UnversionedStrTestEntity;
+
+import javax.persistence.*;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Vladimir Klyushnikov
+ */
+@Entity
+public class M2MIndexedListTargetNotAuditedEntity {
+
+ @Id
+ private Integer id;
+
+ @Audited
+ private String data;
+
+ @Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
+ @OrderColumn(name = "sortOrder")
+ @ManyToMany(fetch = FetchType.LAZY)
+ private List<UnversionedStrTestEntity> references = new ArrayList<UnversionedStrTestEntity>();
+
+
+ public M2MIndexedListTargetNotAuditedEntity() {
+ }
+
+
+ public M2MIndexedListTargetNotAuditedEntity(Integer id, String data) {
+ this.id = id;
+ this.data = data;
+ }
+
+ public M2MIndexedListTargetNotAuditedEntity(Integer id, String data, List<UnversionedStrTestEntity> references) {
+ this.id = id;
+ this.data = data;
+ this.references = references;
+ }
+
+ 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 List<UnversionedStrTestEntity> getReferences() {
+ return references;
+ }
+
+ public void setReferences(List<UnversionedStrTestEntity> references) {
+ this.references = references;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ M2MIndexedListTargetNotAuditedEntity that = (M2MIndexedListTargetNotAuditedEntity) o;
+
+ //noinspection RedundantIfStatement
+ if (data != null ? !data.equals(that.data) : that.data != null) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return data != null ? data.hashCode() : 0;
+ }
+
+
+ @Override
+ public String toString() {
+ return "M2MIndexedListTargetNotAuditedEntity(id = " + id + ", data = " + data + ")";
+ }
+}
Added: core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/unidirectional/M2MIndexedListNotAuditedTarget.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/unidirectional/M2MIndexedListNotAuditedTarget.java (rev 0)
+++ core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/unidirectional/M2MIndexedListNotAuditedTarget.java 2010-08-23 14:21:30 UTC (rev 20226)
@@ -0,0 +1,119 @@
+package org.hibernate.envers.test.integration.manytomany.unidirectional;
+
+import org.hibernate.ejb.Ejb3Configuration;
+import org.hibernate.envers.test.AbstractEntityTest;
+import org.hibernate.envers.test.entities.UnversionedStrTestEntity;
+import org.hibernate.envers.test.entities.manytomany.unidirectional.M2MIndexedListTargetNotAuditedEntity;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import javax.persistence.EntityManager;
+
+import java.util.Arrays;
+import java.util.List;
+
+import static org.hibernate.envers.test.tools.TestTools.checkList;
+import static org.testng.Assert.*;
+
+/**
+ * A test for auditing a many-to-many indexed list where the target entity is not audited.
+ *
+ * @author Vladimir Klyushnikov
+ * @author Adam Warski
+ */
+public class M2MIndexedListNotAuditedTarget extends AbstractEntityTest {
+ private Integer itnae1_id;
+ private Integer itnae2_id;
+
+ private UnversionedStrTestEntity uste1;
+ private UnversionedStrTestEntity uste2;
+
+
+ public void configure(Ejb3Configuration cfg) {
+ cfg.addAnnotatedClass(UnversionedStrTestEntity.class);
+ cfg.addAnnotatedClass(M2MIndexedListTargetNotAuditedEntity.class);
+ }
+
+ @BeforeClass(dependsOnMethods = "init")
+ public void initData() {
+ EntityManager em = getEntityManager();
+
+ uste1 = new UnversionedStrTestEntity("str1");
+ uste2 = new UnversionedStrTestEntity("str2");
+
+ // No revision
+ em.getTransaction().begin();
+
+ em.persist(uste1);
+ em.persist(uste2);
+
+ em.getTransaction().commit();
+
+ // Revision 1
+ em.getTransaction().begin();
+
+ uste1 = em.find(UnversionedStrTestEntity.class, uste1.getId());
+ uste2 = em.find(UnversionedStrTestEntity.class, uste2.getId());
+
+ M2MIndexedListTargetNotAuditedEntity itnae1 = new M2MIndexedListTargetNotAuditedEntity(1, "tnae1");
+
+ itnae1.getReferences().add(uste1);
+ itnae1.getReferences().add(uste2);
+
+ em.persist(itnae1);
+
+ em.getTransaction().commit();
+
+ // Revision 2
+ em.getTransaction().begin();
+
+ M2MIndexedListTargetNotAuditedEntity itnae2 = new M2MIndexedListTargetNotAuditedEntity(2, "tnae2");
+
+ itnae2.getReferences().add(uste2);
+
+ em.persist(itnae2);
+
+ em.getTransaction().commit();
+
+ // Revision 3
+ em.getTransaction().begin();
+
+ itnae1.getReferences().set(0, uste2);
+ itnae1.getReferences().set(1, uste1);
+ em.getTransaction().commit();
+
+ itnae1_id = itnae1.getId();
+ itnae2_id = itnae2.getId();
+ }
+
+ @Test
+ public void testRevisionsCounts() {
+ List<Number> revisions = getAuditReader().getRevisions(M2MIndexedListTargetNotAuditedEntity.class, itnae1_id);
+ assertEquals(revisions, Arrays.asList(1, 3));
+
+ revisions = getAuditReader().getRevisions(M2MIndexedListTargetNotAuditedEntity.class, itnae2_id);
+ assertEquals(revisions, Arrays.asList(2));
+ }
+
+ @Test
+ public void testHistory1() throws Exception {
+ M2MIndexedListTargetNotAuditedEntity rev1 = getAuditReader().find(M2MIndexedListTargetNotAuditedEntity.class, itnae1_id, 1);
+ M2MIndexedListTargetNotAuditedEntity rev2 = getAuditReader().find(M2MIndexedListTargetNotAuditedEntity.class, itnae1_id, 2);
+ M2MIndexedListTargetNotAuditedEntity rev3 = getAuditReader().find(M2MIndexedListTargetNotAuditedEntity.class, itnae1_id, 3);
+
+ assertTrue(checkList(rev1.getReferences(), uste1, uste2));
+ assertTrue(checkList(rev2.getReferences(), uste1, uste2));
+ assertTrue(checkList(rev3.getReferences(), uste2, uste1));
+ }
+
+ @Test
+ public void testHistory2() throws Exception {
+ M2MIndexedListTargetNotAuditedEntity rev1 = getAuditReader().find(M2MIndexedListTargetNotAuditedEntity.class, itnae2_id, 1);
+ M2MIndexedListTargetNotAuditedEntity rev2 = getAuditReader().find(M2MIndexedListTargetNotAuditedEntity.class, itnae2_id, 2);
+ M2MIndexedListTargetNotAuditedEntity rev3 = getAuditReader().find(M2MIndexedListTargetNotAuditedEntity.class, itnae2_id, 3);
+
+ assertNull(rev1);
+ assertTrue(checkList(rev2.getReferences(), uste2));
+ assertTrue(checkList(rev3.getReferences(), uste2));
+ }
+}
15 years, 4 months
Hibernate SVN: r20225 - in beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests: bootstrap/customprovider and 3 other directories.
by hibernate-commits@lists.jboss.org
Author: hardy.ferentschik
Date: 2010-08-23 10:02:20 -0400 (Mon, 23 Aug 2010)
New Revision: 20225
Modified:
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/ConfigurationTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/CustomMessageInterpolatorTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/ValidationProviderResolverTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/ValidationProviderTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/BootstrapCustomProviderDefinedInValidationXmlTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/BootstrapUnknownCustomProviderTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/constraints/groups/inheritance/GroupInheritanceTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/PropertyPathTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/UnknownProviderBootstrapTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidatePropertyTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidateTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidateValueTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidateWithGroupsTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidationTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/DuplicateConfigurationTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/InvalidXmlConfigurationTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/MissingClassNameOnBeanNodeTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/OptionalValidationXmlTest.java
beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/XmlConfigurationTest.java
Log:
BVTCK-7 Updated packages with multiple test classes to include the union of all required test classes in all created artifacts
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/ConfigurationTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/ConfigurationTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/ConfigurationTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -26,17 +26,25 @@
import org.jboss.testharness.impl.packaging.Artifact;
import org.jboss.testharness.impl.packaging.ArtifactType;
import org.jboss.testharness.impl.packaging.Classes;
-import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
+import org.hibernate.jsr303.tck.common.TCKValidationProvider;
+import org.hibernate.jsr303.tck.common.TCKValidatorConfiguration;
import org.hibernate.jsr303.tck.util.TestUtil;
+import static org.testng.Assert.assertTrue;
+
/**
* @author Hardy Ferentschik
*/
@Artifact(artifactType = ArtifactType.JSR303)
@Classes({
- TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class
+ TestUtil.class,
+ TestUtil.PathImpl.class,
+ TestUtil.NodeImpl.class,
+ TCKValidationProvider.class,
+ TCKValidatorConfiguration.class,
+ TCKValidationProvider.DummyValidatorFactory.class
})
public class ConfigurationTest extends AbstractTest {
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/CustomMessageInterpolatorTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/CustomMessageInterpolatorTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/CustomMessageInterpolatorTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -34,18 +34,28 @@
import org.jboss.testharness.impl.packaging.Artifact;
import org.jboss.testharness.impl.packaging.ArtifactType;
import org.jboss.testharness.impl.packaging.Classes;
-import static org.testng.Assert.assertFalse;
import org.testng.annotations.Test;
+import org.hibernate.jsr303.tck.common.TCKValidationProvider;
+import org.hibernate.jsr303.tck.common.TCKValidatorConfiguration;
import org.hibernate.jsr303.tck.util.TestUtil;
+
import static org.hibernate.jsr303.tck.util.TestUtil.assertCorrectConstraintViolationMessages;
import static org.hibernate.jsr303.tck.util.TestUtil.assertCorrectNumberOfViolations;
+import static org.testng.Assert.assertFalse;
/**
* @author Hardy Ferentschik
*/
@Artifact(artifactType = ArtifactType.JSR303)
-@Classes({ TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class })
+@Classes({
+ TestUtil.class,
+ TestUtil.PathImpl.class,
+ TestUtil.NodeImpl.class,
+ TCKValidationProvider.class,
+ TCKValidatorConfiguration.class,
+ TCKValidationProvider.DummyValidatorFactory.class
+})
public class CustomMessageInterpolatorTest extends AbstractTest {
@Test
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/ValidationProviderResolverTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/ValidationProviderResolverTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/ValidationProviderResolverTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -32,13 +32,14 @@
import org.jboss.testharness.impl.packaging.Artifact;
import org.jboss.testharness.impl.packaging.ArtifactType;
import org.jboss.testharness.impl.packaging.Classes;
-import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
import org.hibernate.jsr303.tck.common.TCKValidationProvider;
import org.hibernate.jsr303.tck.common.TCKValidatorConfiguration;
import org.hibernate.jsr303.tck.util.TestUtil;
+import static org.testng.Assert.assertTrue;
+
/**
* @author Hardy Ferentschik
*/
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/ValidationProviderTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/ValidationProviderTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/ValidationProviderTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -34,21 +34,26 @@
import org.jboss.testharness.impl.packaging.Artifact;
import org.jboss.testharness.impl.packaging.ArtifactType;
import org.jboss.testharness.impl.packaging.Classes;
-import static org.testng.Assert.assertTrue;
-import static org.testng.FileAssert.fail;
import org.testng.annotations.Test;
import org.hibernate.jsr303.tck.common.TCKValidationProvider;
import org.hibernate.jsr303.tck.common.TCKValidatorConfiguration;
import org.hibernate.jsr303.tck.util.TestUtil;
+import static org.testng.Assert.assertTrue;
+import static org.testng.FileAssert.fail;
+
/**
* @author Hardy Ferentschik
*/
@Artifact(artifactType = ArtifactType.JSR303)
@Classes({
- TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class, TCKValidationProvider.class,
- TCKValidationProvider.DummyValidatorFactory.class, TCKValidatorConfiguration.class
+ TestUtil.class,
+ TestUtil.PathImpl.class,
+ TestUtil.NodeImpl.class,
+ TCKValidationProvider.class,
+ TCKValidationProvider.DummyValidatorFactory.class,
+ TCKValidatorConfiguration.class
})
public class ValidationProviderTest extends AbstractTest {
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/BootstrapCustomProviderDefinedInValidationXmlTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/BootstrapCustomProviderDefinedInValidationXmlTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/BootstrapCustomProviderDefinedInValidationXmlTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -45,6 +45,8 @@
@Artifact(artifactType = ArtifactType.JSR303)
@Classes({
TestUtil.class,
+ TestUtil.PathImpl.class,
+ TestUtil.NodeImpl.class,
TCKValidationProvider.class,
TCKValidatorConfiguration.class,
TCKValidationProvider.DummyValidatorFactory.class
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/BootstrapUnknownCustomProviderTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/BootstrapUnknownCustomProviderTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/BootstrapUnknownCustomProviderTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -24,14 +24,28 @@
import org.jboss.testharness.AbstractTest;
import org.jboss.testharness.impl.packaging.Artifact;
import org.jboss.testharness.impl.packaging.ArtifactType;
+import org.jboss.testharness.impl.packaging.Classes;
import org.jboss.testharness.impl.packaging.jsr303.ValidationXml;
-import static org.testng.Assert.fail;
import org.testng.annotations.Test;
+import org.hibernate.jsr303.tck.common.TCKValidationProvider;
+import org.hibernate.jsr303.tck.common.TCKValidatorConfiguration;
+import org.hibernate.jsr303.tck.util.TestUtil;
+
+import static org.testng.Assert.fail;
+
/**
* @author Hardy Ferentschik
*/
@Artifact(artifactType = ArtifactType.JSR303)
+@Classes({
+ TestUtil.class,
+ TestUtil.PathImpl.class,
+ TestUtil.NodeImpl.class,
+ TCKValidationProvider.class,
+ TCKValidatorConfiguration.class,
+ TCKValidationProvider.DummyValidatorFactory.class
+})
@ValidationXml(value = "validation-BootstrapUnknownCustomProviderTest.xml")
public class BootstrapUnknownCustomProviderTest extends AbstractTest {
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/constraints/groups/inheritance/GroupInheritanceTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/constraints/groups/inheritance/GroupInheritanceTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/constraints/groups/inheritance/GroupInheritanceTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -83,7 +83,7 @@
.unorderedAndMatchingGroups( All.class )
.getConstraintDescriptors();
assertEquals( descriptorsForGroup.size(), 1, "Wrong number of descriptors" );
- assertEquals( descriptorsForGroup.iterator().next().getAnnotation().annotationType(), AssertTrue.class );
+ assertEquals( descriptorsForGroup.iterator().next().getAnnotation().annotationType(), AssertTrue.class );
propertyDescriptor = descriptor.getConstraintsForProperty( "size" );
descriptorsForGroup = propertyDescriptor.findConstraints()
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/PropertyPathTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/PropertyPathTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/PropertyPathTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -45,6 +45,8 @@
import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
+import org.hibernate.jsr303.tck.common.TCKValidationProvider;
+import org.hibernate.jsr303.tck.common.TCKValidatorConfiguration;
import org.hibernate.jsr303.tck.util.TestUtil;
import static org.hibernate.jsr303.tck.util.TestUtil.assertCorrectNumberOfViolations;
@@ -54,7 +56,14 @@
* @author Hardy Ferentschik
*/
@Artifact(artifactType = ArtifactType.JSR303)
-@Classes({ TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class })
+@Classes({
+ TestUtil.class,
+ TestUtil.PathImpl.class,
+ TestUtil.NodeImpl.class,
+ TCKValidationProvider.class,
+ TCKValidationProvider.DummyValidatorFactory.class,
+ TCKValidatorConfiguration.class
+})
public class PropertyPathTest extends AbstractTest {
@Test
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/UnknownProviderBootstrapTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/UnknownProviderBootstrapTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/UnknownProviderBootstrapTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -24,14 +24,27 @@
import org.jboss.testharness.AbstractTest;
import org.jboss.testharness.impl.packaging.Artifact;
import org.jboss.testharness.impl.packaging.ArtifactType;
+import org.jboss.testharness.impl.packaging.Classes;
import org.jboss.testharness.impl.packaging.IntegrationTest;
import org.jboss.testharness.impl.packaging.Resource;
import org.testng.annotations.Test;
+import org.hibernate.jsr303.tck.common.TCKValidationProvider;
+import org.hibernate.jsr303.tck.common.TCKValidatorConfiguration;
+import org.hibernate.jsr303.tck.util.TestUtil;
+
/**
* @author Hardy Ferentschik
*/
@Artifact(artifactType = ArtifactType.JSR303)
+@Classes({
+ TestUtil.class,
+ TestUtil.PathImpl.class,
+ TestUtil.NodeImpl.class,
+ TCKValidationProvider.class,
+ TCKValidationProvider.DummyValidatorFactory.class,
+ TCKValidatorConfiguration.class
+})
@Resource(source = "javax.validation.spi.ValidationProvider",
destination = "WEB-INF/classes/META-INF/services/javax.validation.spi.ValidationProvider")
@IntegrationTest
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidatePropertyTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidatePropertyTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidatePropertyTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -32,6 +32,8 @@
import static org.testng.Assert.fail;
import org.testng.annotations.Test;
+import org.hibernate.jsr303.tck.common.TCKValidationProvider;
+import org.hibernate.jsr303.tck.common.TCKValidatorConfiguration;
import org.hibernate.jsr303.tck.util.TestUtil;
import static org.hibernate.jsr303.tck.util.TestUtil.assertConstraintViolation;
import static org.hibernate.jsr303.tck.util.TestUtil.assertCorrectConstraintTypes;
@@ -44,7 +46,14 @@
* @author Hardy Ferentschik
*/
@Artifact(artifactType = ArtifactType.JSR303)
-@Classes({ TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class })
+@Classes({
+ TestUtil.class,
+ TestUtil.PathImpl.class,
+ TestUtil.NodeImpl.class,
+ TCKValidationProvider.class,
+ TCKValidationProvider.DummyValidatorFactory.class,
+ TCKValidatorConfiguration.class
+})
public class ValidatePropertyTest extends AbstractTest {
@Test
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidateTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidateTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidateTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -41,6 +41,8 @@
import static org.testng.Assert.fail;
import org.testng.annotations.Test;
+import org.hibernate.jsr303.tck.common.TCKValidationProvider;
+import org.hibernate.jsr303.tck.common.TCKValidatorConfiguration;
import org.hibernate.jsr303.tck.util.TestUtil;
import static org.hibernate.jsr303.tck.util.TestUtil.assertConstraintViolation;
import static org.hibernate.jsr303.tck.util.TestUtil.assertCorrectConstraintTypes;
@@ -53,7 +55,14 @@
* @author Hardy Ferentschik
*/
@Artifact(artifactType = ArtifactType.JSR303)
-@Classes({ TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class })
+@Classes({
+ TestUtil.class,
+ TestUtil.PathImpl.class,
+ TestUtil.NodeImpl.class,
+ TCKValidationProvider.class,
+ TCKValidationProvider.DummyValidatorFactory.class,
+ TCKValidatorConfiguration.class
+})
public class ValidateTest extends AbstractTest {
@Test
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidateValueTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidateValueTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidateValueTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -31,6 +31,8 @@
import static org.testng.Assert.fail;
import org.testng.annotations.Test;
+import org.hibernate.jsr303.tck.common.TCKValidationProvider;
+import org.hibernate.jsr303.tck.common.TCKValidatorConfiguration;
import org.hibernate.jsr303.tck.util.TestUtil;
import static org.hibernate.jsr303.tck.util.TestUtil.assertConstraintViolation;
import static org.hibernate.jsr303.tck.util.TestUtil.assertCorrectConstraintViolationMessages;
@@ -43,7 +45,14 @@
* @author Hardy Ferentschik
*/
@Artifact(artifactType = ArtifactType.JSR303)
-@Classes({ TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class })
+@Classes({
+ TestUtil.class,
+ TestUtil.PathImpl.class,
+ TestUtil.NodeImpl.class,
+ TCKValidationProvider.class,
+ TCKValidationProvider.DummyValidatorFactory.class,
+ TCKValidatorConfiguration.class
+})
public class ValidateValueTest extends AbstractTest {
@Test
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidateWithGroupsTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidateWithGroupsTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidateWithGroupsTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -31,6 +31,8 @@
import org.jboss.testharness.impl.packaging.Classes;
import org.testng.annotations.Test;
+import org.hibernate.jsr303.tck.common.TCKValidationProvider;
+import org.hibernate.jsr303.tck.common.TCKValidatorConfiguration;
import org.hibernate.jsr303.tck.util.TestUtil;
import static org.hibernate.jsr303.tck.util.TestUtil.assertCorrectConstraintTypes;
import static org.hibernate.jsr303.tck.util.TestUtil.assertCorrectNumberOfViolations;
@@ -42,7 +44,14 @@
* @author Hardy Ferentschik
*/
@Artifact(artifactType = ArtifactType.JSR303)
-@Classes({ TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class })
+@Classes({
+ TestUtil.class,
+ TestUtil.PathImpl.class,
+ TestUtil.NodeImpl.class,
+ TCKValidationProvider.class,
+ TCKValidationProvider.DummyValidatorFactory.class,
+ TCKValidatorConfiguration.class
+})
public class ValidateWithGroupsTest extends AbstractTest {
@Test
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidationTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidationTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/validation/ValidationTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -53,8 +53,12 @@
*/
@Artifact(artifactType = ArtifactType.JSR303)
@Classes({
- TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class, TCKValidationProvider.class,
- TCKValidationProvider.DummyValidatorFactory.class, TCKValidatorConfiguration.class
+ TestUtil.class,
+ TestUtil.PathImpl.class,
+ TestUtil.NodeImpl.class,
+ TCKValidationProvider.class,
+ TCKValidationProvider.DummyValidatorFactory.class,
+ TCKValidatorConfiguration.class
})
public class ValidationTest extends AbstractTest {
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/DuplicateConfigurationTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/DuplicateConfigurationTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/DuplicateConfigurationTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -39,13 +39,22 @@
import static org.testng.Assert.fail;
import org.testng.annotations.Test;
+import org.hibernate.jsr303.tck.common.TCKValidationProvider;
+import org.hibernate.jsr303.tck.common.TCKValidatorConfiguration;
import org.hibernate.jsr303.tck.util.TestUtil;
/**
* @author Hardy Ferentschik
*/
@Artifact(artifactType = ArtifactType.JSR303)
-@Classes({ TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class })
+@Classes({
+ TestUtil.class,
+ TestUtil.PathImpl.class,
+ TestUtil.NodeImpl.class,
+ TCKValidationProvider.class,
+ TCKValidatorConfiguration.class,
+ TCKValidationProvider.DummyValidatorFactory.class
+})
@Resources(
{
@Resource(source = DuplicateConfigurationTest.mappingFile1,
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/InvalidXmlConfigurationTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/InvalidXmlConfigurationTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/InvalidXmlConfigurationTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -29,13 +29,22 @@
import static org.testng.Assert.fail;
import org.testng.annotations.Test;
+import org.hibernate.jsr303.tck.common.TCKValidationProvider;
+import org.hibernate.jsr303.tck.common.TCKValidatorConfiguration;
import org.hibernate.jsr303.tck.util.TestUtil;
/**
* @author Hardy Ferentschik
*/
@Artifact(artifactType = ArtifactType.JSR303)
-@Classes({ TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class })
+@Classes({
+ TestUtil.class,
+ TestUtil.PathImpl.class,
+ TestUtil.NodeImpl.class,
+ TCKValidationProvider.class,
+ TCKValidatorConfiguration.class,
+ TCKValidationProvider.DummyValidatorFactory.class
+})
@ValidationXml(value = "validation-InvalidXmlConfigurationTest.xml")
public class InvalidXmlConfigurationTest extends AbstractTest {
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/MissingClassNameOnBeanNodeTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/MissingClassNameOnBeanNodeTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/MissingClassNameOnBeanNodeTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -30,13 +30,22 @@
import static org.testng.Assert.fail;
import org.testng.annotations.Test;
+import org.hibernate.jsr303.tck.common.TCKValidationProvider;
+import org.hibernate.jsr303.tck.common.TCKValidatorConfiguration;
import org.hibernate.jsr303.tck.util.TestUtil;
/**
* @author Hardy Ferentschik
*/
@Artifact(artifactType = ArtifactType.JSR303)
-@Classes({ TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class })
+@Classes({
+ TestUtil.class,
+ TestUtil.PathImpl.class,
+ TestUtil.NodeImpl.class,
+ TCKValidationProvider.class,
+ TCKValidatorConfiguration.class,
+ TCKValidationProvider.DummyValidatorFactory.class
+})
@ValidationXml(value = "validation-MissingClassNameOnBeanNodeTest.xml")
@Resource(source = "user-constraints-MissingClassNameOnBeanNodeTest.xml",
destination = "WEB-INF/classes/org/hibernate/jsr303/tck/tests/xmlconfiguration/user-constraints-MissingClassNameOnBeanNodeTest.xml")
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/OptionalValidationXmlTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/OptionalValidationXmlTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/OptionalValidationXmlTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -29,6 +29,8 @@
import org.jboss.testharness.impl.packaging.Classes;
import org.testng.annotations.Test;
+import org.hibernate.jsr303.tck.common.TCKValidationProvider;
+import org.hibernate.jsr303.tck.common.TCKValidatorConfiguration;
import org.hibernate.jsr303.tck.util.TestUtil;
import static org.hibernate.jsr303.tck.util.TestUtil.assertCorrectNumberOfViolations;
@@ -36,7 +38,14 @@
* @author Hardy Ferentschik
*/
@Artifact(artifactType = ArtifactType.JSR303)
-@Classes({ TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class })
+@Classes({
+ TestUtil.class,
+ TestUtil.PathImpl.class,
+ TestUtil.NodeImpl.class,
+ TCKValidationProvider.class,
+ TCKValidatorConfiguration.class,
+ TCKValidationProvider.DummyValidatorFactory.class
+})
public class OptionalValidationXmlTest extends AbstractTest {
@Test
Modified: beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/XmlConfigurationTest.java
===================================================================
--- beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/XmlConfigurationTest.java 2010-08-23 13:03:54 UTC (rev 20224)
+++ beanvalidation/tck/trunk/src/main/java/org/hibernate/jsr303/tck/tests/xmlconfiguration/XmlConfigurationTest.java 2010-08-23 14:02:20 UTC (rev 20225)
@@ -41,6 +41,8 @@
import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
+import org.hibernate.jsr303.tck.common.TCKValidationProvider;
+import org.hibernate.jsr303.tck.common.TCKValidatorConfiguration;
import org.hibernate.jsr303.tck.util.TestUtil;
import static org.hibernate.jsr303.tck.util.TestUtil.assertCorrectConstraintViolationMessages;
import static org.hibernate.jsr303.tck.util.TestUtil.assertCorrectNumberOfViolations;
@@ -49,7 +51,14 @@
* @author Hardy Ferentschik
*/
@Artifact(artifactType = ArtifactType.JSR303)
-@Classes({ TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class })
+@Classes({
+ TestUtil.class,
+ TestUtil.PathImpl.class,
+ TestUtil.NodeImpl.class,
+ TCKValidationProvider.class,
+ TCKValidatorConfiguration.class,
+ TCKValidationProvider.DummyValidatorFactory.class
+})
@ValidationXml(value = "validation-XmlConfigurationTest.xml")
@Resources(
{
15 years, 4 months
Hibernate SVN: r20224 - validator/trunk/hibernate-validator/src/main/docbook/en-US/modules.
by hibernate-commits@lists.jboss.org
Author: stliu
Date: 2010-08-23 09:03:54 -0400 (Mon, 23 Aug 2010)
New Revision: 20224
Modified:
validator/trunk/hibernate-validator/src/main/docbook/en-US/modules/bootstrapping.xml
Log:
typo
Modified: validator/trunk/hibernate-validator/src/main/docbook/en-US/modules/bootstrapping.xml
===================================================================
--- validator/trunk/hibernate-validator/src/main/docbook/en-US/modules/bootstrapping.xml 2010-08-23 11:13:03 UTC (rev 20223)
+++ validator/trunk/hibernate-validator/src/main/docbook/en-US/modules/bootstrapping.xml 2010-08-23 13:03:54 UTC (rev 20224)
@@ -310,7 +310,7 @@
enabled automatically depending on your environment. The first is the
<classname>DefaultTraversableResolver</classname> which will always return
true for <methodname>isReachable()</methodname> and
- i<methodname>sTraversable()</methodname>. The second is the
+ <methodname>isTraversable()</methodname>. The second is the
<classname>JPATraversableResolver</classname> which gets enabled when
Hibernate Validator gets used in combination with JPA 2. In case you have
to provide your own resolver you can do so again using the
15 years, 4 months
Hibernate SVN: r20223 - in core/branches/Branch_3_2_4_SP1_CP: src/org/hibernate/event/def and 1 other directories.
by hibernate-commits@lists.jboss.org
Author: stliu
Date: 2010-08-23 07:13:03 -0400 (Mon, 23 Aug 2010)
New Revision: 20223
Added:
core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/CascadeTestWithAssignedParentIdTest.java
core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/Child.java
core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/ChildForParentWithAssignedId.hbm.xml
core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/Parent.java
core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/ParentWithAssignedId.hbm.xml
Modified:
core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/cache/OptimisticCache.java
core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/event/def/AbstractSaveEventListener.java
Log:
JBPAPP-4927 HHH-3334 Cascade-save breaks if parent ID is assigned (delays insert) and child has identity ID (early insert)
Modified: core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/cache/OptimisticCache.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/cache/OptimisticCache.java 2010-08-23 10:53:37 UTC (rev 20222)
+++ core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/cache/OptimisticCache.java 2010-08-23 11:13:03 UTC (rev 20223)
@@ -4,7 +4,7 @@
* A contract for transactional cache implementations which support
* optimistic locking of items within the cache.
* <p/>
- * The optimisitic locking capabilities are only utilized for
+ * The optimistic locking capabilities are only utilized for
* the entity cache regions.
* <p/>
* Unlike the methods on the {@link Cache} interface, all the methods
Modified: core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/event/def/AbstractSaveEventListener.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/event/def/AbstractSaveEventListener.java 2010-08-23 10:53:37 UTC (rev 20222)
+++ core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/event/def/AbstractSaveEventListener.java 2010-08-23 11:13:03 UTC (rev 20223)
@@ -240,11 +240,6 @@
boolean inTxn = source.getJDBCContext().isTransactionInProgress();
boolean shouldDelayIdentityInserts = !inTxn && !requiresImmediateIdAccess;
- if ( useIdentityColumn && !shouldDelayIdentityInserts ) {
- log.trace( "executing insertions" );
- source.getActionQueue().executeInserts();
- }
-
// Put a placeholder in entries, so we don't recurse back and try to save() the
// same object again. QUESTION: should this be done before onSave() is called?
// likewise, should it be done before onUpdate()?
@@ -263,6 +258,10 @@
);
cascadeBeforeSave( source, persister, entity, anything );
+ if ( useIdentityColumn && !shouldDelayIdentityInserts ) {
+ log.trace( "executing insertions" );
+ source.getActionQueue().executeInserts();
+ }
Object[] values = persister.getPropertyValuesToInsert( entity, getMergeMap( anything ), source );
Type[] types = persister.getPropertyTypes();
Added: core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/CascadeTestWithAssignedParentIdTest.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/CascadeTestWithAssignedParentIdTest.java (rev 0)
+++ core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/CascadeTestWithAssignedParentIdTest.java 2010-08-23 11:13:03 UTC (rev 20223)
@@ -0,0 +1,82 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2010, Red Hat Middleware LLC or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors. All third-party contributions are
+ * distributed under license by Red Hat Middleware LLC.
+ *
+ * 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, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY 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
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301 USA
+ */
+package org.hibernate.test.cascade;
+
+import java.util.Collections;
+
+import junit.framework.Test;
+
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.hibernate.id.IdentityGenerator;
+import org.hibernate.junit.functional.FunctionalTestCase;
+import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
+
+/**
+ * @author Wallace Wadge (based on code by Gail Badner)
+ */
+
+/**
+ * Test case to illustrate that when a child table attempts to cascade to a parent and the parent's Id
+ * is set to assigned, an exception thrown (not-null property references a null or transient value).
+ * This error only occurs if the parent link in marked as not nullable.
+ */
+public class CascadeTestWithAssignedParentIdTest extends FunctionalTestCase {
+
+ public CascadeTestWithAssignedParentIdTest(String name) {
+ super( name );
+ }
+
+ public String[] getMappings() {
+ return new String[] {
+ "cascade/ChildForParentWithAssignedId.hbm.xml",
+ "cascade/ParentWithAssignedId.hbm.xml"
+ };
+ }
+
+ public static Test suite() {
+ return new FunctionalTestClassTestSuite( CascadeTestWithAssignedParentIdTest.class );
+ }
+
+ public void testSaveChildWithParent() {
+ Session session = openSession();
+ Transaction txn = session.beginTransaction();
+ Parent parent = new Parent();
+ Child child = new Child();
+ child.setParent( parent );
+ parent.setChildren( Collections.singleton( child ) );
+ parent.setId(new Long(123L));
+ // this should figure out that the parent needs saving first since id is assigned.
+ session.save( child );
+ txn.commit();
+ session.close();
+
+ session = openSession();
+ txn = session.beginTransaction();
+ parent = ( Parent ) session.get( Parent.class, parent.getId() );
+ assertEquals( 1, parent.getChildren().size() );
+ txn.commit();
+ session.close();
+ }
+}
Added: core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/Child.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/Child.java (rev 0)
+++ core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/Child.java 2010-08-23 11:13:03 UTC (rev 20223)
@@ -0,0 +1,29 @@
+package org.hibernate.test.cascade;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: Gail
+ * Date: Jan 2, 2007
+ * Time: 4:51:29 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class Child {
+ private Long id;
+ private Parent parent;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Parent getParent() {
+ return parent;
+ }
+
+ public void setParent(Parent parent) {
+ this.parent = parent;
+ }
+}
Added: core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/ChildForParentWithAssignedId.hbm.xml
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/ChildForParentWithAssignedId.hbm.xml (rev 0)
+++ core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/ChildForParentWithAssignedId.hbm.xml 2010-08-23 11:13:03 UTC (rev 20223)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="org.hibernate.test.cascade">
+ <class name="Child" table="Child">
+ <id name="id" column="id" type="java.lang.Long">
+ <generator class="native"/>
+ </id>
+ <many-to-one name="parent" class="Parent" not-null="true" cascade="all" />
+ </class>
+</hibernate-mapping>
Added: core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/Parent.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/Parent.java (rev 0)
+++ core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/Parent.java 2010-08-23 11:13:03 UTC (rev 20223)
@@ -0,0 +1,40 @@
+package org.hibernate.test.cascade;
+
+import java.util.Set;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: Gail
+ * Date: Jan 2, 2007
+ * Time: 4:50:24 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class Parent {
+ private Long id;
+ private Set deleteOrphanChildren;
+ private Set children;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Set getDeleteOrphanChildren() {
+ return deleteOrphanChildren;
+ }
+
+ public void setDeleteOrphanChildren(Set deleteOrphanChildren) {
+ this.deleteOrphanChildren = deleteOrphanChildren;
+ }
+
+ public Set getChildren() {
+ return children;
+ }
+
+ public void setChildren(Set children) {
+ this.children = children;
+ }
+}
Added: core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/ParentWithAssignedId.hbm.xml
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/ParentWithAssignedId.hbm.xml (rev 0)
+++ core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/cascade/ParentWithAssignedId.hbm.xml 2010-08-23 11:13:03 UTC (rev 20223)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="org.hibernate.test.cascade">
+ <class name="Parent" table="Parent">
+ <id name="id" column="id" type="java.lang.Long">
+ <generator class="assigned"/>
+ </id>
+ <set name="children" cascade="all" inverse="true">
+ <key column="parent"/>
+ <one-to-many class="Child"/>
+ </set>
+ </class>
+</hibernate-mapping>
15 years, 4 months
Hibernate SVN: r20222 - core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/cascade.
by hibernate-commits@lists.jboss.org
Author: stliu
Date: 2010-08-23 06:53:37 -0400 (Mon, 23 Aug 2010)
New Revision: 20222
Added:
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/cascade/CascadeTestWithAssignedParentIdTest.java
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/cascade/ChildForParentWithAssignedId.hbm.xml
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/cascade/ParentWithAssignedId.hbm.xml
Log:
JBPAPP-4926 HHH-3334 Cascade-save breaks if parent ID is assigned (delays insert) and child has identity ID (early insert)
Added: core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/cascade/CascadeTestWithAssignedParentIdTest.java
===================================================================
--- core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/cascade/CascadeTestWithAssignedParentIdTest.java (rev 0)
+++ core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/cascade/CascadeTestWithAssignedParentIdTest.java 2010-08-23 10:53:37 UTC (rev 20222)
@@ -0,0 +1,81 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2010, Red Hat Middleware LLC or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors. All third-party contributions are
+ * distributed under license by Red Hat Middleware LLC.
+ *
+ * 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, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY 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
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301 USA
+ */
+package org.hibernate.test.cascade;
+
+import java.util.Collections;
+
+import junit.framework.Test;
+
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.hibernate.junit.functional.FunctionalTestCase;
+import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
+
+/**
+ * @author Wallace Wadge (based on code by Gail Badner)
+ */
+
+/**
+ * Test case to illustrate that when a child table attempts to cascade to a parent and the parent's Id
+ * is set to assigned, an exception thrown (not-null property references a null or transient value).
+ * This error only occurs if the parent link in marked as not nullable.
+ */
+public class CascadeTestWithAssignedParentIdTest extends FunctionalTestCase {
+
+ public CascadeTestWithAssignedParentIdTest(String name) {
+ super( name );
+ }
+
+ public String[] getMappings() {
+ return new String[] {
+ "cascade/ChildForParentWithAssignedId.hbm.xml",
+ "cascade/ParentWithAssignedId.hbm.xml"
+ };
+ }
+
+ public static Test suite() {
+ return new FunctionalTestClassTestSuite( CascadeTestWithAssignedParentIdTest.class );
+ }
+
+ public void testSaveChildWithParent() {
+ Session session = openSession();
+ Transaction txn = session.beginTransaction();
+ Parent parent = new Parent();
+ Child child = new Child();
+ child.setParent( parent );
+ parent.setChildren( Collections.singleton( child ) );
+ parent.setId(new Long(123L));
+ // this should figure out that the parent needs saving first since id is assigned.
+ session.save( child );
+ txn.commit();
+ session.close();
+
+ session = openSession();
+ txn = session.beginTransaction();
+ parent = ( Parent ) session.get( Parent.class, parent.getId() );
+ assertEquals( 1, parent.getChildren().size() );
+ txn.commit();
+ session.close();
+ }
+}
Added: core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/cascade/ChildForParentWithAssignedId.hbm.xml
===================================================================
--- core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/cascade/ChildForParentWithAssignedId.hbm.xml (rev 0)
+++ core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/cascade/ChildForParentWithAssignedId.hbm.xml 2010-08-23 10:53:37 UTC (rev 20222)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="org.hibernate.test.cascade">
+ <class name="Child" table="Child">
+ <id name="id" column="id" type="java.lang.Long">
+ <generator class="native"/>
+ </id>
+ <many-to-one name="parent" class="Parent" not-null="true" cascade="all" />
+ </class>
+</hibernate-mapping>
Added: core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/cascade/ParentWithAssignedId.hbm.xml
===================================================================
--- core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/cascade/ParentWithAssignedId.hbm.xml (rev 0)
+++ core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/cascade/ParentWithAssignedId.hbm.xml 2010-08-23 10:53:37 UTC (rev 20222)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="org.hibernate.test.cascade">
+ <class name="Parent" table="Parent">
+ <id name="id" column="id" type="java.lang.Long">
+ <generator class="assigned"/>
+ </id>
+ <set name="children" cascade="all" inverse="true">
+ <key column="parent"/>
+ <one-to-many class="Child"/>
+ </set>
+ </class>
+</hibernate-mapping>
15 years, 4 months
Hibernate SVN: r20221 - core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/event/def.
by hibernate-commits@lists.jboss.org
Author: stliu
Date: 2010-08-23 06:52:41 -0400 (Mon, 23 Aug 2010)
New Revision: 20221
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/event/def/AbstractSaveEventListener.java
Log:
JBPAPP-4926 HHH-3334 Cascade-save breaks if parent ID is assigned (delays insert) and child has identity ID (early insert)
Modified: core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/event/def/AbstractSaveEventListener.java
===================================================================
--- core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/event/def/AbstractSaveEventListener.java 2010-08-22 16:39:12 UTC (rev 20220)
+++ core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/event/def/AbstractSaveEventListener.java 2010-08-23 10:52:41 UTC (rev 20221)
@@ -145,7 +145,7 @@
}
/**
- * Ppepares the save call by checking the session caches for a pre-existing
+ * Prepares the save call by checking the session caches for a pre-existing
* entity and performing any lifecycle callbacks.
*
* @param entity The entity to be saved.
@@ -262,11 +262,6 @@
boolean inTxn = source.getJDBCContext().isTransactionInProgress();
boolean shouldDelayIdentityInserts = !inTxn && !requiresImmediateIdAccess;
- if ( useIdentityColumn && !shouldDelayIdentityInserts ) {
- log.trace( "executing insertions" );
- source.getActionQueue().executeInserts();
- }
-
// Put a placeholder in entries, so we don't recurse back and try to save() the
// same object again. QUESTION: should this be done before onSave() is called?
// likewise, should it be done before onUpdate()?
@@ -285,6 +280,11 @@
);
cascadeBeforeSave( source, persister, entity, anything );
+
+ if ( useIdentityColumn && !shouldDelayIdentityInserts ) {
+ log.trace( "executing insertions" );
+ source.getActionQueue().executeInserts();
+ }
Object[] values = persister.getPropertyValuesToInsert( entity, getMergeMap( anything ), source );
Type[] types = persister.getPropertyTypes();
@@ -377,7 +377,7 @@
}
/**
- * After the save, will te version number be incremented
+ * After the save, will the version number be incremented
* if the instance is modified?
*
* @return True if the version will be incremented on an entity change after save;
@@ -436,7 +436,7 @@
/**
* Handles the calls needed to perform pre-save cascades for the given entity.
*
- * @param source The session from whcih the save event originated.
+ * @param source The session from which the save event originated.
* @param persister The entity's persister instance.
* @param entity The entity to be saved.
* @param anything Generally cascade-specific data
@@ -463,7 +463,7 @@
*
* @param source The session from which the event originated.
* @param persister The entity's persister instance.
- * @param entity The entity beng saved.
+ * @param entity The entity being saved.
* @param anything Generally cascade-specific data
*/
protected void cascadeAfterSave(
15 years, 4 months
hibernate-commits@lists.jboss.org 70% 0FF on Pfizer.
by hibernate-commits@lists.jboss.org
http://groups.yahoo.com/group/fhavjxcovfz/message
waltigsten Katastrophen der Menschheit
hervorgegangen? Welch ein unendlich zaher Wille zum Leben, zur Erhaltung der Art spricht aus diesen
Tatsachen!Die intellektuellen Eigenschaften des Juden haben sich im Verlaufe der Jahrtausende
geschult. Er gilt heute als "gescheit" und war es in einem gewissen Sinne zu allen Zeiten. Allein sein
Verstand ist nicht das Ergebnis eigener Entwicklung, sondern eines Anschauungsunterrichtes durch
Fremde. Auch der menschliche Geist vermag nicht ohne Stufen zur Hohe emporzuklimmen; er braucht
zu jedem Schritt nach aufwarts das Fundament der Vergangenheit und zwar in jenem umfassenden
Sinne, in dem es sich nur in der allgemeinen Kultur zu offenbaren vermag. Alles Denken beruht nur zum
geringen Teile auf eigener Erkenntnis, zum gro.ten aber auf den Erfahrungen der vor. hergega
15 years, 4 months
Hibernate SVN: r20220 - validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules.
by hibernate-commits@lists.jboss.org
Author: stliu
Date: 2010-08-22 12:39:12 -0400 (Sun, 22 Aug 2010)
New Revision: 20220
Modified:
validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/integration.po
Log:
HV-351
Modified: validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/integration.po
===================================================================
--- validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/integration.po 2010-08-22 16:21:14 UTC (rev 20219)
+++ validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/integration.po 2010-08-22 16:39:12 UTC (rev 20220)
@@ -6,7 +6,7 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2010-07-06 14:46+0000\n"
-"PO-Revision-Date: 2010-08-14 14:36+0830\n"
+"PO-Revision-Date: 2010-08-23 00:37+0830\n"
"Last-Translator: Strong Liu <stliu(a)hibernate.org>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@@ -41,79 +41,79 @@
#: integration.xml:46
#, no-c-format
msgid "Database schema-level validation"
-msgstr ""
+msgstr "与数据库集成校验"
#. Tag: para
#: integration.xml:48
#, no-c-format
msgid "Out of the box, Hibernate Annotations (as of Hibernate 3.5.x) will translate the constraints you have defined for your entities into mapping metadata. For example, if a property of your entity is annotated <literal>@NotNull</literal>, its columns will be declared as <literal>not null</literal> in the DDL schema generated by Hibernate."
-msgstr ""
+msgstr "Hibernate Annotations (即 Hibernate 3.5.x) 会自动的把你定已在实体模型上的约束信息添加到其映射信息中. 例如, 假设你的一个实体类的属性上有<literal>@NotNull</literal>的约束的话, 那么Hibernate在生成创建此实体对应的表的DDL的时候, 会自动的给那个属性对应的字段添加上<literal>not null</literal>."
#. Tag: para
#: integration.xml:54
#, no-c-format
msgid "If, for some reason, the feature needs to be disabled, set <literal>hibernate.validator.apply_to_ddl</literal> to <literal>false</literal>. See also <xref linkend=\"table-builtin-constraints\"/>."
-msgstr ""
+msgstr "如果因为某种原因, 你不想使用这个特性, 那么可以将<literal>hibernate.validator.apply_to_ddl</literal>属性设置为<literal>false</literal>. 请参考<xref linkend=\"table-builtin-constraints\"/>."
#. Tag: para
#: integration.xml:59
#, no-c-format
msgid "You can also limit the DDL constraint generation to a subset of the defined constraints by setting the property <property>org.hibernate.validator.group.ddl</property>. The property specifies the comma-separated, fully specified class names of the groups a constraint has to be part of in order to be considered for DDL schema generation."
-msgstr ""
+msgstr "你也可以限制这个DDL约束自动生成的特性只应用到一部分实体类. 只需要设置<property>org.hibernate.validator.group.ddl</property>属性, 这个属性的值是你想要应用此特性的实体类的全路径名称, 每个以逗号分隔."
#. Tag: title
#: integration.xml:68
#, no-c-format
msgid "ORM integration"
-msgstr ""
+msgstr "ORM集成"
#. Tag: para
#: integration.xml:70
#, no-c-format
msgid "Hibernate Validator integrates with both Hibernate and all pure Java Persistence providers."
-msgstr ""
+msgstr "Hibernate Validator不仅能够和Hibernate集成工作, 还能够和任何JPA的实现很好的一起工作."
#. Tag: title
#: integration.xml:74
#, no-c-format
msgid "Hibernate event-based validation"
-msgstr ""
+msgstr "基于Hibernate事件模型的校验"
#. Tag: para
#: integration.xml:76
#, no-c-format
msgid "Hibernate Validator has a built-in Hibernate event listener - <ulink url=\"http://fisheye.jboss.org/browse/Hibernate/core/trunk/annotations/src/main..."><classname>org.hibernate.cfg.beanvalidation.BeanValidationEventListener</classname></ulink> - which is part of Hibernate Annotations (as of Hibernate 3.5.x). Whenever a <literal>PreInsertEvent</literal>, <literal>PreUpdateEvent</literal> or <classname>PreDeleteEvent</classname> occurs, the listener will verify all constraints of the entity instance and throw an exception if any constraint is violated. Per default objects will be checked before any inserts or updates are made by Hibernate. Pre deletion events will per default not trigger a validation. You can configure the groups to be validated per event type using the properties <property>javax.persistence.validation.group.pre-persist</property>, <property>javax.persistence.validation.group.pre-upd!
ate</property> and <property>javax.persistence.validation.group.pre-remove</property>. The values of these properties are the comma-separated, fully specified class names of the groups to validate. <xref linkend=\"example-beanvalidationeventlistener-config\"/> shows the default values for these properties. In this case they could also be omitted."
-msgstr ""
+msgstr "Hibernate Annotations (即 Hibernate 3.5.x) 中包含了一个的Hibernate 事件监听器(译注: 请阅读Hibernate Core文档了解Hibernate的事件模型) - <ulink url=\"http://fisheye.jboss.org/browse/Hibernate/core/trunk/annotations/src/main..."><classname>org.hibernate.cfg.beanvalidation.BeanValidationEventListener</classname></ulink> - 来为Hibernate Validator服务. 当一个<literal>PreInsertEvent</literal>, <literal>PreUpdateEvent</literal> 或 <classname>PreDeleteEvent</classname>事件发生的时候, 这个监听器就可以对该事件所涉及到的实体对象进行校验, 如果校验不通过的话, 则抛出异常. 默认情况下, Hibernate在对每个对象进行保存或者修改操作的时候,都会对其进行校验, 而删除操作则不会. 你可以通过<property>javax.persistence.validation.group.pre-persist</property>, <property>javax.persistence.validation.group.p!
re-update</property> 和 <property>javax.persistence.validation.group.pre-remove</property>属性来定义对应事件发生的时候, 具体要校验哪(些)个校验组, 这个属性的值是要应用的校验组类的全路径, 使用逗号分隔. <xref linkend=\"example-beanvalidationeventlistener-config\"/>显示了这几个属性在Hibernate内部定义的默认值, 所以, 你不需要在你的应用中再重复定义了."
#. Tag: para
#: integration.xml:97
#, no-c-format
msgid "On constraint violation, the event will raise a runtime <classname>ConstraintViolationException</classname> which contains a set of <literal>ConstraintViolation</literal>s describing each failure."
-msgstr ""
+msgstr "如果发生了违反约束条件的情况, 该监听器会抛出一个运行时的<classname>ConstraintViolationException</classname>异常, 此异常包含了一系列的<literal>ConstraintViolation</literal>对象用于描述每个违反了约束条件的情况."
#. Tag: para
#: integration.xml:102
#, no-c-format
msgid "If Hibernate Validator is present in the classpath, Hibernate Annotations (or Hibernate EntityManager) will use it transparently. To avoid validation even though Hibernate Validator is in the classpath set <property>javax.persistence.validation.mode</property> to <constant>none</constant>."
-msgstr ""
+msgstr "如果类路径上有Hibernate Validator, 则Hibernate Annotations (或 Hibernate EntityManager)会自动调用它, 如果你想避免这种情况, 可以设置<property>javax.persistence.validation.mode</property>属性为<constant>none</constant>."
#. Tag: para
#: integration.xml:109
#, no-c-format
msgid "If the beans are not annotated with validation annotations, there is no runtime performance cost."
-msgstr ""
+msgstr "如果实体模型上没有定义约束条件, 则不会有任何性能损耗."
#. Tag: para
#: integration.xml:113
#, no-c-format
msgid "In case you need to manually set the event listeners for Hibernate Core, use the following configuration in <literal>hibernate.cfg.xml</literal>:"
-msgstr ""
+msgstr "如果你想在Hibernate Core中使用上面提到的事件监听器, 则可以在<literal>hibernate.cfg.xml</literal>中定义如下的配置信息:"
#. Tag: title
#: integration.xml:118
#, no-c-format
msgid "Manual configuration of <classname>BeanValidationEvenListener</classname>"
-msgstr ""
+msgstr "自定义<classname>BeanValidationEvenListener</classname>"
#. Tag: programlisting
#: integration.xml:121
@@ -138,42 +138,60 @@
" </session-factory>\n"
"</hibernate-configuration>"
msgstr ""
+"<hibernate-configuration>\n"
+" <session-factory>\n"
+" ...\n"
+" <property name=\"javax.persistence.validation.group.pre-persist\">javax.validation.groups.Default</property>\n"
+" <property name=\"javax.persistence.validation.group.pre-update\">javax.validation.groups.Default</property>\n"
+" <property name=\"javax.persistence.validation.group.pre-remove\"></property>\n"
+" ...\n"
+" <event type=\"pre-update\">\n"
+" <listener class=\"org.hibernate.cfg.beanvalidation.BeanValidationEventListener\"/>\n"
+" </event>\n"
+" <event type=\"pre-insert\">\n"
+" <listener class=\"org.hibernate.cfg.beanvalidation.BeanValidationEventListener\"/>\n"
+" </event>\n"
+" <event type=\"pre-delete\">\n"
+" <listener class=\"org.hibernate.cfg.beanvalidation.BeanValidationEventListener\"/>\n"
+" </event>\n"
+" </session-factory>\n"
+"</hibernate-configuration>"
#. Tag: title
#: integration.xml:126
#, no-c-format
msgid "<title>JPA</title>"
-msgstr ""
+msgstr "<title>JPA</title>"
#. Tag: para
#: integration.xml:128
#, no-c-format
msgid "If you are using JPA 2 and Hibernate Validator is in the classpath the JPA2 specification requires that Bean Validation gets enabled. The properties <property>javax.persistence.validation.group.pre-persist</property>, <property>javax.persistence.validation.group.pre-update</property> and <property>javax.persistence.validation.group.pre-remove</property> as described in <xref linkend=\"validator-checkconstraints-orm-hibernateevent\"/> can in this case be configured in <filename>persistence.xml</filename>. <filename>persistence.xml</filename> also defines a node validation-mode while can be set to <constant>AUTO</constant>, <constant>CALLBACK</constant>, <constant>NONE</constant>. The default is <constant>AUTO</constant>."
-msgstr ""
+msgstr "如果你是把Hibernate Validator和JPA2一起使用, 那么<xref linkend=\"validator-checkconstraints-orm-hibernateevent\"/>中所说的<property>javax.persistence.validation.group.pre-persist</property>, <property>javax.persistence.validation.group.pre-update</property> 和 <property>javax.persistence.validation.group.pre-remove</property>需要定义在<filename>persistence.xml</filename>中. 并且, <filename>persistence.xml</filename>中还包含了一个validation-mode的节点可以被设置成<constant>AUTO</constant>, <constant>CALLBACK</constant>, <constant>NONE</constant>, 默认值是<constant>AUTO</constant>."
#. Tag: para
#: integration.xml:142
#, no-c-format
msgid "In a JPA 1 you will have to create and register Hibernate Validator yourself. In case you are using Hibernate EntityManager you can add a customized version of the <classname>BeanValidationEventListener</classname> described in <xref linkend=\"validator-checkconstraints-orm-hibernateevent\"/> to your project and register it manually."
-msgstr ""
+msgstr "对于JPA1来讲, 你需要自己创建和注册Hibernate Validator. 如果你是使用Hibernate EntityManager, 那么你可以把<xref linkend=\"validator-checkconstraints-orm-hibernateevent\"/>中列出来的<classname>BeanValidationEventListener</classname>类添加到你的项目中, 然后再手工注册它."
#. Tag: title
#: integration.xml:152
#, no-c-format
msgid "Presentation layer validation"
-msgstr ""
+msgstr "展示层校验"
#. Tag: para
#: integration.xml:154
#, no-c-format
msgid "When working with JSF2 or <productname>JBoss Seam</productname> and Hibernate Validator (Bean Validation) is present in the runtime environment validation is triggered for every field in the application. <xref linkend=\"example-jsf2\"/> shows an example of the f:validateBean tag in a JSF page. For more information refer to the Seam documentation or the JSF 2 specification."
-msgstr ""
+msgstr "如果你正在使用JSF2或者<productname>JBoss Seam</productname>,并且Hibernate Validator (Bean Validation) 在类路径上的话, 那么界面上的字段可以被自动校验. <xref linkend=\"example-jsf2\"/>显示了一个在JSF页面上使用f:validateBean标签的实例. 更多的信息请参考Seam的文档或者JSF2规范."
#. Tag: title
#: integration.xml:162
#, no-c-format
msgid "Usage of Bean Validation within JSF2"
-msgstr ""
+msgstr "在JSF2中使用Bean Validation"
#. Tag: programlisting
#: integration.xml:164
@@ -187,4 +205,11 @@
" <emphasis role=\"bold\"></f:validateBean></emphasis>\n"
"</h:form>"
msgstr ""
+"<h:form>\n"
+" <emphasis role=\"bold\"><f:validateBean></emphasis>\n"
+" <h:inputText value=”#{model.property}” />\n"
+" <h:selectOneRadio value=”#{model.radioProperty}” > ... </h:selectOneRadio>\n"
+" <!-- other input components here -->\n"
+" <emphasis role=\"bold\"></f:validateBean></emphasis>\n"
+"</h:form>"
15 years, 4 months