Type | Changes | By |
---|
| Corrected possible collision in generated javascript validation routines. Fixes BPM-299. | draftdog |
| 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 |
| 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 |
| The Freemarker template engine plug-in did not find the templates
when it ran in a multi-classloa
der environment like Maven. Now,
it uses the context classloader to find the templates. | mattes3 |
| Added support for
Lingo remoting
to the Spring cartridge. Fixes SPRING-190. | freter |
| Migrate M1 site docs to M2. Add site plugins. Remove M1 site xml files. | vancek |
| 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 |
Type | Changes | By |
---|
| The meta cartridge now supports code generation for PSM metaclasses.
Assign the stereotype
PSMmetaclass
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 www.andromda.org. | mattes3 |
| The Hibernate cartridge now supports distributed entity caching with ehCache 1.2. Fixes HIB-192. | freter |
| The projct generator now supports a shortText property on prompt items to allow for better looking
graphical UIs. The J
2EE and Spring RCP project cartridge have been adjusted accordingly. Fixes ANDROMDAPP-16. | freter |
| 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 |
| The generated enumerations now supports Java generics when
enableTemplating
has been set to
true
. Thanks to a patch from Jens Vagts. Fixes JAVA-27. | draftdog |
| Initializing collections is now taking into account Java generics
when
enableTemplating has been set to true
.
Thanks to a patch from Jens Vagts. Fixes HIB-162. | draftdog |
| 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
null but not for array.length == 0
.
This has been resolved. Fixes SPRING-147. | draftdog |
| The hibernate byte Blob type has new
nullSafeGet and nullSafeSet
method implementations, thanks to a patch from Darius Schier. Fixes HIB-166. | draftdog |
| 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 b
eans, 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 |
| 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 |
| The Spring cartridge has a new optional outlet
value-objects
, used to emit CRUD
value objects to, that way you can have them generated separately into a common component. | draftdog |
| The Hibernate cartridge's namespace has two new outlets: entity-mappings and
user-types .
The .hbm.xml 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 common/target/src .
The andromdapp:generate plugin has been updated to have both outlets point to the
generated code of the core component. | draftdog |
| Spring service interfaces and default service exceptions are now emitted to a dedicated outlet called
service-interfaces . Make sure to update your andromda.xml , the proper
value for this namespace property is the generated source code directory for the 'common'
component, if you have generated your project using andromd
app:generate this is
${common.generated.dir} . | draftdog |
| 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 |
| org::andromda::metafacades::uml::ClassifierFacade::associationEnds has been changed to
{ordered} in order to match org::andromda::metafacades::uml::AssociationFacade::associationEnds
so that the generated methods org.andromda.metafacades.uml.ClassifierFacade#getAssociationEnds() and
org.andromda.metafacades.uml.AssociationFacade#getAssociationEnds() 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 org::andromda::metafacades::uml::ClassifierFacade::associationEnds then you'll have to
change #getAssociationEnds() 's return type to java.util.List . Patch from Cédric Vidal. Fixes UMLMETA-61. | cwbrandon |
| org.andromda.metafacades.uml.AssociationClassFacade now extends both
org.andromda.metafacades.uml.ClassifierFacade and
org.andromda.metafacades.uml.AssociationFacade . The property associationClass : boolean has
also been added to ClassifierFacade and AssociationFacade
so that templates and other metafacade
s 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 UML:AssociationClass 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 UML:AssociationClass XMI 1.1 compliant file. It's available under
JIRA issue UMLMETA-28. You can tell AndroMDA to apply that
XSLT before processing in the configuration using transformations.
Patch from Cédric Vidal. Fixes UMLMETA-61. | cwbrandon |
| The hibernate entity factories now have additional constructors making it easier to construct
them using a single call. | draftdog |
| 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 |
| A new namespace property has been introduced:
columnNamePrefix
. It allows you
to have all column names prefixed with a certain character sequence. | draftdog |
| Manageable entities now support generalization (inheritance). | draftdog |
| Value objects that have 'frozen' attributes or associations will no longer have a setter method
generated for these features. | draftdog |
| Using the enableTemplating 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 true .
In addition the Hibernate cartridge also supports strongly typed associations, instead of just
return a java.util.Collection the cartridge will now return
java.util.Collection<MyType> . Fixes UMLMETA-58. | draftdog |
Type | Changes | By |
---|
| The
UMLMetafacadeModel-.xml.zip
has been renamed to
andromda-metafacades-uml-.xml.zip
.
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 |
| 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 |
| 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 |
| In order for the presentat
ion metafacades to be made generic enough for use within other frameworks
(such as JSF), the following additional tagged values have been renamed:
Old Name | New Name |
@andromda.struts.action.success.message | @andromda.presentation.action.success.message |
@andromda.struts.action.warning.message | @andromda.presentation.action.warning.message |
@andromda.struts.view.field.required | @andromda.presentation.view.field.required |
@andromda.presentation.web.view.field.readonly | @andromda.presentation.view.field.readonly |
@andromda.struts.view.field.format | @andromda.presentation.view.field.format |
@andromda.struts.view.field.multibox | @andromda.presentation.view.field.multibox |
@andromda.struts.view.field.radio | @andromda.presentation.view.field.radio |
@andromda.struts.view.field.validwhen | @andromda.presentation.web.view.field.validwhen |
@andromda.struts.view.field.validators | @andromda.presentation.web.view.field.validators |
@andromda.struts.view.field.reset | @andromda.struts.view.field.reset |
@andromda.struts.view.table.maxrows | @andromda.struts.view.table.maxrows |
@andromda.struts.view.table.export | @andromda.presentation.view.table.export |
@andromda.struts.view.table.sortable | @andromda.presentation.view.table.sortable |
@andromda.struts.exception.type | @andromda.presentation.exception.type |
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 |
| Fixed a bug in the code generation for RMI remoting. Fixes SPRING-106. | freter |
| 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 |
| 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 |
| 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 |
| Handling of
options in bpm4struts
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 |
| The validation framework used in bpm4struts has been updated, it is now required to use
Struts 1.2.7
and
commons-validator 1.1.4
(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 prob
lem.
Not updating these dependencies will break validation support in the presentation layer, you'll
also see an exception stacktrace in the server output. | draftdog |
| 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:
Old Name | New Name |
@andromda.struts.action.type | @andromda.presentation.web.action.type |
@andromda.struts.action.tablelink | @andromda.presentation.web.action.tablelink |
@andromda.struts.action.form.scope | @andromda.presentation.web.action.form.scope |
@andromda.struts.action.resettable | @andromda.presentation.web.action.resettable |
@andromda.struts.view.field.type | @andromda.presentation.web.view.field.type |
@andromda.struts.view.field.tablelink | @andromda.presentation.web.view.field.tablelink |
@andromda.struts.table.columns | @andromda.presentation.view.table.columns |
@andromda.struts.action.redirect | @andromda.prese
ntation.web.action.redirect |
@andromda.struts.view.field.calendar | @andromda.presentation.web.view.field.calendar |
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 |
| Table links in bpm4struts are now allowed to target any arbitrary column, see the online store sample
for an implementation (the
title
column on the second page sends the
id
value for that row when clicked). Fixes BPM-225. | draftdog |
| With the bpm4struts cartridge it is now possible to submit selected rows, see the new documentation here:
Submitting selected rows
. Fixes BPM-169. | draftdog |
| 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 |
| Each <> in the bpm4struts cartridge will result in the generation of a JSP
page. This page will use include statements to construct its content fr
om other .jspf
files (jspf stands for JSP fragment), there will be a .jspf file for each action, table,
set of page variables, etc..
The action JSP files have been renamed from my-action.jsp to
my-action.jspf to be more consistent with the rest of the application.
If you are overriding generated action JSPs and using the
copy-over feature
you will need to rename those files to have the .jspf
extension or you application will not properly function.
| draftdog |
| 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 |
| Most web pages will no longer be directly accessible, a default security constraint will be generated
into the
web.xml
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 |
| 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 |
| The JBPM cartridge now provides a strongly typed interface to the modeled processes. | draftdog |
| Spring criteria queries now support
firstResult and fetchSize
. | draftdog |
| 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 forum thread 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 |
| Hibernate Cartridge now also supports "union-subclass" inheritance mapping for Hibernate 3.x projects. Fixes HIB-115. | carloslcuenca |
| 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
repositories
element. Fixes CORE-77. | cwbrandon |
| The
andromdapp:generate
tool is now able to generate projects using the
jBpm workflow engine<
/a>
,
selecting this option implies the use of Hibernate 3 (you will not longer be prompted for it). | draftdog |
| The
andromdapp:generate
tool now generates the versions of all dependencies into the
build.properties
file in the root of the project. | draftdog |
| The BPM4Struts tagged values @andromda.struts.usecase.activity and
@andromda.struts.controller.usecase have been renamed
to @andromda.presentation.usecase.activity and
@andromda.presentation.controller.usecase. | cwbrandon |
| 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 |
| Changes have been applied to the generic UML metafacade layer, more specifically in the way
state machines are handled. The ActivityGraphFacade now generalizes a new facade
called StateMachineFacade , 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
ActivityGraphFac
ade . 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| Spring cartridge now generates default implementations for the "ValueObje
ct to Entity" and "Entity to ValueObject"
conversion routines found in entity DAOs. | joelkoz |
| Added support for Acegi Security when used in a Rich Client project. Currently works with Acegi 0.9.0 | joelkoz |
| Hibernate 3.0 has a feature that allows
a DOM4J tree to be retrieved and saved from the database.
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 |
Type | Changes | By |
---|
| Schema2XMI is now able to map to database types with their precision defined. Fixes SCHEMATOXMI-1. | cwbrandon |
| 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-IN
F/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 |
| 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
hibernateVersion
namespace property with a value of
3
. | cwbrandon |
| 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
here. | draftdog |
| 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
version
namespace property with a value of
3
. | carloslcuenca |
| Major performance improvements have been added to the AndroMDA core, as well as a new feature called
the
AndroMDA Server
which dramatically enhances the
performance of AndroMDA. | cwbrandon |
| AndroMDA is now configured through a single XML configuratio
n file. This means both the Ant task and Maven
plugin just point to this file. Please see the
configuration
documentation
for more information. Fixes CORE-67. | cwbrandon |
| 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 |
| 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
normalizeMessages
namespace property
and setting it to
true
. Fixes BPM-181. | draftdog |
| 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 |
| When using manageable entities it is now possible to have binary data uploaded into 'blob' fields,
just use
datatype::Blob
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 |
| 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
<>
stereotype. Fixes BPM-195. | draftdog |
| 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 |
| A set of improvements and new features for managing CRUD entities have been implemented
- An issue with Konqueror has been resolved: select boxes did not change value when clicking
on the Copy link
- Comboboxes now retain their value after updating an entity
- Enumeration types are now properly handled when the literal type is a primitive
- 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
- Required fields now have an asterisk next to them
- Modeling a default value for an attribute is now supported: the field will have this as a
default value
- 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
| draftdog |
| 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 |
Type | Changes | By |
---|
| The
AndroMDA App Maven Plugin
can now
generate standalone war files (that can be deployed to
Tomcat
). Fixes MAVEN-23. | cwbrandon |
| Hibernate entities (which are marked as serializable) will now contain a field serialVersionUID
in order to satisfy
Versioning of Serializable Objects
and
Always Declare Serial Version Uid.
Users can override the automatically calculated SUID by setting the tagged value "@andromda.serialVersionUID". Fixes HIB-87. | freter |
| 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
extending and overriding
mappings. Fixes CORE-40. | cwbrandon |
| Bpm4struts no longer generates the custom-resources.properties 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 custom bundle you can safely point them to the
default bundle (by
removing the bundle attribute). Read this page for more info:
Bpm4Struts i18n. | draftdog |
| It is now possible to merge the entire contents of one or more files into a merge-point. Please see the
merge-point documentation
for more information. Fixes CORE-62. | cwbrandon |
| It is now possible to specify XSL transformation templates to be applied to the model(s) before model
processing begins, please see the
AndroMDA Maven Plugin
or the
AndroMDA Ant Task
(depending on what you use) for more information. Fixes CORE-56. | cwbrandon |
| It is now possible to use the
<>
stereotype on use-cases that need to be
accessible for anyone, even when security has been enabled. Fixes BPM-107. | draftdog |
| The AndroMDA Ant task has been refactored out of the Core, and the package name has changed
to org.andromda.ant.task, Maven users are not affected by this change, however Ant
users will need to update the package from the old org.andromda.core.anttasks to the
new org.andromda.ant.task. | cwbrandon |
| The encoding can now be set for both the
Ant Task and the AndroMDA Maven plugin,
maven.andromda.outputEncoding
is the required property for the Maven plugin,
and the
outputEncoding
is the attribute for the Andromda Ant task.
Please see the documentation for each for more information. Fixes CORE-59. | cwbrandon |
| 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 |
| 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 |
| The meta cartridge now supports generation of multiple inheritance for metafacades. Fixes META-4. | cwbrandon |
| The hibernate cartridge now allows to define indexes on the foreign key columns generated by entities
associations. | carloslcuenca |
| 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
updated table documentation
, 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 |
| Bpm4Struts now allows a new namespace property called defaultTableExportTypes , 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 csv , xml , excel and
pdf , use none to disable exporting for tables.
In addition the @andromda.struts.view.table.export tagged
value can now also take the none value to turn off export for the corresponding table. Fixes BPM-163. | draftdog |
| 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 datatype.Long now needs to be mapped as datatype::Long
within the JavaMappings.xml file). Fixes MISC-29. | cwbrandon |
| Client-side validation for dates have been improved, the default one which is taken from
commons-validator
only supports a very limited subset of the features one
would expect. We are now explicitely overriding this JavaScript routine in
validator-rules.xml
. Fixes BPM-160. | draftdog |
| 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 |
| The
Spring Cartridge
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 |
| The
Spring Cartridge
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 |
| 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
useArraysForMultiplicitiesOfTypeMany
namespace property to true (so that arrays are generated for association ends with multiplicities
of type many) and make sure you have the
value-objects
namespace
property defined for the java cartridge. | cwbrandon |
| Many-to-many relationships, where only a single table is involved, are not causing the Hibernate
SchemaExport tool to choke anymore. This bug was rela
ted to the generated foreign key constraint names. Fixes HIB-82. | draftdog |
| 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 |
Type | Changes | By |
---|
| 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
SchemaExport
tool when generating the database schema DDL. The
@andromda.persistence.foreignkey.constraint
tagged value can be used to
override the default name. Fixes HIB-81. | draftdog |
| 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 |
| 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 |
| Hibernate enumerations (generated by the Hibernate cartridge) now extend the regular java enumerations
generated by the java cartridg
e (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 |
| The
<>
stereotype has been renamed to
<>
. UML tools
that do not import the latest version of the andromda profile will need to have the stereotype
renamed by the user. | draftdog |
| The caching of metafacade properties can now be disabled (even on a per cartridge basis), just use
the
enableMetafacadePropertyCaching
namespace property. Most properties are being cached
now for reasons of performance. | draftdog |
| The spring cartridge now supports nullable attributes in criteria finders. Fixes SPRING-47. | freter |
| 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 |
| The bpm4struts cartridge now supports exporting to PDF, existing projects will need to include
the
IText v0.99
dependency.
Add this dependency to your
/web/project.xml
. | draftdog |
| The spring cartridge now supports modeled hibernate criteria finders (Thanks to Stefan Reichert and Peter Friese). Fixes SPRING-38. | cwbrandon |
| . Fixes CORE-15. | cwbrandon |
| The bpm4struts cartridge now generates a
displaytag.properties
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 |
| 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 |
| The bpm4struts cartridge now support displaytag
table decorators. Just use the @andromda.struts.view.table.decorator=true
tagged value on your table to have an empty decorator generated for it. By default
the decorator class names end with Decorator , but this can be changed using
the tableDecoratorSuffix namespace property. Don't forget to configure the
decorators 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 |
| The
Hibernate Cartridge
now supports
lists, sets, maps and ba
gs for mapping collections. Fixes HIB-20. | carloslcuenca |
| 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
online-store
sample. Fixes SAMPLES-6. | draftdog |
| Bpm4Struts now correctly exports to all known
displaytag supported formats, there was a bug where
simple properties were being exported with surrounding HTML tags.
Caution: the use of
@andromda.struts.view.table.export 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.
Fixes BPM-127. | draftdog |
| Added a new tagged value
for bpm4struts: @andromda.struts.view.field.validators . It allows you to specify your
own validators for parameters, just don't forget to use the
merge point in
validator-rules.xml . Fixes BPM-110. | draftdog |
| It is now possible to specify multiple formats for parameters using the
@andromda.struts.view.field.format
tagged value, thanks to a contribution from
Kishore
. Fixes BPM-138. | draftdog |
| Bpm4Struts now supports a new
namespace property:
actionPathPrefix , it allows more
control on the way action paths are being rendered in struts-config.xml . | draftdog |
| The
Spring Cartridge
and
Hibernate Cartridge
now supports
EhCache as the second level cache manager. Properties, associations, and queries can be
configured to be cacheable. | carloslcuenca |
| The cartridge now supports dynamic-insert and dynamic-update hibernate properties for entities. Fixes HIB-61. | carloslcuenca |
| All existing cartridges emitting Java source code now include a license-header merge point,
just use the
merge-mapping
feature to have it replaced with your own license statement, the merge-point is called
// license-header java merge-point
. Fixes MISC-24. | draftdog |
| Superfluous *.hbm.xml files are no longer generated when a
subclass
strategy
is used with hibernate inheritance. Fixes HIB-48. | cwbrandon |
| When using a
class
strategy with hibernate inheritance, not-null values are now
correctly set to "false" for all subclass properties. Fixes HIB-58. | cwbrandon |
| The
Spring Cartridge
now provides Spring remoting
support (thanks to Peter Friese). Fixes SPRING-34. | cwbrandon |
| A new attribute has been introduced on the template element within the cartridge descriptor
(andromda-cartridge.xml). It's called outputOnEmptyElements
and allows a cartridge writer to determine whether or not a file should be output when there are no elements collected when using the
outputToSingleFile flag. | cwbrandon |
| The
Spring Cartridge
now generates a valid
DAO inheritance hiearchy when inheritance between entities is modeled. Fixes SPRING-37. | cwbrandon |
| The
Spring Cartridge
must now be used
in conjunction with the
Hibernate Cartridge
when using
Hibernate persistence. | cwbrandon |
| The pattern matching exception handler gen
erated by bpm4struts now correctly handles exceptions that
are instances of
java.lang.Throwable
and any of it's decendants (previously it only
handled java.lang.Exception instances). Fixes BPM-136. | cwbrandon |
| The bpm4struts cartridge no longer requires you to model the
<>
,
<>
and
<>
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 |
| 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 |
| 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 |
| Entity attributes are now required to have a public visibility (an OCL
constraint has been added to validate this). Fixes SPRING-26. | cwbrandon |
| The Spring Cartridge and
Hibernate Cartridge now generate child
cascade's correctly based on whether or not t
he default-cascade for the entity is set to
all or save-update . Fixes SPRING-33. | cwbrandon |
| The
Meta Cartridge
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 |
| All usages of @andromda.struts.view.field.type=radio 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 @andromda.struts.view.field.radio and can only
be used if the field type specified is of type radio . | draftdog |
| Eager loading of relationships is now correctly supported when using composition. Fixes SPRING-29. | cwbrandon |
| Bpm4struts is now able to generate
id
attributes in the web.xml descriptor,
just use the
generateWebXmlIds
namespace property. | draftdog |
| Spring DAO names are now completely configurable. Patterns can be configured in the
namespace properties
section. Fixes SPRING-23. | cwbrandon |
| Entity query operations (i.e. finder
s) 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 |
| Now it is possible to enable Hibernate proxies for Entities in the hibernate Cartridge. Fixes HIB-33. | carloslcuenca |
| An external configuration file can now configure logging for AndroMDA.
See
loggingConfigurationUri
for information
on how to use it with Ant. See
maven.andromda.loggingConfigurationUri
for information on how to use with Maven. Fixes CORE-16. | cwbrandon |
| Metafacades can now be mapped on the basis that more than one stereotype
is required. Fixes CORE-39. | cwbrandon |
| Completely removed XDoclet from the Hibernate cartridge. | cwbrandon |
| Added a
howto
for the Spring cartridge. | draftdog |
| 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 |
| Provide the ability t
o 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 |
| Implemented enumeration support for the
Hibernate
and
Spring
cartridges. Fixes HIB-15. | draftdog |
| ALL OCL string operations
are now supported by the
Query Translation Library Fixes OCL-1. | cwbrandon |
| Template object properties can now be specified more than once in the andromda-cartridge.xml. Fixes CORE-38. | cwbrandon |
| The
Hibernate
and
Spring
cartridges are now able to define
query cache settings. Fixes HIB-34. | carloslcuenca |
| The
Query Translation Library
was using the OCL
exists()
expression incorrectly. Changed to use the
correct
includes()
expression instead. | cwbrandon |
| The
Query Translation Library
is now able to correctly handle
order by expressions (t
his is accompished using the standard
-> sortedBy()
construct in OCL. | cwbrandon |
| The
Query Translation Library
is now able to correctly handle
grouped expressions. Fixes OCL-7. | cwbrandon |
| 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 |
| 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 |
| All profile information has been externalized into mapping files. This means that its now
VERY
easy to change the default stereotype names, tagged values, or datatypes. You can use the new
profileMappingsUri
to point to a mappings file that overrides any default profile values. Fixes CORE-32. | cwbrandon |
| 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
/ or http://
, alternatively you can make use of
the "hyperlink" feature as available in some UML tools, just make sure to hyperlink t
o a
web page (sometimes UML tools distinguish between different types of hyperlinks). Fixes BPM-96. | draftdog |
| The
JMI 1.4 API
has been published on the
AndroMDA website, you can find it in the navigation menu under the "developers" section. Fixes SITE-14. | draftdog |
| 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 |
| The andromda-profile-XXX.xml.zip 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 |
| Added a compatibility list of UML tools that have been tested, courtesy of
Daniel S. Haischt
. This list has been added
to the website
here
. | draftdog |
| Added the slides used for the presentation at the university of Antwerp, you can download
them at the
resources
page. | draftdog |
| Fix minor Spring cartridge bug (
released with 3.0M3), operations on the service
base class now have the correct protected access. | cwbrandon |
| Bpm4Struts now properly supports
datatype.File
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 |
| 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 |
Type | Changes | By |
---|
| The ability to define the OuterJoin association fetching strategy
within an association end within the Hibernate Cartridge Fixes HIB-27. | carloslcuenca |
| Refactored exception handling. Exceptions are now recorded in
exception dump files. The file name convention is
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 |
| The ability to filter (or select) the cartridges you want
to perform model processing has been introduced. Please see
maven.andromda.cartridgeFilter
for more information on how to use this new feature with the maven plugin, or
cartridgeFilter for more information
on how to use it directly with the AndroMDA Ant task. Fixes CORE-33. | cwbrandon |
| Merge support has been enabled: A new namespace property named
mergeMappingsUri 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
mergeMappingsUri
for more information. Fixes CORE-23. | cwbrandon |
| 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 |
| The Spring cartridge DAO business operations are now a
ble to lazily load relationships
between entites, they also have required parameter checks generated (just like all Spring
service operations). | cwbrandon |
| The Spring cartridge has a new feature:
<>
operations can now be toggled
to
classifier or instance
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 |
| The bpm4struts-cartridge now generates more styles in the CSS files that are created for each
<>
, by default these styles are empty but it is very easy to
customize them to fine-tune the layout for your pages.
- form labels and fields
- form buttons (submit and reset)
- displaytag:table headers
- displaytag:table columns
Fixes BPM-114. | draftdog |
| 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 |
| Bpm4Struts internal plumbing has significan
tly 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 |
| In bpm4struts you must now draw dependencies from the
<>
to the associated
<>
classes instead of simply using
associations. | draftdog |
| The
AndroMDA
Hibernate
cartridge supports hibernate's Three Inheritance
Strategies and allows root entities to be generated as
interfaces. | amwest |
| The
AndroMDA Spring
cartridge can now model (and have generated) full role
based security for the optional Session EJB wrappers. | cwbrandon |
| The ModelElementFacades association to DependencyFacade has been renamed from
dependencies to targetDependencies
.
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
sourceDependencies
which can retrieve all source dependencies
for a model element. | cwbrandon |
| The
AndroMDA Web Service
cartridge can now have web services secured through modeling. | cwbrandon |
| The bpm4struts generated web.xml file now contains some merge points, similar to
XDoclet. 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
overriding the template. | draftdog |
| Added support for lazily loaded relationships collections in
Hibernate and
Spring, 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
@andromda.hibernate.lazy tagged value. | draftdog |
| Bpm4Struts now supports file uploads, just use the pre-defined
datatype.File
from the profile (or create it yourself)
on an event parameter. | draftdog |
| Added new tagged value to BPM4Struts called
@andromda.struts.view.field.reset
which allows one to specify specific fields that should be reset on a transition. This
is useful when you want certain fields to be res
et after action execution but you don't
want the entire form to be reset. | cwbrandon |
| 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
BPM4Struts Namespace Properties
.
NOTE:
if the pattern can not be found in an exception processing
continues as normal and the exception will be displayed. | cwbrandon |
| 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 |
| 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 |
| Specifi
c generated pieces of JSP code has its own style, a stylesheet is generated for each page. | draftdog |
| The bpm4struts cartridge now overwrites all jsps pages and stylesheets upon regeneration.
This is very important for users of earlier versions. | draftdog |
| Updated the
getting started
guide. | draftdog |
| 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.
- You can now put any widget in a table, you can do that by simply linking an event
parameter using the
@andromda.struts.view.field.tablelink
tagged value to an incoming table collection. You must of course link to an existing
table column.
- Previously performing this step would simply create a hyperlink, now you would need to
set the event parameter's
@andromda.struts.view.field.type
tagged value to 'link' in order to achieve that.
- 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).
- If you want to use the
multibox
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')
@andromda.struts.view.field.type = multibox:myValues
- 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.
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.
Fixes BPM-83. | draftdog |
| The AndroMDApp Maven plugin has been improved to include Spring
and the WebService cartridges as options when generating an AndroMDA
powered Maven application. | cwbrandon |
| 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 |
| 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 |
| The Xdoclet dependency, WebDoclet to be exact, has been removed from the bpm4struts-cartridge;
now the
struts-config.xml and
validation.xml
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 |
| The AndroMDA Spring cartridge (a cartridge based on th
e
Spring Framework
)
has moved from the contrib module to the main andromda codebase. To learn how to use this new cartridge,
please see the the documentation
here | cwbrandon |
| 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 |
| 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:
- parameters with the same name and in the same use-case are required to also
be of the same type
- form fields do no longer have their name prefixed with the name of the action
- forms now implement an interface for each controller operation they defer to
- it is now needed to put arguments in the controller operations, these arguments
will be available in the form interface that is accessible programmatically
- these arguments will need to have the
@andromda.struts.view.field.type tagged value set to 'select' in case
you want to prepopulate a list of entries (see sam
ples)
- 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
All of this means this will break the compilation of your current
codebase using one of the previous AndroMDA versions.
Fixes BPM-71. | draftdog |
| 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
true
). Also implemented some
improvements in handling the session objects and the session itself. Fixes BPM-32. | draftdog |
| The andromda task and maven plugin, now support an attribute called
failOnModelValidationErrors which allows us to
turn on/off whether or not model processing should fail/stop
if
ANY model validation errors occur. | cwbrandon |
| 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 |
| Just like you can use success messages on action transitions we now have
the possibility to use warning messages, simply add the tagged value
@andromda.struts.action.warning.message
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
any
transition, and you may have
more than one message on such a transition (unlimited). Fixes BPM-69. | draftdog |
| 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 |
| A new namespace property 'versionProperty' has been added, it is used
to determine which property/attribute name to use for versioning entities. | cwbrandon |
| 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 |
| 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 |
| This change fixes some issues with the most recent updates for bpm4struts:
- We no longer have the controller operation interfaces the forms were implementing
- 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.
- It should now be possible to easily send parameters between use-cases
| draftdog |
| 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 |
| 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 |
| 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 |
| 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 |
| The validating flag has been renamed to the more
a
ppropriate
xmlValidation . At the same time a new
modelValidation 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 |
| 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 |
| 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 |
| A new namespace property has been added that can be used for
any cartridge, its called
mergeLocation , for
more information see
Overriding cartridge resources. | cwbrandon |
| 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 |
| 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 |
| 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 |
| The table link tagged value changed name:
@andromda.struts.action.tablelink
is now
@andromda.struts.view.field.tablelink
, the reason is that
the location for this tagged value is the parameter and not the
transition (as in the very beginning). | draftdog |
| 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 |
| 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 |
| toJavaClassName and toJavaMethodName in StringUtilsHelper have been
renamed to more language generic "upperCamelCaseName"
and "lowerCamelCaseName". | cwbrandon |
| A new namespace property has been added: 'tableNamePrefix'. | cwbrandon |
| 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 |
| Required fields now have an asterisk rendered next to their
label. (Only if validation has been enabled) Fixes BPM-39. | draftdog |
| Added the following tagged value:
@andromda.struts.view.field.tablelink
.
You can use it to create hyperlinks to actions in the columns of a table. Fixes BPM-45. | draftdog |
| Date input field now have a popup calendar to choose the date from
and h
ave it automaitcally rendered into the appropriate format. Fixes BPM-23. | draftdog |
Type | Changes | By |
---|
| Cartridges now allow generation based on metafacade
type (and optionally its properties), in addition to stereotypes. | cwbrandon |
| 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 |
| The maven build has been changed
-
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.
-
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).
| cwbrandon |
| The
Ant task was changed to
allow multiple models to be specified using a URL.
This included adding a new
element
and eliminating the modelURL attribute from the
task. | cwbrandon |
| Enabled support for tools that do not allow putting graphs inside use-cases. It is now
sufficient to put the
@andromda.struts.usecase.activity
tagged value on the use-case and assign it the name of an activity graph. | draftdog |
| Enabled support for tools that do not allow assigning model elements to classifiers.
It is now possible to put a
@andromda.struts.controller.usecase
tagged value
on the controller and assigning it the name of a use-case. | draftdog |
| 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 |
| 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 |
| 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 |
| The 'sheet' attribute in the template element has been
renamed to 'path'. | cwbrandon |
| In bpm4struts there is a new namespace property: xhtml. The property
'securityEnabled' has been renamed to 'security'. | draftdog |
| The 'overWrite' attribute in the template element has been
renamed to 'overwrite'. | cwbrandon |
| 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 |
| 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 |
| Tabular data can now automatically be displayed using paging,
sorting and exporting features, the displaytag tag-library is
used. | draftdog |
| OCL support provides the following features:
- Metamodels will now have their constraints
validated during code generation.
- Finder queries for persisted entities
can now be expressed using OCL.
| cwbrandon |