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

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