Fit Tests
Signed-off-by: Christian Amend <chrisam@apache.org>
This commit is contained in:
parent
5f18ea2e09
commit
aab7eaf6e3
|
@ -192,6 +192,65 @@ public class BatchClientITCase extends AbstractTestITCase {
|
||||||
assertFalse(iter.hasNext());
|
assertFalse(iter.hasNext());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testInvalidAbsoluteUri() throws URISyntaxException {
|
||||||
|
final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(SERVICE_URI);
|
||||||
|
request.setAccept(ACCEPT);
|
||||||
|
|
||||||
|
final BatchManager payload = request.payloadManager();
|
||||||
|
final URI uri = new URI(SERVICE_URI + "/../ESAllPrim(32767)");
|
||||||
|
final ODataEntityRequest<ODataEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(uri);
|
||||||
|
queryReq.setFormat(ODataFormat.JSON);
|
||||||
|
payload.addRequest(queryReq);
|
||||||
|
|
||||||
|
// Fetch result
|
||||||
|
final ODataBatchResponse response = payload.getResponse();
|
||||||
|
assertEquals(202, response.getStatusCode());
|
||||||
|
|
||||||
|
final Iterator<ODataBatchResponseItem> bodyIterator = response.getBody();
|
||||||
|
assertTrue(bodyIterator.hasNext());
|
||||||
|
|
||||||
|
ODataBatchResponseItem item = bodyIterator.next();
|
||||||
|
assertFalse(item.isChangeset());
|
||||||
|
|
||||||
|
final ODataResponse oDataResponse = item.next();
|
||||||
|
assertEquals(400, oDataResponse.getStatusCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Ignore
|
||||||
|
public void testInvalidHost() throws URISyntaxException {
|
||||||
|
final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(SERVICE_URI);
|
||||||
|
request.setAccept(ACCEPT);
|
||||||
|
|
||||||
|
final BatchManager payload = request.payloadManager();
|
||||||
|
final URI uri = new URI("http://otherhost/odata/ESAllPrim(32767)");
|
||||||
|
final ODataEntityRequest<ODataEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(uri);
|
||||||
|
queryReq.setFormat(ODataFormat.JSON);
|
||||||
|
payload.addRequest(queryReq);
|
||||||
|
|
||||||
|
// Fetch result
|
||||||
|
final ODataBatchResponse response = payload.getResponse();
|
||||||
|
assertEquals(400, response.getStatusCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Ignore
|
||||||
|
public void testInvalidAbsoluteRequest() throws URISyntaxException {
|
||||||
|
final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(SERVICE_URI);
|
||||||
|
request.setAccept(ACCEPT);
|
||||||
|
|
||||||
|
final BatchManager payload = request.payloadManager();
|
||||||
|
final URI uri = new URI("/ESAllPrim(32767)");
|
||||||
|
final ODataEntityRequest<ODataEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(uri);
|
||||||
|
queryReq.setFormat(ODataFormat.JSON);
|
||||||
|
payload.addRequest(queryReq);
|
||||||
|
|
||||||
|
// Fetch result
|
||||||
|
final ODataBatchResponse response = payload.getResponse();
|
||||||
|
assertEquals(400, response.getStatusCode());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testErrorWithContinueOnErrorPreferHeader() throws URISyntaxException {
|
public void testErrorWithContinueOnErrorPreferHeader() throws URISyntaxException {
|
||||||
client.getConfiguration().setContinueOnError(true);
|
client.getConfiguration().setContinueOnError(true);
|
||||||
|
|
|
@ -0,0 +1,162 @@
|
||||||
|
/*
|
||||||
|
* 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.fit.tecsvc.http;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.io.OutputStreamWriter;
|
||||||
|
import java.net.HttpURLConnection;
|
||||||
|
import java.net.MalformedURLException;
|
||||||
|
import java.net.ProtocolException;
|
||||||
|
import java.net.URL;
|
||||||
|
|
||||||
|
import org.apache.olingo.client.api.CommonODataClient;
|
||||||
|
import org.apache.olingo.commons.api.http.HttpHeader;
|
||||||
|
import org.apache.olingo.commons.api.http.HttpMethod;
|
||||||
|
import org.apache.olingo.commons.api.http.HttpStatusCode;
|
||||||
|
import org.apache.olingo.fit.AbstractBaseTestITCase;
|
||||||
|
import org.apache.olingo.fit.tecsvc.TecSvcConst;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class BasicBatchITCase extends AbstractBaseTestITCase {
|
||||||
|
|
||||||
|
private static final String HEADER_CONTENT_TRANSFER_ENCODING_BINARY = "Content-Transfer-Encoding: binary";
|
||||||
|
private static final String HEADER_CONTENT_TYPE_HTTP = "Content-Type: application/http";
|
||||||
|
private static final String SERVICE_URI = TecSvcConst.BASE_URI + "/";
|
||||||
|
private static final String CONTENT_TYPE_HEADER_VALUE = " multipart/mixed;boundary=batch_123";
|
||||||
|
private static final String CRLF = "\r\n";
|
||||||
|
private static final String ACCEPT_HEADER_VALUE = "application/json";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test() throws IOException {
|
||||||
|
final String content = getRequest("ESAllPrim(32767)");
|
||||||
|
final HttpURLConnection connection = batch(content);
|
||||||
|
final BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
|
||||||
|
|
||||||
|
assertTrue(reader.readLine().contains("batch_"));
|
||||||
|
checkMimeHeader(reader);
|
||||||
|
blankLine(reader);
|
||||||
|
|
||||||
|
assertEquals("HTTP/1.1 200 OK", reader.readLine());
|
||||||
|
assertEquals("OData-Version: 4.0", reader.readLine());
|
||||||
|
assertEquals("Content-Type: application/json;odata.metadata=minimal", reader.readLine());
|
||||||
|
assertEquals("Content-Length: 538", reader.readLine());
|
||||||
|
blankLine(reader);
|
||||||
|
|
||||||
|
reader.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testInvalidRelativeURI() throws IOException {
|
||||||
|
final String content = getRequest("/ESAllPrim(32767)");
|
||||||
|
batchFail(content);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testInvalidAbsoluteURI() throws IOException {
|
||||||
|
final String content = getRequest(SERVICE_URI + "../ESAllPrim(32767)");
|
||||||
|
HttpURLConnection connection = batch(content);
|
||||||
|
final BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
|
||||||
|
|
||||||
|
assertTrue(reader.readLine().contains("batch_"));
|
||||||
|
checkMimeHeader(reader);
|
||||||
|
blankLine(reader);
|
||||||
|
|
||||||
|
assertEquals("HTTP/1.1 400 Bad Request", reader.readLine());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testNestedAbsoluteRequest() throws IOException {
|
||||||
|
final String content = getRequest(SERVICE_URI + SERVICE_URI + "../ESAllPrim(32767)");
|
||||||
|
HttpURLConnection connection = batch(content);
|
||||||
|
final BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
|
||||||
|
|
||||||
|
assertTrue(reader.readLine().contains("batch_"));
|
||||||
|
checkMimeHeader(reader);
|
||||||
|
blankLine(reader);
|
||||||
|
|
||||||
|
assertEquals("HTTP/1.1 400 Bad Request", reader.readLine());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testInvalidHost() throws IOException {
|
||||||
|
final String content = getRequest("http://otherhost/odata/odata.svc/ESAllPrim(32767)");
|
||||||
|
batchFail(content);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkMimeHeader(final BufferedReader reader) throws IOException {
|
||||||
|
assertEquals(HEADER_CONTENT_TYPE_HTTP, reader.readLine());
|
||||||
|
assertEquals(HEADER_CONTENT_TRANSFER_ENCODING_BINARY, reader.readLine());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void blankLine(BufferedReader reader) throws IOException {
|
||||||
|
assertEquals("", reader.readLine()); // CRLF becomes to an empty string
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getRequest(String uri) {
|
||||||
|
return "--batch_123" + CRLF
|
||||||
|
+ HEADER_CONTENT_TRANSFER_ENCODING_BINARY + CRLF
|
||||||
|
+ HEADER_CONTENT_TYPE_HTTP + CRLF
|
||||||
|
+ CRLF
|
||||||
|
+ "GET " + uri + " HTTP/1.1" + CRLF
|
||||||
|
+ CRLF
|
||||||
|
+ CRLF
|
||||||
|
+ "--batch_123--";
|
||||||
|
}
|
||||||
|
|
||||||
|
private HttpURLConnection batch(final String content) throws IOException {
|
||||||
|
final HttpURLConnection connection = getConnection(content);
|
||||||
|
|
||||||
|
assertEquals(HttpStatusCode.ACCEPTED.getStatusCode(), connection.getResponseCode());
|
||||||
|
|
||||||
|
return connection;
|
||||||
|
}
|
||||||
|
|
||||||
|
private HttpURLConnection batchFail(String content) throws IOException {
|
||||||
|
final HttpURLConnection connection = getConnection(content);
|
||||||
|
|
||||||
|
assertEquals(HttpStatusCode.BAD_REQUEST.getStatusCode(), connection.getResponseCode());
|
||||||
|
|
||||||
|
return connection; }
|
||||||
|
|
||||||
|
private HttpURLConnection getConnection(String content) throws MalformedURLException, IOException, ProtocolException {
|
||||||
|
final URL url = new URL(SERVICE_URI + "$batch");
|
||||||
|
final HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||||
|
connection.setRequestMethod(HttpMethod.POST.toString());
|
||||||
|
connection.setRequestProperty(HttpHeader.CONTENT_TYPE, CONTENT_TYPE_HEADER_VALUE);
|
||||||
|
connection.setRequestProperty(HttpHeader.ACCEPT, ACCEPT_HEADER_VALUE);
|
||||||
|
connection.setDoOutput(true);
|
||||||
|
final OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
|
||||||
|
writer.append(content);
|
||||||
|
writer.close();
|
||||||
|
connection.connect();
|
||||||
|
return connection;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected CommonODataClient<?> getClient() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -18,7 +18,9 @@
|
||||||
*/
|
*/
|
||||||
package org.apache.olingo.server.api.batch.exception;
|
package org.apache.olingo.server.api.batch.exception;
|
||||||
|
|
||||||
public class BatchDeserializerException extends BatchException {
|
import org.apache.olingo.server.api.deserializer.DeserializerException;
|
||||||
|
|
||||||
|
public class BatchDeserializerException extends DeserializerException {
|
||||||
public static enum MessageKeys implements MessageKey {
|
public static enum MessageKeys implements MessageKey {
|
||||||
INVALID_BOUNDARY,
|
INVALID_BOUNDARY,
|
||||||
INVALID_CHANGESET_METHOD,
|
INVALID_CHANGESET_METHOD,
|
||||||
|
@ -60,8 +62,4 @@ public class BatchDeserializerException extends BatchException {
|
||||||
super(developmentMessage, messageKey, parameters);
|
super(developmentMessage, messageKey, parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getBundleName() {
|
|
||||||
return DEFAULT_SERVER_BUNDLE_NAME;
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -1,47 +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.server.api.batch.exception;
|
|
||||||
|
|
||||||
import org.apache.olingo.server.api.ODataTranslatedException;
|
|
||||||
|
|
||||||
public class BatchException extends ODataTranslatedException {
|
|
||||||
private static final long serialVersionUID = 8747815702545202733L;
|
|
||||||
|
|
||||||
public static enum MessageKeys implements MessageKey {
|
|
||||||
;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getKey() {
|
|
||||||
return name();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public BatchException(final String developmentMessage, final MessageKey messageKey, final int lineNumber) {
|
|
||||||
this(developmentMessage, messageKey, "" + lineNumber);
|
|
||||||
}
|
|
||||||
|
|
||||||
public BatchException(final String developmentMessage, final MessageKey messageKey, final String... parameters) {
|
|
||||||
super(developmentMessage, messageKey, parameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getBundleName() {
|
|
||||||
return DEFAULT_SERVER_BUNDLE_NAME;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -18,7 +18,9 @@
|
||||||
*/
|
*/
|
||||||
package org.apache.olingo.server.api.batch.exception;
|
package org.apache.olingo.server.api.batch.exception;
|
||||||
|
|
||||||
public class BatchSerializerExecption extends BatchException {
|
import org.apache.olingo.server.api.serializer.SerializerException;
|
||||||
|
|
||||||
|
public class BatchSerializerExecption extends SerializerException {
|
||||||
|
|
||||||
private static final long serialVersionUID = 2634433974342796905L;
|
private static final long serialVersionUID = 2634433974342796905L;
|
||||||
|
|
||||||
|
|
|
@ -23,14 +23,14 @@ import java.util.List;
|
||||||
import org.apache.olingo.server.api.ODataRequest;
|
import org.apache.olingo.server.api.ODataRequest;
|
||||||
import org.apache.olingo.server.api.ODataResponse;
|
import org.apache.olingo.server.api.ODataResponse;
|
||||||
import org.apache.olingo.server.api.batch.BatchFacade;
|
import org.apache.olingo.server.api.batch.BatchFacade;
|
||||||
import org.apache.olingo.server.api.batch.exception.BatchException;
|
import org.apache.olingo.server.api.deserializer.DeserializerException;
|
||||||
import org.apache.olingo.server.api.deserializer.batch.ODataResponsePart;
|
import org.apache.olingo.server.api.deserializer.batch.ODataResponsePart;
|
||||||
import org.apache.olingo.server.api.serializer.SerializerException;
|
import org.apache.olingo.server.api.serializer.SerializerException;
|
||||||
|
|
||||||
|
|
||||||
public interface BatchProcessor extends Processor {
|
public interface BatchProcessor extends Processor {
|
||||||
// TODO:Check exception signature
|
|
||||||
void executeBatch(BatchFacade facade, ODataRequest request, ODataResponse response)
|
void executeBatch(BatchFacade facade, ODataRequest request, ODataResponse response)
|
||||||
throws SerializerException, BatchException;
|
throws SerializerException, DeserializerException;
|
||||||
|
|
||||||
ODataResponsePart executeChangeSet(BatchFacade facade, List<ODataRequest> requests);
|
ODataResponsePart executeChangeSet(BatchFacade facade, List<ODataRequest> requests);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,7 @@ import org.apache.olingo.server.api.ODataApplicationException;
|
||||||
import org.apache.olingo.server.api.ODataServerError;
|
import org.apache.olingo.server.api.ODataServerError;
|
||||||
import org.apache.olingo.server.api.ODataTranslatedException;
|
import org.apache.olingo.server.api.ODataTranslatedException;
|
||||||
import org.apache.olingo.server.api.ODataTranslatedException.ODataErrorMessage;
|
import org.apache.olingo.server.api.ODataTranslatedException.ODataErrorMessage;
|
||||||
|
import org.apache.olingo.server.api.batch.exception.BatchDeserializerException;
|
||||||
import org.apache.olingo.server.api.serializer.SerializerException;
|
import org.apache.olingo.server.api.serializer.SerializerException;
|
||||||
import org.apache.olingo.server.core.uri.parser.UriParserException;
|
import org.apache.olingo.server.core.uri.parser.UriParserException;
|
||||||
import org.apache.olingo.server.core.uri.parser.UriParserSemanticException;
|
import org.apache.olingo.server.core.uri.parser.UriParserSemanticException;
|
||||||
|
@ -94,6 +95,12 @@ public class ODataExceptionHelper {
|
||||||
return serverError;
|
return serverError;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ODataServerError createServerErrorObject(BatchDeserializerException e, Locale requestedLocale) {
|
||||||
|
ODataServerError serverError = basicTranslatedError(e, requestedLocale);
|
||||||
|
serverError.setStatusCode(HttpStatusCode.BAD_REQUEST.getStatusCode());
|
||||||
|
return serverError;
|
||||||
|
}
|
||||||
|
|
||||||
public static ODataServerError createServerErrorObject(ODataTranslatedException e, Locale requestedLocale) {
|
public static ODataServerError createServerErrorObject(ODataTranslatedException e, Locale requestedLocale) {
|
||||||
return basicTranslatedError(e, requestedLocale);
|
return basicTranslatedError(e, requestedLocale);
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ import org.apache.olingo.server.api.ODataRequest;
|
||||||
import org.apache.olingo.server.api.ODataResponse;
|
import org.apache.olingo.server.api.ODataResponse;
|
||||||
import org.apache.olingo.server.api.ODataServerError;
|
import org.apache.olingo.server.api.ODataServerError;
|
||||||
import org.apache.olingo.server.api.ServiceMetadata;
|
import org.apache.olingo.server.api.ServiceMetadata;
|
||||||
import org.apache.olingo.server.api.batch.exception.BatchException;
|
import org.apache.olingo.server.api.batch.exception.BatchDeserializerException;
|
||||||
import org.apache.olingo.server.api.deserializer.DeserializerException;
|
import org.apache.olingo.server.api.deserializer.DeserializerException;
|
||||||
import org.apache.olingo.server.api.processor.BatchProcessor;
|
import org.apache.olingo.server.api.processor.BatchProcessor;
|
||||||
import org.apache.olingo.server.api.processor.ComplexCollectionProcessor;
|
import org.apache.olingo.server.api.processor.ComplexCollectionProcessor;
|
||||||
|
@ -110,6 +110,9 @@ public class ODataHandler {
|
||||||
} catch (SerializerException e) {
|
} catch (SerializerException e) {
|
||||||
ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
|
ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
|
||||||
handleException(request, response, serverError);
|
handleException(request, response, serverError);
|
||||||
|
} catch (BatchDeserializerException e) {
|
||||||
|
ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
|
||||||
|
handleException(request, response, serverError);
|
||||||
} catch (DeserializerException e) {
|
} catch (DeserializerException e) {
|
||||||
ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
|
ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
|
||||||
handleException(request, response, serverError);
|
handleException(request, response, serverError);
|
||||||
|
@ -128,7 +131,7 @@ public class ODataHandler {
|
||||||
|
|
||||||
private void processInternal(final ODataRequest request, final ODataResponse response)
|
private void processInternal(final ODataRequest request, final ODataResponse response)
|
||||||
throws ODataHandlerException, UriParserException, UriValidationException, ContentNegotiatorException,
|
throws ODataHandlerException, UriParserException, UriValidationException, ContentNegotiatorException,
|
||||||
ODataApplicationException, SerializerException, DeserializerException, BatchException {
|
ODataApplicationException, SerializerException, DeserializerException {
|
||||||
validateODataVersion(request, response);
|
validateODataVersion(request, response);
|
||||||
|
|
||||||
uriInfo = new Parser().parseUri(request.getRawODataPath(), request.getRawQueryPath(), null,
|
uriInfo = new Parser().parseUri(request.getRawODataPath(), request.getRawQueryPath(), null,
|
||||||
|
|
|
@ -25,7 +25,7 @@ import org.apache.olingo.server.api.ODataResponse;
|
||||||
import org.apache.olingo.server.api.batch.BatchFacade;
|
import org.apache.olingo.server.api.batch.BatchFacade;
|
||||||
import org.apache.olingo.server.api.batch.exception.BatchDeserializerException;
|
import org.apache.olingo.server.api.batch.exception.BatchDeserializerException;
|
||||||
import org.apache.olingo.server.api.batch.exception.BatchDeserializerException.MessageKeys;
|
import org.apache.olingo.server.api.batch.exception.BatchDeserializerException.MessageKeys;
|
||||||
import org.apache.olingo.server.api.batch.exception.BatchException;
|
import org.apache.olingo.server.api.deserializer.DeserializerException;
|
||||||
import org.apache.olingo.server.api.processor.BatchProcessor;
|
import org.apache.olingo.server.api.processor.BatchProcessor;
|
||||||
import org.apache.olingo.server.api.serializer.SerializerException;
|
import org.apache.olingo.server.api.serializer.SerializerException;
|
||||||
import org.apache.olingo.server.core.ODataHandler;
|
import org.apache.olingo.server.core.ODataHandler;
|
||||||
|
@ -42,7 +42,7 @@ public class BatchHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void process(final ODataRequest request, final ODataResponse response, final boolean isStrict)
|
public void process(final ODataRequest request, final ODataResponse response, final boolean isStrict)
|
||||||
throws SerializerException, BatchException {
|
throws DeserializerException, SerializerException {
|
||||||
validateRequest(request);
|
validateRequest(request);
|
||||||
|
|
||||||
final BatchFacade operation = new BatchFascadeImpl(oDataHandler, request, batchProcessor, isStrict);
|
final BatchFacade operation = new BatchFascadeImpl(oDataHandler, request, batchProcessor, isStrict);
|
||||||
|
|
|
@ -40,7 +40,6 @@ import org.apache.olingo.server.api.ODataResponse;
|
||||||
import org.apache.olingo.server.api.ServiceMetadata;
|
import org.apache.olingo.server.api.ServiceMetadata;
|
||||||
import org.apache.olingo.server.api.batch.BatchFacade;
|
import org.apache.olingo.server.api.batch.BatchFacade;
|
||||||
import org.apache.olingo.server.api.batch.exception.BatchDeserializerException;
|
import org.apache.olingo.server.api.batch.exception.BatchDeserializerException;
|
||||||
import org.apache.olingo.server.api.batch.exception.BatchException;
|
|
||||||
import org.apache.olingo.server.api.deserializer.batch.BatchOptions;
|
import org.apache.olingo.server.api.deserializer.batch.BatchOptions;
|
||||||
import org.apache.olingo.server.api.deserializer.batch.BatchRequestPart;
|
import org.apache.olingo.server.api.deserializer.batch.BatchRequestPart;
|
||||||
import org.apache.olingo.server.api.deserializer.batch.ODataResponsePart;
|
import org.apache.olingo.server.api.deserializer.batch.ODataResponsePart;
|
||||||
|
@ -596,7 +595,7 @@ public class MockedBatchHandlerTest {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void executeBatch(BatchFacade fascade, ODataRequest request, ODataResponse response)
|
public void executeBatch(BatchFacade fascade, ODataRequest request, ODataResponse response)
|
||||||
throws BatchException, SerializerException {
|
throws SerializerException, BatchDeserializerException {
|
||||||
final String boundary = getBoundary(request.getHeader(HttpHeader.CONTENT_TYPE));
|
final String boundary = getBoundary(request.getHeader(HttpHeader.CONTENT_TYPE));
|
||||||
final BatchOptions options = BatchOptions.with().isStrict(true).rawBaseUri(BASE_URI).build();
|
final BatchOptions options = BatchOptions.with().isStrict(true).rawBaseUri(BASE_URI).build();
|
||||||
final List<BatchRequestPart> parts =
|
final List<BatchRequestPart> parts =
|
||||||
|
|
|
@ -44,7 +44,7 @@ public class HttpRequestStatusLineTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAbsoluteWithRelativePath() throws BatchDeserializerException {
|
public void testAbsoluteWithRelativePath() throws BatchDeserializerException {
|
||||||
final HttpRequestStatusLine line = parse("http://localhost/odata../../Employee?$top=2");
|
final HttpRequestStatusLine line = parse("http://localhost/odata/../../Employee?$top=2");
|
||||||
assertEquals("/../../Employee", line.getRawODataPath());
|
assertEquals("/../../Employee", line.getRawODataPath());
|
||||||
assertEquals("$top=2", line.getRawQueryPath());
|
assertEquals("$top=2", line.getRawQueryPath());
|
||||||
assertEquals("http://localhost/odata/../../Employee?$top=2", line.getRawRequestUri());
|
assertEquals("http://localhost/odata/../../Employee?$top=2", line.getRawRequestUri());
|
||||||
|
|
|
@ -32,7 +32,6 @@ import org.apache.olingo.server.api.ODataRequest;
|
||||||
import org.apache.olingo.server.api.ODataResponse;
|
import org.apache.olingo.server.api.ODataResponse;
|
||||||
import org.apache.olingo.server.api.batch.BatchFacade;
|
import org.apache.olingo.server.api.batch.BatchFacade;
|
||||||
import org.apache.olingo.server.api.batch.exception.BatchDeserializerException;
|
import org.apache.olingo.server.api.batch.exception.BatchDeserializerException;
|
||||||
import org.apache.olingo.server.api.batch.exception.BatchException;
|
|
||||||
import org.apache.olingo.server.api.deserializer.batch.BatchOptions;
|
import org.apache.olingo.server.api.deserializer.batch.BatchOptions;
|
||||||
import org.apache.olingo.server.api.deserializer.batch.BatchRequestPart;
|
import org.apache.olingo.server.api.deserializer.batch.BatchRequestPart;
|
||||||
import org.apache.olingo.server.api.deserializer.batch.ODataResponsePart;
|
import org.apache.olingo.server.api.deserializer.batch.ODataResponsePart;
|
||||||
|
@ -50,7 +49,7 @@ public class TechnicalBatchProcessor extends TechnicalProcessor implements Batch
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void executeBatch(BatchFacade fascade, ODataRequest request, ODataResponse response)
|
public void executeBatch(BatchFacade fascade, ODataRequest request, ODataResponse response)
|
||||||
throws SerializerException, BatchException {
|
throws SerializerException, BatchDeserializerException {
|
||||||
|
|
||||||
// TODO refactor isContinueOnError
|
// TODO refactor isContinueOnError
|
||||||
boolean continueOnError = isContinueOnError(request);
|
boolean continueOnError = isContinueOnError(request);
|
||||||
|
|
Loading…
Reference in New Issue