Can anyone help update this code for grails 1.0.3?
http://jweldin.com/blog/?p=6Does anyone have this working? (I see several posts but none of them
seem to have successful resolutions.)
Thanks so much!
-c
import groovy.lang.GroovyClassLoader;
import groovy.lang.GroovyObject;
import org.codehaus.groovy.grails.commons.*;
import org.codehaus.groovy.grails.orm.hibernate.cfg.*;
import org.hibernate.SessionFactory;
import org.springframework.core.io.*;
import org.springframework.core.io.support.*
import org.codehaus.groovy.grails.compiler.injection.GrailsAwareClassLoader
import org.codehaus.groovy.grails.compiler.injection.ClassInjector;
class RunScript
{
public static void main(String[] args)
{
if (args.length < 2) {
println "Usage: java -jar profiler-script.jar <db.props> <script
name> <script args>"
}
GrailsApplication grailsApplication = null;
SessionFactory sessionFactory = null;
PathMatchingResourcePatternResolver resolver = new
PathMatchingResourcePatternResolver();
Resource[] groovyFiles =
resolver.getResources("classpath*:**grails-app/**/*.groovy");
grailsApplication = new DefaultGrailsApplication(groovyFiles);
GrailsAwareClassLoader gcl = new GrailsAwareClassLoader()
gcl.setClassInjectors([ new DefaultGrailsDomainClassInjector() ] as
ClassInjector[])
DefaultGrailsDomainConfiguration config = new
DefaultGrailsDomainConfiguration();
config.setGrailsApplication(grailsApplication);
Properties props = new Properties();
props.load(new FileInputStream(args[0]));
config.setProperties(props);
sessionFactory = config.buildSessionFactory();
GrailsHibernateUtil.configureDynamicMethods(sessionFactory,
grailsApplication);
GroovyClassLoader cl = gcl //grailsApplication.getClassLoader()
println "\n-----------\nBefore Main\n-----------\n"
Binding b = new Binding(args[3..args.length-1] as String[])
def TestDomainScript =
(Script)cl.loadClass(args[1],false,true).newInstance(b)
TestDomainScript.run()
println "\n-----------\nAfter Main\n-----------\n"
println "\nDone";
}
}
import
org.codehaus.groovy.grails.compiler.injection.GrailsInjectionOperation;
import org.codehaus.groovy.grails.compiler.injection.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.codehaus.groovy.ast.ClassNode;
import org.codehaus.groovy.classgen.GeneratorContext;
import org.codehaus.groovy.control.CompilationFailedException;
import org.codehaus.groovy.control.CompilationUnit;
import org.codehaus.groovy.control.Phases;
import org.codehaus.groovy.control.SourceUnit;
import org.codehaus.groovy.grails.compiler.support.GrailsResourceLoader;
import org.codehaus.groovy.grails.commons.GrailsResourceUtils
import org.codehaus.groovy.grails.compiler.GrailsClassLoader;
public class MyInjectionOperation extends GrailsInjectionOperation
{
private static GrailsDomainClassInjector injector = new
DefaultGrailsDomainClassInjector();;
private GrailsResourceLoader resourceLoader;
public void call(SourceUnit source, GeneratorContext context, ClassNode
classNode) throws CompilationFailedException
{
if(resourceLoader != null)
{
try {
URL url;
if(GrailsResourceUtils.isGrailsPath(source.getName()))
{
url =
resourceLoader.loadGroovySource(GrailsResourceUtils.getClassName(source.getName()));
}
else
{
url = resourceLoader.loadGroovySource(source.getName());
}
if(GrailsResourceUtils.isDomainClass(url))
{
this.injector.performInjection(source,context,classNode);
}
}
catch (MalformedURLException e)
{
println("Error loading URL during addition of compile time
properties: " + e.getMessage(),e);
throw new CompilationFailedException(Phases.CONVERSION,source,e);
}
}
}
public void setResourceLoader(GrailsResourceLoader resourceLoader)
{
this.resourceLoader = resourceLoader;
}
}
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email