The 0.9.2 release of Gaijin Studio for Eclipse is now available. It adds a number of features that were requested by the community and continues to refine the process of generating Spring MVC code from process flow metadata. The project is open source (LGPL) and may be downloaded at gaijin-studio.org.
Any feedback would be appreciated!Code:Gaijin Studio Features Gaijin Studio extends the Eclipse IDE to facilitate building applications based on the Spring MVC framework. Gaijin provides process flow editors which allow an application to be modeled visually and stored as metadata. Template-based code generators use the metadata to generate much of the Spring configuration and implementation code. This greatly reduces the amount of time needed to develop an application and allows detailed documentation to be generated from the metadata. Project Creation Wizard (-) Creates Eclipse project structure for a Spring MVC project. (-) Establishes classpath container for libraries expected on the application server classpath. (-) Copies application libraries into project and adds them to the Eclipse project classpath. (-) Generates web descriptor including Spring initializer listener/servlet and root context configration. (-) Generates simple Ant build script for building WAR based on project settings. (-) Optionally, creates an empty applicationContext.xml file and maps the file into a Spring IDE configuration set. Editors (-) Process flow editor allows for drag-and-drop creation of process flows that are translated into Spring MVC application flows. A single process equates to a Spring dispatcher servlet while the nodes within it represent Spring controllers. The process flow builder automatically generates the code for a DispatcherServlet subclass, prototypes for the controllers, the dispatcher configuration file, and the web.xml. (-) Form editor allows forms to be designed graphically. Forms are composed of strongly-typed form fields that are able to populate themselves from the request. Each form field is assigned a converter that allows it to convert data from the request into its datatype. The Gaijin builder automatically generates the form bean and internal details of the form. (-) Form validator edtor creates Spring-compatible validators for Gaijin forms. Validators are datatype-specific and may be chained for complex validation. Validation errors are made available to the request in the standard location expected by Spring taglibs. (-) Properties files are created for each process, form and validator and are updated automatically from the editors. The files are merged into a reloadable message source registered in the Spring dispatcher configuration file. Changes to messages such as form field names and validation messages are reflected immediately in the application without restarting the server. (-) Gaijin Studio is fully integrated with the Spring IDE plugins which are included in the standard distribution. Spring IDE configuration sets are used to specify groups of config files for both the root bean context and each dispatcher servlet bean context. When specifying bean references in the controllers, the configuration sets provide context-sensitive lists of available beans to choose from. The Spring IDE plugins also provide sytax highlighting of the config XML files and a graphical view of bean relationships. WFNM Integration (-) WFNM is completely integrated with the Gaijin Studio DispatcherServlet subclass. No user code is required to use the WFNM features. The required web descriptor entries and supporting libraries are added automatically. Process flow entry and exit notification are automatic as well. Objects added to the session within a Gaijin process are automatically re-claimed when the process is exited. WFNM taglibs may be used to override or enhance the default behavior.
Derek Adams
dadams (at) gaijin-studio.org


. Considering the new info, I am thinking that generating WebFlows from Gaijin is the right thing to do. I can update Gaijin to automatically generate everything needed for WebFlows based on the metadata it already collects from the graphical editors. The base runtime templates will have to derive from Action rather than Controller, but that is not a problem.