You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Christian Schubert-Huff (Jira)" <ji...@apache.org> on 2023/01/03 13:05:00 UTC
[jira] [Created] (CAMEL-18856) camel-main - Unable to declare java.util.List bean
Christian Schubert-Huff created CAMEL-18856:
-----------------------------------------------
Summary: camel-main - Unable to declare java.util.List bean
Key: CAMEL-18856
URL: https://issues.apache.org/jira/browse/CAMEL-18856
Project: Camel
Issue Type: Bug
Components: camel-main
Affects Versions: 3.20.0, 3.18.1
Environment: jdk11
Reporter: Christian Schubert-Huff
I have been unsuccessful in declaring a java.util.List bean. According to camel-main documentation, a List bean should be declared using numeric keys in square brackets:
{noformat}
camel.beans.myprojects[0] = Camel
camel.beans.myprojects[1] = Kafka
camel.beans.myprojects[2] = Quarkus
{noformat}
This does, however, not actually declare a java.util.List, but a java.util.LinkedHashMap, instead.
Again, reproduction is easy:
{code:java}
@Test
public void testBindBeansList() {
Main main = new Main();
main.configure().addRoutesBuilder(new MyRouteBuilder());
// defining a list bean
main.addProperty("camel.beans.myprojects[0]", "Camel");
main.addProperty("camel.beans.myprojects[1]", "Kafka");
main.addProperty("camel.beans.myprojects[2]", "Quarkus");
main.start();
CamelContext camelContext = main.getCamelContext();
assertNotNull(camelContext);
Object bean = camelContext.getRegistry().lookupByName("myprojects");
assertNotNull(bean);
assertInstanceOf(java.util.List.class, bean);
java.util.List<?> list = (java.util.List<?>) bean;
assertEquals(3, list.size());
assertEquals("Camel", list.get(0));
assertEquals("Kafka", list.get(1));
assertEquals("Quarkus", list.get(2));
main.stop();
} {code}
There is a workaround, which is to use java.util.List#of, which is also more concise, but only possible if using Java 9 or above:
{noformat}
camel.beans.myprojects = #class:java.util.List#of('Camel', 'Kafka', 'Quarkus'){noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)