Hi, I need to bind and call a bean method with some parameters - 1: a string 2: a exchange. I see from camel page #http://camel.apache.org/bean-binding.html that exchange binding as parameter is possible. I'm using bean expression to do it.
In the code, i need to know the correct way of using (in the bolded line). I'm here trying to set the throttle value of a camel route via some logic i have to build in the binding method call. /configure() method of a camel processor ----------------------------------------------- @Override public final void configure() throws Exception { System.out.println("Exchange from Processor: " + e); String queueName = toUri.split(":")[2]; String throttleValue = *"${bean:queueCounter?method=getQueueSize("+queueName+",${"+e+"})}";* from(fromUri).routeId(routeId) .routePolicyRef("haRoutePolicy") .throttle(simple(throttleValue)) .timePeriodMillis(timeInterval) .setHeader("HostId", simple(hostName)) .process(new MessageProcessor()) .log("Started Polling the Source Directory for Files.") .to(toUri); } Method that i need to bind ------------------------------- ublic class QueueSizeCounter { private ActiveMQComponent activemqComponent; private Session session; public Long getQueueSize(String queueName, Exchange e) throws JMSException { activemqComponent = (ActiveMQComponent) e.getContext() .getComponent("activemq"); Connection connection1 = activemqComponent.getConfiguration().getConnectionFactory().createConnection(); connection1.start(); session = connection1.createSession(false, Session.CLIENT_ACKNOWLEDGE); Queue replyTo = session.createTemporaryQueue(); MessageConsumer consumer = session.createConsumer(replyTo); Queue query = session.createQueue("ActiveMQ.Statistics.Destination" + queueName ); MessageProducer producer = session.createProducer(query); Message msg = session.createMessage(); msg.setJMSReplyTo(replyTo); producer.send(msg); MapMessage reply = (MapMessage) consumer.receive(); for (Enumeration en = reply.getMapNames();en.hasMoreElements();) { String name = en.nextElement().toString(); System.out.println(name + "=" + reply.getObject(name)); } return 1L; } }/ -- View this message in context: http://camel.465427.n5.nabble.com/Camel-Binding-a-bean-method-with-paramete-of-camel-exchange-tp5768582.html Sent from the Camel Development mailing list archive at Nabble.com.