Revision: 63004
Updated Code
at March 29, 2013 13:16 by laurenceosx
Updated Code
// applicationContext.groovy import org.springframework.scripting.groovy.GroovyScriptFactory import org.springframework.scripting.support.ScriptFactoryPostProcessor import org.codehaus.groovy.grails.commons.spring.DefaultBeanConfiguration //////////////////////////////////////////////////////////// String findScriptResourcePath( String aScriptResourcePath) { // Created this to generate script path for Groovy Refreshable Spring Beans // for use in applicationContext.groovy because refresh feature wouldn't work // when Groovy script is looked up on classpath. // e.g. sample arg 'src/main/resources/USA.groovy' when running gradle runJetty task in IDEA. File f1 = new File( aScriptResourcePath ).canonicalFile; if (f1.exists()) { return f1.toURI().toString(); // most likely running in IDE } // try again // special case String token1 = 'src/main/resources'; if ( aScriptResourcePath.startsWith( token1 ) ) { return findScriptResourcePath( aScriptResourcePath - token1 ); } else { // note: refresh feature will probably not work in this case def result = this.getClass().getResource( aScriptResourcePath ); return (result != null) ? result.toString() : null; // e.g. returns file:/C:/blah/blah/blah.groovy } } //////////////////////////////////////////////////////////// beans { importBeans('classpath:applicationContext.xml') String USAscriptUriPath = findScriptResourcePath('src/main/resources/USA.groovy') // setup refreshable usa bean usa(GroovyScriptFactory, USAscriptUriPath) { DefaultBeanConfiguration bean -> capital = 'Washington, D.C.' population = 617996 bean.beanDefinition.setAttribute( ScriptFactoryPostProcessor.REFRESH_CHECK_DELAY_ATTRIBUTE, 5000 ) } scriptFactoryPostProcessor(ScriptFactoryPostProcessor) { defaultRefreshCheckDelay = 5000 } }
Revision: 63003
Updated Code
at March 29, 2013 13:15 by laurenceosx
Updated Code
// applicationContext.groovy import org.springframework.scripting.groovy.GroovyScriptFactory import org.springframework.scripting.support.ScriptFactoryPostProcessor import org.codehaus.groovy.grails.commons.spring.DefaultBeanConfiguration //////////////////////////////////////////////////////////// String findScriptResourcePath( String aScriptResourcePath) { // Created this to generate script path for Groovy Refreshable Spring Beans // for use in applicationContext.groovy because refresh feature wouldn't work // when Groovy script is looked up on classpath. // e.g. sample arg 'src/main/resources/USA.groovy' when running gradle runJetty task in IDEA. File f1 = new File( aScriptResourcePath ).canonicalFile; if (f1.exists()) { return f1.toURI().toString(); // most likely running in IDE } // try again // special case String token1 = 'src/main/resources'; if ( aScriptResourcePath.startsWith( token1 ) ) { return findResourcePath( aScriptResourcePath - token1 ); } else { // note: refresh feature will probably not work in this case def result = this.getClass().getResource( aScriptResourcePath ); return (result != null) ? result.toString() : null; // e.g. returns file:/C:/blah/blah/blah.groovy } } //////////////////////////////////////////////////////////// beans { importBeans('classpath:applicationContext.xml') String USAscriptUriPath = findScriptResourcePath('src/main/resources/USA.groovy') // setup refreshable usa bean usa(GroovyScriptFactory, USAscriptUriPath) { DefaultBeanConfiguration bean -> capital = 'Washington, D.C.' population = 617996 bean.beanDefinition.setAttribute( ScriptFactoryPostProcessor.REFRESH_CHECK_DELAY_ATTRIBUTE, 5000 ) } scriptFactoryPostProcessor(ScriptFactoryPostProcessor) { defaultRefreshCheckDelay = 5000 } }
Revision: 63002
Updated Code
at March 29, 2013 13:10 by laurenceosx
Updated Code
// applicationContext.groovy import org.springframework.scripting.groovy.GroovyScriptFactory import org.springframework.scripting.support.ScriptFactoryPostProcessor import org.codehaus.groovy.grails.commons.spring.DefaultBeanConfiguration //////////////////////////////////////////////////////////// String findScriptResourcePath( String aScriptResourcePath) { // Created this to generate script path for Groovy Refreshable Spring Beans // for use in applicationContext.groovy because refresh feature wouldn't work // when Groovy script is looked up on classpath. // e.g. sample arg 'src/main/resources/USA.groovy' when running gradle runJetty task in IDEA. File f1 = new File( aScriptResourcePath ).canonicalFile; if (f1.exists()) { return f1.toURI().toString(); // most likely running in IDE } // try again // special case String token1 = 'src/main/resources'; if ( aScriptResourcePath.startsWith( token1 ) ) { return findResourcePath( aScriptResourcePath - token1 ); } else { // note: refresh feature will probably not work in this case def result = this.getClass().getResource( aScriptResourcePath ); return (result != null) ? result.toString() : null; } } //////////////////////////////////////////////////////////// beans { importBeans('classpath:applicationContext.xml') String USAscriptUriPath = findScriptResourcePath('src/main/resources/USA.groovy') // setup refreshable usa bean usa(GroovyScriptFactory, USAscriptUriPath) { DefaultBeanConfiguration bean -> capital = 'Washington, D.C.' population = 617996 bean.beanDefinition.setAttribute( ScriptFactoryPostProcessor.REFRESH_CHECK_DELAY_ATTRIBUTE, 5000 ) } scriptFactoryPostProcessor(ScriptFactoryPostProcessor) { defaultRefreshCheckDelay = 5000 } }
Revision: 63001
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at March 29, 2013 13:03 by laurenceosx
Initial Code
// applicationContext.groovy import org.springframework.scripting.groovy.GroovyScriptFactory import org.springframework.scripting.support.ScriptFactoryPostProcessor import org.codehaus.groovy.grails.commons.spring.DefaultBeanConfiguration //////////////////////////////////////////////////////////// String findScriptResourcePath( String aScriptResourcePath) { // Created this to generate script path for Groovy Refreshable Spring Beans // for use in applicationContext.groovy because refresh feature wouldn't work // when Groovy script is looked up on classpath. // e.g. sample arg 'src/main/resources/USA.groovy' when running gradle runJetty task in IDEA. File f1 = new File( aScriptResourcePath ).canonicalFile; if (f1.exists()) { return f1.toURI().toString(); // most likely running in IDE } // try again // special case String token1 = 'src/main/resources'; if ( aScriptResourcePath.startsWith( token1 ) ) { return findResourcePath( aScriptResourcePath - token1 ); } else { // note: refresh feature will probably not work in this case def result = this.getClass().getResource( aScriptResourcePath ); return (result != null) ? result.toString() : null; } } //////////////////////////////////////////////////////////// beans { importBeans('classpath:applicationContext.xml') String USAscriptPath = findScriptResourcePath('src/main/resources/USA.groovy') // setup refreshable usa bean usa(GroovyScriptFactory, USAscriptPath) { DefaultBeanConfiguration bean -> capital = 'Washington, D.C.' population = 617996 bean.beanDefinition.setAttribute( ScriptFactoryPostProcessor.REFRESH_CHECK_DELAY_ATTRIBUTE, 5000 ) } scriptFactoryPostProcessor(ScriptFactoryPostProcessor) { defaultRefreshCheckDelay = 5000 } }
Initial URL
http://my.safaribooksonline.com/book/programming/java/9781430224990/scripting-in-spring/refreshing_beans_from_scripts
Initial Description
Created this to generate file:/ script path for Groovy Refreshable Spring Beans for use in applicationContext.groovy because refresh feature wouldn't work when Groovy script is looked up on classpath.
Initial Title
Groovy Spring Refreshable Script Bean - findScriptResourcePath
Initial Tags
groovy
Initial Language
Groovy