Announcement Announcement Module
Collapse
No announcement yet.
Dependency Injection Annotation Groovy - Confused Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dependency Injection Annotation Groovy - Confused

    Hi,
    I'm trying to use dependency injection on annotated fields in Groovy. My proof-of-concept works in the IDE (Intellij IDEA) but not from the shell (bash). I get a NoSuchBeanDefinitionException regarding project. Any suggestions?

    Snippets...
    build.sh:
    Code:
    #!/bin/bash
    DIR=`dirname $0`
    CP=$DIR/alt
    CP=$CP:$DIR/lib-alt/ant/ant-launcher-1.7.1.jar
    CP=$CP:$DIR/lib-alt/ant/ant-1.7.1.jar
    CP=$CP:$DIR/lib/spring/spring.jar
    CP=$CP:$DIR/lib/spring/commons-logging.jar
    
    # the groovy way
    #groovy -cp $CP $DIR/alt/build/Main.groovy $1
    
    # the java way
    CP=$CP:$DIR/lib/groovy-all-1.6.0.jar
    java -cp $CP groovy.lang.GroovyShell $DIR/alt/build/Main.groovy $1
    spring-config.xml:
    Code:
    ...
        <context:component-scan base-package="build"/>
        <bean class="groovy.util.AntBuilder" scope="singleton"/>
    ...
    Main.groovy:
    Code:
    ...
        def springConfig = new ClassPathXmlApplicationContext("spring-config.xml");
        springConfig.refresh()
    //    def ctx = new GenericApplicationContext(springConfig)
    //    def ctx = new GenericApplicationContext()
    //    new ClassPathBeanDefinitionScanner(ctx).scan('build')
    //    ctx.refresh()
    
    //    def p = ctx.getBean("project");
        def p = springConfig.getBean("project");
        p."$target"()
    Project.groovy:
    Code:
    ...
    @Component ("project")
    public class Project {
      @Autowired
      AntBuilder ant
    ...
    More info:
    • Someone had a similar problem (t=57487) 10 months ago but no response
    • Full project at http://subversion.assembla.com/svn/punchy_boy_groovy-build/trunk/
    • The project is all about trying to create a refactorable, easily understood build script (only early stages though)

    Thanks in Advance,
    Pete
Working...
X