You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2014/04/29 11:09:52 UTC
git commit: [OLINGO-256] Minor code clean up
Repository: olingo-odata2
Updated Branches:
refs/heads/master a9380800a -> 1ac8e7d33
[OLINGO-256] Minor code clean up
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/1ac8e7d3
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/1ac8e7d3
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/1ac8e7d3
Branch: refs/heads/master
Commit: 1ac8e7d33152fc5a03bbb6e4cd42537cf130743d
Parents: a938080
Author: Michael Bolz <mi...@apache.org>
Authored: Tue Apr 29 11:09:44 2014 +0200
Committer: Michael Bolz <mi...@apache.org>
Committed: Tue Apr 29 11:09:44 2014 +0200
----------------------------------------------------------------------
.../odata2/core/batch/BatchRequestParser.java | 84 +++++++++++---------
.../odata2/core/batch/BatchRequestWriter.java | 13 +--
2 files changed, 55 insertions(+), 42 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1ac8e7d3/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/BatchRequestParser.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/BatchRequestParser.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/BatchRequestParser.java
index 1211cf8..6584ee9 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/BatchRequestParser.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/BatchRequestParser.java
@@ -155,8 +155,7 @@ public class BatchRequestParser {
private BatchRequestPart parseMultipart(final Scanner scanner, final String boundary, final boolean isChangeSet)
throws BatchException {
- List<ODataRequest> requests = new ArrayList<ODataRequest>();
- BatchRequestPart multipart;
+
if (scanner.hasNext("--" + boundary + REG_EX_ZERO_OR_MORE_WHITESPACES)) {
scanner.next();
currentLineNumber++;
@@ -168,41 +167,9 @@ public class BatchRequestParser {
throw new BatchException(BatchException.MISSING_CONTENT_TYPE);
}
if (isChangeSet) {
- if (HttpContentType.APPLICATION_HTTP.equalsIgnoreCase(contentType)) {
- validateEncoding(mimeHeaders.get(BatchHelper.HTTP_CONTENT_TRANSFER_ENCODING.toLowerCase(Locale.ENGLISH)));
- parseNewLine(scanner);// mandatory
-
- requests.add(parseRequest(scanner, true, boundary));
- multipart = new BatchRequestPartImpl(false, requests);
- } else {
- throw new BatchException(BatchException.INVALID_CONTENT_TYPE.addContent(HttpContentType.APPLICATION_HTTP));
- }
+ return parseBatchRequestPartInChangeset(scanner, boundary, mimeHeaders, contentType);
} else {
- if (HttpContentType.APPLICATION_HTTP.equalsIgnoreCase(contentType)) {
- validateEncoding(mimeHeaders.get(BatchHelper.HTTP_CONTENT_TRANSFER_ENCODING.toLowerCase(Locale.ENGLISH)));
- parseNewLine(scanner);// mandatory
- requests.add(parseRequest(scanner, false, boundary));
- multipart = new BatchRequestPartImpl(false, requests);
- } else if (contentType.matches(REG_EX_OPTIONAL_WHITESPACE + HttpContentType.MULTIPART_MIXED + ANY_CHARACTERS)) {
- String changeSetBoundary = getBoundary(contentType);
- if (boundary.equals(changeSetBoundary)) {
- throw new BatchException(BatchException.INVALID_CHANGESET_BOUNDARY.addContent(currentLineNumber));
- }
- List<ODataRequest> changeSetRequests = new LinkedList<ODataRequest>();
- parseNewLine(scanner);// mandatory
- Pattern changeSetCloseDelimiter =
- Pattern.compile("--" + changeSetBoundary + "--" + REG_EX_ZERO_OR_MORE_WHITESPACES);
- while (!scanner.hasNext(changeSetCloseDelimiter)) {
- BatchRequestPart part = parseMultipart(scanner, changeSetBoundary, true);
- changeSetRequests.addAll(part.getRequests());
- }
- scanner.next(changeSetCloseDelimiter);
- currentLineNumber++;
- multipart = new BatchRequestPartImpl(true, changeSetRequests);
- } else {
- throw new BatchException(BatchException.INVALID_CONTENT_TYPE.addContent(HttpContentType.MULTIPART_MIXED
- + " or " + HttpContentType.APPLICATION_HTTP));
- }
+ return parseBatchRequestPart(scanner, boundary, mimeHeaders, contentType);
}
} else if (scanner.hasNext(boundary + REG_EX_ZERO_OR_MORE_WHITESPACES)) {
currentLineNumber++;
@@ -215,8 +182,51 @@ public class BatchRequestParser {
currentLineNumber++;
throw new BatchException(BatchException.MISSING_BOUNDARY_DELIMITER.addContent(currentLineNumber));
}
- return multipart;
+ }
+
+ private BatchRequestPart parseBatchRequestPart(final Scanner scanner, final String boundary,
+ final Map<String, String> mimeHeaders,
+ final String contentType) throws BatchException {
+ if (HttpContentType.APPLICATION_HTTP.equalsIgnoreCase(contentType)) {
+ validateEncoding(mimeHeaders.get(BatchHelper.HTTP_CONTENT_TRANSFER_ENCODING.toLowerCase(Locale.ENGLISH)));
+ parseNewLine(scanner);// mandatory
+ List<ODataRequest> requests = new ArrayList<ODataRequest>(1);
+ requests.add(parseRequest(scanner, false, boundary));
+ return new BatchRequestPartImpl(false, requests);
+ } else if (contentType.matches(REG_EX_OPTIONAL_WHITESPACE + HttpContentType.MULTIPART_MIXED + ANY_CHARACTERS)) {
+ String changeSetBoundary = getBoundary(contentType);
+ if (boundary.equals(changeSetBoundary)) {
+ throw new BatchException(BatchException.INVALID_CHANGESET_BOUNDARY.addContent(currentLineNumber));
+ }
+ List<ODataRequest> changeSetRequests = new LinkedList<ODataRequest>();
+ parseNewLine(scanner);// mandatory
+ Pattern changeSetCloseDelimiter =
+ Pattern.compile("--" + changeSetBoundary + "--" + REG_EX_ZERO_OR_MORE_WHITESPACES);
+ while (!scanner.hasNext(changeSetCloseDelimiter)) {
+ BatchRequestPart part = parseMultipart(scanner, changeSetBoundary, true);
+ changeSetRequests.addAll(part.getRequests());
+ }
+ scanner.next(changeSetCloseDelimiter);
+ currentLineNumber++;
+ return new BatchRequestPartImpl(true, changeSetRequests);
+ } else {
+ throw new BatchException(BatchException.INVALID_CONTENT_TYPE.addContent(HttpContentType.MULTIPART_MIXED
+ + " or " + HttpContentType.APPLICATION_HTTP));
+ }
+ }
+ private BatchRequestPart parseBatchRequestPartInChangeset(final Scanner scanner, final String boundary,
+ final Map<String, String> mimeHeaders,
+ final String contentType) throws BatchException {
+ if (HttpContentType.APPLICATION_HTTP.equalsIgnoreCase(contentType)) {
+ validateEncoding(mimeHeaders.get(BatchHelper.HTTP_CONTENT_TRANSFER_ENCODING.toLowerCase(Locale.ENGLISH)));
+ parseNewLine(scanner);// mandatory
+ List<ODataRequest> requests = new ArrayList<ODataRequest>(1);
+ requests.add(parseRequest(scanner, true, boundary));
+ return new BatchRequestPartImpl(false, requests);
+ } else {
+ throw new BatchException(BatchException.INVALID_CONTENT_TYPE.addContent(HttpContentType.APPLICATION_HTTP));
+ }
}
private ODataRequest parseRequest(final Scanner scanner, final boolean isChangeSet, final String boundary)
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/1ac8e7d3/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/BatchRequestWriter.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/BatchRequestWriter.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/BatchRequestWriter.java
index 40cf0e0..63453c2 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/BatchRequestWriter.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/BatchRequestWriter.java
@@ -38,6 +38,8 @@ public class BatchRequestWriter {
private static final String COLON = ":";
private static final String SP = " ";
private static final String LF = "\r\n";
+ public static final String BOUNDARY_PREAMBLE = "changeset";
+ public static final String HTTP_1_1 = "HTTP/1.1";
private String batchBoundary;
private StringBuilder writer = new StringBuilder();
@@ -48,7 +50,7 @@ public class BatchRequestWriter {
throw new IllegalArgumentException();
}
for (BatchPart batchPart : batchParts) {
- writer.append("--" + boundary).append(LF);
+ writer.append("--").append(boundary).append(LF);
if (batchPart instanceof BatchChangeSet) {
appendChangeSet((BatchChangeSet) batchPart);
} else if (batchPart instanceof BatchQueryPart) {
@@ -64,9 +66,9 @@ public class BatchRequestWriter {
}
private void appendChangeSet(final BatchChangeSet batchChangeSet) {
- String boundary = BatchHelper.generateBoundary("changeset");
+ String boundary = BatchHelper.generateBoundary(BOUNDARY_PREAMBLE);
while (boundary.equals(batchBoundary) || !boundary.matches(REG_EX_BOUNDARY)) {
- boundary = BatchHelper.generateBoundary("changeset");
+ boundary = BatchHelper.generateBoundary(BOUNDARY_PREAMBLE);
}
writer.append(HttpHeaders.CONTENT_TYPE).append(COLON).append(SP).append(
HttpContentType.MULTIPART_MIXED + "; boundary=" + boundary).append(LF);
@@ -83,7 +85,8 @@ public class BatchRequestWriter {
boolean isContentLengthPresent = false;
writer.append(HttpHeaders.CONTENT_TYPE).append(COLON).append(SP).append(HttpContentType.APPLICATION_HTTP)
.append(LF);
- writer.append(BatchHelper.HTTP_CONTENT_TRANSFER_ENCODING).append(COLON).append(SP).append("binary").append(LF);
+ writer.append(BatchHelper.HTTP_CONTENT_TRANSFER_ENCODING).append(COLON).append(SP)
+ .append(BatchHelper.BINARY_ENCODING).append(LF);
if (contentId != null) {
writer.append(BatchHelper.HTTP_CONTENT_ID).append(COLON).append(SP).append(contentId).append(LF);
}
@@ -92,7 +95,7 @@ public class BatchRequestWriter {
isContentLengthPresent = true;
}
writer.append(LF);
- writer.append(method).append(SP).append(uri).append(SP).append("HTTP/1.1");
+ writer.append(method).append(SP).append(uri).append(SP).append(HTTP_1_1);
writer.append(LF);
if (!isContentLengthPresent && body != null && !body.isEmpty()) {