Repository: olingo-odata4 Updated Branches: refs/heads/OLINGO-832_StreamSerializerPoC 885ec27ef -> 69f58e84b
[OLINGO-832] Added iterable Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/69f58e84 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/69f58e84 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/69f58e84 Branch: refs/heads/OLINGO-832_StreamSerializerPoC Commit: 69f58e84bf057239f50273031e7617641fbcc41f Parents: 885ec27 Author: mibo <[email protected]> Authored: Sun Jan 24 07:22:57 2016 +0100 Committer: mibo <[email protected]> Committed: Sun Jan 24 12:31:02 2016 +0100 ---------------------------------------------------------------------- .../core/serialization/AtomSerializer.java | 2 +- .../commons/api/data/EntityCollection.java | 8 +++- .../olingo/commons/api/data/EntityIterator.java | 43 ++++++++++++++++++ .../api/data/EntityStreamCollection.java | 28 ------------ .../apache/olingo/server/core/ODataImpl.java | 7 ++- .../serializer/ChannelSerializerResult.java | 46 ++++++++++---------- .../core/serializer/SerializerResultImpl.java | 5 +-- .../core/serializer/StreamSerializerResult.java | 26 +++++------ .../serializer/json/ODataJsonSerializer.java | 2 +- .../json/ODataJsonStreamSerializer.java | 44 ++----------------- .../serializer/utils/CircleStreamBuffer.java | 1 - .../core/serializer/xml/ODataXmlSerializer.java | 4 +- .../uri/parser/search/SearchTokenizerTest.java | 15 +++---- .../processor/TechnicalEntityProcessor.java | 20 ++++----- 14 files changed, 117 insertions(+), 134 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69f58e84/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AtomSerializer.java ---------------------------------------------------------------------- diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AtomSerializer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AtomSerializer.java index b43605f..3c5fa1f 100644 --- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AtomSerializer.java +++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AtomSerializer.java @@ -525,7 +525,7 @@ public class AtomSerializer extends AbstractAtomDealer implements ODataSerialize common(writer, entitySet); - for (Entity entity : entitySet.getEntities()) { + for (Entity entity : entitySet) { if (entity.getType() == null && entity.getProperties().isEmpty()) { entityRef(writer, entity); } else { http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69f58e84/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityCollection.java ---------------------------------------------------------------------- diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityCollection.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityCollection.java index adb43dc..e2aee4e 100644 --- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityCollection.java +++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityCollection.java @@ -20,12 +20,13 @@ package org.apache.olingo.commons.api.data; import java.net.URI; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; /** * Data representation for a collection of single entities. */ -public class EntityCollection extends AbstractODataObject { +public class EntityCollection extends AbstractODataObject implements Iterable<Entity> { private Integer count; @@ -97,4 +98,9 @@ public class EntityCollection extends AbstractODataObject { public void setDeltaLink(final URI deltaLink) { this.deltaLink = deltaLink; } + + @Override + public Iterator<Entity> iterator() { + return this.entities.iterator(); + } } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69f58e84/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 new file mode 100644 index 0000000..18f1019 --- /dev/null +++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityIterator.java @@ -0,0 +1,43 @@ +/* + * 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.olingo.commons.api.data; + +import sun.reflect.generics.reflectiveObjects.NotImplementedException; + +import java.util.Iterator; + +/** + * Data representation for a collection of single entities. + */ +public abstract class EntityIterator extends EntityCollection implements Iterator<Entity> { + + public abstract boolean hasNext(); + public abstract Entity next(); + + @Override + public void remove() { + //"Remove is not supported for iteration over Entities." + throw new NotImplementedException(); + } + + @Override + public Iterator<Entity> iterator() { + return this; + } +} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69f58e84/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityStreamCollection.java ---------------------------------------------------------------------- diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityStreamCollection.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityStreamCollection.java deleted file mode 100644 index 9eae442..0000000 --- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/EntityStreamCollection.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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.olingo.commons.api.data; - -/** - * Data representation for a collection of single entities. - */ -public abstract class EntityStreamCollection extends EntityCollection { - - public abstract boolean hasNext(); - public abstract Entity nextEntity(); -} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69f58e84/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataImpl.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataImpl.java index df6c7df..b063233 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataImpl.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataImpl.java @@ -18,9 +18,6 @@ */ package org.apache.olingo.server.core; -import java.util.Collection; -import java.util.List; - import org.apache.olingo.commons.api.edm.EdmPrimitiveType; import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind; import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider; @@ -48,11 +45,13 @@ import org.apache.olingo.server.core.deserializer.xml.ODataXmlDeserializer; import org.apache.olingo.server.core.etag.ETagHelperImpl; import org.apache.olingo.server.core.prefer.PreferencesImpl; import org.apache.olingo.server.core.serializer.FixedFormatSerializerImpl; -import org.apache.olingo.server.core.serializer.json.ODataJsonSerializer; import org.apache.olingo.server.core.serializer.json.ODataJsonStreamSerializer; import org.apache.olingo.server.core.serializer.xml.ODataXmlSerializer; import org.apache.olingo.server.core.uri.UriHelperImpl; +import java.util.Collection; +import java.util.List; + public class ODataImpl extends OData { @Override http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69f58e84/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/ChannelSerializerResult.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/ChannelSerializerResult.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/ChannelSerializerResult.java index 1d4c32f..7768783 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/ChannelSerializerResult.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/ChannelSerializerResult.java @@ -18,16 +18,10 @@ */ package org.apache.olingo.server.core.serializer; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.nio.ByteBuffer; -import java.nio.channels.Channels; -import java.nio.channels.ReadableByteChannel; -import java.nio.charset.Charset; - +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonGenerator; import org.apache.olingo.commons.api.data.Entity; -import org.apache.olingo.commons.api.data.EntityStreamCollection; +import org.apache.olingo.commons.api.data.EntityIterator; import org.apache.olingo.commons.api.edm.EdmEntityType; import org.apache.olingo.server.api.ServiceMetadata; import org.apache.olingo.server.api.serializer.EntitySerializerOptions; @@ -36,8 +30,13 @@ import org.apache.olingo.server.api.serializer.SerializerResult; import org.apache.olingo.server.core.serializer.json.ODataJsonStreamSerializer; import org.apache.olingo.server.core.serializer.utils.CircleStreamBuffer; -import com.fasterxml.jackson.core.JsonFactory; -import com.fasterxml.jackson.core.JsonGenerator; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.ByteBuffer; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.nio.charset.Charset; public class ChannelSerializerResult implements SerializerResult { private ReadableByteChannel channel; @@ -47,14 +46,14 @@ public class ChannelSerializerResult implements SerializerResult { private ByteBuffer head; private ByteBuffer tail; private ODataJsonStreamSerializer jsonSerializer; - private EntityStreamCollection coll; + private EntityIterator coll; private ServiceMetadata metadata; private EdmEntityType entityType; private EntitySerializerOptions options; - public StreamChannel(EntityStreamCollection coll, EdmEntityType entityType, String head, - ODataJsonStreamSerializer jsonSerializer, ServiceMetadata metadata, - EntitySerializerOptions options, String tail) { + public StreamChannel(EntityIterator coll, EdmEntityType entityType, String head, + ODataJsonStreamSerializer jsonSerializer, ServiceMetadata metadata, + EntitySerializerOptions options, String tail) { this.coll = coll; this.entityType = entityType; this.head = ByteBuffer.wrap(head.getBytes(DEFAULT)); @@ -86,11 +85,12 @@ public class ChannelSerializerResult implements SerializerResult { private ByteBuffer getCurrentBuffer() { if(currentBuffer == null) { currentBuffer = head; - } if(!currentBuffer.hasRemaining()) { + } + if(!currentBuffer.hasRemaining()) { if (coll.hasNext()) { try { // FIXME: mibo_160108: Inefficient buffer handling, replace - currentBuffer = serEntity(coll.nextEntity()); + currentBuffer = serEntity(coll.next()); if(coll.hasNext()) { ByteBuffer b = ByteBuffer.allocate(currentBuffer.position() + 1); currentBuffer.flip(); @@ -160,22 +160,24 @@ public class ChannelSerializerResult implements SerializerResult { this.channel = channel; } - public static SerializerResultBuilder with(EntityStreamCollection coll, EdmEntityType entityType, - ODataJsonStreamSerializer jsonSerializer, ServiceMetadata metadata, EntitySerializerOptions options) { + public static SerializerResultBuilder with(EntityIterator coll, EdmEntityType entityType, + ODataJsonStreamSerializer jsonSerializer, + ServiceMetadata metadata, EntitySerializerOptions options) { return new SerializerResultBuilder(coll, entityType, jsonSerializer, metadata, options); } public static class SerializerResultBuilder { private ODataJsonStreamSerializer jsonSerializer; - private EntityStreamCollection coll; + private EntityIterator coll; private ServiceMetadata metadata; private EdmEntityType entityType; private EntitySerializerOptions options; private String head; private String tail; - public SerializerResultBuilder(EntityStreamCollection coll, EdmEntityType entityType, - ODataJsonStreamSerializer jsonSerializer, ServiceMetadata metadata, EntitySerializerOptions options) { + public SerializerResultBuilder(EntityIterator coll, EdmEntityType entityType, + ODataJsonStreamSerializer jsonSerializer, + ServiceMetadata metadata, EntitySerializerOptions options) { this.coll = coll; this.entityType = entityType; this.jsonSerializer = jsonSerializer; http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69f58e84/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/SerializerResultImpl.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/SerializerResultImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/SerializerResultImpl.java index 5a5364a..c039a71 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/SerializerResultImpl.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/SerializerResultImpl.java @@ -18,13 +18,12 @@ */ package org.apache.olingo.server.core.serializer; +import org.apache.olingo.server.api.serializer.SerializerResult; + import java.io.InputStream; -import java.nio.channels.Channel; import java.nio.channels.Channels; import java.nio.channels.ReadableByteChannel; -import org.apache.olingo.server.api.serializer.SerializerResult; - public class SerializerResultImpl implements SerializerResult { private InputStream content; http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69f58e84/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/StreamSerializerResult.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/StreamSerializerResult.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/StreamSerializerResult.java index e4c8051..19b9f5d 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/StreamSerializerResult.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/StreamSerializerResult.java @@ -21,7 +21,7 @@ package org.apache.olingo.server.core.serializer; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonGenerator; import org.apache.olingo.commons.api.data.Entity; -import org.apache.olingo.commons.api.data.EntityStreamCollection; +import org.apache.olingo.commons.api.data.EntityIterator; import org.apache.olingo.commons.api.edm.EdmEntityType; import org.apache.olingo.server.api.ServiceMetadata; import org.apache.olingo.server.api.serializer.EntitySerializerOptions; @@ -34,9 +34,7 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.nio.channels.Channel; import java.nio.channels.Channels; -import java.nio.channels.FileChannel; import java.nio.channels.ReadableByteChannel; public class StreamSerializerResult implements SerializerResult { @@ -50,14 +48,14 @@ public class StreamSerializerResult implements SerializerResult { private int entityCount = 0; private InputStream inputStream = null; private ODataJsonStreamSerializer jsonSerializer; - private EntityStreamCollection coll; + private EntityIterator coll; private ServiceMetadata metadata; private EdmEntityType entityType; private EntitySerializerOptions options; - public StreamInputStream(EntityStreamCollection coll, EdmEntityType entityType, String head, - ODataJsonStreamSerializer jsonSerializer, ServiceMetadata metadata, - EntitySerializerOptions options, String tail) { + public StreamInputStream(EntityIterator coll, EdmEntityType entityType, String head, + ODataJsonStreamSerializer jsonSerializer, ServiceMetadata metadata, + EntitySerializerOptions options, String tail) { this.coll = coll; this.entityType = entityType; this.head = head; @@ -74,7 +72,7 @@ public class StreamSerializerResult implements SerializerResult { } if (inputStream == null && coll.hasNext()) { try { - inputStream = serEntity(coll.nextEntity()); + inputStream = serEntity(coll.next()); entityCount++; if (entityCount > 1) { return (int) ','; @@ -139,22 +137,24 @@ public class StreamSerializerResult implements SerializerResult { this.content = content; } - public static SerializerResultBuilder with(EntityStreamCollection coll, EdmEntityType entityType, - ODataJsonStreamSerializer jsonSerializer, ServiceMetadata metadata, EntitySerializerOptions options) { + public static SerializerResultBuilder with(EntityIterator coll, EdmEntityType entityType, + ODataJsonStreamSerializer jsonSerializer, + ServiceMetadata metadata, EntitySerializerOptions options) { return new SerializerResultBuilder(coll, entityType, jsonSerializer, metadata, options); } public static class SerializerResultBuilder { private ODataJsonStreamSerializer jsonSerializer; - private EntityStreamCollection coll; + private EntityIterator coll; private ServiceMetadata metadata; private EdmEntityType entityType; private EntitySerializerOptions options; private String head; private String tail; - public SerializerResultBuilder(EntityStreamCollection coll, EdmEntityType entityType, - ODataJsonStreamSerializer jsonSerializer, ServiceMetadata metadata, EntitySerializerOptions options) { + public SerializerResultBuilder(EntityIterator coll, EdmEntityType entityType, + ODataJsonStreamSerializer jsonSerializer, ServiceMetadata metadata, + EntitySerializerOptions options) { this.coll = coll; this.entityType = entityType; this.jsonSerializer = jsonSerializer; http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69f58e84/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 4a1a528..ce0258c 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 @@ -217,7 +217,7 @@ public class ODataJsonSerializer extends AbstractODataSerializer { final boolean onlyReference, final JsonGenerator json) throws IOException, SerializerException { json.writeStartArray(); - for (final Entity entity : entitySet.getEntities()) { + for (final Entity entity : entitySet) { if (onlyReference) { json.writeStartObject(); json.writeStringField(Constants.JSON_ID, entity.getId().toASCIIString()); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69f58e84/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonStreamSerializer.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonStreamSerializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonStreamSerializer.java index 110d416..a7bd4f4 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonStreamSerializer.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonStreamSerializer.java @@ -21,60 +21,24 @@ package org.apache.olingo.server.core.serializer.json; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonGenerator; import org.apache.olingo.commons.api.Constants; -import org.apache.olingo.commons.api.data.ComplexValue; import org.apache.olingo.commons.api.data.ContextURL; import org.apache.olingo.commons.api.data.Entity; import org.apache.olingo.commons.api.data.EntityCollection; -import org.apache.olingo.commons.api.data.EntityStreamCollection; -import org.apache.olingo.commons.api.data.Link; -import org.apache.olingo.commons.api.data.Linked; -import org.apache.olingo.commons.api.data.Property; -import org.apache.olingo.commons.api.edm.EdmComplexType; -import org.apache.olingo.commons.api.edm.EdmEntitySet; +import org.apache.olingo.commons.api.data.EntityIterator; import org.apache.olingo.commons.api.edm.EdmEntityType; -import org.apache.olingo.commons.api.edm.EdmNavigationProperty; -import org.apache.olingo.commons.api.edm.EdmPrimitiveType; -import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException; -import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind; -import org.apache.olingo.commons.api.edm.EdmProperty; -import org.apache.olingo.commons.api.edm.EdmStructuredType; -import org.apache.olingo.commons.api.edm.EdmType; -import org.apache.olingo.commons.api.edm.FullQualifiedName; -import org.apache.olingo.commons.api.edm.constants.EdmTypeKind; import org.apache.olingo.commons.api.format.ContentType; -import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory; -import org.apache.olingo.server.api.ODataServerError; import org.apache.olingo.server.api.ServiceMetadata; -import org.apache.olingo.server.api.serializer.ComplexSerializerOptions; import org.apache.olingo.server.api.serializer.EntityCollectionSerializerOptions; import org.apache.olingo.server.api.serializer.EntitySerializerOptions; -import org.apache.olingo.server.api.serializer.PrimitiveSerializerOptions; -import org.apache.olingo.server.api.serializer.ReferenceCollectionSerializerOptions; -import org.apache.olingo.server.api.serializer.ReferenceSerializerOptions; import org.apache.olingo.server.api.serializer.SerializerException; import org.apache.olingo.server.api.serializer.SerializerResult; -import org.apache.olingo.server.api.uri.UriHelper; -import org.apache.olingo.server.api.uri.queryoption.ExpandItem; import org.apache.olingo.server.api.uri.queryoption.ExpandOption; import org.apache.olingo.server.api.uri.queryoption.SelectOption; -import org.apache.olingo.server.core.serializer.AbstractODataSerializer; import org.apache.olingo.server.core.serializer.ChannelSerializerResult; -import org.apache.olingo.server.core.serializer.SerializerResultImpl; -import org.apache.olingo.server.core.serializer.StreamSerializerResult; -import org.apache.olingo.server.core.serializer.utils.CircleStreamBuffer; -import org.apache.olingo.server.core.serializer.utils.ContentTypeHelper; -import org.apache.olingo.server.core.serializer.utils.ContextURLBuilder; -import org.apache.olingo.server.core.serializer.utils.ExpandSelectHelper; -import org.apache.olingo.server.core.uri.UriHelperImpl; import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.io.OutputStream; import java.nio.charset.Charset; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; public class ODataJsonStreamSerializer extends ODataJsonSerializer { @@ -90,9 +54,9 @@ public class ODataJsonStreamSerializer extends ODataJsonSerializer { final EdmEntityType entityType, final EntityCollection entitySet, final EntityCollectionSerializerOptions options) throws SerializerException { - EntityStreamCollection coll; - if(entitySet instanceof EntityStreamCollection) { - coll = (EntityStreamCollection) entitySet; + EntityIterator coll; + if(entitySet instanceof EntityIterator) { + coll = (EntityIterator) entitySet; } else { return serializer.entityCollection(metadata, entityType, entitySet, options); } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69f58e84/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/utils/CircleStreamBuffer.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/utils/CircleStreamBuffer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/utils/CircleStreamBuffer.java index b7ba2f2..7586339 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/utils/CircleStreamBuffer.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/utils/CircleStreamBuffer.java @@ -22,7 +22,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.nio.ByteBuffer; -import java.nio.channels.ReadableByteChannel; import java.util.Queue; import java.util.concurrent.LinkedBlockingQueue; http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69f58e84/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 2af8ede..a97d322 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 @@ -336,7 +336,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer { protected void writeEntitySet(final ServiceMetadata metadata, final EdmEntityType entityType, final EntityCollection entitySet, final ExpandOption expand, final SelectOption select, final XMLStreamWriter writer) throws XMLStreamException, SerializerException { - for (final Entity entity : entitySet.getEntities()) { + for (final Entity entity : entitySet) { writeEntity(metadata, entityType, entity, null, expand, select, writer, false); } } @@ -1060,7 +1060,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer { if (entitySet.getNext() != null) { writeNextLink(entitySet, writer); } - for (final Entity entity : entitySet.getEntities()) { + for (final Entity entity : entitySet) { writeReference(entity, options == null ? null : options.getContextURL(), writer, false); } writer.writeEndElement(); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69f58e84/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java index c2a390a..20a1c0d 100644 --- a/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java +++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java @@ -18,6 +18,13 @@ */ package org.apache.olingo.server.core.uri.parser.search; +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + import static org.apache.olingo.server.core.uri.parser.search.SearchQueryToken.Token.AND; import static org.apache.olingo.server.core.uri.parser.search.SearchQueryToken.Token.CLOSE; import static org.apache.olingo.server.core.uri.parser.search.SearchQueryToken.Token.NOT; @@ -26,14 +33,6 @@ import static org.apache.olingo.server.core.uri.parser.search.SearchQueryToken.T import static org.apache.olingo.server.core.uri.parser.search.SearchQueryToken.Token.PHRASE; import static org.apache.olingo.server.core.uri.parser.search.SearchQueryToken.Token.WORD; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.junit.Assert; -import org.junit.Ignore; -import org.junit.Test; - public class SearchTokenizerTest { @Test http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69f58e84/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 f8fa7c8..f4c81c1 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 @@ -29,7 +29,7 @@ import org.apache.olingo.commons.api.data.ContextURL.Builder; import org.apache.olingo.commons.api.data.ContextURL.Suffix; import org.apache.olingo.commons.api.data.Entity; import org.apache.olingo.commons.api.data.EntityCollection; -import org.apache.olingo.commons.api.data.EntityStreamCollection; +import org.apache.olingo.commons.api.data.EntityIterator; import org.apache.olingo.commons.api.data.Property; import org.apache.olingo.commons.api.data.ValueType; import org.apache.olingo.commons.api.edm.EdmEntitySet; @@ -556,8 +556,8 @@ public class TechnicalEntityProcessor extends TechnicalProcessor final ContentType requestedFormat, final ExpandOption expand, final SelectOption select, final CountOption countOption, final String id) throws ODataLibraryException { - EntityStreamCollection streamCollection = new EntityStreamCollection() { - Iterator<Entity> entityIterator = entityCollection.getEntities().iterator(); + EntityIterator streamCollection = new EntityIterator() { + Iterator<Entity> entityIterator = entityCollection.iterator(); @Override public boolean hasNext() { @@ -565,7 +565,7 @@ public class TechnicalEntityProcessor extends TechnicalProcessor } @Override - public Entity nextEntity() { + public Entity next() { Entity next = entityIterator.next(); replacePrimitiveProperty(next, "PropertyString", generateData(28192)); // next.getProperties().remove(1); @@ -576,10 +576,10 @@ public class TechnicalEntityProcessor extends TechnicalProcessor return next; } - @Override - public List<Entity> getEntities() { - return entityCollection.getEntities(); - } +// @Override +// public List<Entity> getEntities() { +// return entityCollection.getEntities(); +// } private void replacePrimitiveProperty(Entity entity, String name, Object data) { List<Property> properties = entity.getProperties(); @@ -625,7 +625,7 @@ public class TechnicalEntityProcessor extends TechnicalProcessor final ContentType requestedFormat, final ExpandOption expand, final SelectOption select, final CountOption countOption, final String id) throws ODataLibraryException { - EntityStreamCollection streamCollection = new EntityStreamCollection() { + EntityIterator streamCollection = new EntityIterator() { Iterator<Entity> test = entityCollection.getEntities().iterator(); @Override public boolean hasNext() { @@ -633,7 +633,7 @@ public class TechnicalEntityProcessor extends TechnicalProcessor } @Override - public Entity nextEntity() { + public Entity next() { try { TimeUnit.MILLISECONDS.sleep(1000); } catch (InterruptedException e) { }
