Guest User

Untitled

a guest
May 27th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. import org.codehaus.groovy.grails.commons.GrailsClassUtils as GCU
  2. import org.springframework.orm.hibernate3.SessionFactoryUtils
  3. import org.springframework.orm.hibernate3.SessionHolder
  4. import org.springframework.transaction.support.TransactionSynchronizationManager
  5.  
  6. includeTargets << grailsScript("_GrailsBootstrap")
  7. includeTargets << grailsScript("_GrailsRun")
  8. includeTargets << grailsScript("_GrailsSettings")
  9. includeTargets << grailsScript("_GrailsClean")
  10.  
  11. target('default': "Execute the specified script after starting up the application environment") {
  12. depends(checkVersion, configureProxy, packageApp, classpath)
  13. runScript()
  14. }
  15.  
  16. target(runScript: "Main implementation that executes the specified script after starting up the application environment") {
  17. parseArguments()
  18. if (argsMap["params"].size() == 0) {
  19. event("StatusError", ["Required script name parameter is missing"])
  20. System.exit 1
  21. }
  22. compile()
  23. loadApp()
  24. configureApp()
  25. configureHibernateSession()
  26. argsMap["params"].each { scriptFile ->
  27. executeScript(scriptFile, classLoader)
  28. }
  29. }
  30.  
  31. def configureHibernateSession() {
  32. // without this you'll get a lazy initialization exception when using a many-to-many relationship
  33. def sessionFactory = appCtx.getBean("sessionFactory")
  34. def session = SessionFactoryUtils.getSession(sessionFactory, true)
  35. TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(session))
  36. }
  37.  
  38. def executeScript(scriptFile, classLoader) {
  39. File script = new File(scriptFile)
  40. if (script.exists()) {
  41. def shell = new GroovyShell(classLoader, new Binding(ctx: appCtx, grailsApplication: grailsApp))
  42. shell.evaluate(script.text)
  43. } else {
  44. event("StatusError", ["Designated script doesn't exist: $scriptFile"])
  45. }
  46. }
Add Comment
Please, Sign In to add comment