Index: andromda-hibernate/src/java/org/andromda/cartridges/hibernate/metafacades/HibernateAssociationEndLogicImpl.java =================================================================== RCS file: /cvsroot/andromda/cartridges/andromda-hibernate/src/java/org/andromda/cartridges/hibernate/metafacades/HibernateAssociationEndLogicImpl.java,v retrieving revision 1.44 diff -u -r1.44 HibernateAssociationEndLogicImpl.java --- andromda-hibernate/src/java/org/andromda/cartridges/hibernate/metafacades/HibernateAssociationEndLogicImpl.java 16 Jun 2005 17:48:33 -0000 1.44 +++ andromda-hibernate/src/java/org/andromda/cartridges/hibernate/metafacades/HibernateAssociationEndLogicImpl.java 24 Aug 2005 18:39:49 -0000 @@ -6,6 +6,7 @@ import org.andromda.cartridges.hibernate.HibernateProfile; import org.andromda.metafacades.uml.ClassifierFacade; import org.andromda.metafacades.uml.EntityAssociationEnd; +import org.andromda.metafacades.uml.NameMasker; import org.andromda.metafacades.uml.TypeMappings; import org.andromda.metafacades.uml.UMLProfile; import org.apache.commons.lang.ObjectUtils; @@ -331,6 +332,14 @@ inverse = compareTo < 0; } + + if (inverse && this.isBidirectionalOrderedListChild() && this.isUsingHibernate3()) + { // A special case - when using ver 3 of hibernate for a bi-dir + // ordered list, "inverse" should be set to FALSE, rather than + // the usual TRUE. See http://www.hibernate.org/193.html + inverse = false; + } + } return inverse; @@ -637,4 +646,66 @@ { return StringUtils.trimToEmpty(ObjectUtils.toString(this.getConfiguredProperty(HIBERNATE_COMPOSITION_CASCADE))); } + + /** + * @see org.andromda.cartridges.hibernate.metafacades.isBidirectionalOrderedListParent() + */ + protected boolean handleIsBidirectionalOrderedListParent() + { + boolean isBiDirectional = this.isNavigable() && this.getOtherEnd().isNavigable(); + if (isBiDirectional && + this.isOne2Many() && + (this.getOtherEnd() instanceof HibernateAssociationEnd)) + { + HibernateAssociationEnd otherEnd = (HibernateAssociationEnd)this.getOtherEnd(); + + return otherEnd.getCollectionType().equals(COLLECTION_TYPE_LIST) && + otherEnd.isIndexedCollection(); + } + else + return false; + } + + /** + * @see org.andromda.cartridges.hibernate.metafacades.isBidirectionalOrderedListChild() + */ + protected boolean handleIsBidirectionalOrderedListChild() + { + if (this.getOtherEnd() instanceof HibernateAssociationEnd) + { + HibernateAssociationEnd otherEnd = (HibernateAssociationEnd)this.getOtherEnd(); + return otherEnd.isBidirectionalOrderedListParent(); + } + else + return false; + } + + /** + * @see org.andromda.cartridges.hibernate.metafacades.isUsingHibernate3() + */ + protected boolean handleIsUsingHibernate3() + { + String prop = (String)this.getConfiguredProperty(HibernateGlobals.HIBERNATE_VERSION); + if (prop != null) + return prop.equals(HibernateGlobals.HIBERNATE_VERSION_3); + else + return false; + } + + /** + * @see org.andromda.cartridges.hibernate.metafacades.getCollectionIndexNameGetter() + */ + protected String handleGetCollectionIndexNameGetter() + { + return "get" + NameMasker.mask(this.getCollectionIndexName(), NameMasker.UPPERCAMELCASE); + } + + /** + * @see org.andromda.cartridges.hibernate.metafacades.getCollectionIndexNameSetter() + */ + protected String handleGetCollectionIndexNameSetter() + { + return "set" + NameMasker.mask(this.getCollectionIndexName(), NameMasker.UPPERCAMELCASE); + } + } \ No newline at end of file Index: andromda-hibernate/src/templates/hibernate/HibernateEntity.vsl =================================================================== RCS file: /cvsroot/andromda/cartridges/andromda-hibernate/src/templates/hibernate/HibernateEntity.vsl,v retrieving revision 1.61 diff -u -r1.61 HibernateEntity.vsl --- andromda-hibernate/src/templates/hibernate/HibernateEntity.vsl 23 Aug 2005 18:35:01 -0000 1.61 +++ andromda-hibernate/src/templates/hibernate/HibernateEntity.vsl 24 Aug 2005 18:39:49 -0000 @@ -86,6 +86,33 @@ this.${target.name} = ${target.name}; } +## deal with ordered lists +#if ($target.bidirectionalOrderedListParent) + private int $associationEnd.collectionIndexName; + + public int ${associationEnd.collectionIndexNameGetter}() + { +#if ($target.usingHibernate3) + return this.${associationEnd.collectionIndexName}; +#else + // See http://www.hibernate.org/193.html + try + { + return ((java.util.ArrayList)${target.getterName}().${associationEnd.getterName}()).indexOf(this); + } + catch (Exception ex) + { + return this.${associationEnd.collectionIndexName}; + } +#end + } + + public void ${associationEnd.collectionIndexNameSetter}(int ${associationEnd.collectionIndexName}) + { + this.${associationEnd.collectionIndexName} = ${associationEnd.collectionIndexName}; + } + +#end #end #end #foreach ($operation in $entity.businessOperations) Index: andromda-hibernate/src/templates/hibernate2/hibernate.hbm.xml.vm =================================================================== RCS file: /cvsroot/andromda/cartridges/andromda-hibernate/src/templates/hibernate2/hibernate.hbm.xml.vm,v retrieving revision 1.5 diff -u -r1.5 hibernate.hbm.xml.vm --- andromda-hibernate/src/templates/hibernate2/hibernate.hbm.xml.vm 6 Aug 2005 17:48:26 -0000 1.5 +++ andromda-hibernate/src/templates/hibernate2/hibernate.hbm.xml.vm 24 Aug 2005 18:39:50 -0000 @@ -63,6 +63,9 @@ +#if ($sourceEnd.bidirectionalOrderedListChild) + +#end #elseif ($sourceEnd.many2Many) <$otherEnd.collectionType name="$otherEnd.name" table="$otherEnd.association.tableName" order-by="$sourceEnd.orderByColumns" outer-join="$otherEnd.outerJoin" lazy="$otherEnd.lazy" inverse="$otherEnd.hibernateInverse"#if ($otherEnd.hibernateCascade) cascade="$otherEnd.hibernateCascade"#end#if ($otherEnd.whereClause) where="$otherEnd.whereClause"#end> Index: andromda-hibernate/src/templates/hibernate3/hibernate.hbm.xml.vm =================================================================== RCS file: /cvsroot/andromda/cartridges/andromda-hibernate/src/templates/hibernate3/hibernate.hbm.xml.vm,v retrieving revision 1.7 diff -u -r1.7 hibernate.hbm.xml.vm --- andromda-hibernate/src/templates/hibernate3/hibernate.hbm.xml.vm 6 Aug 2005 17:48:26 -0000 1.7 +++ andromda-hibernate/src/templates/hibernate3/hibernate.hbm.xml.vm 24 Aug 2005 18:39:50 -0000 @@ -62,9 +62,12 @@ #elseif ($sourceEnd.many2One) - + +#if ($sourceEnd.bidirectionalOrderedListChild) + +#end #elseif ($sourceEnd.many2Many) <$otherEnd.collectionType name="$otherEnd.name" table="$otherEnd.association.tableName" order-by="$sourceEnd.orderByColumns" fetch="$otherEnd.outerJoin" lazy="$otherEnd.lazy" inverse="$otherEnd.hibernateInverse"#if ($otherEnd.hibernateCascade) cascade="$otherEnd.hibernateCascade"#end#if ($otherEnd.whereClause) where="$otherEnd.whereClause"#end> Index: andromda-hibernate/src/uml/HibernateMetafacadeModel.xml.zip =================================================================== RCS file: /cvsroot/andromda/cartridges/andromda-hibernate/src/uml/HibernateMetafacadeModel.xml.zip,v retrieving revision 1.76 diff -u -r1.76 HibernateMetafacadeModel.xml.zip Binary files /tmp/cvs4Y5tgH and HibernateMetafacadeModel.xml.zip differ Index: andromda-hibernate/hibernate050823220935.exc =================================================================== RCS file: andromda-hibernate/hibernate050823220935.exc diff -N andromda-hibernate/hibernate050823220935.exc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ andromda-hibernate/hibernate050823220935.exc 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,88 @@ +------- AndroMDA Exception Recording ------- +Version ........: 3.1-RC1-20050822182942 +Error ..........: Error performing ModelProcessor.process with model(s) --> 'file:C:\home\jkoz\java\workspace\andromda-all\cartridges\andromda-hibernate\src\test\uml\HibernateCartridgeTestModel.xml.zip!\HibernateCartridgeTestModel.xml' +Build ..........: 2005-08-22 18:29:42 +Build System ...: Windows XP-5.1 +Build JDK ......: Sun Microsystems Inc.-1.5.0_02-b09 +Build Builder ..: Joel +Run System .....: Windows XP5.1 +Run JDK ........: Sun Microsystems Inc.1.5.0_02-b09 +Main Exception .: org.andromda.core.cartridge.CartridgeException: Error performing Cartridge.processWithTemplate with template 'templates/hibernate2/hibernate.hbm.xml.vsl', template context '{generateEntityEqualsAndHashCode=true, hibernateTransactionFactoryClass=net.sf.hibernate.transaction.JTATransactionFactory, hibernatePoolSize=null, stringUtils=org.apache.commons.lang.StringUtils@f507d2, hibernateShowSql=true, hibernateEnableAssociationsCache=false, driver=null, hibernateCacheProvider=net.sf.hibernate.cache.EhCacheProvider, hibernateQueryCacheFactory=net.sf.hibernate.cache.StandardQueryCacheFactory, hibernateJdbcUseStreamsForBinary=null, hibernateVersion=2, hibernateTransactionManagerLookup=null, hibernateEnableCache=false, username=null, hibernateMaxFetchDepth=null, hibernateUserTransactionName=UserTransaction, hibernateDefaultSchema=null, hibernateTransactionManagerStrategy=null, password=null, serviceLocatorName=ServiceLocator, hibernateQueryFactory=org.hibernate.hql.classic.ClassicQueryTranslatorFactory, sequenceIdentifierSuffix=_SEQ, hibernateDialect=TestDialect, hibernateProxy=false, userTypesPackage=org.andromda.persistence.hibernate.usertypes, hibernateUtils=org.andromda.cartridges.hibernate.HibernateUtils@d4a1d3, entity=org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[BagEntityTarget], hibernateEhCacheDiskStore=java.io.tmpdir, hibernateHbm2DDLAuto=null, connectionUrl=null, customTypesPackage=org.andromda.persistence.hibernate, hibernateJdbcBatchSize=12, hibernateJdbcFetchSize=null, dataSource=TestDataSource, hibernateJndiName=java:/hibernate/SessionFactory, hibernateQuerySubstitutions=null, hibernateUseOuterJoin=null, xmlEncoding=UTF-8, hibernateJdbcUseScrollableResultSet=null, securityRealm=SomeDomain, hibernateDefaultCascade=save-update}' and cartridge 'hibernate' +Root Exception .: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'isHibernateInverse' in class org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEndLogicImpl threw exception class java.lang.NoSuchMethodError : org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEndLogicImpl.isBidirectionalOrderedListChild()Z +org.apache.velocity.exception.MethodInvocationException: Invocation of method 'isHibernateInverse' in class org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEndLogicImpl threw exception class java.lang.NoSuchMethodError : org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEndLogicImpl.isBidirectionalOrderedListChild()Z + at org.apache.velocity.runtime.parser.node.ASTIdentifier.execute(ASTIdentifier.java:193) + at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:175) + at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:220) + at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55) + at org.apache.velocity.runtime.parser.node.ASTElseIfStatement.render(ASTElseIfStatement.java:78) + at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:89) + at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55) + at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:70) + at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55) + at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:70) + at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55) + at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:166) + at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:114) + at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230) + at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:172) + at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:114) + at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230) + at org.apache.velocity.Template.merge(Template.java:256) + at org.andromda.templateengines.velocity.VelocityTemplateEngine.processTemplate(VelocityTemplateEngine.java:241) + at org.andromda.core.cartridge.Cartridge.processWithTemplate(Cartridge.java:411) + at org.andromda.core.cartridge.Cartridge.processTemplateWithMetafacades(Cartridge.java:249) + at org.andromda.core.cartridge.Cartridge.processTemplate(Cartridge.java:114) + at org.andromda.core.cartridge.Cartridge.processModelElements(Cartridge.java:63) + at org.andromda.core.engine.ModelProcessor.processModels(ModelProcessor.java:239) + at org.andromda.core.engine.ModelProcessor.process(ModelProcessor.java:152) + at org.andromda.core.engine.ModelProcessor.process(ModelProcessor.java:88) + at org.andromda.core.engine.Engine.run(Engine.java:82) + at org.andromda.core.AndroMDA.run(AndroMDA.java:136) + at org.andromda.maven.AndroMDAMavenRunner.execute(AndroMDAMavenRunner.java:80) + at org.apache.tools.ant.Task.perform(Task.java:341) + at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:185) + at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279) + at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135) + at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233) + at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88) + at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279) + at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135) + at org.apache.maven.jelly.tags.werkz.MavenGoalTag.runBodyTag(MavenGoalTag.java:79) + at org.apache.maven.jelly.tags.werkz.MavenGoalTag$MavenGoalAction.performAction(MavenGoalTag.java:110) + at com.werken.werkz.Goal.fire(Goal.java:639) + at com.werken.werkz.Goal.attain(Goal.java:575) + at com.werken.werkz.WerkzProject.attainGoal(WerkzProject.java:193) + at org.apache.maven.jelly.tags.werkz.MavenAttainGoalTag.doTag(MavenAttainGoalTag.java:127) + at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279) + at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135) + at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233) + at org.apache.commons.jelly.tags.core.OtherwiseTag.doTag(OtherwiseTag.java:87) + at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279) + at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135) + at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233) + at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:84) + at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279) + at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135) + at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233) + at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88) + at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279) + at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135) + at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233) + at com.werken.werkz.jelly.PostGoalTag$1.firePostGoal(PostGoalTag.java:87) + at com.werken.werkz.Goal.firePostGoalCallbacks(Goal.java:710) + at com.werken.werkz.Goal.fire(Goal.java:654) + at com.werken.werkz.Goal.attain(Goal.java:575) + at com.werken.werkz.Goal.attainPrecursors(Goal.java:488) + at com.werken.werkz.Goal.attain(Goal.java:573) + at com.werken.werkz.Goal.attainPrecursors(Goal.java:488) + at com.werken.werkz.Goal.attain(Goal.java:573) + at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:671) + at org.apache.maven.MavenSession.attainGoals(MavenSession.java:263) + at org.apache.maven.cli.App.doMain(App.java:488) + at org.apache.maven.cli.App.main(App.java:1239) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) + at java.lang.reflect.Method.invoke(Method.java:585) + at com.werken.forehead.Forehead.run(Forehead.java:551) + at com.werken.forehead.Forehead.main(Forehead.java:581) Index: andromda-hibernate/hibernate050823223836.exc =================================================================== RCS file: andromda-hibernate/hibernate050823223836.exc diff -N andromda-hibernate/hibernate050823223836.exc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ andromda-hibernate/hibernate050823223836.exc 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,76 @@ +------- AndroMDA Exception Recording ------- +Version ........: 3.1-RC1-20050824003346 +Error ..........: Error performing ModelProcessor.process with model(s) --> 'file:C:\home\jkoz\java\workspace\andromda-all\cartridges\andromda-hibernate\src\test\uml\HibernateCartridgeTestModel.xml.zip!\HibernateCartridgeTestModel.xml' +Build ..........: 2005-08-24 00:33:46 +Build System ...: Linux-2.4.29 +Build JDK ......: Sun Microsystems Inc.-1.4.2_07-b05 +Build Builder ..: andromda-build +Run System .....: Windows XP5.1 +Run JDK ........: Sun Microsystems Inc.1.5.0_02-b09 +Main Exception .: org.andromda.core.cartridge.CartridgeException: Error performing Cartridge.processWithTemplate with template 'templates/hibernate2/hibernate.cfg.xml.vsl', template context '{generateEntityEqualsAndHashCode=true, hibernateTransactionFactoryClass=net.sf.hibernate.transaction.JTATransactionFactory, hibernatePoolSize=null, stringUtils=org.apache.commons.lang.StringUtils@ab4b89, hibernateShowSql=true, hibernateEnableAssociationsCache=false, driver=null, hibernateCacheProvider=net.sf.hibernate.cache.EhCacheProvider, hibernateQueryCacheFactory=net.sf.hibernate.cache.StandardQueryCacheFactory, hibernateJdbcUseStreamsForBinary=null, hibernateVersion=2, hibernateTransactionManagerLookup=null, hibernateEnableCache=false, username=null, hibernateMaxFetchDepth=null, entities=[org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntityOne], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[BagEntityTarget], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntitySixteen], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntityEight], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[VerifySubclassValidation], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[AggregationChild2], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[InheritanceConcreteSubclass2], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntityWithPrivateAttribute], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntityNine], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[MapEntityWithoutIndexTarget], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[MapEntityTarget], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntityTwo], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[InheritanceSubclassRoot], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntitySix], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[AssignedIdentifierEntity], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntityWithToMAggregation], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[AggregationChild], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[Many2ManySelf], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntityThirteen], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntityWithToMComposition], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntityWithANonDataTypeAttribute], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntityThree], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[CompositionChild], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[SetEntityTarget], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntitySeven], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntityTwelve], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[VerifyClassValidation], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[ImpliedListTarget], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntityWithEmbeddedParts], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[InheritanceBusinessMethodTest], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[InheritanceInterfaceDefault], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[InterfaceSubclass], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[InheritanceConcreteRoot], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntityFour], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[ConcreteSubclass], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntityFive], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntityEleven], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[InheritanceConcreteSubclass1], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntityFourteen], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[ListEntityTarget], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[TargetEntity], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[InheritanceClassRoot], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[EntityTen], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[InheritanceInterfaceSubclass], org.andromda.cartridges.hibernate.metafacades.HibernateEntityLogicImpl[InheritanceInterfaceConcrete]], hibernateUserTransactionName=UserTransaction, hibernateDefaultSchema=null, hibernateTransactionManagerStrategy=null, password=null, serviceLocatorName=ServiceLocator, hibernateQueryFactory=org.hibernate.hql.classic.ClassicQueryTranslatorFactory, sequenceIdentifierSuffix=_SEQ, hibernateDialect=TestDialect, hibernateProxy=false, userTypesPackage=org.andromda.persistence.hibernate.usertypes, hibernateUtils=org.andromda.cartridges.hibernate.HibernateUtils@1ec3fed, hibernateEhCacheDiskStore=java.io.tmpdir, hibernateHbm2DDLAuto=null, connectionUrl=null, customTypesPackage=org.andromda.persistence.hibernate, hibernateJdbcBatchSize=12, hibernateJdbcFetchSize=null, dataSource=TestDataSource, hibernateJndiName=java:/hibernate/SessionFactory, hibernateQuerySubstitutions=null, hibernateUseOuterJoin=null, xmlEncoding=UTF-8, hibernateJdbcUseScrollableResultSet=null, securityRealm=SomeDomain, hibernateDefaultCascade=save-update}' and cartridge 'hibernate' +Root Exception .: java.io.FileNotFoundException: C:\WINDOWS\TEMP\.andromda\Joel\velocity\merged\hibernate\templates\hibernate2\hibernate.cfg.xml.vsl (Access is denied) +java.io.FileNotFoundException: C:\WINDOWS\TEMP\.andromda\Joel\velocity\merged\hibernate\templates\hibernate2\hibernate.cfg.xml.vsl (Access is denied) + at java.io.FileOutputStream.open(Native Method) + at java.io.FileOutputStream.(FileOutputStream.java:179) + at java.io.FileOutputStream.(FileOutputStream.java:131) + at org.andromda.core.common.ResourceWriter.writeStringToFile(ResourceWriter.java:158) + at org.andromda.core.common.ResourceWriter.writeStringToFile(ResourceWriter.java:106) + at org.andromda.core.common.ResourceWriter.writeStringToFile(ResourceWriter.java:75) + at org.andromda.templateengines.velocity.VelocityTemplateEngine.processTemplate(VelocityTemplateEngine.java:233) + at org.andromda.core.cartridge.Cartridge.processWithTemplate(Cartridge.java:411) + at org.andromda.core.cartridge.Cartridge.processTemplateWithMetafacades(Cartridge.java:200) + at org.andromda.core.cartridge.Cartridge.processTemplate(Cartridge.java:114) + at org.andromda.core.cartridge.Cartridge.processModelElements(Cartridge.java:63) + at org.andromda.core.engine.ModelProcessor.processModels(ModelProcessor.java:239) + at org.andromda.core.engine.ModelProcessor.process(ModelProcessor.java:152) + at org.andromda.core.engine.ModelProcessor.process(ModelProcessor.java:88) + at org.andromda.core.engine.Engine.run(Engine.java:82) + at org.andromda.core.AndroMDA.run(AndroMDA.java:136) + at org.andromda.maven.AndroMDAMavenRunner.execute(AndroMDAMavenRunner.java:80) + at org.apache.tools.ant.Task.perform(Task.java:341) + at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:185) + at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279) + at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135) + at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233) + at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88) + at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279) + at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135) + at org.apache.maven.jelly.tags.werkz.MavenGoalTag.runBodyTag(MavenGoalTag.java:79) + at org.apache.maven.jelly.tags.werkz.MavenGoalTag$MavenGoalAction.performAction(MavenGoalTag.java:110) + at com.werken.werkz.Goal.fire(Goal.java:639) + at com.werken.werkz.Goal.attain(Goal.java:575) + at com.werken.werkz.WerkzProject.attainGoal(WerkzProject.java:193) + at org.apache.maven.jelly.tags.werkz.MavenAttainGoalTag.doTag(MavenAttainGoalTag.java:127) + at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279) + at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135) + at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233) + at org.apache.commons.jelly.tags.core.OtherwiseTag.doTag(OtherwiseTag.java:87) + at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279) + at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135) + at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233) + at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:84) + at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279) + at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135) + at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233) + at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88) + at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279) + at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135) + at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233) + at com.werken.werkz.jelly.PostGoalTag$1.firePostGoal(PostGoalTag.java:87) + at com.werken.werkz.Goal.firePostGoalCallbacks(Goal.java:710) + at com.werken.werkz.Goal.fire(Goal.java:654) + at com.werken.werkz.Goal.attain(Goal.java:575) + at com.werken.werkz.Goal.attainPrecursors(Goal.java:488) + at com.werken.werkz.Goal.attain(Goal.java:573) + at com.werken.werkz.Goal.attainPrecursors(Goal.java:488) + at com.werken.werkz.Goal.attain(Goal.java:573) + at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:671) + at org.apache.maven.MavenSession.attainGoals(MavenSession.java:263) + at org.apache.maven.cli.App.doMain(App.java:488) + at org.apache.maven.cli.App.main(App.java:1239) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) + at java.lang.reflect.Method.invoke(Method.java:585) + at com.werken.forehead.Forehead.run(Forehead.java:551) + at com.werken.forehead.Forehead.main(Forehead.java:581)