This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch camel-2.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-2.x by this push:
new c4bc060 CAMEL-13185: Add splitResults implementations to Olingo
Components
c4bc060 is described below
commit c4bc06042a1487dd937f2101308a8d72c3f4af76
Author: phantomjinx <[email protected]>
AuthorDate: Tue Feb 12 14:03:30 2019 +0000
CAMEL-13185: Add splitResults implementations to Olingo Components
* Adds splitResults methods to both Olingo 2 & 4 Consumers
---
.../camel/component/olingo2/Olingo2Consumer.java | 19 +++++
.../camel/component/olingo2/Olingo2Index.java | 20 ++---
.../component/olingo2/Olingo2ComponentTest.java | 80 +++++++++++++++----
.../camel/component/olingo4/Olingo4Consumer.java | 31 ++++++++
.../camel/component/olingo4/Olingo4Index.java | 17 ++--
.../component/olingo4/Olingo4ComponentTest.java | 90 +++++++++++++++++-----
6 files changed, 207 insertions(+), 50 deletions(-)
diff --git
a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Consumer.java
b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Consumer.java
index e784cfd..e92d96d 100644
---
a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Consumer.java
+++
b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Consumer.java
@@ -16,7 +16,9 @@
*/
package org.apache.camel.component.olingo2;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
import org.apache.camel.Exchange;
@@ -27,6 +29,7 @@ import
org.apache.camel.component.olingo2.internal.Olingo2ApiName;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.component.AbstractApiConsumer;
import org.apache.camel.util.component.ApiConsumerHelper;
+import org.apache.olingo.odata2.api.ep.entry.ODataEntry;
import org.apache.olingo.odata2.api.ep.feed.ODataFeed;
@@ -131,4 +134,20 @@ public class Olingo2Consumer extends
AbstractApiConsumer<Olingo2ApiName, Olingo2
resultIndex.index(result);
}
+
+ @Override
+ public Object splitResult(Object result) {
+ List<Object> splitResult = new ArrayList<>();
+
+ if (result instanceof ODataFeed) {
+ ODataFeed odataFeed = (ODataFeed) result;
+ for (ODataEntry entry : odataFeed.getEntries()) {
+ splitResult.add(entry);
+ }
+ } else if (result instanceof ODataEntry) {
+ splitResult.add(result);
+ }
+
+ return splitResult;
+ }
}
diff --git
a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Index.java
b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Index.java
index 81ac6a2..1198a10 100644
---
a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Index.java
+++
b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Index.java
@@ -1,11 +1,12 @@
-/*
- * Copyright (C) 2016 Red Hat, Inc.
+/**
+ * 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
*
- * Licensed 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
+ * 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,
@@ -128,12 +129,11 @@ public class Olingo2Index {
}
}
- @SuppressWarnings( "unchecked" )
+ @SuppressWarnings("unchecked")
public Object filterResponse(Object response) {
if (response instanceof ODataFeed) {
response = filter((ODataFeed) response);
- } else
- if (response instanceof Iterable) {
+ } else if (response instanceof Iterable) {
response = filter((Iterable<Object>) response);
} else if (response.getClass().isArray()) {
List<Object> result = new ArrayList<>();
diff --git
a/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/Olingo2ComponentTest.java
b/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/Olingo2ComponentTest.java
index 65d26ee..c60a3d9 100644
---
a/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/Olingo2ComponentTest.java
+++
b/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/Olingo2ComponentTest.java
@@ -252,19 +252,27 @@ public class Olingo2ComponentTest extends
AbstractOlingo2TestSupport {
* and filter already seen items on subsequent exchanges
* Use a delay since the mock endpoint does not always get
* the correct number of exchanges before being satisfied.
+ *
+ * Note:
+ * - consumer.splitResults is set to false since this ensures the first
returned message
+ * contains all the results. This is preferred for the purposes of this
test. The default
+ * will mean the first n messages contain the results (where n is the
result total) then
+ * subsequent messages will be empty
*/
@Test
public void testConsumerReadFilterAlreadySeen() throws Exception {
final Map<String, Object> headers = new HashMap<>();
- String endpoint =
"olingo2://read/Manufacturers?filterAlreadySeen=true&consumer.delay=2&consumer.sendEmptyMessageWhenIdle=true";
- final ODataFeed manufacturers =
(ODataFeed)requestBodyAndHeaders(endpoint, null, headers);
- assertNotNull(manufacturers);
- int expectedManufacturers = manufacturers.getEntries().size();
+ String endpoint =
"olingo2://read/Manufacturers?filterAlreadySeen=true&consumer.delay=2&consumer.sendEmptyMessageWhenIdle=true&consumer.splitResult=false";
int expectedMsgCount = 3;
MockEndpoint mockEndpoint =
getMockEndpoint("mock:consumer-alreadyseen");
mockEndpoint.expectedMessageCount(expectedMsgCount);
mockEndpoint.setResultWaitTime(60000);
+
+ final ODataFeed manufacturers =
(ODataFeed)requestBodyAndHeaders(endpoint, null, headers);
+ assertNotNull(manufacturers);
+ int expectedManufacturers = manufacturers.getEntries().size();
+
mockEndpoint.assertIsSatisfied();
for (int i = 0; i < expectedMsgCount; ++i) {
@@ -277,8 +285,7 @@ public class Olingo2ComponentTest extends
AbstractOlingo2TestSupport {
assertTrue(body instanceof ODataFeed);
ODataFeed set = (ODataFeed) body;
assertEquals(expectedManufacturers, set.getEntries().size());
- }
- else {
+ } else {
//
// Subsequent polling messages should be empty
// since the filterAlreadySeen property is true
@@ -302,6 +309,9 @@ public class Olingo2ComponentTest extends
AbstractOlingo2TestSupport {
String endpoint = "direct:read-people-nofilterseen";
int expectedMsgCount = 3;
+ MockEndpoint mockEndpoint =
getMockEndpoint("mock:producer-noalreadyseen");
+ mockEndpoint.expectedMessageCount(expectedMsgCount);
+
int expectedEntities = -1;
for (int i = 0; i < expectedMsgCount; ++i) {
final ODataFeed manufacturers =
(ODataFeed)requestBodyAndHeaders(endpoint, null, headers);
@@ -311,8 +321,6 @@ public class Olingo2ComponentTest extends
AbstractOlingo2TestSupport {
}
}
- MockEndpoint mockEndpoint =
getMockEndpoint("mock:producer-noalreadyseen");
- mockEndpoint.expectedMessageCount(expectedMsgCount);
mockEndpoint.assertIsSatisfied();
for (int i = 0; i < expectedMsgCount; ++i) {
@@ -337,6 +345,9 @@ public class Olingo2ComponentTest extends
AbstractOlingo2TestSupport {
String endpoint = "direct:read-people-filterseen";
int expectedMsgCount = 3;
+ MockEndpoint mockEndpoint =
getMockEndpoint("mock:producer-alreadyseen");
+ mockEndpoint.expectedMessageCount(expectedMsgCount);
+
int expectedEntities = -1;
for (int i = 0; i < expectedMsgCount; ++i) {
final ODataFeed manufacturers =
(ODataFeed)requestBodyAndHeaders(endpoint, null, headers);
@@ -346,8 +357,6 @@ public class Olingo2ComponentTest extends
AbstractOlingo2TestSupport {
}
}
- MockEndpoint mockEndpoint =
getMockEndpoint("mock:producer-alreadyseen");
- mockEndpoint.expectedMessageCount(expectedMsgCount);
mockEndpoint.assertIsSatisfied();
for (int i = 0; i < expectedMsgCount; ++i) {
@@ -360,8 +369,7 @@ public class Olingo2ComponentTest extends
AbstractOlingo2TestSupport {
// First polled messages contained all the manufacturers
//
assertEquals(expectedEntities, set.getEntries().size());
- }
- else {
+ } else {
//
// Subsequent messages should be empty
// since the filterAlreadySeen property is true
@@ -371,6 +379,49 @@ public class Olingo2ComponentTest extends
AbstractOlingo2TestSupport {
}
}
+ /**
+ * Read entity set of the Manufacturers object and split the results
+ * into individual messages
+ */
+ @Test
+ public void testConsumerReadSplitResults() throws Exception {
+ final Map<String, Object> headers = new HashMap<>();
+ String endpoint =
"olingo2://read/Manufacturers?consumer.splitResult=true";
+
+ int expectedMsgCount = 2;
+ MockEndpoint mockEndpoint =
getMockEndpoint("mock:consumer-splitresult");
+ mockEndpoint.expectedMessageCount(expectedMsgCount);
+
+ final ODataFeed odataFeed = (ODataFeed)requestBodyAndHeaders(endpoint,
null, headers);
+ assertNotNull(odataFeed);
+
+ mockEndpoint.assertIsSatisfied();
+
+ //
+ // 2 individual messages in the exchange,
+ // each containing a different entity.
+ //
+ for (int i = 0; i < expectedMsgCount; ++i) {
+ Object body = mockEndpoint.getExchanges().get(i).getIn().getBody();
+ assertTrue(body instanceof ODataEntry);
+ ODataEntry entry = (ODataEntry)body;
+ Map<String, Object> properties = entry.getProperties();
+ assertNotNull(properties);
+
+ Object name = properties.get("Name");
+ assertNotNull(name);
+ switch(i) {
+ case 0:
+ assertEquals("Star Powered Racing", name);
+ break;
+ case 1:
+ assertEquals("Horse Powered Racing", name);
+ break;
+ default:
+ }
+ }
+ }
+
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@@ -422,8 +473,9 @@ public class Olingo2ComponentTest extends
AbstractOlingo2TestSupport {
//
// Consumer endpoint
//
-
from("olingo2://read/Manufacturers?filterAlreadySeen=true&consumer.delay=2&consumer.sendEmptyMessageWhenIdle=true")
- .to("mock:consumer-alreadyseen");
+
from("olingo2://read/Manufacturers?filterAlreadySeen=true&consumer.delay=2&consumer.sendEmptyMessageWhenIdle=true&consumer.splitResult=false").to("mock:consumer-alreadyseen");
+
+
from("olingo2://read/Manufacturers?consumer.splitResult=true").to("mock:consumer-splitresult");
}
};
}
diff --git
a/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Consumer.java
b/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Consumer.java
index eedc0ed..4cee0a5 100644
---
a/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Consumer.java
+++
b/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Consumer.java
@@ -16,7 +16,9 @@
*/
package org.apache.camel.component.olingo4;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
import org.apache.camel.Exchange;
@@ -27,7 +29,11 @@ import
org.apache.camel.component.olingo4.internal.Olingo4ApiName;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.component.AbstractApiConsumer;
import org.apache.camel.util.component.ApiConsumerHelper;
+import org.apache.olingo.client.api.domain.ClientEntity;
import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientValue;
+import org.apache.olingo.client.core.domain.ClientPrimitiveValueImpl;
+import org.apache.olingo.client.core.domain.ClientPropertyImpl;
/**
* The Olingo4 consumer.
@@ -131,4 +137,29 @@ public class Olingo4Consumer extends
AbstractApiConsumer<Olingo4ApiName, Olingo4
resultIndex.index(result);
}
+
+ @Override
+ public Object splitResult(Object result) {
+ List<Object> splitResult = new ArrayList<>();
+
+ if (result instanceof ClientEntitySet) {
+ ClientEntitySet entitySet = (ClientEntitySet) result;
+ for (ClientEntity entity : entitySet.getEntities()) {
+ //
+ // If $count has been set to true then this value is left
behind
+ // on the ClientEntitySet. Therefore, append it to each result.
+ //
+ if (entitySet.getCount() != null) {
+ ClientValue value = new
ClientPrimitiveValueImpl.BuilderImpl()
+
.buildInt32(entitySet.getCount());
+ entity.getProperties().add(new
ClientPropertyImpl("ResultCount", value));
+ }
+ splitResult.add(entity);
+ }
+ } else if (result instanceof ClientEntity) {
+ splitResult.add(result);
+ }
+
+ return splitResult;
+ }
}
diff --git
a/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Index.java
b/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Index.java
index a5f7694..c00adbb 100644
---
a/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Index.java
+++
b/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Index.java
@@ -1,11 +1,12 @@
-/*
- * Copyright (C) 2016 Red Hat, Inc.
+/**
+ * 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
*
- * Licensed 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
+ * 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,
@@ -94,7 +95,7 @@ public class Olingo4Index {
}
}
- @SuppressWarnings( "unchecked" )
+ @SuppressWarnings("unchecked")
public Object filterResponse(Object response) {
if (response instanceof ClientEntitySet) {
response = filter((ClientEntitySet) response);
diff --git
a/components/camel-olingo4/camel-olingo4-component/src/test/java/org/apache/camel/component/olingo4/Olingo4ComponentTest.java
b/components/camel-olingo4/camel-olingo4-component/src/test/java/org/apache/camel/component/olingo4/Olingo4ComponentTest.java
index fd34bdb..dfafcbe 100644
---
a/components/camel-olingo4/camel-olingo4-component/src/test/java/org/apache/camel/component/olingo4/Olingo4ComponentTest.java
+++
b/components/camel-olingo4/camel-olingo4-component/src/test/java/org/apache/camel/component/olingo4/Olingo4ComponentTest.java
@@ -32,6 +32,7 @@ import org.apache.olingo.client.api.domain.ClientComplexValue;
import org.apache.olingo.client.api.domain.ClientEntity;
import org.apache.olingo.client.api.domain.ClientEntitySet;
import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
import org.apache.olingo.client.api.domain.ClientServiceDocument;
import org.apache.olingo.commons.api.Constants;
import org.apache.olingo.commons.api.edm.Edm;
@@ -301,19 +302,26 @@ public class Olingo4ComponentTest extends
AbstractOlingo4TestSupport {
* and filter already seen items on subsequent exchanges
* Use a delay since the mock endpoint does not always get
* the correct number of exchanges before being satisfied.
+ *
+ * Note:
+ * - consumer.splitResults is set to false since this ensures the first
returned message
+ * contains all the results. This is preferred for the purposes of this
test. The default
+ * will mean the first n messages contain the results (where n is the
result total) then
+ * subsequent messages will be empty
*/
@Test
public void testConsumerReadFilterAlreadySeen() throws Exception {
final Map<String, Object> headers = new HashMap<>();
- String endpoint =
"olingo4://read/People?filterAlreadySeen=true&consumer.delay=2&consumer.sendEmptyMessageWhenIdle=true";
+ String endpoint =
"olingo4://read/People?filterAlreadySeen=true&consumer.delay=2&consumer.sendEmptyMessageWhenIdle=true&consumer.splitResult=false";
int expectedEntities = 20;
+ int expectedMsgCount = 3;
+ MockEndpoint mockEndpoint =
getMockEndpoint("mock:consumer-alreadyseen");
+ mockEndpoint.expectedMessageCount(expectedMsgCount);
+
final ClientEntitySet entities =
(ClientEntitySet)requestBodyAndHeaders(endpoint, null, headers);
assertNotNull(entities);
assertEquals(expectedEntities, entities.getEntities().size());
- int expectedMsgCount = 3;
- MockEndpoint mockEndpoint =
getMockEndpoint("mock:consumer-alreadyseen");
- mockEndpoint.expectedMessageCount(expectedMsgCount);
mockEndpoint.assertIsSatisfied();
for (int i = 0; i < expectedMsgCount; ++i) {
@@ -326,8 +334,7 @@ public class Olingo4ComponentTest extends
AbstractOlingo4TestSupport {
assertTrue(body instanceof ClientEntitySet);
ClientEntitySet set = (ClientEntitySet) body;
assertEquals(expectedEntities, set.getEntities().size());
- }
- else {
+ } else {
//
// Subsequent polling messages should be empty
// since the filterAlreadySeen property is true
@@ -352,13 +359,14 @@ public class Olingo4ComponentTest extends
AbstractOlingo4TestSupport {
int expectedEntities = 20;
int expectedMsgCount = 3;
+ MockEndpoint mockEndpoint =
getMockEndpoint("mock:producer-noalreadyseen");
+ mockEndpoint.expectedMessageCount(expectedMsgCount);
+
for (int i = 0; i < expectedMsgCount; ++i) {
final ClientEntitySet entities =
(ClientEntitySet)requestBodyAndHeaders(endpoint, null, headers);
assertNotNull(entities);
}
- MockEndpoint mockEndpoint =
getMockEndpoint("mock:producer-noalreadyseen");
- mockEndpoint.expectedMessageCount(expectedMsgCount);
mockEndpoint.assertIsSatisfied();
for (int i = 0; i < expectedMsgCount; ++i) {
@@ -384,13 +392,14 @@ public class Olingo4ComponentTest extends
AbstractOlingo4TestSupport {
int expectedEntities = 20;
int expectedMsgCount = 3;
+ MockEndpoint mockEndpoint =
getMockEndpoint("mock:producer-alreadyseen");
+ mockEndpoint.expectedMessageCount(expectedMsgCount);
+
for (int i = 0; i < expectedMsgCount; ++i) {
final ClientEntitySet entities =
(ClientEntitySet)requestBodyAndHeaders(endpoint, null, headers);
assertNotNull(entities);
}
- MockEndpoint mockEndpoint =
getMockEndpoint("mock:producer-alreadyseen");
- mockEndpoint.expectedMessageCount(expectedMsgCount);
mockEndpoint.assertIsSatisfied();
for (int i = 0; i < expectedMsgCount; ++i) {
@@ -403,8 +412,7 @@ public class Olingo4ComponentTest extends
AbstractOlingo4TestSupport {
// First polled messages contained all the entities
//
assertEquals(expectedEntities, set.getEntities().size());
- }
- else {
+ } else {
//
// Subsequent messages should be empty
// since the filterAlreadySeen property is true
@@ -414,6 +422,51 @@ public class Olingo4ComponentTest extends
AbstractOlingo4TestSupport {
}
}
+ /**
+ * Read entity set of the People object and split the results
+ * into individual messages
+ */
+ @Test
+ public void testConsumerReadSplitResults() throws Exception {
+ final Map<String, Object> headers = new HashMap<>();
+ String endpoint = "olingo4://read/People?consumer.splitResult=true";
+ int expectedEntities = 20;
+
+ int expectedMsgCount = 3;
+ MockEndpoint mockEndpoint =
getMockEndpoint("mock:consumer-splitresult");
+ mockEndpoint.expectedMinimumMessageCount(expectedMsgCount);
+
+ final ClientEntitySet entities =
(ClientEntitySet)requestBodyAndHeaders(endpoint, null, headers);
+ assertNotNull(entities);
+ assertEquals(expectedEntities, entities.getEntities().size());
+
+ mockEndpoint.assertIsSatisfied();
+ //
+ // At least 3 individual messages in the exchange,
+ // each containing a different entity.
+ //
+ for (int i = 0; i < expectedMsgCount; ++i) {
+ Object body = mockEndpoint.getExchanges().get(i).getIn().getBody();
+ assertTrue(body instanceof ClientEntity);
+ ClientEntity entity = (ClientEntity)body;
+ ClientProperty nameProperty = entity.getProperty("UserName");
+ assertNotNull(nameProperty);
+
+ switch(i) {
+ case 0:
+ assertEquals("russellwhyte",
nameProperty.getValue().toString());
+ break;
+ case 1:
+ assertEquals("scottketchum",
nameProperty.getValue().toString());
+ break;
+ case 2:
+ assertEquals("ronaldmundy",
nameProperty.getValue().toString());
+ break;
+ default:
+ }
+ }
+ }
+
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@@ -459,18 +512,19 @@ public class Olingo4ComponentTest extends
AbstractOlingo4TestSupport {
from("direct:delete-with-etag").to("olingo4://delete/Airlines('AA')");
from("direct:read-people-nofilterseen")
- .to("olingo4://read/People")
- .to("mock:producer-noalreadyseen");
+ .to("olingo4://read/People")
+ .to("mock:producer-noalreadyseen");
from("direct:read-people-filterseen")
- .to("olingo4://read/People?filterAlreadySeen=true")
- .to("mock:producer-alreadyseen");
+ .to("olingo4://read/People?filterAlreadySeen=true")
+ .to("mock:producer-alreadyseen");
//
// Consumer endpoint
//
-
from("olingo4://read/People?filterAlreadySeen=true&consumer.delay=2&consumer.sendEmptyMessageWhenIdle=true")
- .to("mock:consumer-alreadyseen");
+
from("olingo4://read/People?filterAlreadySeen=true&consumer.delay=2&consumer.sendEmptyMessageWhenIdle=true&consumer.splitResult=false").to("mock:consumer-alreadyseen");
+
+
from("olingo4://read/People?consumer.splitResult=true").to("mock:consumer-splitresult");
}
};
}