You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by Willem Jiang <wi...@gmail.com> on 2010/03/27 10:04:29 UTC
Conflict of Camel Property and Spring EL
Hi,
I'm trying to build the camel trunk code with Spring 3.0.1 and there are
some tests failed in the camel-spring module.
One kind of error is Spring 3.0.1 treats the camel property variable as
the spEL variable (#{ <expression string> }) .
It looks like we can't turn off the spEL parsering from Camel, I think
we need to redefine the camel property variable to workaround this
conflict.
Here is one of stack traces:
-------------------------------------------------------------------------------
Test set: org.apache.camel.spring.JMXAgentPropertiesTest
-------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.181
sec <<< FAILURE!
testQueryMbeans(org.apache.camel.spring.JMXAgentPropertiesTest) Time
elapsed: 1.161 sec <<< ERROR!
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'agent': Initialization of bean failed; nested exception
is org.springframework.beans.factory.BeanExpressionException: Expression
parsing failed; nested exception is
org.springframework.expression.spel.SpelEvaluationException:
EL1008E:(pos 0): Field or property 'myjmx' cannot be found on object of
type 'org.springframework.beans.factory.config.BeanExpressionContext'
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:562)
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:871)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at
org.apache.camel.spring.JMXAgentPropertiesTest.createApplicationContext(JMXAgentPropertiesTest.java:31)
at
org.apache.camel.spring.SpringTestSupport.setUp(SpringTestSupport.java:47)
at
org.apache.camel.spring.DefaultJMXAgentTest.setUp(DefaultJMXAgentTest.java:43)
at org.apache.camel.spring.JMXAgentTest.setUp(JMXAgentTest.java:40)
at junit.framework.TestCase.runBare(TestCase.java:132)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:165)
at org.apache.maven.surefire.Surefire.run(Surefire.java:107)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:289)
at
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1005)
Caused by: org.springframework.beans.factory.BeanExpressionException:
Expression parsing failed; nested exception is
org.springframework.expression.spel.SpelEvaluationException:
EL1008E:(pos 0): Field or property 'myjmx' cannot be found on object of
type 'org.springframework.beans.factory.config.BeanExpressionContext'
at
org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:140)
at
org.springframework.beans.factory.support.AbstractBeanFactory.evaluateBeanDefinitionString(AbstractBeanFactory.java:1245)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.evaluate(BeanDefinitionValueResolver.java:224)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:200)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1308)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1067)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511)
... 32 more
Caused by: org.springframework.expression.spel.SpelEvaluationException:
EL1008E:(pos 0): Field or property 'myjmx' cannot be found on object of
type 'org.springframework.beans.factory.config.BeanExpressionContext'
at
org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:180)
at
org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:60)
at
org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:52)
at
org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:93)
at
org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:88)
at
org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:137)
... 38 more
Willem
Re: Conflict of Camel Property and Spring EL
Posted by Claus Ibsen <cl...@gmail.com>.
Hi
I created a ticket to track this
https://issues.apache.org/activemq/browse/CAMEL-2599
On Sat, Mar 27, 2010 at 6:08 PM, Claus Ibsen <cl...@gmail.com> wrote:
> Hi
>
> Damn Spring, you are bad.
>
> Is this the only unit tests which fails?
>
>
> On Sat, Mar 27, 2010 at 10:04 AM, Willem Jiang <wi...@gmail.com> wrote:
>> Hi,
>>
>> I'm trying to build the camel trunk code with Spring 3.0.1 and there are
>> some tests failed in the camel-spring module.
>>
>> One kind of error is Spring 3.0.1 treats the camel property variable as the
>> spEL variable (#{ <expression string> }) .
>>
>> It looks like we can't turn off the spEL parsering from Camel, I think we
>> need to redefine the camel property variable to workaround this conflict.
>>
>> Here is one of stack traces:
>> -------------------------------------------------------------------------------
>> Test set: org.apache.camel.spring.JMXAgentPropertiesTest
>> -------------------------------------------------------------------------------
>> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.181 sec
>> <<< FAILURE!
>> testQueryMbeans(org.apache.camel.spring.JMXAgentPropertiesTest) Time
>> elapsed: 1.161 sec <<< ERROR!
>> org.springframework.beans.factory.BeanCreationException: Error creating bean
>> with name 'agent': Initialization of bean failed; nested exception is
>> org.springframework.beans.factory.BeanExpressionException: Expression
>> parsing failed; nested exception is
>> org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos
>> 0): Field or property 'myjmx' cannot be found on object of type
>> 'org.springframework.beans.factory.config.BeanExpressionContext'
>> at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
>> at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
>> at
>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)
>> at
>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>> at
>> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)
>> at
>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)
>> at
>> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:562)
>> at
>> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:871)
>> at
>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423)
>> at
>> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
>> at
>> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
>> at
>> org.apache.camel.spring.JMXAgentPropertiesTest.createApplicationContext(JMXAgentPropertiesTest.java:31)
>> at
>> org.apache.camel.spring.SpringTestSupport.setUp(SpringTestSupport.java:47)
>> at
>> org.apache.camel.spring.DefaultJMXAgentTest.setUp(DefaultJMXAgentTest.java:43)
>> at org.apache.camel.spring.JMXAgentTest.setUp(JMXAgentTest.java:40)
>> at junit.framework.TestCase.runBare(TestCase.java:132)
>> at junit.framework.TestResult$1.protect(TestResult.java:110)
>> at junit.framework.TestResult.runProtected(TestResult.java:128)
>> at junit.framework.TestResult.run(TestResult.java:113)
>> at junit.framework.TestCase.run(TestCase.java:124)
>> at junit.framework.TestSuite.runTest(TestSuite.java:232)
>> at junit.framework.TestSuite.run(TestSuite.java:227)
>> at
>> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
>> at
>> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>> at
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
>> at
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:165)
>> at org.apache.maven.surefire.Surefire.run(Surefire.java:107)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:592)
>> at
>> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:289)
>> at
>> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1005)
>> Caused by: org.springframework.beans.factory.BeanExpressionException:
>> Expression parsing failed; nested exception is
>> org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos
>> 0): Field or property 'myjmx' cannot be found on object of type
>> 'org.springframework.beans.factory.config.BeanExpressionContext'
>> at
>> org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:140)
>> at
>> org.springframework.beans.factory.support.AbstractBeanFactory.evaluateBeanDefinitionString(AbstractBeanFactory.java:1245)
>> at
>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.evaluate(BeanDefinitionValueResolver.java:224)
>> at
>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:200)
>> at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1308)
>> at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1067)
>> at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511)
>> ... 32 more
>> Caused by: org.springframework.expression.spel.SpelEvaluationException:
>> EL1008E:(pos 0): Field or property 'myjmx' cannot be found on object of type
>> 'org.springframework.beans.factory.config.BeanExpressionContext'
>> at
>> org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:180)
>> at
>> org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:60)
>> at
>> org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:52)
>> at
>> org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:93)
>> at
>> org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:88)
>> at
>> org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:137)
>> ... 38 more
>>
>>
>> Willem
>>
>>
>>
>>
>
>
>
> --
> Claus Ibsen
> Apache Camel Committer
>
> Author of Camel in Action: http://www.manning.com/ibsen/
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
>
--
Claus Ibsen
Apache Camel Committer
Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Re: Conflict of Camel Property and Spring EL
Posted by Claus Ibsen <cl...@gmail.com>.
Hi
Damn Spring, you are bad.
Is this the only unit tests which fails?
On Sat, Mar 27, 2010 at 10:04 AM, Willem Jiang <wi...@gmail.com> wrote:
> Hi,
>
> I'm trying to build the camel trunk code with Spring 3.0.1 and there are
> some tests failed in the camel-spring module.
>
> One kind of error is Spring 3.0.1 treats the camel property variable as the
> spEL variable (#{ <expression string> }) .
>
> It looks like we can't turn off the spEL parsering from Camel, I think we
> need to redefine the camel property variable to workaround this conflict.
>
> Here is one of stack traces:
> -------------------------------------------------------------------------------
> Test set: org.apache.camel.spring.JMXAgentPropertiesTest
> -------------------------------------------------------------------------------
> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.181 sec
> <<< FAILURE!
> testQueryMbeans(org.apache.camel.spring.JMXAgentPropertiesTest) Time
> elapsed: 1.161 sec <<< ERROR!
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'agent': Initialization of bean failed; nested exception is
> org.springframework.beans.factory.BeanExpressionException: Expression
> parsing failed; nested exception is
> org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos
> 0): Field or property 'myjmx' cannot be found on object of type
> 'org.springframework.beans.factory.config.BeanExpressionContext'
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)
> at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:562)
> at
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:871)
> at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423)
> at
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
> at
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
> at
> org.apache.camel.spring.JMXAgentPropertiesTest.createApplicationContext(JMXAgentPropertiesTest.java:31)
> at
> org.apache.camel.spring.SpringTestSupport.setUp(SpringTestSupport.java:47)
> at
> org.apache.camel.spring.DefaultJMXAgentTest.setUp(DefaultJMXAgentTest.java:43)
> at org.apache.camel.spring.JMXAgentTest.setUp(JMXAgentTest.java:40)
> at junit.framework.TestCase.runBare(TestCase.java:132)
> at junit.framework.TestResult$1.protect(TestResult.java:110)
> at junit.framework.TestResult.runProtected(TestResult.java:128)
> at junit.framework.TestResult.run(TestResult.java:113)
> at junit.framework.TestCase.run(TestCase.java:124)
> at junit.framework.TestSuite.runTest(TestSuite.java:232)
> at junit.framework.TestSuite.run(TestSuite.java:227)
> at
> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
> at
> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
> at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
> at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:165)
> at org.apache.maven.surefire.Surefire.run(Surefire.java:107)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:592)
> at
> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:289)
> at
> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1005)
> Caused by: org.springframework.beans.factory.BeanExpressionException:
> Expression parsing failed; nested exception is
> org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos
> 0): Field or property 'myjmx' cannot be found on object of type
> 'org.springframework.beans.factory.config.BeanExpressionContext'
> at
> org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:140)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.evaluateBeanDefinitionString(AbstractBeanFactory.java:1245)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.evaluate(BeanDefinitionValueResolver.java:224)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:200)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1308)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1067)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511)
> ... 32 more
> Caused by: org.springframework.expression.spel.SpelEvaluationException:
> EL1008E:(pos 0): Field or property 'myjmx' cannot be found on object of type
> 'org.springframework.beans.factory.config.BeanExpressionContext'
> at
> org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:180)
> at
> org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:60)
> at
> org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:52)
> at
> org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:93)
> at
> org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:88)
> at
> org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:137)
> ... 38 more
>
>
> Willem
>
>
>
>
--
Claus Ibsen
Apache Camel Committer
Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus