Build 221 2010-10-07T16:48:41 Patch provided by Benjamin Lerman. Now a MetafacadeMapping can be associated to multiple UML implementation classes. This is useful in the case where a Metafacade is mapped to multiple UML implementation class like for instance ClassifierFacade with the UML Interface and UML Class. This allows to have consistent mappings even in the case of multiple inheritance.
This breaks the UML2 migrated versions of some of the test model. To reproduce, migrate the jbpm test model to UML2, modify jbpm cartridge test configuration to point to the UML2 model version. The error is:
Main Exception .: Failed to construct a meta facade of type 'null' with mappingObject of type --> 'class org.eclipse.uml2.uml.internal.impl.PackageImpl'
Root Exception .: org.andromda.core.metafacade.MetafacadeMappingsException: No mapping class could be found for 'org.andromda.cartridges.jbpm.metafacades.JBpmNodeLogicImpl'
org.andromda.core.metafacade.MetafacadeMappingsException: No mapping class could be found for 'org.andromda.cartridges.jbpm.metafacades.JBpmNodeLogicImpl'
The following mappings appear in the old 1:1 metafacade mapping with the exact same configuration, but not in the new update:
I checked in some model updates which duplicates the problem, but did not enable because it would cause the build to break. To reproduce: modify cartridges\andromda-jbpm\conf\test\andromda.xml to comment out the uml14 model and uncomment the emf-uml22 model configuration.
Core Metafacade patch does not map everything that the previous MetafacadeUtils code did. I have a version of andromda-all with all models converted to UML2, this is the place where that build failed.
There's still an issue with missing UML2 metafacade mappings, only 5 output files are created by the jbpm cartridge against the migrated UML2 model. Also an issue with mappings which does not cause failure: WARN [jbpm] Meta object model class 'class org.omg.uml.foundation.core.TagDefinition$Impl' has no corresponding meta facade class, default is being used --> 'class org.andromda.metafacades.uml14.ModelElementFacadeLogicImpl'