Hibernate SVN: r15517 - in core/trunk/envers/src: main/java/org/hibernate/envers/configuration and 11 other directories.
by hibernate-commits@lists.jboss.org
Author: adamw
Date: 2008-11-05 04:13:05 -0500 (Wed, 05 Nov 2008)
New Revision: 15517
Added:
core/trunk/envers/src/main/java/org/hibernate/envers/entities/mapper/relation/query/OneAuditEntityQueryGenerator.java
core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/AggregatedFieldAuditExpression.java
core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/BetweenAuditExpression.java
core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/IdentifierEqAuditExpression.java
core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/InAuditExpression.java
core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/LogicalAuditExpression.java
core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/NotAuditExpression.java
core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/NotNullAuditExpression.java
core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/NullAuditExpression.java
core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/PropertyAuditExpression.java
core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/RelatedAuditExpression.java
core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/RevisionAuditExpression.java
core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/SimpleAuditExpression.java
core/trunk/envers/src/main/java/org/hibernate/envers/query/order/RevisionAuditOrder.java
core/trunk/envers/src/main/java/org/hibernate/envers/query/projection/RevisionAuditProjection.java
Modified:
core/trunk/envers/src/main/java/org/hibernate/envers/AuditReader.java
core/trunk/envers/src/main/java/org/hibernate/envers/AuditReaderFactory.java
core/trunk/envers/src/main/java/org/hibernate/envers/NotAudited.java
core/trunk/envers/src/main/java/org/hibernate/envers/SecondaryAuditTable.java
core/trunk/envers/src/main/java/org/hibernate/envers/configuration/AuditEntitiesConfiguration.java
core/trunk/envers/src/main/java/org/hibernate/envers/configuration/EntitiesConfigurator.java
core/trunk/envers/src/main/java/org/hibernate/envers/configuration/GlobalConfiguration.java
core/trunk/envers/src/main/java/org/hibernate/envers/configuration/RevisionInfoConfiguration.java
core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AnnotationsMetadataReader.java
core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AuditMetadataGenerator.java
core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/BasicMetadataGenerator.java
core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/CollectionMetadataGenerator.java
core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/IdMetadataGenerator.java
core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/QueryGeneratorBuilder.java
core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/ToOneRelationMetadataGenerator.java
core/trunk/envers/src/main/java/org/hibernate/envers/entities/mapper/relation/MiddleIdData.java
core/trunk/envers/src/main/java/org/hibernate/envers/query/AuditRestrictions.java
core/trunk/envers/src/main/java/org/hibernate/envers/query/RevisionProperty.java
core/trunk/envers/src/main/java/org/hibernate/envers/query/impl/AbstractAuditQuery.java
core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/AbstractAuditWorkUnit.java
core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/AddWorkUnit.java
core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/CollectionChangeWorkUnit.java
core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/DelWorkUnit.java
core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/ModWorkUnit.java
core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/SecondaryNamingTestEntity.java
core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/ids/SecondaryEmbIdTestEntity.java
core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/ids/SecondaryMulIdTestEntity.java
Log:
HHH-3570: more renaming
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/AuditReader.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/AuditReader.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/AuditReader.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -40,7 +40,7 @@
* @param primaryKey Primary key of the entity.
* @param revision Revision in which to get the entity.
* @return The found entity instance at the given revision (its properties may be partially filled
- * if not all properties are versioned) or null, if an entity with that id didn't exist at that
+ * if not all properties are audited) or null, if an entity with that id didn't exist at that
* revision.
* @throws IllegalArgumentException If cls or primaryKey is null or revision is less or equal to 0.
* @throws NotAuditedException When entities of the given class are not audited.
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/AuditReaderFactory.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/AuditReaderFactory.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/AuditReaderFactory.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -42,11 +42,11 @@
private AuditReaderFactory() { }
/**
- * Create a versions reader associated with an open session.
+ * Create an audit reader associated with an open session.
* <b>WARNING:</b> Using Envers with Hibernate (not with Hibernate Entity Manager/JPA) is experimental,
* if possible, use {@link AuditReaderFactory#get(javax.persistence.EntityManager)}.
* @param session An open session.
- * @return A versions reader associated with the given sesison. It shouldn't be used
+ * @return An audit reader associated with the given sesison. It shouldn't be used
* after the session is closed.
* @throws AuditException When the given required listeners aren't installed.
*/
@@ -70,9 +70,9 @@
}
/**
- * Create a versions reader associated with an open entity manager.
+ * Create an audit reader associated with an open entity manager.
* @param entityManager An open entity manager.
- * @return A versions reader associated with the given entity manager. It shouldn't be used
+ * @return An audit reader associated with the given entity manager. It shouldn't be used
* after the entity manager is closed.
* @throws AuditException When the given entity manager is not based on Hibernate, or if the required
* listeners aren't installed.
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/NotAudited.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/NotAudited.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/NotAudited.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -29,7 +29,7 @@
import java.lang.annotation.Target;
/**
- * When applied to a field, indicates that this field should not be versioned.
+ * When applied to a field, indicates that this field should not be audited.
* @author Sebastian Komander
*/
@Retention(RetentionPolicy.RUNTIME)
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/SecondaryAuditTable.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/SecondaryAuditTable.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/SecondaryAuditTable.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -36,5 +36,5 @@
public @interface SecondaryAuditTable {
String secondaryTableName();
- String secondaryVersionsTableName();
+ String secondaryAuditTableName();
}
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/configuration/AuditEntitiesConfiguration.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/configuration/AuditEntitiesConfiguration.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/configuration/AuditEntitiesConfiguration.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -32,8 +32,8 @@
* @author Adam Warski (adam at warski dot org)
*/
public class AuditEntitiesConfiguration {
- private final String versionsTablePrefix;
- private final String versionsTableSuffix;
+ private final String auditTablePrefix;
+ private final String auditTableSuffix;
private final String originalIdPropName;
@@ -45,13 +45,13 @@
private final String revisionInfoEntityName;
- private final Map<String, String> customVersionsTablesNames;
+ private final Map<String, String> customAuditTablesNames;
public AuditEntitiesConfiguration(Properties properties, String revisionInfoEntityName) {
this.revisionInfoEntityName = revisionInfoEntityName;
- versionsTablePrefix = properties.getProperty("org.hibernate.envers.auditTablePrefix", "");
- versionsTableSuffix = properties.getProperty("org.hibernate.envers.auditTableSuffix", "_AUD");
+ auditTablePrefix = properties.getProperty("org.hibernate.envers.auditTablePrefix", "");
+ auditTableSuffix = properties.getProperty("org.hibernate.envers.auditTableSuffix", "_AUD");
originalIdPropName = "originalId";
@@ -60,7 +60,7 @@
revisionTypePropName = properties.getProperty("org.hibernate.envers.revisionTypeFieldName", "REVTYPE");
revisionTypePropType = "byte";
- customVersionsTablesNames = new HashMap<String, String>();
+ customAuditTablesNames = new HashMap<String, String>();
revisionPropPath = originalIdPropName + "." + revisionPropName + ".id";
}
@@ -91,20 +91,20 @@
//
- public void addCustomVersionsTableName(String entityName, String tableName) {
- customVersionsTablesNames.put(entityName, tableName);
+ public void addCustomAuditTableName(String entityName, String tableName) {
+ customAuditTablesNames.put(entityName, tableName);
}
//
- public String getVersionsEntityName(String entityName) {
- return versionsTablePrefix + entityName + versionsTableSuffix;
+ public String getAuditEntityName(String entityName) {
+ return auditTablePrefix + entityName + auditTableSuffix;
}
- public String getVersionsTableName(String entityName, String tableName) {
- String customHistoryTableName = customVersionsTablesNames.get(entityName);
+ public String getAuditTableName(String entityName, String tableName) {
+ String customHistoryTableName = customAuditTablesNames.get(entityName);
if (customHistoryTableName == null) {
- return versionsTablePrefix + tableName + versionsTableSuffix;
+ return auditTablePrefix + tableName + auditTableSuffix;
}
return customHistoryTableName;
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/configuration/EntitiesConfigurator.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/configuration/EntitiesConfigurator.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/configuration/EntitiesConfigurator.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -57,7 +57,7 @@
public EntitiesConfigurations configure(Configuration cfg, ReflectionManager reflectionManager,
GlobalConfiguration globalCfg, AuditEntitiesConfiguration verEntCfg,
Document revisionInfoXmlMapping, Element revisionInfoRelationMapping) {
- AuditMetadataGenerator versionsMetaGen = new AuditMetadataGenerator(cfg, globalCfg, verEntCfg,
+ AuditMetadataGenerator auditMetaGen = new AuditMetadataGenerator(cfg, globalCfg, verEntCfg,
revisionInfoRelationMapping);
DOMWriter writer = new DOMWriter();
@@ -80,11 +80,11 @@
pcDatas.put(pc, auditData);
if (!StringTools.isEmpty(auditData.getAuditTable().value())) {
- verEntCfg.addCustomVersionsTableName(pc.getEntityName(), auditData.getAuditTable().value());
+ verEntCfg.addCustomAuditTableName(pc.getEntityName(), auditData.getAuditTable().value());
}
EntityXmlMappingData xmlMappingData = new EntityXmlMappingData();
- versionsMetaGen.generateFirstPass(pc, auditData, xmlMappingData);
+ auditMetaGen.generateFirstPass(pc, auditData, xmlMappingData);
xmlMappings.put(pc, xmlMappingData);
}
}
@@ -93,7 +93,7 @@
for (Map.Entry<PersistentClass, PersistentClassAuditingData> pcDatasEntry : pcDatas.entrySet()) {
EntityXmlMappingData xmlMappingData = xmlMappings.get(pcDatasEntry.getKey());
- versionsMetaGen.generateSecondPass(pcDatasEntry.getKey(), pcDatasEntry.getValue(), xmlMappingData);
+ auditMetaGen.generateSecondPass(pcDatasEntry.getKey(), pcDatasEntry.getValue(), xmlMappingData);
try {
cfg.addDocument(writer.write(xmlMappingData.getMainXmlMapping()));
@@ -123,7 +123,7 @@
}
}
- return new EntitiesConfigurations(versionsMetaGen.getEntitiesConfigurations());
+ return new EntitiesConfigurations(auditMetaGen.getEntitiesConfigurations());
}
// todo
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/configuration/GlobalConfiguration.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/configuration/GlobalConfiguration.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/configuration/GlobalConfiguration.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -34,7 +34,7 @@
private final boolean generateRevisionsForCollections;
// Should the optimistic locking property of an entity be considered unversioned
- private final boolean unversionedOptimisticLockingField;
+ private final boolean doNotAuditOptimisticLockingField;
/*
Which operator to use in correlated subqueries (when we want a property to be equal to the result of
@@ -51,7 +51,7 @@
String ignoreOptimisticLockingPropertyStr = properties.getProperty("org.hibernate.envers.doNotAuditOptimisticLockingField",
"true");
- unversionedOptimisticLockingField = Boolean.parseBoolean(ignoreOptimisticLockingPropertyStr);
+ doNotAuditOptimisticLockingField = Boolean.parseBoolean(ignoreOptimisticLockingPropertyStr);
correlatedSubqueryOperator = "org.hibernate.dialect.HSQLDialect".equals(
properties.getProperty("hibernate.dialect")) ? "in" : "=";
@@ -61,8 +61,8 @@
return generateRevisionsForCollections;
}
- public boolean isUnversionedOptimisticLockingField() {
- return unversionedOptimisticLockingField;
+ public boolean isDoNotAuditOptimisticLockingField() {
+ return doNotAuditOptimisticLockingField;
}
public String getCorrelatedSubqueryOperator() {
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/configuration/RevisionInfoConfiguration.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/configuration/RevisionInfoConfiguration.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/configuration/RevisionInfoConfiguration.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -177,7 +177,7 @@
throw new MappingException("Only one entity may be annotated with @RevisionEntity!");
}
- // Checking if custom revision entity isn't versioned
+ // Checking if custom revision entity isn't audited
if (clazz.getAnnotation(Audited.class) != null) {
throw new MappingException("An entity annotated with @RevisionEntity cannot be audited!");
}
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-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AnnotationsMetadataReader.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -111,7 +111,7 @@
} else {
// if the optimistic locking field has to be unversioned and the current property
// is the optimistic locking field, don't audit it
- if (globalCfg.isUnversionedOptimisticLockingField()) {
+ if (globalCfg.isDoNotAuditOptimisticLockingField()) {
Version jpaVer = property.getAnnotation(Version.class);
if (jpaVer != null) {
return false;
@@ -206,7 +206,7 @@
}
}
- private void addVersionsTable(XClass clazz) {
+ private void addAuditTable(XClass clazz) {
AuditTable auditTable = clazz.getAnnotation(AuditTable.class);
if (auditTable != null) {
auditData.setAuditTable(auditTable);
@@ -215,19 +215,19 @@
}
}
- private void addVersionsSecondaryTables(XClass clazz) {
+ private void addAuditSecondaryTables(XClass clazz) {
// Getting information on secondary tables
SecondaryAuditTable secondaryVersionsTable1 = clazz.getAnnotation(SecondaryAuditTable.class);
if (secondaryVersionsTable1 != null) {
auditData.getSecondaryTableDictionary().put(secondaryVersionsTable1.secondaryTableName(),
- secondaryVersionsTable1.secondaryVersionsTableName());
+ secondaryVersionsTable1.secondaryAuditTableName());
}
- SecondaryAuditTables secondaryVersionsTables = clazz.getAnnotation(SecondaryAuditTables.class);
- if (secondaryVersionsTables != null) {
- for (SecondaryAuditTable secondaryVersionsTable2 : secondaryVersionsTables.value()) {
- auditData.getSecondaryTableDictionary().put(secondaryVersionsTable2.secondaryTableName(),
- secondaryVersionsTable2.secondaryVersionsTableName());
+ SecondaryAuditTables secondaryAuditTables = clazz.getAnnotation(SecondaryAuditTables.class);
+ if (secondaryAuditTables != null) {
+ for (SecondaryAuditTable secondaryAuditTable2 : secondaryAuditTables.value()) {
+ auditData.getSecondaryTableDictionary().put(secondaryAuditTable2.secondaryTableName(),
+ secondaryAuditTable2.secondaryAuditTableName());
}
}
}
@@ -244,8 +244,8 @@
readDefaultAudited(clazz);
addPropertiesFromClass(clazz);
- addVersionsTable(clazz);
- addVersionsSecondaryTables(clazz);
+ addAuditTable(clazz);
+ addAuditSecondaryTables(clazz);
} catch (ClassNotFoundException e) {
throw new MappingException(e);
}
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AuditMetadataGenerator.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AuditMetadataGenerator.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AuditMetadataGenerator.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -145,21 +145,21 @@
@SuppressWarnings({"unchecked"})
private void addProperties(Element parent, Iterator<Property> properties, CompositeMapperBuilder currentMapper,
- PersistentClassAuditingData versioningData, String entityName, EntityXmlMappingData xmlMappingData,
+ PersistentClassAuditingData auditingData, String entityName, EntityXmlMappingData xmlMappingData,
boolean firstPass) {
while (properties.hasNext()) {
Property property = properties.next();
String propertyName = property.getName();
- if (versioningData.getPropertyAuditingData(propertyName) != null) {
+ if (auditingData.getPropertyAuditingData(propertyName) != null) {
addValue(parent, property.getValue(), currentMapper, entityName,
- xmlMappingData, versioningData.getPropertyAuditingData(propertyName),
+ xmlMappingData, auditingData.getPropertyAuditingData(propertyName),
property.isInsertable(), firstPass);
}
}
}
@SuppressWarnings({"unchecked"})
- private void createJoins(PersistentClass pc, Element parent, PersistentClassAuditingData versioningData) {
+ private void createJoins(PersistentClass pc, Element parent, PersistentClassAuditingData auditingData) {
Iterator<Join> joins = pc.getJoinIterator();
Map<Join, Element> joinElements = new HashMap<Join, Element>();
@@ -171,22 +171,22 @@
// Determining the table name. If there is no entry in the dictionary, just constructing the table name
// as if it was an entity (by appending/prepending configured strings).
String originalTableName = join.getTable().getName();
- String versionedTableName = versioningData.getSecondaryTableDictionary().get(originalTableName);
- if (versionedTableName == null) {
- versionedTableName = verEntCfg.getVersionsEntityName(originalTableName);
+ String auditTableName = auditingData.getSecondaryTableDictionary().get(originalTableName);
+ if (auditTableName == null) {
+ auditTableName = verEntCfg.getAuditEntityName(originalTableName);
}
- String schema = versioningData.getAuditTable().schema();
+ String schema = auditingData.getAuditTable().schema();
if (StringTools.isEmpty(schema)) {
schema = join.getTable().getSchema();
}
- String catalog = versioningData.getAuditTable().catalog();
+ String catalog = auditingData.getAuditTable().catalog();
if (StringTools.isEmpty(catalog)) {
catalog = join.getTable().getCatalog();
}
- Element joinElement = MetadataTools.createJoin(parent, versionedTableName, schema, catalog);
+ Element joinElement = MetadataTools.createJoin(parent, auditTableName, schema, catalog);
joinElements.put(join, joinElement);
Element joinKey = joinElement.addElement("key");
@@ -196,7 +196,7 @@
}
@SuppressWarnings({"unchecked"})
- private void addJoins(PersistentClass pc, CompositeMapperBuilder currentMapper, PersistentClassAuditingData versioningData,
+ private void addJoins(PersistentClass pc, CompositeMapperBuilder currentMapper, PersistentClassAuditingData auditingData,
String entityName, EntityXmlMappingData xmlMappingData,boolean firstPass) {
Iterator<Join> joins = pc.getJoinIterator();
@@ -204,27 +204,27 @@
Join join = joins.next();
Element joinElement = entitiesJoins.get(entityName).get(join);
- addProperties(joinElement, join.getPropertyIterator(), currentMapper, versioningData, entityName,
+ addProperties(joinElement, join.getPropertyIterator(), currentMapper, auditingData, entityName,
xmlMappingData, firstPass);
}
}
@SuppressWarnings({"unchecked"})
- public void generateFirstPass(PersistentClass pc, PersistentClassAuditingData versioningData,
+ public void generateFirstPass(PersistentClass pc, PersistentClassAuditingData auditingData,
EntityXmlMappingData xmlMappingData) {
- String schema = versioningData.getAuditTable().schema();
+ String schema = auditingData.getAuditTable().schema();
if (StringTools.isEmpty(schema)) {
schema = pc.getTable().getSchema();
}
- String catalog = versioningData.getAuditTable().catalog();
+ String catalog = auditingData.getAuditTable().catalog();
if (StringTools.isEmpty(catalog)) {
catalog = pc.getTable().getCatalog();
}
String entityName = pc.getEntityName();
- String versionsEntityName = verEntCfg.getVersionsEntityName(entityName);
- String versionsTableName = verEntCfg.getVersionsTableName(entityName, pc.getTable().getName());
+ String auditEntityName = verEntCfg.getAuditEntityName(entityName);
+ String auditTableName = verEntCfg.getAuditTableName(entityName, pc.getTable().getName());
// Generating a mapping for the id
IdMappingData idMapper = idMetadataGenerator.addId(pc);
@@ -237,7 +237,7 @@
switch (inheritanceType) {
case NONE:
- class_mapping = MetadataTools.createEntity(xmlMappingData.getMainXmlMapping(), versionsEntityName, versionsTableName,
+ class_mapping = MetadataTools.createEntity(xmlMappingData.getMainXmlMapping(), auditEntityName, auditTableName,
schema, catalog, pc.getDiscriminatorValue());
propertyMapper = new MultiPropertyMapper();
@@ -256,9 +256,9 @@
break;
case SINGLE:
- String extendsEntityName = verEntCfg.getVersionsEntityName(pc.getSuperclass().getEntityName());
- class_mapping = MetadataTools.createSubclassEntity(xmlMappingData.getMainXmlMapping(), versionsEntityName,
- versionsTableName, schema, catalog, extendsEntityName, pc.getDiscriminatorValue());
+ String extendsEntityName = verEntCfg.getAuditEntityName(pc.getSuperclass().getEntityName());
+ class_mapping = MetadataTools.createSubclassEntity(xmlMappingData.getMainXmlMapping(), auditEntityName,
+ auditTableName, schema, catalog, extendsEntityName, pc.getDiscriminatorValue());
// The id and revision type is already mapped in the parent
@@ -269,30 +269,30 @@
break;
case JOINED:
- throw new MappingException("Joined inheritance strategy not supported for versioning!");
+ throw new MappingException("Joined inheritance strategy not supported for auditing!");
case TABLE_PER_CLASS:
- throw new MappingException("Table-per-class inheritance strategy not supported for versioning!");
+ throw new MappingException("Table-per-class inheritance strategy not supported for auditing!");
default:
throw new AssertionError("Impossible enum value.");
}
// Mapping unjoined properties
addProperties(class_mapping, (Iterator<Property>) pc.getUnjoinedPropertyIterator(), propertyMapper,
- versioningData, pc.getEntityName(), xmlMappingData,
+ auditingData, pc.getEntityName(), xmlMappingData,
true);
// Creating and mapping joins (first pass)
- createJoins(pc, class_mapping, versioningData);
- addJoins(pc, propertyMapper, versioningData, pc.getEntityName(), xmlMappingData, true);
+ createJoins(pc, class_mapping, auditingData);
+ addJoins(pc, propertyMapper, auditingData, pc.getEntityName(), xmlMappingData, true);
// Storing the generated configuration
- EntityConfiguration entityCfg = new EntityConfiguration(versionsEntityName, idMapper,
+ EntityConfiguration entityCfg = new EntityConfiguration(auditEntityName, idMapper,
propertyMapper, parentEntityName);
entitiesConfigurations.put(pc.getEntityName(), entityCfg);
}
@SuppressWarnings({"unchecked"})
- public void generateSecondPass(PersistentClass pc, PersistentClassAuditingData versioningData,
+ public void generateSecondPass(PersistentClass pc, PersistentClassAuditingData auditingData,
EntityXmlMappingData xmlMappingData) {
String entityName = pc.getEntityName();
@@ -305,10 +305,10 @@
}
addProperties(parent, (Iterator<Property>) pc.getUnjoinedPropertyIterator(),
- propertyMapper, versioningData, entityName, xmlMappingData, false);
+ propertyMapper, auditingData, entityName, xmlMappingData, false);
// Mapping joins (second pass)
- addJoins(pc, propertyMapper, versioningData, entityName, xmlMappingData, false);
+ addJoins(pc, propertyMapper, auditingData, entityName, xmlMappingData, false);
}
public Map<String, EntityConfiguration> getEntitiesConfigurations() {
@@ -334,7 +334,7 @@
}
void throwUnsupportedTypeException(Type type, String entityName, String propertyName) {
- String message = "Type not supported for versioning: " + type.getClass().getName() +
+ String message = "Type not supported for auditing: " + type.getClass().getName() +
", on entity " + entityName + ", property '" + propertyName + "'.";
throw new MappingException(message);
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/BasicMetadataGenerator.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/BasicMetadataGenerator.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/BasicMetadataGenerator.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -151,7 +151,7 @@
}
if (component_mapping == null) {
- throw new VersionsException("Element for component not found during second pass!");
+ throw new AuditException("Element for component not found during second pass!");
}
} else {
*/
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/CollectionMetadataGenerator.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/CollectionMetadataGenerator.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/CollectionMetadataGenerator.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -55,7 +55,7 @@
import org.hibernate.envers.entities.mapper.relation.lazy.proxy.SetProxy;
import org.hibernate.envers.entities.mapper.relation.lazy.proxy.SortedMapProxy;
import org.hibernate.envers.entities.mapper.relation.lazy.proxy.SortedSetProxy;
-import org.hibernate.envers.entities.mapper.relation.query.OneVersionsEntityQueryGenerator;
+import org.hibernate.envers.entities.mapper.relation.query.OneAuditEntityQueryGenerator;
import org.hibernate.envers.entities.mapper.relation.query.RelationQueryGenerator;
import org.hibernate.envers.tools.StringTools;
import org.hibernate.envers.tools.Tools;
@@ -124,7 +124,7 @@
referencingEntityConfiguration = mainGenerator.getEntitiesConfigurations().get(referencingEntityName);
if (referencingEntityConfiguration == null) {
- throw new MappingException("Unable to read versioning configuration for " + referencingEntityName + "!");
+ throw new MappingException("Unable to read auditing configuration for " + referencingEntityName + "!");
}
referencedEntityName = getReferencedEntityName(propertyValue.getElement());
@@ -182,7 +182,7 @@
MiddleComponentData indexComponentData = addIndex(null, null);
// Generating the query generator - it should read directly from the related entity.
- RelationQueryGenerator queryGenerator = new OneVersionsEntityQueryGenerator(mainGenerator.getGlobalCfg(),
+ RelationQueryGenerator queryGenerator = new OneAuditEntityQueryGenerator(mainGenerator.getGlobalCfg(),
mainGenerator.getVerEntCfg(), referencingIdData, referencedEntityName,
referencedIdMapping.getIdMapper());
@@ -233,22 +233,22 @@
@SuppressWarnings({"unchecked"})
private void addWithMiddleTable() {
// Generating the name of the middle table
- String versionsMiddleTableName;
- String versionsMiddleEntityName;
+ String auditMiddleTableName;
+ String auditMiddleEntityName;
if (!StringTools.isEmpty(persistentPropertyAuditingData.getJoinTable().name())) {
- versionsMiddleTableName = persistentPropertyAuditingData.getJoinTable().name();
- versionsMiddleEntityName = persistentPropertyAuditingData.getJoinTable().name();
+ auditMiddleTableName = persistentPropertyAuditingData.getJoinTable().name();
+ auditMiddleEntityName = persistentPropertyAuditingData.getJoinTable().name();
} else {
String middleTableName = getMiddleTableName(propertyValue, referencingEntityName);
- versionsMiddleTableName = mainGenerator.getVerEntCfg().getVersionsTableName(null, middleTableName);
- versionsMiddleEntityName = mainGenerator.getVerEntCfg().getVersionsEntityName(middleTableName);
+ auditMiddleTableName = mainGenerator.getVerEntCfg().getAuditTableName(null, middleTableName);
+ auditMiddleEntityName = mainGenerator.getVerEntCfg().getAuditEntityName(middleTableName);
}
// Generating the XML mapping for the middle entity, only if the relation isn't inverse.
// If the relation is inverse, will be later checked by comparing middleEntityXml with null.
Element middleEntityXml;
if (!propertyValue.isInverse()) {
- middleEntityXml = createMiddleEntityXml(versionsMiddleTableName, versionsMiddleEntityName);
+ middleEntityXml = createMiddleEntityXml(auditMiddleTableName, auditMiddleEntityName);
} else {
middleEntityXml = null;
}
@@ -287,7 +287,7 @@
// 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.getGlobalCfg(),
- mainGenerator.getVerEntCfg(), referencingIdData, versionsMiddleEntityName);
+ mainGenerator.getVerEntCfg(), referencingIdData, auditMiddleEntityName);
// Adding the XML mapping for the referencing entity, if the relation isn't inverse.
if (middleEntityXml != null) {
@@ -316,7 +316,7 @@
// Creating common data
CommonCollectionMapperData commonCollectionMapperData = new CommonCollectionMapperData(
- mainGenerator.getVerEntCfg(), versionsMiddleEntityName,
+ mainGenerator.getVerEntCfg(), auditMiddleEntityName,
persistentPropertyAuditingData.getPropertyData(),
referencingIdData, queryGenerator);
@@ -461,14 +461,14 @@
}
}
- private Element createMiddleEntityXml(String versionsMiddleTableName, String versionsMiddleEntityName) {
+ private Element createMiddleEntityXml(String auditMiddleTableName, String auditMiddleEntityName) {
String schema = StringTools.isEmpty(persistentPropertyAuditingData.getJoinTable().schema()) ?
propertyValue.getCollectionTable().getSchema() : persistentPropertyAuditingData.getJoinTable().schema();
String catalog = StringTools.isEmpty(persistentPropertyAuditingData.getJoinTable().catalog()) ?
propertyValue.getCollectionTable().getCatalog() : persistentPropertyAuditingData.getJoinTable().catalog();
Element middleEntityXml = MetadataTools.createEntity(xmlMappingData.newAdditionalMapping(),
- versionsMiddleEntityName, versionsMiddleTableName, schema, catalog, null);
+ auditMiddleEntityName, auditMiddleTableName, schema, catalog, null);
Element middleEntityXmlId = middleEntityXml.addElement("composite-id");
middleEntityXmlId.addAttribute("name", mainGenerator.getVerEntCfg().getOriginalIdPropName());
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/IdMetadataGenerator.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/IdMetadataGenerator.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/IdMetadataGenerator.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -50,8 +50,8 @@
public final class IdMetadataGenerator {
private final AuditMetadataGenerator mainGenerator;
- IdMetadataGenerator(AuditMetadataGenerator versionsMetadataGenerator) {
- mainGenerator = versionsMetadataGenerator;
+ IdMetadataGenerator(AuditMetadataGenerator auditMetadataGenerator) {
+ mainGenerator = auditMetadataGenerator;
}
@SuppressWarnings({"unchecked"})
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/QueryGeneratorBuilder.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/QueryGeneratorBuilder.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/QueryGeneratorBuilder.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -44,15 +44,15 @@
private final GlobalConfiguration globalCfg;
private final AuditEntitiesConfiguration verEntCfg;
private final MiddleIdData referencingIdData;
- private final String versionsMiddleEntityName;
+ private final String auditMiddleEntityName;
private final List<MiddleIdData> idDatas;
QueryGeneratorBuilder(GlobalConfiguration globalCfg, AuditEntitiesConfiguration verEntCfg,
- MiddleIdData referencingIdData, String versionsMiddleEntityName) {
+ MiddleIdData referencingIdData, String auditMiddleEntityName) {
this.globalCfg = globalCfg;
this.verEntCfg = verEntCfg;
this.referencingIdData = referencingIdData;
- this.versionsMiddleEntityName = versionsMiddleEntityName;
+ this.auditMiddleEntityName = auditMiddleEntityName;
idDatas = new ArrayList<MiddleIdData>();
}
@@ -63,13 +63,13 @@
RelationQueryGenerator build(MiddleComponentData... componentDatas) {
if (idDatas.size() == 0) {
- return new OneEntityQueryGenerator(verEntCfg, versionsMiddleEntityName, referencingIdData,
+ return new OneEntityQueryGenerator(verEntCfg, auditMiddleEntityName, referencingIdData,
componentDatas);
} else if (idDatas.size() == 1) {
- return new TwoEntityQueryGenerator(globalCfg, verEntCfg, versionsMiddleEntityName, referencingIdData,
+ return new TwoEntityQueryGenerator(globalCfg, verEntCfg, auditMiddleEntityName, referencingIdData,
idDatas.get(0), componentDatas);
} else if (idDatas.size() == 2) {
- return new ThreeEntityQueryGenerator(globalCfg, verEntCfg, versionsMiddleEntityName, referencingIdData,
+ return new ThreeEntityQueryGenerator(globalCfg, verEntCfg, auditMiddleEntityName, referencingIdData,
idDatas.get(0), idDatas.get(1), componentDatas);
} else {
throw new IllegalStateException("Illegal number of related entities.");
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/ToOneRelationMetadataGenerator.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/ToOneRelationMetadataGenerator.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/ToOneRelationMetadataGenerator.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -44,8 +44,8 @@
public final class ToOneRelationMetadataGenerator {
private final AuditMetadataGenerator mainGenerator;
- ToOneRelationMetadataGenerator(AuditMetadataGenerator versionsMetadataGenerator) {
- mainGenerator = versionsMetadataGenerator;
+ ToOneRelationMetadataGenerator(AuditMetadataGenerator auditMetadataGenerator) {
+ mainGenerator = auditMetadataGenerator;
}
@SuppressWarnings({"unchecked"})
@@ -55,7 +55,7 @@
EntityConfiguration configuration = mainGenerator.getEntitiesConfigurations().get(referencedEntityName);
if (configuration == null) {
- throw new MappingException("A versioned relation to a non-versioned entity " + referencedEntityName + "!");
+ throw new MappingException("An audited relation to a non-audited entity " + referencedEntityName + "!");
}
IdMappingData idMapping = configuration.getIdMappingData();
@@ -91,13 +91,13 @@
EntityConfiguration configuration = mainGenerator.getEntitiesConfigurations().get(entityName);
if (configuration == null) {
- throw new MappingException("A versioned relation to a non-versioned entity " + entityName + "!");
+ throw new MappingException("An audited relation to a non-audited entity " + entityName + "!");
}
IdMappingData ownedIdMapping = configuration.getIdMappingData();
if (ownedIdMapping == null) {
- throw new MappingException("A versioned relation to a non-versioned entity " + entityName + "!");
+ throw new MappingException("An audited relation to a non-audited entity " + entityName + "!");
}
String lastPropertyPrefix = owningReferencePropertyName + "_";
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/entities/mapper/relation/MiddleIdData.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/entities/mapper/relation/MiddleIdData.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/entities/mapper/relation/MiddleIdData.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -55,7 +55,7 @@
this.originalMapper = mappingData.getIdMapper();
this.prefixedMapper = mappingData.getIdMapper().prefixMappedProperties(prefix);
this.entityName = entityName;
- this.versionsEntityName = verEntCfg.getVersionsEntityName(entityName);
+ this.versionsEntityName = verEntCfg.getAuditEntityName(entityName);
}
public IdMapper getOriginalMapper() {
Copied: core/trunk/envers/src/main/java/org/hibernate/envers/entities/mapper/relation/query/OneAuditEntityQueryGenerator.java (from rev 15513, core/trunk/envers/src/main/java/org/hibernate/envers/entities/mapper/relation/query/OneVersionsEntityQueryGenerator.java)
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/entities/mapper/relation/query/OneAuditEntityQueryGenerator.java (rev 0)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/entities/mapper/relation/query/OneAuditEntityQueryGenerator.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -0,0 +1,110 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008, 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.envers.entities.mapper.relation.query;
+
+import java.util.Collections;
+
+import org.hibernate.envers.RevisionType;
+import org.hibernate.envers.configuration.GlobalConfiguration;
+import org.hibernate.envers.configuration.AuditEntitiesConfiguration;
+import org.hibernate.envers.entities.mapper.id.IdMapper;
+import org.hibernate.envers.entities.mapper.id.QueryParameterData;
+import org.hibernate.envers.entities.mapper.relation.MiddleIdData;
+import org.hibernate.envers.reader.AuditReaderImplementor;
+import org.hibernate.envers.tools.query.Parameters;
+import org.hibernate.envers.tools.query.QueryBuilder;
+
+import org.hibernate.Query;
+
+/**
+ * Selects data from an audit entity.
+ * @author Adam Warski (adam at warski dot org)
+ */
+public final class OneAuditEntityQueryGenerator implements RelationQueryGenerator {
+ private final String queryString;
+ private final MiddleIdData referencingIdData;
+
+ public OneAuditEntityQueryGenerator(GlobalConfiguration globalCfg, AuditEntitiesConfiguration verEntCfg,
+ MiddleIdData referencingIdData, String referencedEntityName,
+ IdMapper referencedIdMapper) {
+ this.referencingIdData = referencingIdData;
+
+ /*
+ * The query that we need to create:
+ * SELECT new list(e) FROM versionsReferencedEntity e
+ * WHERE
+ * (only entities referenced by the association; id_ref_ing = id of the referencing entity)
+ * e.id_ref_ing = :id_ref_ing AND
+ * (selecting e entities at revision :revision)
+ * e.revision = (SELECT max(e2.revision) FROM versionsReferencedEntity e2
+ * WHERE e2.revision <= :revision AND e2.id = e.id) AND
+ * (only non-deleted entities)
+ * e.revision_type != DEL
+ */
+ String revisionPropertyPath = verEntCfg.getRevisionPropPath();
+ String originalIdPropertyName = verEntCfg.getOriginalIdPropName();
+
+ String versionsReferencedEntityName = verEntCfg.getAuditEntityName(referencedEntityName);
+
+ // SELECT new list(e) FROM versionsEntity e
+ QueryBuilder qb = new QueryBuilder(versionsReferencedEntityName, "e");
+ qb.addProjection("new list", "e", false, false);
+ // WHERE
+ Parameters rootParameters = qb.getRootParameters();
+ // e.id_ref_ed = :id_ref_ed
+ referencingIdData.getPrefixedMapper().addNamedIdEqualsToQuery(rootParameters, null, true);
+
+ // SELECT max(e.revision) FROM versionsReferencedEntity e2
+ QueryBuilder maxERevQb = qb.newSubQueryBuilder(versionsReferencedEntityName, "e2");
+ maxERevQb.addProjection("max", revisionPropertyPath, false);
+ // WHERE
+ Parameters maxERevQbParameters = maxERevQb.getRootParameters();
+ // e2.revision <= :revision
+ maxERevQbParameters.addWhereWithNamedParam(revisionPropertyPath, "<=", "revision");
+ // e2.id = e.id
+ referencedIdMapper.addIdsEqualToQuery(maxERevQbParameters,
+ "e." + originalIdPropertyName, "e2." + originalIdPropertyName);
+
+ // e.revision = (SELECT max(...) ...)
+ rootParameters.addWhere(revisionPropertyPath, false, globalCfg.getCorrelatedSubqueryOperator(), maxERevQb);
+
+ // e.revision_type != DEL
+ rootParameters.addWhereWithNamedParam(verEntCfg.getRevisionTypePropName(), false, "!=", "delrevisiontype");
+
+ StringBuilder sb = new StringBuilder();
+ qb.build(sb, Collections.<String, Object>emptyMap());
+ queryString = sb.toString();
+ }
+
+ public Query getQuery(AuditReaderImplementor versionsReader, Object primaryKey, Number revision) {
+ Query query = versionsReader.getSession().createQuery(queryString);
+ query.setParameter("revision", revision);
+ query.setParameter("delrevisiontype", RevisionType.DEL);
+ for (QueryParameterData paramData: referencingIdData.getPrefixedMapper().mapToQueryParametersFromId(primaryKey)) {
+ paramData.setParameterValue(query);
+ }
+
+ return query;
+ }
+}
\ No newline at end of file
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/query/AuditRestrictions.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/query/AuditRestrictions.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/query/AuditRestrictions.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -43,175 +43,175 @@
* Apply an "equal" constraint to the identifier property.
*/
public static AuditCriterion idEq(Object value) {
- return new IdentifierEqVersionsExpression(value);
+ return new IdentifierEqAuditExpression(value);
}
/**
* Apply an "equal" constraint to the named property
*/
public static AuditCriterion eq(String propertyName, Object value) {
- return new SimpleVersionsExpression(propertyName, value, "=");
+ return new SimpleAuditExpression(propertyName, value, "=");
}
/**
* Apply a "not equal" constraint to the named property
*/
public static AuditCriterion ne(String propertyName, Object value) {
- return new SimpleVersionsExpression(propertyName, value, "<>");
+ return new SimpleAuditExpression(propertyName, value, "<>");
}
/**
* Apply an "equal" constraint on an id of a related entity
*/
public static AuditCriterion relatedIdEq(String propertyName, Object id) {
- return new RelatedVersionsExpression(propertyName, id, true);
+ return new RelatedAuditExpression(propertyName, id, true);
}
/**
* Apply a "not equal" constraint to the named property
*/
public static AuditCriterion relatedIdNe(String propertyName, Object id) {
- return new RelatedVersionsExpression(propertyName, id, false);
+ return new RelatedAuditExpression(propertyName, id, false);
}
/**
* Apply a "like" constraint to the named property
*/
public static AuditCriterion like(String propertyName, Object value) {
- return new SimpleVersionsExpression(propertyName, value, " like ");
+ return new SimpleAuditExpression(propertyName, value, " like ");
}
/**
* Apply a "like" constraint to the named property
*/
public static AuditCriterion like(String propertyName, String value, MatchMode matchMode) {
- return new SimpleVersionsExpression(propertyName, matchMode.toMatchString(value), " like " );
+ return new SimpleAuditExpression(propertyName, matchMode.toMatchString(value), " like " );
}
/**
* Apply a "greater than" constraint to the named property
*/
public static AuditCriterion gt(String propertyName, Object value) {
- return new SimpleVersionsExpression(propertyName, value, ">");
+ return new SimpleAuditExpression(propertyName, value, ">");
}
/**
* Apply a "less than" constraint to the named property
*/
public static AuditCriterion lt(String propertyName, Object value) {
- return new SimpleVersionsExpression(propertyName, value, "<");
+ return new SimpleAuditExpression(propertyName, value, "<");
}
/**
* Apply a "less than or equal" constraint to the named property
*/
public static AuditCriterion le(String propertyName, Object value) {
- return new SimpleVersionsExpression(propertyName, value, "<=");
+ return new SimpleAuditExpression(propertyName, value, "<=");
}
/**
* Apply a "greater than or equal" constraint to the named property
*/
public static AuditCriterion ge(String propertyName, Object value) {
- return new SimpleVersionsExpression(propertyName, value, ">=");
+ return new SimpleAuditExpression(propertyName, value, ">=");
}
/**
* Apply a "between" constraint to the named property
*/
public static AuditCriterion between(String propertyName, Object lo, Object hi) {
- return new BetweenVersionsExpression(propertyName, lo, hi);
+ return new BetweenAuditExpression(propertyName, lo, hi);
}
/**
* Apply an "in" constraint to the named property
*/
public static AuditCriterion in(String propertyName, Object[] values) {
- return new InVersionsExpression(propertyName, values);
+ return new InAuditExpression(propertyName, values);
}
/**
* Apply an "in" constraint to the named property
*/
public static AuditCriterion in(String propertyName, Collection values) {
- return new InVersionsExpression(propertyName, values.toArray());
+ return new InAuditExpression(propertyName, values.toArray());
}
/**
* Apply an "is null" constraint to the named property
*/
public static AuditCriterion isNull(String propertyName) {
- return new NullVersionsExpression(propertyName);
+ return new NullAuditExpression(propertyName);
}
/**
* Apply an "equal" constraint to two properties
*/
public static AuditCriterion eqProperty(String propertyName, String otherPropertyName) {
- return new PropertyVersionsExpression(propertyName, otherPropertyName, "=");
+ return new PropertyAuditExpression(propertyName, otherPropertyName, "=");
}
/**
* Apply a "not equal" constraint to two properties
*/
public static AuditCriterion neProperty(String propertyName, String otherPropertyName) {
- return new PropertyVersionsExpression(propertyName, otherPropertyName, "<>");
+ return new PropertyAuditExpression(propertyName, otherPropertyName, "<>");
}
/**
* Apply a "less than" constraint to two properties
*/
public static AuditCriterion ltProperty(String propertyName, String otherPropertyName) {
- return new PropertyVersionsExpression(propertyName, otherPropertyName, "<");
+ return new PropertyAuditExpression(propertyName, otherPropertyName, "<");
}
/**
* Apply a "less than or equal" constraint to two properties
*/
public static AuditCriterion leProperty(String propertyName, String otherPropertyName) {
- return new PropertyVersionsExpression(propertyName, otherPropertyName, "<=");
+ return new PropertyAuditExpression(propertyName, otherPropertyName, "<=");
}
/**
* Apply a "greater than" constraint to two properties
*/
public static AuditCriterion gtProperty(String propertyName, String otherPropertyName) {
- return new PropertyVersionsExpression(propertyName, otherPropertyName, ">");
+ return new PropertyAuditExpression(propertyName, otherPropertyName, ">");
}
/**
* Apply a "greater than or equal" constraint to two properties
*/
public static AuditCriterion geProperty(String propertyName, String otherPropertyName) {
- return new PropertyVersionsExpression(propertyName, otherPropertyName, ">=");
+ return new PropertyAuditExpression(propertyName, otherPropertyName, ">=");
}
/**
* Apply an "is not null" constraint to the named property
*/
public static AuditCriterion isNotNull(String propertyName) {
- return new NotNullVersionsExpression(propertyName);
+ return new NotNullAuditExpression(propertyName);
}
/**
* Return the conjuction of two expressions
*/
public static AuditCriterion and(AuditCriterion lhs, AuditCriterion rhs) {
- return new LogicalVersionsExpression(lhs, rhs, "and");
+ return new LogicalAuditExpression(lhs, rhs, "and");
}
/**
* Return the disjuction of two expressions
*/
public static AuditCriterion or(AuditCriterion lhs, AuditCriterion rhs) {
- return new LogicalVersionsExpression(lhs, rhs, "or");
+ return new LogicalAuditExpression(lhs, rhs, "or");
}
/**
* Return the negation of an expression
*/
public static AuditCriterion not(AuditCriterion expression) {
- return new NotVersionsExpression(expression);
+ return new NotAuditExpression(expression);
}
/**
@@ -231,16 +231,16 @@
/**
* Apply a "maximalize property" constraint.
*/
- public static AggregatedFieldVersionsExpression maximizeProperty(String propertyName) {
- return new AggregatedFieldVersionsExpression(propertyName,
- AggregatedFieldVersionsExpression.AggregatedMode.MAX);
+ public static AggregatedFieldAuditExpression maximizeProperty(String propertyName) {
+ return new AggregatedFieldAuditExpression(propertyName,
+ AggregatedFieldAuditExpression.AggregatedMode.MAX);
}
/**
* Apply a "minimize property" constraint.
*/
- public static AggregatedFieldVersionsExpression minimizeProperty(String propertyName) {
- return new AggregatedFieldVersionsExpression(propertyName,
- AggregatedFieldVersionsExpression.AggregatedMode.MIN);
+ public static AggregatedFieldAuditExpression minimizeProperty(String propertyName) {
+ return new AggregatedFieldAuditExpression(propertyName,
+ AggregatedFieldAuditExpression.AggregatedMode.MIN);
}
}
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/query/RevisionProperty.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/query/RevisionProperty.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/query/RevisionProperty.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -24,11 +24,11 @@
package org.hibernate.envers.query;
import org.hibernate.envers.configuration.AuditConfiguration;
-import org.hibernate.envers.query.criteria.RevisionVersionsExpression;
+import org.hibernate.envers.query.criteria.RevisionAuditExpression;
import org.hibernate.envers.query.criteria.AuditCriterion;
-import org.hibernate.envers.query.order.RevisionVersionsOrder;
+import org.hibernate.envers.query.order.RevisionAuditOrder;
import org.hibernate.envers.query.order.AuditOrder;
-import org.hibernate.envers.query.projection.RevisionVersionsProjection;
+import org.hibernate.envers.query.projection.RevisionAuditProjection;
import org.hibernate.envers.query.projection.AuditProjection;
import org.hibernate.envers.tools.Triple;
@@ -43,77 +43,77 @@
* Apply a "greater than" constraint on the revision number
*/
public static AuditCriterion gt(Integer revision) {
- return new RevisionVersionsExpression(revision, ">");
+ return new RevisionAuditExpression(revision, ">");
}
/**
* Apply a "greater than or equal" constraint on the revision number
*/
public static AuditCriterion ge(Integer revision) {
- return new RevisionVersionsExpression(revision, ">=");
+ return new RevisionAuditExpression(revision, ">=");
}
/**
* Apply a "less than" constraint on the revision number
*/
public static AuditCriterion lt(Integer revision) {
- return new RevisionVersionsExpression(revision, "<");
+ return new RevisionAuditExpression(revision, "<");
}
/**
* Apply a "less than or equal" constraint on the revision number
*/
public static AuditCriterion le(Integer revision) {
- return new RevisionVersionsExpression(revision, "<=");
+ return new RevisionAuditExpression(revision, "<=");
}
/**
* Sort the results by revision in ascending order
*/
public static AuditOrder asc() {
- return new RevisionVersionsOrder(true);
+ return new RevisionAuditOrder(true);
}
/**
* Sort the results by revision in descending order
*/
public static AuditOrder desc() {
- return new RevisionVersionsOrder(false);
+ return new RevisionAuditOrder(false);
}
/**
* Select the maximum revision
*/
public static AuditProjection max() {
- return new RevisionVersionsProjection(RevisionVersionsProjection.ProjectionType.MAX);
+ return new RevisionAuditProjection(RevisionAuditProjection.ProjectionType.MAX);
}
/**
* Select the minimum revision
*/
public static AuditProjection min() {
- return new RevisionVersionsProjection(RevisionVersionsProjection.ProjectionType.MIN);
+ return new RevisionAuditProjection(RevisionAuditProjection.ProjectionType.MIN);
}
/**
* Count revisions
*/
public static AuditProjection count() {
- return new RevisionVersionsProjection(RevisionVersionsProjection.ProjectionType.COUNT);
+ return new RevisionAuditProjection(RevisionAuditProjection.ProjectionType.COUNT);
}
/**
* Count distinct revisions
*/
public static AuditProjection countDistinct() {
- return new RevisionVersionsProjection(RevisionVersionsProjection.ProjectionType.COUNT_DISTINCT);
+ return new RevisionAuditProjection(RevisionAuditProjection.ProjectionType.COUNT_DISTINCT);
}
/**
* Distinct revisions
*/
public static AuditProjection distinct() {
- return new RevisionVersionsProjection(RevisionVersionsProjection.ProjectionType.DISTINCT);
+ return new RevisionAuditProjection(RevisionAuditProjection.ProjectionType.DISTINCT);
}
/**
Copied: core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/AggregatedFieldAuditExpression.java (from rev 15513, core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/AggregatedFieldVersionsExpression.java)
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/AggregatedFieldAuditExpression.java (rev 0)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/AggregatedFieldAuditExpression.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -0,0 +1,82 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008, 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.envers.query.criteria;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.hibernate.envers.configuration.AuditConfiguration;
+import org.hibernate.envers.tools.query.Parameters;
+import org.hibernate.envers.tools.query.QueryBuilder;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class AggregatedFieldAuditExpression implements AuditCriterion, ExtendableCriterion {
+ public static enum AggregatedMode {
+ MAX,
+ MIN
+ }
+
+ private String propertyName;
+ private AggregatedMode mode;
+ private List<AuditCriterion> criterions;
+
+ public AggregatedFieldAuditExpression(String propertyName, AggregatedMode mode) {
+ this.propertyName = propertyName;
+ this.mode = mode;
+ criterions = new ArrayList<AuditCriterion>();
+ }
+
+ public AggregatedFieldAuditExpression add(AuditCriterion criterion) {
+ criterions.add(criterion);
+ return this;
+ }
+
+ public void addToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) {
+ CriteriaTools.checkPropertyNotARelation(verCfg, entityName, propertyName);
+
+ // This will be the aggregated query, containing all the specified conditions
+ QueryBuilder subQb = qb.newSubQueryBuilder();
+
+ // Adding all specified conditions both to the main query, as well as to the
+ // aggregated one.
+ for (AuditCriterion versionsCriteria : criterions) {
+ versionsCriteria.addToQuery(verCfg, entityName, qb, parameters);
+ versionsCriteria.addToQuery(verCfg, entityName, subQb, subQb.getRootParameters());
+ }
+
+ // Setting the desired projection of the aggregated query
+ switch (mode) {
+ case MIN:
+ subQb.addProjection("min", propertyName, false);
+ break;
+ case MAX:
+ subQb.addProjection("max", propertyName, false);
+ }
+
+ // Adding the constrain on the result of the aggregated criteria
+ parameters.addWhere(propertyName, "=", subQb);
+ }
+}
\ No newline at end of file
Copied: core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/BetweenAuditExpression.java (from rev 15513, core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/BetweenVersionsExpression.java)
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/BetweenAuditExpression.java (rev 0)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/BetweenAuditExpression.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -0,0 +1,49 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008, 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.envers.query.criteria;
+
+import org.hibernate.envers.configuration.AuditConfiguration;
+import org.hibernate.envers.tools.query.Parameters;
+import org.hibernate.envers.tools.query.QueryBuilder;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class BetweenAuditExpression implements AuditCriterion {
+ private String propertyName;
+ private Object lo;
+ private Object hi;
+
+ public BetweenAuditExpression(String propertyName, Object lo, Object hi) {
+ this.propertyName = propertyName;
+ this.lo = lo;
+ this.hi = hi;
+ }
+
+ public void addToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) {
+ CriteriaTools.checkPropertyNotARelation(verCfg, entityName, propertyName);
+ parameters.addWhereWithParam(propertyName, ">=", lo);
+ parameters.addWhereWithParam(propertyName, "<=", hi);
+ }
+}
Copied: core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/IdentifierEqAuditExpression.java (from rev 15513, core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/IdentifierEqVersionsExpression.java)
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/IdentifierEqAuditExpression.java (rev 0)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/IdentifierEqAuditExpression.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -0,0 +1,44 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008, 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.envers.query.criteria;
+
+import org.hibernate.envers.configuration.AuditConfiguration;
+import org.hibernate.envers.tools.query.Parameters;
+import org.hibernate.envers.tools.query.QueryBuilder;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class IdentifierEqAuditExpression implements AuditCriterion {
+ private Object id;
+
+ public IdentifierEqAuditExpression(Object id) {
+ this.id = id;
+ }
+
+ public void addToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) {
+ verCfg.getEntCfg().get(entityName).getIdMapper()
+ .addIdEqualsToQuery(parameters, id, verCfg.getAuditEntCfg().getOriginalIdPropName(), true);
+ }
+}
Copied: core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/InAuditExpression.java (from rev 15513, core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/InVersionsExpression.java)
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/InAuditExpression.java (rev 0)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/InAuditExpression.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -0,0 +1,46 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008, 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.envers.query.criteria;
+
+import org.hibernate.envers.configuration.AuditConfiguration;
+import org.hibernate.envers.tools.query.Parameters;
+import org.hibernate.envers.tools.query.QueryBuilder;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class InAuditExpression implements AuditCriterion {
+ private String propertyName;
+ private Object[] values;
+
+ public InAuditExpression(String propertyName, Object[] values) {
+ this.propertyName = propertyName;
+ this.values = values;
+ }
+
+ public void addToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) {
+ CriteriaTools.checkPropertyNotARelation(verCfg, entityName, propertyName);
+ parameters.addWhereWithParams(propertyName, "in (", values, ")");
+ }
+}
Copied: core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/LogicalAuditExpression.java (from rev 15513, core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/LogicalVersionsExpression.java)
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/LogicalAuditExpression.java (rev 0)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/LogicalAuditExpression.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -0,0 +1,50 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008, 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.envers.query.criteria;
+
+import org.hibernate.envers.configuration.AuditConfiguration;
+import org.hibernate.envers.tools.query.Parameters;
+import org.hibernate.envers.tools.query.QueryBuilder;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class LogicalAuditExpression implements AuditCriterion {
+ private AuditCriterion lhs;
+ private AuditCriterion rhs;
+ private String op;
+
+ public LogicalAuditExpression(AuditCriterion lhs, AuditCriterion rhs, String op) {
+ this.lhs = lhs;
+ this.rhs = rhs;
+ this.op = op;
+ }
+
+ public void addToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) {
+ Parameters opParameters = parameters.addSubParameters(op);
+
+ lhs.addToQuery(verCfg, entityName, qb, opParameters.addSubParameters("and"));
+ rhs.addToQuery(verCfg, entityName, qb, opParameters.addSubParameters("and"));
+ }
+}
Copied: core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/NotAuditExpression.java (from rev 15513, core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/NotVersionsExpression.java)
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/NotAuditExpression.java (rev 0)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/NotAuditExpression.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -0,0 +1,43 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008, 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.envers.query.criteria;
+
+import org.hibernate.envers.configuration.AuditConfiguration;
+import org.hibernate.envers.tools.query.Parameters;
+import org.hibernate.envers.tools.query.QueryBuilder;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class NotAuditExpression implements AuditCriterion {
+ private AuditCriterion criterion;
+
+ public NotAuditExpression(AuditCriterion criterion) {
+ this.criterion = criterion;
+ }
+
+ public void addToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) {
+ criterion.addToQuery(verCfg, entityName, qb, parameters.addNegatedParameters());
+ }
+}
Copied: core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/NotNullAuditExpression.java (from rev 15513, core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/NotNullVersionsExpression.java)
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/NotNullAuditExpression.java (rev 0)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/NotNullAuditExpression.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -0,0 +1,50 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008, 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.envers.query.criteria;
+
+import org.hibernate.envers.configuration.AuditConfiguration;
+import org.hibernate.envers.entities.RelationDescription;
+import org.hibernate.envers.tools.query.Parameters;
+import org.hibernate.envers.tools.query.QueryBuilder;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class NotNullAuditExpression implements AuditCriterion {
+ private String propertyName;
+
+ public NotNullAuditExpression(String propertyName) {
+ this.propertyName = propertyName;
+ }
+
+ public void addToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) {
+ RelationDescription relatedEntity = CriteriaTools.getRelatedEntity(verCfg, entityName, propertyName);
+
+ if (relatedEntity == null) {
+ parameters.addWhereWithParam(propertyName, "<>", null);
+ } else {
+ relatedEntity.getIdMapper().addIdEqualsToQuery(parameters, null, propertyName, false);
+ }
+ }
+}
Copied: core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/NullAuditExpression.java (from rev 15513, core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/NullVersionsExpression.java)
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/NullAuditExpression.java (rev 0)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/NullAuditExpression.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -0,0 +1,50 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008, 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.envers.query.criteria;
+
+import org.hibernate.envers.configuration.AuditConfiguration;
+import org.hibernate.envers.entities.RelationDescription;
+import org.hibernate.envers.tools.query.Parameters;
+import org.hibernate.envers.tools.query.QueryBuilder;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class NullAuditExpression implements AuditCriterion {
+ private String propertyName;
+
+ public NullAuditExpression(String propertyName) {
+ this.propertyName = propertyName;
+ }
+
+ public void addToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) {
+ RelationDescription relatedEntity = CriteriaTools.getRelatedEntity(verCfg, entityName, propertyName);
+
+ if (relatedEntity == null) {
+ parameters.addWhereWithParam(propertyName, "=", null);
+ } else {
+ relatedEntity.getIdMapper().addIdEqualsToQuery(parameters, null, propertyName, true);
+ }
+ }
+}
Copied: core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/PropertyAuditExpression.java (from rev 15513, core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/PropertyVersionsExpression.java)
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/PropertyAuditExpression.java (rev 0)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/PropertyAuditExpression.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -0,0 +1,49 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008, 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.envers.query.criteria;
+
+import org.hibernate.envers.configuration.AuditConfiguration;
+import org.hibernate.envers.tools.query.Parameters;
+import org.hibernate.envers.tools.query.QueryBuilder;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class PropertyAuditExpression implements AuditCriterion {
+ private String propertyName;
+ private String otherPropertyName;
+ private String op;
+
+ public PropertyAuditExpression(String propertyName, String otherPropertyName, String op) {
+ this.propertyName = propertyName;
+ this.otherPropertyName = otherPropertyName;
+ this.op = op;
+ }
+
+ public void addToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) {
+ CriteriaTools.checkPropertyNotARelation(verCfg, entityName, propertyName);
+ CriteriaTools.checkPropertyNotARelation(verCfg, entityName, otherPropertyName);
+ parameters.addWhere(propertyName, op, otherPropertyName);
+ }
+}
Copied: core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/RelatedAuditExpression.java (from rev 15513, core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/RelatedVersionsExpression.java)
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/RelatedAuditExpression.java (rev 0)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/RelatedAuditExpression.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -0,0 +1,56 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008, 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.envers.query.criteria;
+
+import org.hibernate.envers.configuration.AuditConfiguration;
+import org.hibernate.envers.entities.RelationDescription;
+import org.hibernate.envers.exception.AuditException;
+import org.hibernate.envers.tools.query.Parameters;
+import org.hibernate.envers.tools.query.QueryBuilder;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class RelatedAuditExpression implements AuditCriterion {
+ private String propertyName;
+ private Object id;
+ private boolean equals;
+
+ public RelatedAuditExpression(String propertyName, Object id, boolean equals) {
+ this.propertyName = propertyName;
+ this.id = id;
+ this.equals = equals;
+ }
+
+ public void addToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) {
+ RelationDescription relatedEntity = CriteriaTools.getRelatedEntity(verCfg, entityName, propertyName);
+
+ if (relatedEntity == null) {
+ throw new AuditException("This criterion can only be used on a property that is " +
+ "a relation to another property.");
+ } else {
+ relatedEntity.getIdMapper().addIdEqualsToQuery(parameters, id, propertyName, equals);
+ }
+ }
+}
\ No newline at end of file
Copied: core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/RevisionAuditExpression.java (from rev 15513, core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/RevisionVersionsExpression.java)
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/RevisionAuditExpression.java (rev 0)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/RevisionAuditExpression.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -0,0 +1,45 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008, 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.envers.query.criteria;
+
+import org.hibernate.envers.configuration.AuditConfiguration;
+import org.hibernate.envers.tools.query.Parameters;
+import org.hibernate.envers.tools.query.QueryBuilder;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class RevisionAuditExpression implements AuditCriterion {
+ private Object value;
+ private String op;
+
+ public RevisionAuditExpression(Object value, String op) {
+ this.value = value;
+ this.op = op;
+ }
+
+ public void addToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) {
+ parameters.addWhereWithParam(verCfg.getAuditEntCfg().getRevisionPropPath(), op, value);
+ }
+}
\ No newline at end of file
Copied: core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/SimpleAuditExpression.java (from rev 15513, core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/SimpleVersionsExpression.java)
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/SimpleAuditExpression.java (rev 0)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/query/criteria/SimpleAuditExpression.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -0,0 +1,62 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008, 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.envers.query.criteria;
+
+import org.hibernate.envers.configuration.AuditConfiguration;
+import org.hibernate.envers.entities.RelationDescription;
+import org.hibernate.envers.exception.AuditException;
+import org.hibernate.envers.tools.query.Parameters;
+import org.hibernate.envers.tools.query.QueryBuilder;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class SimpleAuditExpression implements AuditCriterion {
+ private String propertyName;
+ private Object value;
+ private String op;
+
+ public SimpleAuditExpression(String propertyName, Object value, String op) {
+ this.propertyName = propertyName;
+ this.value = value;
+ this.op = op;
+ }
+
+ public void addToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) {
+ RelationDescription relatedEntity = CriteriaTools.getRelatedEntity(verCfg, entityName, propertyName);
+
+ if (relatedEntity == null) {
+ parameters.addWhereWithParam(propertyName, op, value);
+ } else {
+ if (!"=".equals(op) && !"<>".equals(op)) {
+ throw new AuditException("This type of operation: " + op + " (" + entityName + "." + propertyName +
+ ") isn't supported and can't be used in queries.");
+ }
+
+ Object id = relatedEntity.getIdMapper().mapToIdFromEntity(value);
+
+ relatedEntity.getIdMapper().addIdEqualsToQuery(parameters, id, propertyName, "=".equals(op));
+ }
+ }
+}
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/query/impl/AbstractAuditQuery.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/query/impl/AbstractAuditQuery.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/query/impl/AbstractAuditQuery.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -73,7 +73,7 @@
entityInstantiator = new EntityInstantiator(verCfg, versionsReader);
entityName = cls.getName();
- versionsEntityName = verCfg.getAuditEntCfg().getVersionsEntityName(entityName);
+ versionsEntityName = verCfg.getAuditEntCfg().getAuditEntityName(entityName);
qb = new QueryBuilder(versionsEntityName, "e");
}
Copied: core/trunk/envers/src/main/java/org/hibernate/envers/query/order/RevisionAuditOrder.java (from rev 15513, core/trunk/envers/src/main/java/org/hibernate/envers/query/order/RevisionVersionsOrder.java)
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/query/order/RevisionAuditOrder.java (rev 0)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/query/order/RevisionAuditOrder.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -0,0 +1,43 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008, 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.envers.query.order;
+
+import org.hibernate.envers.configuration.AuditConfiguration;
+import org.hibernate.envers.tools.Pair;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class RevisionAuditOrder implements AuditOrder {
+ private final boolean asc;
+
+ public RevisionAuditOrder(boolean asc) {
+ this.asc = asc;
+ }
+
+ public Pair<String, Boolean> getData(AuditConfiguration verCfg) {
+ String revisionPropPath = verCfg.getAuditEntCfg().getRevisionPropPath();
+ return Pair.make(revisionPropPath, asc);
+ }
+}
Copied: core/trunk/envers/src/main/java/org/hibernate/envers/query/projection/RevisionAuditProjection.java (from rev 15513, core/trunk/envers/src/main/java/org/hibernate/envers/query/projection/RevisionVersionsProjection.java)
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/query/projection/RevisionAuditProjection.java (rev 0)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/query/projection/RevisionAuditProjection.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -0,0 +1,60 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2008, 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.envers.query.projection;
+
+import org.hibernate.envers.configuration.AuditConfiguration;
+import org.hibernate.envers.tools.Triple;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class RevisionAuditProjection implements AuditProjection {
+ public static enum ProjectionType {
+ MAX,
+ MIN,
+ COUNT,
+ COUNT_DISTINCT,
+ DISTINCT
+ }
+
+ private final ProjectionType type;
+
+ public RevisionAuditProjection(ProjectionType type) {
+ this.type = type;
+ }
+
+ public Triple<String, String, Boolean> getData(AuditConfiguration verCfg) {
+ String revisionPropPath = verCfg.getAuditEntCfg().getRevisionPropPath();
+
+ switch (type) {
+ case MAX: return Triple.make("max", revisionPropPath, false);
+ case MIN: return Triple.make("min", revisionPropPath, false);
+ case COUNT: return Triple.make("count", revisionPropPath, false);
+ case COUNT_DISTINCT: return Triple.make("count", revisionPropPath, true);
+ case DISTINCT: return Triple.make(null, revisionPropPath, true);
+ }
+
+ throw new IllegalArgumentException("Unknown type " + type + ".");
+ }
+}
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/AbstractAuditWorkUnit.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/AbstractAuditWorkUnit.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/AbstractAuditWorkUnit.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -79,7 +79,7 @@
public void undo(Session session) {
if (isPerformed()) {
- session.delete(verCfg.getAuditEntCfg().getVersionsEntityName(getEntityName()), performedData);
+ session.delete(verCfg.getAuditEntCfg().getAuditEntityName(getEntityName()), performedData);
session.flush();
}
}
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/AddWorkUnit.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/AddWorkUnit.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/AddWorkUnit.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -58,7 +58,7 @@
verCfg.getEntCfg().get(getEntityName()).getPropertyMapper().map(data, propertyNames, state, null);
- session.save(verCfg.getAuditEntCfg().getVersionsEntityName(getEntityName()), data);
+ session.save(verCfg.getAuditEntCfg().getAuditEntityName(getEntityName()), data);
setPerformed(data);
}
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/CollectionChangeWorkUnit.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/CollectionChangeWorkUnit.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/CollectionChangeWorkUnit.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -54,7 +54,7 @@
verCfg.getEntCfg().get(getEntityName()).getPropertyMapper().mapToMapFromEntity(data, entity, null);
- session.save(verCfg.getAuditEntCfg().getVersionsEntityName(getEntityName()), data);
+ session.save(verCfg.getAuditEntCfg().getAuditEntityName(getEntityName()), data);
setPerformed(data);
}
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/DelWorkUnit.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/DelWorkUnit.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/DelWorkUnit.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -48,7 +48,7 @@
Map<String, Object> data = new HashMap<String, Object>();
fillDataWithId(data, revisionData, RevisionType.DEL);
- session.save(verCfg.getAuditEntCfg().getVersionsEntityName(getEntityName()), data);
+ session.save(verCfg.getAuditEntCfg().getAuditEntityName(getEntityName()), data);
setPerformed(data);
}
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/ModWorkUnit.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/ModWorkUnit.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/synchronization/work/ModWorkUnit.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -56,7 +56,7 @@
public void perform(Session session, Object revisionData) {
fillDataWithId(data, revisionData, RevisionType.MOD);
- session.save(verCfg.getAuditEntCfg().getVersionsEntityName(getEntityName()), data);
+ session.save(verCfg.getAuditEntCfg().getAuditEntityName(getEntityName()), data);
setPerformed(data);
}
Modified: core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/SecondaryNamingTestEntity.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/SecondaryNamingTestEntity.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/SecondaryNamingTestEntity.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -37,7 +37,7 @@
*/
@Entity
@SecondaryTable(name = "secondary")
-@SecondaryAuditTable(secondaryTableName = "secondary", secondaryVersionsTableName = "sec_versions")
+@SecondaryAuditTable(secondaryTableName = "secondary", secondaryAuditTableName = "sec_versions")
@Audited
public class SecondaryNamingTestEntity {
@Id
Modified: core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/ids/SecondaryEmbIdTestEntity.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/ids/SecondaryEmbIdTestEntity.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/ids/SecondaryEmbIdTestEntity.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -37,7 +37,7 @@
*/
@Entity
@SecondaryTable(name = "secondary")
-@SecondaryAuditTable(secondaryTableName = "secondary", secondaryVersionsTableName = "sec_embid_versions")
+@SecondaryAuditTable(secondaryTableName = "secondary", secondaryAuditTableName = "sec_embid_versions")
@Audited
public class SecondaryEmbIdTestEntity {
@Id
Modified: core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/ids/SecondaryMulIdTestEntity.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/ids/SecondaryMulIdTestEntity.java 2008-11-05 08:59:14 UTC (rev 15516)
+++ core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/ids/SecondaryMulIdTestEntity.java 2008-11-05 09:13:05 UTC (rev 15517)
@@ -38,7 +38,7 @@
*/
@Entity
@SecondaryTable(name = "secondary")
-@SecondaryAuditTable(secondaryTableName = "secondary", secondaryVersionsTableName = "sec_mulid_versions")
+@SecondaryAuditTable(secondaryTableName = "secondary", secondaryAuditTableName = "sec_mulid_versions")
@Audited
@IdClass(MulId.class)
public class SecondaryMulIdTestEntity {
15 years, 5 months
Hibernate SVN: r15516 - core/trunk/documentation/envers/src/main/docbook/en-US/content.
by hibernate-commits@lists.jboss.org
Author: adamw
Date: 2008-11-05 03:59:14 -0500 (Wed, 05 Nov 2008)
New Revision: 15516
Modified:
core/trunk/documentation/envers/src/main/docbook/en-US/content/configuration.xml
core/trunk/documentation/envers/src/main/docbook/en-US/content/migration.xml
core/trunk/documentation/envers/src/main/docbook/en-US/content/preface.xml
core/trunk/documentation/envers/src/main/docbook/en-US/content/quickstart.xml
Log:
HHH-3556: minor corrections
Modified: core/trunk/documentation/envers/src/main/docbook/en-US/content/configuration.xml
===================================================================
--- core/trunk/documentation/envers/src/main/docbook/en-US/content/configuration.xml 2008-11-05 08:42:01 UTC (rev 15515)
+++ core/trunk/documentation/envers/src/main/docbook/en-US/content/configuration.xml 2008-11-05 08:59:14 UTC (rev 15516)
@@ -35,8 +35,8 @@
</para>
<para>
- However, as Envers generates some tables, it is possible to set the prefix and suffix
- that is added to the entity name to create a versions table for an entity, as well
+ However, as Envers generates some entities, and maps them to tables, it is possible to set the prefix and suffix
+ that is added to the entity name to create an audit table for an entity, as well
as set the names of the fields that are generated.
</para>
@@ -81,7 +81,7 @@
String that will be appended to the name of an audited entity to create
the name of the entity, that will hold audit information. If you
audit an entity with a table name Person, in the default setting Envers
- will generate a <literal>Person_audit</literal> table to store historical data.
+ will generate a <literal>Person_AUD</literal> table to store historical data.
</entry>
</row>
<row>
@@ -103,7 +103,7 @@
REVTYPE
</entry>
<entry>
- Name of a field in the aduit entity that will hold the type of the
+ Name of a field in the audit entity that will hold the type of the
revision (currently, this can be: add, mod, del).
</entry>
</row>
@@ -176,13 +176,13 @@
</persistence-unit></programlisting>
<para>
- You can also set the name of the versions table on a per-entity basis, using the
- <literal>@AuditTable</literal> annotation (see also in the javadoc). It may be tedious to add this
+ You can also set the name of the audit table on a per-entity basis, using the
+ <literal>@AuditTable</literal> annotation. It may be tedious to add this
annotation to every audited entity, so if possible, it's better to use a prefix/suffix.
</para>
<para>
- If you have a mapping with secondary tables, version tables for them will be generated in
+ If you have a mapping with secondary tables, audit tables for them will be generated in
the same way (by adding the prefix and suffix). If you wish to overwrite this behaviour,
you can use the <literal>@SecondaryAuditTable</literal> and
<literal>@SecondaryAuditTables</literal> annotations.
Modified: core/trunk/documentation/envers/src/main/docbook/en-US/content/migration.xml
===================================================================
--- core/trunk/documentation/envers/src/main/docbook/en-US/content/migration.xml 2008-11-05 08:42:01 UTC (rev 15515)
+++ core/trunk/documentation/envers/src/main/docbook/en-US/content/migration.xml 2008-11-05 08:59:14 UTC (rev 15516)
@@ -39,6 +39,18 @@
with Oracle and other databases, which don't allow tables and field names to start with "_".
</para>
+ <sect1 id="migrations-code">
+
+ <title>Changes to code</title>
+
+ <para>
+ Public API changes involve changing "versioning" to "auditing". So, <literal>@Versioned</literal>
+ became <literal>@Audited</literal>; <literal>@VersionsTable</literal> became <literal>@AuditTable</literal>
+ and so on.
+ </para>
+
+ </sect1>
+
<sect1 id="migrations-configuration">
<title>Changes to configuration</title>
@@ -85,6 +97,9 @@
The <literal>org.hibernate.envers.doNotAuditOptimisticLockingField</literal> property is
now by default <literal>true</literal>, instead of <literal>false</literal>. You probably
never would want to audit the optimistic locking field.
+ Also, the <literal>org.hibernate.envers.warnOnUnsupportedTypes</literal> configuraiton
+ option was removed. In case you are using some unsupported types, use the <literal>@NotAudited</literal>
+ annotation.
</para>
<para>
@@ -136,16 +151,4 @@
}]]></programlisting>
</sect1>
-
- <sect1 id="migrations-code">
-
- <title>Changes to code</title>
-
- <para>
- Public API changes involve only changing "versioning" to "auditing". So, <literal>@Versioned</literal>
- became <literal>@Audited</literal>; <literal>@VersionsTable</literal> became <literal>@AuditTable</literal>
- and so on.
- </para>
-
- </sect1>
</chapter>
Modified: core/trunk/documentation/envers/src/main/docbook/en-US/content/preface.xml
===================================================================
--- core/trunk/documentation/envers/src/main/docbook/en-US/content/preface.xml 2008-11-05 08:42:01 UTC (rev 15515)
+++ core/trunk/documentation/envers/src/main/docbook/en-US/content/preface.xml 2008-11-05 08:59:14 UTC (rev 15516)
@@ -46,7 +46,7 @@
</para>
<para>
- The library works with Hibernate and Hibernate Annotations or Entity Manager.
+ The library works with Hibernate and requires Hibernate Annotations or Entity Manager.
For the auditing to work properly, the entities must have immutable unique
identifiers (primary keys). You can use Envers wherever Hibernate works:
standalone, inside JBoss AS, with JBoss Seam or Spring.
@@ -59,15 +59,15 @@
<orderedlist>
<listitem>
<para>
- versioning of all mappings defined by the JPA specification, except joined and
+ auditing of all mappings defined by the JPA specification, except joined and
table-per-class inheritance
</para>
</listitem>
<listitem>
<para>
- versioning of some Hibernate mappings, which extend JPA, like custom types and
+ auditing of Hibernate mappings, which extend JPA, like custom types and
collections/maps of "simple" types (Strings, Integers, etc.)
- (see <xref linkend="exceptions"/> for one exception)
+ (see also <xref linkend="exceptions"/>)
</para>
</listitem>
<listitem>
Modified: core/trunk/documentation/envers/src/main/docbook/en-US/content/quickstart.xml
===================================================================
--- core/trunk/documentation/envers/src/main/docbook/en-US/content/quickstart.xml 2008-11-05 08:42:01 UTC (rev 15515)
+++ core/trunk/documentation/envers/src/main/docbook/en-US/content/quickstart.xml 2008-11-05 08:59:14 UTC (rev 15516)
@@ -29,7 +29,8 @@
<title>Quickstart</title>
<para>
- When configuring your persistence unit (the persistence.xml file), add the following event
+ When configuring your Hibernate (<literal>persistence.xml</literal> if you are using JPA,
+ <literal>hibernate.cfg.xml</literal> or other if you are using Hibernate directly), add the following event
listeners: (this will allow Envers to check if any audited entities were modified)
</para>
@@ -57,7 +58,7 @@
<para>
Then, annotate your persistent class with <literal>@Audited</literal> - this will make all
- properties versioned. For example:
+ properties audited. For example:
</para>
<programlisting>import org.hibernate.envers.Audited;
@@ -112,7 +113,7 @@
And that's it! You create, modify and delete the entites as always. If you look
at the generated schema, you will notice that it is unchanged by adding auditing
for the Address and Person entities. Also, the data they hold is the same. There are,
- however, two new tables - <literal>Address_audit</literal> and <literal>Person_audit</literal>,
+ however, two new tables - <literal>Address_AUD</literal> and <literal>Person_AUD</literal>,
which store the historical data, whenever you commit a transaction.
</para>
@@ -123,8 +124,8 @@
</para>
<para>
- You can access the audit of an entity using the <literal>AuditReader</literal> interface, which you
- can obtain when having an open EntityManager. See also the javadocs.
+ You can access the audit (history) of an entity using the <literal>AuditReader</literal> interface, which you
+ can obtain when having an open EntityManager.
</para>
<programlisting>AuditReader reader = AuditReaderFactory.get(entityManager);
15 years, 5 months
Hibernate SVN: r15515 - core/trunk/documentation/envers/src/main/docbook/en-US/content.
by hibernate-commits@lists.jboss.org
Author: adamw
Date: 2008-11-05 03:42:01 -0500 (Wed, 05 Nov 2008)
New Revision: 15515
Modified:
core/trunk/documentation/envers/src/main/docbook/en-US/content/configuration.xml
core/trunk/documentation/envers/src/main/docbook/en-US/content/links.xml
core/trunk/documentation/envers/src/main/docbook/en-US/content/migration.xml
core/trunk/documentation/envers/src/main/docbook/en-US/content/quickstart.xml
core/trunk/documentation/envers/src/main/docbook/en-US/content/schema.xml
core/trunk/documentation/envers/src/main/docbook/en-US/content/tables.xml
Log:
HHH-3556: migration docs
Modified: core/trunk/documentation/envers/src/main/docbook/en-US/content/configuration.xml
===================================================================
--- core/trunk/documentation/envers/src/main/docbook/en-US/content/configuration.xml 2008-11-05 08:41:14 UTC (rev 15514)
+++ core/trunk/documentation/envers/src/main/docbook/en-US/content/configuration.xml 2008-11-05 08:42:01 UTC (rev 15515)
@@ -75,7 +75,7 @@
<property>org.hibernate.envers.auditTableSuffix</property>
</entry>
<entry>
- _audit
+ _AUD
</entry>
<entry>
String that will be appended to the name of an audited entity to create
@@ -122,17 +122,6 @@
</row>
<row>
<entry>
- <property>org.hibernate.envers.warnOnUnsupportedTypes</property>
- </entry>
- <entry>
- false
- </entry>
- <entry>
- TODO: remove
- </entry>
- </row>
- <row>
- <entry>
<property>org.hibernate.envers.doNotAuditOptimisticLockingField</property>
</entry>
<entry>
@@ -168,17 +157,17 @@
<!-- other hibernate properties -->
<property name="hibernate.ejb.event.post-insert"
- value="org.hibernate.envers.event.VersionsEventListener" />
+ value="org.hibernate.envers.event.AuditEventListener" />
<property name="hibernate.ejb.event.post-update"
- value="org.hibernate.envers.event.VersionsEventListener" />
+ value="org.hibernate.envers.event.AuditEventListener" />
<property name="hibernate.ejb.event.post-delete"
- value="org.hibernate.envers.event.VersionsEventListener" />
+ value="org.hibernate.envers.event.AuditEventListener" />
<property name="hibernate.ejb.event.pre-collection-update"
- value="org.hibernate.envers.event.VersionsEventListener" />
+ value="org.hibernate.envers.event.AuditEventListener" />
<property name="hibernate.ejb.event.pre-collection-remove"
- value="org.hibernate.envers.event.VersionsEventListener" />
+ value="org.hibernate.envers.event.AuditEventListener" />
<property name="hibernate.ejb.event.post-collection-recreate"
- value="org.hibernate.envers.event.VersionsEventListener" />
+ value="org.hibernate.envers.event.AuditEventListener" />
<property name="org.hibernate.envers.versionsTableSuffix" value="_V" />
<property name="org.hibernate.envers.revisionFieldName" value="ver_rev" />
Modified: core/trunk/documentation/envers/src/main/docbook/en-US/content/links.xml
===================================================================
--- core/trunk/documentation/envers/src/main/docbook/en-US/content/links.xml 2008-11-05 08:41:14 UTC (rev 15514)
+++ core/trunk/documentation/envers/src/main/docbook/en-US/content/links.xml 2008-11-05 08:42:01 UTC (rev 15515)
@@ -31,12 +31,39 @@
<para>
Some useful links:
</para>
+
<orderedlist>
<listitem>
<para>
-
+ <ulink url="http://hibernate.org">Hibernate</ulink>
</para>
</listitem>
+ <listitem>
+ <para>
+ <ulink url="http://www.jboss.com/index.html?module=bb&op=viewforum&f=283">Forum</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <ulink url="http://anonsvn.jboss.org/repos/hibernate/core/trunk/envers/">Anonymous SVN</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <ulink url="http://opensource.atlassian.com/projects/hibernate/browse/HHH">JIRA issue tracker</ulink>
+ (when adding issues concerning Envers, be sure to select the "envers" component!)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <ulink url="irc://irc.freenode.net:6667/envers">IRC channel</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <ulink url="http://www.jboss.org/feeds/view/envers">Blog</ulink>
+ </para>
+ </listitem>
</orderedlist>
</chapter>
Modified: core/trunk/documentation/envers/src/main/docbook/en-US/content/migration.xml
===================================================================
--- core/trunk/documentation/envers/src/main/docbook/en-US/content/migration.xml 2008-11-05 08:41:14 UTC (rev 15514)
+++ core/trunk/documentation/envers/src/main/docbook/en-US/content/migration.xml 2008-11-05 08:42:01 UTC (rev 15515)
@@ -28,5 +28,124 @@
<chapter id="migration">
<title>Migration from Envers standalone</title>
+ <para>
+ With the inclusion of Envers as a Hibernate module, some of the public API and configuration defaults
+ changed. In general, "versioning" is renamed to "auditing" (to avoid confusion with the annotation used
+ for indicating an optimistic locking field - <literal>@Version</literal>).
+ </para>
+ <para>
+ Because of changing some configuration defaults, there should be no more problems using Envers out-of-the-box
+ with Oracle and other databases, which don't allow tables and field names to start with "_".
+ </para>
+
+ <sect1 id="migrations-configuration">
+
+ <title>Changes to configuration</title>
+
+ <para>
+ First of all, the name of the event listener changed. It is now named
+ <literal>org.hibernate.envers.event.AuditEventListener</literal>, instead of
+ <literal>org.jboss.envers.event.VersionsEventListener</literal>. So to make Envers
+ work, you will have to change these settings in your <literal>persistence.xml</literal>
+ or Hibernate configuration.
+ </para>
+
+ <para>
+ Secondly, the names of the audit (versions) tables and additional auditing (versioning) fields
+ changed. The default suffix added to the table name is now <literal>_AUD</literal>, instead of
+ <literal>_versions</literal>. The name of the field that holds the revision number, and which
+ is added to each audit (versions) table, is now <literal>REV</literal>, instead of
+ <literal>_revision</literal>. Finally, the name of the field that holds the type of the revision,
+ is now <literal>REVTYPE</literal>, instead of <literal>_rev_type</literal>.
+ </para>
+
+ <para>
+ If you have a schema generated with the old version of Envers, you will
+ have to set those properties, to use the new version of Envers without problems:
+ </para>
+
+ <programlisting><persistence-unit ...>
+<provider>org.hibernate.ejb.HibernatePersistence</provider>
+<class>...</class>
+<properties>
+ <property name="hibernate.dialect" ... />
+ <!-- other hibernate properties -->
+
+ <!-- Envers listeners -->
+
+ <property name="org.hibernate.envers.versionsTableSuffix" value="_versions" />
+ <property name="org.hibernate.envers.revisionFieldName" value="_revision" />
+ <property name="org.hibernate.envers.revisionTypeFieldName" value="_rev_type" />
+ <!-- other envers properties -->
+</properties>
+</persistence-unit></programlisting>
+
+ <para>
+ The <literal>org.hibernate.envers.doNotAuditOptimisticLockingField</literal> property is
+ now by default <literal>true</literal>, instead of <literal>false</literal>. You probably
+ never would want to audit the optimistic locking field.
+ </para>
+
+ <para>
+ See <xref linkend="configuration"/> for details on the configuration and a description of the
+ configuration options.
+ </para>
+ </sect1>
+
+ <sect1 id="migrations-revisionlog">
+
+ <title>Changes to the revision entity</title>
+
+ <para>
+ This section applies only if you don't have a custom revision entity.
+ The name of the revision entity generated by default changed, so if you used the default one, you'll
+ have to add a custom revision entity, and map it to the old table. Here's the class
+ that you have to create:
+ </para>
+
+ <programlisting><![CDATA[package org.hibernate.envers.example;
+
+import org.hibernate.envers.RevisionNumber;
+import org.hibernate.envers.RevisionTimestamp;
+import org.hibernate.envers.RevisionEntity;
+
+import javax.persistence.Id;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Entity;
+import javax.persistence.Column;
+import javax.persistence.Table;
+
+@Entity
+@RevisionEntity
+@Table(name="_revisions_info")
+public class ExampleRevEntity {
+ @Id
+ @GeneratedValue
+ @RevisionNumber
+ @Column(name="revision_id")
+ private int id;
+
+ @RevisionTimestamp
+ @Column(name="revision_timestamp")
+ private long timestamp;
+
+ private String username;
+
+ // Getters, setters, equals, hashCode ...
+}]]></programlisting>
+
+ </sect1>
+
+ <sect1 id="migrations-code">
+
+ <title>Changes to code</title>
+
+ <para>
+ Public API changes involve only changing "versioning" to "auditing". So, <literal>@Versioned</literal>
+ became <literal>@Audited</literal>; <literal>@VersionsTable</literal> became <literal>@AuditTable</literal>
+ and so on.
+ </para>
+
+ </sect1>
</chapter>
Modified: core/trunk/documentation/envers/src/main/docbook/en-US/content/quickstart.xml
===================================================================
--- core/trunk/documentation/envers/src/main/docbook/en-US/content/quickstart.xml 2008-11-05 08:41:14 UTC (rev 15514)
+++ core/trunk/documentation/envers/src/main/docbook/en-US/content/quickstart.xml 2008-11-05 08:42:01 UTC (rev 15515)
@@ -41,17 +41,17 @@
<!-- other hibernate properties -->
<property name="hibernate.ejb.event.post-insert"
- value="org.hibernate.envers.event.VersionsEventListener" />
+ value="org.hibernate.envers.event.AuditEventListener" />
<property name="hibernate.ejb.event.post-update"
- value="org.hibernate.envers.event.VersionsEventListener" />
+ value="org.hibernate.envers.event.AuditEventListener" />
<property name="hibernate.ejb.event.post-delete"
- value="org.hibernate.envers.event.VersionsEventListener" />
+ value="org.hibernate.envers.event.AuditEventListener" />
<property name="hibernate.ejb.event.pre-collection-update"
- value="org.hibernate.envers.event.VersionsEventListener" />
+ value="org.hibernate.envers.event.AuditEventListener" />
<property name="hibernate.ejb.event.pre-collection-remove"
- value="org.hibernate.envers.event.VersionsEventListener" />
+ value="org.hibernate.envers.event.AuditEventListener" />
<property name="hibernate.ejb.event.post-collection-recreate"
- value="org.hibernate.envers.event.VersionsEventListener" />
+ value="org.hibernate.envers.event.AuditEventListener" />
</properties>
</persistence-unit></programlisting>
Modified: core/trunk/documentation/envers/src/main/docbook/en-US/content/schema.xml
===================================================================
--- core/trunk/documentation/envers/src/main/docbook/en-US/content/schema.xml 2008-11-05 08:41:14 UTC (rev 15514)
+++ core/trunk/documentation/envers/src/main/docbook/en-US/content/schema.xml 2008-11-05 08:42:01 UTC (rev 15515)
@@ -78,7 +78,7 @@
primary key (id)
);
- create table Address_audit (
+ create table Address_AUD (
id integer not null,
REV integer not null,
flatNumber integer,
@@ -96,7 +96,7 @@
primary key (id)
);
- create table Person_audit (
+ create table Person_AUD (
id integer not null,
REV integer not null,
name varchar(255),
@@ -107,9 +107,9 @@
);
create table REVINFO (
- REVID integer generated by default as identity (start with 1),
- REVTMSTMP bigint,
- primary key (REVID)
+ REV integer generated by default as identity (start with 1),
+ REVTSTMP bigint,
+ primary key (REV)
);
alter table Person
Modified: core/trunk/documentation/envers/src/main/docbook/en-US/content/tables.xml
===================================================================
--- core/trunk/documentation/envers/src/main/docbook/en-US/content/tables.xml 2008-11-05 08:41:14 UTC (rev 15514)
+++ core/trunk/documentation/envers/src/main/docbook/en-US/content/tables.xml 2008-11-05 08:42:01 UTC (rev 15515)
@@ -30,7 +30,7 @@
<para>
For each audited entity (that is, for each entity containing at least one audited field), an audit
- table is created. By default, the audit table's name is created by adding a "_audit" suffix to
+ table is created. By default, the audit table's name is created by adding a "_AUD" suffix to
the original name, but this can be overriden by specifing a different suffix/prefix
(see <xref linkend="configuration"/>) or on a per-entity basis using the
<literal>@AuditTable</literal> annotation.
15 years, 5 months
Hibernate SVN: r15514 - in core/trunk/envers/src: demo/resources/META-INF and 7 other directories.
by hibernate-commits@lists.jboss.org
Author: adamw
Date: 2008-11-05 03:41:14 -0500 (Wed, 05 Nov 2008)
New Revision: 15514
Added:
core/trunk/envers/src/demo/java/org/hibernate/
Removed:
core/trunk/envers/src/demo/java/org/jboss/
Modified:
core/trunk/envers/src/demo/resources/META-INF/persistence.xml
core/trunk/envers/src/main/java/org/hibernate/envers/configuration/AuditEntitiesConfiguration.java
core/trunk/envers/src/main/java/org/hibernate/envers/configuration/GlobalConfiguration.java
core/trunk/envers/src/main/java/org/hibernate/envers/configuration/RevisionInfoConfiguration.java
core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AuditMetadataGenerator.java
core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/BasicNaming.java
core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/JoinNaming.java
core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/OneToManyUnidirectionalNaming.java
core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/ids/JoinEmbIdNaming.java
core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/ids/JoinMulIdNaming.java
core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/properties/UnversionedOptimisticLockingField.java
core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/properties/VersionsProperties.java
core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/BasicSecondary.java
core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/NamingSecondary.java
core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/ids/EmbIdSecondary.java
core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/ids/MulIdSecondary.java
Log:
HHH-3570: changing default names
Copied: core/trunk/envers/src/demo/java/org/hibernate (from rev 15513, core/trunk/envers/src/demo/java/org/jboss)
Modified: core/trunk/envers/src/demo/resources/META-INF/persistence.xml
===================================================================
--- core/trunk/envers/src/demo/resources/META-INF/persistence.xml 2008-11-05 05:55:13 UTC (rev 15513)
+++ core/trunk/envers/src/demo/resources/META-INF/persistence.xml 2008-11-05 08:41:14 UTC (rev 15514)
@@ -2,8 +2,8 @@
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="ConsolePU">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
- <class>org.hibernate.envers.envers.demo.Address</class>
- <class>org.hibernate.envers.envers.demo.Person</class>
+ <class>org.hibernate.envers.demo.Address</class>
+ <class>org.hibernate.envers.demo.Person</class>
<exclude-unlisted-classes />
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
@@ -22,9 +22,9 @@
<!--<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>-->
- <property name="hibernate.ejb.event.post-insert" value="org.hibernate.envers.envers.event.VersionsEventListener" />
- <property name="hibernate.ejb.event.post-update" value="org.hibernate.envers.envers.event.VersionsEventListener" />
- <property name="hibernate.ejb.event.post-delete" value="org.hibernate.envers.envers.event.VersionsEventListener" />
+ <property name="hibernate.ejb.event.post-insert" value="org.hibernate.envers.event.AuditEventListener" />
+ <property name="hibernate.ejb.event.post-update" value="org.hibernate.envers.event.AuditEventListener" />
+ <property name="hibernate.ejb.event.post-delete" value="org.hibernate.envers.event.AuditEventListener" />
</properties>
</persistence-unit>
</persistence>
\ No newline at end of file
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/configuration/AuditEntitiesConfiguration.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/configuration/AuditEntitiesConfiguration.java 2008-11-05 05:55:13 UTC (rev 15513)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/configuration/AuditEntitiesConfiguration.java 2008-11-05 08:41:14 UTC (rev 15514)
@@ -50,14 +50,14 @@
public AuditEntitiesConfiguration(Properties properties, String revisionInfoEntityName) {
this.revisionInfoEntityName = revisionInfoEntityName;
- versionsTablePrefix = properties.getProperty("org.hibernate.envers.versionsTablePrefix", "");
- versionsTableSuffix = properties.getProperty("org.hibernate.envers.versionsTableSuffix", "_versions");
+ versionsTablePrefix = properties.getProperty("org.hibernate.envers.auditTablePrefix", "");
+ versionsTableSuffix = properties.getProperty("org.hibernate.envers.auditTableSuffix", "_AUD");
originalIdPropName = "originalId";
- revisionPropName = properties.getProperty("org.hibernate.envers.revisionFieldName", "_revision");
+ revisionPropName = properties.getProperty("org.hibernate.envers.revisionFieldName", "REV");
- revisionTypePropName = properties.getProperty("org.hibernate.envers.revisionTypeFieldName", "_revision_type");
+ revisionTypePropName = properties.getProperty("org.hibernate.envers.revisionTypeFieldName", "REVTYPE");
revisionTypePropType = "byte";
customVersionsTablesNames = new HashMap<String, String>();
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/configuration/GlobalConfiguration.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/configuration/GlobalConfiguration.java 2008-11-05 05:55:13 UTC (rev 15513)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/configuration/GlobalConfiguration.java 2008-11-05 08:41:14 UTC (rev 15514)
@@ -33,9 +33,6 @@
// Should a revision be generated when a not-owned relation field changes
private final boolean generateRevisionsForCollections;
- // Should a warning, instead of an error and an exception, be logged, when an unsupported type is versioned
- private final boolean warnOnUnsupportedTypes;
-
// Should the optimistic locking property of an entity be considered unversioned
private final boolean unversionedOptimisticLockingField;
@@ -52,12 +49,8 @@
"true");
generateRevisionsForCollections = Boolean.parseBoolean(generateRevisionsForCollectionsStr);
- String warnOnUnsupportedTypesStr = properties.getProperty("org.hibernate.envers.warnOnUnsupportedTypes",
- "false");
- warnOnUnsupportedTypes = Boolean.parseBoolean(warnOnUnsupportedTypesStr);
-
- String ignoreOptimisticLockingPropertyStr = properties.getProperty("org.hibernate.envers.unversionedOptimisticLockingField",
- "false");
+ String ignoreOptimisticLockingPropertyStr = properties.getProperty("org.hibernate.envers.doNotAuditOptimisticLockingField",
+ "true");
unversionedOptimisticLockingField = Boolean.parseBoolean(ignoreOptimisticLockingPropertyStr);
correlatedSubqueryOperator = "org.hibernate.dialect.HSQLDialect".equals(
@@ -68,10 +61,6 @@
return generateRevisionsForCollections;
}
- public boolean isWarnOnUnsupportedTypes() {
- return warnOnUnsupportedTypes;
- }
-
public boolean isUnversionedOptimisticLockingField() {
return unversionedOptimisticLockingField;
}
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/configuration/RevisionInfoConfiguration.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/configuration/RevisionInfoConfiguration.java 2008-11-05 05:55:13 UTC (rev 15513)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/configuration/RevisionInfoConfiguration.java 2008-11-05 08:41:14 UTC (rev 15514)
@@ -71,15 +71,15 @@
Element class_mapping = MetadataTools.createEntity(document, null, null, null, null, null);
class_mapping.addAttribute("name", revisionInfoEntityName);
- class_mapping.addAttribute("table", "_revisions_info");
+ class_mapping.addAttribute("table", "REVINFO");
Element idProperty = MetadataTools.addNativelyGeneratedId(class_mapping, revisionInfoIdData.getName(),
revisionPropType);
- MetadataTools.addColumn(idProperty, "revision_id", null);
+ MetadataTools.addColumn(idProperty, "REV", null);
Element timestampProperty = MetadataTools.addProperty(class_mapping, revisionInfoTimestampData.getName(),
revisionInfoTimestampType, true, false);
- MetadataTools.addColumn(timestampProperty, "revision_timestamp", null);
+ MetadataTools.addColumn(timestampProperty, "REVTSTMP", null);
return document;
}
Modified: core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AuditMetadataGenerator.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AuditMetadataGenerator.java 2008-11-05 05:55:13 UTC (rev 15513)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AuditMetadataGenerator.java 2008-11-05 08:41:14 UTC (rev 15514)
@@ -49,8 +49,6 @@
import org.hibernate.type.ManyToOneType;
import org.hibernate.type.OneToOneType;
import org.hibernate.type.Type;
-import org.slf4j.LoggerFactory;
-import org.slf4j.Logger;
/**
* @author Adam Warski (adam at warski dot org)
@@ -71,8 +69,6 @@
// Map entity name -> (join descriptor -> element describing the "versioned" join)
private final Map<String, Map<Join, Element>> entitiesJoins;
- private Logger log = LoggerFactory.getLogger(AuditMetadataGenerator.class);
-
public AuditMetadataGenerator(Configuration cfg, GlobalConfiguration globalCfg,
AuditEntitiesConfiguration verEntCfg,
Element revisionInfoRelationMapping) {
@@ -340,10 +336,7 @@
void throwUnsupportedTypeException(Type type, String entityName, String propertyName) {
String message = "Type not supported for versioning: " + type.getClass().getName() +
", on entity " + entityName + ", property '" + propertyName + "'.";
- if (globalCfg.isWarnOnUnsupportedTypes()) {
- log.warn(message);
- } else {
- throw new MappingException(message);
- }
+
+ throw new MappingException(message);
}
}
Modified: core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/BasicNaming.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/BasicNaming.java 2008-11-05 05:55:13 UTC (rev 15513)
+++ core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/BasicNaming.java 2008-11-05 08:41:14 UTC (rev 15514)
@@ -109,7 +109,7 @@
@Test
public void testTableName() {
assert "naming_test_entity_1_versions".equals(
- getCfg().getClassMapping("org.hibernate.envers.test.integration.naming.NamingTestEntity1_versions")
+ getCfg().getClassMapping("org.hibernate.envers.test.integration.naming.NamingTestEntity1_AUD")
.getTable().getName());
}
}
Modified: core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/JoinNaming.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/JoinNaming.java 2008-11-05 05:55:13 UTC (rev 15513)
+++ core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/JoinNaming.java 2008-11-05 08:41:14 UTC (rev 15514)
@@ -123,7 +123,7 @@
@Test
public void testJoinColumnName() {
Iterator<Column> columns =
- getCfg().getClassMapping("org.hibernate.envers.test.integration.naming.JoinNamingRefIngEntity_versions")
+ getCfg().getClassMapping("org.hibernate.envers.test.integration.naming.JoinNamingRefIngEntity_AUD")
.getProperty("reference").getColumnIterator();
while (columns.hasNext()) {
Modified: core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/OneToManyUnidirectionalNaming.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/OneToManyUnidirectionalNaming.java 2008-11-05 05:55:13 UTC (rev 15513)
+++ core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/OneToManyUnidirectionalNaming.java 2008-11-05 08:41:14 UTC (rev 15514)
@@ -99,7 +99,7 @@
assert "data1".equals(rev2.getData());
}
- private final static String MIDDLE_VERSIONS_ENTITY_NAME = "UNI_NAMING_TEST_versions";
+ private final static String MIDDLE_VERSIONS_ENTITY_NAME = "UNI_NAMING_TEST_AUD";
@Test
public void testTableName() {
assert MIDDLE_VERSIONS_ENTITY_NAME.equals(
Modified: core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/ids/JoinEmbIdNaming.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/ids/JoinEmbIdNaming.java 2008-11-05 05:55:13 UTC (rev 15513)
+++ core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/ids/JoinEmbIdNaming.java 2008-11-05 08:41:14 UTC (rev 15514)
@@ -121,7 +121,7 @@
@Test
public void testJoinColumnNames() {
Iterator<Column> columns =
- getCfg().getClassMapping("org.hibernate.envers.test.integration.naming.ids.JoinEmbIdNamingRefIngEntity_versions")
+ getCfg().getClassMapping("org.hibernate.envers.test.integration.naming.ids.JoinEmbIdNamingRefIngEntity_AUD")
.getProperty("reference").getColumnIterator();
boolean xxFound = false;
Modified: core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/ids/JoinMulIdNaming.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/ids/JoinMulIdNaming.java 2008-11-05 05:55:13 UTC (rev 15513)
+++ core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/naming/ids/JoinMulIdNaming.java 2008-11-05 08:41:14 UTC (rev 15514)
@@ -121,7 +121,7 @@
@Test
public void testJoinColumnNames() {
Iterator<Column> columns =
- getCfg().getClassMapping("org.hibernate.envers.test.integration.naming.ids.JoinMulIdNamingRefIngEntity_versions")
+ getCfg().getClassMapping("org.hibernate.envers.test.integration.naming.ids.JoinMulIdNamingRefIngEntity_AUD")
.getProperty("reference").getColumnIterator();
boolean id1Found = false;
Modified: core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/properties/UnversionedOptimisticLockingField.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/properties/UnversionedOptimisticLockingField.java 2008-11-05 05:55:13 UTC (rev 15513)
+++ core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/properties/UnversionedOptimisticLockingField.java 2008-11-05 08:41:14 UTC (rev 15514)
@@ -44,7 +44,7 @@
public void configure(Ejb3Configuration cfg) {
cfg.addAnnotatedClass(UnversionedOptimisticLockingFieldEntity.class);
- cfg.setProperty("org.hibernate.envers.unversionedOptimisticLockingField", "true");
+ cfg.setProperty("org.hibernate.envers.doNotAuditOptimisticLockingField", "true");
}
@BeforeClass(dependsOnMethods = "init")
@@ -82,7 +82,7 @@
@Test
public void testMapping() {
- PersistentClass pc = getCfg().getClassMapping(UnversionedOptimisticLockingFieldEntity.class.getName() + "_versions");
+ PersistentClass pc = getCfg().getClassMapping(UnversionedOptimisticLockingFieldEntity.class.getName() + "_AUD");
Iterator pi = pc.getPropertyIterator();
while(pi.hasNext()) {
Property p = (Property) pi.next();
Modified: core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/properties/VersionsProperties.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/properties/VersionsProperties.java 2008-11-05 05:55:13 UTC (rev 15513)
+++ core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/properties/VersionsProperties.java 2008-11-05 08:41:14 UTC (rev 15514)
@@ -41,9 +41,8 @@
public void configure(Ejb3Configuration cfg) {
cfg.addAnnotatedClass(PropertiesTestEntity.class);
- cfg.setProperty("org.hibernate.envers.versionsTablePrefix", "VP_");
- cfg.setProperty("org.hibernate.envers.versionsTableSuffix", "_VS");
- cfg.setProperty("org.hibernate.envers.idFieldName", "ver_id");
+ cfg.setProperty("org.hibernate.envers.auditTablePrefix", "VP_");
+ cfg.setProperty("org.hibernate.envers.auditTableSuffix", "_VS");
cfg.setProperty("org.hibernate.envers.revisionFieldName", "ver_rev");
cfg.setProperty("org.hibernate.envers.revisionTypeFieldName", "ver_rev_type");
}
Modified: core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/BasicSecondary.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/BasicSecondary.java 2008-11-05 05:55:13 UTC (rev 15513)
+++ core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/BasicSecondary.java 2008-11-05 08:41:14 UTC (rev 15514)
@@ -87,8 +87,8 @@
@SuppressWarnings({"unchecked"})
@Test
public void testTableNames() {
- assert "secondary_versions".equals(((Iterator<Join>)
- getCfg().getClassMapping("org.hibernate.envers.test.integration.secondary.SecondaryTestEntity_versions")
+ assert "secondary_AUD".equals(((Iterator<Join>)
+ getCfg().getClassMapping("org.hibernate.envers.test.integration.secondary.SecondaryTestEntity_AUD")
.getJoinIterator())
.next().getTable().getName());
}
Modified: core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/NamingSecondary.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/NamingSecondary.java 2008-11-05 05:55:13 UTC (rev 15513)
+++ core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/NamingSecondary.java 2008-11-05 08:41:14 UTC (rev 15514)
@@ -88,7 +88,7 @@
@Test
public void testTableNames() {
assert "sec_versions".equals(((Iterator<Join>)
- getCfg().getClassMapping("org.hibernate.envers.test.integration.secondary.SecondaryNamingTestEntity_versions")
+ getCfg().getClassMapping("org.hibernate.envers.test.integration.secondary.SecondaryNamingTestEntity_AUD")
.getJoinIterator())
.next().getTable().getName());
}
Modified: core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/ids/EmbIdSecondary.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/ids/EmbIdSecondary.java 2008-11-05 05:55:13 UTC (rev 15513)
+++ core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/ids/EmbIdSecondary.java 2008-11-05 08:41:14 UTC (rev 15514)
@@ -87,7 +87,7 @@
@Test
public void testTableNames() {
assert "sec_embid_versions".equals(((Iterator<Join>)
- getCfg().getClassMapping("org.hibernate.envers.test.integration.secondary.ids.SecondaryEmbIdTestEntity_versions")
+ getCfg().getClassMapping("org.hibernate.envers.test.integration.secondary.ids.SecondaryEmbIdTestEntity_AUD")
.getJoinIterator())
.next().getTable().getName());
}
Modified: core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/ids/MulIdSecondary.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/ids/MulIdSecondary.java 2008-11-05 05:55:13 UTC (rev 15513)
+++ core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/secondary/ids/MulIdSecondary.java 2008-11-05 08:41:14 UTC (rev 15514)
@@ -87,7 +87,7 @@
@Test
public void testTableNames() {
assert "sec_mulid_versions".equals(((Iterator<Join>)
- getCfg().getClassMapping("org.hibernate.envers.test.integration.secondary.ids.SecondaryMulIdTestEntity_versions")
+ getCfg().getClassMapping("org.hibernate.envers.test.integration.secondary.ids.SecondaryMulIdTestEntity_AUD")
.getJoinIterator())
.next().getTable().getName());
}
15 years, 5 months
Hibernate SVN: r15513 - in validator/trunk/validation-api/src/main/java/javax/validation: bootstrap and 2 other directories.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2008-11-05 00:55:13 -0500 (Wed, 05 Nov 2008)
New Revision: 15513
Modified:
validator/trunk/validation-api/src/main/java/javax/validation/ConstraintContext.java
validator/trunk/validation-api/src/main/java/javax/validation/ConstraintDescriptor.java
validator/trunk/validation-api/src/main/java/javax/validation/ConstraintViolation.java
validator/trunk/validation-api/src/main/java/javax/validation/MessageResolver.java
validator/trunk/validation-api/src/main/java/javax/validation/Validation.java
validator/trunk/validation-api/src/main/java/javax/validation/ValidationProviderResolver.java
validator/trunk/validation-api/src/main/java/javax/validation/Validator.java
validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java
validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/SpecializedBuilderFactory.java
validator/trunk/validation-api/src/main/java/javax/validation/constraints/Digits.java
validator/trunk/validation-api/src/main/java/javax/validation/constraints/Max.java
validator/trunk/validation-api/src/main/java/javax/validation/constraints/Min.java
validator/trunk/validation-api/src/main/java/javax/validation/spi/BootstrapState.java
validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidationProvider.java
validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java
Log:
Javadoc style
Modified: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintContext.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ConstraintContext.java 2008-11-05 01:51:02 UTC (rev 15512)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ConstraintContext.java 2008-11-05 05:55:13 UTC (rev 15513)
@@ -31,7 +31,8 @@
* Aside from the error message, ConstraintViolation objects generated from such a call
* contains the same contextual information (root bean, path and so on)
* <p/>
- * This method can be called multiple time. One ConstraintViolation instance per call is created.
+ * This method can be called multiple time. One ConstraintViolation instance per
+ * call is created.
*
* @param message new unexpanded error message
*/
@@ -40,8 +41,10 @@
/**
* Add a new unexpanded error message to a given sub property.
* <p/>
- * If isValid returns false, a ConstraintViolation object will be built per error message including the default one
- * if null apply to the current property or the bean the constraint is applied on, otherwise apply to the <code>property</code> named
+ * If isValid returns false, a ConstraintViolation object will be built
+ * per error message including the default one
+ * if null apply to the current property or the bean the constraint is applied on,
+ * otherwise apply to the <code>property</code> named
* <p/>
* TODO exception or swallowed when bean level instance is not present?
*
Modified: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintDescriptor.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ConstraintDescriptor.java 2008-11-05 01:51:02 UTC (rev 15512)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ConstraintDescriptor.java 2008-11-05 05:55:13 UTC (rev 15513)
@@ -48,10 +48,10 @@
Class<? extends Constraint> getConstraintClass();
/**
- * Returns a map containing the annotation parameter names as keys and the annotation parameter values
- * as value.
- * If this constraint is used as part of a composed constraint, parameter values are reflecting
- * the overridden parameters form the main constraint.
+ * Returns a map containing the annotation parameter names as keys and the
+ * annotation parameter values as value.
+ * If this constraint is used as part of a composed constraint, parameter
+ * values are reflecting the overridden parameters form the main constraint.
*
* @return Returns a map containing the annotation paramter names as keys and the annotation parameter values
* as value.
Modified: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintViolation.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ConstraintViolation.java 2008-11-05 01:51:02 UTC (rev 15512)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ConstraintViolation.java 2008-11-05 05:55:13 UTC (rev 15513)
@@ -40,9 +40,11 @@
/**
* If a bean constraint, the bean instance the constraint is applied on
- * If a property constraint, the bean instance hosting the property the constraint is applied on
+ * If a property constraint, the bean instance hosting the property the
+ * constraint is applied on
*
- * @return the leaf bean the constraint is applied on or null if Validator#validateValue is used
+ * @return the leaf bean the constraint is applied on or null if Validator#validateValue
+ * is used
*/
Object getLeafBean();
@@ -54,7 +56,7 @@
/**
- * @return the bean type being validated.
+ * @return the type of interface or class being validated.
*/
Class<T> getBeanClass();
Modified: validator/trunk/validation-api/src/main/java/javax/validation/MessageResolver.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/MessageResolver.java 2008-11-05 01:51:02 UTC (rev 15512)
+++ validator/trunk/validation-api/src/main/java/javax/validation/MessageResolver.java 2008-11-05 05:55:13 UTC (rev 15513)
@@ -37,7 +37,9 @@
*
* @return Interpolated error message.
*/
- String interpolate(String message, ConstraintDescriptor constraintDescriptor, Object value);
+ String interpolate(String message,
+ ConstraintDescriptor constraintDescriptor,
+ Object value);
/**
* Interpolate the message from the constraint parameters and the actual validated object.
@@ -50,5 +52,8 @@
*
* @return Interpolated error message.
*/
- String interpolate(String message, ConstraintDescriptor constraintDescriptor, Object value, Locale locale);
+ String interpolate(String message,
+ ConstraintDescriptor constraintDescriptor,
+ Object value,
+ Locale locale);
}
Modified: validator/trunk/validation-api/src/main/java/javax/validation/Validation.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/Validation.java 2008-11-05 01:51:02 UTC (rev 15512)
+++ validator/trunk/validation-api/src/main/java/javax/validation/Validation.java 2008-11-05 05:55:13 UTC (rev 15513)
@@ -24,26 +24,30 @@
import javax.validation.spi.ValidationProvider;
/**
- * This class is the entry point for the Bean Validation framework. There are three ways to bootstrap the framework:
+ * This class is the entry point for the Bean Validation framework. There are three ways
+ * to bootstrap the framework:
* <ul>
* <li>
* The easiest approach is to use the default Bean Validation provider.
* <pre>
* ValidatorFactory factory = Validation.getBuilder().build();
* </pre>
- * In this case {@link javax.validation.bootstrap.DefaultValidationProviderResolver DefaultValidationProviderResolver}
+ * In this case {@link javax.validation.bootstrap.DefaultValidationProviderResolver}
* will be used to locate available providers.
*
* The chosen provider is defined as followed:
* <ul>
* <li>if the XML configuration defines a provider, this provider is used</li>
- * <li>if the XML configuratio does not define a provider or if no XML configuration is present the first provider
- * returned by the ValidationProviderResolver isntance is used.</li>
+ * <li>if the XML configuratio does not define a provider or if no XML configuration
+ * is present the first provider returned by the ValidationProviderResolver
+ * isntance is used.</li>
* </ul>
* </li>
* <li>
- * The second bootstrap approach allows to choose a custom <code>ValidationProviderResolver</code>. The chosen
- * <code>ValidationProvider</code> is then determined in the same way as in the default bootstrapping case (see above).
+ * The second bootstrap approach allows to choose a custom
+ * <code>ValidationProviderResolver</code>. The chosen
+ * <code>ValidationProvider</code> is then determined in the same way
+ * as in the default bootstrapping case (see above).
* <pre>
* ValidatorFactoryBuilder<?> builder = Validation
* .defineBootstrapState()
@@ -55,7 +59,8 @@
*
* <p/>
* <li>
- * The third approach allows you to specify explicitly and in a type safe fashion the expected provider by
+ * The third approach allows you to specify explicitly and in
+ * a type safe fashion the expected provider by
* using its specific <code>ValidatorFactoryBuilder</code> sub-interface.
*
* Optionally you can choose a custom <code>ValidationProviderResolver</code>.
@@ -71,8 +76,8 @@
* Note:<br/>
* <ul>
* <li>
- * The ValidatorFactory object built by the bootstrap process should be cached and shared amongst
- * Validator consumers.
+ * The ValidatorFactory object built by the bootstrap process should be cached
+ * and shared amongst Validator consumers.
* </li>
* <li>
* This class is thread-safe.
@@ -86,10 +91,12 @@
public class Validation {
/**
- * Build a <code>ValidatorFactoryBuilder</code>. The actual provider choice is given by the XML configuration. If the
+ * Build a <code>ValidatorFactoryBuilder</code>. The actual provider
+ * choice is given by the XML configuration. If the
* XML configuration does not exsist the default is taken.
* <p/>
- * The provider list is resolved using the {@link javax.validation.bootstrap.DefaultValidationProviderResolver DefaultValidationProviderResolver}.
+ * The provider list is resolved using the
+ * {@link javax.validation.bootstrap.DefaultValidationProviderResolver}.
*
* @return <code>ValidatorFactoryBuilder</code> instance.
*/
@@ -98,7 +105,8 @@
}
/**
- * Build a <code>ValidatorFactoryBuilder</code>. The provider list is resolved using the strategy provided to the bootstrap state.
+ * Build a <code>ValidatorFactoryBuilder</code>. The provider list is resolved
+ * using the strategy provided to the bootstrap state.
* <pre>
* ValidatorFactoryBuilder<?> builder = Validation
* .defineBootstrapState()
@@ -106,10 +114,11 @@
* .getBuilder();
* ValidatorFactory factory = builder.build();
* </pre>
- * The actual provider choice is given by the XML configuration. If the XML configuration does not exsist the first
- * available provider will be returned.
+ * The actual provider choice is given by the XML configuration. If the XML
+ * configuration does not exsist the first available provider will be returned.
*
- * @return instance building a generic <code>ValidatorFactoryBuilder</code> compliant with the bootstrap state provided.
+ * @return instance building a generic <code>ValidatorFactoryBuilder</code>
+ * compliant with the bootstrap state provided.
*/
public static GenericBuilderFactory defineBootstrapState() {
return new GenericBuilderFactoryImpl();
@@ -126,16 +135,19 @@
* .providerResolver( new MyResolverStrategy() )
* .build();
* </pre>,
- * where <code>ACMEValidatorFactoryBuilder</code> is the <code>ValidatorFactoryBuilder</code> sub interface uniquely identifying
- * the ACME Bean Validation provider.
+ * where <code>ACMEValidatorFactoryBuilder</code> is the <code>ValidatorFactoryBuilder</code>
+ * sub interface uniquely identifying the ACME Bean Validation provider.
*
- * @param builderType the <code>ValidatorFactoryBuilder</code> sub interface uniquely defining the targeted provider.
+ * @param builderType the <code>ValidatorFactoryBuilder</code> sub interface
+ * uniquely defining the targeted provider.
*
- * @return instance building a provider specific <code>ValidatorFactoryBuilder</code> sub interface implementation.
+ * @return instance building a provider specific <code>ValidatorFactoryBuilder</code>
+ * sub interface implementation.
*
* @see #getBuilder()
*/
- public static <T extends ValidatorFactoryBuilder<T>> SpecializedBuilderFactory<T> builderType(Class<T> builderType) {
+ public static <T extends ValidatorFactoryBuilder<T>>
+ SpecializedBuilderFactory<T> builderType(Class<T> builderType) {
return new SpecializedBuilderFactoryImpl<T>( builderType );
}
Modified: validator/trunk/validation-api/src/main/java/javax/validation/ValidationProviderResolver.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ValidationProviderResolver.java 2008-11-05 01:51:02 UTC (rev 15512)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ValidationProviderResolver.java 2008-11-05 05:55:13 UTC (rev 15513)
@@ -23,7 +23,8 @@
/**
* Determine the list of Bean Validation providers available in the runtime environment
* <p/>
- * Bean Validation providers are identified by the presence of META-INF/services/javax.validation.spi.ValidationProvider
+ * Bean Validation providers are identified by the presence of
+ * META-INF/services/javax.validation.spi.ValidationProvider
* files following the Service Provider pattern described
* <a href="http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#Service%20Provider">here</a>
* <p/>
Modified: validator/trunk/validation-api/src/main/java/javax/validation/Validator.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/Validator.java 2008-11-05 01:51:02 UTC (rev 15512)
+++ validator/trunk/validation-api/src/main/java/javax/validation/Validator.java 2008-11-05 05:55:13 UTC (rev 15513)
@@ -32,7 +32,8 @@
* validate all constraints on object
*
* @param object object to validate
- * @param groups group name(s) (including group sequence names) targeted for validation (default to <code>default</code>)
+ * @param groups group name(s) (including group sequence names) targeted
+ * for validation (default to <code>default</code>)
*
* @return constraint violations or an empty Set if none
*
@@ -45,7 +46,8 @@
*
* @param object object to validate
* @param propertyName property to validate (ie field and getter constraints)
- * @param groups group name(s) (including group sequence names) targeted for validation (default to <code>default</code>)
+ * @param groups group name(s) (including group sequence names) targeted
+ * for validation (default to <code>default</code>)
*
* @return constraint violations or an empty Set if none
*
@@ -61,7 +63,8 @@
*
* @param propertyName property to validate
* @param value property value to validate
- * @param groups group name(s) (including group sequence names) targeted for validation (default to <code>default</code>)
+ * @param groups group name(s) (including group sequence names) targeted
+ * for validation (default to <code>default</code>)
*
* @return constraint violations or an empty Set if none
*/
Modified: validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java 2008-11-05 01:51:02 UTC (rev 15512)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java 2008-11-05 05:55:13 UTC (rev 15513)
@@ -32,12 +32,13 @@
* .build();
* </pre>
* <p/>
- * The ValidationProviderResolver is specified at ValidatorFactoryBuilder time (see {@link javax.validation.spi.ValidationProvider}).
+ * The ValidationProviderResolver is specified at ValidatorFactoryBuilder time
+ * (see {@link javax.validation.spi.ValidationProvider}).
* If none is explicitely requested, the default ValidationProviderResolver is used.
* <p/>
* The provider is selected in the following way:
- * - if a specific ValidatorFactoryBuilder subclass is requested programmatically using Validation.builderType(),
- * find the first provider matching it
+ * - if a specific ValidatorFactoryBuilder subclass is requested programmatically using
+ * Validation.builderType(), find the first provider matching it
* - if a specific ValidatorFactoryBuilder subclass is defined in META-INF/validation.xml,
* find the first provider matching it
* - otherwise, use the first provider returned by the ValidationProviderResolver
@@ -48,7 +49,8 @@
*/
public interface ValidatorFactoryBuilder<T extends ValidatorFactoryBuilder> {
/**
- * Defines the message resolver used. Has priority over the configuration based message resolver.
+ * Defines the message resolver used. Has priority over the configuration
+ * based message resolver.
*
* @param resolver message resolver implementation.
*
@@ -57,7 +59,8 @@
T messageResolver(MessageResolver resolver);
/**
- * Defines the constraint factory. Has priority over the configuration based constraint factory.
+ * Defines the constraint factory. Has priority over the configuration
+ * based constraint factory.
*
* @param constraintFactory constraint factory inmplementation.
*
@@ -69,7 +72,8 @@
* Configure the ValidatorFactory based on <code>stream</code>
* If not specified, META-INF/validation.xml is used
* <p/>
- * The stream should be closed by the client API after the ValidatorFactory has been returned
+ * The stream should be closed by the client API after the
+ * ValidatorFactory has been returned
*
* @param stream configuration stream.
*
Modified: validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/SpecializedBuilderFactory.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/SpecializedBuilderFactory.java 2008-11-05 01:51:02 UTC (rev 15512)
+++ validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/SpecializedBuilderFactory.java 2008-11-05 05:55:13 UTC (rev 15513)
@@ -4,12 +4,13 @@
import javax.validation.ValidatorFactoryBuilder;
/**
- * Build implementations of builderType, the specific ValidatorFactoryBuilder sub interface uniquely identifying
- * a provider.
+ * Build implementations of builderType, the specific ValidatorFactoryBuilder
+ * sub interface uniquely identifying a provider.
* <p/>
* The requested provider is the first provider suitable for T (as defined in
- * {@link javax.validation.spi.ValidationProvider#isSuitable(Class)}). The list of providers evaluated is
- * returned by {@link ValidationProviderResolver}. If no ValidationProviderResolver is defined, the
+ * {@link javax.validation.spi.ValidationProvider#isSuitable(Class)}). The
+ * list of providers evaluated is returned by {@link ValidationProviderResolver}.
+ * If no ValidationProviderResolver is defined, the
* default ValidationProviderResolver strategy is used.
*
* @author Emmanuel Bernard
@@ -27,8 +28,8 @@
public SpecializedBuilderFactory<T> providerResolver(ValidationProviderResolver resolver);
/**
- * Determine the provider implementation suitable for builderType and delegate the creation
- * of this specific ValidatorFactoryBuilder subclass to the provider.
+ * Determine the provider implementation suitable for builderType and delegate
+ * the creation of this specific ValidatorFactoryBuilder subclass to the provider.
*
* @return a ValidatorFactoryBuilder sub interface implementation
*/
Modified: validator/trunk/validation-api/src/main/java/javax/validation/constraints/Digits.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/constraints/Digits.java 2008-11-05 01:51:02 UTC (rev 15512)
+++ validator/trunk/validation-api/src/main/java/javax/validation/constraints/Digits.java 2008-11-05 05:55:13 UTC (rev 15513)
@@ -33,7 +33,8 @@
* <li><code>BigInteger</code></li>
* <li><code>Number</code></li>
* <li><code>String</code></li>
- * <li><code>short</code>, <code>int</code>, <code>long</code>, <code>float</code>, <code>double</code></li>
+ * <li><code>short</code>, <code>int</code>, <code>long</code>, <code>float</code>,
+ * <code>double</code></li>
* </ul>
* <p/>
* <code>null</code> elements are considered valid
Modified: validator/trunk/validation-api/src/main/java/javax/validation/constraints/Max.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/constraints/Max.java 2008-11-05 01:51:02 UTC (rev 15512)
+++ validator/trunk/validation-api/src/main/java/javax/validation/constraints/Max.java 2008-11-05 05:55:13 UTC (rev 15513)
@@ -35,7 +35,8 @@
* <li><code>BigInteger</code></li>
* <li><code>Number</code></li>
* <li><code>String</code></li>
- * <li><code>short</code>, <code>int</code>, <code>long</code>, <code>float</code>, <code>double</code></li>
+ * <li><code>short</code>, <code>int</code>, <code>long</code>, <code>float</code>,
+ * <code>double</code></li>
* </ul>
* <p/>
* <code>null</code> elements are considered valid
Modified: validator/trunk/validation-api/src/main/java/javax/validation/constraints/Min.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/constraints/Min.java 2008-11-05 01:51:02 UTC (rev 15512)
+++ validator/trunk/validation-api/src/main/java/javax/validation/constraints/Min.java 2008-11-05 05:55:13 UTC (rev 15513)
@@ -35,7 +35,8 @@
* <li><code>BigInteger</code></li>
* <li><code>Number</code></li>
* <li><code>String</code></li>
- * <li><code>short</code>, <code>int</code>, <code>long</code>, <code>float</code>, <code>double</code></li>
+ * <li><code>short</code>, <code>int</code>, <code>long</code>, <code>float</code>,
+ * <code>double</code></li>
* </ul>
* <p/>
* <code>null</code> elements are considered valid
Modified: validator/trunk/validation-api/src/main/java/javax/validation/spi/BootstrapState.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/spi/BootstrapState.java 2008-11-05 01:51:02 UTC (rev 15512)
+++ validator/trunk/validation-api/src/main/java/javax/validation/spi/BootstrapState.java 2008-11-05 05:55:13 UTC (rev 15513)
@@ -9,7 +9,8 @@
*/
public interface BootstrapState {
/**
- * returns the user defined ValidationProviderResolver strategy instance or <code>null</code> if undefined.
+ * returns the user defined ValidationProviderResolver strategy instance or <code>null</code>
+ * if undefined.
*
* @return ValidationProviderResolver instance or null
*/
Modified: validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidationProvider.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidationProvider.java 2008-11-05 01:51:02 UTC (rev 15512)
+++ validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidationProvider.java 2008-11-05 05:55:13 UTC (rev 15513)
@@ -23,34 +23,40 @@
/**
* Contract between the validation bootstrap mechanism and the provider engine.
* <p/>
- * Implementations must have a public no-arg constructor. The construction of a provider should be
- * as "lightweight" as possible.
+ * Implementations must have a public no-arg constructor. The construction of a provider
+ * should be as "lightweight" as possible.
*
* @author Emmanuel Bernard
* @author Hardy Ferentschik
*/
public interface ValidationProvider {
/**
+ * This sub interface uniquely identify a provider.
+ *
* @param builderClass targeted builder class.
*
- * @return <code>true</code> if <code>builderClass</code> is the Bean Validation Provider sub interface for ValidatorFactoryBuilder
- * This sub interface uniquely identify a provider.
+ * @return <code>true</code> if <code>builderClass</code> is the Bean Validation Provider sub
+ * interface for ValidatorFactoryBuilder
*/
boolean isSuitable(Class<? extends ValidatorFactoryBuilder<?>> builderClass);
/**
- * Returns a ValidatorFactoryBuilder instance implementing the <code>builderType</code> interface.
- * The ValidatorFactoryBuilder instance uses the current provider (<code>this</code>) to build
- * the ValidatorFactory instance.
+ * Returns a ValidatorFactoryBuilder instance implementing the
+ * <code>builderType</code> interface.
+ * The ValidatorFactoryBuilder instance uses the current provider (<code>this</code>)
+ * to build the ValidatorFactory instance.
* <p/>
- * This method can only be called on providers returning true on <code>#issuitable(builderType)</code>
+ * This method can only be called on providers returning true on <
+ * code>#issuitable(builderType)</code>
*
* @param builderClass the Builder class type
* @param state bootstrap state
*
* @return specific validator builder implementation
*/
- <T extends ValidatorFactoryBuilder<T>> T createSpecializedValidatorFactoryBuilder(BootstrapState state, Class<T> builderClass);
+ <T extends ValidatorFactoryBuilder<T>> T createSpecializedValidatorFactoryBuilder(
+ BootstrapState state,
+ Class<T> builderClass);
/**
* Returns a ValidatorFactoryBuilder instance. This instance is not bound to
@@ -67,8 +73,9 @@
ValidatorFactoryBuilder<?> createGenericValidatorFactoryBuilder(BootstrapState state);
/**
- * Build a ValidatorFactory using the current provider implementation. The ValidatorFactory
- * is assembled and follow the configuration passed using ValidatorFactoryConfiguration.
+ * Build a ValidatorFactory using the current provider implementation. The
+ * ValidatorFactory is assembled and follow the configuration passed
+ * using ValidatorFactoryConfiguration.
* <p>
* The returned ValidatorFactory is properly initialized and ready for use.
* </p>
Modified: validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java 2008-11-05 01:51:02 UTC (rev 15512)
+++ validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java 2008-11-05 05:55:13 UTC (rev 15513)
@@ -22,9 +22,10 @@
import javax.validation.MessageResolver;
/**
- * Contract between a <code>ValidatorFactoryBuilder</code> and a </code>ValidatorProvider</code> to create
- * a <code>ValidatorFactory</code>.
- * The configuration artifacts provided to the <code>ValidatorFactoryBuilder</code> are passed along.
+ * Contract between a <code>ValidatorFactoryBuilder</code> and a
+ * </code>ValidatorProvider</code> to create a <code>ValidatorFactory</code>.
+ * The configuration artifacts provided to the
+ * <code>ValidatorFactoryBuilder</code> are passed along.
*
* @author Emmanuel Bernard
* @author Hardy Ferentschik
@@ -47,8 +48,8 @@
InputStream getConfigurationStream();
/**
- * Defines the constraint implementation factory as defined by the client programmatically
- * or null if undefined
+ * Defines the constraint implementation factory as defined by
+ * the client programmatically or null if undefined
*
* @return factory instance or null if not defined
*/
15 years, 5 months
Hibernate SVN: r15512 - in core/branches/Branch_3_2_4_SP1_CP: test/org/hibernate/test/jpa/ql and 1 other directory.
by hibernate-commits@lists.jboss.org
Author: dstephan
Date: 2008-11-04 20:51:02 -0500 (Tue, 04 Nov 2008)
New Revision: 15512
Modified:
core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/hql/ast/tree/FromClause.java
core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java
Log:
JBPAPP-1365 - Backport of HHH-2159
Modified: core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/hql/ast/tree/FromClause.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/hql/ast/tree/FromClause.java 2008-11-05 01:46:59 UTC (rev 15511)
+++ core/branches/Branch_3_2_4_SP1_CP/src/org/hibernate/hql/ast/tree/FromClause.java 2008-11-05 01:51:02 UTC (rev 15512)
@@ -85,13 +85,14 @@
}
void addDuplicateAlias(String alias, FromElement element) {
- fromElementByClassAlias.put( alias, element );
+ if ( alias != null ) {
+ fromElementByClassAlias.put( alias, element );
+ }
}
private void checkForDuplicateClassAlias(String classAlias) throws SemanticException {
if ( classAlias != null && fromElementByClassAlias.containsKey( classAlias ) ) {
- throw new SemanticException( "Duplicate definition of alias '"
- + classAlias + "'" );
+ throw new SemanticException( "Duplicate definition of alias '" + classAlias + "'" );
}
}
Modified: core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java
===================================================================
--- core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java 2008-11-05 01:46:59 UTC (rev 15511)
+++ core/branches/Branch_3_2_4_SP1_CP/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java 2008-11-05 01:51:02 UTC (rev 15512)
@@ -41,6 +41,12 @@
s.close();
}
+ public void testIdentifierCasesensitivityAndDuplicateFromElements() throws Exception {
+ Session s = openSession();
+ s.createQuery( "select e from MyEntity e where exists (select 1 from MyEntity e2 where e2.other.name = 'something' and e2.other.other = e)" );
+ s.close();
+ }
+
public void testGeneratedSubquery() {
Session s = openSession();
s.createQuery( "select c FROM Item c WHERE c.parts IS EMPTY" ).list();
15 years, 5 months
Hibernate SVN: r15511 - in core/branches/Branch_3_2: etc and 12 other directories.
by hibernate-commits@lists.jboss.org
Author: gbadner
Date: 2008-11-04 20:46:59 -0500 (Tue, 04 Nov 2008)
New Revision: 15511
Modified:
core/branches/Branch_3_2/doc/reference/en/modules/basic_mapping.xml
core/branches/Branch_3_2/doc/reference/en/modules/configuration.xml
core/branches/Branch_3_2/etc/hibernate.properties
core/branches/Branch_3_2/src/org/hibernate/sql/OracleJoinFragment.java
core/branches/Branch_3_2/test/org/hibernate/test/bidi/AuctionTest2.java
core/branches/Branch_3_2/test/org/hibernate/test/cut/CompositeUserTypeTest.java
core/branches/Branch_3_2/test/org/hibernate/test/dialect/functional/cache/SQLFunctionsInterSystemsTest.java
core/branches/Branch_3_2/test/org/hibernate/test/generated/ComponentOwner.hbm.xml
core/branches/Branch_3_2/test/org/hibernate/test/generated/GeneratedPropertyEntity.hbm.xml
core/branches/Branch_3_2/test/org/hibernate/test/generated/PartiallyGeneratedComponentTest.java
core/branches/Branch_3_2/test/org/hibernate/test/generated/TriggerGeneratedValuesWithCachingTest.java
core/branches/Branch_3_2/test/org/hibernate/test/generated/TriggerGeneratedValuesWithoutCachingTest.java
core/branches/Branch_3_2/test/org/hibernate/test/generatedkeys/select/MyEntity.hbm.xml
core/branches/Branch_3_2/test/org/hibernate/test/generatedkeys/select/SelectGeneratorTest.java
core/branches/Branch_3_2/test/org/hibernate/test/generatedkeys/seqidentity/SequenceIdentityTest.java
core/branches/Branch_3_2/test/org/hibernate/test/hql/ASTParserLoadingTest.java
core/branches/Branch_3_2/test/org/hibernate/test/hql/HQLTest.java
core/branches/Branch_3_2/test/org/hibernate/test/legacy/FooBarTest.java
core/branches/Branch_3_2/test/org/hibernate/test/legacy/IJTest.java
core/branches/Branch_3_2/test/org/hibernate/test/legacy/MasterDetailTest.java
core/branches/Branch_3_2/test/org/hibernate/test/legacy/SQLFunctionsTest.java
core/branches/Branch_3_2/test/org/hibernate/test/legacy/SQLLoaderTest.java
core/branches/Branch_3_2/test/org/hibernate/test/rowid/RowIdTest.java
core/branches/Branch_3_2/test/org/hibernate/test/sql/check/OracleCheckStyleTest.java
core/branches/Branch_3_2/test/org/hibernate/test/sql/hand/custom/oracle/OracleCustomSQLTest.java
Log:
HHH-3214 : Update unit tests and config files to use non-deprecated Oracle dialects
Modified: core/branches/Branch_3_2/doc/reference/en/modules/basic_mapping.xml
===================================================================
--- core/branches/Branch_3_2/doc/reference/en/modules/basic_mapping.xml 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/doc/reference/en/modules/basic_mapping.xml 2008-11-05 01:46:59 UTC (rev 15511)
@@ -3547,12 +3547,12 @@
Additionally, these database objects can be optionally scoped such that they only
apply when certain dialects are used.
</para>
- <programlisting><![CDATA[<hibernate-mapping>
+ <programlisting revision="1"><![CDATA[<hibernate-mapping>
...
<database-object>
<definition class="MyTriggerDefinition"/>
- <dialect-scope name="org.hibernate.dialect.Oracle9Dialect"/>
- <dialect-scope name="org.hibernate.dialect.OracleDialect"/>
+ <dialect-scope name="org.hibernate.dialect.Oracle9iDialect"/>
+ <dialect-scope name="org.hibernate.dialect.Oracle10gDialect"/>
</database-object>
</hibernate-mapping>]]></programlisting>
</sect1>
Modified: core/branches/Branch_3_2/doc/reference/en/modules/configuration.xml
===================================================================
--- core/branches/Branch_3_2/doc/reference/en/modules/configuration.xml 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/doc/reference/en/modules/configuration.xml 2008-11-05 01:46:59 UTC (rev 15511)
@@ -1028,7 +1028,7 @@
other properties listed above, saving you the effort of specifying them manually.
</para>
- <table frame="topbot" id="sql-dialects" revision="2">
+ <table frame="topbot" id="sql-dialects" revision="3">
<title>Hibernate SQL Dialects (<literal>hibernate.dialect</literal>)</title>
<tgroup cols="2">
<colspec colwidth="1*"/>
@@ -1062,12 +1062,15 @@
<entry>MySQL with MyISAM</entry> <entry><literal>org.hibernate.dialect.MySQLMyISAMDialect</literal></entry>
</row>
<row>
- <entry>Oracle (any version)</entry> <entry><literal>org.hibernate.dialect.OracleDialect</literal></entry>
+ <entry>Oracle 8i</entry> <entry><literal>org.hibernate.dialect.Oracle8iDialect</literal></entry>
</row>
<row>
- <entry>Oracle 9i/10g</entry> <entry><literal>org.hibernate.dialect.Oracle9Dialect</literal></entry>
+ <entry>Oracle 9i</entry> <entry><literal>org.hibernate.dialect.Oracle9iDialect</literal></entry>
</row>
<row>
+ <entry>Oracle 10g</entry> <entry><literal>org.hibernate.dialect.Oracle10gDialect</literal></entry>
+ </row>
+ <row>
<entry>Sybase</entry> <entry><literal>org.hibernate.dialect.SybaseDialect</literal></entry>
</row>
<row>
Modified: core/branches/Branch_3_2/etc/hibernate.properties
===================================================================
--- core/branches/Branch_3_2/etc/hibernate.properties 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/etc/hibernate.properties 2008-11-05 01:46:59 UTC (rev 15511)
@@ -59,8 +59,8 @@
## Oracle
-#hibernate.dialect org.hibernate.dialect.OracleDialect
-#hibernate.dialect org.hibernate.dialect.Oracle9Dialect
+#hibernate.dialect org.hibernate.dialect.Oracle9iDialect
+#hibernate.dialect org.hibernate.dialect.Oracle10gDialect
#hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver
#hibernate.connection.username ora
#hibernate.connection.password ora
Modified: core/branches/Branch_3_2/src/org/hibernate/sql/OracleJoinFragment.java
===================================================================
--- core/branches/Branch_3_2/src/org/hibernate/sql/OracleJoinFragment.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/src/org/hibernate/sql/OracleJoinFragment.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -91,7 +91,7 @@
addLeftOuterJoinCondition( on );
}
else {
- throw new UnsupportedOperationException( "join type not supported by OracleJoinFragment (use Oracle9Dialect)" );
+ throw new UnsupportedOperationException( "join type not supported by OracleJoinFragment (use Oracle9iDialect)" );
}
}
Modified: core/branches/Branch_3_2/test/org/hibernate/test/bidi/AuctionTest2.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/bidi/AuctionTest2.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/bidi/AuctionTest2.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -9,7 +9,6 @@
import org.hibernate.Transaction;
import org.hibernate.junit.functional.FunctionalTestCase;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
-import org.hibernate.dialect.Oracle9Dialect;
import junit.framework.Test;
Modified: core/branches/Branch_3_2/test/org/hibernate/test/cut/CompositeUserTypeTest.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/cut/CompositeUserTypeTest.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/cut/CompositeUserTypeTest.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -9,7 +9,6 @@
import org.hibernate.Session;
import org.hibernate.dialect.HSQLDialect;
-import org.hibernate.dialect.Oracle9Dialect;
import org.hibernate.junit.functional.FunctionalTestCase;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
@@ -45,7 +44,7 @@
result = s.createQuery("from Transaction tran where tran.value.amount > 1.0 and tran.value.currency = 'AUD'").list();
assertEquals( result.size(), 1 );
- if ( !(getDialect() instanceof HSQLDialect) && ! (getDialect() instanceof Oracle9Dialect) ) {
+ if ( !(getDialect() instanceof HSQLDialect) ) {
result = s.createQuery("from Transaction txn where txn.value = (1.5, 'AUD')").list();
assertEquals( result.size(), 1 );
Modified: core/branches/Branch_3_2/test/org/hibernate/test/dialect/functional/cache/SQLFunctionsInterSystemsTest.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/dialect/functional/cache/SQLFunctionsInterSystemsTest.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/dialect/functional/cache/SQLFunctionsInterSystemsTest.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -26,7 +26,6 @@
import org.hibernate.dialect.InterbaseDialect;
import org.hibernate.dialect.MckoiDialect;
import org.hibernate.dialect.MySQLDialect;
-import org.hibernate.dialect.Oracle9Dialect;
import org.hibernate.dialect.SybaseDialect;
import org.hibernate.dialect.TimesTenDialect;
import org.hibernate.dialect.function.SQLFunction;
@@ -176,7 +175,6 @@
}
public void testBroken() throws Exception {
- if (getDialect() instanceof Oracle9Dialect) return;
Session s = openSession();
Transaction t = s.beginTransaction();
Broken b = new Fixed();
Modified: core/branches/Branch_3_2/test/org/hibernate/test/generated/ComponentOwner.hbm.xml
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/generated/ComponentOwner.hbm.xml 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/generated/ComponentOwner.hbm.xml 2008-11-05 01:46:59 UTC (rev 15511)
@@ -31,8 +31,8 @@
<drop>
<![CDATA[DROP TRIGGER t_iu_part_gen_comp]]>
</drop>
- <dialect-scope name="org.hibernate.dialect.Oracle9Dialect"/>
- <dialect-scope name="org.hibernate.dialect.OracleDialect"/>
+ <dialect-scope name="org.hibernate.dialect.Oracle9iDialect"/>
+ <dialect-scope name="org.hibernate.dialect.Oracle10gDialect"/>
</database-object>
</hibernate-mapping>
\ No newline at end of file
Modified: core/branches/Branch_3_2/test/org/hibernate/test/generated/GeneratedPropertyEntity.hbm.xml
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/generated/GeneratedPropertyEntity.hbm.xml 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/generated/GeneratedPropertyEntity.hbm.xml 2008-11-05 01:46:59 UTC (rev 15511)
@@ -35,8 +35,8 @@
<drop>
<![CDATA[DROP TRIGGER t_iu_gen_prop]]>
</drop>
- <dialect-scope name="org.hibernate.dialect.Oracle9Dialect"/>
- <dialect-scope name="org.hibernate.dialect.OracleDialect"/>
+ <dialect-scope name="org.hibernate.dialect.Oracle9iDialect"/>
+ <dialect-scope name="org.hibernate.dialect.Oracle10gDialect"/>
</database-object>
</hibernate-mapping>
\ No newline at end of file
Modified: core/branches/Branch_3_2/test/org/hibernate/test/generated/PartiallyGeneratedComponentTest.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/generated/PartiallyGeneratedComponentTest.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/generated/PartiallyGeneratedComponentTest.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -5,7 +5,7 @@
import org.hibernate.junit.functional.DatabaseSpecificFunctionalTestCase;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
import org.hibernate.dialect.Dialect;
-import org.hibernate.dialect.Oracle9Dialect;
+import org.hibernate.dialect.Oracle9iDialect;
import org.hibernate.Session;
/**
@@ -27,7 +27,7 @@
}
public boolean appliesTo(Dialect dialect) {
- return dialect instanceof Oracle9Dialect;
+ return dialect instanceof Oracle9iDialect;
}
public void testPartialComponentGeneration() {
Modified: core/branches/Branch_3_2/test/org/hibernate/test/generated/TriggerGeneratedValuesWithCachingTest.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/generated/TriggerGeneratedValuesWithCachingTest.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/generated/TriggerGeneratedValuesWithCachingTest.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -1,12 +1,11 @@
// $Id$
package org.hibernate.test.generated;
-import org.hibernate.dialect.Oracle9Dialect;
import org.hibernate.dialect.Dialect;
+import org.hibernate.dialect.Oracle9iDialect;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
import junit.framework.Test;
-import junit.framework.TestSuite;
/**
* Implementation of TriggerGeneratedValuesWithoutCachingTest.
@@ -26,7 +25,7 @@
public boolean appliesTo(Dialect dialect) {
// currently have only defined triggers for oracle...
// TODO : add more triggers for dialects which allow mods in triggers...
- return ( dialect instanceof Oracle9Dialect );
+ return ( dialect instanceof Oracle9iDialect );
}
public static Test suite() {
Modified: core/branches/Branch_3_2/test/org/hibernate/test/generated/TriggerGeneratedValuesWithoutCachingTest.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/generated/TriggerGeneratedValuesWithoutCachingTest.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/generated/TriggerGeneratedValuesWithoutCachingTest.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -4,7 +4,7 @@
import junit.framework.Test;
import org.hibernate.dialect.Dialect;
-import org.hibernate.dialect.Oracle9Dialect;
+import org.hibernate.dialect.Oracle9iDialect;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
/**
@@ -25,7 +25,7 @@
public boolean appliesTo(Dialect dialect) {
// currently have only defined triggers for oracle...
// TODO : add more triggers for dialects which allow mods in triggers...
- return ( dialect instanceof Oracle9Dialect );
+ return ( dialect instanceof Oracle9iDialect );
}
public String getCacheConcurrencyStrategy() {
Modified: core/branches/Branch_3_2/test/org/hibernate/test/generatedkeys/select/MyEntity.hbm.xml
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/generatedkeys/select/MyEntity.hbm.xml 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/generatedkeys/select/MyEntity.hbm.xml 2008-11-05 01:46:59 UTC (rev 15511)
@@ -29,8 +29,8 @@
<drop>
<![CDATA[DROP TRIGGER t_i_my_entity]]>
</drop>
- <dialect-scope name="org.hibernate.dialect.Oracle9Dialect"/>
- <dialect-scope name="org.hibernate.dialect.OracleDialect"/>
+ <dialect-scope name="org.hibernate.dialect.Oracle9iDialect"/>
+ <dialect-scope name="org.hibernate.dialect.Oracle10gDialect"/>
</database-object>
</hibernate-mapping>
\ No newline at end of file
Modified: core/branches/Branch_3_2/test/org/hibernate/test/generatedkeys/select/SelectGeneratorTest.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/generatedkeys/select/SelectGeneratorTest.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/generatedkeys/select/SelectGeneratorTest.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -3,9 +3,8 @@
import junit.framework.Test;
import org.hibernate.Session;
-import org.hibernate.dialect.DataDirectOracle9Dialect;
import org.hibernate.dialect.Dialect;
-import org.hibernate.dialect.Oracle9Dialect;
+import org.hibernate.dialect.Oracle9iDialect;
import org.hibernate.junit.functional.DatabaseSpecificFunctionalTestCase;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
@@ -24,7 +23,7 @@
}
public boolean appliesTo(Dialect dialect) {
- return ( dialect instanceof Oracle9Dialect );
+ return ( dialect instanceof Oracle9iDialect );
}
public static Test suite() {
@@ -32,10 +31,6 @@
}
public void testJDBC3GetGeneratedKeysSupportOnOracle() {
- if ( getDialect() instanceof DataDirectOracle9Dialect ) {
- reportSkip( "DataDirect drivers known to not support JDBC3 getGeneratedKeys for Oracle", "oracle getGeneratedKeys support" );
- return;
- }
Session session = openSession();
session.beginTransaction();
Modified: core/branches/Branch_3_2/test/org/hibernate/test/generatedkeys/seqidentity/SequenceIdentityTest.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/generatedkeys/seqidentity/SequenceIdentityTest.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/generatedkeys/seqidentity/SequenceIdentityTest.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -4,9 +4,8 @@
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
-import org.hibernate.dialect.DataDirectOracle9Dialect;
import org.hibernate.dialect.Dialect;
-import org.hibernate.dialect.Oracle9Dialect;
+import org.hibernate.dialect.Oracle9iDialect;
import org.hibernate.junit.functional.DatabaseSpecificFunctionalTestCase;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
@@ -25,7 +24,7 @@
public boolean appliesTo(Dialect dialect) {
// the DataDirect driver for Oracle known to not support
// JDBC3 getGeneratedKeys...
- return ( dialect instanceof Oracle9Dialect ) && ( ! ( dialect instanceof DataDirectOracle9Dialect ) ) ;
+ return ( dialect instanceof Oracle9iDialect );
}
public String[] getMappings() {
Modified: core/branches/Branch_3_2/test/org/hibernate/test/hql/ASTParserLoadingTest.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/hql/ASTParserLoadingTest.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/hql/ASTParserLoadingTest.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -30,7 +30,6 @@
import org.hibernate.dialect.HSQLDialect;
import org.hibernate.dialect.MySQLDialect;
import org.hibernate.dialect.Oracle8iDialect;
-import org.hibernate.dialect.Oracle9Dialect;
import org.hibernate.dialect.PostgreSQLDialect;
import org.hibernate.dialect.SQLServerDialect;
import org.hibernate.dialect.SybaseDialect;
@@ -1209,7 +1208,7 @@
String dateStr1 = (String) session.createQuery("select str(current_date) from Animal").uniqueResult();
String dateStr2 = (String) session.createQuery("select str(year(current_date))||'-'||str(month(current_date))||'-'||str(day(current_date)) from Animal").uniqueResult();
System.out.println(dateStr1 + '=' + dateStr2);
- if ( ! ( getDialect() instanceof Oracle9Dialect || getDialect() instanceof Oracle8iDialect ) ) { //Oracle renders the name of the month :(
+ if ( ! ( getDialect() instanceof Oracle8iDialect ) ) { //Oracle renders the name of the month :(
String[] dp1 = StringHelper.split("-", dateStr1);
String[] dp2 = StringHelper.split("-", dateStr2);
for (int i=0; i<3; i++) {
Modified: core/branches/Branch_3_2/test/org/hibernate/test/hql/HQLTest.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/hql/HQLTest.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/hql/HQLTest.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -18,7 +18,6 @@
import org.hibernate.dialect.HSQLDialect;
import org.hibernate.dialect.MySQLDialect;
import org.hibernate.dialect.Oracle8iDialect;
-import org.hibernate.dialect.Oracle9Dialect;
import org.hibernate.dialect.PostgreSQLDialect;
import org.hibernate.dialect.SybaseDialect;
import org.hibernate.dialect.function.SQLFunction;
@@ -671,7 +670,6 @@
}
public void testGroupByFunction() {
- if ( getDialect() instanceof Oracle9Dialect ) return;
if ( getDialect() instanceof Oracle8iDialect ) return; // the new hiearchy...
if ( getDialect() instanceof PostgreSQLDialect ) return;
assertTranslation( "select count(*) from Human h group by year(h.birthdate)" );
@@ -850,7 +848,6 @@
public void testClassProperty() throws Exception {
// This test causes failures on theta-join dialects because the SQL is different.
// The queries are semantically the same however.
- if ( getDialect() instanceof Oracle9Dialect ) return;
if ( getDialect() instanceof Oracle8iDialect ) return;
assertTranslation( "from Animal a where a.mother.class = Reptile" );
}
@@ -1126,7 +1123,6 @@
// This test causes failures on theta-join dialects because the SQL is different. The old parser
// duplicates the condition, whereas the new parser does not. The queries are semantically the
// same however.
- if ( getDialect() instanceof Oracle9Dialect ) return;
if ( getDialect() instanceof Oracle8iDialect ) return;
assertTranslation( "select an.mother.bodyWeight from Animal an join an.mother m where an.mother.bodyWeight > 10" );
assertTranslation( "select an.mother.bodyWeight from Animal an where an.mother.bodyWeight > 10" );
Modified: core/branches/Branch_3_2/test/org/hibernate/test/legacy/FooBarTest.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/legacy/FooBarTest.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/legacy/FooBarTest.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -51,8 +51,6 @@
import org.hibernate.dialect.MckoiDialect;
import org.hibernate.dialect.MySQLDialect;
import org.hibernate.dialect.Oracle8iDialect;
-import org.hibernate.dialect.Oracle9Dialect;
-import org.hibernate.dialect.OracleDialect;
import org.hibernate.dialect.PointbaseDialect;
import org.hibernate.dialect.PostgreSQLDialect;
import org.hibernate.dialect.SAPDBDialect;
@@ -61,7 +59,6 @@
import org.hibernate.engine.SessionFactoryImplementor;
import org.hibernate.jmx.HibernateService;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
-import org.hibernate.mapping.RootClass;
import org.hibernate.proxy.HibernateProxy;
import org.hibernate.type.Type;
import org.hibernate.util.JoinedIterator;
@@ -97,13 +94,6 @@
};
}
- public void configure(Configuration cfg) {
- super.configure( cfg );
- if ( Dialect.getDialect() instanceof OracleDialect ) {
- ( (RootClass) cfg.getClassMapping("org.hibernate.test.legacy.Foo") ).setForceDiscriminator(false);
- }
- }
-
public static Test suite() {
return new FunctionalTestClassTestSuite( FooBarTest.class );
}
@@ -680,7 +670,7 @@
s.find("from Foo foo where foo.integer not between 1 and 5 and foo.string not in ('cde', 'abc') and foo.string is not null and foo.integer<=3");
s.find("from Baz baz inner join baz.collectionComponent.nested.foos foo where foo.string is null");
- if ( !(getDialect() instanceof MySQLDialect) && !(getDialect() instanceof MckoiDialect) && !(getDialect() instanceof SAPDBDialect) && !(getDialect() instanceof PointbaseDialect) /*&& !(dialect instanceof Oracle9Dialect)*/ ) {
+ if ( !(getDialect() instanceof MySQLDialect) && !(getDialect() instanceof MckoiDialect) && !(getDialect() instanceof SAPDBDialect) && !(getDialect() instanceof PointbaseDialect) ) {
s.find("from Baz baz inner join baz.fooSet where '1' in (from baz.fooSet foo where foo.string is not null)");
s.find("from Baz baz where 'a' in elements(baz.collectionComponent.nested.foos) and 1.0 in elements(baz.collectionComponent.nested.floats)");
s.find("from Baz baz where 'b' in elements(baz.collectionComponent.nested.foos) and 1.0 in elements(baz.collectionComponent.nested.floats)");
@@ -2136,7 +2126,7 @@
s.find("select count(*) from Baz as baz where 1 in indices(baz.fooArray)");
s.find("select count(*) from Bar as bar where 'abc' in elements(bar.baz.fooArray)");
s.find("select count(*) from Bar as bar where 1 in indices(bar.baz.fooArray)");
- if ( !(getDialect() instanceof DB2Dialect) && !(getDialect() instanceof Oracle9Dialect) && !(getDialect() instanceof Oracle8iDialect ) ) {
+ if ( !(getDialect() instanceof DB2Dialect) && !(getDialect() instanceof Oracle8iDialect ) ) {
s.find("select count(*) from Bar as bar, bar.component.glarch.proxyArray as g where g.id in indices(bar.baz.fooArray)");
s.find("select max( elements(bar.baz.fooArray) ) from Bar as bar, bar.component.glarch.proxyArray as g where g.id in indices(bar.baz.fooArray)");
}
@@ -3301,7 +3291,7 @@
}
public void testScrollableIterator() throws Exception {
- if ( getDialect() instanceof DB2Dialect || getDialect() instanceof OracleDialect || getDialect() instanceof SybaseDialect || getDialect() instanceof HSQLDialect ) {
+ if ( getDialect() instanceof DB2Dialect || getDialect() instanceof SybaseDialect || getDialect() instanceof HSQLDialect ) {
Session s = openSession();
Transaction txn = s.beginTransaction();
s.save( new Foo() );
Modified: core/branches/Branch_3_2/test/org/hibernate/test/legacy/IJTest.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/legacy/IJTest.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/legacy/IJTest.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -8,7 +8,6 @@
import org.hibernate.LockMode;
import org.hibernate.classic.Session;
import org.hibernate.dialect.HSQLDialect;
-import org.hibernate.dialect.OracleDialect;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
/**
@@ -29,7 +28,7 @@
}
public void testFormulaDiscriminator() throws Exception {
- if ( ( getDialect() instanceof OracleDialect ) || ( getDialect() instanceof HSQLDialect ) ) return;
+ if ( getDialect() instanceof HSQLDialect ) return;
Session s = getSessions().openSession();
I i = new I();
i.setName( "i" );
Modified: core/branches/Branch_3_2/test/org/hibernate/test/legacy/MasterDetailTest.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/legacy/MasterDetailTest.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/legacy/MasterDetailTest.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -23,7 +23,6 @@
import org.hibernate.dialect.HSQLDialect;
import org.hibernate.dialect.MckoiDialect;
import org.hibernate.dialect.MySQLDialect;
-import org.hibernate.dialect.Oracle9Dialect;
import org.hibernate.dialect.SAPDBDialect;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
import org.hibernate.mapping.MetaAttribute;
@@ -317,7 +316,7 @@
assertTrue( "generated id returned", s.save(d2)!=null);
master.addDetail(d1);
master.addDetail(d2);
- if ( !(getDialect() instanceof MySQLDialect) && !(getDialect() instanceof Oracle9Dialect) && !(getDialect() instanceof SAPDBDialect) && !(getDialect() instanceof MckoiDialect) && !(getDialect() instanceof org.hibernate.dialect.TimesTenDialect)) {
+ if ( !(getDialect() instanceof MySQLDialect) && !(getDialect() instanceof SAPDBDialect) && !(getDialect() instanceof MckoiDialect) && !(getDialect() instanceof org.hibernate.dialect.TimesTenDialect)) {
assertTrue(
"query",
s.find("from Detail d, Master m where m = d.master and size(m.outgoing) = 0 and size(m.incoming) = 0").size()==2
Modified: core/branches/Branch_3_2/test/org/hibernate/test/legacy/SQLFunctionsTest.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/legacy/SQLFunctionsTest.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/legacy/SQLFunctionsTest.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -23,10 +23,9 @@
import org.hibernate.dialect.InterbaseDialect;
import org.hibernate.dialect.MckoiDialect;
import org.hibernate.dialect.MySQLDialect;
-import org.hibernate.dialect.Oracle9Dialect;
-import org.hibernate.dialect.OracleDialect;
import org.hibernate.dialect.SybaseDialect;
import org.hibernate.dialect.TimesTenDialect;
+import org.hibernate.dialect.Oracle9iDialect;
import org.hibernate.dialect.function.SQLFunction;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
@@ -80,7 +79,7 @@
s.find("select count(*) from Simple s").size() == 1
);
- if ( getDialect() instanceof OracleDialect) {
+ if ( getDialect() instanceof Oracle9iDialect ) {
// Check Oracle Dialect mix of dialect functions - no args (no parenthesis and single arg functions
java.util.List rset = s.find("select s.name, sysdate(), trunc(s.pay), round(s.pay) from Simple s");
assertNotNull("Name string should have been returned",(((Object[])rset.get(0))[0]));
@@ -181,7 +180,6 @@
s.close();
}
public void testBroken() throws Exception {
- if (getDialect() instanceof Oracle9Dialect) return;
Session s = openSession();
Transaction t = s.beginTransaction();
Broken b = new Fixed();
Modified: core/branches/Branch_3_2/test/org/hibernate/test/legacy/SQLLoaderTest.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/legacy/SQLLoaderTest.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/legacy/SQLLoaderTest.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -14,8 +14,6 @@
import org.hibernate.classic.Session;
import org.hibernate.dialect.HSQLDialect;
import org.hibernate.dialect.MySQLDialect;
-import org.hibernate.dialect.Oracle9Dialect;
-import org.hibernate.dialect.OracleDialect;
import org.hibernate.dialect.PostgreSQLDialect;
import org.hibernate.dialect.TimesTenDialect;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
@@ -47,7 +45,6 @@
}
public void testTS() throws Exception {
- if (getDialect() instanceof Oracle9Dialect) return;
Session session = openSession();
Transaction txn = session.beginTransaction();
Simple sim = new Simple();
@@ -150,7 +147,6 @@
s.close();
if ( getDialect() instanceof MySQLDialect ) return;
- if ( getDialect() instanceof OracleDialect ) return; // todo : this fails on Oracle8 also
s = openSession();
@@ -341,11 +337,7 @@
session = openSession();
Query query;
- if ( getDialect() instanceof OracleDialect ) {
- // Oracle8 does not support X/Open extension functions :)
- query = session.createSQLQuery("select identifier_column as {a.id}, clazz_discriminata as {a.class}, count_ as {a.count}, name as {a.name} from TA where upper(name) like upper('max')", "a", A.class);
- }
- else if( getDialect() instanceof TimesTenDialect) {
+ if( getDialect() instanceof TimesTenDialect) {
// TimesTen does not permit general expressions (like UPPER) in the second part of a LIKE expression,
// so we execute a similar test
query = session.createSQLQuery("select identifier_column as {a.id}, clazz_discriminata as {a.class}, count_ as {a.count}, name as {a.name} from TA where {fn ucase(name)} like 'MAX'", "a", A.class);
Modified: core/branches/Branch_3_2/test/org/hibernate/test/rowid/RowIdTest.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/rowid/RowIdTest.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/rowid/RowIdTest.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -10,8 +10,8 @@
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.engine.SessionFactoryImplementor;
-import org.hibernate.dialect.Oracle9Dialect;
import org.hibernate.dialect.Dialect;
+import org.hibernate.dialect.Oracle9iDialect;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
import org.hibernate.junit.functional.DatabaseSpecificFunctionalTestCase;
@@ -37,7 +37,7 @@
}
public boolean appliesTo(Dialect dialect) {
- return dialect instanceof Oracle9Dialect;
+ return dialect instanceof Oracle9iDialect;
}
public boolean createSchema() {
Modified: core/branches/Branch_3_2/test/org/hibernate/test/sql/check/OracleCheckStyleTest.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/sql/check/OracleCheckStyleTest.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/sql/check/OracleCheckStyleTest.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -3,7 +3,7 @@
import junit.framework.Test;
import org.hibernate.dialect.Dialect;
-import org.hibernate.dialect.Oracle9Dialect;
+import org.hibernate.dialect.Oracle9iDialect;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
/**
@@ -21,7 +21,7 @@
}
public boolean appliesTo(Dialect dialect) {
- return dialect instanceof Oracle9Dialect;
+ return dialect instanceof Oracle9iDialect;
}
public static Test suite() {
Modified: core/branches/Branch_3_2/test/org/hibernate/test/sql/hand/custom/oracle/OracleCustomSQLTest.java
===================================================================
--- core/branches/Branch_3_2/test/org/hibernate/test/sql/hand/custom/oracle/OracleCustomSQLTest.java 2008-11-05 01:39:44 UTC (rev 15510)
+++ core/branches/Branch_3_2/test/org/hibernate/test/sql/hand/custom/oracle/OracleCustomSQLTest.java 2008-11-05 01:46:59 UTC (rev 15511)
@@ -3,9 +3,8 @@
import junit.framework.Test;
-import org.hibernate.dialect.DataDirectOracle9Dialect;
import org.hibernate.dialect.Dialect;
-import org.hibernate.dialect.Oracle9Dialect;
+import org.hibernate.dialect.Oracle9iDialect;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
import org.hibernate.test.sql.hand.custom.CustomStoredProcTestSupport;
@@ -29,7 +28,7 @@
}
public boolean appliesTo(Dialect dialect) {
- return ( dialect instanceof Oracle9Dialect ) && !( dialect instanceof DataDirectOracle9Dialect );
+ return ( dialect instanceof Oracle9iDialect );
}
}
15 years, 5 months
Hibernate SVN: r15510 - in validator/trunk: hibernate-validator/src/main/java/org/hibernate/validation/impl and 1 other directories.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2008-11-04 20:39:44 -0500 (Tue, 04 Nov 2008)
New Revision: 15510
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintViolationImpl.java
validator/trunk/validation-api/src/main/java/javax/validation/ConstraintViolation.java
Log:
BVAL-60 ConstraintViolation points to ConstraintDescriptor
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java 2008-11-05 01:20:01 UTC (rev 15509)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java 2008-11-05 01:39:44 UTC (rev 15510)
@@ -186,7 +186,8 @@
leafBeanInstance,
value,
context.peekPropertyPath(), //FIXME use error.getProperty()
- context.getCurrentGroup()
+ context.getCurrentGroup(),
+ constraintDescriptor
);
context.addConstraintFailure( failingConstraintViolation );
}
@@ -319,7 +320,8 @@
object,
wrapper.value,
propertyIter.getOriginalProperty(), //FIXME use error.getProperty()
- group
+ group,
+ wrapper.descriptor
);
addFailingConstraint( failingConstraintViolations, failingConstraintViolation );
}
@@ -381,7 +383,8 @@
null,
object,
propertyIter.getOriginalProperty(), //FIXME use error.getProperty()
- ""
+ "",
+ constraintDescriptor
);
addFailingConstraint( failingConstraintViolations, failingConstraintViolation );
}
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintViolationImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintViolationImpl.java 2008-11-05 01:20:01 UTC (rev 15509)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintViolationImpl.java 2008-11-05 01:39:44 UTC (rev 15510)
@@ -20,6 +20,7 @@
import java.util.HashSet;
import java.util.Set;
import javax.validation.ConstraintViolation;
+import javax.validation.ConstraintDescriptor;
/**
* @author Emmanuel Bernard
@@ -33,9 +34,11 @@
private String propertyPath;
private HashSet<String> groups;
private Object leafBeanInstance;
+ private final ConstraintDescriptor constraintDescriptor;
- public ConstraintViolationImpl(String message, T rootBean, Class<T> beanClass, Object leafBeanInstance, Object value, String propertyPath, String group) {
+ public ConstraintViolationImpl(String message, T rootBean, Class<T> beanClass, Object leafBeanInstance, Object value,
+ String propertyPath, String group, ConstraintDescriptor constraintDescriptor) {
this.message = message;
this.rootBean = rootBean;
this.beanClass = beanClass;
@@ -44,6 +47,7 @@
groups = new HashSet<String>();
groups.add( group );
this.leafBeanInstance = leafBeanInstance;
+ this.constraintDescriptor = constraintDescriptor;
}
/**
@@ -92,6 +96,10 @@
return groups;
}
+ public ConstraintDescriptor getConstraintDescriptor() {
+ return this.constraintDescriptor;
+ }
+
public void addGroups(Set<String> groupSet) {
groups.addAll( groupSet );
}
Modified: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintViolation.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ConstraintViolation.java 2008-11-05 01:20:01 UTC (rev 15509)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ConstraintViolation.java 2008-11-05 01:39:44 UTC (rev 15510)
@@ -24,7 +24,6 @@
* well as the message describing the violation.
*
* @author Emmanuel Bernard
- * @todo add pointers to the metadata?
* @todo the rational behind rootBean and propertyPath is to keep the context available to the user
*/
public interface ConstraintViolation<T> {
@@ -71,4 +70,10 @@
* TODO: considering removal, if you think it's important, speak up
*/
Set<String> getGroups();
+
+ /**
+ * Constraint metadata reported to fail
+ * @return constraint metadata
+ */
+ ConstraintDescriptor getConstraintDescriptor();
}
15 years, 5 months
Hibernate SVN: r15509 - in validator/trunk: hibernate-validator/src/main/java/org/hibernate/validation/engine and 5 other directories.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2008-11-04 20:20:01 -0500 (Tue, 04 Nov 2008)
New Revision: 15509
Removed:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/HibernateValidatorBuilder.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorBuilderImpl.java
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ResourceBundleMessageResolver.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryBuilderImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java
validator/trunk/validation-api/src/main/java/javax/validation/MessageResolver.java
validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactory.java
validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java
validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/GenericBuilderFactory.java
validator/trunk/validation-api/src/main/java/javax/validation/spi/BootstrapState.java
validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidationProvider.java
validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java
Log:
BVAL-48 provide access to the default message resolver in ValidatorFactoryBuilder
BVAL-67 MessageResolver can accept a Locale, ValidatorFactory can provide the MessageResolver
Deleted: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/HibernateValidatorBuilder.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/HibernateValidatorBuilder.java 2008-11-04 23:09:33 UTC (rev 15508)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/HibernateValidatorBuilder.java 2008-11-05 01:20:01 UTC (rev 15509)
@@ -1,12 +0,0 @@
-package org.hibernate.validation;
-
-import javax.validation.ValidatorBuilder;
-
-/**
- * Uniquely identify Hibernate Validator in the Bean Validation bootstrap strategy
- * Also contains Hibernate Validator specific configurations
- *
- * @author Emmanuel Bernard
- */
-public interface HibernateValidatorBuilder extends ValidatorBuilder<HibernateValidatorBuilder> {
-}
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java 2008-11-04 23:09:33 UTC (rev 15508)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java 2008-11-05 01:20:01 UTC (rev 15509)
@@ -506,7 +506,7 @@
return metaDataProvider.getConstraintMetaDataList().size() > 0;
}
- public BeanDescriptor getConstraintsForBean() {
+ public BeanDescriptor getConstraintsForClass() {
return metaDataProvider.getBeanDescriptor();
}
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ResourceBundleMessageResolver.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ResourceBundleMessageResolver.java 2008-11-04 23:09:33 UTC (rev 15508)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ResourceBundleMessageResolver.java 2008-11-05 01:20:01 UTC (rev 15509)
@@ -107,7 +107,11 @@
return replace( message, constraintDescriptor.getParameters() );
}
+ public String interpolate(String message, ConstraintDescriptor constraintDescriptor, Object value, Locale locale) {
+ throw new UnsupportedOperationException( "Interpolation for Locale. Has to be done." );
+ }
+
private String replace(String message, Map<String, Object> parameters) {
Matcher matcher = messagePattern.matcher( message );
StringBuffer sb = new StringBuffer();
Deleted: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorBuilderImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorBuilderImpl.java 2008-11-04 23:09:33 UTC (rev 15508)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorBuilderImpl.java 2008-11-05 01:20:01 UTC (rev 15509)
@@ -1,116 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.validation.impl;
-
-import java.io.InputStream;
-import java.util.List;
-import javax.validation.ConstraintFactory;
-import javax.validation.MessageResolver;
-import javax.validation.ValidationException;
-import javax.validation.ValidationProviderResolver;
-import javax.validation.ValidatorBuilder;
-import javax.validation.ValidatorFactory;
-import javax.validation.bootstrap.DefaultValidationProviderResolver;
-import javax.validation.spi.ValidationProvider;
-import javax.validation.spi.ValidatorBuilderImplementor;
-import javax.validation.spi.BootstrapState;
-
-import org.hibernate.validation.HibernateValidatorBuilder;
-
-/**
- * @author Emmanuel Bernard
- */
-public class ValidatorBuilderImpl implements HibernateValidatorBuilder, ValidatorBuilderImplementor {
- private MessageResolver messageResolver = new ResourceBundleMessageResolver();
- private ConstraintFactory constraintFactory = new ConstraintFactoryImpl();
- private String configurationFile = "META-INF/validation.xml";
- private final ValidationProvider provider;
- private final ValidationProviderResolver providerResolver;
-
- public ValidatorBuilderImpl(BootstrapState state) {
- if (state.getValidationProviderResolver() == null) {
- this.providerResolver = new DefaultValidationProviderResolver();
- }
- else {
- this.providerResolver = state.getValidationProviderResolver();
- }
- this.provider = null;
- }
-
- public ValidatorBuilderImpl(ValidationProvider provider) {
- if ( provider == null ) {
- throw new ValidationException( "Assertion error: inconsistent ValidatorBuilderImpl construction");
- }
- this.provider = provider;
- this.providerResolver = null;
- }
-
- public ValidatorBuilderImpl messageResolver(MessageResolver resolver) {
- this.messageResolver = resolver;
- return this;
- }
-
- public ValidatorBuilderImpl constraintFactory(ConstraintFactory constraintFactory) {
- this.constraintFactory = constraintFactory;
- return this;
- }
-
- public ValidatorFactory build() {
- if ( isSpecificProvider() ) {
- return provider.buildValidatorFactory( this );
- }
- else {
- //read provider name from configuration
- Class<? extends ValidatorBuilder<?>> providerClass = null;
-
- if ( providerClass != null ) {
- for ( ValidationProvider provider : providerResolver.getValidationProviders() ) {
- if ( provider.isSuitable( providerClass ) ) {
- return provider.buildValidatorFactory( this );
- }
- }
- throw new ValidationException( "Unable to find provider: " + providerClass );
- }
- else {
- List<ValidationProvider> providers = providerResolver.getValidationProviders();
- assert providers.size() != 0; //I run therefore I am
- return providers.get( 0 ).buildValidatorFactory( this );
- }
- }
- }
-
- private boolean isSpecificProvider() {
- return provider != null;
- }
-
- public MessageResolver getMessageResolver() {
- return messageResolver;
- }
-
- public ConstraintFactory getConstraintFactory() {
- return constraintFactory;
- }
-
- public ValidatorBuilderImpl configure(InputStream stream) {
- return null; //To change body of implemented methods use File | Settings | File Templates.
- }
-
- public InputStream getConfigurationStream() {
- return null; //To change body of implemented methods use File | Settings | File Templates.
- }
-}
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryBuilderImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryBuilderImpl.java 2008-11-04 23:09:33 UTC (rev 15508)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryBuilderImpl.java 2008-11-05 01:20:01 UTC (rev 15509)
@@ -36,7 +36,8 @@
* @author Emmanuel Bernard
*/
public class ValidatorFactoryBuilderImpl implements HibernateValidatorFactoryBuilder, ValidatorFactoryConfiguration {
- private MessageResolver messageResolver = new ResourceBundleMessageResolver();
+ private final MessageResolver defaultMessageResolver = new ResourceBundleMessageResolver();
+ private MessageResolver messageResolver;
private ConstraintFactory constraintFactory = new ConstraintFactoryImpl();
private String configurationFile = "META-INF/validation.xml";
private final ValidationProvider provider;
@@ -50,6 +51,7 @@
this.providerResolver = state.getValidationProviderResolver();
}
this.provider = null;
+ this.messageResolver = defaultMessageResolver;
}
public ValidatorFactoryBuilderImpl(ValidationProvider provider) {
@@ -58,6 +60,7 @@
}
this.provider = provider;
this.providerResolver = null;
+ this.messageResolver = defaultMessageResolver;
}
public ValidatorFactoryBuilderImpl messageResolver(MessageResolver resolver) {
@@ -110,6 +113,10 @@
return null; //To change body of implemented methods use File | Settings | File Templates.
}
+ public MessageResolver getDefaultMessageResolver() {
+ return defaultMessageResolver;
+ }
+
public InputStream getConfigurationStream() {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java 2008-11-04 23:09:33 UTC (rev 15508)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ValidatorFactoryImpl.java 2008-11-05 01:20:01 UTC (rev 15509)
@@ -47,4 +47,12 @@
public <T> Validator<T> getValidator(Class<T> clazz) {
return new ValidatorImpl<T>( clazz, constraintFactory, messageResolver );
}
+
+ public <T> Validator<T> getValidator(Class<T> clazz, MessageResolver messageResolver) {
+ return new ValidatorImpl<T>( clazz, constraintFactory, messageResolver );
+ }
+
+ public MessageResolver getMessageResolver() {
+ return messageResolver;
+ }
}
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java 2008-11-04 23:09:33 UTC (rev 15508)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java 2008-11-05 01:20:01 UTC (rev 15509)
@@ -20,6 +20,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
+import java.util.Locale;
import javax.validation.Constraint;
import javax.validation.ConstraintDescriptor;
import javax.validation.ConstraintFactory;
@@ -116,6 +117,10 @@
public String interpolate(String message, ConstraintDescriptor constraintDescriptor, Object value) {
return "my custom message";
}
+
+ public String interpolate(String message, ConstraintDescriptor constraintDescriptor, Object value, Locale locale) {
+ throw new UnsupportedOperationException( "No specific locale is possible" );
+ }
}
);
factory = builder.build();
Modified: validator/trunk/validation-api/src/main/java/javax/validation/MessageResolver.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/MessageResolver.java 2008-11-04 23:09:33 UTC (rev 15508)
+++ validator/trunk/validation-api/src/main/java/javax/validation/MessageResolver.java 2008-11-05 01:20:01 UTC (rev 15509)
@@ -17,8 +17,10 @@
*/
package javax.validation;
+import java.util.Locale;
+
/**
- * Interpolate a given validation message.
+ * Interpolate a given constraint violation message.
*
* @author Emmanuel Bernard
* @author Hardy Ferentschik
@@ -26,12 +28,27 @@
public interface MessageResolver {
/**
* Interpolate the message from the constraint parameters and the actual validated object.
+ * The locale is defaulted according to the <code>MessageResolver</code> implementation
+ * See the implementation documentation for more detail.
*
* @param message The message to interpolate.
* @param constraintDescriptor The constraint descriptor.
- * @param value The actual validted object.
+ * @param value The object being validated
*
* @return Interpolated error message.
*/
String interpolate(String message, ConstraintDescriptor constraintDescriptor, Object value);
+
+ /**
+ * Interpolate the message from the constraint parameters and the actual validated object.
+ * The Locale used is provided as a parameter
+ *
+ * @param message The message to interpolate.
+ * @param constraintDescriptor The constraint descriptor.
+ * @param value The object being validated
+ * @param locale the locale targeted for the message
+ *
+ * @return Interpolated error message.
+ */
+ String interpolate(String message, ConstraintDescriptor constraintDescriptor, Object value, Locale locale);
}
Modified: validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactory.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactory.java 2008-11-04 23:09:33 UTC (rev 15508)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactory.java 2008-11-05 01:20:01 UTC (rev 15509)
@@ -28,7 +28,28 @@
/**
* return an initialized Validator instance for the specific class.
* Validator instances can be pooled and shared by the implementation
- * In this scenario, the implementation must return thread-safe Validator implementations
+ *
+ * @param clazz the object class the validator validates
*/
<T> Validator<T> getValidator(Class<T> clazz);
+
+ /**
+ * return an initialized Validator instance for the specific class.
+ * Validator instances can be pooled and shared by the implementation
+ *
+ * The returned Validator instance must use the MessageResolver instance
+ * passed as a parameter to resolve error messages.
+ *
+ * @param clazz the object class the validator validates
+ */
+ <T> Validator<T> getValidator(Class<T> clazz, MessageResolver messageResolver);
+
+ /**
+ * Returns the MessageResolver instance configured at initialization time
+ * for the ValidatorFactory
+ * This is the instance used by #getValidator(Class)
+ *
+ * @return MessageResolver instance
+ */
+ MessageResolver getMessageResolver();
}
Modified: validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java 2008-11-04 23:09:33 UTC (rev 15508)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ValidatorFactoryBuilder.java 2008-11-05 01:20:01 UTC (rev 15509)
@@ -78,6 +78,16 @@
T configure(InputStream stream);
/**
+ * Return an implementation of the MessageResolver interface following the
+ * default MessageREsolver defined in the specification:
+ * - use the ValidationMessages resource bundle to load keys
+ * - use Locale.getDefault()
+ *
+ * @return default MessageResolver implementation compliant with the specification
+ */
+ MessageResolver getDefaultMessageResolver();
+
+ /**
* Build a ValidatorFactory implementation.
*
* @return ValidatorFactory
Modified: validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/GenericBuilderFactory.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/GenericBuilderFactory.java 2008-11-04 23:09:33 UTC (rev 15508)
+++ validator/trunk/validation-api/src/main/java/javax/validation/bootstrap/GenericBuilderFactory.java 2008-11-05 01:20:01 UTC (rev 15509)
@@ -13,7 +13,7 @@
/**
* Defines the provider resolution strategy.
* This resolver returns the list of providers evaluated
- * to build the ValidationBuilder
+ * to build the ValidatorFactoryBuilder
* <p/>
* If no resolver is defined, the default ValidationProviderResolver
* implementation is used.
@@ -24,7 +24,7 @@
/**
* Returns a generic ValidatorFactoryBuilder implementation.
- * At this stage the provider used to build the ValidationFactory is not defined.
+ * At this stage the provider used to build the ValidatorFactory is not defined.
* <p/>
* The ValidatorFactoryBuilder implementation is provided by the first provider returned
* by the ValidationProviderResolver strategy.
Modified: validator/trunk/validation-api/src/main/java/javax/validation/spi/BootstrapState.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/spi/BootstrapState.java 2008-11-04 23:09:33 UTC (rev 15508)
+++ validator/trunk/validation-api/src/main/java/javax/validation/spi/BootstrapState.java 2008-11-05 01:20:01 UTC (rev 15509)
@@ -3,7 +3,7 @@
import javax.validation.ValidationProviderResolver;
/**
- * Defines the state used to bootstrap the ValidationBuilder
+ * Defines the state used to bootstrap the ValidatorFactoryBuilder
*
* @author Emmanuel Bernard
*/
Modified: validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidationProvider.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidationProvider.java 2008-11-04 23:09:33 UTC (rev 15508)
+++ validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidationProvider.java 2008-11-05 01:20:01 UTC (rev 15509)
@@ -67,7 +67,7 @@
ValidatorFactoryBuilder<?> createGenericValidatorFactoryBuilder(BootstrapState state);
/**
- * Build a ValidatorFactory using the current provider implementation. The ValidationFactory
+ * Build a ValidatorFactory using the current provider implementation. The ValidatorFactory
* is assembled and follow the configuration passed using ValidatorFactoryConfiguration.
* <p>
* The returned ValidatorFactory is properly initialized and ready for use.
Modified: validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java 2008-11-04 23:09:33 UTC (rev 15508)
+++ validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorFactoryConfiguration.java 2008-11-05 01:20:01 UTC (rev 15509)
@@ -24,7 +24,7 @@
/**
* Contract between a <code>ValidatorFactoryBuilder</code> and a </code>ValidatorProvider</code> to create
* a <code>ValidatorFactory</code>.
- * The configuration artifacts provided to the <code>ValidationBuilder</code> are passed along.
+ * The configuration artifacts provided to the <code>ValidatorFactoryBuilder</code> are passed along.
*
* @author Emmanuel Bernard
* @author Hardy Ferentschik
15 years, 5 months
Hibernate SVN: r15508 - in validator/trunk/validation-api/src/main/java/javax/validation: spi and 1 other directory.
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2008-11-04 18:09:33 -0500 (Tue, 04 Nov 2008)
New Revision: 15508
Removed:
validator/trunk/validation-api/src/main/java/javax/validation/ValidatorBuilder.java
validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorBuilderImplementor.java
Log:
stupid IDEA go delete those files, damn it.
Deleted: validator/trunk/validation-api/src/main/java/javax/validation/ValidatorBuilder.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ValidatorBuilder.java 2008-11-04 22:18:48 UTC (rev 15507)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ValidatorBuilder.java 2008-11-04 23:09:33 UTC (rev 15508)
@@ -1,86 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package javax.validation;
-
-import java.io.InputStream;
-
-/**
- * Receives configuration information, selects the appropriate
- * Bean Validation provider and build the appropriate
- * ValidatorFactory.
- * <p/>
- * Usage:
- * <pre>
- * ValidatorBuilder<?> validatorBuilder = //provided by one of the Validation bootstrap methods
- * ValidatorFactory = validatorBuilder
- * .messageResolver( new CustomMessageResolver() )
- * .build();
- * </pre>
- * <p/>
- * The ValidationProviderResolver is specified at ValidatorBuilder time (see {@link javax.validation.spi.ValidationProvider}).
- * If none is explicitely requested, the default ValidationProviderResolver is used.
- * <p/>
- * The provider is selected in the following way:
- * - if a specific ValidatorBuilder subclass is requested programmatically using Validation.builderType(),
- * find the first provider matching it
- * - if a specific ValidatorBuilder subclass is defined in META-INF/validation.xml,
- * find the first provider matching it
- * - otherwise, use the first provider returned by the ValidationProviderResolver
- * <p/>
- * Implementations are not meant to be thread safe
- *
- * @author Emmanuel Bernard
- */
-public interface ValidatorBuilder<T extends ValidatorBuilder> {
- /**
- * Defines the message resolver used. Has priority over the configuration based message resolver.
- *
- * @param resolver message resolver implementation.
- *
- * @return <code>this</code> following the chaining method pattern.
- */
- T messageResolver(MessageResolver resolver);
-
- /**
- * Defines the constraint factory. Has priority over the configuration based constraint factory.
- *
- * @param constraintFactory constraint factory inmplementation.
- *
- * @return <code>this</code> following the chaining method pattern.
- */
- T constraintFactory(ConstraintFactory constraintFactory);
-
- /**
- * Configure the ValidatorFactory based on <code>stream</code>
- * If not specified, META-INF/validation.xml is used
- * <p/>
- * The stream should be closed by the client API after the ValidatorFactory has been returned
- *
- * @param stream configuration stream.
- *
- * @return <code>this</code> following the chaining method pattern.
- */
- T configure(InputStream stream);
-
- /**
- * Build a ValidatorFactory implementation.
- *
- * @return ValidatorFactory
- */
- ValidatorFactory build();
-}
Deleted: validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorBuilderImplementor.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorBuilderImplementor.java 2008-11-04 22:18:48 UTC (rev 15507)
+++ validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidatorBuilderImplementor.java 2008-11-04 23:09:33 UTC (rev 15508)
@@ -1,56 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package javax.validation.spi;
-
-import java.io.InputStream;
-import javax.validation.ConstraintFactory;
-import javax.validation.MessageResolver;
-
-/**
- * Contract between a <code>ValidationBuilder</code> and a </code>ValidatorProvider</code> to create
- * a <code>ValidatorFactory</code>.
- * The configuration artifacts provided to the <code>ValidationBuilder</code> are passed along.
- *
- * @author Emmanuel Bernard
- * @author Hardy Ferentschik
- */
-public interface ValidatorBuilderImplementor {
- /**
- * Message resolver as defined by the client programmatically
- * or null if undefined.
- *
- * @return message provider instance or null if not defined
- */
- MessageResolver getMessageResolver();
-
- /**
- * Returns the configuration stream defined by the client programmatically
- * or null if undefined.
- *
- * @return the configuration input stream or null
- */
- InputStream getConfigurationStream();
-
- /**
- * Defines the constraint implementation factory as defined by the client programmatically
- * or null if undefined
- *
- * @return factory instance or null if not defined
- */
- ConstraintFactory getConstraintFactory();
-}
15 years, 5 months