title: Spring @Configurable/@Autowired not working under Linux
body: <p>I have a multi-module Maven project where I am using <code>@Configurable</code> and <code>@Autowired</code> to inject dependencies (CTW). The project have been developed on OS X and Win8, and now I am trying to get it to work with Linux (Ubuntu 14.04). Maven runs just fine but when running the application locally through IntelliJ, the autowired fields are null. </p>
  
  <p>I'm running Tomcat 7 but I have tried with Jetty and I get the same error. Also, <code>@Autowired</code> in <code>@Component</code> annotated classes works fine. Since the project is currently running on both OS X and Win8 using the same(?) IntelliJ configuration, it feels like I've missed something when setting up the environment. Any ideas?</p>
  
  <p>Example class</p>
  
  <pre><code>@Configurable
  public class TestClass {
  
    @Autowired
    private MyRepository repository;
  
    ...
  }
  </code></pre>
  
  <p>Application context</p>
  
  <pre><code>&lt;context:spring-configured/&gt;
  &lt;context:component-scan base-package="com.mycompany"/&gt;
  &lt;aop:aspectj-autoproxy/&gt;
  </code></pre>
  
  <p>aspectj-maven-plugin</p>
  
  <pre><code>&lt;plugin&gt;
      &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
      &lt;artifactId&gt;aspectj-maven-plugin&lt;/artifactId&gt;
      &lt;version&gt;${aspectj.maven.plugin.version}&lt;/version&gt;
      &lt;dependencies&gt;
         &lt;dependency&gt;
            &lt;groupId&gt;org.aspectj&lt;/groupId&gt;
            &lt;artifactId&gt;aspectjtools&lt;/artifactId&gt;
            &lt;version&gt;${aspectj.version}&lt;/version&gt;
         &lt;/dependency&gt;
      &lt;/dependencies&gt;
  
      &lt;configuration&gt;
         &lt;complianceLevel&gt;${java.version}&lt;/complianceLevel&gt;
         &lt;source&gt;${java.version}&lt;/source&gt;
         &lt;target&gt;${java.version}&lt;/target&gt;
         &lt;aspectLibraries&gt;
            &lt;aspectLibrary&gt;
               &lt;groupId&gt;org.springframework&lt;/groupId&gt;
               &lt;artifactId&gt;spring-aspects&lt;/artifactId&gt;
            &lt;/aspectLibrary&gt;
         &lt;/aspectLibraries&gt;
      &lt;/configuration&gt;
      &lt;executions&gt;
         &lt;execution&gt;
            &lt;goals&gt;
               &lt;goal&gt;compile&lt;/goal&gt;
               &lt;goal&gt;test-compile&lt;/goal&gt;
            &lt;/goals&gt;
         &lt;/execution&gt;
      &lt;/executions&gt;
  &lt;/plugin&gt;
  </code></pre>
  
  <p>AspectJ weaveInfo</p>
  
  <pre><code>[INFO] Extending interface set for type 'com.mycompany.TestClass' (TestClass.java) to include 'org.springframework.beans.factory.aspectj.ConfigurableObject' (AnnotationBeanConfigurerAspect.aj)
  [INFO] Join point 'initialization(void org.springframework.beans.factory.aspectj.ConfigurableObject.&lt;init&gt;())' in Type 'com.mycompany.TestClass' (TestClass.java:15) advised by before advice from 'org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect' (spring-aspects-3.2.1.RELEASE.jar!AbstractDependencyInjectionAspect.class:78(from AbstractDependencyInjectionAspect.aj)) [with runtime test]
  [INFO] Join point 'initialization(void org.springframework.beans.factory.aspectj.ConfigurableObject.&lt;init&gt;())' in Type 'com.mycompany.TestClass' (TestClass.java:15) advised by afterReturning advice from 'org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect' (spring-aspects-3.2.1.RELEASE.jar!AbstractDependencyInjectionAspect.class:87(from AbstractDependencyInjectionAspect.aj)) [with runtime test]
  [INFO] Join point 'initialization(void com.mycompany.TestClass.&lt;init&gt;())' in Type 'com.mycompany.TestClass' (TestClass.java:15) advised by afterReturning advice from 'org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect' (spring-aspects-3.2.1.RELEASE.jar!AbstractDependencyInjectionAspect.class:87(from AbstractDependencyInjectionAspect.aj)) [with runtime test]
  </code></pre>
  
  <p><strong>Update 1</strong>
  The repositories are Spring Data repositories with <code>@Repository</code>-annotation. However, none of the <code>@Component</code>, <code>@Repository</code>, <code>@Service</code> are autowired into the <code>@Configurable</code> class but they do successfully autowire into <code>@Component</code>-annotated classes.</p>
  
  <pre><code>@Repository
  public interface MyRepository extends PagingAndSortingRepository&lt;Person, String&gt;
  </code></pre>
  
  <p><strong>Update 2</strong>
  When switching to LTW, the autowiring is successful and the application seems to work as intended. On the other hand, now TomcatInstrumentableClassLoader complains that it can't determine implemented interfaces of missing type com.google.gwt.*</p>