source: trunk/grails-app/conf/BootStrap.groovy @ 1012

Last change on this file since 1012 was 1012, checked in by j.a.m.wesbeek@…, 11 years ago
  • upgrading grom plugin to 1.1.3
  • using String.grom() in bootstrap
  • in #976 webflow was downgraded, upgrading again to 1.3.5
  • Property svn:keywords set to Author Date Rev
File size: 4.5 KB
Line 
1import dbnp.studycapturing.*
2
3import dbnp.data.Ontology
4import dbnp.data.Term
5import dbnp.rest.common.CommunicationManager
6import org.codehaus.groovy.grails.commons.GrailsApplication
7import grails.util.GrailsUtil
8import dbnp.authentication.*
9
10
11/**
12 * Application Bootstrapper
13 * @Author Jeroen Wesbeek
14 * @Since 20091021
15 *
16 * Revision information:
17 * $Rev: 1012 $
18 * $Author: j.a.m.wesbeek@umail.leidenuniv.nl $
19 * $Date: 2010-10-28 17:45:34 +0000 (do, 28 okt 2010) $
20 */
21class BootStrap {
22    def springSecurityService
23
24        def init = {servletContext ->
25                "Bootstrapping application".grom()
26               
27                // define timezone
28                System.setProperty('user.timezone', 'CET')
29
30                def adminRole = SecRole.findByAuthority( 'ROLE_ADMIN' ) ?: new SecRole( authority: 'ROLE_ADMIN' ).save()
31
32                def user = SecUser.findByUsername('user') ?: new SecUser(
33                           username: 'user',
34                           password: springSecurityService.encodePassword( 'useR123!', 'user' ),
35                           email: 'user@dbnp.org',
36                           userConfirmed: true, adminConfirmed: true).save(failOnError: true)
37
38                def userAdmin = SecUser.findByUsername('admin') ?: new SecUser(
39                                username: 'admin',
40                                password: springSecurityService.encodePassword( 'admiN123!', 'admin' ),
41                                email: 'admin@dbnp.org',
42                                userConfirmed: true, adminConfirmed: true).save(failOnError: true)
43
44                // Make the admin user an administrator
45                SecUserSecRole.create userAdmin, adminRole, true
46
47                def userTest = SecUser.findByUsername('test') ?: new SecUser(
48                                username: 'test',
49                                password: springSecurityService.encodePassword( 'useR123!', 'test' ),
50                                email: 'test@dbnp.org',
51                            userConfirmed: true, adminConfirmed: true).save(failOnError: true)
52
53                println "Done with SpringSecurity bootstrap, created [user, admin, test]."
54
55                // If there are no templates yet in the database
56                if (Template.count() == 0) {
57                        println "No templates in the current database.";
58
59                        // If in development or test mode, add the ontologies manually to the database
60                        // without contacting the BioPortal website, to avoid annoying hiccups when the server is busy
61                        if (grails.util.GrailsUtil.environment != GrailsApplication.ENV_PRODUCTION) {
62                                println "Adding ontology descriptors"
63                                BootStrapTemplates.initTemplateOntologies()
64                        }
65
66                        // Add example study, subject, event etc. templates
67                        BootStrapTemplates.initTemplates()
68
69                        // If in development mode and no studies are present, add example studies
70                        if (Study.count() == 0 && grails.util.GrailsUtil.environment != GrailsApplication.ENV_TEST) {
71                                // check if special file is present in project directory
72                                if ((new File(System.properties['user.dir']+"/.skip-studies").exists())) {
73                                        // yes it is, skip study bootstrapping
74                                        "Skipping study bootstrapping".grom()
75
76                                        // get species ontology
77                                        def speciesOntology = Ontology.getOrCreateOntologyByNcboId(1132)
78
79                                        // add terms
80                                        def mouseTerm = new Term(
81                                                name: 'Mus musculus',
82                                                ontology: speciesOntology,
83                                                accession: '10090'
84                                        ).with { if (!validate()) { errors.each { println it} } else save(flush:true)}
85
86                                        def humanTerm = new Term(
87                                                name: 'Homo sapiens',
88                                                ontology: speciesOntology,
89                                                accession: '9606'
90                                        ).with { if (!validate()) { errors.each { println it} } else save(flush:true)}
91                                } else {
92                                        "Bootstrapping studies".grom()
93                                       
94                                        // general study boostrapping
95                                        BootStrapStudies.addExampleStudies(user, userAdmin)
96                                }
97                        }
98
99                        println "Finished adding templates and studies"
100                }
101
102                /**
103                 * attach ontologies in runtime. Possible problem is that you need
104                 * an internet connection when bootstrapping though.
105                 * @see dbnp.studycapturing.Subject
106                 * @see dbnp.studycapturing.Sample
107                 */
108                TemplateEntity.getField(Subject.domainFields, 'species').ontologies = [Ontology.getOrCreateOntologyByNcboId(1132)]
109                TemplateEntity.getField(Sample.domainFields, 'material').ontologies = [Ontology.getOrCreateOntologyByNcboId(1005)]
110
111                println "Registering SAM REST methods"
112                // register methods for accessing SAM's Rest services
113                if (grails.util.GrailsUtil.environment == GrailsApplication.ENV_PRODUCTION) {
114                        CommunicationManager.SAMServerURL = 'http://sam.nmcdsp.org'
115                }
116                else {
117                        CommunicationManager.SAMServerURL = 'http://localhost:8182/sam'
118                }
119                CommunicationManager.registerRestWrapperMethodsSAMtoGSCF()
120
121                println "Done with BootStrap"
122        }
123
124        def destroy = {
125        }
126} 
Note: See TracBrowser for help on using the repository browser.