Over the years, the team as Skyway Software has learned a lot about code generation — one of the most important things being that there is no single right way of doing any one thing.  Code generation would certainly be a lot easier if there were one, and only one, appropriate technical implementation, however, that’s not the world we live in.

When it comes to application development, the reality is that there is variation in development standards and styles.  From a code generation standpoint, we could have picked a standard that we felt comfortable with and advocated it to all Spring application developers as “the standard“, however, we don’t feel development accelerators should force you to compromise on your own coding standards.  A frequent generalization (and criticism) of code generation has been the inability for code generators to adapt to company and/or project standards, and in response, one of Skyway Software’s guiding principles is that “the generation system must be extendible, configurable, and customizable at every level” (read our full list of code generation principles).  We recognize customization as a fundamental requirement, and this, we think, is one of the features that makes Skyway Builder the premier Spring code generation tool.

The approach that we’ve taken with Skyway Builder is to provide code generation defaults.  The defaults are derived from large, enterprise-level Spring implementations and Spring best practices, and they’ve been vetted by Spring developers/architects and certified by SpringSource.  If the defaults don’t conform to your project standards, then the Skyway Builder code generation engine for Spring can be customized to adapt to different standards.  This isn’t a new feature in Skyway Builder per se.  The customization feature is something we’ve had in Skyway Builder from day one in the form of custom Eclipse plugins, and it’s been leveraged extensively by users of Skyway Builder. However, Skyway Builder 6.3 introduces an additional customization approach that is simpler than developing EMF-based Eclipse plugins and provides an expanded set of customization options.

Here’s a summary of the new code customization features in Skyway Builder 6.3:

  1. Full code generation configuration – The target file name, package (if applicable), file path, and project for primary and secondary code generation artifacts can be configured.
  2. Project-level customization – The code generation can be customized at the project-level and applied to all application artifacts in the project.  IDE-level customization (through Eclipse plugins) is still supported.
  3. Artifact-level customization - A specific application artifact can be customized on an artifact-by-artifact basis (as opposed to inheriting project-level customizations)
  4. Non-plugin based customization – Eclipse plugin and EMF development experience is not required.  There’s no need to develop Eclipse plugins to customize the code generation, however, IDE-level customization is still supported.
  5. CE and EE code customization – Both Community Edition (open source) and Enterprise Edition (commercial) code generation standards can be customized.
  6. Enable/Disable code generation – The code generation of an individual artifact or type of artifact can be enabled or disabled.

Each application artifact in the Spring DSL has a Code Generation tab for configuring the code generation.  Here’s a screenshot of the code generation options that are available at the project level, which represent the default for all artifacts in the project.

configcodegenproject

Each artifact has also has a Code Generation tab that lets you customize the code generation options for the specific artifact.  As you see from the follow screenshot, the available code generation options are limited to the relevant primary and secondary artifacts.

configcodegencontroller

Please remember that this is a feature preview.  Skyway Builder 6.3 should be available near the end of August.  To stay in the loop on the upcoming 6.3 release, please follow us on Twitter, become a fan of Skyway Builder on Facebook, or join the Skyway Community. As one of the many benefits of joining our community, you will automatically receive product announcements and updates.

Skyway Builder 6.3 Feature Preview Series

    Bookmark and Share

    Tags: , , , , , ,

    { 2 Comments }
    1. Luis Molina says:

      hi, i have coded some generators and im moving from .net to java and ive been shocked with your code generator…, you are very good…, well i want to know if 6.3 will be open sourced too? im interested in making plugins, i dont like very much spring recipes, im more confortable with jboss way of working…

    2. neyde says:

      Thank you four your comments. Yes…Skyway Builder 6.3 will continue to be open source with a set of available add-ons that are commercial. All the new features that I’ve previewed thus far are in the open source version of Skyway Builder.

    Leave a Reply