UML2 Metafacade mapping broken after recent patch to allow association to multiple UML implementation classes

Description

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'
at org.andromda.core.metafacade.MetafacadeUtils.getInheritedMappingClassNames(MetafacadeUtils.java:269)
at org.andromda.core.metafacade.MetafacadeMapping.getMappingClassNames(MetafacadeMapping.java:76)
...

The following mappings appear in the old 1:1 metafacade mapping with the exact same configuration, but not in the new update:
org.andromda.cartridges.jbpm.metafacades.JBpmNodeLogicImpl=org.eclipse.uml2.uml.internal.impl.StateImpl
org.andromda.cartridges.jbpm.metafacades.JBpmStateLogicImpl=org.eclipse.uml2.uml.internal.impl.VertexImpl
org.andromda.cartridges.jbpm.metafacades.JBpmActionLogicImpl=org.eclipse.uml2.uml.internal.impl.ActivityImpl
org.andromda.cartridges.jbpm.metafacades.JBpmTransitionLogicImpl=org.eclipse.uml2.uml.internal.impl.TransitionImpl
org.andromda.cartridges.jbpm.metafacades.JBpmEndStateLogicImpl=org.eclipse.uml2.uml.internal.impl.FinalStateImpl
org.andromda.cartridges.jbpm.metafacades.JBpmHandlerLogicImpl=org.eclipse.uml2.uml.internal.impl.OperationImpl

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.

Environment

None

Activity

Show:
Bob Fields
October 11, 2010, 10:17 PM

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.

Bob Fields
February 2, 2011, 6:59 AM

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'

Assignee

Former user

Reporter

Bob Fields

Labels

None

Fix versions

Affects versions

Priority

Major
Configure