6 Replies Latest reply: Mar 17, 2012 7:36 PM by Rob Cernich RSS

SwitchYard Console Refactoring

Rob Cernich Master

Hey all,

 

I've recently been working on integrating the SwitchYard console into the AS7 console.  As part of that effort, I have significantly restructured the console project.  Before issuing pull requests, I thought it best to put the changes up for a wider review.  If you're interested, please respond with any questions, comments, criticism.

 

Some background... Prior to these changes, the SY console was built as a standalone console, which reused some infrastructure from the AS7 console.  In order to make things work, the project was a bit messy (including selected source from the AS7 project, sprinkle in a little bridge code, rewrite some other code...).  With the recent upgrade to AS 7.1.0CR1b, the SY console was broken and because of the way we were reusing the AS7 source, it looked like it was going to require some effort to fix it.  As we've been wanting to move the SY console into the AS7 console, it seemed like the right time to try integrating the two consoles.

 

The first challenge was figuring out how to make the AS console extensible.  Once that was done, the SY console needed to be converted to be an extension (plug-in) to the AS console.  Then the release needed to be updated to use the new consolidated console.  Below is a brief summary of the changes.

  • Updated the maven groupId to org.switchyard.console. (housekeeping)
  • All AS console specific code was moved from the SY console project (console/gwt) and moved into its own project (console/as7-core).  As the extension mechansim has not yet been incorporated into the AS console project, this project serves to package the AS console as a jar/gwt module that can be used by downstream projects.  It also incorporates the few changes needed to make it extensible (two modified files and a few new files).  This project is named switchyard-console-as7-core
  • The SY console is now packaged as a jar/gwt module and only includes code specific to the SY console pages.  It still lives in console/gwt, but the project name has changed to switchyard-console-extension
  • A new project was created to package the two sets of console functionality into a single war.  This project lives in console/app and is named switchyard-console-application.  (I haven't mentioned any of the details behind the design of the extension mechanism, but, if you're interested, here's a link that describes the approach, along with some example code: https://github.com/rcernich/fools-errands/tree/master/modular-mvp)
  • The release has been modified to:
    • use switchyard-console-application.war (was switchyard-console-gwt.war)
    • place the war in module/org/jboss/as/console/main
    • update the module.xml file to use the cosolidated console

 

All of these changes can be found here:

 

Any questions, comments, concerns appreciated.

 

Best,

Rob