Repository: olingo-odata4 Updated Branches: refs/heads/master 6a736db10 -> 01c6aa159
NextLink Support in streaming Change-Id: I199fe29991f9c02b870fd524b4276d16c1e5382e Signed-off-by: Archana Rai <[email protected]> Signed-off-by: Christian Amend <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/4b3c0237 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/4b3c0237 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/4b3c0237 Branch: refs/heads/master Commit: 4b3c02373fa4e237fbefbb0038628c6aef907283 Parents: 6a736db Author: Archana Rai <[email protected]> Authored: Wed Nov 30 00:09:08 2016 +0530 Committer: Christian Amend <[email protected]> Committed: Tue Dec 13 10:09:44 2016 +0100 ---------------------------------------------------------------------- .../fit/tecsvc/http/BasicStreamITCase.java | 77 ++++++++++++++++++++ .../olingo/commons/api/data/EntityIterator.java | 20 +++-- .../api/uri/queryoption/expression/Literal.java | 3 +- .../serializer/json/ODataJsonSerializer.java | 4 +- .../core/serializer/xml/ODataXmlSerializer.java | 4 +- .../olingo/server/tecsvc/data/DataCreator.java | 32 ++++++++ .../processor/TechnicalEntityProcessor.java | 10 ++- .../options/ServerSidePagingHandler.java | 4 +- .../tecsvc/provider/ContainerProvider.java | 19 ++++- .../tecsvc/provider/EntityTypeProvider.java | 11 +++ .../server/tecsvc/provider/SchemaProvider.java | 1 + 11 files changed, 171 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4b3c0237/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicStreamITCase.java ---------------------------------------------------------------------- diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicStreamITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicStreamITCase.java index 8935f97..ce77536 100644 --- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicStreamITCase.java +++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicStreamITCase.java @@ -77,6 +77,83 @@ public class BasicStreamITCase extends AbstractBaseTestITCase { assertTrue(content.contains("<d:PropertyString>TEST 2->streamed</d:PropertyString>")); } + @Test + public void streamESStreamServerSidePagingXml() throws Exception { + URL url = new URL(SERVICE_URI + "ESStreamServerSidePaging?$format=xml"); + + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod(HttpMethod.GET.name()); + connection.connect(); + + assertEquals(HttpStatusCode.OK.getStatusCode(), connection.getResponseCode()); + assertEquals(ContentType.APPLICATION_XML, ContentType.create(connection.getHeaderField(HttpHeader.CONTENT_TYPE))); + + final String content = IOUtils.toString(connection.getInputStream()); + assertTrue(content.contains("<a:link rel=\"next\" href=")); + assertTrue(content.contains("ESStreamServerSidePaging?$format=xml&%24skiptoken=1%2A10\"/>")); + assertTrue(content.contains("<a:id>ESStreamServerSidePaging(1)</a:id>")); + assertTrue(content.contains("<d:PropertyInt16 m:type=\"Int16\">1</d:PropertyInt16>")); + assertTrue(content.contains("<d:PropertyStream m:type=\"Stream\">readLink</d:PropertyStream>")); + } + + @Test + public void streamESStreamServerSidePagingNextXml() throws Exception { + URL url = new URL(SERVICE_URI + "ESStreamServerSidePaging?$format=xml&$skiptoken=1%2A10"); + + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod(HttpMethod.GET.name()); + connection.connect(); + + assertEquals(HttpStatusCode.OK.getStatusCode(), connection.getResponseCode()); + assertEquals(ContentType.APPLICATION_XML, ContentType.create(connection.getHeaderField(HttpHeader.CONTENT_TYPE))); + + final String content = IOUtils.toString(connection.getInputStream()); + assertTrue(content.contains("<a:link rel=\"next\" href=")); + assertTrue(content.contains("ESStreamServerSidePaging?$format=xml&%24skiptoken=2%2A10\"/>")); + assertTrue(content.contains("<a:id>ESStreamServerSidePaging(11)</a:id>")); + assertTrue(content.contains("<d:PropertyInt16 m:type=\"Int16\">11</d:PropertyInt16>")); + assertTrue(content.contains("<d:PropertyStream m:type=\"Stream\">readLink</d:PropertyStream>")); + } + + @Test + public void streamESStreamServerSidePagingJson() throws Exception { + URL url = new URL(SERVICE_URI + "ESStreamServerSidePaging?$format=json"); + + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod(HttpMethod.GET.name()); + connection.connect(); + + assertEquals(HttpStatusCode.OK.getStatusCode(), connection.getResponseCode()); + assertEquals(ContentType.JSON, ContentType.create(connection.getHeaderField(HttpHeader.CONTENT_TYPE))); + + final String content = IOUtils.toString(connection.getInputStream()); + + assertTrue(content.contains("{\"PropertyInt16\":2,"+ + "\"[email protected]\":\"eTag\",\"[email protected]\":\"image/jpeg\"}")); + assertTrue(content.contains("\"@odata.nextLink\"")); + assertTrue(content.contains("ESStreamServerSidePaging?$format=json&%24skiptoken=1%2A10")); + } + + + @Test + public void streamESStreamServerSidePagingJsonNext() throws Exception { + URL url = new URL(SERVICE_URI + "ESStreamServerSidePaging?$format=json&$skiptoken=1%2A10"); + + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod(HttpMethod.GET.name()); + connection.connect(); + + assertEquals(HttpStatusCode.OK.getStatusCode(), connection.getResponseCode()); + assertEquals(ContentType.JSON, ContentType.create(connection.getHeaderField(HttpHeader.CONTENT_TYPE))); + + final String content = IOUtils.toString(connection.getInputStream()); + + assertTrue(content.contains("{\"PropertyInt16\":12,"+ + "\"[email protected]\":\"eTag\",\"[email protected]\":\"image/jpeg\"}")); + assertTrue(content.contains("\"@odata.nextLink\"")); + assertTrue(content.contains("ESStreamServerSidePaging?$format=json&%24skiptoken=2%2A10")); + } + @Override protected ODataClient getClient() { return null; http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4b3c0237/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityIterator.java ---------------------------------------------------------------------- diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityIterator.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityIterator.java index 728bf9a..145b2ac 100644 --- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityIterator.java +++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityIterator.java @@ -28,7 +28,8 @@ import java.util.List; * Data representation as an Iterator for a collection of single entities. */ public abstract class EntityIterator extends AbstractEntityCollection implements Iterator<Entity> { - + + private URI next; /** * {@inheritDoc} */ @@ -80,12 +81,12 @@ public abstract class EntityIterator extends AbstractEntityCollection implements } /** - * {@inheritDoc} - * <p/> - * <b>ATTENTION:</b> <code>getNext</code> is not supported by default. + * Gets next link. + * + * @param next next link. */ public URI getNext() { - throw new ODataNotSupportedException("Entity Iterator does not support getNext()"); + return next; } /** @@ -96,4 +97,13 @@ public abstract class EntityIterator extends AbstractEntityCollection implements public URI getDeltaLink() { throw new ODataNotSupportedException("Entity Iterator does not support getDeltaLink()"); } + + /** + * Sets next link. + * + * @param next next link. + */ + public void setNext(final URI next) { + this.next = next; + } } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4b3c0237/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/queryoption/expression/Literal.java ---------------------------------------------------------------------- diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/queryoption/expression/Literal.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/queryoption/expression/Literal.java index d967c9b..2029551 100644 --- a/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/queryoption/expression/Literal.java +++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/queryoption/expression/Literal.java @@ -22,6 +22,7 @@ import org.apache.olingo.commons.api.edm.EdmType; /** * Represents a literal expression node in the expression tree + * Literal is not validated by default */ public interface Literal extends Expression { @@ -39,5 +40,5 @@ public interface Literal extends Expression { * @return Type of the literal if detected. The type of the literal is guessed by the parser. */ public EdmType getType(); - + } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4b3c0237/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java index a86bdf0..0cf307f 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java @@ -241,8 +241,8 @@ public class ODataJsonSerializer extends AbstractODataSerializer { writeEntitySet(metadata, entityType, entitySet, options.getExpand(), null, options.getSelect(), options.getWriteOnlyReferences(), null, json); } - // next link not supported by default for streaming results -// writeNextLink(entitySet, json); + // next link support for streaming results + writeNextLink(entitySet, json); json.close(); } catch (final IOException e) { http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4b3c0237/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializer.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializer.java index 0f0a673..c7ea2e2 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializer.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializer.java @@ -314,7 +314,9 @@ public class ODataXmlSerializer extends AbstractODataSerializer { && entitySet.getCount() != null) { writeCount(entitySet, writer); } - + if (entitySet!=null && entitySet.getNext() != null) { + writeNextLink(entitySet, writer); + } boolean writeOnlyRef = (options != null && options.getWriteOnlyReferences()); if (options == null) { writeEntitySet(metadata, entityType, entitySet, null, null, null, null, writer, writeOnlyRef,null); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4b3c0237/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java index 39f7c81..1533dbd 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java @@ -76,6 +76,7 @@ public class DataCreator { data.put("ESTwoKeyNav", createESTwoKeyNav(edm, odata)); data.put("ESCompCollComp", createESCompCollComp(edm, odata)); data.put("ESServerSidePaging", createESServerSidePaging(edm, odata)); + data.put("ESStreamServerSidePaging", createESStreamServerSidePaging(edm, odata)); data.put("ESTwoKeyTwoPrim", createESTwoKeyTwoPrim(edm, odata)); data.put("ESAllNullable", createESAllNullable(edm, odata)); data.put("ESTwoBase", createESTwoBase(edm, odata)); @@ -498,6 +499,37 @@ public class DataCreator { createOperations("ESServerSidePaging", entityCollection, EntityTypeProvider.nameETServerSidePaging); return entityCollection; } + + private EntityCollection createESStreamServerSidePaging(final Edm edm, final OData odata) { + EntityCollection entityCollection = new EntityCollection(); + + for (short i = 1; i <= 503; i++) { + + Link readLink = new Link(); + readLink.setRel(Constants.NS_MEDIA_READ_LINK_REL); + readLink.setHref("readLink"); + + entityCollection.getEntities().add(new Entity() + .addProperty(createPrimitive("PropertyInt16", i)) + .addProperty(new Property(null, "PropertyStream", ValueType.PRIMITIVE, readLink))); + + Link editLink = new Link(); + editLink.setRel(Constants.NS_MEDIA_EDIT_LINK_REL); + editLink.setHref("http://mediaserver:1234/editLink"); + editLink.setMediaETag("eTag"); + editLink.setType("image/jpeg"); + + entityCollection.getEntities().add(new Entity() + .addProperty(createPrimitive("PropertyInt16", ++i)) + .addProperty(new Property(null, "PropertyStream", ValueType.PRIMITIVE, editLink))); + } + + setEntityType(entityCollection, edm.getEntityType(EntityTypeProvider.nameETStreamServerSidePaging)); + + createEntityId(edm, odata, "ESStreamServerSidePaging", entityCollection); + createOperations("ESStreamServerSidePaging", entityCollection, EntityTypeProvider.nameETStreamServerSidePaging); + return entityCollection; + } private EntityCollection createESKeyNav(final Edm edm, final OData odata) { final EntityCollection entityCollection = new EntityCollection(); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4b3c0237/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalEntityProcessor.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalEntityProcessor.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalEntityProcessor.java index da2e936..e21b646 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalEntityProcessor.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalEntityProcessor.java @@ -18,6 +18,7 @@ */ package org.apache.olingo.server.tecsvc.processor; +import java.net.URI; import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -600,7 +601,8 @@ public class TechnicalEntityProcessor extends TechnicalProcessor * otherwise <code>FALSE</code>. */ private boolean isStreaming(EdmEntitySet edmEntitySet, ContentType contentType) { - return ContainerProvider.ES_STREAM.equalsIgnoreCase(edmEntitySet.getName()); + return (ContainerProvider.ES_STREAM.equalsIgnoreCase(edmEntitySet.getName())|| + ContainerProvider.ES_STREAM_SERVER_PAGINATION.equalsIgnoreCase(edmEntitySet.getName())); } private SerializerResult serializeEntityCollection(final ODataRequest request, final EntityCollection @@ -630,12 +632,16 @@ public class TechnicalEntityProcessor extends TechnicalProcessor EntityIterator streamCollection = new EntityIterator() { Iterator<Entity> entityIterator = entityCollection.iterator(); - + private URI next = entityCollection.getNext(); @Override public List<Operation> getOperations() { return entityCollection.getOperations(); } + public URI getNext() { + return next; + } + @Override public boolean hasNext() { return entityIterator.hasNext(); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4b3c0237/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/options/ServerSidePagingHandler.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/options/ServerSidePagingHandler.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/options/ServerSidePagingHandler.java index ad8b7dd..7a8c1b4 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/options/ServerSidePagingHandler.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/options/ServerSidePagingHandler.java @@ -32,6 +32,7 @@ import org.apache.olingo.server.api.uri.queryoption.SystemQueryOptionKind; public class ServerSidePagingHandler { private static final int MAX_PAGE_SIZE = 10; private static final String ES_SERVER_SIDE_PAGING = "ESServerSidePaging"; + private static final String ES_STREAM_SERVER_SIDE_PAGING = "ESStreamServerSidePaging"; /** * <p>Applies server-side paging to the given entity collection.</p> @@ -97,7 +98,8 @@ public class ServerSidePagingHandler { } private static boolean shouldApplyServerSidePaging(final EdmEntitySet edmEntitySet) { - return ES_SERVER_SIDE_PAGING.equals(edmEntitySet.getName()); + return (ES_SERVER_SIDE_PAGING.equals(edmEntitySet.getName())|| + ES_STREAM_SERVER_SIDE_PAGING.equals(edmEntitySet.getName())); } private static int getPageSize(final int skipTokenPageSize, final Integer preferredPageSize) { http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4b3c0237/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java index cb554f7..9cbd5e8 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java @@ -53,6 +53,7 @@ public class ContainerProvider { public static final String AIRT_TWO_PARAM = "AIRTTwoParam"; public static final String AIRT_BYTE_NINE_PARAM = "AIRTByteNineParam"; public static final String ES_STREAM = "ESStream"; + public static final String ES_STREAM_SERVER_PAGINATION = "ESStreamServerSidePaging"; private final CsdlEdmProvider prov; @@ -91,6 +92,7 @@ public class ContainerProvider { entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESMedia")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESInvisible")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESServerSidePaging")); + entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, ES_STREAM_SERVER_PAGINATION)); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESAllNullable")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESKeyNav")); entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoKeyNav")); @@ -359,8 +361,21 @@ public class ContainerProvider { .setValue("Divides the response to several pages using $skiptoken and providing a nextLink")), new CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression( new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, "true")))); - - } else if (name.equals("ESAllNullable")) { + + } else if (name.equals(ES_STREAM_SERVER_PAGINATION)) { + return new CsdlEntitySet() + .setName(ES_STREAM_SERVER_PAGINATION) + .setType(EntityTypeProvider.nameETStreamServerSidePaging) + .setAnnotations(Arrays.asList( + new CsdlAnnotation().setTerm("Core.Description") + .setExpression(new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String) + .setValue("Divides the stream response to several pages using $skiptoken and providing a nextLink" + + "Entity set will be streamed and it contains entities with various properties of " + + "type primitive, collection of primitive, complex and collection of complex")), + new CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression( + new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, "true")))); + + } else if (name.equals("ESAllNullable")) { return new CsdlEntitySet() .setName("ESAllNullable") .setType(EntityTypeProvider.nameETAllNullable) http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4b3c0237/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java index 6e9a1b7..26c6f19 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java @@ -68,6 +68,8 @@ public class EntityTypeProvider { "ETMixPrimCollComp"); public static final FullQualifiedName nameETServerSidePaging = new FullQualifiedName(SchemaProvider.NAMESPACE, "ETServerSidePaging"); + public static final FullQualifiedName nameETStreamServerSidePaging = + new FullQualifiedName(SchemaProvider.NAMESPACE, "ETStreamServerSidePaging"); public static final FullQualifiedName nameETTwoBase = new FullQualifiedName(SchemaProvider.NAMESPACE, "ETTwoBase"); public static final FullQualifiedName nameETTwoBaseTwoKeyNav = new FullQualifiedName(SchemaProvider.NAMESPACE, "ETTwoBaseTwoKeyNav"); @@ -277,6 +279,15 @@ public class EntityTypeProvider { .setProperties(Arrays.asList(PropertyProvider.propertyInt16_NotNullable, PropertyProvider.propertyString_NotNullable)); + }else if (entityTypeName.equals(nameETStreamServerSidePaging)) { + return new CsdlEntityType() + .setName(nameETStreamServerSidePaging.getName()) + .setKey(Arrays.asList( + new CsdlPropertyRef() + .setName("PropertyInt16"))) + .setProperties(Arrays.asList( + PropertyProvider.propertyInt16_NotNullable, + PropertyProvider.propertyStream)); } else if (entityTypeName.equals(nameETAllNullable)) { return new CsdlEntityType() .setName("ETAllNullable") http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4b3c0237/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java index ac2f916..b8c525a 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java @@ -75,6 +75,7 @@ public class SchemaProvider { entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETMedia)); entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETFourKeyAlias)); entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETServerSidePaging)); + entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETStreamServerSidePaging)); entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETAllNullable)); entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETKeyNav)); entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETTwoKeyNav));
