You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2012/07/06 10:30:34 UTC

[jira] [Commented] (CAMEL-3625) Testing in Intellij IDEA

    [ https://issues.apache.org/jira/browse/CAMEL-3625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13407804#comment-13407804 ] 

Claus Ibsen commented on CAMEL-3625:
------------------------------------

Can people try with Camel 2.10 and latest IDEA.

I have newer seen this problem, and I have been using IDEA a lot.
                
> Testing in Intellij IDEA
> ------------------------
>
>                 Key: CAMEL-3625
>                 URL: https://issues.apache.org/jira/browse/CAMEL-3625
>             Project: Camel
>          Issue Type: Improvement
>            Reporter: Edstrom Johan
>            Assignee: Edstrom Johan
>            Priority: Minor
>
> When running camel-components tests in Intellij IDEA you frequently run into
> {code}
> java.lang.NoClassDefFoundError: org/apache/camel/core/xml/CamelJMXAgentDefinition
> 	at org.apache.camel.spring.CamelBeanPostProcessor.canPostProcessBean(CamelBeanPostProcessor.java:209)
> 	at org.apache.camel.spring.CamelBeanPostProcessor.postProcessBeforeInitialization(CamelBeanPostProcessor.java:89)
> 	at org.apache.camel.test.junit4.CamelTestSupport.postProcessTest(CamelTestSupport.java:190)
> 	at org.apache.camel.test.junit4.CamelTestSupport.setUp(CamelTestSupport.java:133)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
> 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> 	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
> 	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> 	at org.junit.runners.Suite.runChild(Suite.java:128)
> 	at org.junit.runners.Suite.runChild(Suite.java:24)
> 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> 	at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
> 	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:65)
> {code}
> The following would handle the issue 
> {code}
> Index: components/camel-spring/src/main/java/org/apache/camel/spring/CamelBeanPostProcessor.java
> ===================================================================
> --- components/camel-spring/src/main/java/org/apache/camel/spring/CamelBeanPostProcessor.java	(revision 1065694)
> +++ components/camel-spring/src/main/java/org/apache/camel/spring/CamelBeanPostProcessor.java	(revision )
> @@ -192,6 +192,17 @@
>       * @return true to process it
>       */
>      protected boolean canPostProcessBean(Object bean, String beanName) {
> +
> +         //Let us check if we can load this class...
> +        ClassLoader classLoader = getCamelContext().getClassResolver().getClass().getClassLoader();
> +
> +        try {
> +            Class aClass = classLoader.loadClass("org.apache.camel.core.xml.CamelJMXAgentDefinition");
> +            //Keep going.
> +        } catch (ClassNotFoundException e) {
> +           return false;
> +        }
> +
>          // the JMXAgent is a bit strange and causes Spring issues if we let it being
>          // post processed by this one. It does not need it anyway so we are good to go.
>          if (bean instanceof CamelJMXAgentDefinition) {
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira