From: <hib...@li...> - 2006-02-28 14:01:02
|
Author: max...@jb... Date: 2006-02-28 09:00:48 -0500 (Tue, 28 Feb 2006) New Revision: 9513 Added: trunk/HibernateExt/tools/lib/testlibs/jboss-annotations-ejb3.jar Modified: trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/Cfg2JavaTool.java trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/POJOExporter.java trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/BasicPOJOClass.java trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/EntityPOJOClass.java trunk/HibernateExt/tools/src/templates/pojo/PojoFields.ftl trunk/HibernateExt/tools/src/test/org/hibernate/tool/ant/HibernateToolTest.java trunk/HibernateExt/tools/src/test/org/hibernate/tool/ant/SeamAntTest.java trunk/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Constructors.hbm.xml trunk/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Customer.hbm.xml trunk/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2JavaTest.java trunk/HibernateExt/tools/src/test5.0/org/hibernate/tool/hbm2x/Hbm2JavaEjb3ForJDK50Test.java trunk/HibernateExt/tools/src/testsupport/anttest-build.xml trunk/HibernateExt/tools/src/testsupport/seamtest-build.xml Log: (basic) relationship seam generation test HBX-611 hbm2java breaks on composite-element and jdk5=true HBX-607 a formula property is added to the full constructor of the generated class templates cleanup Added: trunk/HibernateExt/tools/lib/testlibs/jboss-annotations-ejb3.jar =================================================================== (Binary files differ) Property changes on: trunk/HibernateExt/tools/lib/testlibs/jboss-annotations-ejb3.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/Cfg2JavaTool.java =================================================================== --- trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/Cfg2JavaTool.java 2006-02-28 13:56:39 UTC (rev 9512) +++ trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/Cfg2JavaTool.java 2006-02-28 14:00:48 UTC (rev 9513) @@ -17,6 +17,7 @@ import org.apache.commons.logging.LogFactory; import org.hibernate.Hibernate; import org.hibernate.HibernateException; +import org.hibernate.cfg.reveng.ReverseEngineeringStrategyUtil; import org.hibernate.mapping.Array; import org.hibernate.mapping.Collection; import org.hibernate.mapping.Component; @@ -289,7 +290,10 @@ } private String getJavaTypeName(Value value, boolean preferRawTypeNames) { - + if ( value instanceof Component) { + // composite-element breaks without it. + return ((Component)value).getComponentClassName(); + } if ( value instanceof ToOne ) { return ( (ToOne) value ).getReferencedEntityName(); // should get the cfg and lookup the persistenclass. } @@ -453,5 +457,8 @@ } - + + public String simplePluralize(String str) { + return ReverseEngineeringStrategyUtil.simplePluralize(str); + } } Modified: trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/POJOExporter.java =================================================================== --- trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/POJOExporter.java 2006-02-28 13:56:39 UTC (rev 9512) +++ trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/POJOExporter.java 2006-02-28 14:00:48 UTC (rev 9513) @@ -16,7 +16,6 @@ public class POJOExporter extends GenericExporter { private static final String POJO_JAVACLASS_VM = "Pojo"; - private static final Log log = LogFactory.getLog(POJOExporter.class); private boolean ejb3; private boolean jdk5; Modified: trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/BasicPOJOClass.java =================================================================== --- trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/BasicPOJOClass.java 2006-02-28 13:56:39 UTC (rev 9512) +++ trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/BasicPOJOClass.java 2006-02-28 14:00:48 UTC (rev 9513) @@ -6,6 +6,7 @@ import java.util.List; import java.util.Map; +import org.hibernate.cfg.reveng.ReverseEngineeringStrategyUtil; import org.hibernate.mapping.Collection; import org.hibernate.mapping.Column; import org.hibernate.mapping.Component; @@ -505,6 +506,14 @@ return beanCapitalize( p.getName() ); } + + // get the "opposite" collectionnae for a property. Currently a "hack" that just uses the same naming algorithm as in reveng, will fail on more general models! + public String getCollectionNameFor(Property property) { + String str = getPropertyName(property); + return ReverseEngineeringStrategyUtil.simplePluralize(str); + } + + /** * foo -> Foo * FOo -> FOo Modified: trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/EntityPOJOClass.java =================================================================== --- trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/EntityPOJOClass.java 2006-02-28 13:56:39 UTC (rev 9512) +++ trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/EntityPOJOClass.java 2006-02-28 14:00:48 UTC (rev 9513) @@ -14,6 +14,7 @@ import org.hibernate.id.PersistentIdentifierGenerator; import org.hibernate.mapping.Column; import org.hibernate.mapping.Component; +import org.hibernate.mapping.Formula; import org.hibernate.mapping.KeyValue; import org.hibernate.mapping.PersistentClass; import org.hibernate.mapping.Property; @@ -656,16 +657,38 @@ continue; // dont add non assigned identifiers } else if(field.equals(pc.getVersion())) { continue; // version prop + } else if(field.isBackRef()) { + continue; + } else if(isFormula(field)) { + continue; } else { result.add( field ); } - - } return result; } + private boolean isFormula(Property field) { + Value value = field.getValue(); + boolean foundFormula = false; + + if(value!=null && value.getColumnSpan()>0) { + Iterator columnIterator = value.getColumnIterator(); + while ( columnIterator.hasNext() ) { + Selectable element = (Selectable) columnIterator.next(); + if(!(element instanceof Formula)) { + return false; + } else { + foundFormula = true; + } + } + } else { + return false; + } + return foundFormula; + } + public List getPropertyClosureForSuperclassFullConstructor() { return getPropertyClosureForSuperclassFullConstructor(clazz); } Modified: trunk/HibernateExt/tools/src/templates/pojo/PojoFields.ftl =================================================================== --- trunk/HibernateExt/tools/src/templates/pojo/PojoFields.ftl 2006-02-28 13:56:39 UTC (rev 9512) +++ trunk/HibernateExt/tools/src/templates/pojo/PojoFields.ftl 2006-02-28 14:00:48 UTC (rev 9513) @@ -4,4 +4,5 @@ ${pojo.getFieldJavaDoc(field, 0)} */ </#if> ${pojo.getFieldModifiers(field)} ${pojo.getJavaTypeName(field, jdk5)} ${field.name}<#if pojo.hasFieldInitializor(field, jdk5)> = ${pojo.getFieldInitialization(field, jdk5)}</#if>; -</#if></#foreach> \ No newline at end of file +</#if> +</#foreach> Modified: trunk/HibernateExt/tools/src/test/org/hibernate/tool/ant/HibernateToolTest.java =================================================================== --- trunk/HibernateExt/tools/src/test/org/hibernate/tool/ant/HibernateToolTest.java 2006-02-28 13:56:39 UTC (rev 9512) +++ trunk/HibernateExt/tools/src/test/org/hibernate/tool/ant/HibernateToolTest.java 2006-02-28 14:00:48 UTC (rev 9513) @@ -61,9 +61,9 @@ executeTarget("testantannotationcfg"); } - /*public void testHbm2JavaConfiguration() { + public void testHbm2JavaConfiguration() { executeTarget("testanthbm2java"); - }*/ + } public void testHbm2JavaEJB3Configuration() { executeTarget("testantejb3hbm2java"); Modified: trunk/HibernateExt/tools/src/test/org/hibernate/tool/ant/SeamAntTest.java =================================================================== --- trunk/HibernateExt/tools/src/test/org/hibernate/tool/ant/SeamAntTest.java 2006-02-28 13:56:39 UTC (rev 9512) +++ trunk/HibernateExt/tools/src/test/org/hibernate/tool/ant/SeamAntTest.java 2006-02-28 14:00:48 UTC (rev 9513) @@ -24,8 +24,6 @@ * */ public class SeamAntTest extends BuildFileTestCase { - - private String property; public SeamAntTest(String name) { super(name); @@ -43,7 +41,7 @@ configureProject("src/testsupport/seamtest-build.xml"); } - public void testConfiguration() { + public void testCrudGeneration() { executeTarget("generate-crud"); File baseDir = new File(project.getProperty("destdir")); @@ -75,6 +73,7 @@ List jars = new ArrayList(); jars.add("ejb3-persistence.jar"); jars.add("jboss-ejb3x.jar"); + jars.add("jboss-annotations-ejb3.jar"); jars.add("hibernate-annotations.jar"); jars.add("jboss-seam.jar"); jars.add("myfaces-api.jar"); Modified: trunk/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Constructors.hbm.xml =================================================================== --- trunk/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Constructors.hbm.xml 2006-02-28 13:56:39 UTC (rev 9512) +++ trunk/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Constructors.hbm.xml 2006-02-28 14:00:48 UTC (rev 9513) @@ -36,6 +36,9 @@ <property name="brand" type="string" not-null="true"/> + <!-- HBX-607, formula not in full constructor --> + <property name="value" type="string" formula="42"/> + <set name="employees"> <key> <column name="ceo_id"/> Modified: trunk/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Customer.hbm.xml =================================================================== --- trunk/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Customer.hbm.xml 2006-02-28 13:56:39 UTC (rev 9512) +++ trunk/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Customer.hbm.xml 2006-02-28 14:00:48 UTC (rev 9513) @@ -70,9 +70,10 @@ <property name="postcode" type="string" column="postcode" not-null="true" /> </composite-element> </set> - --> + --> <component name="test" class="FatherComponent"> + <parent name="testParent"/> <property name="testattrib" type="string" /> <component name="child" class="ChildComponent"> <property name="childattrib" type="string" /> Modified: trunk/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2JavaTest.java =================================================================== --- trunk/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2JavaTest.java 2006-02-28 13:56:39 UTC (rev 9512) +++ trunk/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Hbm2JavaTest.java 2006-02-28 14:00:48 UTC (rev 9513) @@ -17,6 +17,7 @@ import org.hibernate.mapping.Property; import org.hibernate.mapping.RootClass; import org.hibernate.mapping.SingleTableSubclass; +import org.hibernate.mapping.Value; import org.hibernate.tool.NonReflectiveTestCase; import org.hibernate.tool.hbm2x.pojo.BasicPOJOClass; import org.hibernate.tool.hbm2x.pojo.ImportContext; @@ -84,6 +85,14 @@ TestHelper.deleteDir( file ); } + /** HBX-606 */ + public void testParentComponentFailureExpected() { + + File file = new File( getOutputDir(), "org/hibernate/tool/hbm2x/FatherComponent.java" ); + + assertEquals("test", findFirstString("testParent", file)); + } + public void testNoVelocityLeftOvers() { assertEquals( null, findFirstString( "$", new File( getOutputDir(), Modified: trunk/HibernateExt/tools/src/test5.0/org/hibernate/tool/hbm2x/Hbm2JavaEjb3ForJDK50Test.java =================================================================== --- trunk/HibernateExt/tools/src/test5.0/org/hibernate/tool/hbm2x/Hbm2JavaEjb3ForJDK50Test.java 2006-02-28 13:56:39 UTC (rev 9512) +++ trunk/HibernateExt/tools/src/test5.0/org/hibernate/tool/hbm2x/Hbm2JavaEjb3ForJDK50Test.java 2006-02-28 14:00:48 UTC (rev 9513) @@ -1,4 +1,3 @@ -//$Id$ package org.hibernate.tool.hbm2x; import java.io.File; Modified: trunk/HibernateExt/tools/src/testsupport/anttest-build.xml =================================================================== --- trunk/HibernateExt/tools/src/testsupport/anttest-build.xml 2006-02-28 13:56:39 UTC (rev 9512) +++ trunk/HibernateExt/tools/src/testsupport/anttest-build.xml 2006-02-28 14:00:48 UTC (rev 9513) @@ -41,7 +41,6 @@ <hbm2ddl drop="false" create="true" export="false" outputfilename="onlycreate.sql" format="true"/> <hbm2ddl drop="true" create="false" export="false" outputfilename="onlydrop.sql" format="true"/> <hbm2ddl drop="true" create="true" export="false" outputfilename="dropandcreate.sql" format="true"/> - <hbm2ddl update="true" outputfilename="updateonly.sql" format="true"/> <hbm2doc/> </hibernatetool> Modified: trunk/HibernateExt/tools/src/testsupport/seamtest-build.xml =================================================================== --- trunk/HibernateExt/tools/src/testsupport/seamtest-build.xml 2006-02-28 13:56:39 UTC (rev 9512) +++ trunk/HibernateExt/tools/src/testsupport/seamtest-build.xml 2006-02-28 14:00:48 UTC (rev 9513) @@ -36,9 +36,10 @@ userid="sa" password="" > - drop table ISSUE if exists - create table ISSUE ( ID int not null, DATETIME timestamp, TEXT varchar(200), USER varchar(30), primary key (ID) ); --- CREATE TABLE comments ( id int not null, datetime timestamp, text varchar(200), user varchar(30), primary key (id) ); + drop table comment if exists; + drop table ISSUE if exists; + create table ISSUE ( ID int not null, DATETIME timestamp, TEXT varchar(200), USER varchar(30), primary key (ID) ); + CREATE TABLE comment ( id int not null, issue_id int not null, datetime timestamp, text varchar(200), user varchar(30), primary key (id), constraint issue_comments foreign key (issue_id) references ISSUE ); SHUTDOWN; </sql> </target> |