class C2dGrailsPlugin { // the plugin version def version = "0.1" // the version or versions of Grails the plugin is designed for def grailsVersion = "1.1 > *" // the other plugins this plugin depends on def dependsOn = [:] // resources that are excluded from plugin packaging def pluginExcludes = [ "grails-app/views/error.gsp" ] // TODO Fill in these fields def author = "Gautam Arora" def authorEmail = "gautamsarora@gatech.edu" def title = "This plugin adds the ClickToDial functionality to a Grails Web Application using SIP Servlets" def description = '''\\ This plugin adds a ClickToDial link to the list view of the Grails domain classes. Currently an alpha release, the future version of this plugin will integrate with other plugins like Authentication. The goal of this project is to build a set of plugins to bring Telecom features to Grails applications (similar to PartyTime but for Calls, IM, Presence etc.) For detailed understanding of this application, refer to the tutorial at: http://www.scribd.com/doc/14669416/Rapid-Converged-WebTelecom-Application-Development-with-Grails-SIP-Servlets-and-Sailfin ''' // URL to the plugin's documentation def documentation = "http://grails.org/C2D+Plugin" def doWithSpring = { // TODO Implement runtime spring config (optional) } def doWithApplicationContext = { applicationContext -> // TODO Implement post initialization spring config (optional) } def doWithWebDescriptor = { xml -> // TODO Implement additions to web.xml (optional) def servlets = xml.'servlet' def servletMappings = xml.'servlet-mapping' // Hello World Servlet servlets[0] + { 'servlet' { 'servlet-name' ("hello") 'servlet-class' ("HelloWorldServlet") } } servletMappings[0] + { 'servlet-mapping' { 'servlet-name' ("hello") 'url-pattern' ("/hello") } } // Place Call Servlet servlets[0] + { 'servlet' { 'servlet-name' ("placecall") 'servlet-class' ("PlaceCallServlet") } } servletMappings[0] + { 'servlet-mapping' { 'servlet-name' ("placecall") 'url-pattern' ("/placecall") } } } def doWithDynamicMethods = { ctx -> // TODO Implement registering dynamic methods to classes (optional) //application.domainClasses.each { domainClass -> // domainClass.metaClass.telephone = "offline" //} } def onChange = { event -> // TODO Implement code that is executed when any artefact that this plugin is // watching is modified and reloaded. The event contains: event.source, // event.application, event.manager, event.ctx, and event.plugin. } def onConfigChange = { event -> // TODO Implement code that is executed when the project configuration changes. // The event is the same as for 'onChange'. } }