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 2015/08/04 16:57:45 UTC
[09/13] olingo-odata4 git commit: Merge branch 'master' into olingo640
Merge branch 'master' into olingo640
Conflicts:
fit/src/test/java/org/apache/olingo/fit/tecsvc/client/NavigationITCase.java
lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalEntityProcessor.java
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/36659707
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/36659707
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/36659707
Branch: refs/heads/master
Commit: 366597070f08f7435eca9b2394c3f53612efd1d5
Parents: 5b99eb7 9558233
Author: Christian Amend <ch...@sap.com>
Authored: Tue Aug 4 14:38:01 2015 +0200
Committer: Christian Amend <ch...@sap.com>
Committed: Tue Aug 4 14:38:01 2015 +0200
----------------------------------------------------------------------
.../fit/tecsvc/client/AsyncSupportITCase.java | 104 +++++++
.../fit/tecsvc/client/NavigationITCase.java | 39 ++-
.../fit/tecsvc/http/BasicAsyncITCase.java | 238 ++++++++++++++++
.../apache/olingo/fit/util/StringHelper.java | 214 +++++++++++++++
fit/src/test/resources/basicBatchPost.batch | 33 +++
.../olingo/client/api/data/ServiceDocument.java | 4 +-
.../client/core/data/ServiceDocumentImpl.java | 53 +++-
.../core/data/ServiceDocumentItemImpl.java | 32 ++-
.../client/core/domain/ClientPropertyImpl.java | 39 ++-
.../client/core/domain/ClientValuableImpl.java | 27 +-
.../olingo/commons/api/data/ContextURL.java | 15 +-
.../commons/api/edm/FullQualifiedName.java | 32 ++-
.../apache/olingo/commons/api/edm/geo/SRID.java | 54 +++-
.../apache/olingo/server/api/ODataRequest.java | 22 +-
.../apache/olingo/server/api/ODataResponse.java | 2 +-
.../server/api/debug/DebugInformation.java | 118 ++++++++
.../server/api/debug/DebugResponseHelper.java | 6 +-
.../olingo/server/api/debug/DebugSupport.java | 7 +-
.../server/api/debug/DefaultDebugSupport.java | 13 +-
.../server/api/debug/RuntimeMeasurement.java | 106 +++++++
.../olingo/server/core/ServiceHandler.java | 15 +
.../core/legacy/ProcessorServiceHandler.java | 7 +
.../server/core/requests/DataRequest.java | 2 +-
.../olingo/server/example/TripPinHandler.java | 12 +
lib/server-core/pom.xml | 10 +-
.../apache/olingo/server/core/ODataHandler.java | 53 ++--
.../server/core/ODataHttpHandlerImpl.java | 68 +++--
.../apache/olingo/server/core/ODataImpl.java | 2 +-
.../core/debug/DebugResponseHelperImpl.java | 247 ++++++++++++++++-
.../olingo/server/core/debug/DebugTab.java | 50 ++++
.../olingo/server/core/debug/DebugTabBody.java | 154 +++++++++++
.../server/core/debug/DebugTabException.java | 136 +++++++++
.../server/core/debug/DebugTabRequest.java | 128 +++++++++
.../server/core/debug/DebugTabResponse.java | 99 +++++++
.../server/core/debug/DebugTabRuntime.java | 181 ++++++++++++
.../server/core/debug/DebugTabServer.java | 63 +++++
.../olingo/server/core/debug/DebugTabUri.java | 232 ++++++++++++++++
.../server/core/debug/ServerCoreDebugger.java | 142 ++++++++++
.../json/ODataJsonDeserializer.java | 275 +++++++++++--------
.../serializer/BatchResponseSerializer.java | 1 -
.../serializer/utils/ContextURLBuilder.java | 9 +
.../core/serializer/utils/ContextURLHelper.java | 30 ++
.../serializer/utils/ExpandSelectHelper.java | 11 +-
.../core/uri/parser/UriParseTreeVisitor.java | 29 +-
.../server/core/debug/AbstractDebugTabTest.java | 58 ++++
.../server/core/debug/DebugTabBodyTest.java | 37 +++
.../server/core/debug/DebugTabRequestTest.java | 155 +++++++++++
.../server/core/debug/DebugTabResponseTest.java | 79 ++++++
.../server/core/debug/DebugTabServerTest.java | 84 ++++++
.../core/debug/ServerCoreDebuggerTest.java | 121 ++++++++
lib/server-tecsvc/pom.xml | 1 -
.../olingo/server/tecsvc/TechnicalServlet.java | 1 -
.../processor/TechnicalBatchProcessor.java | 17 ++
.../processor/TechnicalEntityProcessor.java | 98 ++++---
lib/server-test/pom.xml | 1 -
.../olingo/server/core/ODataHandlerTest.java | 10 +-
.../json/ODataJsonDeserializerEntityTest.java | 50 ++++
.../serializer/utils/ContextURLHelperTest.java | 86 ++++++
.../core/uri/antlr/TestFullResourcePath.java | 56 +++-
samples/tutorials/p5_queryoptions-tis/pom.xml | 79 ++++++
.../myservice/mynamespace/data/Storage.java | 130 +++++++++
.../mynamespace/service/DemoEdmProvider.java | 154 +++++++++++
.../service/DemoEntityCollectionProcessor.java | 142 ++++++++++
.../service/DemoEntityProcessor.java | 118 ++++++++
.../service/DemoPrimitiveProcessor.java | 150 ++++++++++
.../java/myservice/mynamespace/util/Util.java | 105 +++++++
.../myservice/mynamespace/web/DemoServlet.java | 76 +++++
.../src/main/webapp/WEB-INF/web.xml | 40 +++
.../src/main/webapp/index.jsp | 26 ++
samples/tutorials/p6_queryoptions-es/pom.xml | 80 ++++++
.../myservice/mynamespace/data/Storage.java | 252 +++++++++++++++++
.../mynamespace/service/DemoEdmProvider.java | 211 ++++++++++++++
.../service/DemoEntityCollectionProcessor.java | 160 +++++++++++
.../service/DemoEntityProcessor.java | 235 ++++++++++++++++
.../service/DemoPrimitiveProcessor.java | 150 ++++++++++
.../java/myservice/mynamespace/util/Util.java | 149 ++++++++++
.../myservice/mynamespace/web/DemoServlet.java | 75 +++++
.../src/main/webapp/WEB-INF/web.xml | 34 +++
.../src/main/webapp/index.jsp | 43 +++
samples/tutorials/pom.xml | 2 +
80 files changed, 6057 insertions(+), 322 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/36659707/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/NavigationITCase.java
----------------------------------------------------------------------
diff --cc fit/src/test/java/org/apache/olingo/fit/tecsvc/client/NavigationITCase.java
index f129976,40c1de4..a153f06
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/NavigationITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/NavigationITCase.java
@@@ -20,7 -20,8 +20,10 @@@ package org.apache.olingo.fit.tecsvc.cl
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+ import static org.junit.Assert.assertTrue;
+
++import java.io.InputStream;
+
import org.apache.olingo.client.api.ODataClient;
import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
import org.apache.olingo.client.api.domain.ClientEntity;
@@@ -31,23 -32,49 +34,57 @@@ import org.apache.olingo.commons.api.fo
import org.apache.olingo.commons.api.http.HttpStatusCode;
import org.apache.olingo.fit.AbstractBaseTestITCase;
import org.apache.olingo.fit.tecsvc.TecSvcConst;
+ import org.apache.olingo.fit.util.StringHelper;
+import org.junit.Assert;
import org.junit.Test;
- public class NavigationITCase extends AbstractBaseTestITCase {
-import java.io.InputStream;
-
+ public final class NavigationITCase extends AbstractBaseTestITCase {
private final ODataClient client = getClient();
+
+ void assertShortOrInt(int value, Object n) {
+ if (n instanceof Number) {
+ assertEquals(value, ((Number)n).intValue());
+ } else {
+ Assert.fail();
+ }
+ }
+
@Test
+ public void navigationToEntityWithRelativeContextUrl() throws Exception {
+ // zero navigation
+ final InputStream zeroLevelResponse = client.getRetrieveRequestFactory().getEntityRequest(
+ client.newURIBuilder(TecSvcConst.BASE_URI)
+ .appendEntitySetSegment("ESAllPrim").
+ appendKeySegment(32767).build()).rawExecute();
+
+ String zeroLevelResponseBody = StringHelper.asString(zeroLevelResponse);
+ assertTrue(zeroLevelResponseBody.contains("\"@odata.context\":\"$metadata#ESAllPrim/$entity\""));
+
+ // one navigation
+ final InputStream oneLevelResponse = client.getRetrieveRequestFactory().getEntityRequest(
+ client.newURIBuilder(TecSvcConst.BASE_URI)
+ .appendEntitySetSegment("ESAllPrim").appendKeySegment(32767)
+ .appendNavigationSegment("NavPropertyETTwoPrimOne").build())
+ .rawExecute();
+
+ String oneLevelResponseBody = StringHelper.asString(oneLevelResponse);
+ assertTrue(oneLevelResponseBody.contains("\"@odata.context\":\"../$metadata#ESTwoPrim/$entity\""));
+
+ // two navigation
+ final InputStream twoLevelResponse = client.getRetrieveRequestFactory().getEntityRequest(
+ client.newURIBuilder(TecSvcConst.BASE_URI)
+ .appendEntitySetSegment("ESTwoPrim").appendKeySegment(32767)
+ .appendNavigationSegment("NavPropertyETAllPrimOne")
+ .appendNavigationSegment("NavPropertyETTwoPrimMany").appendKeySegment(-365).build())
+ .rawExecute();
+
+ String twoLevelResponseBody = StringHelper.asString(twoLevelResponse);
+ assertTrue(twoLevelResponseBody.contains("\"@odata.context\":\"../../$metadata#ESTwoPrim/$entity\""));
+ }
+
+ @Test
public void oneLevelToEntity() throws Exception {
final ODataRetrieveResponse<ClientEntity> response =
client.getRetrieveRequestFactory().getEntityRequest(
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/36659707/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/36659707/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/TechnicalServlet.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/36659707/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalEntityProcessor.java
----------------------------------------------------------------------
diff --cc lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalEntityProcessor.java
index 06f450d,a47f367..315623f
--- 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
@@@ -147,7 -147,7 +147,7 @@@ public class TechnicalEntityProcessor e
checkRequestFormat(requestFormat);
//
-- if(odata.createPreferences(request.getHeaders(HttpHeader.PREFER)).hasRespondAsync()) {
++ if (odata.createPreferences(request.getHeaders(HttpHeader.PREFER)).hasRespondAsync()) {
TechnicalAsyncService asyncService = TechnicalAsyncService.getInstance();
TechnicalEntityProcessor processor = new TechnicalEntityProcessor(dataProvider, serviceMetadata);
processor.init(odata, serviceMetadata);
@@@ -161,7 -161,7 +161,6 @@@
}
//
--
final UriResourceEntitySet resourceEntitySet = (UriResourceEntitySet) uriInfo.getUriResourceParts().get(0);
final EdmEntitySet edmEntitySet = resourceEntitySet.getEntitySet();
final EdmEntityType edmEntityType = edmEntitySet.getEntityType();
@@@ -173,7 -173,7 +172,7 @@@
dataProvider.setMedia(entity, odata.createFixedFormatDeserializer().binary(request.getBody()),
requestFormat.toContentTypeString());
} else {
-- final DeserializerResult deserializerResult =
++ final DeserializerResult deserializerResult =
odata.createDeserializer(requestFormat).entity(request.getBody(), edmEntityType);
new RequestValidator(dataProvider, request.getRawBaseUri())
.validate(edmEntitySet, deserializerResult.getEntity());
@@@ -187,8 -187,8 +186,8 @@@
+ odata.createUriHelper().buildCanonicalURL(edmEntitySet, entity);
final Return returnPreference = odata.createPreferences(request.getHeaders(HttpHeader.PREFER)).getReturn();
if (returnPreference == null || returnPreference == Return.REPRESENTATION) {
- response.setContent(serializeEntity(entity, edmEntitySet, edmEntityType, responseFormat, expand, null)
- .getContent());
+ response.setContent(serializeEntity(request, entity, edmEntitySet, edmEntityType, responseFormat, expand, null)
- .getContent());
++ .getContent());
response.setHeader(HttpHeader.CONTENT_TYPE, responseFormat.toContentTypeString());
response.setStatusCode(HttpStatusCode.CREATED.getStatusCode());
} else {
@@@ -238,13 -238,13 +237,13 @@@
request.getRawBaseUri()).validate(edmEntitySet, changedEntity);
dataProvider.update(request.getRawBaseUri(), edmEntitySet, entity, changedEntity,
-- request.getMethod() == HttpMethod.PATCH, false);
++ request.getMethod() == HttpMethod.PATCH, false);
final Return returnPreference = odata.createPreferences(request.getHeaders(HttpHeader.PREFER)).getReturn();
if (returnPreference == null || returnPreference == Return.REPRESENTATION) {
response.setStatusCode(HttpStatusCode.OK.getStatusCode());
- response.setContent(serializeEntity(entity, edmEntitySet, edmEntityType, responseFormat, null, null)
- .getContent());
+ response.setContent(serializeEntity(request, entity, edmEntitySet, edmEntityType, responseFormat)
- .getContent());
++ .getContent());
response.setHeader(HttpHeader.CONTENT_TYPE, responseFormat.toContentTypeString());
} else {
response.setStatusCode(HttpStatusCode.NO_CONTENT.getStatusCode());
@@@ -275,8 -275,8 +274,8 @@@
final Return returnPreference = odata.createPreferences(request.getHeaders(HttpHeader.PREFER)).getReturn();
if (returnPreference == null || returnPreference == Return.REPRESENTATION) {
- response.setContent(serializeEntity(entity, edmEntitySet, edmEntityType, responseFormat, null, null)
+ response.setContent(serializeEntity(request, entity, edmEntitySet, edmEntityType, responseFormat)
- .getContent());
+ .getContent());
response.setStatusCode(HttpStatusCode.OK.getStatusCode());
response.setHeader(HttpHeader.CONTENT_TYPE, responseFormat.toContentTypeString());
} else {
@@@ -360,7 -360,7 +359,7 @@@
final UriResourceNavigation navigationProperty = getLastNavigation(uriInfo);
ensureNavigationPropertyNotNull(navigationProperty);
dataProvider.createReference(entity, navigationProperty.getProperty(), references.getEntityReferences().get(0),
-- request.getRawBaseUri());
++ request.getRawBaseUri());
response.setStatusCode(HttpStatusCode.NO_CONTENT.getStatusCode());
}
@@@ -371,7 -371,7 +370,7 @@@
final UriResourceNavigation lastNavigation = getLastNavigation(uriInfo);
final IdOption idOption = uriInfo.getIdOption();
--
++
ensureNavigationPropertyNotNull(lastNavigation);
if (lastNavigation.isCollection() && idOption == null) {
throw new ODataApplicationException("Id system query option must be provided",
@@@ -393,8 -393,9 +392,9 @@@
}
@Override
- public void readReferenceCollection(final ODataRequest request, final ODataResponse response, final UriInfo uriInfo,
- final ContentType requestedContentType) throws ODataApplicationException, ODataLibraryException {
+ public void readReferenceCollection(final ODataRequest request, final ODataResponse response,
- final UriInfo uriInfo, final ContentType requestedContentType)
- throws ODataApplicationException, ODataLibraryException {
++ final UriInfo uriInfo, final ContentType requestedContentType)
++ throws ODataApplicationException, ODataLibraryException {
readEntityCollection(request, response, uriInfo, requestedContentType, true);
}
@@@ -402,7 -403,7 +402,7 @@@
final ContentType requestedFormat, final boolean isReference)
throws ODataApplicationException, ODataLibraryException {
//
-- if(odata.createPreferences(request.getHeaders(HttpHeader.PREFER)).hasRespondAsync()) {
++ if (odata.createPreferences(request.getHeaders(HttpHeader.PREFER)).hasRespondAsync()) {
TechnicalAsyncService asyncService = TechnicalAsyncService.getInstance();
TechnicalEntityProcessor processor = new TechnicalEntityProcessor(dataProvider, serviceMetadata);
processor.init(odata, serviceMetadata);
@@@ -454,7 -455,7 +454,7 @@@
final UriInfo uriInfo, final ContentType requestedContentType, final boolean isReference)
throws ODataApplicationException, ODataLibraryException {
//
-- if(odata.createPreferences(request.getHeaders(HttpHeader.PREFER)).hasRespondAsync()) {
++ if (odata.createPreferences(request.getHeaders(HttpHeader.PREFER)).hasRespondAsync()) {
TechnicalAsyncService asyncService = TechnicalAsyncService.getInstance();
TechnicalEntityProcessor processor = new TechnicalEntityProcessor(dataProvider, serviceMetadata);
processor.init(odata, serviceMetadata);
@@@ -513,12 -514,12 +513,12 @@@
expandHandler.applyExpandQueryOptions(entitySetSerialization, edmEntitySet, expand);
final CountOption countOption = uriInfo.getCountOption();
- final String id = request.getRawBaseUri()+edmEntitySet.getName();
++ final String id = request.getRawBaseUri() + edmEntitySet.getName();
// Serialize
-- final SerializerResult serializerResult = (isReference) ?
++ final SerializerResult serializerResult = (isReference) ?
serializeReferenceCollection(entitySetSerialization, edmEntitySet, requestedContentType, countOption) :
- serializeEntityCollection(entitySetSerialization, edmEntitySet, edmEntityType, requestedContentType,
+ serializeEntityCollection(request, entitySetSerialization, edmEntitySet, edmEntityType, requestedContentType,
- expand, select, countOption);
-
+ expand, select, countOption, id);
response.setContent(serializerResult.getContent());
response.setStatusCode(HttpStatusCode.OK.getStatusCode());
response.setHeader(HttpHeader.CONTENT_TYPE, requestedContentType.toContentTypeString());
@@@ -528,59 -529,74 +528,73 @@@
}
}
- private SerializerResult serializeEntityCollection(final EntityCollection entityCollection,
- final EdmEntitySet edmEntitySet, final EdmEntityType edmEntityType, final ContentType requestedFormat,
- final ExpandOption expand, final SelectOption select, final CountOption countOption, String id)
- throws ODataLibraryException {
-
+ private SerializerResult serializeEntityCollection(final ODataRequest request, final EntityCollection
- entityCollection,
- final EdmEntitySet edmEntitySet, final EdmEntityType edmEntityType, final ContentType requestedFormat,
- final ExpandOption expand, final SelectOption select, final CountOption countOption)
- throws ODataLibraryException {
++ entityCollection, final EdmEntitySet edmEntitySet, final EdmEntityType edmEntityType,
++ final ContentType requestedFormat, final ExpandOption expand, final SelectOption select,
++ final CountOption countOption, String id) throws ODataLibraryException {
+
return odata.createSerializer(requestedFormat).entityCollection(
- serviceMetadata,
- edmEntityType,
- entityCollection,
- EntityCollectionSerializerOptions.with()
- .contextURL(isODataMetadataNone(requestedFormat) ? null :
- getContextUrl(request.getRawODataPath(), edmEntitySet, edmEntityType, false, expand,
- select))
- .count(countOption)
- .expand(expand).select(select)
- .build());
+ serviceMetadata,
+ edmEntityType,
+ entityCollection,
+ EntityCollectionSerializerOptions.with()
+ .contextURL(isODataMetadataNone(requestedFormat) ? null :
- getContextUrl(edmEntitySet, edmEntityType, false, expand, select))
++ getContextUrl(request.getRawODataPath(), edmEntitySet, edmEntityType, false, expand, select))
+ .count(countOption)
+ .expand(expand).select(select)
+ .setId(id)
+ .build());
}
-- private SerializerResult serializeReferenceCollection(final EntityCollection entityCollection,
-- final EdmEntitySet edmEntitySet, final ContentType requestedFormat, final CountOption countOption)
-- throws ODataLibraryException {
++ private SerializerResult serializeReferenceCollection(final EntityCollection entityCollection,
++ final EdmEntitySet edmEntitySet, final ContentType requestedFormat, final CountOption countOption)
++ throws ODataLibraryException {
return odata.createSerializer(requestedFormat)
- .referenceCollection(serviceMetadata, edmEntitySet, entityCollection,ReferenceCollectionSerializerOptions.with()
- .contextURL(ContextURL.with().asCollection().suffix(Suffix.REFERENCE).build())
- .count(countOption).build());
+ .referenceCollection(serviceMetadata, edmEntitySet, entityCollection,
- ReferenceCollectionSerializerOptions.with()
- .contextURL(ContextURL.with().asCollection().suffix(Suffix.REFERENCE).build())
- .count(countOption).build());
++ ReferenceCollectionSerializerOptions.with()
++ .contextURL(ContextURL.with().asCollection().suffix(Suffix.REFERENCE).build())
++ .count(countOption).build());
}
private SerializerResult serializeReference(final Entity entity, final EdmEntitySet edmEntitySet,
final ContentType requestedFormat) throws ODataLibraryException {
return odata.createSerializer(requestedFormat)
.reference(serviceMetadata, edmEntitySet, entity, ReferenceSerializerOptions.with()
- .contextURL(ContextURL.with().suffix(Suffix.REFERENCE).build()).build());
-
+ .contextURL(ContextURL.with().suffix(Suffix.REFERENCE).build()).build());
-
++
}
- private SerializerResult serializeEntity(final Entity entity,
- final EdmEntitySet edmEntitySet, final EdmEntityType edmEntityType, final ContentType requestedFormat,
- final ExpandOption expand, final SelectOption select) throws ODataLibraryException {
+ private SerializerResult serializeEntity(final ODataRequest request, final Entity entity,
- final EdmEntitySet edmEntitySet, final EdmEntityType edmEntityType,
- final ContentType requestedFormat) throws ODataLibraryException {
++ final EdmEntitySet edmEntitySet, final EdmEntityType edmEntityType,
++ final ContentType requestedFormat) throws ODataLibraryException {
+ return serializeEntity(request, entity, edmEntitySet, edmEntityType, requestedFormat, null, null);
+ }
+
+ private SerializerResult serializeEntity(final ODataRequest request, final Entity entity,
- final EdmEntitySet edmEntitySet, final EdmEntityType edmEntityType,
- final ContentType requestedFormat,
- final ExpandOption expand, final SelectOption select)
- throws ODataLibraryException {
++ final EdmEntitySet edmEntitySet, final EdmEntityType edmEntityType,
++ final ContentType requestedFormat,
++ final ExpandOption expand, final SelectOption select)
++ throws ODataLibraryException {
+
+ ContextURL contextUrl = isODataMetadataNone(requestedFormat) ? null :
- getContextUrl(request.getRawODataPath(), edmEntitySet, edmEntityType, true, expand, null);
++ getContextUrl(request.getRawODataPath(), edmEntitySet, edmEntityType, true, expand, null);
return odata.createSerializer(requestedFormat).entity(
- serviceMetadata,
- edmEntityType,
- entity,
- EntitySerializerOptions.with()
- .contextURL(contextUrl)
- .expand(expand).select(select)
- .build());
+ serviceMetadata,
+ edmEntityType,
+ entity,
+ EntitySerializerOptions.with()
- .contextURL(isODataMetadataNone(requestedFormat) ? null :
- getContextUrl(edmEntitySet, edmEntityType, true, expand, select))
++ .contextURL(contextUrl)
+ .expand(expand).select(select)
+ .build());
}
- private ContextURL getContextUrl(final EdmEntitySet entitySet, final EdmEntityType entityType,
- final boolean isSingleEntity, final ExpandOption expand, final SelectOption select) throws ODataLibraryException {
- Builder builder = ContextURL.with();
+ private ContextURL getContextUrl(String rawODataPath, final EdmEntitySet entitySet, final EdmEntityType entityType,
- final boolean isSingleEntity, final ExpandOption expand, final SelectOption select)
- throws ODataLibraryException {
++ final boolean isSingleEntity, final ExpandOption expand, final SelectOption select)
++ throws ODataLibraryException {
+ //
+ //
+ Builder builder = ContextURL.with().oDataPath(rawODataPath);
builder = entitySet == null ?
isSingleEntity ? builder.type(entityType) : builder.asCollection().type(entityType) :
builder.entitySet(entitySet);
@@@ -589,10 -605,10 +603,10 @@@
.suffix(isSingleEntity && entitySet != null ? Suffix.ENTITY : null);
return builder.build();
}
--
++
private void ensureNavigationPropertyNotNull(final UriResourceNavigation navigationProperty)
throws ODataApplicationException {
-- if(navigationProperty == null) {
++ if (navigationProperty == null) {
throw new ODataApplicationException("Missing navigation segment", HttpStatusCode.BAD_REQUEST.getStatusCode(),
Locale.ROOT);
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/36659707/lib/server-test/pom.xml
----------------------------------------------------------------------
diff --cc lib/server-test/pom.xml
index 3173137,f698028..5edc346
--- a/lib/server-test/pom.xml
+++ b/lib/server-test/pom.xml
@@@ -66,13 -66,7 +66,12 @@@
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
- <scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>xmlunit</groupId>
+ <artifactId>xmlunit</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>