package de.juplo.plugins.hibernate4;
-import java.lang.reflect.Method;
-import java.util.Collection;
-import java.util.Properties;
+import javax.validation.Validation;
+
import org.hibernate.cfg.Configuration;
+import org.hibernate.cfg.beanvalidation.TypeSafeActivatorAccessor;
import org.hibernate.dialect.Dialect;
import org.hibernate.metamodel.source.MappingException;
* SchemaExport, some fancy subclassing is needed to invoke the integration
* at the right time.
* @author Mark Robinson <mark@mrobinson.ca>
+ * @author Frank Schimmel <frank.schimmel@cm4all.com>
*/
public class ValidationConfiguration extends Configuration
{
- Class dialectClass;
+ private static final long serialVersionUID = 1L;
- public ValidationConfiguration(String dialectClass)
- throws
- ClassNotFoundException
- {
- this.dialectClass = Class.forName(dialectClass);
- }
@Override
protected void secondPassCompile() throws MappingException
try
{
- /** Thank you, hibernate folks, for making this useful class package private ... */
- Method applyDDL =
- Class
- .forName("org.hibernate.cfg.beanvalidation.TypeSafeActivator")
- .getMethod(
- "applyRelationalConstraints",
- Collection.class,
- Properties.class,
- Dialect.class
- );
- applyDDL.setAccessible(true);
- applyDDL.invoke(
- null,
+ TypeSafeActivatorAccessor.applyRelationalConstraints(
+ Validation.buildDefaultValidatorFactory(),
classes.values(),
getProperties(),
- dialectClass.newInstance()
+ ((Class<Dialect>)Class.forName(getProperty(Hbm2DdlMojo.DIALECT))).newInstance()
);
}
catch (Exception e)
throw new RuntimeException(e);
}
}
+
+ public String getTypeDefs()
+ {
+ return typeDefs.entrySet().toString();
+ }
}