Plugin is associated to .aswp files. These files are XML files that serialize a "Project" data model.
Each node on the graph is serialized on this XML file (see method serialize on NodeContainer class). Each specific part of a node (customObject, customProperties, specificObject and specificProperties) are serialized on an XML element in project XML file, by specific node manager.
Extensions that store XML data to ASWP files are required to use their own XML namespace, with their own XSD schema.
Although .aswp files are used to store all visual and modeling data, they need to be exported in various XML file formats, such as struts.xml files.
To perform this export, you may either directly implement a ProjectChangeListener and add it to the project (extension point com.alveole.studio.documentlistener ). Then you could perform all your transformations by catching events ProjectSaved .
But MVC Web Project plugin also enables to use a chain of XSLT filters. You may define your own XSLT filters by defining them in extension point com.alveole.studio.xsltfilters . At the end of the XSLT chain, you may either specify a target file, or a XsltResultHandler implementation.
Each time MVC Web Project is saved to disk, Xslt filters are applyed and result is stored in target file.
Plugin is currently packaged with 4 xslt chains (only 2 of them are currently used):
Currently, we use a XsltResultHandler. Its implementation is com.alveole.studio.web.managers.Struts2XsltFileHandler .