[ https://issues.apache.org/activemq/browse/CAMEL-1537?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Christian Mueller updated CAMEL-1537: ------------------------------------- Attachment: CAMEL-1537.patch I spend some hous to understand the camel-core components. I have now finished the first of tree steps, implementing the validation DSL for regular expressions. I attached the patch and hope that someone could give me a feedback whether or not I'm on the right way. The unit test shows best what you can now do: {code} public class ValidateRegExpTest extends ContextTestSupport { private Endpoint startEndpoint; private MockEndpoint resultEndpoint; @Override protected void setUp() throws Exception { super.setUp(); startEndpoint = resolveMandatoryEndpoint("direct:start", Endpoint.class); resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class); } public void testSendMatchingMessage() throws Exception { resultEndpoint.expectedMessageCount(1); template.sendBody(startEndpoint, "01.01.2010"); resultEndpoint.assertIsSatisfied(); } public void testSendNotMatchingMessage() throws Exception { resultEndpoint.expectedMessageCount(0); try { template.sendBody(startEndpoint, "1.1.2010"); fail("CamelExecutionException expected"); } catch (CamelExecutionException e) { // expected assertTrue(e.getCause() instanceof RegExpValidationException); String message = ((RegExpValidationException) e.getCause()).getMessage(); assertEquals("Validation failed for Predicate[{bodyAs[java.lang.String]}.matches('^\\d{2}\\.\\d{2}\\.\\d{4}$')]. Exchange[Message: 1.1.2010]", message); } resultEndpoint.assertIsSatisfied(); } protected RouteBuilder createRouteBuilder() { return new RouteBuilder() { public void configure() { from("direct:start") .validate(body(String.class)).regex("^\\d{2}\\.\\d{2}\\.\\d{4}$") .to("mock:result"); } }; } } {code} Thanks, Christian > Predicate for validation > ------------------------- > > Key: CAMEL-1537 > URL: https://issues.apache.org/activemq/browse/CAMEL-1537 > Project: Apache Camel > Issue Type: New Feature > Affects Versions: 2.0-M1 > Reporter: Claus Ibsen > Assignee: Christian Mueller > Priority: Minor > Fix For: Future > > Attachments: CAMEL-1537.patch > > > The current validator is a component and its a bit clumsy as it throws an > exception if validation error. > So if we have a nice Predicate for it, it can be like a xpath predicate or > the likes. > [17:58] <jstrachan> http://camel.apache.org/validation.html > [17:58] <ulhasb> jstrachan: thanks for the quick responses > [17:59] <cibsen> jstrachan we should maybe have a predicate for schema > validation > [17:59] <cibsen> then you can route it a bit more nice without try .. catch > [18:00] * fbolton has quit ("Leaving.") > [18:03] * gertv has quit (Client closed connection) > [18:05] <jstrachan> cibsen: yeah > [18:05] <jstrachan> cibsen: maybe a kinda predicate language using the other > validators? filter().validate(theValidationEndpointUri).to("blah") -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.