[jboss-jira] [JBoss JIRA] (DROOLS-267) DroolsExecuteProducer is loosing all Camel Exchange headers
Mario Fusco (JIRA)
jira-events at lists.jboss.org
Thu Sep 19 03:59:03 EDT 2013
[ https://issues.jboss.org/browse/DROOLS-267?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mario Fusco reassigned DROOLS-267:
----------------------------------
Assignee: Mario Fusco (was: Mark Proctor)
> DroolsExecuteProducer is loosing all Camel Exchange headers
> -----------------------------------------------------------
>
> Key: DROOLS-267
> URL: https://issues.jboss.org/browse/DROOLS-267
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 5.5.0.Final, 6.0.0.CR3, 6.0.0.CR4
> Reporter: A Majewski
> Assignee: Mario Fusco
>
> When using drools endpoint inside camel project the DroolsExecuteProducer is loosing all the Camel Exchange headers.
> Usually the InOut camel producers should be copy all In Exchange Headers to Out Exchange. Please refer to community discussion: https://community.jboss.org/message/837533#837533
> Additional tests casess in org.drools.camel.component.CamelEndpointTest class showing exact problem.
> {code}
> ...
> @Test
> public void testNoSessionInsertWithHeaders() throws Exception {
>
> MockEndpoint mockResult = context.getEndpoint("mock:resultWithHeader",MockEndpoint.class);
>
> String headerName ="testHeaderName";
> String headerValue ="testHeaderValue";
>
> Person person = new Person();
> person.setName( "Mauricio" );
> InsertObjectCommand cmd = (InsertObjectCommand) CommandFactory.newInsert( person,
> "salaboy" );
> Map<String,Object> headers= new HashMap<String, Object>();
> headers.put(headerName,headerValue);
> headers.put( DroolsComponent.DROOLS_LOOKUP,"ksession1");
>
> // set mock expectations
> mockResult.expectedMessageCount(1);
> mockResult.expectedHeaderReceived(headerName,headerValue);
>
> ExecutionResults response = (ExecutionResults) template.requestBodyAndHeaders("direct:test-no-session-withHeader",
> cmd,headers);
> assertTrue( "Expected valid ExecutionResults object",
> response != null );
> assertTrue( "ExecutionResults missing expected fact",
> response.getFactHandle( "salaboy" ) != null );
>
> mockResult.assertIsSatisfied();
> }
> @Test
> public void testSessionBatchExecutionCommandWithHeader() throws Exception {
>
> MockEndpoint mockResult = context.getEndpoint("mock:resultWithHeader",MockEndpoint.class);
>
> String headerName ="testHeaderName";
> String headerValue ="testHeaderValue";
>
> Person john = new Person();
> john.setName("John Smith");
> List<Command> commands = new ArrayList<Command>();
> commands.add(CommandFactory.newInsert(john, "john"));
> BatchExecutionCommand batchExecutionCommand = CommandFactory.newBatchExecution(commands);
> Map<String,Object> headers= new HashMap<String, Object>();
> headers.put(headerName,headerValue);
>
> // set mock expectations
> mockResult.expectedMessageCount(1);
> mockResult.expectedHeaderReceived(headerName,headerValue);
>
> //do test
> template.requestBodyAndHeaders("direct:test-with-session-withHeader",
> batchExecutionCommand,headers);
>
> ExecutionResults response = mockResult.getReceivedExchanges().get(0).getIn().getBody(ExecutionResults.class);
>
> assertTrue( "Expected valid ExecutionResults object",
> response != null );
> assertTrue( "ExecutionResults missing expected fact",
> response.getFactHandle( "john" ) != null );
> assertTrue( "ExecutionResults missing expected fact",
> response.getFactHandle( "john" ) instanceof FactHandle);
>
> mockResult.assertIsSatisfied();
> }
> @Override
> protected RouteBuilder createRouteBuilder() throws Exception {
> return new RouteBuilder() {
> public void configure() throws Exception {
> from( "direct:test-with-session" ).to( "drools://node/ksession1" );
> from( "direct:test-no-session" ).to( "drools://node" );
> from( "direct:test-with-session-withHeader" ).to( "drools://node/ksession1" ).to("mock:resultWithHeader");
> from( "direct:test-no-session-withHeader" ).to( "drools://node/ksession1" ).to("mock:resultWithHeader");
> }
> };
> }
> {code}
> I am going to create a pull request to fix this issue.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list