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)

Reply via email to