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

Last change on this file since 936 was 936, checked in by t.w.abma@…, 10 years ago
  • Nimble removed, AAAA-plugin installed (based on Spring Security), login panel needs fix still, please login using gscf/login
  • Property svn:keywords set to Author Date Rev
File size: 3.3 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: 936 $
18 * $Author: t.w.abma@umcutrecht.nl $
19 * $Date: 2010-10-11 20:23:13 +0000 (ma, 11 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                println "Done with SpringSecurity bootstrap, created [user]."
34
35                // If there are no templates yet in the database
36                if (Template.count() == 0) {
37                        println "No templates in the current database.";
38
39                        // If in development or test mode, add the ontologies manually to the database
40                        // without contacting the BioPortal website, to avoid annoying hiccups when the server is busy
41                        if (grails.util.GrailsUtil.environment != GrailsApplication.ENV_PRODUCTION) {
42                                println "Adding ontology descriptors"
43                                BootStrapTemplates.initTemplateOntologies()
44                        }
45
46                        // Add example study, subject, event etc. templates
47                        BootStrapTemplates.initTemplates()
48
49                        // If in development mode and no studies are present, add example studies
50                        if (Study.count() == 0 && grails.util.GrailsUtil.environment != GrailsApplication.ENV_TEST) {
51                                // check if special file is present in project directory
52                                if ((new File(System.properties['user.dir']+"/.skip-studies").exists())) {
53                                        // yes it is, skip study bootstrapping
54                                        println ".skipping study bootstrapping"
55
56                                        // get species ontology
57                                        def speciesOntology = Ontology.getOrCreateOntologyByNcboId(1132)
58
59                                        // add terms
60                                        def mouseTerm = new Term(
61                                                name: 'Mus musculus',
62                                                ontology: speciesOntology,
63                                                accession: '10090'
64                                        ).with { if (!validate()) { errors.each { println it} } else save(flush:true)}
65
66                                        def humanTerm = new Term(
67                                                name: 'Homo sapiens',
68                                                ontology: speciesOntology,
69                                                accession: '9606'
70                                        ).with { if (!validate()) { errors.each { println it} } else save(flush:true)}
71                                } else {
72                                        // general study boostrapping
73                                        BootStrapStudies.addExampleStudies(user)
74                                }
75                        }
76
77                        println "Finished adding templates and studies"
78                }
79
80                /**
81                 * attach ontologies in runtime. Possible problem is that you need
82                 * an internet connection when bootstrapping though.
83                 * @see dbnp.studycapturing.Subject
84                 * @see dbnp.studycapturing.Sample
85                 */
86                TemplateEntity.getField(Subject.domainFields, 'species').ontologies = [Ontology.getOrCreateOntologyByNcboId(1132)]
87                TemplateEntity.getField(Sample.domainFields, 'material').ontologies = [Ontology.getOrCreateOntologyByNcboId(1005)]
88
89                println "Registering SAM REST methods"
90                // register methods for accessing SAM's Rest services
91                if (grails.util.GrailsUtil.environment == GrailsApplication.ENV_PRODUCTION) {
92                        CommunicationManager.SAMServerURL = 'http://sam.nmcdsp.org'
93                }
94                else {
95                        CommunicationManager.SAMServerURL = 'http://localhost:8182/sam'
96                }
97                CommunicationManager.registerRestWrapperMethodsSAMtoGSCF()
98
99                println "Done with BootStrap"
100        }
101
102        def destroy = {
103        }
104} 
Note: See TracBrowser for help on using the repository browser.