Hello,
I can not run camel-jdbc in java.
I defines a route with camel-blueprint, via a road builder (not in XML)
because I know the road to be built when bundle start.
when starting the bundle, I read a database that contains definitions of endpoints. with there informations, I build the road. where in the database I have a record defining an endpoint jdbc datasource I create a datasource "myDataSourceName" and the uri "jdbc:myDataSourceName"
in the documentation I've read, I had to do
JndiRegistry reg = super.createRegistry();
reg.bind("testdb", db);
return reg;
but I'm in the configure method or in constructor of route builder
I can not call super.createRegistry(); the register already exists
I tried context.getRegistry (); who gets a JndiRegistry but getRegistry() return a simple Registry.
The bind method does not exist on Registry.
I tried (JndiRegistry) context.getRegistry();
but I get a CastException.
public RouteBuilder()
super();
inUrl = getParameter("input.url");
... read configuration datas
DataSourceName = "myDataSourceName";
DataSource DS = DataSourceFactory.create(DataSourceName, ....); //using pooled datasource factory (c3p0)
JndiRegistry reg = (JndiRegistry) getContext().getRegistry(); //CastException
reg.bind("myDataSourceName", reg);//
//Or
Registry reg = getContext().getRegistry();
reg.bind("myDataSourceName", reg);//
dsUri = "jdbc:" DataSourceName;
}
public void configure() {{color}
RouteDefinition r = from(inUrl);
if ("sommeValue".equals(sommeParameter) {}
r.bean(MyBean.class);
...
r.to("dsUri)
I have a similar problem in JUnit
CamelTestSupport created a camelContext and a Registry
then create the RouteBuilder (calls constructor)
and calls the configure() method
I've created an object datasource but inpossible to put it in the registry.
can you help me ?
A JYT