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

Last change on this file since 1024 was 1024, checked in by j.a.m.wesbeek@…, 10 years ago
  • removed the String.grom() calls as grom is not stable on tomcat:

2010-11-01 11:24:25,544 [ContainerBackgroundProcessor?[StandardEngine?[Catalina]]] ERROR plugins.DefaultGrailsPluginManager? - Error configuring dynamic methods for plugin [grom:0.1.8]: java.lang.NoClassDefFoundError?: org.codehaus.gant.GantBuilder?
org.codehaus.groovy.runtime.InvokerInvocationException?: java.lang.NoClassDefFoundError?: org.codehaus.gant.GantBuilder?

  • Property svn:keywords set to Author Date Rev
File size: 4.4 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: 1024 $
18 * $Author: j.a.m.wesbeek@umail.leidenuniv.nl $
19 * $Date: 2010-11-01 10:30:07 +0000 (ma, 01 nov 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                                        // get species ontology
74                                        def speciesOntology = Ontology.getOrCreateOntologyByNcboId(1132)
75
76                                        // add terms
77                                        def mouseTerm = new Term(
78                                                name: 'Mus musculus',
79                                                ontology: speciesOntology,
80                                                accession: '10090'
81                                        ).with { if (!validate()) { errors.each { println it} } else save(flush:true)}
82
83                                        def humanTerm = new Term(
84                                                name: 'Homo sapiens',
85                                                ontology: speciesOntology,
86                                                accession: '9606'
87                                        ).with { if (!validate()) { errors.each { println it} } else save(flush:true)}
88                                } else {
89                                        // general study boostrapping
90                                        BootStrapStudies.addExampleStudies(user, userAdmin)
91                                }
92                        }
93
94                        println "Finished adding templates and studies"
95                }
96
97                /**
98                 * attach ontologies in runtime. Possible problem is that you need
99                 * an internet connection when bootstrapping though.
100                 * @see dbnp.studycapturing.Subject
101                 * @see dbnp.studycapturing.Sample
102                 */
103                TemplateEntity.getField(Subject.domainFields, 'species').ontologies = [Ontology.getOrCreateOntologyByNcboId(1132)]
104                TemplateEntity.getField(Sample.domainFields, 'material').ontologies = [Ontology.getOrCreateOntologyByNcboId(1005)]
105
106                println "Registering SAM REST methods"
107                // register methods for accessing SAM's Rest services
108                if (grails.util.GrailsUtil.environment == GrailsApplication.ENV_PRODUCTION) {
109                        CommunicationManager.SAMServerURL = 'http://sam.nmcdsp.org'
110                }
111                else {
112                        CommunicationManager.SAMServerURL = 'http://localhost:8182/sam'
113                }
114                CommunicationManager.registerRestWrapperMethodsSAMtoGSCF()
115
116                println "Done with BootStrap"
117        }
118
119        def destroy = {
120        }
121} 
Note: See TracBrowser for help on using the repository browser.