class OsworkflowGrailsPlugin { // the plugin version def version = "0.1" // the version or versions of Grails the plugin is designed for def grailsVersion = "1.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 = "Alvaro Sanchez-Mariscal" def authorEmail = "alvaro.sanchez@salenda.es" def title = "OSWorkflow Plugin" def description = '''\\ This plugin integrates OSWorkflow in a Grails application. ''' // URL to the plugin's documentation def documentation = "http://grails.org/Osworkflow+Plugin" def doWithSpring = { workflowStore(com.opensymphony.workflow.spi.hibernate3.SpringHibernateWorkflowStore) { sessionFactory = ref("sessionFactory") propertySetDelegate = { com.opensymphony.workflow.util.PropertySetDelegateImpl propertySetDelegate -> } } workflowFactory(com.opensymphony.workflow.spi.hibernate.SpringWorkflowFactory) { bean -> bean.initMethod = 'init' resource = 'workflows.xml' reload = 'true' } osworkflowConfiguration(com.opensymphony.workflow.config.SpringConfiguration) { store = ref('workflowStore') factory = ref('workflowFactory') } workflowTypeResolver(com.opensymphony.workflow.util.SpringTypeResolver) { } workflow(org.springframework.transaction.interceptor.TransactionProxyFactoryBean) { transactionManager = ref("transactionManager") target = ref("workflowTarget") def props = new Properties() props.setProperty('*', 'PROPAGATION_REQUIRED') transactionAttributes = props } workflowTarget(com.opensymphony.workflow.basic.BasicWorkflow, 'workflow') { bean -> bean.scope = 'prototype' configuration = ref('osworkflowConfiguration') resolver = ref ('workflowTypeResolver') } } def doWithApplicationContext = { applicationContext -> // TODO Implement post initialization spring config (optional) } def doWithWebDescriptor = { xml -> // TODO Implement additions to web.xml (optional) } def doWithDynamicMethods = { ctx -> // TODO Implement registering dynamic methods to classes (optional) } 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'. } }