[hibernate-commits] Hibernate SVN: r15608 - in branches/Branch_3_2/HibernateExt/tools/src: java/org/hibernate/tool and 3 other directories.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Mon Nov 24 11:27:32 EST 2008
Author: max.andersen at jboss.com
Date: 2008-11-24 11:27:32 -0500 (Mon, 24 Nov 2008)
New Revision: 15608
Modified:
branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/DefaultReverseEngineeringStrategy.java
branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/ReverseEngineeringSettings.java
branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/Version.java
branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/ant/JDBCConfigurationTask.java
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/hbm2hbmxml/OneToOneTest.java
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/OneToOneTest.java
Log:
HBX-524 one-to-one
* settings added to have eclipse support detect-one-to-one
* ant support detect-one-to-one
* updated tests to trigger found JPA gen bug
Modified: branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/DefaultReverseEngineeringStrategy.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/DefaultReverseEngineeringStrategy.java 2008-11-24 15:46:29 UTC (rev 15607)
+++ branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/DefaultReverseEngineeringStrategy.java 2008-11-24 16:27:32 UTC (rev 15608)
@@ -231,9 +231,10 @@
public boolean isOneToOne(ForeignKey foreignKey) {
if(settings.getDetectOneToOne()) {
+ // add support for non-PK associations
List fkColumns = foreignKey.getColumns();
List pkForeignTableColumns = null;
-
+
if (foreignKey.getTable().hasPrimaryKey())
pkForeignTableColumns = foreignKey.getTable().getPrimaryKey().getColumns();
Modified: branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/ReverseEngineeringSettings.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/ReverseEngineeringSettings.java 2008-11-24 15:46:29 UTC (rev 15607)
+++ branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/ReverseEngineeringSettings.java 2008-11-24 16:27:32 UTC (rev 15608)
@@ -74,6 +74,11 @@
return detectManyToMany;
}
+ public ReverseEngineeringSettings setDetectOneToOne(boolean b) {
+ this.detectOneToOne = b;
+ return this;
+ }
+
public boolean getDetectOneToOne() {
return detectOneToOne;
}
Modified: branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/Version.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/Version.java 2008-11-24 15:46:29 UTC (rev 15607)
+++ branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/Version.java 2008-11-24 16:27:32 UTC (rev 15608)
@@ -5,7 +5,7 @@
final public class Version {
- public static final String VERSION = "3.2.2.GA";
+ public static final String VERSION = "3.2.4.CR1";
private static final Version instance = new Version();
Modified: branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/ant/JDBCConfigurationTask.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/ant/JDBCConfigurationTask.java 2008-11-24 15:46:29 UTC (rev 15607)
+++ branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/ant/JDBCConfigurationTask.java 2008-11-24 16:27:32 UTC (rev 15608)
@@ -24,13 +24,14 @@
* @author <a href='mailto:the_mindstorm at evolva.ro'>Alexandru Popescu</a>
*/
public class JDBCConfigurationTask extends ConfigurationTask {
- //not exposed here.
+ //not expfosed here.
private boolean preferBasicCompositeIds = true;
private String reverseEngineeringStrategyClass;
private String packageName;
private Path revengFiles;
+ private boolean detectOneToOne = true;
private boolean detectManyToMany = true;
private boolean detectOptimisticLock = true;
@@ -71,6 +72,7 @@
ReverseEngineeringSettings qqsettings =
new ReverseEngineeringSettings(strategy).setDefaultPackageName(packageName)
.setDetectManyToMany( detectManyToMany )
+ .setDetectOneToOne( detectOneToOne )
.setDetectOptimisticLock( detectOptimisticLock );
defaultStrategy.setSettings(qqsettings);
@@ -98,6 +100,10 @@
preferBasicCompositeIds = b;
}
+ public void setDetectOneToOne(boolean b) {
+ detectOneToOne = b;
+ }
+
public void setDetectManyToMany(boolean b) {
detectManyToMany = b;
}
Modified: branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/hbm2hbmxml/OneToOneTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/hbm2hbmxml/OneToOneTest.java 2008-11-24 15:46:29 UTC (rev 15607)
+++ branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/hbm2hbmxml/OneToOneTest.java 2008-11-24 16:27:32 UTC (rev 15608)
@@ -20,11 +20,15 @@
import org.dom4j.XPath;
import org.dom4j.io.SAXReader;
import org.hibernate.cfg.Configuration;
+import org.hibernate.cfg.Environment;
import org.hibernate.tool.NonReflectiveTestCase;
+import org.hibernate.tool.hbm2ddl.SchemaValidator;
import org.hibernate.tool.hbm2x.Exporter;
import org.hibernate.tool.hbm2x.HibernateMappingExporter;
import org.hibernate.util.DTDEntityResolver;
+
+
public class OneToOneTest extends NonReflectiveTestCase {
private Exporter hbmexporter;
@@ -60,6 +64,7 @@
cfg.addFile(new File(getOutputDir(), getBaseForMappings() + "Address.hbm.xml"));
cfg.buildMappings();
+
}
Modified: branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/OneToOneTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/OneToOneTest.java 2008-11-24 15:46:29 UTC (rev 15607)
+++ branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/OneToOneTest.java 2008-11-24 16:27:32 UTC (rev 15608)
@@ -24,6 +24,7 @@
import org.hibernate.mapping.Property;
import org.hibernate.mapping.SimpleValue;
import org.hibernate.tool.JDBCMetaDataBinderTestCase;
+import org.hibernate.tool.hbm2ddl.SchemaValidator;
import org.hibernate.tool.hbm2x.HibernateMappingExporter;
import org.hibernate.tool.hbm2x.POJOExporter;
import org.hibernate.tool.test.TestHelper;
@@ -171,9 +172,10 @@
public void testBuildMappings() {
localCfg.buildMappings();
+
}
- public void testGenerateMappingAndReadable() {
+ public void testGenerateMappingAndReadable() throws MalformedURLException {
cfg.buildMappings();
@@ -186,7 +188,27 @@
assertFileAndExists( new File(getOutputDir(), "MultiPerson.hbm.xml") );
assertEquals(4, getOutputDir().listFiles().length);
+
+ POJOExporter exporter = new POJOExporter(cfg, getOutputDir() );
+ exporter.setTemplatePath(new String[0]);
+ exporter.getProperties().setProperty("ejb3", "false");
+ exporter.getProperties().setProperty("jdk5", "false");
+ exporter.start();
+ ArrayList list = new ArrayList();
+ List jars = new ArrayList();
+ addAnnotationJars(jars);
+ TestHelper.compile(
+ getOutputDir(), getOutputDir(), TestHelper.visitAllFiles( getOutputDir(), list ), "1.5",
+ TestHelper.buildClasspath( jars )
+ );
+
+ URL[] urls = new URL[] { getOutputDir().toURL() };
+ ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
+ URLClassLoader ucl = new URLClassLoader(urls, oldLoader );
+ try {
+ Thread.currentThread().setContextClassLoader(ucl);
+
Configuration configuration = new Configuration()
.addFile( new File(getOutputDir(), "Person.hbm.xml") )
.addFile( new File(getOutputDir(), "AddressPerson.hbm.xml") )
@@ -194,7 +216,11 @@
.addFile( new File(getOutputDir(), "MultiPerson.hbm.xml"));
configuration.buildMappings();
-
+
+ new SchemaValidator(configuration).validate();
+ } finally {
+ Thread.currentThread().setContextClassLoader(oldLoader);
+ }
}
public void testGenerateAnnotatedClassesAndReadable() throws MappingException, ClassNotFoundException, MalformedURLException {
@@ -222,13 +248,15 @@
TestHelper.buildClasspath( jars )
);
URL[] urls = new URL[] { getOutputDir().toURL() };
- URLClassLoader ucl = new URLClassLoader(urls, Thread.currentThread().getContextClassLoader() );
+ ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
+ URLClassLoader ucl = new URLClassLoader(urls, oldLoader );
Class personClass = ucl.loadClass("Person");
Class multiPersonClass = ucl.loadClass("MultiPerson");
Class addressMultiPerson = ucl.loadClass("AddressMultiPerson");
Class addressMultiPersonId = ucl.loadClass("AddressMultiPersonId");
Class addressPerson = ucl.loadClass("AddressPerson");
Class multiPersonIdClass = ucl.loadClass("MultiPersonId");
+ try {
Thread.currentThread().setContextClassLoader(ucl);
AnnotationConfiguration configuration = new AnnotationConfiguration();
configuration.addAnnotatedClass(personClass)
@@ -239,6 +267,10 @@
.addAnnotatedClass(multiPersonIdClass);
configuration.buildMappings();
+ new SchemaValidator(configuration).validate();
+ } finally {
+ Thread.currentThread().setContextClassLoader(oldLoader);
+ }
}
More information about the hibernate-commits
mailing list