You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ch...@apache.org on 2017/03/23 13:07:31 UTC
olingo-odata2 git commit: [OLINGO-1021] Add ability to use non strict
batch parsing
Repository: olingo-odata2
Updated Branches:
refs/heads/master 22e787318 -> cceffb310
[OLINGO-1021] Add ability to use non strict batch parsing
Signed-off-by: Christian Amend <ch...@sap.com>
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/cceffb31
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/cceffb31
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/cceffb31
Branch: refs/heads/master
Commit: cceffb31024be8e94a210c344ee68b6b98ddfdfb
Parents: 22e7873
Author: Dmitry.Tretyakov <dt...@gmail.com>
Authored: Fri Sep 9 20:03:51 2016 +0300
Committer: Christian Amend <ch...@sap.com>
Committed: Thu Mar 23 14:03:59 2017 +0100
----------------------------------------------------------------------
.../api/ep/EntityProviderBatchProperties.java | 14 ++++++++++++++
.../odata2/core/ep/ProviderFacadeImpl.java | 3 ++-
.../core/batch/BatchRequestParserTest.java | 20 +++++++++++++++++++-
3 files changed, 35 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/cceffb31/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderBatchProperties.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderBatchProperties.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderBatchProperties.java
index 0cb47ec..59ef47f 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderBatchProperties.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderBatchProperties.java
@@ -31,6 +31,11 @@ public class EntityProviderBatchProperties {
*/
private PathInfo pathInfo;
+ /**
+ * Defines whether to use strict batch parsing.
+ */
+ private boolean isStrict = true;
+
public static EntityProviderBatchPropertiesBuilder init() {
return new EntityProviderBatchPropertiesBuilder();
}
@@ -39,6 +44,10 @@ public class EntityProviderBatchProperties {
return pathInfo;
}
+ public boolean isStrict() {
+ return isStrict;
+ }
+
public static class EntityProviderBatchPropertiesBuilder {
private final EntityProviderBatchProperties properties = new EntityProviderBatchProperties();
@@ -53,6 +62,11 @@ public class EntityProviderBatchProperties {
return this;
}
+ public EntityProviderBatchPropertiesBuilder setStrict(final boolean isStrict) {
+ properties.isStrict = isStrict;
+ return this;
+ }
+
public EntityProviderBatchProperties build() {
return properties;
}
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/cceffb31/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/ProviderFacadeImpl.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/ProviderFacadeImpl.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/ProviderFacadeImpl.java
index 739513c..9acf487 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/ProviderFacadeImpl.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/ProviderFacadeImpl.java
@@ -241,7 +241,8 @@ public class ProviderFacadeImpl implements EntityProviderInterface {
@Override
public List<BatchRequestPart> parseBatchRequest(final String contentType, final InputStream content,
final EntityProviderBatchProperties properties) throws BatchException {
- List<BatchRequestPart> batchParts = new BatchParser(contentType, properties, true).parseBatchRequest(content);
+ BatchParser batchParser = new BatchParser(contentType, properties, properties.isStrict());
+ List<BatchRequestPart> batchParts = batchParser.parseBatchRequest(content);
return batchParts;
}
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/cceffb31/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/batch/BatchRequestParserTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/batch/BatchRequestParserTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/batch/BatchRequestParserTest.java
index cdf3c4d..269f512 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/batch/BatchRequestParserTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/batch/BatchRequestParserTest.java
@@ -1213,9 +1213,27 @@ public class BatchRequestParserTest {
parser.parseBatchRequest(in);
}
+ @Test
+ public void testNonStrictGetRequestWithMissingCRLF() throws BatchException {
+ String batch = "--" + BOUNDARY + CRLF
+ + MIME_HEADERS
+ + "Content-ID: 1" + CRLF
+ + CRLF
+ + "GET Employees('1')/EmployeeName HTTP/1.1" + CRLF
+ // + CRLF // Belongs to the GET request
+ + CRLF // Belongs to the
+ + "--" + BOUNDARY + "--";
+
+ parse(batch, false);
+ }
+
private List<BatchRequestPart> parse(final String batch) throws BatchException {
+ return parse(batch, true);
+ }
+
+ private List<BatchRequestPart> parse(final String batch, final boolean isStrict) throws BatchException {
InputStream in = new ByteArrayInputStream(batch.getBytes());
- BatchParser parser = new BatchParser(contentType, batchProperties, true);
+ BatchParser parser = new BatchParser(contentType, batchProperties, isStrict);
List<BatchRequestPart> batchRequestParts = parser.parseBatchRequest(in);
assertNotNull(batchRequestParts);
assertEquals(false, batchRequestParts.isEmpty());