You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(6) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(178) |
Feb
(169) |
Mar
(286) |
Apr
(117) |
May
(98) |
Jun
(68) |
Jul
(63) |
Aug
(121) |
Sep
(88) |
Oct
(124) |
Nov
(2) |
Dec
(111) |
2007 |
Jan
(224) |
Feb
(69) |
Mar
(10) |
Apr
(72) |
May
(7) |
Jun
(21) |
Jul
(33) |
Aug
(35) |
Sep
(12) |
Oct
(22) |
Nov
(5) |
Dec
(6) |
2008 |
Jan
(2) |
Feb
(10) |
Mar
(39) |
Apr
(58) |
May
(34) |
Jun
(9) |
Jul
(27) |
Aug
(10) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
From: Vance K. <va...@us...> - 2006-04-26 15:26:23
|
User: vancek Date: 06/04/26 08:26:22 Modified: andromda-ejb3/src/main/uml EJB3MetafacadeModel.xml.zip Log: added entityImplementationRequired to EJB3EntityFacade and namedQuery to EJB3FinderMethodFacade Revision Changes Path 1.32 +192 -183 cartridges/andromda-ejb3/src/main/uml/EJB3MetafacadeModel.xml.zip <<Binary file>> |
From: Vance K. <va...@us...> - 2006-04-26 15:25:22
|
User: vancek Date: 06/04/26 08:25:20 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3WebServiceFacadeLogicImpl.java Log: handleGetNamespace refactored to use the package path only Revision Changes Path 1.2 +7 -1 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3WebServiceFacadeLogicImpl.java Index: EJB3WebServiceFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3WebServiceFacadeLogicImpl.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- EJB3WebServiceFacadeLogicImpl.java 11 Apr 2006 16:12:14 -0000 1.1 +++ EJB3WebServiceFacadeLogicImpl.java 26 Apr 2006 15:25:19 -0000 1.2 @@ -2,6 +2,7 @@ import java.text.MessageFormat; +import org.andromda.cartridges.ejb3.EJB3Globals; import org.andromda.cartridges.ejb3.EJB3Profile; import org.andromda.cartridges.ejb3.EJB3ScriptHelper; import org.andromda.metafacades.uml.OperationFacade; @@ -252,7 +253,12 @@ String namespacePattern = String.valueOf(this.getConfiguredProperty(NAMESPACE_PATTERN)); return MessageFormat.format( namespacePattern, - new Object[] {StringUtils.trimToEmpty(packageName), StringUtils.trimToEmpty(this.getQName())}); + new Object[] { + StringUtils.trimToEmpty( + StringUtils.substringBeforeLast(packageName, String.valueOf(EJB3Globals.NAMESPACE_DELIMITER))), + StringUtils.trimToEmpty( + StringUtils.substringAfterLast(packageName, String.valueOf(EJB3Globals.NAMESPACE_DELIMITER)))} + ); } /** |
From: Vance K. <va...@us...> - 2006-04-26 15:23:45
|
User: vancek Date: 06/04/26 08:23:44 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3FinderMethodFacadeLogicImpl.java Log: implemented handleIsNamedQuery - only check that the query tagged value isn't modelled. should prob define a new tagged value. Revision Changes Path 1.8 +14 -0 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3FinderMethodFacadeLogicImpl.java Index: EJB3FinderMethodFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3FinderMethodFacadeLogicImpl.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -w -r1.7 -r1.8 --- EJB3FinderMethodFacadeLogicImpl.java 24 Apr 2006 02:54:56 -0000 1.7 +++ EJB3FinderMethodFacadeLogicImpl.java 26 Apr 2006 15:23:44 -0000 1.8 @@ -155,4 +155,18 @@ return queryString; } + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3FinderMethodFacadeLogic#handleIsNamedQuery() + */ + protected boolean handleIsNamedQuery() + { + boolean isNamedQuery = true; + final String query = (String)this.findTaggedValue(EJB3Profile.TAGGEDVALUE_EJB_QUERY); + if (StringUtils.isNotEmpty(query)) + { + isNamedQuery = false; + } + return isNamedQuery; + } + } \ No newline at end of file |
From: Vance K. <va...@us...> - 2006-04-26 15:22:10
|
User: vancek Date: 06/04/26 08:21:59 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3EntityFacadeLogicImpl.java Log: handleGetDiscriminatorValue returns the first character if one isn't specified using tagged value. implemented handleIsEntityImplementationRequired. Revision Changes Path 1.19 +15 -1 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.18 retrieving revision 1.19 diff -u -w -r1.18 -r1.19 --- EJB3EntityFacadeLogicImpl.java 24 Apr 2006 02:52:46 -0000 1.18 +++ EJB3EntityFacadeLogicImpl.java 26 Apr 2006 15:21:59 -0000 1.19 @@ -751,7 +751,13 @@ */ protected String handleGetDiscriminatorValue() { - return (String)this.findTaggedValue(EJB3Profile.TAGGEDVALUE_PERSISTENCE_DISCRIMINATOR_VALUE); + String discriminatorValue = + (String)this.findTaggedValue(EJB3Profile.TAGGEDVALUE_PERSISTENCE_DISCRIMINATOR_VALUE); + if (StringUtils.isBlank(discriminatorValue)) + { + discriminatorValue = StringUtils.substring(this.getEntityName(), 0, 1); + } + return discriminatorValue; } /** @@ -1360,4 +1366,12 @@ this.getDaoDefaultExceptionName(), null); } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleIsEntityImplementationRequired() + */ + protected boolean handleIsEntityImplementationRequired() + { + return !this.getBusinessOperations().isEmpty() || this.isEmbeddableSuperclass(); + } } \ No newline at end of file |
From: Vance K. <va...@us...> - 2006-04-26 15:20:02
|
User: vancek Date: 06/04/26 08:19:54 Modified: andromda-ejb3/src/main/resources/META-INF/andromda cartridge.xml Log: only generate entity impl if entity implementation required Revision Changes Path 1.23 +1 -2 cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/cartridge.xml Index: cartridge.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/cartridge.xml,v retrieving revision 1.22 retrieving revision 1.23 diff -u -w -r1.22 -r1.23 --- cartridge.xml 24 Apr 2006 02:39:17 -0000 1.22 +++ cartridge.xml 26 Apr 2006 15:19:54 -0000 1.23 @@ -85,8 +85,7 @@ <modelElements variable="entity"> <modelElement> <type name="org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacade"> - <property name="embeddableSuperclass">false</property> - <property name="requiresGeneralizationMapping">false</property> + <property name="entityImplementationRequired"/> </type> </modelElement> </modelElements> |
From: Vance K. <va...@us...> - 2006-04-26 15:17:40
|
User: vancek Date: 06/04/26 08:16:52 Modified: andromda-ejb3/src/main/resources/templates/ejb3 EntityEmbeddable.vsl Log: extensive refactoring to avoid generating the entity impl src if no business operations are modelled. eliminate static finders from entity class -> finders reside in DAO only, inline with spring cartridge. added NamedQueries and NamedQuery annotations for pre-configured queries. Revision Changes Path 1.25 +52 -147 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/EntityEmbeddable.vsl Index: EntityEmbeddable.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/EntityEmbeddable.vsl,v retrieving revision 1.24 retrieving revision 1.25 diff -u -w -r1.24 -r1.25 --- EntityEmbeddable.vsl 24 Apr 2006 02:26:51 -0000 1.24 +++ EntityEmbeddable.vsl 26 Apr 2006 15:16:51 -0000 1.25 @@ -1,5 +1,8 @@ // license-header java merge-point -/* Autogenerated by AndroMDA (Entity.vsl) - do not edit */ +// +// Attention: Generated code! Do not modify by hand! +// Generated by: EntityEmbeddable.vsl in andromda-ejb3-cartridge. +// #if ($stringUtils.isNotBlank($entity.packageName)) package $entity.packageName; #end @@ -11,7 +14,7 @@ ## 2. an abstract class ## ## -#if (!$entity.requiresGeneralizationMapping && !$entity.embeddableSuperclass) +#if ($entity.entityImplementationRequired) #**##set ($generatedFile = "${stringUtils.replace($entity.fullyQualifiedEntityEmbeddableName,'.','/')}.java") #else #**##set ($generatedFile = "${stringUtils.replace($entity.fullyQualifiedEntityName,'.','/')}.java") @@ -19,10 +22,10 @@ #set ($identifier = $entity.identifiers.iterator().next()) /** - * Autogenerated POJO EJB#if (!$entity.requiresGeneralizationMapping || $entity.embeddableSuperclass) embeddable/mapped super#end class for ${entity.entityName} containing the + * Autogenerated POJO EJB#if ($entity.entityImplementationRequired) mapped super#end class for ${entity.entityName} containing the * bulk of the entity implementation. * - * This is#if (!$entity.requiresGeneralizationMapping || $entity.embeddableSuperclass) an embeddable/mapped super class and#end autogenerated by AndroMDA using the EJB3 + * This is#if ($entity.entityImplementationRequired) a mapped super class and#end autogenerated by AndroMDA using the EJB3 * cartridge. * * DO NOT MODIFY this class. @@ -30,29 +33,33 @@ $entity.getDocumentation(" * ") * */ -#if (!$entity.requiresGeneralizationMapping || $entity.embeddableSuperclass) +## +## Only set the Entity annotation if it is explicity defined as an embeddable super class +## or business operations exist(implementation is required). +## +#if ($entity.entityImplementationRequired) @javax.persistence.MappedSuperclass #else @javax.persistence.Entity -#end ## ## Include the Table annotation for a base class in single table inheritence hierarchy ## but not in the subclasses. Include in all classes for joined and table per class ## inheritance hierarchies. +## ## If a class is manually specified as an embeddable superclass, add ## the Table annotation to the subclass, not to the base superclass. ## -#if ($entity.requiresGeneralizationMapping && ($entity.embeddableSuperclassGeneralizationExists || $entity.inheritanceTablePerClass || $entity.inheritanceJoined)) +#**##if (!$entity.entityImplementationRequired && (($entity.requiresSpecializationMapping && !$entity.embeddableSuperclass) || ($entity.requiresGeneralizationMapping && ($entity.embeddableSuperclassGeneralizationExists || $entity.inheritanceTablePerClass || $entity.inheritanceJoined)))) @javax.persistence.Table(name = "${entity.tableName}") -#end -#if ($entity.requiresGeneralizationMapping && $entity.listenerEnabled) +#**##end +#**##if ($entity.listenerEnabled) @javax.persistence.EntityListeners({${entity.fullyQualifiedEntityListenerName}.class}) -#end +#**##end ## ## Only include the inheritance related annotations for inheritance mapping ## that doesn't involve embeddable superclass hierarchy. ## -#if ($entity.requiresSpecializationMapping && !$entity.embeddableSuperclass) +#**##if ($entity.requiresSpecializationMapping && !$entity.embeddableSuperclass) @javax.persistence.Inheritance(strategy = javax.persistence.InheritanceType.${entity.inheritanceStrategy}) ## ## Discriminator components only apply to single table mapping strategy @@ -62,17 +69,37 @@ @javax.persistence.DiscriminatorColumn(#if ($entity.discriminatorColumn)name = "${entity.discriminatorColumn}"#set ($argExists = true)#end#if ($entity.discriminatorType)#if ($argExists), #end#**#discriminatorType = javax.persistence.DiscriminatorType.${entity.discriminatorType}#set ($argExists = true)#end#if ($entity.discriminatorColumnDefinition)#if ($argExists), #end#**#columnDefinition = "${entity.discriminatorColumnDefinition}"#set ($argExists = true)#end#if ($entity.discriminatorLength > 0)#if ($argExists), #end#**#length = ${entity.discriminatorLength}#end) @javax.persistence.DiscriminatorValue("${entity.discriminatorValue}") #**##end -#elseif ($entity.requiresGeneralizationMapping && !$entity.embeddableSuperclassGeneralizationExists) +#**##elseif ($entity.requiresGeneralizationMapping && $entity.inheritanceSingleTable) ## -## Only include the DiscriminatorValue annotation for subclasses if the super class -## is NOT an embeddable superclass. +## Only include the DiscriminatorValue annotation for subclasses if +## the inheritance strategy is single table mapping strategy. ## @javax.persistence.DiscriminatorValue("${entity.discriminatorValue}") -#end -#if ($entity.cacheEnabled) +#**##end +#**##if ($entity.cacheEnabled) @org.hibernate.annotations.Cache(usage = org.hibernate.annotations.CacheConcurrencyStrategy.${entity.cacheType}) +#**##end +#**##set ($finders = $entity.getQueryOperations(false)) +#**##if (!$finders.empty) +...@ja...dQueries +({ +#* *##if ($entity.genericFinders) + @javax.persistence.NamedQuery(name = "${entity.name}.findAll", query = "select $stringUtils.uncapitalize(${entity.name}) from ${entity.name} AS $stringUtils.uncapitalize(${entity.name})")#if (!$finders.empty),#end + +#* *##end +#* *##foreach ($finder in $finders) + @javax.persistence.NamedQuery(name = "${entity.name}.${finder.name}", query = "${finder.query}")#if($velocityCount != $finders.size()), #end + +#* *##end +}) +#**##else +#* *##if ($entity.genericFinders) +...@ja...dQuery(name = "${entity.name}.findAll", query = "select $stringUtils.uncapitalize(${entity.name}) from ${entity.name} AS $stringUtils.uncapitalize(${entity.name})")#if (!$finders.empty),#end + +#* *##end +#**##end #end -public#if (!$entity.requiresGeneralizationMapping && !$entity.embeddableSuperclass) abstract class ${entity.entityEmbeddableName}#else class ${entity.entityName}#end +public#if ($entity.entityImplementationRequired) abstract class ${entity.entityEmbeddableName}#else class ${entity.entityName}#end #if($entity.generalization) extends ${entity.generalization.fullyQualifiedName} @@ -167,7 +194,7 @@ /** * Default empty constructor */ - public #if (!$entity.requiresGeneralizationMapping && !$entity.embeddableSuperclass)${entity.entityEmbeddableName}#else${entity.entityName}#end() + public #if ($entity.entityImplementationRequired)${entity.entityEmbeddableName}#else${entity.entityName}#end() { // default null constructor } @@ -186,7 +213,7 @@ * @param $attribute.name Value for the ${attribute.name} property #**##end */ - public #if (!$entity.requiresGeneralizationMapping && !$entity.embeddableSuperclass)${entity.entityEmbeddableName}#else${entity.entityName}#end($entity.getAttributesAsList($allAttributes, true, true, false)) + public #if ($entity.entityImplementationRequired)${entity.entityEmbeddableName}#else${entity.entityName}#end($entity.getAttributesAsList($allAttributes, true, true, false)) { #**##if(!$inheritedAttributes.empty) super($entity.getAttributesAsList($inheritedAttributes, false, true, false)); @@ -210,7 +237,7 @@ * @param $relation.otherEnd.name Value for the ${relation.otherEnd.name} relation role #* *##end */ - public #if (!$entity.requiresGeneralizationMapping && !$entity.embeddableSuperclass)${entity.entityEmbeddableName}#else${entity.entityName}#end($entity.getAttributesAsList($allAttributes, true, true, false)#if(!$allAttributes.empty), #end#foreach ($relation in $relations)${relation.otherEnd.getterSetterTypeName} $relation.otherEnd.name#if($velocityCount != $relations.size()), #end#end) + public #if ($entity.entityImplementationRequired)${entity.entityEmbeddableName}#else${entity.entityName}#end($entity.getAttributesAsList($allAttributes, true, true, false)#if(!$allAttributes.empty), #end#foreach ($relation in $relations)${relation.otherEnd.getterSetterTypeName} $relation.otherEnd.name#if($velocityCount != $relations.size()), #end#end) { #* *##foreach ($attribute in $transform.filterUpdatableAttributes($instanceAttributes, $entity.compositePrimaryKeyPresent)) ${attribute.setterName}(${attribute.name}); @@ -233,7 +260,7 @@ * @param $attribute Value for the $attribute property #**##end */ - public #if (!$entity.requiresGeneralizationMapping && !$entity.embeddableSuperclass)${entity.entityEmbeddableName}#else${entity.entityName}#end(${operation.typedArgumentList}) + public #if ($entity.entityImplementationRequired)${entity.entityEmbeddableName}#else${entity.entityName}#end(${operation.typedArgumentList}) { #**##foreach($attribute in $opArguments) this.${attribute} = $attribute; @@ -247,7 +274,7 @@ * * @param pk Composite primary key */ - public #if (!$entity.requiresGeneralizationMapping && !$entity.embeddableSuperclass)${entity.entityEmbeddableName}#else${entity.entityName}#end(${entity.fullyQualifiedEntityCompositePrimaryKeyName} pk) + public #if ($entity.entityImplementationRequired)${entity.entityEmbeddableName}#else${entity.entityName}#end(${entity.fullyQualifiedEntityCompositePrimaryKeyName} pk) { this.pk = pk; } @@ -670,126 +697,4 @@ #* *##end #**##end #end -#if ($entity.genericFinders) - - // ----------- Generic Finder Methods -------------- - -## -## Do not include the findAll finder for inheriting classes when the -## inheritance strategy is single table. This is defined in the base -## class. -## -## Only render if the findAll finder hasn't been modelled. -## -#**##if ((($entity.inheritanceSingleTable && !$entity.requiresGeneralizationMapping) || !$entity.inheritanceSingleTable) && !$entity.finderFindAllExists) - /** - * Returns the collection of all ${entity.name}s. - * - * @param em javax.persistence.EntityManager - * @return all available ${entity.name} objects - */ -## -## For inheriting classes, replace findAll with findAll${entity.name}s -## - public static java.util.Collection<${entity.name}> findAll#if ($entity.requiresGeneralizationMapping)$stringUtils.capitalize(${entity.name})s#end(javax.persistence.EntityManager em) - { - return em.createQuery("FROM ${entity.name} AS $stringUtils.uncapitalize(${entity.name})").getResultList(); - } - -#**##end -## -## Only include the findByPrimaryKey method if not an inheriting class. -## Classes that inherit from a base class use the primary key identifier -## of the base class. The inheritence relationship is reflected in the -## queries, so queries based on the base/root class are polymorphic. -## -## Do not include the findByPrimaryKey if this bean has a composite -## primary key class. -## -## Only render if the findAll finder hasn't been modelled. -## -#**##if (!$entity.compositePrimaryKeyPresent && !$entity.requiresGeneralizationMapping && !$entity.finderFindByPrimaryKeyExists) -#* *##foreach ($attribute in $entity.getIdentifiers(false)) -#* *##set ($identifierName = $attribute.name) -#* *##set ($identifierType = $attribute.type.fullyQualifiedName) -#* *##set ($identifierTypePrimitive = $attribute.type.primitive) -#* *##if ($attribute.type.primitive) -#* *##set ($identifierTypeWrapperName = $attribute.type.wrapperName) -#* *##end -#* *##end - /** - * Returns the ${entity.name} matching the identifier. - * - * @param em javax.persistence.EntityManager - * @param ${identifierName} the primary key - * @return the ${entity.name} object matching the primary key - */ - public static ${entity.fullyQualifiedEntityName} findByPrimaryKey(javax.persistence.EntityManager em, ${identifierType} ${identifierName}) - { -## If the identifier is a primitive type, use the wrapper class - return em.find(${entity.fullyQualifiedEntityName}.class,#if ($identifierTypePrimitive) new ${identifierTypeWrapperName}(${identifierName})#else ${identifierName}#end); - } -#**##end -#end -#set ($finders = $entity.getQueryOperations(true)) -#if (!$finders.empty) - - // -------- User Defined Finder Methods ------------ - -#**##foreach ($finder in $finders) -#* *##set ($returnType = $finder.returnType.fullyQualifiedName) -#* *##set ($parameterList = $finder.typedArgumentList) -#* *##if ($finder.arguments.empty) -#* *##set ($parameters = "javax.persistence.EntityManager em") -#* *##else -#* *##set ($parameters = "javax.persistence.EntityManager em, ${parameterList}") -#* *##end - /** - * Finder method for ${entity.name} entity using a query. -$finder.getDocumentation(" * ") - * - * @param em javax.persistence.EntityManager -#* *##foreach ($parameter in $finder.arguments) - * @param $parameter.type.fullyQualifiedName ${parameter.name} -#* *##end - * @return $returnType - */ - $finder.visibility static $returnType#if ($finder.returnType.collectionType || $finder.returnType.listType || $finder.returnType.setType || $finder.returnType.mapType)<${entity.name}>#end ${finder.name}($parameters) - { - javax.persistence.Query query = em.createQuery("$finder.query"); -#* *##foreach ($parameter in $finder.arguments) -#* *##set ($index = $velocityCount - 1) -#* *##if ($parameter.firstResult) - query.setFirstResult(${parameter.name}); -#* *##elseif ($parameter.maxResults) - query.setMaxResults(${parameter.name}); -#* *##else -## -## Find the attribute matching the parameter name -## If the parameter type is an enum: -## If -## -#* *##if ($finder.useNamedParameters) - query.setParameter("${parameter.name}",#if ($parameter.type.primitive) new ${parameter.type.wrapperName}(${parameter.name})#else ${parameter.name}#if ($parameter.enumerationTypeOrdinal).ordinal()#elseif ($parameter.enumerationTypeString).name()#end#end#if ($parameter.temporalType), javax.persistence.TemporalType.${parameter.temporalType}#end); -#* *##else - query.setParameter(${index},#if ($parameter.type.primitive) new ${parameter.type.wrapperName}(${parameter.name})#else ${parameter.name}#if ($parameter.enumerationTypeOrdinal).ordinal()#elseif ($parameter.enumerationTypeString).name()#end#end#if ($parameter.temporalType), javax.persistence.TemporalType.${parameter.temporalType}#end); -#* *##end -#* *##end -#* *##end -#* *##if ($finder.useQueryCache && !$entity.useDefaultCacheRegion) - query.setHint("org.hibernate.cacheRegion", "/${entity.fullyQualifiedNamePath}_${finder.name}"); -#* *##end -#* *##if ($stringUtils.equalsIgnoreCase($returnType, "void")) - query.executeUpdate(); -#* *##elseif ($finder.returnType.primitive) - return (($finder.returnType.wrapperName)query.getSingleResult()).${returnType}Value(); -#* *##elseif (!$finder.returnType.collectionType) - return ($returnType)query.getSingleResult(); -#* *##else - return query.getResultList(); -#* *##end - } - -#**##end -#end } \ No newline at end of file |
From: Vance K. <va...@us...> - 2006-04-26 15:12:51
|
User: vancek Date: 06/04/26 08:12:41 Modified: andromda-ejb3/src/main/resources/templates/ejb3 Entity.vsl Log: added NamedQueries and NamedQuery annotations Revision Changes Path 1.17 +23 -1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/Entity.vsl Index: Entity.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/Entity.vsl,v retrieving revision 1.16 retrieving revision 1.17 diff -u -w -r1.16 -r1.17 --- Entity.vsl 11 Apr 2006 15:39:54 -0000 1.16 +++ Entity.vsl 26 Apr 2006 15:12:41 -0000 1.17 @@ -1,5 +1,8 @@ // license-header java merge-point -/* Autogenerated by AndroMDA (EntityImpl.vsl)*/ +// +// Attention: Generated code! Do not modify by hand! +// Generated by: Entity.vsl in andromda-ejb3-cartridge. +// #if ($stringUtils.isNotBlank($entity.packageName)) package $entity.packageName; #end @@ -21,6 +24,25 @@ #if ($entity.listenerEnabled) @javax.persistence.EntityListeners({${entity.fullyQualifiedEntityListenerName}.class}) #end +#set ($finders = $entity.getQueryOperations(false)) +#if (!$finders.empty) +...@ja...dQueries +({ +#**##if ($entity.genericFinders) + @javax.persistence.NamedQuery(name = "${entity.name}.findAll", query = "select $stringUtils.uncapitalize(${entity.name}) from ${entity.name} AS $stringUtils.uncapitalize(${entity.name})")#if (!$finders.empty),#end + +#**##end +#**##foreach ($finder in $finders) + @javax.persistence.NamedQuery(name = "${entity.name}.${finder.name}", query = "${finder.query}")#if($velocityCount != $finders.size()), #end + +#**##end +}) +#else +#**##if ($entity.genericFinders) +...@ja...dQuery(name = "${entity.name}.findAll", query = "select $stringUtils.uncapitalize(${entity.name}) from ${entity.name} AS $stringUtils.uncapitalize(${entity.name})")#if (!$finders.empty),#end + +#**##end +#end public#if ($entity.abstract) abstract#end class ${entity.entityName} extends ${entity.fullyQualifiedEntityEmbeddableName} implements java.io.Serializable |
From: Vance K. <va...@us...> - 2006-04-26 15:10:53
|
User: vancek Date: 06/04/26 08:10:52 Modified: andromda-ejb3/src/main/resources/templates/ejb3 DaoBase.vsl Log: swap normal EJBQL query definitions defined at runtime for named queries defined during deployment in loadAll and finder methods. finder methods without a query paramter use named queries if defined. fix query object enumeration type, firstResult, maxResults. set cacheRegion query hint if caching enabled. Revision Changes Path 1.2 +100 -33 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/DaoBase.vsl Index: DaoBase.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/DaoBase.vsl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- DaoBase.vsl 24 Apr 2006 02:21:43 -0000 1.1 +++ DaoBase.vsl 26 Apr 2006 15:10:51 -0000 1.2 @@ -27,7 +27,7 @@ * objects of type <code>$entity.fullyQualifiedEntityName</code>. * </p> * - * @see $entity.fullyQualifiedEntityName + * @see $entity.fullyQualifiedDaoName */ @javax.ejb.TransactionAttribute(javax.ejb.TransactionAttributeType.REQUIRED) @javax.ejb.Local({${entity.fullyQualifiedDaoName}.class}) @@ -130,7 +130,11 @@ { try { +#if ($entity.genericFinders) + javax.persistence.Query query = emanager.createNamedQuery("${entity.name}.findAll"); +#else javax.persistence.Query query = emanager.createQuery("from ${entity.entityName} as entity"); +#end java.util.List<${entity.fullyQualifiedEntityName}> results = query.getResultList(); this.transformEntities(transform, results); return results; @@ -463,7 +467,66 @@ throws ${entity.fullyQualifiedDaoDefaultExceptionName} #**##end { +#**##if ($finder.namedQuery) + try + { + javax.persistence.Query queryObject = emanager.createNamedQuery("${entity.name}.${finder.name}"); +#* *##foreach($argument in $finder.arguments) +#* *##set ($count = $velocityCount - 1) +#* *##set ($argumentValue = $argument.name) +#* *##if ($argument.firstResult) + queryObject.setFirstResult(${argument.name}); +#* *##elseif ($argument.maxResults) + queryObject.setMaxResults(${argument.name}); +#* *##else +#* *##if($argument.type.primitive) +#* *##set ($argumentValue = "new ${argument.type.wrapperName}($argument.name)") +#* *##else +#* *##set ($argumentValue = "${argument.name}") +#* *##if ($argument.enumerationTypeOrdinal) +#* *##set ($argumentValue = "${argumentValue}.ordinal()") +#* *##elseif ($argument.enumerationTypeString) +#* *##set ($argumentValue = "${argumentValue}.name()") +#* *##end +#* *##end +#* *##if ($argument.temporalType) +#* *##set ($argumentValue = "${argumentValue}, javax.persistence.TemporalType.${argument.temporalType}") +#* *##end +#* *##set ($setParameterOperation = "setParameter") +#* *##if ($argument.type.collectionType || $argument.type.arrayType) +#* *##set ($setParameterOperation = "${setParameterOperation}List") +#* *##end +#* *##if ($finder.useNamedParameters) + queryObject.${setParameterOperation}("$argument.name", $argumentValue); +#* *##else + queryObject.${setParameterOperation}($count, $argumentValue); +#* *##end +#* *##end +#* *##end +#* *##if ($finder.useQueryCache && !$entity.useDefaultCacheRegion) + queryObject.setHint("org.hibernate.cacheRegion", "/${entity.fullyQualifiedNamePath}_${finder.name}"); +#* *##end +#* *##if ($finder.returnType.setType) + java.util.Set results = new java.util.LinkedHashSet(queryObject.getResultList()); + transformEntities(transform, results); + return results; +#* *##elseif ($finder.returnType.collectionType) + java.util.List results = queryObject.getResultList(); + transformEntities(transform, results); + return results; +#* *##else + $finder.returnType.fullyQualifiedName result = ($finder.returnType.fullyQualifiedName)queryObject.getSingleResult(); + result = transformEntity(transform, ($entity.fullyQualifiedName)result); + return result; +#* *##end + } + catch (Exception ex) + { + throw new ${entity.fullyQualifiedDaoDefaultExceptionName}(ex); + } +#**##else return this.${finder.name}(transform, "$finder.getQuery($entity)"#if(!$finder.arguments.empty), ${finder.argumentNames}#end); +#**##end } /** @@ -482,10 +545,23 @@ #**##foreach($argument in $finder.arguments) #* *##set ($count = $velocityCount - 1) #* *##set ($argumentValue = $argument.name) +#* *##if ($argument.firstResult) + queryObject.setFirstResult(${argument.name}); +#* *##elseif ($argument.maxResults) + queryObject.setMaxResults(${argument.name}); +#* *##else #* *##if($argument.type.primitive) #* *##set ($argumentValue = "new ${argument.type.wrapperName}($argument.name)") -#* *##elseif ($argument.type.enumeration) -#* *##set ($argumentValue = "${argument.name}.getValue()") +#* *##else +#* *##set ($argumentValue = "${argument.name}") +#* *##if ($argument.enumerationTypeOrdinal) +#* *##set ($argumentValue = "${argumentValue}.ordinal()") +#* *##elseif ($argument.enumerationTypeString) +#* *##set ($argumentValue = "${argumentValue}.name()") +#* *##end +#* *##end +#* *##if ($argument.temporalType) +#* *##set ($argumentValue = "${argumentValue}, javax.persistence.TemporalType.${argument.temporalType}") #* *##end #* *##set ($setParameterOperation = "setParameter") #* *##if ($argument.type.collectionType || $argument.type.arrayType) @@ -497,31 +573,22 @@ queryObject.${setParameterOperation}($count, $argumentValue); #* *##end #**##end -#**##if ($finder.returnType.setType || !$finder.returnType.collectionType) +#**##end +#**##if ($finder.useQueryCache && !$entity.useDefaultCacheRegion) + queryObject.setHint("org.hibernate.cacheRegion", "/${entity.fullyQualifiedNamePath}_${finder.name}"); +#**##end +#**##if ($finder.returnType.setType) java.util.Set results = new java.util.LinkedHashSet(queryObject.getResultList()); -#**##else + transformEntities(transform, results); + return results; +#**##elseif ($finder.returnType.collectionType) java.util.List results = queryObject.getResultList(); -#**##end -#**##if (!$finder.returnType.collectionType) - Object result = null; - if (results != null) - { - if (results.size() > 1) - { - throw new ${entity.fullyQualifiedDaoDefaultExceptionName}( - "More than one instance of '${finder.returnType.fullyQualifiedName}" - + "' was found when executing query --> '" + queryString + "'"); - } - else if (results.size() == 1) - { - result = ($entity.fullyQualifiedName)results.iterator().next(); - } - } - result = transformEntity(transform, ($entity.fullyQualifiedName)result); - return result; -#**##else transformEntities(transform, results); return results; +#**##else + $finder.returnType.fullyQualifiedName result = ($finder.returnType.fullyQualifiedName)queryObject.getSingleResult(); + result = transformEntity(transform, ($entity.fullyQualifiedName)result); + return result; #**##end } catch (Exception ex) |
From: Vance K. <va...@us...> - 2006-04-24 02:57:56
|
User: vancek Date: 06/04/23 19:57:54 Modified: andromda-ejb3/src/main/uml EJB3MetafacadeModel.xml.zip Log: added EJB3DependencyFacade and EJB3EmbeddedValueFacade metafacades. added containsEmbeddedObject to EJB3EntityAttributeFacade. added root, valuebObjectReferences and defaultPersistenceContextUnitName to EJB3EntityFacade, added DAO attributes to EJB3EntityFacade. Revision Changes Path 1.31 +181 -190 cartridges/andromda-ejb3/src/main/uml/EJB3MetafacadeModel.xml.zip <<Binary file>> |
From: Vance K. <va...@us...> - 2006-04-24 02:55:41
|
User: vancek Date: 06/04/23 19:55:36 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3ManageableEntityFacadeLogicImpl.java Log: extracted PERSISTENCE_CONTEXT_UNIT_NAME to EJB3Globals Revision Changes Path 1.3 +4 -9 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3ManageableEntityFacadeLogicImpl.java Index: EJB3ManageableEntityFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3ManageableEntityFacadeLogicImpl.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- EJB3ManageableEntityFacadeLogicImpl.java 17 Feb 2006 02:40:51 -0000 1.2 +++ EJB3ManageableEntityFacadeLogicImpl.java 24 Apr 2006 02:55:36 -0000 1.3 @@ -4,6 +4,7 @@ import java.util.Collection; import java.util.Iterator; +import org.andromda.cartridges.ejb3.EJB3Globals; import org.andromda.cartridges.ejb3.EJB3Profile; import org.andromda.metafacades.uml.AttributeFacade; import org.andromda.metafacades.uml.EntityAttribute; @@ -42,12 +43,6 @@ public static final String DELETE_EXCEPTION_NAME_PATTERN = "manageableDeleteExceptionNamePattern"; /** - * The property which stores the persistence context unit name associated with the default - * Entity Manager. - */ - private static final String PERSISTENCE_CONTEXT_UNIT_NAME = "persistenceContextUnitName"; - - /** * The property that stores the JNDI name prefix. */ public static final String SERVICE_JNDI_NAME_PREFIX = "jndiNamePrefix"; @@ -174,7 +169,8 @@ */ protected String handleGetDefaultPersistenceContextUnitName() { - return StringUtils.trimToEmpty(ObjectUtils.toString(this.getConfiguredProperty(PERSISTENCE_CONTEXT_UNIT_NAME))); + return StringUtils.trimToEmpty( + ObjectUtils.toString(this.getConfiguredProperty(EJB3Globals.PERSISTENCE_CONTEXT_UNIT_NAME))); } /** @@ -283,5 +279,4 @@ return displayAttribute; } - } \ No newline at end of file |
From: Vance K. <va...@us...> - 2006-04-24 02:54:57
|
User: vancek Date: 06/04/23 19:54:56 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3FinderMethodFacadeLogicImpl.java Log: refactored handleGetQuery - extracted translation from OCL to method and incorporated hibernate query implementation Revision Changes Path 1.7 +81 -55 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3FinderMethodFacadeLogicImpl.java Index: EJB3FinderMethodFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3FinderMethodFacadeLogicImpl.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -w -r1.6 -r1.7 --- EJB3FinderMethodFacadeLogicImpl.java 11 Apr 2006 16:16:07 -0000 1.6 +++ EJB3FinderMethodFacadeLogicImpl.java 24 Apr 2006 02:54:56 -0000 1.7 @@ -5,6 +5,7 @@ import org.andromda.cartridges.ejb3.EJB3Globals; import org.andromda.cartridges.ejb3.EJB3Profile; +import org.andromda.metafacades.uml.ModelElementFacade; import org.andromda.metafacades.uml.ParameterFacade; import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang.StringUtils; @@ -37,65 +38,28 @@ // --------------- methods --------------------- /** - * @see org.andromda.cartridges.ejb3.metafacades.EJB3FinderMethodFacade#getQuery() + * Stores the translated query so that its only translated once. */ - protected java.lang.String handleGetQuery() - { - // first see if there is a query stored as a constraint - String queryString = super.getQuery("query.Hibernate-QL"); + private String translatedQuery = null; - // otherwise see if there is a query stored as a tagged value - if (StringUtils.isEmpty(queryString)) + /** + * Retrieves the translated query. + */ + private String getTranslatedQuery() { - Object value = this.findTaggedValue(EJB3Profile.TAGGEDVALUE_EJB_QUERY); - queryString = (String)value; - if (queryString != null) + if (this.translatedQuery == null) { - // remove any excess whitespace - queryString = queryString.replaceAll("[$\\s]+", " "); + this.translatedQuery = super.getQuery("query.Hibernate-QL"); } + return this.translatedQuery; } - // if there wasn't any stored query, create one by default. - if (StringUtils.isEmpty(queryString)) - { - String variableName = StringUtils.uncapitalize(this.getOwner().getName()); - queryString = "FROM " + this.getOwner().getName() + " AS " + variableName; - if (this.getArguments().size() > 0) - { - final Collection parameters = this.getArguments(); - if (parameters != null && !parameters.isEmpty()) - { - Iterator parameterIt = parameters.iterator(); - for (int ctr = 0; parameterIt.hasNext(); ctr++) - { - EJB3FinderMethodArgumentFacade param = (EJB3FinderMethodArgumentFacade)parameterIt.next(); - if (!param.isFirstResult() && !param.isMaxResults()) - { - if (ctr == 0) - { - queryString = queryString + " WHERE"; - } - String parameter = "?"; - if (this.isUseNamedParameters()) - { - parameter = ":" + param.getName(); - } - else - { - parameter = parameter + ctr; - } - queryString = queryString + " " + variableName + "." + param.getName() + " = " + parameter; - if (parameterIt.hasNext()) + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3FinderMethodFacade#getQuery() + */ + protected java.lang.String handleGetQuery() { - queryString = queryString + " AND"; - } - } - } - } - } - } - return queryString; + return this.getQuery((EJB3EntityFacade)null); } /** @@ -129,4 +93,66 @@ return queryCacheEnabled; } + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3FinderMethodFacadeLogic#handleGetQuery(org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacade) + */ + protected String handleGetQuery(EJB3EntityFacade entity) + { + // first see if we can retrieve the query from the super class as an OCL + // translation + String queryString = this.getTranslatedQuery(); + + // otherwise see if there is a query stored as a tagged value + if (StringUtils.isEmpty(queryString)) + { + Object value = this.findTaggedValue(EJB3Profile.TAGGEDVALUE_EJB_QUERY); + queryString = (String)value; + if (queryString != null) + { + // remove any excess whitespace + queryString = queryString.replaceAll("[$\\s]+", " "); + } + } + + // if there wasn't any stored query, create one by default. + if (StringUtils.isEmpty(queryString)) + { + ModelElementFacade owner; + if (entity == null) + { + owner = this.getOwner(); + } + else + { + owner = entity; + } + String variableName = StringUtils.uncapitalize(owner.getName()); + queryString = "from " + owner.getName() + " as " + variableName; + if (this.getArguments().size() > 0) + { + queryString = queryString + " where"; + Collection arguments = this.getArguments(); + if (arguments != null && !arguments.isEmpty()) + { + Iterator argumentIt = arguments.iterator(); + for (int ctr = 0; argumentIt.hasNext(); ctr++) + { + ParameterFacade argument = (ParameterFacade)argumentIt.next(); + String parameter = "?"; + if (this.isUseNamedParameters()) + { + parameter = ":" + argument.getName(); + } + queryString = queryString + " " + variableName + "." + argument.getName() + " = " + parameter; + if (argumentIt.hasNext()) + { + queryString = queryString + " and"; + } + } + } + } + } + return queryString; + } + } \ No newline at end of file |
From: Vance K. <va...@us...> - 2006-04-24 02:52:47
|
User: vancek Date: 06/04/23 19:52:46 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3EntityFacadeLogicImpl.java Log: added implementations for handleGetDaoName, handleGetFullyQualifiedDaoName, handleGetDaoImplementationName, handleGetFullyQualifiedDaoImplementationName, handleGetDaoBaseName, handleGetFullyQualifiedDaoBaseName, handleIsDaoBusinessOperationsPresent, handleGetDaoBusinessOperations, handleGetValueObjectReferences, handleGetAllValueObjectReferences, handleIsDaoImplementationRequired, handleGetDaoNoTransformationConstantName, handleGetDaoDefaultExceptionName, handleGetFullyQualifiedDaoDefaultExceptionName, handleGetValueObjectReferences, handleGetRoot and handleGetDefaultPersistenceContextUnitName Revision Changes Path 1.18 +263 -0 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.17 retrieving revision 1.18 diff -u -w -r1.17 -r1.18 --- EJB3EntityFacadeLogicImpl.java 20 Mar 2006 08:47:00 -0000 1.17 +++ EJB3EntityFacadeLogicImpl.java 24 Apr 2006 02:52:46 -0000 1.18 @@ -16,14 +16,19 @@ import org.andromda.metafacades.uml.ClassifierFacade; import org.andromda.metafacades.uml.DependencyFacade; import org.andromda.metafacades.uml.EntityAttribute; +import org.andromda.metafacades.uml.EnumerationFacade; +import org.andromda.metafacades.uml.FilteredCollection; +import org.andromda.metafacades.uml.GeneralizableElementFacade; import org.andromda.metafacades.uml.MetafacadeUtils; import org.andromda.metafacades.uml.OperationFacade; import org.andromda.metafacades.uml.TypeMappings; import org.andromda.metafacades.uml.UMLMetafacadeProperties; import org.andromda.metafacades.uml.UMLProfile; +import org.andromda.metafacades.uml.ValueObject; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.Predicate; import org.apache.commons.lang.BooleanUtils; +import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; @@ -167,6 +172,21 @@ */ private static final String USE_DEFAULT_CACHE_REGION = "useDefaultCacheRegion"; + /** + * The pattern used to construct the DAO implementation name. + */ + private static final String DAO_IMPLEMENTATION_PATTERN = "daoImplementationNamePattern"; + + /** + * The pattern used to construct the DAO base name. + */ + private static final String DAO_BASE_PATTERN = "daoBaseNamePattern"; + + /** + * The property which stores the pattern defining the DAO default exception name. + */ + private static final String DAO_DEFAULT_EXCEPTION_NAME_PATTERN = "daoDefaultExceptionNamePattern"; + // ---------------- constructor ------------------------------- public EJB3EntityFacadeLogicImpl (Object metaObject, String context) @@ -1097,4 +1117,247 @@ { return BooleanUtils.toBoolean(String.valueOf(this.getConfiguredProperty(USE_DEFAULT_CACHE_REGION))); } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleGetDaoName() + */ + protected String handleGetDaoName() + { + return MessageFormat.format( + getDaoNamePattern(), + new Object[] {StringUtils.trimToEmpty(this.getName())}); + } + + /** + * Gets the value of the {@link #DAO_PATTERN} + * + * @return the DAO name pattern. + */ + private String getDaoNamePattern() + { + return String.valueOf(this.getConfiguredProperty(EJB3Globals.DAO_PATTERN)); + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleGetFullyQualifiedDaoName() + */ + protected String handleGetFullyQualifiedDaoName() + { + return EJB3MetafacadeUtils.getFullyQualifiedName( + this.getPackageName(), + this.getDaoName(), + null); + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleGetDaoImplementationName() + */ + protected String handleGetDaoImplementationName() + { + return MessageFormat.format( + getDaoImplementationNamePattern(), + new Object[] {StringUtils.trimToEmpty(this.getName())}); + } + + /** + * Gets the value of the {@link #DAO_IMPLEMENTATION_PATTERN} + * + * @return the DAO implementation name pattern. + */ + private String getDaoImplementationNamePattern() + { + return String.valueOf(this.getConfiguredProperty(DAO_IMPLEMENTATION_PATTERN)); + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic + * #handleGetFullyQualifiedDaoImplementationName() + */ + protected String handleGetFullyQualifiedDaoImplementationName() + { + return EJB3MetafacadeUtils.getFullyQualifiedName( + this.getPackageName(), + this.getDaoImplementationName(), + null); + } + + /* + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleGetDaoBaseName() + */ + protected String handleGetDaoBaseName() + { + return MessageFormat.format( + getDaoBaseNamePattern(), + new Object[] {StringUtils.trimToEmpty(this.getName())}); + } + + /** + * Gets the value of the {@link #DAO_BASE_PATTERN} + * + * @return the DAO base name pattern. + */ + private String getDaoBaseNamePattern() + { + return String.valueOf(this.getConfiguredProperty(DAO_BASE_PATTERN)); + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleGetFullyQualifiedDaoBaseName() + */ + protected String handleGetFullyQualifiedDaoBaseName() + { + return EJB3MetafacadeUtils.getFullyQualifiedName( + this.getPackageName(), + this.getDaoBaseName(), + null); + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleIsDaoBusinessOperationsPresent() + */ + protected boolean handleIsDaoBusinessOperationsPresent() + { + return this.getDaoBusinessOperations() != null && !this.getDaoBusinessOperations().isEmpty(); + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleGetDaoBusinessOperations() + */ + protected Collection handleGetDaoBusinessOperations() + { + // operations that are not finders and static + Collection finders = this.getQueryOperations(); + Collection operations = this.getOperations(); + + Collection nonFinders = CollectionUtils.subtract(operations, finders); + CollectionUtils.filter( + nonFinders, + new Predicate() + { + public boolean evaluate(Object object) + { + return ((OperationFacade)object).isStatic(); + } + } + ); + return nonFinders; + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleGetValueObjectReferences() + */ + protected Collection handleGetValueObjectReferences() + { + return this.getValueObjectReferences(false); + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleGetAllValueObjectReferences() + */ + protected Collection handleGetAllValueObjectReferences() + { + return this.getValueObjectReferences(true); + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleIsDaoImplementationRequired() + */ + protected boolean handleIsDaoImplementationRequired() + { + return !this.getValueObjectReferences().isEmpty() || !this.getDaoBusinessOperations().isEmpty() || + !this.getQueryOperations(true).isEmpty(); + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleGetDaoNoTransformationConstantName() + */ + protected String handleGetDaoNoTransformationConstantName() + { + return EJB3Globals.TRANSFORMATION_CONSTANT_PREFIX + EJB3Globals.NO_TRANSFORMATION_CONSTANT_SUFFIX; + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleGetValueObjectReferences(boolean) + */ + protected Collection handleGetValueObjectReferences(boolean follow) + { + final Collection sourceDependencies = new ArrayList(this.getSourceDependencies()); + if (follow) + { + for ( + GeneralizableElementFacade entity = this.getGeneralization(); entity != null; + entity = entity.getGeneralization()) + { + sourceDependencies.addAll(entity.getSourceDependencies()); + } + } + return new FilteredCollection(sourceDependencies) + { + public boolean evaluate(Object object) + { + boolean valid = false; + Object targetElement = ((DependencyFacade)object).getTargetElement(); + if (targetElement instanceof ClassifierFacade) + { + ClassifierFacade element = (ClassifierFacade)targetElement; + valid = element.isDataType() || element instanceof ValueObject || element instanceof EnumerationFacade; + } + return valid; + } + }; + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleGetRoot() + */ + protected Object handleGetRoot() + { + GeneralizableElementFacade generalization = this; + for ( + ; generalization.getGeneralization() != null && generalization instanceof EJB3EntityFacade; + generalization = generalization.getGeneralization()) + ; + return generalization; + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleGetDefaultPersistenceContextUnitName() + */ + protected String handleGetDefaultPersistenceContextUnitName() + { + return StringUtils.trimToEmpty( + ObjectUtils.toString(this.getConfiguredProperty(EJB3Globals.PERSISTENCE_CONTEXT_UNIT_NAME))); + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleGetDaoDefaultExceptionName() + */ + protected String handleGetDaoDefaultExceptionName() + { + return MessageFormat.format( + getDaoDefaultExceptionNamePattern(), + new Object[] {StringUtils.trimToEmpty(this.getName())}); + } + + /** + * Gets the value of the {@link #DAO_DEFAULT_EXCEPTION_NAME_PATTERN} + * + * @return the DAO default exception name pattern. + */ + private String getDaoDefaultExceptionNamePattern() + { + return String.valueOf(this.getConfiguredProperty(DAO_DEFAULT_EXCEPTION_NAME_PATTERN)); + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic# + * handleGetFullyQualifiedDaoDefaultExceptionName() + */ + protected String handleGetFullyQualifiedDaoDefaultExceptionName() + { + return EJB3MetafacadeUtils.getFullyQualifiedName( + this.getPackageName(), + this.getDaoDefaultExceptionName(), + null); + } } \ No newline at end of file |
From: Vance K. <va...@us...> - 2006-04-24 02:47:37
|
User: vancek Date: 06/04/23 19:47:36 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3EntityAttributeFacadeLogicImpl.java Log: implemented handleIsContainsEmbeddedObject Revision Changes Path 1.13 +13 -0 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3EntityAttributeFacadeLogicImpl.java Index: EJB3EntityAttributeFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3EntityAttributeFacadeLogicImpl.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -w -r1.12 -r1.13 --- EJB3EntityAttributeFacadeLogicImpl.java 16 Mar 2006 15:31:29 -0000 1.12 +++ EJB3EntityAttributeFacadeLogicImpl.java 24 Apr 2006 02:47:36 -0000 1.13 @@ -490,4 +490,17 @@ final String value = (String)findTaggedValue(EJB3Profile.TAGGEDVALUE_PERSISTENCE_COLUMN_UPDATE); return StringUtils.isNotBlank(value) ? Boolean.valueOf(value).booleanValue() : true; } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacadeLogic#handleIsContainsEmbeddedObject() + */ + protected boolean handleIsContainsEmbeddedObject() + { + boolean returnValue = false; + if (this.getType() instanceof EJB3EmbeddedValueFacade) + { + returnValue = true; + } + return returnValue; + } } \ No newline at end of file |
From: Vance K. <va...@us...> - 2006-04-24 02:46:11
|
User: vancek Date: 06/04/23 19:46:11 Added: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3EmbeddedValueFacadeLogicImpl.java Log: initial revision - embedded value logic Revision Changes Path 1.1 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3EmbeddedValueFacadeLogicImpl.java Index: EJB3EmbeddedValueFacadeLogicImpl.java =================================================================== package org.andromda.cartridges.ejb3.metafacades; import java.text.MessageFormat; import org.andromda.cartridges.ejb3.EJB3Profile; import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.StringUtils; /** * MetafacadeLogic implementation for org.andromda.cartridges.ejb3.metafacades.EJB3EmbeddedValueFacade. * * @see org.andromda.cartridges.ejb3.metafacades.EJB3EmbeddedValueFacade */ public class EJB3EmbeddedValueFacadeLogicImpl extends EJB3EmbeddedValueFacadeLogic { /** * The property which stores the pattern defining the embedded value * implementation name. */ static final String EMBEDDED_VALUE_IMPLEMENTATION_NAME_PATTERN = "embeddedValueImplementationNamePattern"; public EJB3EmbeddedValueFacadeLogicImpl (Object metaObject, String context) { super (metaObject, context); } /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3EmbeddedValueFacade#isImmutable() */ protected boolean handleIsImmutable() { boolean immutable = false; Object value = this.findTaggedValue(EJB3Profile.TAGGEDVALUE_PERSISTENCE_IMMUTABLE); if (value != null) { immutable = Boolean.valueOf(ObjectUtils.toString(value)).booleanValue(); } return immutable; } /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3EmbeddedValueFacade#getImplementationName() */ protected java.lang.String handleGetImplementationName() { return MessageFormat.format( getImplementationNamePattern(), new Object[] {StringUtils.trimToEmpty(this.getName())}); } /** * Gets the value of the {@link #EMBEDDED_VALUE_IMPLEMENTATION_NAME_PATTERN} * * @return the embedded value name pattern. */ private String getImplementationNamePattern() { return String.valueOf(this.getConfiguredProperty(EMBEDDED_VALUE_IMPLEMENTATION_NAME_PATTERN)); } } |
From: Vance K. <va...@us...> - 2006-04-24 02:45:52
|
User: vancek Date: 06/04/23 19:45:52 Added: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3DependencyFacadeLogicImpl.java Log: initial revision - dependency logic Revision Changes Path 1.1 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3DependencyFacadeLogicImpl.java Index: EJB3DependencyFacadeLogicImpl.java =================================================================== package org.andromda.cartridges.ejb3.metafacades; import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import org.andromda.cartridges.ejb3.EJB3Globals; import org.andromda.metafacades.uml.DependencyFacade; import org.andromda.metafacades.uml.ModelElementFacade; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.Predicate; import org.apache.commons.lang.StringUtils; /** * MetafacadeLogic implementation for org.andromda.cartridges.ejb3.metafacades.EJB3DependencyFacade. * * @see org.andromda.cartridges.ejb3.metafacades.EJB3DependencyFacade */ public class EJB3DependencyFacadeLogicImpl extends EJB3DependencyFacadeLogic { /** * The suffix for the transformation annonymous name. */ private static final String TRANSFORMATION_ANONYMOUS_NAME_SUFFIX = "_TRANSFORMER"; /** * The suffix for the transformation to entity method name. */ private static final String TRANSFORMATION_TO_ENTITY_METHOD_NAME_SUFFIX = "ToEntity"; /** * The suffix for the value object to entity transformer. */ private static final String VALUE_OBJECT_TO_ENTITY_TRANSFORMER_SUFFIX = "Transformer"; public EJB3DependencyFacadeLogicImpl (Object metaObject, String context) { super (metaObject, context); } /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3DependencyFacade#getTransformationConstantName() */ protected java.lang.String handleGetTransformationConstantName() { return EJB3Globals.TRANSFORMATION_CONSTANT_PREFIX + this.getName().toUpperCase(); } /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3DependencyFacade#getTransformationMethodName() */ protected java.lang.String handleGetTransformationMethodName() { return EJB3Globals.TRANSFORMATION_METHOD_PREFIX + StringUtils.capitalize(this.getName()); } /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3DependencyFacade#getTransformationAnonymousName() */ protected java.lang.String handleGetTransformationAnonymousName() { return this.getName().toUpperCase() + TRANSFORMATION_ANONYMOUS_NAME_SUFFIX; } /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3DependencyFacade#isCircularReference() */ protected boolean handleIsCircularReference() { boolean circularReference = false; final ModelElementFacade sourceElement = this.getSourceElement(); final ModelElementFacade targetElement = this.getTargetElement(); final Collection sourceDependencies = targetElement.getSourceDependencies(); if (sourceDependencies != null && !sourceDependencies.isEmpty()) { circularReference = CollectionUtils.find(sourceDependencies, new Predicate() { public boolean evaluate(Object object) { DependencyFacade dependency = (DependencyFacade)object; return dependency != null && dependency.getTargetElement().equals(sourceElement); } }) != null; } return circularReference; } /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3DependencyFacade#getTransformationConstantValue() */ protected int handleGetTransformationConstantValue() { int value = 0; ModelElementFacade element = this.getSourceElement(); if (element instanceof EJB3EntityFacade) { final List hierarchy = new ArrayList(); for (EJB3EntityFacade entity = (EJB3EntityFacade)element; entity != null; entity = (EJB3EntityFacade)entity.getGeneralization()) { hierarchy.add(entity); } boolean breakOut = false; for (int ctr = hierarchy.size() - 1; ctr >= 0; ctr--) { final EJB3EntityFacade generalization = (EJB3EntityFacade)hierarchy.get(ctr); for (final Iterator referenceIterator = generalization.getValueObjectReferences().iterator(); referenceIterator.hasNext();) { final Object reference = referenceIterator.next(); value++; if (reference.equals(this)) { breakOut = true; break; } } if (breakOut) { break; } } } return value; } /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3DependencyFacade#getTransformationToCollectionMethodName() */ protected java.lang.String handleGetTransformationToCollectionMethodName() { return EJB3Globals.TRANSFORMATION_METHOD_PREFIX + StringUtils.capitalize(this.getName()) + EJB3Globals.TRANSFORMATION_TO_COLLECTION_METHOD_SUFFIX; } /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3DependencyFacade#getDaoName() */ protected java.lang.String handleGetDaoName() { return MessageFormat.format( getDaoNamePattern(), new Object[] {StringUtils.trimToEmpty(this.getName())}); } /** * Gets the value of the {@link SpringGlobals#DAO_PATTERN}. * * @return the DAO name pattern. */ private String getDaoNamePattern() { return String.valueOf(this.getConfiguredProperty(EJB3Globals.DAO_PATTERN)); } /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3DependencyFacade#getDaoGetterName() */ protected java.lang.String handleGetDaoGetterName() { return "get" + StringUtils.capitalize(this.getDaoName()); } /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3DependencyFacade#getDaoSetterName() */ protected java.lang.String handleGetDaoSetterName() { return "set" + StringUtils.capitalize(this.getDaoName()); } /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3DependencyFacade#getTransformationToEntityCollectionMethodName() */ protected java.lang.String handleGetTransformationToEntityCollectionMethodName() { return this.getTransformationToEntityMethodName() + EJB3Globals.TRANSFORMATION_TO_COLLECTION_METHOD_SUFFIX; } /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3DependencyFacade#getTransformationToEntityMethodName() */ protected java.lang.String handleGetTransformationToEntityMethodName() { return this.getName() + TRANSFORMATION_TO_ENTITY_METHOD_NAME_SUFFIX; } /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3DependencyFacade#getValueObjectToEntityTransformerName() */ protected java.lang.String handleGetValueObjectToEntityTransformerName() { return StringUtils.capitalize(this.getTransformationToEntityMethodName()) + VALUE_OBJECT_TO_ENTITY_TRANSFORMER_SUFFIX; } } |
From: Vance K. <va...@us...> - 2006-04-24 02:45:00
|
User: vancek Date: 06/04/23 19:44:59 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3 EJB3Globals.java Log: added DAO related constants (pattern names and transformation constants). refactored PERSISTENCE_CONTEXT_UNIT_NAME constant to here. Revision Changes Path 1.9 +31 -0 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/EJB3Globals.java Index: EJB3Globals.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/EJB3Globals.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -w -r1.8 -r1.9 --- EJB3Globals.java 11 Apr 2006 16:07:50 -0000 1.8 +++ EJB3Globals.java 24 Apr 2006 02:44:59 -0000 1.9 @@ -203,4 +203,35 @@ * The namespace delimiter (seperates namespaces). */ public static final char NAMESPACE_DELIMITER = '.'; + + /** + * Defines the prefix given to the transformation constants. + */ + public final static String TRANSFORMATION_CONSTANT_PREFIX = "TRANSFORM_"; + + /** + * The suffix given to the no transformation constant. + */ + public static final String NO_TRANSFORMATION_CONSTANT_SUFFIX = "NONE"; + + /** + * The prefix given to transformation method names. + */ + public static final String TRANSFORMATION_METHOD_PREFIX = "to"; + + /** + * The suffix given to transformation method names. + */ + public static final String TRANSFORMATION_TO_COLLECTION_METHOD_SUFFIX = "Collection"; + + /** + * The pattern used to construct the DAO name. + */ + public static final String DAO_PATTERN = "daoNamePattern"; + + /** + * The property which stores the persistence context unit name associated with the default + * Entity Manager. + */ + public static final String PERSISTENCE_CONTEXT_UNIT_NAME = "persistenceContextUnitName"; } |
From: Vance K. <va...@us...> - 2006-04-24 02:42:52
|
User: vancek Date: 06/04/23 19:42:51 Modified: andromda-ejb3/src/main/resources/META-INF/andromda namespace.xml Log: added DAO outlets and DAO Property group with DAO related properties. defined embeddedValueImplementationNamePattern property Revision Changes Path 1.21 +86 -0 cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/namespace.xml Index: namespace.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/namespace.xml,v retrieving revision 1.20 retrieving revision 1.21 diff -u -w -r1.20 -r1.21 --- namespace.xml 11 Apr 2006 16:04:28 -0000 1.20 +++ namespace.xml 24 Apr 2006 02:42:51 -0000 1.21 @@ -59,6 +59,29 @@ is generated. </documentation> </property> + <property name="daos"> + <documentation> + The location to which EJB3 DAOs, and any support classes + are generated. + <p> + Please <strong>NOTE</strong> + that the dao implementation classes will also be generated to this location when + <strong>no operations</strong> are present on the entity with <em>classifier scope</em>. + </p> + </documentation> + </property> + <property name="dao-impls"> + <documentation> + The location to which EJB3 DAO implementation + classes will be generated (if there are any classifier scoped business + operations modeled on any entity). + <p> + Please <strong>NOTE</strong> + that the dao implementation classes will be generated to the <em>daos</em> outlet when + <strong>no operations</strong> are present on the entity with <em>classifier scope</em>. + </p> + </documentation> + </property> <property name="application-config"> <documentation> The location where the application specific XML @@ -535,6 +558,13 @@ session bean operations as web services. </documentation> </property> + <property name="embeddedValueImplementationNamePattern"> + <default>{0}Impl</default> + <documentation> + The pattern to use when constructing an embedded + value implementation name. + </documentation> + </property> </propertyGroup> <propertyGroup name="MDB Properties"> <property name="messageDrivenDestinationType"> @@ -752,6 +782,62 @@ </documentation> </property> </propertyGroup> + <propertyGroup name="DAO Properties"> + <property name="daoInheritanceEnabled"> + <default>false</default> + <documentation> + Whether or not the DAOs should make up an inheritance tree in + the same way as their respective entities. This is disabled + by default but you might want to enable it if you prefer to have + top-level DAO operations visible in child DAO classes. The EJB3 + cartridge uses JDK5 generics, further enahanced by enabling the + <code>enableTemplating</code> namespace property. + </documentation> + </property> + <property name="enableDaoPropertiesCreateMethod"> + <default>true</default> + <documentation> + Whether or not the create methods on the DAOs taking properties + from the entity shall be generated. + </documentation> + </property> + <property name="daoNamePattern"> + <default>{0}Dao</default> + <documentation> + The pattern to use when constructing the DAO name. <em>{0}</em> + is used to represent the entity name in the model, so if you + specified a value of <code>{0}Dao</code> all + the entities generated would have a suffix of "Dao". + </documentation> + </property> + <property name="daoBaseNamePattern"> + <default>{0}DaoBase</default> + <documentation> + The pattern to use when constructing the base DAO's name. + <em>{0}</em> is used to represent the entity name + in the model, so if you specified a value of + <code>{0}DaoBase</code> all the entities generated + would have a suffix of "DaoBase". + </documentation> + </property> + <property name="daoImplementationNamePattern"> + <default>{0}DaoImpl</default> + <documentation> + The pattern to use when constructing the DAO's + implementation name. <em>{0}</em> is used to represent + the entity name in the model, so if you specified a value of + <code>{0}DaoImpl</code> all the entities generated + would have a suffix of "DaoImpl". + </documentation> + </property> + <property name="daoDefaultExceptionNamePattern"> + <default>{0}DaoException</default> + <documentation> + The pattern to use when constructing the DAO + default exception name. + </documentation> + </property> + </propertyGroup> <propertyGroup name="WebService Properties"> <property name="webServiceDefaultStyle"> <default>rpc</default> |
From: Vance K. <va...@us...> - 2006-04-24 02:41:20
|
User: vancek Date: 06/04/23 19:41:20 Modified: andromda-ejb3/src/main/resources/META-INF/andromda metafacades.xml Log: added EJB3DependencyFacade and EJB3EmbeddedValueFacade metafacade definitions Revision Changes Path 1.22 +16 -0 cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/metafacades.xml Index: metafacades.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/metafacades.xml,v retrieving revision 1.21 retrieving revision 1.22 diff -u -w -r1.21 -r1.22 --- metafacades.xml 11 Apr 2006 16:02:48 -0000 1.21 +++ metafacades.xml 24 Apr 2006 02:41:19 -0000 1.22 @@ -44,6 +44,10 @@ <property reference="allowDefaultServiceException"/> <property reference="compositionDefinesEagerLoading"/> <property reference="jndiNamePrefix"/> + <property reference="daoNamePattern"/> + <property reference="daoBaseNamePattern"/> + <property reference="daoImplementationNamePattern"/> + <property reference="daoDefaultExceptionNamePattern"/> <!-- Manageable Entity Metafacades --> <metafacade class="org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacadeLogicImpl" contextRoot="true"> @@ -218,4 +222,16 @@ <stereotype>PERSISTENCE_CONTEXT</stereotype> </mapping> </metafacade> + <metafacade class="org.andromda.cartridges.ejb3.metafacades.EJB3DependencyFacadeLogicImpl"/> + <metafacade class="org.andromda.cartridges.ejb3.metafacades.EJB3EmbeddedValueFacadeLogicImpl" contextRoot="true"> + <mapping> + <stereotype>EMBEDDED_VALUE</stereotype> + </mapping> + <property reference="embeddedValueImplementationNamePattern"/> + </metafacade> + <metafacade class="org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacadeLogicImpl"> + <mapping> + <context>org.andromda.cartridges.ejb3.metafacades.EJB3EmbeddedValueFacade</context> + </mapping> + </metafacade> </metafacades> \ No newline at end of file |
From: Vance K. <va...@us...> - 2006-04-24 02:39:18
|
User: vancek Date: 06/04/23 19:39:17 Modified: andromda-ejb3/src/main/resources/META-INF/andromda cartridge.xml Log: added GlobalMacros macro library, added DAO templates, added embedded value object templates, added entities modelElement to ejb-jar and jboss dd's Revision Changes Path 1.22 +118 -5 cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/cartridge.xml Index: cartridge.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/cartridge.xml,v retrieving revision 1.21 retrieving revision 1.22 diff -u -w -r1.21 -r1.22 --- cartridge.xml 11 Apr 2006 15:56:57 -0000 1.21 +++ cartridge.xml 24 Apr 2006 02:39:17 -0000 1.22 @@ -1,14 +1,16 @@ <cartridge> + <templateEngine className="org.andromda.templateengines.velocity.VelocityTemplateEngine"> + <macrolibrary name="templates/ejb3/GlobalMacros.vm"/> + <!-- cartridge-macrolibrary merge-point--> + </templateEngine> + <!-- define the template objects that are made availble to the template --> <templateObject name="stringUtils" className="org.apache.commons.lang.StringUtils"/> <templateObject name="collectionUtils" className="org.apache.commons.collections.CollectionUtils"/> <templateObject name="transform" className="org.andromda.cartridges.ejb3.EJB3ScriptHelper"/> - <!-- cartridge-templateObject merge-point--> - - <!-- cartridge-property merge-point--> - <!-- cartridge-resource merge-point --> + <!-- cartridge-templateObject merge-point--> <property reference="entityManagerName"/> <property reference="entityManagerJTADataSource"/> @@ -42,6 +44,19 @@ <property reference="enableClustering"/> <property reference="webServiceContextRoot"/> <property reference="webServiceUrlPattern"/> + <property reference="dao-impls"/> + <property reference="daos"/> + <property reference="daoInheritanceEnabled"/> + <property reference="enableDaoPropertiesCreateMethod"/> + + <!-- cartridge-property merge-point --> + + <condition name="enableTemplating">$enableTemplating.equalsIgnoreCase("true")</condition> + <condition name="daoInheritanceEnabled">$daoInheritanceEnabled.equalsIgnoreCase("true")</condition> + + <!-- condition merge-point--> + + <!-- cartridge-resource merge-point --> <!-- Entity Bean Templates --> @@ -250,6 +265,74 @@ </modelElements> </template> + <!-- DAO Templates --> + + <template + path="templates/ejb3/DaoLocal.vsl" + outputPattern="$generatedFile" + outlet="daos" + overwrite="true"> + <modelElements variable="entity"> + <modelElement> + <type name="org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacade"/> + </modelElement> + </modelElements> + </template> + + <template + path="templates/ejb3/DaoBase.vsl" + outputPattern="$generatedFile" + outlet="daos" + overwrite="true"> + <modelElements variable="entity"> + <modelElement> + <type name="org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacade"/> + </modelElement> + </modelElements> + </template> + + <template + path="templates/ejb3/DaoImpl.vsl" + outputPattern="$generatedFile" + outlet="daos" + overwrite="true"> + <modelElements variable="entity"> + <modelElement> + <type name="org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacade"> + <property name="daoImplementationRequired">false</property> + </type> + </modelElement> + </modelElements> + </template> + + <template + path="templates/ejb3/DaoImpl.vsl" + outputPattern="$generatedFile" + outlet="dao-impls" + overwrite="false"> + <modelElements variable="entity"> + <modelElement> + <type name="org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacade"> + <property name="daoImplementationRequired"/> + </type> + </modelElement> + </modelElements> + </template> + + <template + path="templates/ejb3/DaoDefaultException.vsl" + outputPattern="$generatedFile" + outlet="commons" + overwrite="true"> + <modelElements variable="entity"> + <modelElement> + <type name="org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacade"/> + </modelElement> + </modelElements> + </template> + + <!-- Configuration Templates --> + <template path="templates/ejb3/config/ejb-jar.xml.vsl" outputPattern="META-INF/ejb-jar.xml" @@ -270,6 +353,9 @@ <modelElement variable="manageables"> <type name="org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade"/> </modelElement> + <modelElement variable="entities"> + <type name="org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacade"/> + </modelElement> </modelElements> </template> @@ -290,6 +376,9 @@ <modelElement variable="manageables"> <type name="org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityFacade"/> </modelElement> + <modelElement variable="entities"> + <type name="org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacade"/> + </modelElement> </modelElements> </template> @@ -439,6 +528,30 @@ </modelElements> </template> + <template + path="templates/ejb3/EmbeddedValue.vsl" + outputPattern="$generatedFile" + outlet="entity-beans" + overwrite="true"> + <modelElements variable="embeddedValue"> + <modelElement> + <type name="org.andromda.cartridges.ejb3.metafacades.EJB3EmbeddedValueFacade"/> + </modelElement> + </modelElements> + </template> + + <template + path="templates/ejb3/EmbeddedValueImpl.vsl" + outputPattern="$generatedFile" + outlet="entity-impls" + overwrite="false"> + <modelElements variable="embeddedValue"> + <modelElement> + <type name="org.andromda.cartridges.ejb3.metafacades.EJB3EmbeddedValueFacade"/> + </modelElement> + </modelElements> + </template> + <!-- CRUD Manageable Templates --> <template |
From: Vance K. <va...@us...> - 2006-04-24 02:36:16
|
User: vancek Date: 06/04/23 19:36:16 Modified: andromda-ejb3/src/main/resources/templates/ejb3/crud ManageableServiceBase.vsl Log: fixed persistence context injection to set context unit name Revision Changes Path 1.4 +3 -3 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceBase.vsl Index: ManageableServiceBase.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceBase.vsl,v retrieving revision 1.3 retrieving revision 1.4 diff -u -w -r1.3 -r1.4 --- ManageableServiceBase.vsl 20 Feb 2006 05:14:14 -0000 1.3 +++ ManageableServiceBase.vsl 24 Apr 2006 02:36:16 -0000 1.4 @@ -16,9 +16,9 @@ * and remove this suffix. */ /** - * Do not specify the javax.ejb.${service.type} annotation + * Do not specify the javax.ejb.${manageable.type} annotation * Instead, define the session bean in the ejb-jar.xml descriptor - * javax.ejb.${service.type} + * javax.ejb.${manageable.type} */ @javax.ejb.TransactionAttribute(javax.ejb.TransactionAttributeType.REQUIRED) @javax.ejb.Remote({${manageable.fullyQualifiedManageableServiceName}.class}) @@ -36,7 +36,7 @@ * Inject persistence context #if ($manageable.defaultPersistenceContextUnitName)${manageable.defaultPersistenceContextUnitName}#end */ - @javax.persistence.PersistenceContext#if ($service.persistenceContextUnitName)(unitName = "${manageable.defaultPersistenceContextUnitName}")#end + @javax.persistence.PersistenceContext#if ($manageable.defaultPersistenceContextUnitName)(unitName = "${manageable.defaultPersistenceContextUnitName}")#end protected javax.persistence.EntityManager emanager; #set ($associatedClasses = $manageable.allAssociatedClasses) |
User: vancek Date: 06/04/23 19:35:23 Modified: andromda-ejb3/src/main/resources/templates/ejb3/crud ManageableServiceReadException.vsl ManageableServiceUpdateException.vsl ManageableServiceCreateException.vsl ManageableServiceDeleteException.vsl Log: fixed comments Revision Changes Path 1.2 +1 -1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceReadException.vsl Index: ManageableServiceReadException.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceReadException.vsl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- ManageableServiceReadException.vsl 13 Feb 2006 15:47:17 -0000 1.1 +++ ManageableServiceReadException.vsl 24 Apr 2006 02:35:21 -0000 1.2 @@ -1,7 +1,7 @@ // license-header java merge-point // // Attention: Generated code! Do not modify by hand!! -// Generated by: ApplicationException.vsl in andromda-java-cartridge. +// Generated by: ManageableServiceReadException.vsl in andromda-java-cartridge. // #set ($generatedFile = "${stringUtils.replace($manageable.fullyQualifiedManageableServiceReadExceptionName,'.','/')}.java") #if ($stringUtils.isNotBlank($manageable.manageablePackageName)) 1.3 +1 -1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceUpdateException.vsl Index: ManageableServiceUpdateException.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceUpdateException.vsl,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- ManageableServiceUpdateException.vsl 17 Feb 2006 02:33:08 -0000 1.2 +++ ManageableServiceUpdateException.vsl 24 Apr 2006 02:35:22 -0000 1.3 @@ -1,7 +1,7 @@ // license-header java merge-point // // Attention: Generated code! Do not modify by hand!! -// Generated by: ApplicationException.vsl in andromda-java-cartridge. +// Generated by: ManageableServiceUpdateException.vsl in andromda-java-cartridge. // #set ($generatedFile = "${stringUtils.replace($manageable.fullyQualifiedManageableServiceUpdateExceptionName,'.','/')}.java") #if ($stringUtils.isNotBlank($manageable.manageablePackageName)) 1.2 +1 -1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceCreateException.vsl Index: ManageableServiceCreateException.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceCreateException.vsl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- ManageableServiceCreateException.vsl 13 Feb 2006 15:47:17 -0000 1.1 +++ ManageableServiceCreateException.vsl 24 Apr 2006 02:35:22 -0000 1.2 @@ -1,7 +1,7 @@ // license-header java merge-point // // Attention: Generated code! Do not modify by hand!! -// Generated by: ApplicationException.vsl in andromda-java-cartridge. +// Generated by: ManageableServiceCreateException.vsl in andromda-java-cartridge. // #set ($generatedFile = "${stringUtils.replace($manageable.fullyQualifiedManageableServiceCreateExceptionName,'.','/')}.java") #if ($stringUtils.isNotBlank($manageable.manageablePackageName)) 1.2 +1 -1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceDeleteException.vsl Index: ManageableServiceDeleteException.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceDeleteException.vsl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- ManageableServiceDeleteException.vsl 13 Feb 2006 15:47:17 -0000 1.1 +++ ManageableServiceDeleteException.vsl 24 Apr 2006 02:35:23 -0000 1.2 @@ -1,7 +1,7 @@ // license-header java merge-point // // Attention: Generated code! Do not modify by hand!! -// Generated by: ApplicationException.vsl in andromda-java-cartridge. +// Generated by: ManageableServiceDeleteException.vsl in andromda-java-cartridge. // #set ($generatedFile = "${stringUtils.replace($manageable.fullyQualifiedManageableServiceDeleteExceptionName,'.','/')}.java") #if ($stringUtils.isNotBlank($manageable.manageablePackageName)) |
From: Vance K. <va...@us...> - 2006-04-24 02:34:42
|
User: vancek Date: 06/04/23 19:34:41 Modified: andromda-ejb3/src/main/resources/templates/ejb3/config/jboss jboss.xml.vsl Log: added DAO definition Revision Changes Path 1.3 +9 -0 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/config/jboss/jboss.xml.vsl Index: jboss.xml.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/config/jboss/jboss.xml.vsl,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- jboss.xml.vsl 11 Apr 2006 15:53:45 -0000 1.2 +++ jboss.xml.vsl 24 Apr 2006 02:34:41 -0000 1.3 @@ -35,6 +35,15 @@ </session> #end +## +## Add DAO definition +## +#foreach ($entity in $entities) + <session> + <ejb-name>${entity.daoName}</ejb-name> + </session> + +#end #foreach ($mdb in $mdbs) <message-driven> <ejb-name>${mdb.messageDrivenName}</ejb-name> |
From: Vance K. <va...@us...> - 2006-04-24 02:33:20
|
User: vancek Date: 06/04/23 19:33:20 Modified: andromda-ejb3/src/main/resources/templates/ejb3/config ejb-jar.xml.vsl Log: fixed description field spacing, added DAO (as session bean) definitions, renamed MDB activation config property subscriptionDurability to durability Revision Changes Path 1.4 +19 -4 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/config/ejb-jar.xml.vsl Index: ejb-jar.xml.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/config/ejb-jar.xml.vsl,v retrieving revision 1.3 retrieving revision 1.4 diff -u -w -r1.3 -r1.4 --- ejb-jar.xml.vsl 11 Apr 2006 15:48:56 -0000 1.3 +++ ejb-jar.xml.vsl 24 Apr 2006 02:33:20 -0000 1.4 @@ -53,6 +53,21 @@ </session> #end +#foreach ($entity in $entities) + <session> + <description> + <![CDATA[ + $entity.getDocumentation("", 64, false) + ]]> + </description> + <ejb-name>${entity.daoName}</ejb-name> + <local>${entity.fullyQualifiedDaoName}</local> + <ejb-class>${entity.fullyQualifiedDaoImplementationName}</ejb-class> + <session-type>Stateless</session-type> + <transaction-type>Container</transaction-type> + </session> + +#end #foreach ($mdb in $mdbs) <message-driven> <description> @@ -80,7 +95,7 @@ #* *##end #* *##if ($mdb.destinationTypeTopic) <activation-config-property> - <activation-config-property-name>subscriptionDurability</activation-config-property-name> + <activation-config-property-name>durability</activation-config-property-name> <activation-config-property-value>${mdb.subscriptionDurability}</activation-config-property-value> </activation-config-property> #* *##end |
From: Vance K. <va...@us...> - 2006-04-24 02:31:32
|
User: vancek Date: 06/04/23 19:31:32 Modified: andromda-ejb3/src/main/resources/templates/ejb3 SessionLocal.vsl Log: fixed comments in header Revision Changes Path 1.5 +4 -1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/SessionLocal.vsl Index: SessionLocal.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/SessionLocal.vsl,v retrieving revision 1.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- SessionLocal.vsl 5 Mar 2006 05:56:43 -0000 1.4 +++ SessionLocal.vsl 24 Apr 2006 02:31:32 -0000 1.5 @@ -1,5 +1,8 @@ // license-header java merge-point -/* Autogenerated by AndroMDA (SessionLocal.vsl) - do not edit */ +// +// Attention: Generated code! Do not modify by hand! +// Generated by: SessionLocal.vsl in andromda-ejb3-cartridge. +// #if ($stringUtils.isNotBlank($service.packageName)) package $service.packageName; #end |
From: Vance K. <va...@us...> - 2006-04-24 02:31:12
|
User: vancek Date: 06/04/23 19:31:02 Modified: andromda-ejb3/src/main/resources/templates/ejb3 SessionBeanBase.vsl Log: added DAO injection in session bean base Revision Changes Path 1.2 +14 -0 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/SessionBeanBase.vsl Index: SessionBeanBase.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/SessionBeanBase.vsl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- SessionBeanBase.vsl 11 Apr 2006 15:41:49 -0000 1.1 +++ SessionBeanBase.vsl 24 Apr 2006 02:31:02 -0000 1.2 @@ -118,6 +118,20 @@ protected ${reference.fullyQualifiedServiceRemoteInterfaceName} $stringUtils.uncapitalize(${reference.name}); #**##end #end +#set ($entityReferences = $service.entityReferences) +#if (!$entityReferences.empty) + + // ------ DAO Injection Definitions -------- +#**##foreach ($daoDependency in $entityReferences) +#* *##set ($daoReference = $daoDependency.targetElement) + + /** + * Inject DAO ${daoReference.daoName} + */ + @javax.annotation.EJB + protected ${daoReference.fullyQualifiedDaoName} $stringUtils.uncapitalize(${daoReference.daoName}); +#**##end +#end #set ($mdbReferences = $service.messageDrivenReferences) #if (!$mdbReferences.empty) |