[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