forked from nanlabs/logical-delete
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLogicalDeleteGrailsPlugin.groovy
43 lines (35 loc) · 1.58 KB
/
LogicalDeleteGrailsPlugin.groovy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import org.springframework.orm.hibernate3.FilterDefinitionFactoryBean
import com.nanlabs.grails.plugin.logicaldelete.DeleteHibernateFilterConfigurator
import com.nanlabs.grails.plugin.logicaldelete.DeleteHibernateFilterEnabler
import com.nanlabs.grails.plugin.logicaldelete.LogicalDeleteDomainClassEnhancer
class LogicalDeleteGrailsPlugin {
def version = "0.2"
def grailsVersion = "2.0 > *"
def title = "Logical Delete Plugin"
def description = 'Allows you to do a logical deletion of domain classes'
def documentation = "http://grails.org/plugin/logical-delete"
def loadAfter = ['hibernate']
def license = "APACHE"
def organization = [name: "NaN Labs", url: "http://www.nan-labs.com/"]
def developers = [
[name: "Ezequiel Parada", email: "[email protected]"]
]
def issueManagement = [system: 'GITHUB', url: 'https://github.com/nanlabs/logical-delete/issues']
def scm = [url: 'https://github.com/nanlabs/logical-delete']
def doWithSpring = {
logicDeleteHibernateFilter(FilterDefinitionFactoryBean) {
defaultFilterCondition = "deleted = :deletedValue"
parameterTypes = [deletedValue: "boolean"]
}
deleteHibernateFilterConfigurator(DeleteHibernateFilterConfigurator) {
deleteFilterDefinition = ref("logicDeleteHibernateFilter")
}
deleteHibernateFilterEnabler(DeleteHibernateFilterEnabler) {
deleteHibernateFilter = ref("logicDeleteHibernateFilter")
}
}
def doWithDynamicMethods = { ctx ->
LogicalDeleteDomainClassEnhancer.setLogicDeleteFilter(ctx.getBean("logicDeleteHibernateFilter"))
LogicalDeleteDomainClassEnhancer.enhance(application.domainClasses)
}
}