From: Vance K. <va...@us...> - 2007-07-21 13:31:51
|
User: vancek Date: 07/07/21 06:31:53 Modified: andromda-ejb3/src/site changes.xml andromda-ejb3/src/test/expected cartridge-output.zip andromda-ejb3/src/test/uml EJB3CartridgeTestModel.xml.zip andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3EntityFacadeLogicImpl.java Log: ejb-65 - fix for abstract parent entities and supporting associations Revision Changes Path 1.25 +10 -1 cartridges/andromda-ejb3/src/site/changes.xml Index: changes.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/site/changes.xml,v retrieving revision 1.24 retrieving revision 1.25 diff -u -w -r1.24 -r1.25 --- changes.xml 30 Jun 2007 03:53:47 -0000 1.24 +++ changes.xml 21 Jul 2007 13:31:51 -0000 1.25 @@ -505,6 +505,15 @@ relationNameSeparator in the andromda.xml within the ejb3 namespace with a value of underscore (_) if you wish to adopt this separator. The default separator will remain the AndroMDA default digit two. </action> + <action dev="walter" type="add"> + JIRA EJB-58 - Add readById method to crud services such that cartridge can be used with JSF2 cartridge + and crud/manageable features. + </action> + <action dev="vancek" due-to="hermida" type="fix"> + JIRA EJB-65 - Modify the cartridge to support abstract parent entities. EJB2.x did not support this, but + this is now supported with EJb 3.0. An abstract parent entity can have a relationship with any other + entity and this should be available to the child inheriting entities. Add test cases to support this. + </action> </release> </body> </document> \ No newline at end of file 1.15 +515 -499 cartridges/andromda-ejb3/src/test/expected/cartridge-output.zip <<Binary file>> 1.10 +298 -248 cartridges/andromda-ejb3/src/test/uml/EJB3CartridgeTestModel.xml.zip <<Binary file>> 1.30 +1 -29 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3EntityFacadeLogicImpl.java Index: EJB3EntityFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3EntityFacadeLogicImpl.java,v retrieving revision 1.29 retrieving revision 1.30 diff -u -w -r1.29 -r1.30 --- EJB3EntityFacadeLogicImpl.java 17 Feb 2007 14:09:07 -0000 1.29 +++ EJB3EntityFacadeLogicImpl.java 21 Jul 2007 13:31:53 -0000 1.30 @@ -289,24 +289,7 @@ */ protected java.util.Collection handleGetAllEntityRelations() { - // Only concrete entities may have EJB relations. Return - // an empty collection for everything else - if (this.isAbstract()) - { - return Collections.EMPTY_LIST; - } - - Collection result = new ArrayList(); - result.addAll(getEntityRelations()); - - ClassifierFacade classifier = (ClassifierFacade)this.getGeneralization(); - while (classifier != null && classifier instanceof EJB3EntityFacade && classifier.isAbstract()) - { - EJB3EntityFacade entity = (EJB3EntityFacade)classifier; - result.addAll(entity.getEntityRelations()); - classifier = (ClassifierFacade)classifier.getGeneralization(); - } - return result; + return this.getEntityRelations(); } /** @@ -413,17 +396,6 @@ ClassifierFacade target = associationEnd.getOtherEnd().getType(); if (target instanceof EJB3EntityFacade && associationEnd.getOtherEnd().isNavigable()) { - // Check the integrity constraint - Object value = associationEnd.getOtherEnd().getAssociation().findTaggedValue( - EJB3Profile.TAGGEDVALUE_GENERATE_CMR); - String generateCmr = value == null ? null : value.toString(); - if (target.isAbstract() && !"false".equalsIgnoreCase(generateCmr)) - { - throw new IllegalStateException("Relation '" + associationEnd.getAssociation().getName() + - "' has the abstract target '" + - target.getName() + - "'. Abstract targets are not allowed in EJB."); - } result.add(associationEnd); } } |