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 2023/12/08 14:06:00 UTC

[jira] [Created] (CAMEL-20213) camel-core - Dependency injection for @BeanInject for private fields

Claus Ibsen created CAMEL-20213:
-----------------------------------

             Summary: camel-core - Dependency injection for @BeanInject for private fields
                 Key: CAMEL-20213
                 URL: https://issues.apache.org/jira/browse/CAMEL-20213
             Project: Camel
          Issue Type: Bug
          Components: camel-jbang, camel-main
            Reporter: Claus Ibsen


{code}
import org.apache.camel.Configuration;
import org.apache.camel.spi.IdempotentRepository;
import org.apache.camel.processor.idempotent.jdbc.JdbcMessageIdRepository;
import org.apache.camel.BeanInject;
import org.apache.camel.BindToRegistry;
import javax.sql.DataSource;

@Configuration
public class Testidempotentrepository {

    @BeanInject 
    private DataSource dataSource;

    @BindToRegistry("Testidempotentrepository")
    public IdempotentRepository createIdempotentRegistry() {
        return new JdbcMessageIdRepository(dataSource, "some-key");
    }
}
{code}


Fails with

Caused by: java.lang.IllegalArgumentException: Property 'dataSource' is required
	at org.springframework.jdbc.datasource.DataSourceTransactionManager.afterPropertiesSet(DataSourceTransactionManager.java:235)
	at org.springframework.jdbc.datasource.DataSourceTransactionManager.<init>(DataSourceTransactionManager.java:146)
	at org.apache.camel.processor.idempotent.jdbc.AbstractJdbcMessageIdRepository.createTransactionTemplate(AbstractJdbcMessageIdRepository.java:116)
	at org.apache.camel.processor.idempotent.jdbc.AbstractJdbcMessageIdRepository.<init>(AbstractJdbcMessageIdRepository.java:77)
	at org.apache.camel.processor.idempotent.jdbc.JdbcMessageIdRepository.<init>(JdbcMessageIdRepository.java:61)
	at Testidempotentrepository.createIdempotentRegistry(Testidempotentrepository.java:16)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.apache.camel.support.ObjectHelper.invokeMethod(ObjectHelper.java:425)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)