Recent AndroMDA changes

Release History

Version Date Description
3.4 2012-09-11 Version 3.4 final
3.3 2008-04-20 Version 3.3 final
3.2 2006-11-09 Version 3.2 final
3.1 2005-11-10 Version 3.1 final
3.1-RC1 2005-06-19 First milestone release of version 3.1
3.0 2005-05-08 Version 3.0 final
3.0-RC2 2005-04-25 Second release candidate for version 3.0
3.0-RC1 2005-03-27 First release candidate for version 3.0
3.0M3 2004-12-26 A stable development release for version 3, milestone 3
3.0M2 2004-08-09 A stable development release for version 3, milestone 2

Release 3.4 - 9/11/2012

Type Changes By
update General code cleanups and updates, using of java 1.5+ features catforce,bobfields
update Updated documentation of Andromda catforce,bobfields
fix Fix implementation of ResourceUtils.writeUrlToFile. Fixes CORE-118,CORE-145. catforce
fix Removed double wsdl4j dependency from generated core pom.xml Fixes ANDROMDAPP-50. catforce
fix Defined serialVersionUID for all serializable classes Fixes JAVA-11. catforce
fix Defined serialVersionUID for HibernateStringClobType and HibernateByteBlobType classes Fixes HIB-101. catforce
fix Removed ourself implementation of multi-source plugin. Using codehaus plugin ( ) istead. Fixes MAVEN-64. catforce
fix Fix incorrect replacement of some tagged value names in uml2.0 persistence profile Fixes HIB-195. catforce
fix Fix implementation of attributeExists method in UML14MetafacadeUtils. Fixes UMLMETA-77. catforce
add Add using of "PostConstruct" and "PreDestroy" stereotypes on operations of SpringServices to generate init and destroy methods mapping Fixes SPRING-63. catforce
fix "mvn clean" now removes all *.log and *.exc files from from project tree Fixes MAVEN-56. catforce
update Use different method for getting the total count for getPaginationResult in spring-cartrige (uses less memory) cwbrandon
update Set 'sourceEncoding' property to UTF-8 to fix the warning: "[WARNING] File encoding has not been set, using platform encoding [...], i.e. build is platform dependent!" catforce
update Update version of JUnit to 4.7 catforce
update Update version of velocity to 1.6.3, add dependency to velocity-tools for velocity-template-engine Update version of freemarker to 2.3.16 catforce
update Fix groupIds for itext and bsh: ('itext' has been relocated to com.lowagie:itext and 'bsh' has been relocated to org.beanshell:bsh) catforce
add Add generation of toString() method based on apache-commons implementation Fixes JAVA-31,JAVA-3. bobfields
fix Fix generating Enum classes in Java-cartrige Fixes JAVA-39. bobfields
add Add generation of attributes to exception-templates. Fixes JAVA-16. bobfields
add Add generation of "abstract" class modifier to exception-templates. Fixes JAVA-32. catforce
fix Fixed wrong java comment type in velocity template, thanks to a patch from Matthias Hanns. Fixes JAVA-37. bobfields
fix Fixed wrong java comment type in velocity template, thanks to a patch from Johann Wilfling. Fixes JAVA-32. bobfields
remove Removed obsolete maven 1 files. catforce
update Andromda now use Subversion (SVN) instead of CVS. catforce

Release 3.3 - 2008-04-20

Type Changes By
fix Corrected possible collision in generated javascript validation routines. Fixes BPM-299. draftdog
update Introduced "axis2GeneratedWrappedMessageReceiverRendersFaultsAsBeans" namespace property to the webservice cartridge, it allows users to select whether or not to render faults as regular beans (similar to what is done in responses with value objects). The default is 'false' which means this update is backward compatible with earlier versions of the cartridge. draftdog
update Updated webservices cartridge: simplified generated WSDL by avoiding the incremental numbering scheme (we don't have support for overloading anyway). The WrappedMessageReceiver now returns exception value objects in the fault detail message so that the client can properly access any additional data other than the error message. draftdog
fix The Freemarker template engine plug-in did not find the templates when it ran in a multi-classloader environment like Maven. Now, it uses the context classloader to find the templates. mattes3
add Added support for <a href="">Lingo remoting</a> to the Spring cartridge. Fixes SPRING-190. freter
update Migrate M1 site docs to M2. Add site plugins. Remove M1 site xml files. vancek
add The EMF repository plug-in can now read *.emx files from RSA directly without the need to convert them to *.uml2, first. It also checks for the IBM-specific metamodels for graphical elements in UML diagrams. If it finds them on the classpath, it registers them with the EMF package factory registry. mattes3

Release 3.2 - 2006-11-09

Type Changes By
add The meta cartridge now supports code generation for PSM metaclasses. Assign the stereotype <code>PSMmetaclass</code> to a class, and you will get a base class and/or an implementation class for it. Then, you can make your metafacades return instances of the PSM metaclasses. Finally, make your templates use these instances. For more info, see the "10 steps to write a cartridge" tutorial on mattes3
add The Hibernate cartridge now supports distributed entity caching with ehCache 1.2. Fixes HIB-192. freter
add The projct generator now supports a shortText property on prompt items to allow for better looking graphical UIs. The J2EE and Spring RCP project cartridge have been adjusted accordingly. Fixes ANDROMDAPP-16. freter
fix The hibernate cartridge did not properly support lists on many2many association ends, this has been fixed thanks to a patch from Paul Pavlidis. Fixes HIB-170. draftdog
update The generated enumerations now supports Java generics when <code>enableTemplating</code> has been set to <code>true</code>. Thanks to a patch from Jens Vagts. Fixes JAVA-27. draftdog
update Initializing collections is now taking into account Java generics when <code>enableTemplating</code> has been set to <code>true</code>. Thanks to a patch from Jens Vagts. Fixes HIB-162. draftdog
fix When using manageable entities it could happen that a server-side SQL exception is thrown due to an invalid HSQL query. This was due to a missing check when passing in an array: the array was tested for <code>null</code> but not for <code>array.length == 0</code>. This has been resolved. Fixes SPRING-147. draftdog
fix The hibernate byte Blob type has new <code>nullSafeGet</code> and <code>nullSafeSet</code> method implementations, thanks to a patch from Darius Schier. Fixes HIB-166. draftdog
update Pluralization of English words has been updated to more correctly determine the proper plural. This means that those users using words other than the ones that are being tested might see different accessor names on their beans, it might result in compilation failures due to files in version control but merely updating those files to reflect the new name will do the trick. Fixes UMLMETA-66. draftdog
fix Several fixes have been applied to the CRUD implementation in the Spring cartridge. These fixes will be apparent when using CRUD on entities which extend other entities. draftdog
add The Spring cartridge has a new optional outlet <code>value-objects</code>, used to emit CRUD value objects to, that way you can have them generated separately into a common component. draftdog
add The Hibernate cartridge's namespace has two new outlets: <code>entity-mappings</code> and <code>user-types</code>. The <code>.hbm.xml</code> files will be emitted to the former while the latter will be used for Hibernate enumeration user-types and the String Clob and Blob types. This will allow you to have your POJOs generated into a dedicated location such as <code>common/target/src</code>. The <code>andromdapp:generate</code> plugin has been updated to have both outlets point to the generated code of the core component. draftdog
add Spring service interfaces and default service exceptions are now emitted to a dedicated outlet called <code>service-interfaces</code>. Make sure to update your <code>andromda.xml</code>, the proper value for this namespace property is the generated source code directory for the 'common' component, if you have generated your project using <code>andromdapp:generate</code> this is <code>${common.generated.dir}</code>. draftdog
add Services and entities now are allowed to realize interfaces. Any interfaces generalized by other interfaces won't be taken into account. Fixes UMLMETA-62. draftdog
update <code>org::andromda::metafacades::uml::ClassifierFacade::associationEnds</code> has been changed to <code>{ordered}</code> in order to match <code>org::andromda::metafacades::uml::AssociationFacade::associationEnds</code> so that the generated methods <code>org.andromda.metafacades.uml.ClassifierFacade#getAssociationEnds()</code> and <code>org.andromda.metafacades.uml.AssociationFacade#getAssociationEnds()</code> have the same signature (List return type instead of Collection). If you have written your own cartridge then you'll have to regenerate it. If one of your metafacades overrides <code>org::andromda::metafacades::uml::ClassifierFacade::associationEnds</code> then you'll have to change <code>#getAssociationEnds()</code>'s return type to <code>java.util.List</code>. Patch from Cédric Vidal. Fixes UMLMETA-61. cwbrandon
add <code>org.andromda.metafacades.uml.AssociationClassFacade</code> now extends both <code>org.andromda.metafacades.uml.ClassifierFacade</code> and <code>org.andromda.metafacades.uml.AssociationFacade</code>. The property <code>associationClass : boolean</code> has also been added to <code>ClassifierFacade</code> and <code>AssociationFacade</code> so that templates and other metafacades can act accordingly. Note that in order for the association classes in your model to be recognized by AndroMDA as such, you must use a UML editor that exports <code>UML:AssociationClass</code> in a XMI 1.1 compliant way. MagicDraw 9.x is not compliant in that respect but, there is an XSLT stylesheet that normalizes MagicDraw 9.x models into a <code>UML:AssociationClass</code> XMI 1.1 compliant file. It's available under <a href="">JIRA issue UMLMETA-28</a>. You can tell AndroMDA to apply that XSLT before processing in the configuration using <a href="configuration.html#transformations">transformations</a>. Patch from Cédric Vidal. Fixes UMLMETA-61. cwbrandon
add The hibernate entity factories now have additional constructors making it easier to construct them using a single call. draftdog
add Value objects will now have extra constructors making it easier to properly populate them, there will a constructor taking all properties (including the inherited ones), and a constructor taking only those properties that are required and/or read-only. draftdog
add A new namespace property has been introduced: <code>columnNamePrefix</code>. It allows you to have all column names prefixed with a certain character sequence. draftdog
add Manageable entities now support generalization (inheritance). draftdog
add Value objects that have 'frozen' attributes or associations will no longer have a setter method generated for these features. draftdog
add Using the <code>enableTemplating</code> namespace property it is now possible to enable templating (i.e. generics in Java). A class or datatype with template parameters will have them rendered in their fully qualified name if this property is set to <code>true</code>. In addition the Hibernate cartridge also supports strongly typed associations, instead of just return a <code>java.util.Collection</code> the cartridge will now return <code>java.util.Collection<MyType></code>. Fixes UMLMETA-58. draftdog

Release 3.1 - 2005-11-10

Type Changes By
update The UMLMetafacadeModel-<version> has been renamed to andromda-metafacades-uml-<version> This requires that you update any cartridge models that point to the old file name by doing a search and replace in your XMI. cwbrandon
fix The generated Javadoc information for the generic facades as well as the cartridge facades is now correctly presenting the interfaces instead of the implementation classes, in doing so the documentation available in the respective meta-models is present. Fixes SITE-30. draftdog
add The Spring cartridge now supports generating bean configuration for beans that do already exist (e.g. in a third-party library). Fixes SPRING-112. freter
update In order for the presentation metafacades to be made generic enough for use within other frameworks (such as JSF), the following additional tagged values have been renamed: <table> <tr> <th>Old Name</th><th>New Name</th> </tr> <tr> <td>andromda_struts_action_success_message</td><td>andromda_presentation_action_success_message</td> </tr> <tr> <td>andromda_struts_action_warning_message</td><td>andromda_presentation_action_warning_message</td> </tr> <tr> <td>andromda_struts_view_field_required</td><td>andromda_presentation_view_field_required</td> </tr> <tr> <td>andromda_presentation_web_view_field_readonly</td><td>andromda_presentation_view_field_readonly</td> </tr> <tr> <td>andromda_struts_view_field_format</td><td>andromda_presentation_view_field_format</td> </tr> <tr> <td>andromda_struts_view_field_multibox</td><td>andromda_presentation_view_field_multibox</td> </tr> <tr> <td>andromda_struts_view_field_radio</td><td>andromda_presentation_view_field_radio</td> </tr> <tr> <td>andromda_struts_view_field_validwhen</td><td>andromda_presentation_web_view_field_validwhen</td> </tr> <tr> <td>andromda_struts_view_field_validators</td><td>andromda_presentation_web_view_field_validators</td> </tr> <tr> <td>andromda_struts_view_field_reset</td><td>andromda_struts_view_field_reset</td> </tr> <tr> <td>andromda_struts_view_table_maxrows</td><td>andromda_struts_view_table_maxrows</td> </tr> <tr> <td>andromda_struts_view_table_export</td><td>andromda_presentation_view_table_export</td> </tr> <tr> <td>andromda_struts_view_table_sortable</td><td>andromda_presentation_view_table_sortable</td> </tr> <tr> <td>andromda_struts_exception_type</td><td>andromda_presentation_exception_type</td> </tr> </table> If you're using Magic Draw, the only thing you'll need to do is open your model and touch it (i.e. make a small change so its ready to be saved), and save it. If you're using another modeling tool that won't work with the andromda-profile, the best way to upgrade your model is to just open up the XMI and do a search and replace from the old to new values. cwbrandon
fix Fixed a bug in the code generation for RMI remoting. Fixes SPRING-106. freter
update Slight change to the applicationContext.xml file. It will now be rendered more compact, resulting in a more readable XML outline in your favorite XML editor. Fixes SPRING-103. freter
add The Java cartridge now generates Java interfaces from UML interfaces. Operations are generated as method signatures, instance attributes are generated as getter/setter signatures, classifier attributes are generated as static final constants with default values. Association ends are generated as getter/setter signatures. Fixes JAVA-23. mattes3
update The bpm4struts cartridge now supports arrays of custom types for tables, this is interesting when you are using dates in columns and you want to specify a custom format, in this case you'll just need to add a tagged value to the corresponding attribute of the array's type. This feature elegantly integrates with the use of value objects and POJO entities such as found in Hibernate. Fixes BPM-238. draftdog
update Handling of <a href="#howto2.html#Event_Parameters">options in bpm4struts</a> has been improved, if you are using this feature please beware that the option values sent from the client to the server are no longer equal to the message keys used. This has been changed to sent the selection index instead 0,1,2,... and so on. Fixes BPM-230. draftdog
update The validation framework used in bpm4struts has been updated, it is now required to use <a href="">Struts 1.2.7</a> and <a href="">commons-validator 1.1.4</a> (later versions are also fine). Older projects using the latest bpm4struts cartridge will need to update these dependencies. The andromdapp:generate tool has been updated to take this change into account, so generating a new project will also solve this problem. Not updating these dependencies will break validation support in the presentation layer, you'll also see an exception stacktrace in the server output. draftdog
update In order for the presentation metafacades to be made generic enough for use within other frameworks (besides struts), the following tagged values have been renamed: <table> <tr> <th>Old Name</th><th>New Name</th> </tr> <tr> <td>andromda_struts_action_type</td><td>andromda_presentation_web_action_type</td> </tr> <tr> <td>andromda_struts_action_tablelink</td><td>andromda_presentation_web_action_tablelink</td> </tr> <tr> <td>andromda_struts_action_form_scope</td><td>andromda_presentation_web_action_form_scope</td> </tr> <tr> <td>andromda_struts_action_resettable</td><td>andromda_presentation_web_action_resettable</td> </tr> <tr> <td>andromda_struts_view_field_type</td><td>andromda_presentation_web_view_field_type</td> </tr> <tr> <td>andromda_struts_view_field_tablelink</td><td>andromda_presentation_web_view_field_tablelink</td> </tr> <tr> <td>andromda_struts_table_columns</td><td>andromda_presentation_view_table_columns</td> </tr> <tr> <td>andromda_struts_action_redirect</td><td>andromda_presentation_web_action_redirect</td> </tr> <tr> <td>andromda_struts_view_field_calendar</td><td>andromda_presentation_web_view_field_calendar</td> </tr> </table> If you're using Magic Draw, the only thing you'll need to do is open your model and touch it (i.e. make a small change so its ready to be saved), and save it. If you're using another modeling tool that won't work with the andromda-profile, the best way to upgrade your model is to just open up the XMI and do a search and replace from the old to new values. cwbrandon
add Table links in bpm4struts are now allowed to target any arbitrary column, see the online store sample for an implementation (the <code>title</code> column on the second page sends the <code>id</code> value for that row when clicked). Fixes BPM-225. draftdog
add With the bpm4struts cartridge it is now possible to submit selected rows, see the new documentation here: <a href="#howto8.html#Submitting_selected_rows">Submitting selected rows</a>. Fixes BPM-169. draftdog
add Support for error pages has been added to the bpm4struts cartridge, by default HTTP error codes 400, 403, 404 and 500 are supported, as well as exceptions not caught by Struts. Fixes BPM-213. draftdog
update Each <<FrontEndView>> in the bpm4struts cartridge will result in the generation of a JSP page. This page will use include statements to construct its content from other <code>.jspf</code> files (jspf stands for JSP fragment), there will be a <code>.jspf</code> file for each action, table, set of page variables, etc.. <p class="highlight"> The action JSP files have been renamed from <code>my-action.jsp</code> to <code>my-action.jspf</code> to be more consistent with the rest of the application. If you are overriding generated action JSPs and using the <a href="#tips.html#The_copy-over_feature">copy-over feature</a> you will need to rename those files to have the <code>.jspf</code> extension or you application will not properly function. </p> draftdog
add JSP resources generated by the bpm4struts cartridge will no longer be directly accessible, all of them are now shielded by a Struts action. Fixes BPM-220. draftdog
add Most web pages will no longer be directly accessible, a default security constraint will be generated into the <code>web.xml</code> descriptor, even if security hasn't been enabled. A few exceptions exist such as the calendar popup or a JSP rendering JavaScript, but the most important use-case pages will be protected. Fixes BPM-219. draftdog
fix A small fix that might affect your project, the request URI used for displaytag tables in the bpm4struts cartridge has been changed, it will no longer reference the target page but the action trigger instead. This means data will be reloaded when you are trying to export or navigate. draftdog
add The JBPM cartridge now provides a strongly typed interface to the modeled processes. draftdog
add Spring criteria queries now support <code>firstResult</code> and <code>fetchSize</code>. draftdog
update The andromda-profile has been broken up into sub-profiles: process, persistence, service, meta, etc. In order to successfully use this new profile with a Magic Draw model, you'll need to do 2 things: First, add several new dependencies to your project.xml (or regenerate a project using the andromdapp plugin), see this <a href="">forum thread</a> for more information. Second, you must open and save your model once to update all profile references, after that you should be able to successfully build. cwbrandon
add Hibernate Cartridge now also supports "union-subclass" inheritance mapping for Hibernate 3.x projects. Fixes HIB-115. carloslcuenca
add AndroMDA can now handle more than one repository at a given time. This means you'll need to make a slight modification to your andromda configuration file (typically found in mda/conf/andromda.xml of your project) by defining the <a href="configuration.html#repositories">repositories</a> element. Fixes CORE-77. cwbrandon
add The <a href="maven-andromdapp-plugin/index.html">andromdapp:generate</a> tool is now able to generate projects using the <a href="">jBpm workflow engine</a>, selecting this option implies the use of Hibernate 3 (you will not longer be prompted for it). draftdog
update The <a href="maven-andromdapp-plugin/index.html">andromdapp:generate</a> tool now generates the versions of all dependencies into the <code></code> file in the root of the project. draftdog
update The BPM4Struts tagged values <em>andromda_struts_usecase_activity</em> and <e>andromda_struts_controller_usecase</e> have been renamed to <em>andromda_presentation_usecase_activity</em> and <em>andromda_presentation_controller_usecase</em>. cwbrandon
add The CRUD feature now supports many2many relationships between manageable entities. The page will contain a list in which multiple selections can be made, for each such navigable relation end. Fixes BPM-210. draftdog
update Changes have been applied to the generic UML metafacade layer, more specifically in the way state machines are handled. The <code>ActivityGraphFacade</code> now generalizes a new facade called <code>StateMachineFacade</code>, and a few refactorings were required to properly model this new addition, most importantly, association ends have been renamed according. These changes can impact your code generation in case you are accessing these properties directly. It is also possible you have compilation errors if you have a custom facade generalizing the <code>ActivityGraphFacade</code>. It will be sufficient to merely replace references to the activity graph by references to the state machine. In doing so you will remain complete backwards compatible with your previous code base. Fixes UMLMETA-42. draftdog
fix An issue was fixed in the bpm4struts cartridge regarding the generation of dummy data in the controller implementation classes: the dummy inner class used for table form properties wasn't used at all, this would lead into compilation errors during build time. draftdog
add Added a new "project cartridge" that generates a project for rich client development using Eclipse. Build script is Ant based. Eclipse is used to build .class files. Build script is for running AndroMDA, creating databases, and deployment to JBoss. Fixes ANDROMDAPP-3. joelkoz
update Updated AndroMDA Ant tasks to use the new project generation system of 3.2. To use an Ant based version of the app generator, execute the build.xml build script from the distribution's "ant" directory. Fixes ANT-30. joelkoz
add Created a new a global namespace property named "toToTag" that can specify what text to prefix all comments in generated code that mark code that the end user needs to modify. This allows users of various IDEs to quickly see what modifications they need to make in a generated project (for example, Eclipse users can set the tag to "TODO", the default Eclipse task tag). Fixes MISC-37. joelkoz
update Spring cartridge now generates default implementations for the "ValueObject to Entity" and "Entity to ValueObject" conversion routines found in entity DAOs. joelkoz
update Added support for Acegi Security when used in a Rich Client project. Currently works with Acegi 0.9.0 joelkoz
add Hibernate 3.0 has a feature that <a href="">allows a DOM4J tree to be retrieved and saved from the database</a>. A new transform type was added to each entity's DAO (TRANSFORM_XML). This allows objects in the database to be retrieved as a DOM4J XML tree rather than a POJO. Saving of DOM4J back to the database is also supported (as far as it is supported in Hibernate - the feature has problems with nested objects). To activate, add the following properties to your default namespace: "hibernateXMLPersistence" (set to true), and "hibernateXMLPersistIDAsAttribute" (usually set to true) Fixes HIB-141. joelkoz

Release 3.1-RC1 - 2005-06-19

Type Changes By
fix Schema2XMI is now able to map to database types with their precision defined. Fixes SCHEMATOXMI-1. cwbrandon
add Property references are now defined in a namespace descriptor in which each namespace component (cartridge, translation-library, and metafacades must be registered within). Unfortunately this change is not backwards compatible with 3.0 cartridges, to upgrade 3.0 cartridges to be 3.2 compatible, you will need to create a META-INF/andromda/namespace.xml descriptor per cartridge and register the cartridge and metafacades (as well as any namespace properties and its defaults) in this file. Fixes CORE-72. cwbrandon
add The Spring cartridge can now generate for Hiberante 3 (as well as Hibernate 2 as before). Version 2 is the default, in order to change the version to 3, you must set the <em>hibernateVersion</em> namespace property with a value of <em>3</em>. cwbrandon
update In bpm4struts it is now also possible to have non-event parameters survive the trip to the next use-case, previously only event parameters would only be able to do that because they would be immediately present in the HTTP request. More is documented <a href="#howto2.html#Sending_parameters_across_use-cases">here</a>. draftdog
add The Hibernate cartridge can now generate for Hibernate 3 (as well as Hibernate 2 as before). Version 2 is the default, in order to change the version to 3, you need to define the <em>version</em> namespace property with a value of <em>3</em>. carloslcuenca
add Major performance improvements have been added to the AndroMDA core, as well as a new feature called the <a href="configuration/server-howto.html">AndroMDA Server</a> which dramatically enhances the performance of AndroMDA. cwbrandon
add AndroMDA is now configured through a single XML configuration file. This means both the Ant task and Maven plugin just point to this file. Please see the <a href="configuration.html">configuration</a> documentation for more information. Fixes CORE-67. cwbrandon
add Manageable entities can now have non-required fields hidden if desired, it is also possible to use textareas instead of plain textfields. Fixes BPM-186. draftdog
update Implemented an improvement in the bpm4struts cartridge related to the i18n of messages. It is now possible to have all messages normalized before they are being rendered into the resource bundle. This means that elements with the same name will use the same message key, previouly each element had its own message key which could easily lead to very large resource bundles. This feature is disabled by default but can be enabled by using the <code>normalizeMessages</code> namespace property and setting it to <code>true</code>. Fixes BPM-181. draftdog
add Template merging now occurs before template processing happens, this means you can merge in dynamic content into templates (previously it was only static content). Fixes CORE-55. cwbrandon
add When using manageable entities it is now possible to have binary data uploaded into 'blob' fields, just use <code>datatype::Blob</code> and a file-upload field will be generated automatically. It is not possible to actually show the value of a 'blob' field in the table, a default label will be shown instead. Fixes BPM-186. draftdog
update If you want anyone to be able to access a use-case when security is enabled, then simply do not associate any actors to it. This functionality replaces the <<Unsecured>> stereotype. Fixes BPM-195. draftdog
fix Fixed an issue that rendered the create method taking all required properties uncompilable when the multiplicity of an association end was 1..*. Fixes SPRING-73. cwbrandon
fix A set of improvements and new features for managing CRUD entities have been implemented <ol> <li>An issue with Konqueror has been resolved: select boxes did not change value when clicking on the <em>Copy</em> link</li> <li>Comboboxes now retain their value after updating an entity</li> <li>Enumeration types are now properly handled when the literal type is a primitive</li> <li>Switching to an entity from the drop-down list will remember the current entity's (if any) identifier and will pre-select any corresponding list with this value</li> <li>Required fields now have an <em>asterisk</em> next to them</li> <li>Modeling a default value for an attribute is now supported: the field will have this as a default value</li> <li>An entity referencing itself would not be able to have an instance pointing to itself (foreign key being equal to the primary key), Hibernate would complain about different objects with the same identifier being loaded in the same session; this has been fixed</li> </ol> draftdog
update Warning, error and success messages are now stored in session scope, the Struts request processes now properly handles this and removes them once they have been accessed the first time, this feature is available since Struts 1.2.4. Except for the dependency on Struts 1.2.4 this update is transparent. Fixes BPM-170. draftdog

Release 3.0 - 2005-05-08

Type Changes By
update Package filtering has been changed to use the correct '::' namespace separator instead of the java specific separator; this means that whenever you apply package filtering you'll have to use the '::' seperator between packages instead of '.' (see <a href="andromda-ant-task/index.html#modelPackage"><modelPackage/></a> for Ant or <a href="maven-andromda-plugin/properties.html#maven_andromda_modelPackage">maven.andromda.modelPackage.<em>n</em>.name</a> for Maven). cwbrandon
update Generating CRUD for entities has been updated: <ol> <li>Identifiers are only rendered when explicitly modeled (unless the <code>manageableIdDisplayStrategy</code> namespace property is used).</li> <li>Dates are handled in a special way, if no time information is given the generated code will assume the user wishes to search in the scope of an entire day instead of the exact date (matching that date at midnight).</li> </ol> draftdog

Release 3.0-RC2 - 2005-04-25

Type Changes By
add The <a href="maven-andromdapp-plugin/index.html">AndroMDA App Maven Plugin</a> can now generate standalone war files (that can be deployed to <a href="">Tomcat</a>). Fixes MAVEN-23. cwbrandon
add Hibernate entities (which are marked as serializable) will now contain a field <code>serialVersionUID</code> in order to satisfy <a href="">Versioning of Serializable Objects</a> and <a href="">Always Declare Serial Version Uid</a>. Users can override the automatically calculated SUID by setting the tagged value "@andromda.serialVersionUID". Fixes HIB-87. freter
add Mapping files can now extend other mapping files (this allows you to only add or customize the specific mapping entries you need and inherit the rest). For more information see <a href="mappings.html#Extending_and_Overriding">extending and overriding</a> mappings. Fixes CORE-40. cwbrandon
update Bpm4struts no longer generates the <code></code> file, you will need to merge your own properties into the default bundle. If you project still contains JSP files with messages read from the <code>custom</code> bundle you can safely point them to the default bundle (by removing the <code>bundle</code> attribute). Read this page for more info: <a href="#howto10.html">Bpm4Struts i18n</a>. draftdog
add It is now possible to merge the entire contents of one or more files into a merge-point. Please see the <a href="andromda-cartridges/index.html#mergingFileContents">merge-point documentation</a> for more information. Fixes CORE-62. cwbrandon
add It is now possible to specify XSL transformation templates to be applied to the model(s) before model processing begins, please see the <a href="maven-andromda-plugin/properties.html#maven_andromda_transformation_uri">AndroMDA Maven Plugin</a> or the <a href="andromda-ant-task/index.html#transformation">AndroMDA Ant Task</a> (depending on what you use) for more information. Fixes CORE-56. cwbrandon
add It is now possible to use the <<Unsecured>> stereotype on use-cases that need to be accessible for anyone, even when security has been enabled. Fixes BPM-107. draftdog
update The AndroMDA Ant task has been refactored out of the Core, and the package name has changed to <em>org.andromda.ant.task</em>, Maven users are not affected by this change, however Ant users will need to update the package from the old <em>org.andromda.core.anttasks</em> to the new <em>org.andromda.ant.task</em>. cwbrandon
add The encoding can now be set for both the Ant Task and the AndroMDA Maven plugin, <code>maven.andromda.outputEncoding</code> is the required property for the Maven plugin, and the <code>outputEncoding</code> is the attribute for the Andromda Ant task. Please see the documentation for each for more information. Fixes CORE-59. cwbrandon
add The new table-link feature in the bpm4struts cartridge now supports arbitrary parameters, they are no longer restricted to the ones that match a column. Fixes BPM-168. draftdog
add Meta element inheritance is now taken into account when the AndroMDA Core searches for mappings, this means that cartridge writers no longer need to create multiple mappings for each meta element class name, they can just map a base meta element class name and any inherited ones will automatically be mapped. Fixes CORE-19. cwbrandon
add The meta cartridge now supports generation of multiple inheritance for metafacades. Fixes META-4. cwbrandon
add The hibernate cartridge now allows to define indexes on the foreign key columns generated by entities associations. carloslcuenca
update It is now possible to model events that submit a table row in bpm4struts, also the way to model hyperlinks in table columns has changed. Please see the <a href="#howto8.html">updated table documentation</a>, as this feature is not backwards compatible with the old way of doing this, a necessary evil before releasing the final version of AndroMDA 3.0. Fixes BPM-162. draftdog
fix Bpm4Struts now allows a new namespace property called <code>defaultTableExportTypes</code>, it takes a space-separated list of export types that will be used by default by the displaytag tables, valid types are any combination of <code>csv</code>, <code>xml</code>, <code>excel</code> and <code>pdf</code>, use <code>none</code> to disable exporting for tables. In addition the <code>andromda_struts_view_table_export</code> tagged value can now also take the <code>none</code> value to turn off export for the corresponding table. Fixes BPM-163. draftdog
fix Mappings are now required to use the correct '::' namespace separator istead of the Java specific '.' separator. This requires any custom type mapping files to replace all occurances of '.' with '::' (for example <em>datatype.Long</em> now needs to be mapped as <em>datatype::Long</em> within the JavaMappings.xml file). Fixes MISC-29. cwbrandon
fix Client-side validation for dates have been improved, the default one which is taken from <code>commons-validator</code> only supports a very limited subset of the features one would expect. We are now explicitly overriding this JavaScript routine in <code>validator-rules.xml</code>. Fixes BPM-160. draftdog
fix It is now possible to seemlessly pass form data across different use-cases, the target form will be populated using the matching properties from the source form. Fixes BPM-157. draftdog
add The <a href="andromda-spring-cartridge/index.html">Spring Cartridge</a> DAO transformation methods can now be generated for UML datatypes as well (in addition to value objects), just draw a dependency from an entity to a datatype, and the corresponding transform method will be generated on the DAO. This is useful when you need to return a single field from an entity. cwbrandon
add The <a href="andromda-spring-cartridge/index.html">Spring Cartridge</a> DAOs now contain create and update operations that take a collection of entities (similar to the already existing DAO remove operation). Please note that this change requires you to upgrade Spring to 1.1.5 or above. cwbrandon
update When generating value objects for webservices, the webservice cartridge no longer generates its own value objects but instead uses the ones generated from the java cartridge, it's just required to set the <a href="andromda-metafacades-uml/namespace.html#useArraysForMultiplicitiesOfTypeMany">useArraysForMultiplicitiesOfTypeMany</a> namespace property to true (so that arrays are generated for association ends with multiplicities of type many) and make sure you have the <a href="andromda-java-cartridge/namespace.html#value-objects">value-objects</a> namespace property defined for the java cartridge. cwbrandon
fix Many-to-many relationships, where only a single table is involved, are not causing the Hibernate SchemaExport tool to choke anymore. This bug was related to the generated foreign key constraint names. Fixes HIB-82. draftdog
fix The calendar support has completely been rewritten, make sure your JSPs reflect the latest changes if you're using the copy-over feature. Fixes BPM-81. draftdog

Release 3.0-RC1 - 2005-03-27

Type Changes By
add The Hibernate cartridge now generates readable foreign key constraint names where possible. This information is generated into the mapping files and is processed by the <code>SchemaExport</code> tool when generating the database schema DDL. The <code>andromda_persistence_foreignkey_constraint</code> tagged value can be used to override the default name. Fixes HIB-81. draftdog
add It is now possible to model page-to-page transitions with the bpm4struts cartridge. An intermediate Struts action will transparently be generated. Fixes BPM-154. draftdog
add The Spring cartridge now has configurable transactions for Spring service operations. This change required the rename of andromda_transaction_type to andromda_ejb_transaction_type to prevent conflicts with the spring service transaction tagged value (andromda_spring_transaction_type) and to be consistent with other cartridge specific tagged values. Fixes SPRING-52. cwbrandon
update Hibernate enumerations (generated by the Hibernate cartridge) now extend the regular java enumerations generated by the java cartridge (so that they can co-exist peacefully). Note, you'll now need to enable the enumerations outlet from the java cartridge when using the hibernate enumerations. Fixes HIB-71. cwbrandon
update The <<PrimaryKey>> stereotype has been renamed to <<Identifier>>. UML tools that do not import the latest version of the andromda profile will need to have the stereotype renamed by the user. draftdog
add The caching of metafacade properties can now be disabled (even on a per cartridge basis), just use the <code>enableMetafacadePropertyCaching</code> namespace property. Most properties are being cached now for reasons of performance. draftdog
add The spring cartridge now supports nullable attributes in criteria finders. Fixes SPRING-47. freter
fix A bug in the OCL query translation library was causing some relational operations (such as '<>' and '<=') to be incorrectly translated to '>', this has been fixed. Fixes OCL-9. cwbrandon
add The bpm4struts cartridge now supports exporting to PDF, existing projects will need to include the <a href="">IText v0.99</a> dependency. Add this dependency to your <code>/web/project.xml</code>. draftdog
add The spring cartridge now supports modeled hibernate criteria finders (Thanks to Stefan Reichert and Peter Friese). Fixes SPRING-38. cwbrandon
update OCL translation support has been moved into the translation-libraries/ocl module (out of the andromda-core) and all ocl translation specific classes are now in a package beginning with <em>org.andromda.translation.ocl</em>. Fixes CORE-15. cwbrandon
add The bpm4struts cartridge now generates a <code></code> file, the labels used by the displaytag library are not internationalized, you will need to update the library to version 1.0. Fixes BPM-13. draftdog
fix Bpm4Struts templates have moved into cartridge subdirectories and have been given proper names, make sure to update your own templates if you are overriding these resources. draftdog
add The bpm4struts cartridge now support <a href="">displaytag</a> table decorators. Just use the <code>andromda_struts_view_table_decorator=true</code> tagged value on your table to have an empty decorator generated for it. By default the decorator class names end with <code>Decorator</code>, but this can be changed using the <code>tableDecoratorSuffix</code> namespace property. Don't forget to configure the <code>decorators</code> outlet to point to a directory in your existing project. The generated decorators will only be generated the first time, they will not be overwritten. Fixes BPM-147. draftdog
add The <a href="andromda-hibernate-cartridge/index.html">Hibernate Cartridge</a> now supports lists, sets, maps and bags for mapping collections. Fixes HIB-20. carloslcuenca
fix An issue with the bpm4struts multibox feature has been resolved: the checkbox widget was not being rendered and a link was present instead. This problem manifested itself in the <a href="#samples.html#online-store">online-store</a> sample. Fixes SAMPLES-6. draftdog
fix Bpm4Struts now correctly exports to all known <a href="">displaytag</a> supported formats, there was a bug where simple properties were being exported with surrounding HTML tags. <p class="highlight"> Caution: the use of <code>andromda_struts_view_table_export</code> has changed! It is no longer recommended to specify a space separated combination of formats, instead it is now best to specify multiple values (MagicDraw allows you to add values from a combobox). The previous way is still supported but this might change in the future. </p> Fixes BPM-127. draftdog
add Added a new <a href="#profile.html">tagged value</a> for bpm4struts: <code>andromda_struts_view_field_validators</code>. It allows you to specify your own validators for parameters, just don't forget to use the <a href="andromda-cartridges/index.html#mergeMappingsUri">merge point</a> in <code>validator-rules.xml</code>. Fixes BPM-110. draftdog
add It is now possible to specify multiple formats for parameters using the <code>andromda_struts_view_field_format</code> tagged value, thanks to a contribution from <a href="">Kishore</a>. Fixes BPM-138. draftdog
add Bpm4Struts now supports a new <a href="#namespace.html">namespace property</a>: <code>actionPathPrefix</code>, it allows more control on the way action paths are being rendered in <code>struts-config.xml</code>. draftdog
add The <a href="andromda-spring-cartridge/index.html">Spring Cartridge</a> and <a href="andromda-hibernate-cartridge/index.html">Hibernate Cartridge</a> now supports EhCache as the second level cache manager. Properties, associations, and queries can be configured to be cacheable. carloslcuenca
add The cartridge now supports dynamic-insert and dynamic-update hibernate properties for entities. Fixes HIB-61. carloslcuenca
add All existing cartridges emitting Java source code now include a license-header merge point, just use the <a href="andromda-cartridges/index.html#mergeMappingsUri">merge-mapping</a> feature to have it replaced with your own license statement, the merge-point is called <code>// license-header java merge-point</code>. Fixes MISC-24. draftdog
fix Superfluous *.hbm.xml files are no longer generated when a <em>subclass</em> strategy is used with hibernate inheritance. Fixes HIB-48. cwbrandon
fix When using a <em>class</em> strategy with hibernate inheritance, not-null values are now correctly set to "false" for all subclass properties. Fixes HIB-58. cwbrandon
add The <a href="andromda-spring-cartridge/index.html">Spring Cartridge</a> now provides Spring remoting support (thanks to Peter Friese). Fixes SPRING-34. cwbrandon
add A new attribute has been introduced on the template element within the cartridge descriptor (andromda-cartridge.xml). It's called <a href="andromda-cartridges/index.html#outputOnEmptyElements">outputOnEmptyElements</a> and allows a cartridge writer to determine whether or not a file should be output when there are no elements collected when using the <a href="andromda-cartridges/index.html#outputToSingleFile">outputToSingleFile</a> flag. cwbrandon
fix The <a href="andromda-spring-cartridge/index.html">Spring Cartridge</a> now generates a valid DAO inheritance hiearchy when inheritance between entities is modeled. Fixes SPRING-37. cwbrandon
update The <a href="andromda-spring-cartridge/index.html">Spring Cartridge</a> must now be used in conjunction with the <a href="andromda-hibernate-cartridge/index.html">Hibernate Cartridge</a> when using Hibernate persistence. cwbrandon
update The pattern matching exception handler generated by bpm4struts now correctly handles exceptions that are instances of <code>java.lang.Throwable</code> and any of it's decendants (previously it only handled java.lang.Exception instances). Fixes BPM-136. cwbrandon
update The bpm4struts cartridge no longer requires you to model the <<FrontEndEvent>>, <<FrontEndController>> and <<Role>> stereotypes. These stereotypes can be implied by the model and therefore are considered redundant. This has only been made possible by the recent metafacade mapping changes which allow the mapping based on the target metafacade's properties. Fixes BPM-34. draftdog
add Metafacades can now be mapped to meta model objects based on their properties. This allows us to define metafacades for things that can be inferred by certain conditions of the model instead of needing to use stereotypes for everything. Fixes CORE-6. cwbrandon
fix Navigable entity association ends are now required to have a public visibility (an OCL constraint has been added to validate this). Fixes HIB-53. cwbrandon
fix Entity attributes are now required to have a public visibility (an OCL constraint has been added to validate this). Fixes SPRING-26. cwbrandon
update The <a href="andromda-spring-cartridge/index.html">Spring Cartridge</a> and <a href="andromda-hibernate-cartridge/index.html">Hibernate Cartridge</a> now generate child cascade's correctly based on whether or not the default-cascade for the entity is set to <code>all</code> or <code>save-update</code>. Fixes SPRING-33. cwbrandon
update The <a href="andromda-meta-cartridge/index.html">Meta Cartridge</a> now generates real inheritance (not delegated) when the super metafacade class is in the same package. Delegated inheritance is now only generated when the super metafacade's package is different. cwbrandon
update All usages of <code>andromda_struts_view_field_type=radio</code> must now omit any trailing parameters, so specifying "radio 4" or "radio a,b,c" is no longer allowed. The trailing parameters go into a new tagged value called <code>andromda_struts_view_field_radio</code> and can only be used if the field type specified is of type <code>radio</code>. draftdog
add Eager loading of relationships is now correctly supported when using composition. Fixes SPRING-29. cwbrandon
add Bpm4struts is now able to generate <code>id</code> attributes in the web.xml descriptor, just use the <a href="#namespace.html">generateWebXmlIds</a> namespace property. draftdog
add Spring DAO names are now completely configurable. Patterns can be configured in the <a href="andromda-spring-cartridge/namespace.html">namespace properties</a> section. Fixes SPRING-23. cwbrandon
add Entity query operations (i.e. finders) can now be determined though modeling the query flag as true on the operation (for now the finder method stereotype still works, however it is now deprecated in favor of this query flag and will be removed in the future). Fixes UMLMETA-13. cwbrandon
add Now it is possible to enable Hibernate proxies for Entities in the hibernate Cartridge. Fixes HIB-33. carloslcuenca
add An external configuration file can now configure logging for AndroMDA. See <a href="anttask.html#loggingConfigurationUri">loggingConfigurationUri</a> for information on how to use it with Ant. See <a href="maven-andromda-plugin/properties.html#maven.andromda.loggingConfigurationUri">maven.andromda.loggingConfigurationUri</a> for information on how to use with Maven. Fixes CORE-16. cwbrandon
add Metafacades can now be mapped on the basis that more than one stereotype is required. Fixes CORE-39. cwbrandon
update Completely removed XDoclet from the Hibernate cartridge. cwbrandon
add Added a <a href="andromda-spring-cartridge/howto.html">howto</a> for the Spring cartridge. draftdog
add Hibernate entities in the Spring cartridge now have a factory operation on each entity that allows creation of new entity instances (this elminiates the need to call the implementation specific constructor for each entity when constructing a new instance). Fixes SPRING-20. cwbrandon
add Provide the ability to have entity association lazy loading within the service tier (all entity associations should be able to be lazily loaded within ALL service operations, as well as ALL DAO operations). cwbrandon
fix Implemented enumeration support for the <a href="andromda-hibernate-cartridge/profile.html#Enumeration">Hibernate</a> and <a href="andromda-spring-cartridge/profile.html#Enumeration">Spring</a> cartridges. Fixes HIB-15. draftdog
add <strong>ALL OCL string operations</strong> are now supported by the <a href="andromda-ocl-query-library/index.html">Query Translation Library</a> Fixes OCL-1. cwbrandon
fix Template object properties can now be specified more than once in the andromda-cartridge.xml. Fixes CORE-38. cwbrandon
add The <a href="andromda-hibernate-cartridge/index.html">Hibernate</a> and <a href="andromda-hibernate-spring/index.html">Spring</a> cartridges are now able to define query cache settings. Fixes HIB-34. carloslcuenca
fix The <a href="andromda-ocl-query-library/index.html">Query Translation Library</a> was using the OCL <em>exists(<expression>)</em> expression incorrectly. Changed to use the correct <em>includes(<expression>)</em> expression instead. cwbrandon
add The <a href="andromda-ocl-query-library/index.html">Query Translation Library</a> is now able to correctly handle order by expressions (this is accompished using the standard <em>-> sortedBy(<expression>)</em> construct in OCL. cwbrandon
fix The <a href="andromda-ocl-query-library/index.html">Query Translation Library</a> is now able to correctly handle grouped expressions. Fixes OCL-7. cwbrandon
fix The Spring cartridge is now able to correctly auto-detect when the inverse flag should be true/false on associations within the hibernate cfg.xml files. Fixes SPRING-18. cwbrandon
fix Fixed a *critical* bug in bpm4struts: when an action state would defer to more than one controller operation the action state's forward would be called after each operation call. This is very dangerous in combination with the session because code is not executed in the expected order anymore. draftdog
add All profile information has been externalized into mapping files. This means that its now <strong>VERY</strong> easy to change the default stereotype names, tagged values, or datatypes. You can use the new <em>profileMappingsUri</em> to point to a mappings file that overrides any default profile values. Fixes CORE-32. cwbrandon
add Bpm4Struts now supports final states pointing to locations or resources outside of the scope of the UML model. This is achieved by giving the final state a name starting with either <code>/</code> or <code>http://</code>, alternatively you can make use of the "hyperlink" feature as available in some UML tools, just make sure to hyperlink to a web page (sometimes UML tools distinguish between different types of hyperlinks). Fixes BPM-96. draftdog
update The <a href="jmi-uml1.4/index.html" target="_blank">JMI 1.4 API</a> has been published on the AndroMDA website, you can find it in the navigation menu under the "developers" section. Fixes SITE-14. draftdog
update The tagged value andromda_ejb_transactionType has been renamed to andromda_transaction_type (this was needed because of that fact we already had an andromda_transaction_type and we don't need duplicates). cwbrandon
update The has been updated to restrict the values you can assign to a tagged-value, enumerations have been used instead of plain String types. Unfortunately most UML tools will not support this feature, Poseidon included; the reason the fact that tagged-value references are not implemented. MagicDraw, however, has an impeccable support and you'll find it even easier to model than before. draftdog
add Added a compatibility list of UML tools that have been tested, courtesy of <a href="">Daniel S. Haischt</a>. This list has been added to the website <a href="case-tools.html">here</a>. draftdog
add Added the slides used for the presentation at the university of Antwerp, you can download them at the <a href="resources.html">resources</a> page. draftdog
fix Fix minor Spring cartridge bug (released with 3.0M3), operations on the service base class now have the correct protected access. cwbrandon
update Bpm4Struts now properly supports <code>datatype.File</code> in controller operations too, this was still missing since the form interfaces where not properly exposing the file member. This fix is only interesting to you in case you're making use of the file-upload support. Fixes BPM-112. draftdog
update The Spring cartridge has been updated with an improvement that will make it easier to transform entities into other objects such as value objects. Simply draw a dependency from an entity to a value object and the entity's DAO will support transformation into that value object on it's methods (i.e. when loading an entity instance, or finding a list of entity instances you can optionally pass in a transformation flag argument - by default no transformation is done). You will need to implement the transformation yourself in the entity's DAO, but calls to this method are automatically invoked depending on the transformation flag you are using. draftdog

Release 3.0M3 - 2004-12-26

Type Changes By
add The ability to define the OuterJoin association fetching strategy within an association end within the Hibernate Cartridge Fixes HIB-27. carloslcuenca
add Refactored exception handling. Exceptions are now recorded in exception dump files. The file name convention is <cartridge name>timestamp.exc. Timestamp takes the form YYMMDDHHMMSS[_SUFFIX]. Suffix is an incrementing number which is used when two or more exceptions occur in the same second. amartinwest
add The ability to filter (or select) the cartridges you want to perform model processing has been introduced. Please see <a href="maven-andromda-plugin/properties.html#maven.andromda.cartridgeFilter">maven.andromda.cartridgeFilter</a> for more information on how to use this new feature with the maven plugin, or <a href="anttask.html#cartridgeFilter">cartridgeFilter</a> for more information on how to use it directly with the AndroMDA Ant task. Fixes CORE-33. cwbrandon
add Merge support has been enabled: A new namespace property named <code>mergeMappingsUri</code> has been introduced which allows you to defined mapping files for merging. These files behave just like the other mapping files (i.e. languageMappings, sqlMappings, etc) and can be used within each namespace or within the default namespace. Please see <a href="andromda-cartridges/index.html#mergeMappingsUri">mergeMappingsUri</a> for more information. Fixes CORE-23. cwbrandon
add Translation of OCL to Hibernate QL has been improved to use named (instead of unnamed) parameters, please see the issue for more detailed information. Fixes OCL-5. cwbrandon
add The Spring cartridge DAO business operations are now able to lazily load relationships between entites, they also have required parameter checks generated (just like all Spring service operations). cwbrandon
add The Spring cartridge has a new feature: <<Entity>> operations can now be toggled to <code>classifier</code> or <code>instance</code> scope; the former will put the operation on the entity's DAO, while the latter will simply put the operation into the entity implementation class. Most UML tools allow this feature on an operation by selecting the desired state in the operation's properties dialog. Fixes SPRING-9. draftdog
add The bpm4struts-cartridge now generates more styles in the CSS files that are created for each <<FrontEndView>>, by default these styles are empty but it is very easy to customize them to fine-tune the layout for your pages. <ol> <li>form labels and fields</li> <li>form buttons (submit and reset)</li> <li>displaytag:table headers</li> <li>displaytag:table columns</li> </ol> Fixes BPM-114. draftdog
fix In bpm4struts it is now possible to send parameters from one action state to another, and this in the scope of an action; it is therefore not needed anymore to have parameters entering or exiting a page, any action state will do. These parameters will also be recorded in the corresponding action form. draftdog
fix Bpm4Struts internal plumbing has significantly improved, this will be most noticeable in the performance. This fix is the first part of a series of improvements in order to support large and complex models which would yield JVM overflow errors. Fixes BPM-102. draftdog
fix In bpm4struts you must now draw dependencies from the <<FrontEndController>> to the associated <<FrontEndSessionObject>> classes instead of simply using associations. draftdog
add The <a href="andromda-hibernate-cartridge/profile.html">AndroMDA Hibernate</a> cartridge supports hibernate's Three Inheritance Strategies and allows root entities to be generated as interfaces. amwest
add The <a href="andromda-spring-cartridge/profile.html">AndroMDA Spring</a> cartridge can now model (and have generated) full role based security for the optional Session EJB wrappers. cwbrandon
add The ModelElementFacades association to DependencyFacade has been renamed from <code>dependencies</code> to <code>targetDependencies</code>. This was necessary due to the fact the dependencies returned were target dependencies only and did not include source dependencies. A new association was added to DependencyFacade called <code>sourceDependencies</code> which can retrieve all source dependencies for a model element. cwbrandon
add The <a href="andromda-webservice-cartridge/profile.html">AndroMDA Web Service</a> cartridge can now have web services secured through modeling. cwbrandon
add The bpm4struts generated <code>web.xml</code> file now contains some merge points, similar to <a href="">XDoclet</a>. If you want you can completely ignore them because they are commented out. But for some people it might be useful to insert fragments into the web.xml without <a href="andromda-cartridges/index.html#mergeLocation">overriding the template</a>. draftdog
add Added support for lazily loaded relationships collections in <a href="andromda-hibernate-cartridge/profile.html#andromda_hibernate_lazy">Hibernate</a> and <a href="andromda-spring-cartridge/profile.html#andromda_hibernate_lazy">Spring</a>, it is sufficient to use the aggregation kind of an association end (composite is not lazy, the other kinds are lazy) but you can always override the default values using the newly define <code>andromda_hibernate_lazy</code> tagged value. draftdog
add Bpm4Struts now supports file uploads, just use the pre-defined <code>datatype.File</code> from the profile (or create it yourself) on an event parameter. draftdog
add Added new tagged value to BPM4Struts called <code>andromda_struts_view_field_reset</code> which allows one to specify specific fields that should be reset on a transition. This is useful when you want certain fields to be reset after action execution but you don't want the entire form to be reset. cwbrandon
add BPM4Struts can now extract resource message keys from exceptions thrown from the business tier. For example, if an operation in your service throws an exception with the message " {some.message.key} an exception occurred!", BPM4Struts will extract the <em>some.message.key</em> from the exception, and add it to the request as a struts action error. You then place this new key in your custom message resources with a corresponding message, and next time the error occurs this new message will be displayed (instead of the exception). The exception handling pattern and a few other related properties are configurable, you can learn more about them on <a href="#namespace.html">BPM4Struts Namespace Properties</a>. <strong>NOTE:</strong> if the pattern can not be found in an exception processing continues as normal and the exception will be displayed. cwbrandon
add Table and action now have their own dedicated CSS style, per generated JSP another CSS file will be generate by bpm4struts; in this file you can locally override any defined styles. draftdog
fix The 'validwhen' validation feature has finally been implemented. It is now possible with bpm4struts to additionally validate a specific field check for certain runtime conditions. This feature is mostly used to confirm passwords; this example has been added to the online-store. draftdog
add Specific generated pieces of JSP code has its own style, a stylesheet is generated for each page. draftdog
update The bpm4struts cartridge now overwrites all jsps pages and stylesheets upon regeneration. This is very important for users of earlier versions. draftdog
update Updated the <a href="starting.html">getting started</a> guide. draftdog
update This update is the last one that will impact the way users model their Struts application. A change was needed due to a missing feature: "multibox". In order to properly fix it some other changes were required too. <ol> <li>You can now put any widget in a table, you can do that by simply linking an event parameter using the <code>andromda_struts_view_field_tablelink</code> tagged value to an incoming table collection. You must of course link to an existing table column. </li> <li>Previously performing this step would simply create a hyperlink, now you would need to set the event parameter's <code>andromda_struts_view_field_type</code> tagged value to 'link' in order to achieve that. </li> <li>Due to HTML limitations you can only make links to the same table from a single action. The reason is that there can be only one form around the table. If you still want to have multiple actions working on the same table you will need to patch in manually using JavaScript (setting the target action URL). </li> <li>If you want to use the <a href="">multibox</a> feature you need first to model a collection or array page-variable that contains the values against which to match. Next you create a table link, thereby selecting the table column. Finally you set the field type of the event parameter to something like this (assuming the multibox collection is called 'myValues') <code>andromda_struts_view_field_type = multibox:myValues</code> </li> <li>The online store has been extended with an example of this, just open the model and check out the 'buy this item' action. The 'test' and 'available' parameters are rendered as widgets in the table, the 'available' column is a multibox. Please also note how the multibox collection (called 'availableItems') is preloaded by the 'loadItems' controller operations. </li> </ol> <p class="highlight"> I strongly recommend not relying too much on the widgets-in-table feature yet, it is experimental and is likely to change in the future. The reason it has been put in is to see whether or not it is usable. A restriction currently is that you will not have any way to submit the changes you make in the table, for that to work we would need to apply some updates to the rendered rows so a submit button could properly trigger the sending of the form. </p> Fixes BPM-83. draftdog
add The AndroMDApp Maven plugin has been improved to include Spring and the WebService cartridges as options when generating an AndroMDA powered Maven application. cwbrandon
fix AndroMDA now automatically assigns a suitable name to association ends with a 'many' cardinality and an empty name. Before only the name of the target classifier was taken into account, now it is analyzed and a proper (English) name is constructed (word:words, key:keys, property:properties). If your code relies on such unlabeled association ends it might be possible that an AndroMDA run on your UMl model will result in code that is uncompilable in combination with your existing implementation classes, a simple rename will be sufficient. draftdog
update The metafacades now have their properties no longer modeled as operations but as attributes, wherever possible. This has no effect on code already generated. In addition boolean accessor methods now have their names properly rendered according to the Java Bean specification (getXXX becomes isXXX). Fixes UMLMETA-3. draftdog
update The Xdoclet dependency, WebDoclet to be exact, has been removed from the bpm4struts-cartridge; now the <code>struts-config.xml</code> and <code>validation.xml</code> files are generated directly by AndroMDA. The Ant-tool and the maven plugins, used to generate a default AndroMDA project, have also been updated to reflect this change. draftdog
add The AndroMDA Spring cartridge (a cartridge based on the <a href="">Spring Framework</a>) has moved from the contrib module to the main andromda codebase. To learn how to use this new cartridge, please see the the documentation <a href="andromda-spring-cartridge/index.html">here</a> cwbrandon
update The latest major update has been improved: it is now no longer needed to add tagged values onto controller operation arguments. The cartridge will auto-detect the appropriate value. In addition more validation constraints have been added to inform the user of any cartridge modeling errors. Fixes BPM-72. draftdog
update The latest major bpm4struts update did not prove to be a very elegant solution, this led us to revise the implementation and come up with an alternative one. Here's a list of what has changed: <ol> <li>parameters with the same name and in the same use-case are required to also be of the same type</li> <li>form fields do no longer have their name prefixed with the name of the action</li> <li>forms now implement an interface for each controller operation they defer to</li> <li>it is now needed to put arguments in the controller operations, these arguments will be available in the form interface that is accessible programmatically</li> <li>these arguments will need to have the <code> andromda_struts_view_field_type</code> tagged value set to 'select' in case you want to prepopulate a list of entries (see samples) </li> <li>currently it is also needed to specify the table columns (just as you would on a collection-type page variable) in case the argument maps onto an event parameter which is displayed in tabular format, but this will be solved soon</li> </ol> <p class="highlight"> All of this means this will break the compilation of your current codebase using one of the previous AndroMDA versions. </p> Fixes BPM-71. draftdog
update Overloaded a controller method for accessing the session objects, the new method allows to choose whether or not to create the session in case it does not exist yet (default is <code>true</code>). Also implemented some improvements in handling the session objects and the session itself. Fixes BPM-32. draftdog
add The andromda task and maven plugin, now support an attribute called <code>failOnValidationErrors</code> which allows us to turn on/off whether or not model processing should fail/stop if <strong>ANY</strong> model validation errors occur. cwbrandon
update The hibernate cartridge now generates its own hibernate.cfg.xml which means the jboss-service.xml generated by xdoclet is no longer needed. With this change, multiple new namespace properties were added for configuring this configuration file. cwbrandon
add Just like you can use success messages on action transitions we now have the possibility to use warning messages, simply add the tagged value <code>andromda_struts_action_warning_message</code> to the action transition and set its value to the message you want to have displayed (will be i18n'ed). Warning messages will be rendered in yellowish. In addition all messages are now supported on <strong>any</strong> transition, and you may have more than one message on such a transition (unlimited). Fixes BPM-69. draftdog
update The controllers associated to session objects have different methods to access those objects. The 'clearXXX' method has been renamed to 'removeXXX'. Fixes BPM-32. draftdog
add A new namespace property 'versionProperty' has been added, it is used to determine which property/attribute name to use for versioning entities. cwbrandon
add There is a new link in the download section (menu), it is called 'resources' and it will contain resources on AndroMDA such as tutorials and slides. draftdog
add A new namespace property is available to set a default date format to use for date fields in your bpm4struts, not specifying this value will use dd/MM/yyyy as the default date format. draftdog
fix This change fixes some issues with the most recent updates for bpm4struts: <ol> <li>We no longer have the controller operation interfaces the forms were implementing</li> <li>Instead we have a controller operation for each different action that defers to them, this means you sometimes have the same operation more than once with only a different argument type for the form. This seems to be the most optimal and realistic implementation, forms cannot be shared using interfaces aggregating the fields because field names carry the action name as a prefix and this cannot be changed because in that case validation rules would be impossible to determine for fields that have the same name and type over different page actions. </li> <li>It should now be possible to easily send parameters between use-cases</li> </ol> draftdog
update Controllers and their implementation have changed names. The abstract parent classes now no longer have the 'Interface' suffix, the descendants have the 'Impl' suffix. This has been done for consistency with other cartridges and because it is cleaner not to have any suffix on the interface or abstract parents. draftdog
update It is now possible to specify labels and values differently for selectable parameters such as in comboboxes and lists. The form containing such a parameter will have two new properties: 'valueList' and 'labelList'. If you do not specify the 'labelList' property it will assume the values of the 'valueList'. The backing list has been made readonly because it will construct a special array to be handled by the Struts tags. Fixes BPM-44. draftdog
update Controller implementation do not get form types passed in the argument, instead there is an interface aggregating common form properties, this way forms of several different types implementing this interface can be passed in. This elegantly allows a single controller operation to be called from different actions (which each have their own form). draftdog
update A major change has been incorporated into the cartridge, you will have to be very careful when migrating to a version after this date. ActionForms are back into the request scope so their properties will not be persisted into the session as was the case before. Bpm4Struts now is intelligent enough to determine which properties should be available in which ActionForm (even in ambiguous cases such as cyclic processes or when multiple actions target multiple pages without a 1-to-1 mapping. The reason for this drastic change was a possible bug in the server-side validation framework. It would happen that forms were not properly recognized on the server while the client could parse them fine. In order to properly migrate you should at least need to fix the controller implementations (you will have compilation errors otherwise), unfortunately you will need to update all JSP pages. The changes are minimal so you might consider looking at the differences manually (we are back at using the Struts HTML tag library instead of the plain old HTML tags directly). draftdog
update The <code>validating</code> flag has been renamed to the more appropriate <code>xmlValidation</code>. At the same time a new <code>modelValidation</code> flag has been added that allows us to turn on/off model validation during processing. By default model validation occurs, however its sometimes nice to turn it off for performance reasons (i.e. you have a really big model). cwbrandon
add We now have session objects, these instances can be handled through protected controller methods. Controller interfaces are abstract classes now, so make sure you use 'extends' instead of 'implements' when using the cartridge after this date. Fixes BPM-32. draftdog
update The namespace property 'breadCrumbs' (boolean) has been replaced by the property 'maxBreadCrumbs' (integer). To disable breadcrumbs specify zero. Additionally the tabledecorator has been removed, it was only used to render specific HTML code but a more elegant solution has been put in place. Fixes BPM-36. draftdog
update A new namespace property has been added that can be used for <em>any</em> cartridge, its called <code>mergeLocation</code>, for more information see <a href="andromda-cartridges/index.html#mergeLocation">Overriding cartridge resources</a>. cwbrandon
add For those who want it online help will be generated for your application, by default it is enabled. You can override this by setting the 'onlineHelp' property to 'false' in your bpm4struts namespace. It currently supports documentation on use-cases, action transitions, event parameters and pages. Fixes BPM-48. draftdog
update Tooltips are now handled in JavaScript. We had to remove the doctypes for that to work properly in Firefox and Mozilla. It will be improved in the future. The reason we have these JS tooltips is that now it can also support images and text of arbitrary length. draftdog
update Pattern masks for input field validation must not include the leading '^' and trailing '$' anymore. Some CASE tools such as MagicDraw don't handle them well. draftdog
update The table link tagged value changed name: <code>andromda_struts_action_tablelink</code> is now <code>andromda_struts_view_field_tablelink</code>, the reason is that the location for this tagged value is the parameter and not the transition (as in the very beginning). draftdog
update Form bean fields now have the name of their action prepended to their name (only for event parameters, page variables are unchanged). Using bpm4struts after this date will require you to update your controller implementations or a compilation error will occur. This change was needed in order to allow event parameters to have the same names in a single use-case. Without this feature the form would contain the same field name more than once, and that is not allowed in Java. draftdog
add A new namespace property has been added: 'dummyData'. You can either give it a 'true' or 'false' value. The default is 'true'. If the value is 'true' a 'dummy data' will be rendered in places like the controller, if set to 'false' this dummy data will not be generated. draftdog
update toJavaClassName and toJavaMethodName in StringUtilsHelper have been renamed to more language generic "upperCamelCaseName" and "lowerCamelCaseName". cwbrandon
add A new namespace property has been added: 'tableNamePrefix'. cwbrandon
add A new namespace property has been added: 'breadCrumbs'. You can either give it a 'true' or 'false' value. The default is 'true'. If the value is 'true' a 'history' is rendered at the top of each page, also known as breadcrumbs: it allows you to navigate back and forth between the pages already visited. The scope of the breadcrumbs is restricted to the context use-case. Fixes BPM-36. draftdog
add Required fields now have an asterisk rendered next to their label. (Only if validation has been enabled) Fixes BPM-39. draftdog
add Added the following tagged value: <code>andromda_struts_view_field_tablelink</code>. You can use it to create hyperlinks to actions in the columns of a table. Fixes BPM-45. draftdog
add Date input field now have a popup calendar to choose the date from and have it automaitcally rendered into the appropriate format. Fixes BPM-23. draftdog

Release 3.0M2 - 2004-08-09

Type Changes By
add Cartridges now allow generation based on metafacade type (and optionally its properties), in addition to stereotypes. cwbrandon
add It is now possible to create a hyperlink from a final state to a use-case and have the cartridge interpret it as the next use-case to navigate to. Fixes BPM-14. draftdog
update The maven build has been changed <ul> <li> All artifacts now reside in the 'andromda' groupId of the maven repository. This means for those using Maven for their projects, they'll need to specify 'andromda' as the groupId (for dependencies) instead of the old 'andromda-cartridges' for cartridges and 'andromda-translation-libraries' for translation-libraries. </li> <li> Bootstrap dependencies are now stored in CVS. They are renamed to the current version and copied to the remote repository during the build ( they used to be stored remotely). </li> </ul> cwbrandon
update The <andromda/> Ant task was changed to allow multiple models to be specified using a URL. This included adding a new <model/> element and eliminating the modelURL attribute from the <andromda/> task. cwbrandon
add Enabled support for tools that do not allow putting graphs inside use-cases. It is now sufficient to put the <code>andromda_struts_usecase_activity</code> tagged value on the use-case and assign it the name of an activity graph. draftdog
add Enabled support for tools that do not allow assigning model elements to classifiers. It is now possible to put a <code>andromda_struts_controller_usecase</code> tagged value on the controller and assigning it the name of a use-case. draftdog
add Tagged value prefix of "@andromda" was added back to all tagged values. It was causing naming conflicts with XDoclet tags when it was just "@". cwbrandon
add Added new resource element to the andromda-cartridge.xml that allows non template resources (like images, jars, etc) to be included and output from a cartridge. cwbrandon
update All JSPs have been updated to render XHTML 1.0 compatible content, the content-type declaration has been updated and any HTML comment has been changed to comply to the XHTML standard. You will need an XHTML compatible browser to properly view the pages. By default bpm4struts generates HTML 4.0 compliant JSPs but by setting the 'xhtml' namespace property to 'true' it will render XHTML. draftdog
update The 'sheet' attribute in the template element has been renamed to 'path'. cwbrandon
add In bpm4struts there is a new namespace property: xhtml. The property 'securityEnabled' has been renamed to 'security'. draftdog
update The 'overWrite' attribute in the template element has been renamed to 'overwrite'. cwbrandon
add A new feature has been added that will allow users to import legacy database schemas and have an XMI file generated from them. This will make it easier to port development of legacy systems to AndroMDA. cwbrandon
add A new cartridge is available for publishing services as web-services, this cartridge is to be used in combination with either the EJB, Hibernate, or Java cartridge. cwbrandon
add Tabular data can now automatically be displayed using paging, sorting and exporting features, the displaytag tag-library is used. draftdog
add OCL support provides the following features: <ul> <li>Metamodels will now have their constraints validated during code generation.</li> <li>Finder queries for persisted entities can now be expressed using OCL.</li> </ul> cwbrandon