Due to increasing demand for a common interface as well as extensibility for our core software at Adaptive Computing, we have developed a single point of integration using Grails and Gradle in the form of a RESTful web application called Moab Web Services (MWS). As a part of these efforts, we developed a plugin platform that allows us to dynamically modify the behavior of MWS, even after being deployed on a client system and without restarting the application. We tackled numerous obstacles and questions during the development of the platform including JVM classloading, plugin services, plugin conventions, inter-plugin communication, plugin development, configuration and metadata, testing using the Spock framework, exposing plugin web services, and management via a web interface and RESTful API.
In this presentation, we will discuss these problems, how we overcame them, and how the solutions could be applied in more general cases.
Brian Saville spent the majority of his life pretending he did not want to be a software engineer. After a BS in Computer Engineering and a MS in IT, he found that he just wanted to write applications. He has spent several years scripting and writing web applications as a system administrator and web developer, but has most enjoyed working with web frameworks such as Grails. After being introduced to the project a year and a half ago, Brian has become an active member of the Grails community, writing several plugins and frequenting the mailing lists. He is currently the lead engineer for a major API integration application written in Grails at Adaptive Computing.More About Brian »