You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by il...@apache.org on 2014/04/17 14:56:37 UTC
[4/5] [OLINGO-175] More V4 CRUD tests for containment,
deep insert and bind operation
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/client-core/pom.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/pom.xml b/lib/client-core/pom.xml
index e8c20b5..58025ee 100644
--- a/lib/client-core/pom.xml
+++ b/lib/client-core/pom.xml
@@ -81,7 +81,7 @@
<configuration>
<systemPropertyVariables>
<propertyName>org.slf4j.simpleLogger.defaultLogLevel</propertyName>
- <org.slf4j.simpleLogger.defaultLogLevel>ERROR</org.slf4j.simpleLogger.defaultLogLevel>
+ <org.slf4j.simpleLogger.defaultLogLevel>DEBUG</org.slf4j.simpleLogger.defaultLogLevel>
</systemPropertyVariables>
</configuration>
</plugin>
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/AbstractCUDRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/AbstractCUDRequestFactory.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/AbstractCUDRequestFactory.java
index 73d39f9..a45afc7 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/AbstractCUDRequestFactory.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/AbstractCUDRequestFactory.java
@@ -36,9 +36,9 @@ public abstract class AbstractCUDRequestFactory<UT extends CommonUpdateType> imp
private static final long serialVersionUID = -2723641791198745990L;
- protected final CommonODataClient client;
+ protected final CommonODataClient<?> client;
- protected AbstractCUDRequestFactory(final CommonODataClient client) {
+ protected AbstractCUDRequestFactory(final CommonODataClient<?> client) {
this.client = client;
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/AbstractODataStreamedEntityRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/AbstractODataStreamedEntityRequest.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/AbstractODataStreamedEntityRequest.java
index ace08d3..ec5f773 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/AbstractODataStreamedEntityRequest.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/AbstractODataStreamedEntityRequest.java
@@ -45,8 +45,9 @@ public abstract class AbstractODataStreamedEntityRequest<V extends ODataResponse
* @param method HTTP request method.
* @param uri request URI.
*/
- public AbstractODataStreamedEntityRequest(final CommonODataClient odataClient, final HttpMethod method,
- URI uri) {
+ public AbstractODataStreamedEntityRequest(final CommonODataClient<?> odataClient, final HttpMethod method,
+ final URI uri) {
+
super(odataClient, method, uri);
setAccept(getFormat().toString(odataClient.getServiceVersion()));
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/AbstractStreamedRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/AbstractStreamedRequestFactory.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/AbstractStreamedRequestFactory.java
index 014e1bc..cf15fcb 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/AbstractStreamedRequestFactory.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/AbstractStreamedRequestFactory.java
@@ -26,22 +26,23 @@ import org.apache.olingo.client.api.communication.request.streamed.ODataMediaEnt
import org.apache.olingo.client.api.communication.request.streamed.ODataStreamUpdateRequest;
import org.apache.olingo.client.api.communication.request.streamed.CommonStreamedRequestFactory;
import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
public abstract class AbstractStreamedRequestFactory implements CommonStreamedRequestFactory {
private static final long serialVersionUID = -2438839640443961168L;
- protected final CommonODataClient client;
+ protected final CommonODataClient<?> client;
- protected AbstractStreamedRequestFactory(final CommonODataClient client) {
+ protected AbstractStreamedRequestFactory(final CommonODataClient<?> client) {
this.client = client;
}
@Override
- public ODataMediaEntityCreateRequest getMediaEntityCreateRequest(
+ public <E extends CommonODataEntity> ODataMediaEntityCreateRequest<E> getMediaEntityCreateRequest(
final URI targetURI, final InputStream media) {
- return new ODataMediaEntityCreateRequestImpl(client, targetURI, media);
+ return new ODataMediaEntityCreateRequestImpl<E>(client, targetURI, media);
}
@Override
@@ -59,16 +60,16 @@ public abstract class AbstractStreamedRequestFactory implements CommonStreamedRe
}
@Override
- public ODataMediaEntityUpdateRequest getMediaEntityUpdateRequest(
+ public <E extends CommonODataEntity> ODataMediaEntityUpdateRequest<E> getMediaEntityUpdateRequest(
final URI editURI, final InputStream media) {
- final ODataMediaEntityUpdateRequest req;
+ final ODataMediaEntityUpdateRequest<E> req;
if (client.getConfiguration().isUseXHTTPMethod()) {
- req = new ODataMediaEntityUpdateRequestImpl(client, HttpMethod.POST, editURI, media);
+ req = new ODataMediaEntityUpdateRequestImpl<E>(client, HttpMethod.POST, editURI, media);
req.setXHTTPMethod(HttpMethod.PUT.name());
} else {
- req = new ODataMediaEntityUpdateRequestImpl(client, HttpMethod.PUT, editURI, media);
+ req = new ODataMediaEntityUpdateRequestImpl<E>(client, HttpMethod.PUT, editURI, media);
}
return req;
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityCreateRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityCreateRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityCreateRequestImpl.java
index 2c1dd22..cbd292d 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityCreateRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityCreateRequestImpl.java
@@ -37,10 +37,12 @@ import org.apache.olingo.commons.api.data.Entry;
/**
* This class implements an OData Media Entity create request. Get instance by using ODataStreamedRequestFactory.
+ *
+ * @param <E> concrete ODataEntity implementation
*/
-public class ODataMediaEntityCreateRequestImpl
- extends AbstractODataStreamedEntityRequest<ODataMediaEntityCreateResponse, MediaEntityCreateStreamManager>
- implements ODataMediaEntityCreateRequest, ODataBatchableRequest {
+public class ODataMediaEntityCreateRequestImpl<E extends CommonODataEntity>
+ extends AbstractODataStreamedEntityRequest<ODataMediaEntityCreateResponse<E>, MediaEntityCreateStreamManager<E>>
+ implements ODataMediaEntityCreateRequest<E>, ODataBatchableRequest {
private final InputStream media;
@@ -51,27 +53,26 @@ public class ODataMediaEntityCreateRequestImpl
* @param targetURI target entity set.
* @param media media entity blob to be created.
*/
- ODataMediaEntityCreateRequestImpl(final CommonODataClient odataClient, final URI targetURI, final InputStream media) {
+ ODataMediaEntityCreateRequestImpl(final CommonODataClient<?> odataClient, final URI targetURI,
+ final InputStream media) {
+
super(odataClient, HttpMethod.POST, targetURI);
this.media = media;
}
- /**
- * {@inheritDoc }
- */
@Override
- protected MediaEntityCreateStreamManager getStreamManager() {
+ protected MediaEntityCreateStreamManager<E> getStreamManager() {
if (streamManager == null) {
streamManager = new MediaEntityCreateStreamManagerImpl(media);
}
- return (MediaEntityCreateStreamManager) streamManager;
+ return (MediaEntityCreateStreamManager<E>) streamManager;
}
/**
* Media entity payload object.
*/
- public class MediaEntityCreateStreamManagerImpl extends AbstractODataStreamManager<ODataMediaEntityCreateResponse>
- implements MediaEntityCreateStreamManager {
+ public class MediaEntityCreateStreamManagerImpl extends AbstractODataStreamManager<ODataMediaEntityCreateResponse<E>>
+ implements MediaEntityCreateStreamManager<E> {
/**
* Private constructor.
@@ -82,11 +83,8 @@ public class ODataMediaEntityCreateRequestImpl
super(ODataMediaEntityCreateRequestImpl.this.futureWrapper, input);
}
- /**
- * {@inheritDoc }
- */
@Override
- protected ODataMediaEntityCreateResponse getResponse(final long timeout, final TimeUnit unit) {
+ protected ODataMediaEntityCreateResponse<E> getResponse(final long timeout, final TimeUnit unit) {
finalizeBody();
return new ODataMediaEntityCreateResponseImpl(httpClient, getHttpResponse(timeout, unit));
}
@@ -96,9 +94,9 @@ public class ODataMediaEntityCreateRequestImpl
* Response class about an ODataMediaEntityCreateRequest.
*/
private class ODataMediaEntityCreateResponseImpl extends AbstractODataResponse
- implements ODataMediaEntityCreateResponse {
+ implements ODataMediaEntityCreateResponse<E> {
- private CommonODataEntity entity = null;
+ private E entity = null;
/**
* Constructor.
@@ -122,11 +120,12 @@ public class ODataMediaEntityCreateRequestImpl
* {@inheritDoc }
*/
@Override
- public CommonODataEntity getBody() {
+ @SuppressWarnings("unchecked")
+ public E getBody() {
if (entity == null) {
try {
final Container<Entry> container = odataClient.getDeserializer().toEntry(getRawResponse(), getFormat());
- entity = odataClient.getBinder().getODataEntity(extractFromContainer(container));
+ entity = (E) odataClient.getBinder().getODataEntity(extractFromContainer(container));
} finally {
this.close();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityUpdateRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityUpdateRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityUpdateRequestImpl.java
index 614baa1..5967906 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityUpdateRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityUpdateRequestImpl.java
@@ -37,10 +37,12 @@ import org.apache.olingo.commons.api.data.Entry;
/**
* This class implements an OData Media Entity create request. Get instance by using ODataStreamedRequestFactory.
+ *
+ * @param <E> concrete ODataEntity implementation
*/
-public class ODataMediaEntityUpdateRequestImpl
- extends AbstractODataStreamedEntityRequest<ODataMediaEntityUpdateResponse, MediaEntityUpdateStreamManager>
- implements ODataMediaEntityUpdateRequest, ODataBatchableRequest {
+public class ODataMediaEntityUpdateRequestImpl<E extends CommonODataEntity>
+ extends AbstractODataStreamedEntityRequest<ODataMediaEntityUpdateResponse<E>, MediaEntityUpdateStreamManager<E>>
+ implements ODataMediaEntityUpdateRequest<E>, ODataBatchableRequest {
private final InputStream media;
@@ -52,29 +54,26 @@ public class ODataMediaEntityUpdateRequestImpl
* @param editURI edit URI of the entity to be updated.
* @param media media entity blob to be created.
*/
- ODataMediaEntityUpdateRequestImpl(final CommonODataClient odataClient,
+ ODataMediaEntityUpdateRequestImpl(final CommonODataClient<?> odataClient,
final HttpMethod method, final URI editURI, final InputStream media) {
super(odataClient, method, editURI);
this.media = media;
}
- /**
- * {@inheritDoc }
- */
@Override
- protected MediaEntityUpdateStreamManager getStreamManager() {
+ protected MediaEntityUpdateStreamManager<E> getStreamManager() {
if (streamManager == null) {
streamManager = new MediaEntityUpdateStreamManagerImpl(media);
}
- return (MediaEntityUpdateStreamManager) streamManager;
+ return (MediaEntityUpdateStreamManager<E>) streamManager;
}
/**
* Media entity payload object.
*/
- public class MediaEntityUpdateStreamManagerImpl extends AbstractODataStreamManager<ODataMediaEntityUpdateResponse>
- implements MediaEntityUpdateStreamManager {
+ public class MediaEntityUpdateStreamManagerImpl extends AbstractODataStreamManager<ODataMediaEntityUpdateResponse<E>>
+ implements MediaEntityUpdateStreamManager<E> {
/**
* Private constructor.
@@ -85,11 +84,8 @@ public class ODataMediaEntityUpdateRequestImpl
super(ODataMediaEntityUpdateRequestImpl.this.futureWrapper, input);
}
- /**
- * {@inheritDoc }
- */
@Override
- protected ODataMediaEntityUpdateResponse getResponse(final long timeout, final TimeUnit unit) {
+ protected ODataMediaEntityUpdateResponse<E> getResponse(final long timeout, final TimeUnit unit) {
finalizeBody();
return new ODataMediaEntityUpdateResponseImpl(httpClient, getHttpResponse(timeout, unit));
}
@@ -99,16 +95,17 @@ public class ODataMediaEntityUpdateRequestImpl
* Response class about an ODataMediaEntityUpdateRequest.
*/
private class ODataMediaEntityUpdateResponseImpl extends AbstractODataResponse
- implements ODataMediaEntityUpdateResponse {
+ implements ODataMediaEntityUpdateResponse<E> {
- private CommonODataEntity entity = null;
+ private E entity = null;
/**
* Constructor.
- * <p>
+ * <br/>
* Just to create response templates to be initialized from batch.
*/
private ODataMediaEntityUpdateResponseImpl() {
+ super();
}
/**
@@ -121,15 +118,13 @@ public class ODataMediaEntityUpdateRequestImpl
super(client, res);
}
- /**
- * {@inheritDoc }
- */
@Override
- public CommonODataEntity getBody() {
+ @SuppressWarnings("unchecked")
+ public E getBody() {
if (entity == null) {
try {
final Container<Entry> container = odataClient.getDeserializer().toEntry(getRawResponse(), getFormat());
- entity = odataClient.getBinder().getODataEntity(extractFromContainer(container));
+ entity = (E) odataClient.getBinder().getODataEntity(extractFromContainer(container));
} finally {
this.close();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataStreamUpdateRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataStreamUpdateRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataStreamUpdateRequestImpl.java
index aa27b2e..cf8eaa3 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataStreamUpdateRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataStreamUpdateRequestImpl.java
@@ -49,7 +49,7 @@ public class ODataStreamUpdateRequestImpl
* @param targetURI target URI.
* @param stream stream to be updated.
*/
- ODataStreamUpdateRequestImpl(final CommonODataClient odataClient,
+ ODataStreamUpdateRequestImpl(final CommonODataClient<?> odataClient,
final HttpMethod method, final URI targetURI, final InputStream stream) {
super(odataClient, method, targetURI);
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/client-core/src/main/java/org/apache/olingo/client/core/data/JSONServiceDocumentDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/data/JSONServiceDocumentDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/data/JSONServiceDocumentDeserializer.java
index f949e16..7cff539 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/data/JSONServiceDocumentDeserializer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/data/JSONServiceDocumentDeserializer.java
@@ -48,8 +48,6 @@ public class JSONServiceDocumentDeserializer extends ODataJacksonDeserializer<Co
: new org.apache.olingo.client.core.data.v4.JSONServiceDocumentImpl();
final String metadataETag;
- final URI contextURL;
-
if (tree.hasNonNull(Constants.JSON_METADATA_ETAG)) {
metadataETag = tree.get(Constants.JSON_METADATA_ETAG).textValue();
tree.remove(Constants.JSON_METADATA_ETAG);
@@ -57,6 +55,7 @@ public class JSONServiceDocumentDeserializer extends ODataJacksonDeserializer<Co
metadataETag = null;
}
+ final URI contextURL;
if (tree.hasNonNull(Constants.JSON_CONTEXT)) {
contextURL = URI.create(tree.get(Constants.JSON_CONTEXT).textValue());
tree.remove(Constants.JSON_CONTEXT);
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/client-core/src/main/java/org/apache/olingo/client/core/op/AbstractODataBinder.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/op/AbstractODataBinder.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/op/AbstractODataBinder.java
index ad58ab4..5b74502 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/op/AbstractODataBinder.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/op/AbstractODataBinder.java
@@ -291,18 +291,20 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
? ODataLinkType.ENTITY_NAVIGATION
: ODataLinkType.fromString(client.getServiceVersion(), link.getRel(), link.getType());
odataLinked.addLink(linkType == ODataLinkType.ENTITY_NAVIGATION
- ? client.getObjectFactory().newEntityNavigationLink(link.getTitle(), base, link.getHref())
- : client.getObjectFactory().newEntitySetNavigationLink(link.getTitle(), base, link.getHref()));
+ ? client.getObjectFactory().
+ newEntityNavigationLink(link.getTitle(), URIUtils.getURI(base, link.getHref()))
+ : client.getObjectFactory().
+ newEntitySetNavigationLink(link.getTitle(), URIUtils.getURI(base, link.getHref())));
} else if (inlineEntry != null) {
- odataLinked.addLink(client.getObjectFactory().newInlineEntity(
- link.getTitle(), base, link.getHref(),
+ odataLinked.addLink(new ODataInlineEntity(client.getServiceVersion(),
+ URIUtils.getURI(base, link.getHref()), ODataLinkType.ENTITY_NAVIGATION, link.getTitle(),
getODataEntity(inlineEntry,
- inlineEntry.getBaseURI() == null ? base : inlineEntry.getBaseURI())));
+ inlineEntry.getBaseURI() == null ? base : inlineEntry.getBaseURI())));
} else {
- odataLinked.addLink(client.getObjectFactory().newInlineEntitySet(
- link.getTitle(), base, link.getHref(),
+ odataLinked.addLink(new ODataInlineEntitySet(client.getServiceVersion(),
+ URIUtils.getURI(base, link.getHref()), ODataLinkType.ENTITY_SET_NAVIGATION, link.getTitle(),
getODataEntitySet(inlineFeed,
- inlineFeed.getBaseURI() == null ? base : inlineFeed.getBaseURI())));
+ inlineFeed.getBaseURI() == null ? base : inlineFeed.getBaseURI())));
}
}
}
@@ -337,13 +339,17 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
}
for (Link link : resource.getAssociationLinks()) {
- entity.addLink(client.getObjectFactory().newAssociationLink(link.getTitle(), base, link.getHref()));
+ entity.addLink(new ODataLink.Builder().setVersion(client.getServiceVersion()).
+ setURI(URIUtils.getURI(base, link.getHref())).
+ setType(ODataLinkType.ASSOCIATION).setTitle(link.getTitle()).build());
}
odataLinks(resource, entity, base);
for (Link link : resource.getMediaEditLinks()) {
- entity.addLink(client.getObjectFactory().newMediaEditLink(link.getTitle(), base, link.getHref()));
+ entity.addLink(new ODataLink.Builder().setVersion(client.getServiceVersion()).
+ setURI(URIUtils.getURI(base, link.getHref())).
+ setType(ODataLinkType.MEDIA_EDIT).setTitle(link.getTitle()).build());
}
for (ODataOperation operation : resource.getOperations()) {
@@ -373,18 +379,18 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
value = client.getObjectFactory().newPrimitiveValueBuilder().
setText(resource.getValue().asPrimitive().get()).
setType(typeInfo == null
- ? null
- : EdmPrimitiveTypeKind.valueOfFQN(
- client.getServiceVersion(), typeInfo.getFullQualifiedName().toString())).build();
+ ? null
+ : EdmPrimitiveTypeKind.valueOfFQN(
+ client.getServiceVersion(), typeInfo.getFullQualifiedName().toString())).build();
} else if (resource.getValue().isGeospatial()) {
value = client.getObjectFactory().newPrimitiveValueBuilder().
setValue(resource.getValue().asGeospatial().get()).
setType(typeInfo == null
- || EdmPrimitiveTypeKind.Geography.getFullQualifiedName().equals(typeInfo.getFullQualifiedName())
- || EdmPrimitiveTypeKind.Geometry.getFullQualifiedName().equals(typeInfo.getFullQualifiedName())
- ? resource.getValue().asGeospatial().get().getEdmPrimitiveTypeKind()
- : EdmPrimitiveTypeKind.valueOfFQN(
- client.getServiceVersion(), typeInfo.getFullQualifiedName().toString())).build();
+ || EdmPrimitiveTypeKind.Geography.getFullQualifiedName().equals(typeInfo.getFullQualifiedName())
+ || EdmPrimitiveTypeKind.Geometry.getFullQualifiedName().equals(typeInfo.getFullQualifiedName())
+ ? resource.getValue().asGeospatial().get().getEdmPrimitiveTypeKind()
+ : EdmPrimitiveTypeKind.valueOfFQN(
+ client.getServiceVersion(), typeInfo.getFullQualifiedName().toString())).build();
} else if (resource.getValue().isComplex()) {
value = client.getObjectFactory().newComplexValue(typeInfo == null
? null : typeInfo.getFullQualifiedName().toString());
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/AbstractTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/AbstractTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/AbstractTestITCase.java
index f9405ec..36f45b9 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/AbstractTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/AbstractTestITCase.java
@@ -283,9 +283,8 @@ public abstract class AbstractTestITCase extends AbstractBaseTestITCase {
contactAliasValue.add(getClient().getObjectFactory().newCollectionProperty("AlternativeNames", aliasAltNamesValue));
if (withInlineInfo) {
- final ODataInlineEntity inlineInfo = getClient().getObjectFactory().newInlineEntity(
+ final ODataInlineEntity inlineInfo = getClient().getObjectFactory().newDeepInsertEntity(
"Info",
- URI.create("Customer(" + id + ")/Info"),
getSampleCustomerInfo(id, sampleName + "_Info"));
inlineInfo.getEntity().setMediaEntity(true);
entity.addLink(inlineInfo);
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/AsyncTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/AsyncTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/AsyncTestITCase.java
index 18dd57e..a5a60b9 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/AsyncTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/AsyncTestITCase.java
@@ -102,11 +102,11 @@ public class AsyncTestITCase extends AbstractTestITCase {
final String TO_BE_UPDATED = "async buffered stream sample";
final InputStream input = IOUtils.toInputStream(TO_BE_UPDATED);
- final ODataMediaEntityCreateRequest createReq =
+ final ODataMediaEntityCreateRequest<ODataEntity> createReq =
client.getStreamedRequestFactory().getMediaEntityCreateRequest(builder.build(), input);
- final MediaEntityCreateStreamManager streamManager = createReq.execute();
- final Future<ODataMediaEntityCreateResponse> futureCreateRes = streamManager.getAsyncResponse();
+ final MediaEntityCreateStreamManager<ODataEntity> streamManager = createReq.execute();
+ final Future<ODataMediaEntityCreateResponse<ODataEntity>> futureCreateRes = streamManager.getAsyncResponse();
while (!futureCreateRes.isDone()) {
Thread.sleep(1000L);
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityCreateTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityCreateTestITCase.java
index 2329aae..f57b443 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityCreateTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityCreateTestITCase.java
@@ -118,8 +118,8 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
final int id = 5;
final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
- original.addLink(client.getObjectFactory().newInlineEntity(
- "Info", null, getSampleCustomerInfo(id, "Sample Customer_Info")));
+ original.addLink(client.getObjectFactory().newDeepInsertEntity(
+ "Info", getSampleCustomerInfo(id, "Sample Customer_Info")));
createEntity(getServiceRoot(), format, original, "Customer");
final ODataEntity actual =
@@ -145,8 +145,8 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
final int id = 6;
final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
- original.addLink(client.getObjectFactory().newInlineEntity(
- "Info", null, getSampleCustomerInfo(id, "Sample Customer_Info")));
+ original.addLink(client.getObjectFactory().newDeepInsertEntity(
+ "Info", getSampleCustomerInfo(id, "Sample Customer_Info")));
createEntity(getServiceRoot(), format, original, "Customer");
final ODataEntity actual =
@@ -224,7 +224,7 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
@Test
public void createReturnNoContent() {
final int id = 1;
- final ODataEntity original = (ODataEntity) getSampleCustomerProfile(id, "Sample customer", false);
+ final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
final ODataEntityCreateRequest<ODataEntity> createReq = client.getCUDRequestFactory().getEntityCreateRequest(
client.getURIBuilder(getServiceRoot()).appendEntitySetSegment("Customer").build(), original);
@@ -251,7 +251,7 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
@Test
public void issue135() {
final int id = 2;
- final ODataEntity original = (ODataEntity) getSampleCustomerProfile(id, "Sample customer for issue 135", false);
+ final ODataEntity original = getSampleCustomerProfile(id, "Sample customer for issue 135", false);
final URIBuilder uriBuilder = client.getURIBuilder(getServiceRoot()).appendEntitySetSegment("Customer");
final ODataEntityCreateRequest<ODataEntity> createReq =
@@ -278,7 +278,7 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
throws EdmPrimitiveTypeException {
final String sampleName = "Sample customer";
- final ODataEntity original = (ODataEntity) getSampleCustomerProfile(id, sampleName, false);
+ final ODataEntity original = getSampleCustomerProfile(id, sampleName, false);
final Set<Integer> keys = new HashSet<Integer>();
keys.add(-100);
@@ -288,12 +288,10 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
final ODataEntity order = client.getObjectFactory().
newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.AstoriaDefaultService.Order"));
- getClient().getBinder().add(order,
- client.getObjectFactory().newPrimitiveProperty("OrderId",
- client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(key)));
- getClient().getBinder().add(order,
- client.getObjectFactory().newPrimitiveProperty("CustomerId",
- client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(id)));
+ order.getProperties().add(client.getObjectFactory().newPrimitiveProperty("OrderId",
+ client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(key)));
+ order.getProperties().add(client.getObjectFactory().newPrimitiveProperty("CustomerId",
+ client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(id)));
final ODataEntityCreateRequest<ODataEntity> createReq = client.getCUDRequestFactory().getEntityCreateRequest(
client.getURIBuilder(getServiceRoot()).appendEntitySetSegment("Order").build(), order);
@@ -304,9 +302,9 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
createReq.execute().getBody().getEditLink()));
}
- final ODataEntity created = (ODataEntity) createEntity(getServiceRoot(), format, original, "Customer");
+ final ODataEntity created = createEntity(getServiceRoot(), format, original, "Customer");
// now, compare the created one with the actual one and go deeply into the associated customer info.....
- final ODataEntity actual = (ODataEntity) compareEntities(getServiceRoot(), format, created, id, null);
+ final ODataEntity actual = compareEntities(getServiceRoot(), format, created, id, null);
final URIBuilder uriBuilder = client.getURIBuilder(getServiceRoot());
uriBuilder.appendEntitySetSegment("Customer").appendKeySegment(id).appendEntitySetSegment("Orders");
@@ -381,8 +379,8 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
final String sampleName = "Sample customer";
- ODataEntity customer = (ODataEntity) getSampleCustomerProfile(id, sampleName, false);
- customer = (ODataEntity) createEntity(getServiceRoot(), format, customer, "Customer");
+ ODataEntity customer = getSampleCustomerProfile(id, sampleName, false);
+ customer = createEntity(getServiceRoot(), format, customer, "Customer");
ODataEntity order = client.getObjectFactory().newEntity(new FullQualifiedName(
"Microsoft.Test.OData.Services.AstoriaDefaultService.Order"));
@@ -396,9 +394,9 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
order.addLink(client.getObjectFactory().newEntityNavigationLink(
"Customer", URIUtils.getURI(getServiceRoot(), customer.getEditLink().toASCIIString())));
- order = (ODataEntity) createEntity(getServiceRoot(), format, order, "Order");
+ order = createEntity(getServiceRoot(), format, order, "Order");
- ODataEntity changes = client.getObjectFactory().newEntity(new FullQualifiedName(
+ final ODataEntity changes = client.getObjectFactory().newEntity(new FullQualifiedName(
"Microsoft.Test.OData.Services.AstoriaDefaultService.Customer"));
changes.setEditLink(customer.getEditLink());
changes.addLink(client.getObjectFactory().newEntitySetNavigationLink(
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/LinkTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/LinkTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/LinkTestITCase.java
index 17e66a2..a1476a5 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/LinkTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/LinkTestITCase.java
@@ -36,7 +36,6 @@ import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse
import org.apache.olingo.commons.api.domain.ODataLink;
import org.apache.olingo.client.api.domain.v3.ODataLinkCollection;
import org.apache.olingo.commons.api.format.ODataFormat;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
import org.apache.olingo.client.api.uri.v3.URIBuilder;
import org.junit.Test;
@@ -50,7 +49,7 @@ public class LinkTestITCase extends AbstractTestITCase {
}
private ODataLinkCollection doRetrieveLinkURIs(final ODataFormat format, final String linkname) throws IOException {
- final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(getServiceRoot()).
+ final URIBuilder uriBuilder = client.getURIBuilder(getServiceRoot()).
appendEntitySetSegment("Customer").appendKeySegment(-10);
final ODataLinkCollectionRequest req =
@@ -94,9 +93,9 @@ public class LinkTestITCase extends AbstractTestITCase {
// 2. create new link
final ODataLink newLink = client.getObjectFactory().
- newAssociationLink(null, URI.create(getServiceRoot() + "/Login('3')"));
+ newAssociationLink(URI.create(getServiceRoot() + "/Login('3')"));
- final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(getServiceRoot()).
+ final URIBuilder uriBuilder = client.getURIBuilder(getServiceRoot()).
appendEntitySetSegment("Customer").appendKeySegment(-10).appendLinksSegment("Logins");
final ODataLinkCreateRequest req =
@@ -133,8 +132,8 @@ public class LinkTestITCase extends AbstractTestITCase {
final URI before = doRetrieveLinkURIs(format, "Info").getLinks().get(0);
// 2. update the link
- ODataLink newLink =
- client.getObjectFactory().newAssociationLink(null, URI.create(getServiceRoot() + "/CustomerInfo(12)"));
+ ODataLink newLink = client.getObjectFactory().
+ newAssociationLink(URI.create(getServiceRoot() + "/CustomerInfo(12)"));
final URIBuilder uriBuilder = client.getURIBuilder(getServiceRoot());
uriBuilder.appendEntitySetSegment("Customer").appendKeySegment(-10).appendLinksSegment("Info");
@@ -151,7 +150,7 @@ public class LinkTestITCase extends AbstractTestITCase {
assertEquals(newLink.getLink(), after);
// 3. reset back the link value
- newLink = client.getObjectFactory().newAssociationLink(null, before);
+ newLink = client.getObjectFactory().newAssociationLink(before);
req = client.getCUDRequestFactory().getLinkUpdateRequest(uriBuilder.build(), updateType, newLink);
req.setFormat(format);
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/MediaEntityTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/MediaEntityTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/MediaEntityTestITCase.java
index 03bdf00..133e950 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/MediaEntityTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/MediaEntityTestITCase.java
@@ -18,9 +18,6 @@
*/
package org.apache.olingo.client.core.it.v3;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
@@ -36,18 +33,23 @@ import org.apache.olingo.client.api.communication.response.ODataMediaEntityCreat
import org.apache.olingo.client.api.communication.response.ODataMediaEntityUpdateResponse;
import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
import org.apache.olingo.client.api.communication.response.ODataStreamUpdateResponse;
-import org.apache.olingo.commons.api.domain.CommonODataEntity;
-import org.apache.olingo.commons.api.domain.CommonODataProperty;
+import org.apache.olingo.client.api.uri.v3.URIBuilder;
+import org.apache.olingo.commons.api.domain.v3.ODataEntity;
+import org.apache.olingo.commons.api.domain.v3.ODataProperty;
import org.apache.olingo.commons.api.format.ODataMediaFormat;
import org.apache.olingo.commons.api.format.ODataPubFormat;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotNull;
+
import org.junit.Test;
public class MediaEntityTestITCase extends AbstractTestITCase {
@Test
public void read() throws Exception {
- final CommonURIBuilder<?> builder = client.getURIBuilder(testStaticServiceRootURL).
+ final URIBuilder builder = client.getURIBuilder(testStaticServiceRootURL).
appendEntitySetSegment("Car").appendKeySegment(12).appendValueSegment();
final ODataMediaRequest retrieveReq = client.getRetrieveRequestFactory().getMediaRequest(builder.build());
@@ -62,7 +64,7 @@ public class MediaEntityTestITCase extends AbstractTestITCase {
@Test(expected = ODataClientErrorException.class)
public void readWithXmlError() throws Exception {
- final CommonURIBuilder<?> builder = client.getURIBuilder(testStaticServiceRootURL).
+ final URIBuilder builder = client.getURIBuilder(testStaticServiceRootURL).
appendEntitySetSegment("Car").appendKeySegment(12).appendValueSegment();
final ODataMediaRequest retrieveReq = client.getRetrieveRequestFactory().getMediaRequest(builder.build());
@@ -73,7 +75,7 @@ public class MediaEntityTestITCase extends AbstractTestITCase {
@Test(expected = ODataClientErrorException.class)
public void readWithJsonError() throws Exception {
- final CommonURIBuilder<?> builder = client.getURIBuilder(testStaticServiceRootURL).
+ final URIBuilder builder = client.getURIBuilder(testStaticServiceRootURL).
appendEntitySetSegment("Car").appendKeySegment(12).appendValueSegment();
final ODataMediaRequest retrieveReq = client.getRetrieveRequestFactory().getMediaRequest(builder.build());
@@ -109,7 +111,7 @@ public class MediaEntityTestITCase extends AbstractTestITCase {
@Test
public void updateNamedStream() throws Exception {
- CommonURIBuilder<?> builder = client.getURIBuilder(testStaticServiceRootURL).
+ URIBuilder builder = client.getURIBuilder(testStaticServiceRootURL).
appendEntitySetSegment("Car").appendKeySegment(16).appendNavigationSegment("Photo");
final String TO_BE_UPDATED = "buffered stream sample";
@@ -131,18 +133,18 @@ public class MediaEntityTestITCase extends AbstractTestITCase {
}
private void updateMediaEntity(final ODataPubFormat format, final int id) throws Exception {
- CommonURIBuilder<?> builder = client.getURIBuilder(testStaticServiceRootURL).
+ URIBuilder builder = client.getURIBuilder(testStaticServiceRootURL).
appendEntitySetSegment("Car").appendKeySegment(id).appendValueSegment();
final String TO_BE_UPDATED = "new buffered stream sample";
final InputStream input = IOUtils.toInputStream(TO_BE_UPDATED);
- final ODataMediaEntityUpdateRequest updateReq =
+ final ODataMediaEntityUpdateRequest<ODataEntity> updateReq =
client.getStreamedRequestFactory().getMediaEntityUpdateRequest(builder.build(), input);
updateReq.setFormat(format);
- final MediaEntityUpdateStreamManager streamManager = updateReq.execute();
- final ODataMediaEntityUpdateResponse updateRes = streamManager.getResponse();
+ final MediaEntityUpdateStreamManager<ODataEntity> streamManager = updateReq.execute();
+ final ODataMediaEntityUpdateResponse<ODataEntity> updateRes = streamManager.getResponse();
assertEquals(204, updateRes.getStatusCode());
final ODataMediaRequest retrieveReq = client.getRetrieveRequestFactory().getMediaRequest(builder.build());
@@ -153,23 +155,23 @@ public class MediaEntityTestITCase extends AbstractTestITCase {
}
private void createMediaEntity(final ODataPubFormat format, final InputStream input) throws Exception {
- final CommonURIBuilder<?> builder = client.getURIBuilder(testStaticServiceRootURL).
+ final URIBuilder builder = client.getURIBuilder(testStaticServiceRootURL).
appendEntitySetSegment("Car");
- final ODataMediaEntityCreateRequest createReq =
+ final ODataMediaEntityCreateRequest<ODataEntity> createReq =
client.getStreamedRequestFactory().getMediaEntityCreateRequest(builder.build(), input);
createReq.setFormat(format);
- final MediaEntityCreateStreamManager streamManager = createReq.execute();
- final ODataMediaEntityCreateResponse createRes = streamManager.getResponse();
+ final MediaEntityCreateStreamManager<ODataEntity> streamManager = createReq.execute();
+ final ODataMediaEntityCreateResponse<ODataEntity> createRes = streamManager.getResponse();
assertEquals(201, createRes.getStatusCode());
- final CommonODataEntity created = createRes.getBody();
+ final ODataEntity created = createRes.getBody();
assertNotNull(created);
assertEquals(2, created.getProperties().size());
Integer id = null;
- for (CommonODataProperty prop : created.getProperties()) {
+ for (ODataProperty prop : created.getProperties()) {
if ("VIN".equals(prop.getName())) {
id = prop.getPrimitiveValue().toCastValue(Integer.class);
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v4/BatchTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v4/BatchTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v4/BatchTestITCase.java
index d9465a5..b1d2194 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v4/BatchTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v4/BatchTestITCase.java
@@ -159,7 +159,7 @@ public class BatchTestITCase extends AbstractTestITCase {
final ODataChangeset changeset = streamManager.addChangeset();
ODataEntity order = newOrder(20);
- URIBuilder uriBuilder = client.getURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
+ final URIBuilder uriBuilder = client.getURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
// add create request
final ODataEntityCreateRequest<ODataEntity> createReq =
@@ -176,13 +176,13 @@ public class BatchTestITCase extends AbstractTestITCase {
"OrderDetails",
client.getURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("OrderDetails").
appendKeySegment(new HashMap<String, Object>() {
- private static final long serialVersionUID = 3109256773218160485L;
+ private static final long serialVersionUID = 3109256773218160485L;
- {
- put("OrderID", 7);
- put("ProductID", 5);
- }
- }).build()));
+ {
+ put("OrderID", 7);
+ put("ProductID", 5);
+ }
+ }).build()));
final ODataEntityUpdateRequest<ODataEntity> updateReq = client.getCUDRequestFactory().getEntityUpdateRequest(
URI.create("$" + createRequestRef), UpdateType.PATCH, customerChanges);
@@ -206,7 +206,7 @@ public class BatchTestITCase extends AbstractTestITCase {
assertTrue(res instanceof ODataEntityCreateResponse);
order = ((ODataEntityCreateResponse<ODataEntity>) res).getBody();
- ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().getEntitySetRequest(
+ final ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().getEntitySetRequest(
URIUtils.getURI(testStaticServiceRootURL, order.getEditLink().toASCIIString() + "/OrderDetails"));
assertEquals(Integer.valueOf(7),
@@ -274,7 +274,7 @@ public class BatchTestITCase extends AbstractTestITCase {
"LastName",
client.getObjectFactory().newPrimitiveValueBuilder().buildString("new last name")));
- final ODataEntityUpdateRequest changeReq =
+ final ODataEntityUpdateRequest<ODataEntity> changeReq =
client.getCUDRequestFactory().getEntityUpdateRequest(UpdateType.PATCH, patch);
changeReq.setFormat(ODataPubFormat.JSON_FULL_METADATA);
@@ -295,8 +295,7 @@ public class BatchTestITCase extends AbstractTestITCase {
retrieve = streamManager.addRetrieve();
// prepare URI
- targetURI = client.getURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("Customers").appendKeySegment(1);
+ targetURI = client.getURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").appendKeySegment(1);
// create new request
queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
@@ -309,7 +308,7 @@ public class BatchTestITCase extends AbstractTestITCase {
assertEquals("OK", response.getStatusMessage());
final Iterator<ODataBatchResponseItem> iter = response.getBody();
- // retrive the first item (ODataRetrieve)
+ // retrieve the first item (ODataRetrieve)
ODataBatchResponseItem item = iter.next();
assertTrue(item instanceof ODataRetrieveResponseItem);
@@ -368,13 +367,13 @@ public class BatchTestITCase extends AbstractTestITCase {
super(new Wrapper<Future<HttpResponse>>());
}
- public ODataStreamManager<ODataBatchResponse> addObject(byte[] src) {
+ public ODataStreamManager<ODataBatchResponse> addObject(final byte[] src) {
stream(src);
return this;
}
@Override
- protected ODataBatchResponse getResponse(long timeout, TimeUnit unit) {
+ protected ODataBatchResponse getResponse(final long timeout, final TimeUnit unit) {
throw new UnsupportedOperationException("Not supported yet.");
}
};
@@ -387,6 +386,7 @@ public class BatchTestITCase extends AbstractTestITCase {
private final TestStreamManager streaming;
public StreamingThread(final TestStreamManager streaming) {
+ super();
this.streaming = streaming;
}
@@ -422,6 +422,7 @@ public class BatchTestITCase extends AbstractTestITCase {
private final BatchStreamManager streaming;
public BatchStreamingThread(final BatchStreamManager streaming) {
+ super();
this.streaming = streaming;
}
@@ -430,7 +431,7 @@ public class BatchTestITCase extends AbstractTestITCase {
try {
final StringBuilder builder = new StringBuilder();
- byte[] buff = new byte[1024];
+ final byte[] buff = new byte[1024];
int len;
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v4/EntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v4/EntityCreateTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v4/EntityCreateTestITCase.java
index 9385daa..6a736c6 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v4/EntityCreateTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v4/EntityCreateTestITCase.java
@@ -32,10 +32,13 @@ import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateR
import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
import org.apache.olingo.commons.api.domain.ODataCollectionValue;
+import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
+import org.apache.olingo.commons.api.domain.ODataLink;
import org.apache.olingo.commons.api.domain.v4.ODataEntity;
import org.apache.olingo.commons.api.domain.v4.ODataEntitySet;
import org.apache.olingo.commons.api.domain.v4.ODataProperty;
import org.apache.olingo.commons.api.domain.v4.ODataValue;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.api.format.ODataPubFormat;
@@ -167,4 +170,83 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
public void jsonOnContained() {
onContained(ODataPubFormat.JSON);
}
+
+ private void deepInsert(final ODataPubFormat format) throws EdmPrimitiveTypeException {
+ final int productId = RandomUtils.nextInt(10, 20);
+ final ODataEntity product = getClient().getObjectFactory().
+ newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Product"));
+ product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductID",
+ getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(productId)));
+ product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Name",
+ getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("Latte")));
+ product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("QuantityPerUnit",
+ getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("100g Bag")));
+ product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("UnitPrice",
+ getClient().getObjectFactory().newPrimitiveValueBuilder().buildSingle(3.24f)));
+ product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("QuantityInStock",
+ getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(100)));
+ product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Discontinued",
+ getClient().getObjectFactory().newPrimitiveValueBuilder().buildBoolean(false)));
+ product.getProperties().add(getClient().getObjectFactory().newEnumProperty("UserAccess",
+ getClient().getObjectFactory().
+ newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", "Execute")));
+ product.getProperties().add(getClient().getObjectFactory().newEnumProperty("SkinColor",
+ getClient().getObjectFactory().
+ newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.Color", "Blue")));
+ product.getProperties().add(getClient().getObjectFactory().newCollectionProperty("CoverColors",
+ getClient().getObjectFactory().
+ newCollectionValue("Collection(Microsoft.Test.OData.Services.ODataWCFService.ProductDetail)")));
+ product.getProperty("CoverColors").getCollectionValue().add(getClient().getObjectFactory().
+ newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.Color", "Green"));
+ product.getProperty("CoverColors").getCollectionValue().add(getClient().getObjectFactory().
+ newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.Color", "Red"));
+
+ final int productDetailId = RandomUtils.nextInt(10, 20);
+ final ODataEntity detail = getClient().getObjectFactory().
+ newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.ProductDetail"));
+ detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductID",
+ getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(productId)));
+ detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductDetailID",
+ getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(productDetailId)));
+ detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductName",
+ getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("LatteHQ")));
+ detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Description",
+ getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("High-Quality Milk")));
+
+ final ODataEntitySet details = getClient().getObjectFactory().newEntitySet();
+ details.getEntities().add(detail);
+
+ final ODataInlineEntitySet inlineDetails = getClient().getObjectFactory().
+ newDeepInsertEntitySet("Details", details);
+ product.addLink(inlineDetails);
+
+ final ODataEntityCreateRequest<ODataEntity> req = getClient().getCUDRequestFactory().getEntityCreateRequest(
+ getClient().getURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Products").build(), product);
+ req.setFormat(format);
+ final ODataEntityCreateResponse<ODataEntity> res = req.execute();
+ assertEquals(201, res.getStatusCode());
+
+ final ODataEntity createdProduct = res.getBody();
+ assertEquals(productId,
+ createdProduct.getProperty("ProductID").getPrimitiveValue().toCastValue(Integer.class), 0);
+
+ final ODataLink createdLink = createdProduct.getNavigationLink("Details");
+ assertNotNull(createdLink);
+
+ final ODataEntitySet createdProductDetails =
+ getClient().getRetrieveRequestFactory().getEntitySetRequest(createdLink.getLink()).execute().getBody();
+ assertNotNull(createdProductDetails);
+ assertEquals(productDetailId, createdProductDetails.getEntities().iterator().next().
+ getProperty("ProductDetailID").getPrimitiveValue().toCastValue(Integer.class), 0);
+ }
+
+ @Test
+ public void atomDeepInsert() throws EdmPrimitiveTypeException {
+ deepInsert(ODataPubFormat.ATOM);
+ }
+
+ @Test
+ public void jsonDeepInsert() throws EdmPrimitiveTypeException {
+ deepInsert(ODataPubFormat.JSON_FULL_METADATA);
+ }
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v4/EntityUpdateTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v4/EntityUpdateTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v4/EntityUpdateTestITCase.java
index e1e6331..36a9e65 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v4/EntityUpdateTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v4/EntityUpdateTestITCase.java
@@ -18,19 +18,21 @@
*/
package org.apache.olingo.client.core.it.v4;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
import java.net.URI;
import java.util.Calendar;
import java.util.UUID;
import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
import org.apache.olingo.client.api.communication.request.cud.v4.UpdateType;
import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
+import org.apache.olingo.commons.api.domain.ODataLink;
import org.apache.olingo.commons.api.domain.v4.ODataEntity;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.api.format.ODataPubFormat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
import org.junit.Test;
public class EntityUpdateTestITCase extends AbstractTestITCase {
@@ -112,4 +114,41 @@ public class EntityUpdateTestITCase extends AbstractTestITCase {
onContained(ODataPubFormat.JSON);
}
+ private void bindOperation(final ODataPubFormat format) throws EdmPrimitiveTypeException {
+ final ODataEntity changes = getClient().getObjectFactory().newEntity(
+ new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
+ final ODataLink parent = getClient().getObjectFactory().newEntityNavigationLink("Parent",
+ getClient().getURIBuilder(testStaticServiceRootURL).
+ appendEntitySetSegment("People").appendKeySegment(1).build());
+ changes.getNavigationLinks().add(parent);
+
+ final URI uri = getClient().getURIBuilder(testStaticServiceRootURL).
+ appendEntitySetSegment("People").appendKeySegment(5).build();
+ final ODataEntityUpdateRequest<ODataEntity> req = getClient().getCUDRequestFactory().
+ getEntityUpdateRequest(uri, UpdateType.PATCH, changes);
+ req.setFormat(format);
+
+ final ODataEntityUpdateResponse<ODataEntity> res = req.execute();
+ assertEquals(204, res.getStatusCode());
+
+ final ODataEntity updated = getClient().getRetrieveRequestFactory().getEntityRequest(uri).execute().getBody();
+ assertNotNull(updated);
+ final ODataLink updatedLink = updated.getNavigationLink("Parent");
+ assertNotNull(updatedLink);
+
+ final ODataEntity updatedEntity = getClient().getRetrieveRequestFactory().getEntityRequest(updatedLink.getLink()).
+ execute().getBody();
+ assertNotNull(updatedEntity);
+ assertEquals(1, updatedEntity.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
+ }
+
+ @Test
+ public void atomBindOperation() throws EdmPrimitiveTypeException {
+ bindOperation(ODataPubFormat.ATOM);
+ }
+
+ @Test
+ public void jsonBindOperation() throws EdmPrimitiveTypeException {
+ bindOperation(ODataPubFormat.JSON);
+ }
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/CommonODataObjectFactory.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/CommonODataObjectFactory.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/CommonODataObjectFactory.java
index b3945bf..eead623 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/CommonODataObjectFactory.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/CommonODataObjectFactory.java
@@ -59,65 +59,22 @@ public interface CommonODataObjectFactory {
CommonODataEntity newEntity(FullQualifiedName typeName, URI link);
/**
- * Instantiates a new in-line entity set.
+ * Instantiates a new entity set (for deep insert).
*
* @param name name.
- * @param link edit link.
* @param entitySet entity set.
* @return in-line entity set.
*/
- ODataInlineEntitySet newInlineEntitySet(String name, URI link, CommonODataEntitySet entitySet);
+ ODataInlineEntitySet newDeepInsertEntitySet(String name, CommonODataEntitySet entitySet);
/**
- * Instantiates a new in-line entity set.
+ * Instantiates a new entity (for deep insert).
*
* @param name name.
- * @param baseURI base URI.
- * @param href href.
- * @param entitySet entity set.
- * @return in-line entity set.
- */
- ODataInlineEntitySet newInlineEntitySet(String name, URI baseURI, String href, CommonODataEntitySet entitySet);
-
- /**
- * Instantiates a new in-line entity.
- *
- * @param name name.
- * @param link edit link.
- * @param entity entity.
- * @return in-line entity.
- */
- ODataInlineEntity newInlineEntity(String name, URI link, CommonODataEntity entity);
-
- /**
- * Instantiates a new in-line entity.
- *
- * @param name name.
- * @param baseURI base URI.
- * @param href href.
* @param entity entity.
* @return in-line entity.
*/
- ODataInlineEntity newInlineEntity(String name, URI baseURI, String href, CommonODataEntity entity);
-
- /**
- * Instantiates a new entity navigation link.
- *
- * @param name name.
- * @param link link.
- * @return entity navigation link.
- */
- ODataLink newEntityNavigationLink(String name, URI link);
-
- /**
- * Instantiates a new entity navigation link.
- *
- * @param name name.
- * @param baseURI base URI.
- * @param href href.
- * @return entity navigation link.
- */
- ODataLink newEntityNavigationLink(String name, URI baseURI, String href);
+ ODataInlineEntity newDeepInsertEntity(String name, CommonODataEntity entity);
/**
* Instantiates a new entity set navigation link.
@@ -129,52 +86,13 @@ public interface CommonODataObjectFactory {
ODataLink newEntitySetNavigationLink(String name, URI link);
/**
- * Instantiates a new entity set navigation link.
- *
- * @param name name.
- * @param baseURI base URI.
- * @param href href.
- * @return entity set navigation link.
- */
- ODataLink newEntitySetNavigationLink(String name, URI baseURI, String href);
-
- /**
- * Instantiates a new association link.
- *
- * @param name name.
- * @param link link.
- * @return association link.
- */
- ODataLink newAssociationLink(String name, URI link);
-
- /**
- * Instantiates a new association link.
- *
- * @param name name.
- * @param baseURI base URI.
- * @param href href.
- * @return association link.
- */
- ODataLink newAssociationLink(String name, URI baseURI, String href);
-
- /**
- * Instantiates a new media-edit link.
+ * Instantiates a new entity navigation link.
*
* @param name name.
* @param link link.
- * @return media-edit link.
- */
- ODataLink newMediaEditLink(String name, URI link);
-
- /**
- * Instantiates a new media-edit link.
- *
- * @param name name.
- * @param baseURI base URI.
- * @param href href.
- * @return media-edit link.
+ * @return entity navigation link.
*/
- ODataLink newMediaEditLink(String name, URI baseURI, String href);
+ ODataLink newEntityNavigationLink(String name, URI link);
ODataPrimitiveValue.Builder newPrimitiveValueBuilder();
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v3/ODataObjectFactory.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v3/ODataObjectFactory.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v3/ODataObjectFactory.java
index 28b4c9e..096e8e9 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v3/ODataObjectFactory.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v3/ODataObjectFactory.java
@@ -23,6 +23,7 @@ import org.apache.olingo.commons.api.domain.CommonODataObjectFactory;
import org.apache.olingo.commons.api.domain.CommonODataProperty;
import org.apache.olingo.commons.api.domain.ODataCollectionValue;
import org.apache.olingo.commons.api.domain.ODataComplexValue;
+import org.apache.olingo.commons.api.domain.ODataLink;
import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
import org.apache.olingo.commons.api.domain.ODataValue;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
@@ -41,6 +42,14 @@ public interface ODataObjectFactory extends CommonODataObjectFactory {
@Override
ODataEntity newEntity(FullQualifiedName typeName, URI link);
+ /**
+ * Instantiates a new association link.
+ *
+ * @param link link.
+ * @return association link.
+ */
+ ODataLink newAssociationLink(URI link);
+
@Override
ODataComplexValue<ODataProperty> newComplexValue(String typeName);
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractJsonSerializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractJsonSerializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractJsonSerializer.java
index 2fa89d4..362552f 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractJsonSerializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractJsonSerializer.java
@@ -77,7 +77,9 @@ abstract class AbstractJsonSerializer<T> extends ODataJacksonSerializer<T> {
uris = new ArrayList<String>();
entitySetLinks.put(link.getTitle(), uris);
}
- uris.add(link.getHref());
+ if (StringUtils.isNotBlank(link.getHref())) {
+ uris.add(link.getHref());
+ }
} else {
if (StringUtils.isNotBlank(link.getHref())) {
jgen.writeStringField(link.getTitle() + Constants.JSON_BIND_LINK_SUFFIX, link.getHref());
@@ -95,11 +97,13 @@ abstract class AbstractJsonSerializer<T> extends ODataJacksonSerializer<T> {
}
}
for (Map.Entry<String, List<String>> entitySetLink : entitySetLinks.entrySet()) {
- jgen.writeArrayFieldStart(entitySetLink.getKey() + Constants.JSON_BIND_LINK_SUFFIX);
- for (String uri : entitySetLink.getValue()) {
- jgen.writeString(uri);
+ if (!entitySetLink.getValue().isEmpty()) {
+ jgen.writeArrayFieldStart(entitySetLink.getKey() + Constants.JSON_BIND_LINK_SUFFIX);
+ for (String uri : entitySetLink.getValue()) {
+ jgen.writeString(uri);
+ }
+ jgen.writeEndArray();
}
- jgen.writeEndArray();
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomSerializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomSerializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomSerializer.java
index e953948..65cb6b2 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomSerializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomSerializer.java
@@ -445,6 +445,14 @@ public class AtomSerializer extends AbstractAtomDealer {
final XMLStreamWriter writer, final Container<T> container) throws XMLStreamException {
if (container.getContextURL() != null) {
+ final String base = StringUtils.substringBefore(container.getContextURL().toASCIIString(), Constants.METADATA);
+ if (container.getObject() instanceof AtomFeedImpl) {
+ ((AtomFeedImpl) container.getObject()).setBaseURI(base);
+ }
+ if (container.getObject() instanceof AtomEntryImpl) {
+ ((AtomEntryImpl) container.getObject()).setBaseURI(base);
+ }
+
writer.writeAttribute(
version.getNamespaceMap().get(ODataServiceVersion.NS_METADATA),
Constants.CONTEXT,
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntryDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntryDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntryDeserializer.java
index 5730ee9..3493648 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntryDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntryDeserializer.java
@@ -30,6 +30,7 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
+import org.apache.commons.lang3.StringUtils;
import org.apache.olingo.commons.api.Constants;
import org.apache.olingo.commons.api.data.Container;
import org.apache.olingo.commons.api.data.Link;
@@ -55,17 +56,9 @@ public class JSONEntryDeserializer extends AbstractJsonDeserializer<JSONEntryImp
throw new JsonParseException("Expected OData Entity, found EntitySet", parser.getCurrentLocation());
}
- final String metadataETag;
- final URI contextURL;
final JSONEntryImpl entry = new JSONEntryImpl();
- if (tree.hasNonNull(Constants.JSON_METADATA_ETAG)) {
- metadataETag = tree.get(Constants.JSON_METADATA_ETAG).textValue();
- tree.remove(Constants.JSON_METADATA_ETAG);
- } else {
- metadataETag = null;
- }
-
+ final URI contextURL;
if (tree.hasNonNull(Constants.JSON_CONTEXT)) {
contextURL = URI.create(tree.get(Constants.JSON_CONTEXT).textValue());
tree.remove(Constants.JSON_CONTEXT);
@@ -75,10 +68,16 @@ public class JSONEntryDeserializer extends AbstractJsonDeserializer<JSONEntryImp
} else {
contextURL = null;
}
-
if (contextURL != null) {
- String url = contextURL.toASCIIString();
- entry.setBaseURI(url.substring(0, url.indexOf(Constants.METADATA)));
+ entry.setBaseURI(StringUtils.substringBefore(contextURL.toASCIIString(), Constants.METADATA));
+ }
+
+ final String metadataETag;
+ if (tree.hasNonNull(Constants.JSON_METADATA_ETAG)) {
+ metadataETag = tree.get(Constants.JSON_METADATA_ETAG).textValue();
+ tree.remove(Constants.JSON_METADATA_ETAG);
+ } else {
+ metadataETag = null;
}
if (tree.hasNonNull(jsonETag)) {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntrySerializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntrySerializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntrySerializer.java
index bdfa439..d12bdad 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntrySerializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntrySerializer.java
@@ -58,8 +58,15 @@ public class JSONEntrySerializer extends AbstractJsonSerializer<JSONEntryImpl> {
}
if (serverMode) {
- if (version.compareTo(ODataServiceVersion.V40) >= 0 && StringUtils.isNotBlank(container.getMetadataETag())) {
- jgen.writeStringField(Constants.JSON_METADATA_ETAG, container.getMetadataETag());
+ if (container.getContextURL() != null) {
+ jgen.writeStringField(version.compareTo(ODataServiceVersion.V40) >= 0
+ ? Constants.JSON_CONTEXT : Constants.JSON_METADATA,
+ container.getContextURL().toASCIIString());
+ }
+ if (version.compareTo(ODataServiceVersion.V40) >= 0) {
+ if (StringUtils.isNotBlank(container.getMetadataETag())) {
+ jgen.writeStringField(Constants.JSON_METADATA_ETAG, container.getMetadataETag());
+ }
}
if (StringUtils.isNotBlank(entry.getETag())) {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONFeedDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONFeedDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONFeedDeserializer.java
index 3c180b9..238e56b 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONFeedDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONFeedDeserializer.java
@@ -47,17 +47,9 @@ public class JSONFeedDeserializer extends AbstractJsonDeserializer<JSONFeedImpl>
return null;
}
- final String metadataETag;
- final URI contextURL;
final JSONFeedImpl feed = new JSONFeedImpl();
- if (tree.hasNonNull(Constants.JSON_METADATA_ETAG)) {
- metadataETag = tree.get(Constants.JSON_METADATA_ETAG).textValue();
- tree.remove(Constants.JSON_METADATA_ETAG);
- } else {
- metadataETag = null;
- }
-
+ final URI contextURL;
if (tree.hasNonNull(Constants.JSON_CONTEXT)) {
contextURL = URI.create(tree.get(Constants.JSON_CONTEXT).textValue());
tree.remove(Constants.JSON_CONTEXT);
@@ -67,9 +59,16 @@ public class JSONFeedDeserializer extends AbstractJsonDeserializer<JSONFeedImpl>
} else {
contextURL = null;
}
-
feed.setMetadataContextURL(contextURL);
+ final String metadataETag;
+ if (tree.hasNonNull(Constants.JSON_METADATA_ETAG)) {
+ metadataETag = tree.get(Constants.JSON_METADATA_ETAG).textValue();
+ tree.remove(Constants.JSON_METADATA_ETAG);
+ } else {
+ metadataETag = null;
+ }
+
if (tree.hasNonNull(Constants.JSON_COUNT)) {
feed.setCount(tree.get(Constants.JSON_COUNT).asInt());
}
@@ -81,8 +80,8 @@ public class JSONFeedDeserializer extends AbstractJsonDeserializer<JSONFeedImpl>
for (final Iterator<JsonNode> itor = tree.get(Constants.VALUE).iterator(); itor.hasNext();) {
feed.getEntries().add(
itor.next().traverse(parser.getCodec()).<Container<JSONEntryImpl>>readValueAs(
- new TypeReference<JSONEntryImpl>() {
- }).getObject());
+ new TypeReference<JSONEntryImpl>() {
+ }).getObject());
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataObjectFactory.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataObjectFactory.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataObjectFactory.java
index 43853fa..0e438c5 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataObjectFactory.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataObjectFactory.java
@@ -39,29 +39,13 @@ public abstract class AbstractODataObjectFactory implements CommonODataObjectFac
}
@Override
- public ODataInlineEntitySet newInlineEntitySet(final String name, final URI link,
- final CommonODataEntitySet entitySet) {
-
- return new ODataInlineEntitySet(version, link, ODataLinkType.ENTITY_SET_NAVIGATION, name, entitySet);
- }
-
- @Override
- public ODataInlineEntitySet newInlineEntitySet(final String name, final URI baseURI, final String href,
- final CommonODataEntitySet entitySet) {
-
- return new ODataInlineEntitySet(version, baseURI, href, ODataLinkType.ENTITY_SET_NAVIGATION, name, entitySet);
- }
-
- @Override
- public ODataInlineEntity newInlineEntity(final String name, final URI link, final CommonODataEntity entity) {
- return new ODataInlineEntity(version, link, ODataLinkType.ENTITY_NAVIGATION, name, entity);
+ public ODataInlineEntitySet newDeepInsertEntitySet(final String name, final CommonODataEntitySet entitySet) {
+ return new ODataInlineEntitySet(version, null, ODataLinkType.ENTITY_SET_NAVIGATION, name, entitySet);
}
@Override
- public ODataInlineEntity newInlineEntity(final String name, final URI baseURI, final String href,
- final CommonODataEntity entity) {
-
- return new ODataInlineEntity(version, baseURI, href, ODataLinkType.ENTITY_NAVIGATION, name, entity);
+ public ODataInlineEntity newDeepInsertEntity(final String name, final CommonODataEntity entity) {
+ return new ODataInlineEntity(version, null, ODataLinkType.ENTITY_NAVIGATION, name, entity);
}
@Override
@@ -71,45 +55,8 @@ public abstract class AbstractODataObjectFactory implements CommonODataObjectFac
}
@Override
- public ODataLink newEntityNavigationLink(final String name, final URI baseURI, final String href) {
- return new ODataLink.Builder().setVersion(version).setURI(baseURI, href).
- setType(ODataLinkType.ENTITY_NAVIGATION).setTitle(name).build();
- }
-
- @Override
public ODataLink newEntitySetNavigationLink(final String name, final URI link) {
return new ODataLink.Builder().setVersion(version).setURI(link).
setType(ODataLinkType.ENTITY_SET_NAVIGATION).setTitle(name).build();
}
-
- @Override
- public ODataLink newEntitySetNavigationLink(final String name, final URI baseURI, final String href) {
- return new ODataLink.Builder().setVersion(version).setURI(baseURI, href).
- setType(ODataLinkType.ENTITY_SET_NAVIGATION).setTitle(name).build();
- }
-
- @Override
- public ODataLink newAssociationLink(final String name, final URI link) {
- return new ODataLink.Builder().setVersion(version).setURI(link).
- setType(ODataLinkType.ASSOCIATION).setTitle(name).build();
- }
-
- @Override
- public ODataLink newAssociationLink(final String name, final URI baseURI, final String href) {
- return new ODataLink.Builder().setVersion(version).setURI(baseURI, href).
- setType(ODataLinkType.ASSOCIATION).setTitle(name).build();
- }
-
- @Override
- public ODataLink newMediaEditLink(final String name, final URI link) {
- return new ODataLink.Builder().setVersion(version).setURI(link).
- setType(ODataLinkType.MEDIA_EDIT).setTitle(name).build();
- }
-
- @Override
- public ODataLink newMediaEditLink(final String name, final URI baseURI, final String href) {
- return new ODataLink.Builder().setVersion(version).setURI(baseURI, href).
- setType(ODataLinkType.MEDIA_EDIT).setTitle(name).build();
- }
-
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3bb39def/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/v3/ODataObjectFactoryImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/v3/ODataObjectFactoryImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/v3/ODataObjectFactoryImpl.java
index 1f41c59..f488ed9 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/v3/ODataObjectFactoryImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/v3/ODataObjectFactoryImpl.java
@@ -22,6 +22,8 @@ import java.net.URI;
import org.apache.olingo.commons.api.domain.CommonODataProperty;
import org.apache.olingo.commons.api.domain.ODataCollectionValue;
import org.apache.olingo.commons.api.domain.ODataComplexValue;
+import org.apache.olingo.commons.api.domain.ODataLink;
+import org.apache.olingo.commons.api.domain.ODataLinkType;
import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
import org.apache.olingo.commons.api.domain.ODataValue;
import org.apache.olingo.commons.api.domain.v3.ODataEntitySet;
@@ -61,6 +63,11 @@ public class ODataObjectFactoryImpl extends AbstractODataObjectFactory implement
}
@Override
+ public ODataLink newAssociationLink(final URI link) {
+ return new ODataLink.Builder().setVersion(version).setURI(link).setType(ODataLinkType.ASSOCIATION).build();
+ }
+
+ @Override
public ODataPrimitiveValue.Builder newPrimitiveValueBuilder() {
return new ODataPrimitiveValueImpl.BuilderImpl(version);
}