Alex Savitsky created CAMEL-8541:
------------------------------------
Summary: Came main TestSupport class is incompatible with the CDI
specification
Key: CAMEL-8541
URL: https://issues.apache.org/jira/browse/CAMEL-8541
Project: Camel
Issue Type: Bug
Components: camel-test
Affects Versions: 2.14.2, 2.12.5
Reporter: Alex Savitsky
JUnit4 test support class (org.apache.camel.test.junit4.TestSupport) contains
the following declaration:
{noformat}
// CHECKSTYLE:OFF
@Rule
public TestName testName = new TestName();
// CHECKSTYLE:ON
{noformat}
In addition to being a terrible idea overall, this public field also breaks CDI
integration, as any tests attempted to be bootstrapped in CDI will throw the
following error (WELD trace is shown for an example):
{noformat}
org.jboss.weld.exceptions.DefinitionException: WELD-000075: Normal scoped
managed bean implementation class has a public field:
[EnhancedAnnotatedFieldImpl] @Rule public com.netotc.ha.route.TestCDI.testName
at
org.jboss.weld.bean.ManagedBean.checkBeanImplementation(ManagedBean.java:227)
at
org.jboss.weld.bean.AbstractClassBean.internalInitialize(AbstractClassBean.java:74)
at
org.jboss.weld.bean.ManagedBean.internalInitialize(ManagedBean.java:105)
at org.jboss.weld.bean.RIBean.initialize(RIBean.java:66)
at
org.jboss.weld.bootstrap.ConcurrentBeanDeployer$5.doWork(ConcurrentBeanDeployer.java:121)
at
org.jboss.weld.bootstrap.ConcurrentBeanDeployer$5.doWork(ConcurrentBeanDeployer.java:118)
at
org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
at
org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
{noformat}
Suggesting to create a getter for this field, making the field private, and
moving the @Rule annotation to the getter.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)