You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by fm...@apache.org on 2014/07/16 11:27:20 UTC
[57/58] [abbrv] git commit: [OLINGO-353] fixed + merge
[OLINGO-353] fixed + merge
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/5b3c3d34
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/5b3c3d34
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/5b3c3d34
Branch: refs/heads/master
Commit: 5b3c3d34031c464fa614778539171f0278c85917
Parents: 87c87cb 44c4772
Author: fmartelli <fa...@gmail.com>
Authored: Wed Jul 16 11:24:30 2014 +0200
Committer: fmartelli <fa...@gmail.com>
Committed: Wed Jul 16 11:24:30 2014 +0200
----------------------------------------------------------------------
LICENSE | 202 ++++
NOTICE | 8 +
README | 64 ++
dist/android-lib/pom.xml | 103 ++
.../src/main/assembly/lib-assembly.xml | 44 +
dist/android-lib/src/main/resources/LICENSE | 1 +
dist/client-lib/pom.xml | 123 ++
.../src/main/assembly/lib-assembly.xml | 47 +
dist/client-lib/src/main/resources/LICENSE | 271 +++++
dist/javadoc/pom.xml | 96 ++
.../src/main/assembly/javadoc-assembly.xml | 35 +
dist/pom.xml | 58 +
dist/server-lib/pom.xml | 115 ++
.../src/main/assembly/lib-assembly.xml | 46 +
dist/server-lib/src/main/resources/LICENSE | 337 ++++++
ext/client-core-android/pom.xml | 8 +-
.../android/http/AndroidHttpClientFactory.java | 43 +
ext/client-proxy-android/pom.xml | 28 +-
.../apache/olingo/ext/proxy/api/AsyncCall.java | 4 +-
.../TransactionalPersistenceManagerImpl.java | 5 +-
fit/pom.xml | 46 +-
.../org/apache/olingo/fit/AbstractServices.java | 22 +-
.../fit/UnsupportedMediaTypeException.java | 12 +-
.../apache/olingo/fit/V3ActionOverloading.java | 59 +-
.../org/apache/olingo/fit/V3KeyAsSegment.java | 6 +-
.../java/org/apache/olingo/fit/V3OpenType.java | 49 +-
.../org/apache/olingo/fit/V3PrimitiveKeys.java | 10 +-
.../java/org/apache/olingo/fit/V3Services.java | 188 ++--
.../main/java/org/apache/olingo/fit/V4Demo.java | 87 +-
.../org/apache/olingo/fit/V4KeyAsSegment.java | 3 +-
.../java/org/apache/olingo/fit/V4NorthWind.java | 5 +-
.../org/apache/olingo/fit/V4NorthWindExt.java | 9 +-
.../java/org/apache/olingo/fit/V4OAuth2.java | 37 +
.../java/org/apache/olingo/fit/V4OpenType.java | 47 +-
.../java/org/apache/olingo/fit/V4Services.java | 8 +-
.../org/apache/olingo/fit/V4Vocabularies.java | 25 +-
.../olingo/fit/rest/OAuth2InInterceptor.java | 97 ++
.../apache/olingo/fit/rest/OAuth2Provider.java | 133 +++
.../rest/ResolvingReferencesInterceptor.java | 59 +
.../fit/rest/ServiceNameResponseFilter.java | 55 +
.../fit/rest/StaticSecurityInterceptor.java | 85 ++
.../olingo/fit/rest/XHTTPMethodInterceptor.java | 47 +
.../olingo/fit/utils/AbstractUtilities.java | 2 +-
.../apache/olingo/fit/utils/JSONUtilities.java | 16 +-
.../utils/ResolvingReferencesInterceptor.java | 57 -
.../fit/utils/XHTTPMethodInterceptor.java | 45 -
.../apache/olingo/fit/utils/XMLUtilities.java | 3 +-
fit/src/main/resources/META-INF/LICENSE | 1047 ++++++++++++++++++
.../main/webapp/WEB-INF/applicationContext.xml | 37 +-
.../fit/CXFOAuth2HttpUriRequestFactory.java | 130 +++
.../apache/olingo/fit/v3/ErrorTestITCase.java | 13 +-
.../olingo/fit/v4/AbstractTestITCase.java | 29 +-
.../olingo/fit/v4/EntityCreateTestITCase.java | 4 +-
.../olingo/fit/v4/KeyAsSegmentTestITCase.java | 14 +-
.../apache/olingo/fit/v4/OAuth2TestITCase.java | 107 ++
.../olingo/client/api/CommonConfiguration.java | 261 -----
.../olingo/client/api/CommonODataClient.java | 2 +-
.../apache/olingo/client/api/Configuration.java | 261 +++++
.../request/batch/ODataBatchResponseItem.java | 4 +-
.../client/api/http/HttpClientFactory.java | 4 +-
.../client/api/http/HttpUriRequestFactory.java | 2 +-
.../olingo/client/api/v3/ODataClient.java | 4 -
.../olingo/client/api/v4/Configuration.java | 26 -
.../olingo/client/api/v4/ODataClient.java | 4 -
.../olingo/client/core/AbstractODataClient.java | 8 +
.../olingo/client/core/Configuration.java | 221 ----
.../olingo/client/core/ConfigurationImpl.java | 221 ++++
.../olingo/client/core/ODataClientFactory.java | 1 -
.../request/AbstractODataRequest.java | 37 +-
.../communication/request/AbstractRequest.java | 24 +-
.../batch/AbstractODataBatchRequest.java | 12 +-
.../batch/AbstractODataBatchResponseItem.java | 8 +-
.../batch/ODataChangesetResponseItem.java | 4 +-
.../request/batch/ODataSingleRequestImpl.java | 3 +-
.../request/batch/ODataSingleResponseItem.java | 14 +-
.../request/batch/v3/ODataBatchRequestImpl.java | 25 +-
.../request/batch/v4/ODataBatchRequestImpl.java | 27 +-
.../request/cud/ODataDeleteRequestImpl.java | 29 +-
.../cud/ODataEntityCreateRequestImpl.java | 27 +-
.../cud/ODataEntityUpdateRequestImpl.java | 47 +-
.../cud/ODataPropertyUpdateRequestImpl.java | 26 +-
.../cud/ODataValueUpdateRequestImpl.java | 25 +-
.../cud/v3/ODataLinkCreateRequestImpl.java | 20 +-
.../cud/v3/ODataLinkUpdateRequestImpl.java | 16 +-
.../invoke/AbstractODataInvokeRequest.java | 47 +-
.../retrieve/AbstractMetadataRequestImpl.java | 6 +-
.../retrieve/AbstractODataRetrieveRequest.java | 20 +-
.../retrieve/EdmMetadataRequestImpl.java | 3 +-
.../retrieve/ODataEntityRequestImpl.java | 27 +-
.../ODataEntitySetIteratorRequestImpl.java | 14 +-
.../retrieve/ODataEntitySetRequestImpl.java | 25 +-
.../request/retrieve/ODataMediaRequestImpl.java | 21 +-
.../retrieve/ODataPropertyRequestImpl.java | 24 +-
.../request/retrieve/ODataRawRequestImpl.java | 23 +-
.../ODataServiceDocumentRequestImpl.java | 26 +-
.../request/retrieve/ODataValueRequestImpl.java | 27 +-
.../v3/ODataLinkCollectionRequestImpl.java | 25 +-
.../retrieve/v3/XMLMetadataRequestImpl.java | 25 +-
.../retrieve/v4/ODataDeltaRequestImpl.java | 22 +-
.../retrieve/v4/XMLMetadataRequestImpl.java | 18 +-
.../streamed/AbstractODataStreamedRequest.java | 6 +-
.../ODataMediaEntityCreateRequestImpl.java | 23 +-
.../ODataMediaEntityUpdateRequestImpl.java | 21 +-
.../streamed/ODataStreamUpdateRequestImpl.java | 20 +-
.../request/v4/AsyncRequestWrapperImpl.java | 6 +-
.../response/AbstractODataResponse.java | 30 +-
.../response/batch/ODataBatchErrorResponse.java | 8 +-
.../batch/ODataBatchResponseManager.java | 4 +-
.../response/v4/AsyncResponseImpl.java | 23 +-
.../core/http/AbstractHttpClientFactory.java | 50 +
.../AbstractOAuth2HttpUriRequestFactory.java | 52 +
.../core/http/BasicAuthHttpClientFactory.java | 4 +-
.../core/http/DefaultHttpClientFactory.java | 40 +-
.../core/http/DefaultHttpUriRequestFactory.java | 2 +-
.../core/http/NTLMAuthHttpClientFactory.java | 4 +-
.../client/core/http/OAuth2Exception.java | 29 +
.../http/ProxyWrapperHttpClientFactory.java | 9 +-
.../client/core/uri/AbstractURIBuilder.java | 6 +-
.../apache/olingo/client/core/uri/URIUtils.java | 69 +-
.../client/core/uri/v3/URIBuilderImpl.java | 4 +-
.../client/core/uri/v4/URIBuilderImpl.java | 4 +-
.../olingo/client/core/v3/ODataClientImpl.java | 13 +-
.../olingo/client/core/v4/ODataClientImpl.java | 12 +-
.../olingo/client/core/uri/URIEscapeTest.java | 12 +
.../client/core/uri/v4/FilterFactoryTest.java | 27 +-
lib/commons-api/pom.xml | 10 +-
.../apache/olingo/commons/api/Constants.java | 16 +-
.../commons/api/ODataApplicationException.java | 37 -
.../api/ODataNotImplementedException.java | 33 -
.../olingo/commons/api/data/ContextURL.java | 138 ++-
.../api/edm/constants/ODataServiceVersion.java | 30 +-
.../olingo/commons/api/format/ContentType.java | 106 +-
.../olingo/commons/api/data/ContextURLTest.java | 90 ++
lib/commons-core/pom.xml | 4 +-
.../server/api/ODataApplicationException.java | 68 ++
.../server/api/ODataTranslatedException.java | 25 +
.../server/api/serializer/ODataSerializer.java | 5 +-
.../expression/ExpressionVisitor.java | 2 +-
.../expression/VisitableExpression.java | 2 +-
lib/server-core/pom.xml | 4 +-
.../core/serializer/ODataXmlSerializerImpl.java | 3 +-
.../serializer/json/ODataJsonSerializer.java | 30 +-
.../uri/queryoption/expression/AliasImpl.java | 2 +-
.../uri/queryoption/expression/BinaryImpl.java | 2 +-
.../queryoption/expression/EnumerationImpl.java | 2 +-
.../queryoption/expression/LambdaRefImpl.java | 2 +-
.../uri/queryoption/expression/LiteralImpl.java | 2 +-
.../uri/queryoption/expression/MemberImpl.java | 2 +-
.../uri/queryoption/expression/MethodImpl.java | 2 +-
.../queryoption/expression/TypeLiteralImpl.java | 2 +-
.../uri/queryoption/expression/UnaryImpl.java | 2 +-
lib/server-tecsvc/pom.xml | 3 +
.../tecsvc/processor/TechnicalProcessor.java | 11 +-
.../src/main/resources/META-INF/LICENSE | 331 ++++++
.../tecsvc/data/JsonDataProviderTest.java | 8 +-
.../json/ODataJsonSerializerTest.java | 25 +-
.../core/uri/antlr/TestFullResourcePath.java | 2 +-
.../queryoption/expression/ExpressionTest.java | 2 +-
.../core/uri/testutil/ExpandValidator.java | 2 +-
.../core/uri/testutil/FilterTreeToText.java | 2 +-
.../core/uri/testutil/FilterValidator.java | 2 +-
.../core/uri/testutil/ResourceValidator.java | 2 +-
pom.xml | 307 +++--
163 files changed, 5790 insertions(+), 1953 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5b3c3d34/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/TransactionalPersistenceManagerImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5b3c3d34/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java
----------------------------------------------------------------------
diff --cc fit/src/main/java/org/apache/olingo/fit/AbstractServices.java
index 3b46eba,999ec1d..756e1af
--- a/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java
+++ b/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java
@@@ -263,8 -262,8 +262,7 @@@ public abstract class AbstractServices
// just for non nullable property test into PropertyTestITCase
return xml.createFaultResponse(Accept.JSON_FULLMETA.toString(version), new Exception("Non nullable properties"));
}
-
// ----------------------------------------------
-
protected Response bodyPartRequest(final MimeBodyPart body) throws Exception {
return bodyPartRequest(body, Collections.<String, String>emptyMap());
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5b3c3d34/fit/src/main/java/org/apache/olingo/fit/V3ActionOverloading.java
----------------------------------------------------------------------
diff --cc fit/src/main/java/org/apache/olingo/fit/V3ActionOverloading.java
index 01ba3bf,0132a00..8b05094
--- a/fit/src/main/java/org/apache/olingo/fit/V3ActionOverloading.java
+++ b/fit/src/main/java/org/apache/olingo/fit/V3ActionOverloading.java
@@@ -153,11 -154,11 +154,11 @@@ public class V3ActionOverloading extend
}
@POST
- @Path("/Product({entityId})/RetrieveProduct")
+ @Path("/Product({entityId})/{path:.*RetrieveProduct}")
public Response productBoundRetrieveProduct(
- @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
- @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
- @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType) {
+ @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+ @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+ @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType) {
return unboundRetrieveProduct(accept, format, contentType);
}
@@@ -197,11 -198,11 +198,11 @@@
}
@POST
- @Path("/OrderLine(OrderId={orderId},ProductId={productId})/RetrieveProduct")
+ @Path("/OrderLine(OrderId={orderId},ProductId={productId})/{path:.*RetrieveProduct}")
public Response orderLineBoundRetrieveProduct(
- @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
- @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
- @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType) {
+ @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+ @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+ @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType) {
return unboundRetrieveProduct(accept, format, contentType);
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5b3c3d34/fit/src/main/java/org/apache/olingo/fit/V3KeyAsSegment.java
----------------------------------------------------------------------
diff --cc fit/src/main/java/org/apache/olingo/fit/V3KeyAsSegment.java
index 2c90bbc,01d9086..1d8aa56
--- a/fit/src/main/java/org/apache/olingo/fit/V3KeyAsSegment.java
+++ b/fit/src/main/java/org/apache/olingo/fit/V3KeyAsSegment.java
@@@ -47,10 -48,12 +48,10 @@@ import org.springframework.stereotype.S
@Service
@Path("/V30/KeyAsSegment.svc")
-public class V3KeyAsSegment {
-
- private final V3Services services;
+public class V3KeyAsSegment extends V3Services {
- public V3KeyAsSegment() throws Exception {
+ public V3KeyAsSegment() throws IOException {
- services = new V3Services();
+ super();
}
private Response replaceServiceName(final Response response) {
@@@ -109,7 -110,6 +110,8 @@@
@Path("/{entitySetName}/{entityId}")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
++
+ @Override
public Response mergeEntity(
@Context final UriInfo uriInfo,
@HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
@@@ -128,7 -128,6 +130,8 @@@
@Path("/{entitySetName}/{entityId}")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
++
+ @Override
public Response patchEntity(
@Context final UriInfo uriInfo,
@HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
@@@ -164,7 -163,6 +167,8 @@@
@Path("/{entitySetName}")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM})
++
+ @Override
public Response postNewEntity(
@Context final UriInfo uriInfo,
@HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5b3c3d34/fit/src/main/java/org/apache/olingo/fit/V3OpenType.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5b3c3d34/fit/src/main/java/org/apache/olingo/fit/V3Services.java
----------------------------------------------------------------------
diff --cc fit/src/main/java/org/apache/olingo/fit/V3Services.java
index 57afd6d,975b3d3..69fbc84
--- a/fit/src/main/java/org/apache/olingo/fit/V3Services.java
+++ b/fit/src/main/java/org/apache/olingo/fit/V3Services.java
@@@ -213,17 -213,17 +213,17 @@@ public class V3Services extends Abstrac
}
@GET
- @Path("/Car/{type:.*}")
+ @Path("/Car/{type:[a-zA-Z].*}")
public Response filterCar(
- @Context final UriInfo uriInfo,
- @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
- @QueryParam("$top") @DefaultValue(StringUtils.EMPTY) final String top,
- @QueryParam("$skip") @DefaultValue(StringUtils.EMPTY) final String skip,
- @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
- @QueryParam("$inlinecount") @DefaultValue(StringUtils.EMPTY) final String count,
- @QueryParam("$filter") @DefaultValue(StringUtils.EMPTY) final String filter,
- @QueryParam("$orderby") @DefaultValue(StringUtils.EMPTY) final String orderby,
- @QueryParam("$skiptoken") @DefaultValue(StringUtils.EMPTY) final String skiptoken) {
+ @Context final UriInfo uriInfo,
+ @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+ @QueryParam("$top") @DefaultValue(StringUtils.EMPTY) final String top,
+ @QueryParam("$skip") @DefaultValue(StringUtils.EMPTY) final String skip,
+ @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+ @QueryParam("$inlinecount") @DefaultValue(StringUtils.EMPTY) final String count,
+ @QueryParam("$filter") @DefaultValue(StringUtils.EMPTY) final String filter,
+ @QueryParam("$orderby") @DefaultValue(StringUtils.EMPTY) final String orderby,
+ @QueryParam("$skiptoken") @DefaultValue(StringUtils.EMPTY) final String skiptoken) {
return super.getEntitySet(uriInfo, accept, "Car", top, skip, format, count, filter, orderby, skiptoken);
}
@@@ -231,15 -231,15 +231,15 @@@
@GET
@Path("/Login({entityId})")
public Response getLogin(
- @Context final UriInfo uriInfo,
- @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
- @PathParam("entityId") final String entityId,
- @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
- @QueryParam("$expand") @DefaultValue(StringUtils.EMPTY) final String expand,
- @QueryParam("$select") @DefaultValue(StringUtils.EMPTY) final String select) {
+ @Context final UriInfo uriInfo,
+ @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+ @PathParam("entityId") final String entityId,
+ @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+ @QueryParam("$expand") @DefaultValue(StringUtils.EMPTY) final String expand,
+ @QueryParam("$select") @DefaultValue(StringUtils.EMPTY) final String select) {
return super.getEntityInternal(uriInfo.getRequestUri().toASCIIString(), accept,
- "Login", StringUtils.remove(entityId, "'"), format, expand, select, false);
+ "Login", StringUtils.remove(entityId, "'"), format, expand, select);
}
@POST
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5b3c3d34/fit/src/main/java/org/apache/olingo/fit/V4Demo.java
----------------------------------------------------------------------
diff --cc fit/src/main/java/org/apache/olingo/fit/V4Demo.java
index 1016118,18e7deb..d98dedb
--- a/fit/src/main/java/org/apache/olingo/fit/V4Demo.java
+++ b/fit/src/main/java/org/apache/olingo/fit/V4Demo.java
@@@ -97,16 -98,16 +98,16 @@@ public class V4Demo extends V4Services
@Path("/{entitySetName}({entityId})")
@Override
public Response getEntity(
- @Context final UriInfo uriInfo,
- @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
- @PathParam("entitySetName") final String entitySetName,
- @PathParam("entityId") final String entityId,
- @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
- @QueryParam("$expand") @DefaultValue(StringUtils.EMPTY) final String expand,
- @QueryParam("$select") @DefaultValue(StringUtils.EMPTY) final String select) {
+ @Context final UriInfo uriInfo,
+ @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+ @PathParam("entitySetName") final String entitySetName,
+ @PathParam("entityId") final String entityId,
+ @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+ @QueryParam("$expand") @DefaultValue(StringUtils.EMPTY) final String expand,
+ @QueryParam("$select") @DefaultValue(StringUtils.EMPTY) final String select) {
return replaceServiceName(super.getEntityInternal(uriInfo.getRequestUri().toASCIIString(),
- accept, entitySetName, entityId, format, expand, select, false));
+ accept, entitySetName, entityId, format, expand, select));
}
@GET
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5b3c3d34/fit/src/main/java/org/apache/olingo/fit/V4KeyAsSegment.java
----------------------------------------------------------------------
diff --cc fit/src/main/java/org/apache/olingo/fit/V4KeyAsSegment.java
index 0c16697,858bc01..adfcdae
--- a/fit/src/main/java/org/apache/olingo/fit/V4KeyAsSegment.java
+++ b/fit/src/main/java/org/apache/olingo/fit/V4KeyAsSegment.java
@@@ -48,7 -47,10 +49,7 @@@ import org.springframework.stereotype.S
@Path("/V40/KeyAsSegment.svc")
public class V4KeyAsSegment extends V4Services {
- public V4KeyAsSegment() throws Exception {
- @Context
- private UriInfo uriInfo;
-
+ public V4KeyAsSegment() throws IOException {
super();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5b3c3d34/fit/src/main/java/org/apache/olingo/fit/V4OpenType.java
----------------------------------------------------------------------
diff --cc fit/src/main/java/org/apache/olingo/fit/V4OpenType.java
index 30bc109,b19916b..feb53c8
--- a/fit/src/main/java/org/apache/olingo/fit/V4OpenType.java
+++ b/fit/src/main/java/org/apache/olingo/fit/V4OpenType.java
@@@ -101,16 -102,16 +102,16 @@@ public class V4OpenType extends V4Servi
@Path("/{entitySetName}({entityId})")
@Override
public Response getEntity(
- @Context final UriInfo uriInfo,
- @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
- @PathParam("entitySetName") final String entitySetName,
- @PathParam("entityId") final String entityId,
- @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
- @QueryParam("$expand") @DefaultValue(StringUtils.EMPTY) final String expand,
- @QueryParam("$select") @DefaultValue(StringUtils.EMPTY) final String select) {
+ @Context final UriInfo uriInfo,
+ @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+ @PathParam("entitySetName") final String entitySetName,
+ @PathParam("entityId") final String entityId,
+ @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+ @QueryParam("$expand") @DefaultValue(StringUtils.EMPTY) final String expand,
+ @QueryParam("$select") @DefaultValue(StringUtils.EMPTY) final String select) {
return replaceServiceName(super.getEntityInternal(
- uriInfo.getRequestUri().toASCIIString(), accept, entitySetName, entityId, format, expand, select, false));
+ uriInfo.getRequestUri().toASCIIString(), accept, entitySetName, entityId, format, expand, select));
}
@POST
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5b3c3d34/fit/src/main/java/org/apache/olingo/fit/V4Services.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5b3c3d34/fit/src/main/java/org/apache/olingo/fit/utils/AbstractUtilities.java
----------------------------------------------------------------------
diff --cc fit/src/main/java/org/apache/olingo/fit/utils/AbstractUtilities.java
index 7aef97a,baf2fac..7de4656
--- a/fit/src/main/java/org/apache/olingo/fit/utils/AbstractUtilities.java
+++ b/fit/src/main/java/org/apache/olingo/fit/utils/AbstractUtilities.java
@@@ -87,20 -87,14 +87,20 @@@ public abstract class AbstractUtilitie
public static final String BOUNDARY = "boundary";
protected final ODataServiceVersion version;
+
protected final Metadata metadata;
+
protected final FSManager fsManager;
+
protected final ODataDeserializer atomDeserializer;
+
protected final ODataDeserializer jsonDeserializer;
+
protected final ODataSerializer atomSerializer;
+
protected final ODataSerializer jsonSerializer;
- public AbstractUtilities(final ODataServiceVersion version, final Metadata metadata) throws Exception {
+ public AbstractUtilities(final ODataServiceVersion version, final Metadata metadata) throws IOException {
this.version = version;
this.metadata = metadata;
fsManager = FSManager.instance(version);
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5b3c3d34/fit/src/main/java/org/apache/olingo/fit/utils/XMLUtilities.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5b3c3d34/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/ContextURL.java
----------------------------------------------------------------------
diff --cc lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/ContextURL.java
index bbe2216,2628ebd..e18739f
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/ContextURL.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/ContextURL.java
@@@ -34,27 -36,31 +36,38 @@@ public class ContextURL
private URI uri;
private URI serviceRoot;
+
private String entitySetOrSingletonOrType;
+
private String derivedEntity;
+
private String selectList;
+
private String navOrPropertyPath;
- private boolean entity;
+ public enum Suffix {
+
- private boolean delta;
+ ENTITY("$entity"),
+ REFERENCE("$ref"),
+ DELTA("$delta"),
+ DELTA_DELETED_ENTITY("$deletedEntity"),
+ DELTA_LINK("$link"),
+ DELTA_DELETED_LINK("$deletedLink");
- private boolean deltaDeletedEntity;
+ private final String representation;
+
- private boolean deltaLink;
+ private Suffix(final String representation) {
+ this.representation = representation;
+ }
+
- private boolean deltaDeletedLink;
+ public String getRepresentation() {
+ return representation;
+ }
+ }
-
+ private Suffix suffix;
- private ContextURL() {}
+ private ContextURL() {
+ }
public static ContextURL getInstance(final URI contextURL) {
final ContextURL instance = new ContextURL();
@@@ -62,21 -68,31 +75,30 @@@
String contextURLasString = instance.uri.toASCIIString();
- instance.entity = contextURLasString.endsWith("/$entity") || contextURLasString.endsWith("/@Element");
- contextURLasString = contextURLasString.
- replace("/$entity", StringUtils.EMPTY).replace("/@Element", StringUtils.EMPTY);
-
- instance.delta = contextURLasString.endsWith("/$delta");
- contextURLasString = contextURLasString.replace("/$delta", StringUtils.EMPTY);
-
- instance.deltaDeletedEntity = contextURLasString.endsWith("/$deletedEntity");
- contextURLasString = contextURLasString.replace("/$deletedEntity", StringUtils.EMPTY);
-
- instance.deltaLink = contextURLasString.endsWith("/$link");
- contextURLasString = contextURLasString.replace("/$link", StringUtils.EMPTY);
-
- instance.deltaDeletedLink = contextURLasString.endsWith("/$deletedLink");
- contextURLasString = contextURLasString.replace("/$deletedLink", StringUtils.EMPTY);
+ if (contextURLasString.endsWith("/$entity") || contextURLasString.endsWith("/@Element")) {
+ instance.suffix = Suffix.ENTITY;
+ contextURLasString = contextURLasString.replace("/$entity", StringUtils.EMPTY)
- .replace("/@Element", StringUtils.EMPTY);
-
++ .replace("/@Element", StringUtils.EMPTY);
+ } else if (contextURLasString.endsWith("/$ref")) {
+ instance.suffix = Suffix.REFERENCE;
+ contextURLasString = contextURLasString.replace("/$ref", StringUtils.EMPTY);
+
+ } else if (contextURLasString.endsWith("/$delta")) {
+ instance.suffix = Suffix.DELTA;
+ contextURLasString = contextURLasString.replace("/$delta", StringUtils.EMPTY);
+
+ } else if (contextURLasString.endsWith("/$deletedEntity")) {
+ instance.suffix = Suffix.DELTA_DELETED_ENTITY;
+ contextURLasString = contextURLasString.replace("/$deletedEntity", StringUtils.EMPTY);
+
+ } else if (contextURLasString.endsWith("/$link")) {
+ instance.suffix = Suffix.DELTA_LINK;
+ contextURLasString = contextURLasString.replace("/$link", StringUtils.EMPTY);
+
+ } else if (contextURLasString.endsWith("/$deletedLink")) {
+ instance.suffix = Suffix.DELTA_DELETED_LINK;
+ contextURLasString = contextURLasString.replace("/$deletedLink", StringUtils.EMPTY);
+ }
instance.serviceRoot = URI.create(StringUtils.substringBefore(contextURLasString, Constants.METADATA));
@@@ -169,7 -189,67 +195,69 @@@
}
public boolean isDeltaDeletedLink() {
- return deltaDeletedLink;
+ return suffix == Suffix.DELTA_DELETED_LINK;
+ }
+
+ public static final class ContextURLBuilder {
++
+ private ContextURL contextURL = new ContextURL();
+
- private ContextURLBuilder() {}
++ private ContextURLBuilder() {
++ }
+
+ public ContextURLBuilder serviceRoot(final URI serviceRoot) {
+ contextURL.serviceRoot = serviceRoot;
+ return this;
+ }
+
+ public ContextURLBuilder entitySet(final EdmEntitySet entitySet) {
+ contextURL.entitySetOrSingletonOrType = entitySet.getName();
+ return this;
+ }
+
+ public ContextURLBuilder derived(final EdmEntityType derivedType) {
+ contextURL.derivedEntity = derivedType.getFullQualifiedName().getFullQualifiedNameAsString();
+ return this;
+ }
+
+ public ContextURLBuilder suffix(final Suffix suffix) {
+ contextURL.suffix = suffix;
+ return this;
+ }
+
+ public ContextURL build() {
+ StringBuilder result = new StringBuilder();
+ if (contextURL.serviceRoot != null) {
+ result.append(contextURL.serviceRoot);
+ }
+ result.append(Constants.METADATA);
+ if (contextURL.entitySetOrSingletonOrType != null) {
+ result.append('#').append(contextURL.entitySetOrSingletonOrType);
+ }
+ if (contextURL.derivedEntity != null) {
+ if (contextURL.entitySetOrSingletonOrType == null) {
+ throw new IllegalArgumentException("ContextURL: Derived Type without anything to derive from!");
+ }
+ result.append('/').append(contextURL.derivedEntity);
+ }
+ if (contextURL.suffix == Suffix.REFERENCE) {
+ if (contextURL.entitySetOrSingletonOrType != null) {
+ throw new IllegalArgumentException("ContextURL: $ref with Entity Set");
+ }
+ result.append('#').append(contextURL.suffix.getRepresentation());
+ } else if (contextURL.suffix != null) {
+ if (contextURL.entitySetOrSingletonOrType == null) {
+ throw new IllegalArgumentException("ContextURL: Suffix without preceding Entity Set!");
+ }
+ result.append('/').append(contextURL.suffix.getRepresentation());
+ }
+ contextURL.uri = URI.create(result.toString());
+ return contextURL;
+ }
+ }
+
+ public static final ContextURLBuilder create() {
+ return new ContextURLBuilder();
}
@Override