History | Log In     View a printable version of the current page. Get help!  
Issue Details [XML]

Key: EJB-45
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Vance Karimi
Reporter: Mark Hunter
Votes: (View)
Watchers: (View)
Operations

If you were logged in you would be able to see more operations.
EJB Cartridge

<<Manageable>> stereotype causes compilation failure - MD11.5/UML2 & EJB3 Cartridge

Created: 05/Oct/06 09:26 AM   Updated: 19/Oct/06 07:25 AM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Environment: Mac OS/X 10.4
Maven 2
MagicDraw 11.5 / UML2 Export
EJB3 Cartridge on AndroMDA 3.2


 Description   
This problem:

ERROR [ModelProcessor] Error performing ModelProcessor.process with model(s) --> '/Users/markh/Development/Projects/SessionBroker/mda/src/main/uml/SessionBroker.uml2'
ERROR [AndroMDA] Exception recorded in --> '/Users/markh/Development/Projects/SessionBroker/ejb3060906083204.exc'
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error running AndroMDA

Embedded error: Invocation of method 'filterUpdatableAttributes' in class org.andromda.cartridges.ejb3.EJB3ScriptHelper threw exception class java.lang.ClassCastException : org.andromda.metafacades.emf.uml2.ManageableEntityAttributeLogicImpl

with the "Root Exception:" from the log being

Root Exception .: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'filterUpdatableAttributes' in class org.andromda.cartridges.ejb3.EJB3ScriptHelper threw exception class java.lang.ClassCastException : org.andromda.metafacades.emf.uml2.ManageableEntityAttributeLogicImpl
org.apache.velocity.exception.MethodInvocationException: Invocation of method 'filterUpdatableAttributes' in class org.andromda.cartridges.ejb3.EJB3ScriptHelper threw exception class java.lang.ClassCastException : org.andromda.metafacades.emf.uml2.ManageableEntityAttributeLogicImpl


A little bit more information. It seems the problem is associated with the <<Manageable>> stereotype. When i remove that, leaving only <<Entity>>, the thing seems to work.

 All   Comments   Change History      Sort Order:
Comment by Vance Karimi [08/Oct/06 09:55 AM]
It seems to work if you move the manageable metafacade definitions in the metafacade.xml of the ejb3 cartridge below the entity definitions, clean and rebuild the cartridge.

So move the following block:

[StartOfBlock]
    <!-- Manageable Entity Metafacades -->
    <metafacade class="org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacadeLogicImpl" contextRoot="true">
        <mapping>
            <stereotype>ENTITY</stereotype>
            <stereotype>MANAGEABLE</stereotype>
        </mapping>
        <property reference="manageableServiceBaseNamePattern"/>
        <property reference="manageableCreateExceptionNamePattern"/>
<property reference="manageableReadExceptionNamePattern"/>
<property reference="manageableUpdateExceptionNamePattern"/>
<property reference="manageableDeleteExceptionNamePattern"/>
    </metafacade>
    <metafacade class="org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityAttributeFacadeLogicImpl">
        <mapping>
            <context>
                org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade
            </context>
        </mapping>
    </metafacade>
    <metafacade class="org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityAssociationEndFacadeLogicImpl">
        <mapping>
            <context>
                org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade
            </context>
        </mapping>
    </metafacade>
[/EndOfBlock]

below the entity metafacades.

I remember having to move these above the entity metafacades for certain reasons. See if this fixes your problems for the time being until can test further to make sure it doesn't cause issues with uml1.4.

Comment by Vance Karimi [08/Oct/06 02:06 PM]
Scratch that last comment. It's still not working.

Comment by Vance Karimi [09/Oct/06 06:10 AM]
Fixed.

Comment by Pat Casey [09/Oct/06 08:47 PM]
Seems like this is a related issue:

[INFO] Scanning for projects...
[INFO] Reactor build order:
[INFO] Project Tracking System
[INFO] Project Tracking System MDA
[INFO] Project Tracking System Common
[INFO] Project Tracking System Workflow Module
[INFO] Project Tracking System Core Business Tier
[INFO] Project Tracking System Web
[INFO] Project Tracking System Application
[INFO] ----------------------------------------------------------------------------
[INFO] Building Project Tracking System
[INFO] task-segment: [install]
[INFO] ----------------------------------------------------------------------------
[INFO] [site:attach-descriptor]
[INFO] [install:install]
[INFO] Installing D:\andromda-projects\pts\pom.xml to C:\WINNT\Profiles\pcasey4\.m2\repository\pts\pts\1.0-SNAPSHOT\pts-1.0-SNAPSHOT.pom
[INFO] ----------------------------------------------------------------------------
[INFO] Building Project Tracking System MDA
[INFO] task-segment: [install]
[INFO] ----------------------------------------------------------------------------
Downloading: http://team.andromda.org/maven2/org/andromda/profiles/uml14/andromda-profile-seam/1.0-SNAPSHOT/andromda-profile-seam-1.0-SNAPSHOT.pom
[WARNING] Unable to get resource from repository andromda (http://team.andromda.org/maven2)
[INFO] [andromda:run {execution: default}]
INFO [AndroMDA]
INFO [AndroMDA] A n d r o M D A - 3.2-SNAPSHOT
INFO [AndroMDA]
INFO [AndroMDA] - discovering namespaces -
INFO [AndroMDA] found namespace --> 'ejb3'
INFO [AndroMDA] + registering component 'cartridge'
INFO [AndroMDA] + registering component 'metafacades'
INFO [AndroMDA] + registering component 'profile'
INFO [AndroMDA] found namespace --> 'emf-uml2'
INFO [AndroMDA] + registering component 'metafacades'
INFO [AndroMDA] + registering component 'profile'
INFO [AndroMDA] + registering component 'repository'
INFO [AndroMDA] found namespace --> 'java'
INFO [AndroMDA] + registering component 'cartridge'
INFO [AndroMDA] + registering component 'profile'
INFO [AndroMDA] found namespace --> 'jbpm'
INFO [AndroMDA] + registering component 'cartridge'
INFO [AndroMDA] + registering component 'metafacades'
INFO [AndroMDA] + registering component 'profile'
INFO [AndroMDA] found namespace --> 'jsf'
INFO [AndroMDA] + registering component 'cartridge'
INFO [AndroMDA] + registering component 'metafacades'
INFO [AndroMDA] + registering component 'profile'
INFO [AndroMDA] found namespace --> 'netBeansMDR'
INFO [AndroMDA] + registering component 'repository'
INFO [AndroMDA] found namespace --> 'query'
INFO [AndroMDA] + registering component 'translation-library'
INFO [AndroMDA] found namespace --> 'uml-1.4'
INFO [AndroMDA] + registering component 'metafacades'
INFO [AndroMDA] + registering component 'profile'
INFO [AndroMDA] found namespace --> 'validation'
INFO [AndroMDA] + registering component 'translation-library'
INFO [AndroMDA] - core initialization complete: 13.279[s] -
INFO [AndroMDA] loading model --> 'jar:file:D:/andromda-projects/pts/mda/src/main/uml/pts.zargo!/pts.xmi'
INFO [AndroMDA] - loading complete: 3.605[s] -
INFO [AndroMDA] - validating model -
ERROR [ModelProcessor] Error performing ModelProcessor.process with model(s) --> 'file:D:\andromda-projects\pts\mda\src\main\uml\pts.zargo!\pts.xmi'
ERROR [AndroMDA] Exception recorded in --> 'D:\andromda-projects\pts\andromda061009134436.exc'
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error running AndroMDA

Embedded error: org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacadeLogicImpl.isEnumerationMember()Z
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 40 seconds
[INFO] Finished at: Mon Oct 09 13:44:37 CDT 2006
[INFO] Final Memory: 18M/33M
[INFO] ------------------------------------------------------------------------

From andromda061009134436.exc:

------- AndroMDA Exception Recording -------
Version ........: 3.2-SNAPSHOT
Error ..........: Error performing ModelProcessor.process with model(s) --> 'file:D:\andromda-projects\pts\mda\src\main\uml\pts.zargo!\pts.xmi'
Build ..........: ${build.date}
Build System ...: Linux-2.4.29-su-1.2
Build JDK ......: Sun Microsystems Inc.-1.5.0_07-b03
Build Builder ..: su-builder
Run System .....: Windows NT4.0
Run JDK ........: Sun Microsystems Inc.1.5.0_02-b09
Main Exception .: java.lang.AbstractMethodError: org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacadeLogicImpl.isEnumerationMember()Z
Root Exception .: java.lang.AbstractMethodError: org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacadeLogicImpl.isEnumerationMember()Z
java.lang.AbstractMethodError: org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacadeLogicImpl.isEnumerationMember()Z
at org.andromda.metafacades.uml14.EnumerationFacadeLogicImpl$1.evaluate(EnumerationFacadeLogicImpl.java:54)
at org.apache.commons.collections.CollectionUtils.filter(CollectionUtils.java:403)
at org.andromda.metafacades.uml14.EnumerationFacadeLogicImpl.handleGetLiterals(EnumerationFacadeLogicImpl.java:46)
at org.andromda.metafacades.uml14.EnumerationFacadeLogic.getLiterals(EnumerationFacadeLogic.java:171)
at org.andromda.cartridges.ejb3.metafacades.EJB3EnumerationFacadeLogic.getLiterals(EJB3EnumerationFacadeLogic.java:436)
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 org.andromda.core.common.Introspector.internalGetProperty(Introspector.java:495)
at org.andromda.core.common.Introspector.getNestedProperty(Introspector.java:226)
at org.andromda.core.common.Introspector.getProperty(Introspector.java:182)
at org.andromda.translation.ocl.validation.OCLIntrospector.invoke(OCLIntrospector.java:40)
at org.andromda.metafacades.uml14.EnumerationFacadeLogic.validateInvariants(EnumerationFacadeLogic.java:250)
at org.andromda.cartridges.ejb3.metafacades.EJB3EnumerationFacadeLogic.validateInvariants(EJB3EnumerationFacadeLogic.java:746)
at org.andromda.core.metafacade.MetafacadeBase.validate(MetafacadeBase.java:106)
at org.andromda.core.metafacade.MetafacadeFactory.validateAllMetafacades(MetafacadeFactory.java:260)
at org.andromda.core.engine.ModelProcessor.validateModel(ModelProcessor.java:396)
at org.andromda.core.engine.ModelProcessor.loadModelIfNecessary(ModelProcessor.java:353)
at org.andromda.core.engine.ModelProcessor.loadIfNecessary(ModelProcessor.java:533)
at org.andromda.core.engine.ModelProcessor.processModels(ModelProcessor.java:225)
at org.andromda.core.engine.ModelProcessor.process(ModelProcessor.java:146)
at org.andromda.core.engine.ModelProcessor.process(ModelProcessor.java:82)
at org.andromda.core.engine.Engine.run(Engine.java:82)
at org.andromda.core.AndroMDA.run(AndroMDA.java:197)
at org.andromda.maven.plugin.AndroMDAMojo.execute(AndroMDAMojo.java:92)
at org.andromda.maven.plugin.AbstractAndroMDAMojo.execute(AbstractAndroMDAMojo.java:106)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:412)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:534)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:475)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:454)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:306)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:273)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:140)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:322)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:115)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:256)
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 org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

Comment by Pat Casey [13/Oct/06 12:00 AM]
Vance suggested I ensure that I have the current SNAPSHOT version. After deleting the maven repository and forcing a download of new files, the problem is resolved. Thanks Vance!

Comment by Vance Karimi [19/Oct/06 07:25 AM]
Resolved