Whoops wrong JIRA - this was the one I should have mentioned : https://issues.apache.org/activemq/browse/CAMEL-267
2008/5/13 <[EMAIL PROTECTED]>: > Author: jstrachan > Date: Tue May 13 00:05:19 2008 > New Revision: 655754 > > URL: http://svn.apache.org/viewvc?rev=655754&view=rev > Log: > applied test case patch with thanks and added fix for > https://issues.apache.org/activemq/browse/CAMEL-507 > > Added: > > activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/CamelConverter.java > (with props) > > activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/PredicateAsBeanTest.java > (with props) > > Added: > activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/CamelConverter.java > URL: > http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/CamelConverter.java?rev=655754&view=auto > > ============================================================================== > --- > activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/CamelConverter.java > (added) > +++ > activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/CamelConverter.java > Tue May 13 00:05:19 2008 > @@ -0,0 +1,44 @@ > +/** > + * > + * Licensed to the Apache Software Foundation (ASF) under one or more > + * contributor license agreements. See the NOTICE file distributed with > + * this work for additional information regarding copyright ownership. > + * The ASF licenses this file to You under the Apache License, Version 2.0 > + * (the "License"); you may not use this file except in compliance with > + * the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > + * See the License for the specific language governing permissions and > + * limitations under the License. > + */ > +package org.apache.camel.converter; > + > +import org.apache.camel.Converter; > +import org.apache.camel.Processor; > +import org.apache.camel.Predicate; > +import org.apache.camel.Exchange; > +import org.apache.camel.Message; > + > +/** > + * Some useful converters for Camel APIs > + * > + * @version $Revision: 1.1 $ > + */ > [EMAIL PROTECTED] > +public class CamelConverter { > + @Converter > + public Processor toProcessor(final Predicate<Exchange> predicate) { > + return new Processor() { > + public void process(Exchange exchange) throws Exception { > + boolean answer = predicate.matches(exchange); > + Message out = exchange.getOut(); > + out.copyFrom(exchange.getIn()); > + out.setBody(answer); > + } > + }; > + } > +} > > Propchange: > activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/CamelConverter.java > > ------------------------------------------------------------------------------ > svn:eol-style = native > > Added: > activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/PredicateAsBeanTest.java > URL: > http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/PredicateAsBeanTest.java?rev=655754&view=auto > > ============================================================================== > --- > activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/PredicateAsBeanTest.java > (added) > +++ > activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/PredicateAsBeanTest.java > Tue May 13 00:05:19 2008 > @@ -0,0 +1,74 @@ > +/** > + * Licensed to the Apache Software Foundation (ASF) under one or more > + * contributor license agreements. See the NOTICE file distributed with > + * this work for additional information regarding copyright ownership. > + * The ASF licenses this file to You under the Apache License, Version 2.0 > + * (the "License"); you may not use this file except in compliance with > + * the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > + * See the License for the specific language governing permissions and > + * limitations under the License. > + */ > +package org.apache.camel.component.bean; > + > +import org.apache.camel.Body; > +import org.apache.camel.ContextTestSupport; > +import org.apache.camel.Exchange; > +import org.apache.camel.Predicate; > +import org.apache.camel.builder.RouteBuilder; > +import org.apache.camel.processor.BeanRouteTest; > +import org.apache.camel.util.jndi.JndiContext; > +import org.apache.commons.logging.Log; > +import org.apache.commons.logging.LogFactory; > + > +import javax.naming.Context; > + > +/** > + * @version $Revision: 1.1 $ > + */ > +public class PredicateAsBeanTest extends ContextTestSupport { > + private static final transient Log LOG = > LogFactory.getLog(BeanRouteTest.class); > + protected MyPredicate myPredicate = new MyPredicate(); > + > + public void testSendMessage() throws Exception { > + String expectedBody = "Wobble"; > + > + template.sendBodyAndHeader("direct:in", expectedBody, "foo", "bar"); > + > + assertEquals("bean body: " + myPredicate, expectedBody, > myPredicate.body); > + } > + > + @Override > + protected Context createJndiContext() throws Exception { > + JndiContext answer = new JndiContext(); > + answer.bind("myPredicate", myPredicate); > + return answer; > + } > + > + protected RouteBuilder createRouteBuilder() { > + return new RouteBuilder() { > + public void configure() { > + from("direct:in").to("bean:myPredicate"); > + } > + }; > + } > + > + public static class MyPredicate implements Predicate<Exchange> { > + public String body; > + > + public boolean matches(Exchange exchange) { > + LOG.info("matches(exchange) called with: " + exchange); > + body = exchange.getIn().getBody(String.class); > + return (null != body) && (body.equals("Wobble")); > + } > + > + public void assertMatches(String text, Exchange exchange) throws > AssertionError { > + LOG.info("assertMatches(text, exchange) called with: " + text + > ", " + exchange); > + } > + } > +} > \ No newline at end of file > > Propchange: > activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/PredicateAsBeanTest.java > > ------------------------------------------------------------------------------ > svn:eol-style = native > > > -- James ------- http://macstrac.blogspot.com/ Open Source Integration http://open.iona.com
