I just changed the POM a bit so that the codebase now works with STS. I'll push the changes this evening. The change was simple:
- move the aspectj compiler from the core module to the parent pom
- move the spring-aspects dependency from the core module to the parent pom
Oh, and I added the eclipse project files to the .gitignore list :).
So the code can now be run in both IntelliJ IDEA X Ultimate and STS. I'll stick to supporting those 2 IDE's, as it's a nice mix of the best non-free IDE and the best free IDE (sorry IntellIJ guys, IDEA Community Edition just doesn't cut it compared to STS). If someone cares to see whether Netbeans also works, the effort is much appreciated.
Finally the problem was solved. The problem was a bad configuration of ajc in IDEA. Without your clue Lieven I didn't find it.
I'm still having the same problem in my test application and I can't find it.
Thanks for the help.
Here is my IDEA project. It was make with the Archetype, just add the FirstView class, copy the applicationLifecycleAdvisor and applicationPageFactory methods from the VLDocking sample. All the time get this:
11147 [main] ERROR org.valkyriercp.application.exceptionhandling.Abst ractLoggingExceptionHandler - Uncaught throwable handled.
java.lang.IllegalStateException: Application start thrown an exception: null
at org.valkyriercp.application.support.ApplicationLau ncher.launchMyRichClient(ApplicationLauncher.java: 269) ~[valkyrie-rcp-core-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
at org.valkyriercp.application.support.ApplicationLau ncher.<init>(ApplicationLauncher.java:132) ~[valkyrie-rcp-core-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
at org.valkyriercp.application.support.ApplicationLau ncher.<init>(ApplicationLauncher.java:104) ~[valkyrie-rcp-core-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
at org.valkyriercp.application.support.ApplicationLau ncher.<init>(ApplicationLauncher.java:60) ~[valkyrie-rcp-core-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
at com.ernestoandernesto.ApplicationRunner.main(Appli cationRunner.java:7) ~[classes/:na]
at org.valkyriercp.application.support.AbstractApplic ationPage.getViewDescriptorRegistry(AbstractApplic ationPage.java:396) ~[valkyrie-rcp-core-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
at org.valkyriercp.application.support.AbstractApplic ationPage.getViewDescriptor(AbstractApplicationPag e.java:117) ~[valkyrie-rcp-core-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
at org.valkyriercp.application.support.AbstractApplic ationPage.showView(AbstractApplicationPage.java:27 2) ~[valkyrie-rcp-core-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
at org.valkyriercp.application.docking.VLDockingAppli cationPage.addView(VLDockingApplicationPage.java:1 04) ~[valkyrie-rcp-vldocking-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
at org.valkyriercp.application.support.MultiViewPageD escriptor.buildInitialLayout(MultiViewPageDescript or.java:25) ~[valkyrie-rcp-core-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
at org.valkyriercp.application.docking.VLDockingAppli cationPage.createControl(VLDockingApplicationPage. java:161) ~[valkyrie-rcp-vldocking-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
If I comment the applicationPageFactory method everything is fine. I don't have any idea what is happening.
Just checked your code, and it runs :(. It must be something with the configuration of the aspectj compiler, as the NPE is caused by a bean that should have been injected. What version of intellij are you using?
Grrrrrrr ... LOL. I'm using the version 10.0.3 build 103.255, jdk 1.6.0_24 from Apple. I'm attaching and image of my AJC configuration in IDEA.
Thanks for your time.
Quite strange that it doesn't use the aspectjtools from your maven plugin (otherwise it would've used 1.6.7. I'm currently used 10.0.2 with JDK 1.6.0_20 on Ubuntu with Maven 3.0. Unfortunately, I don't have a Mac to test this on. I'll have a look.
I had to put the compiler path manually otherwise it does not work. Maybe there is the problem. How I can make it take the maven pluging?
I found one detail, in the archetype the aspectj pluging it's not configured. I put it manually and now the IDEA work with the maven pluging but ... still having the same NPE.
I just pushed the change so that every Valkyrie subproject uses the aspectj plugin. This way STS now works too. I also upgraded the aspectj plugin to 1.3.1, which uses aspectrt 1.6.10.
And ... the magic was done :D. Now it's working. Look like with the las changes you made it work great.
Now I will make the real test with MyDoggy.
Thanks a lot for the help