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 @@
$otherEnd.collectionType>
#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)