You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by sk...@apache.org on 2014/04/04 07:26:11 UTC
[07/51] [abbrv] [OLINGO-200] Introducing specialization for V3 and V4
domain objects
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/v4/RetrieveRequestFactoryImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/v4/RetrieveRequestFactoryImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/v4/RetrieveRequestFactoryImpl.java
index 69f6f2a..a32a153 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/v4/RetrieveRequestFactoryImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/v4/RetrieveRequestFactoryImpl.java
@@ -18,10 +18,20 @@
*/
package org.apache.olingo.client.core.communication.request.retrieve.v4;
+import java.net.URI;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataPropertyRequest;
import org.apache.olingo.client.api.communication.request.retrieve.XMLMetadataRequest;
-import org.apache.olingo.client.api.v4.ODataClient;
import org.apache.olingo.client.api.communication.request.retrieve.v4.RetrieveRequestFactory;
+import org.apache.olingo.client.api.v4.ODataClient;
import org.apache.olingo.client.core.communication.request.retrieve.AbstractRetrieveRequestFactory;
+import org.apache.olingo.client.core.communication.request.retrieve.ODataEntityRequestImpl;
+import org.apache.olingo.client.core.communication.request.retrieve.ODataEntitySetRequestImpl;
+import org.apache.olingo.client.core.communication.request.retrieve.ODataPropertyRequestImpl;
+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;
public class RetrieveRequestFactoryImpl extends AbstractRetrieveRequestFactory
implements RetrieveRequestFactory {
@@ -37,4 +47,22 @@ public class RetrieveRequestFactoryImpl extends AbstractRetrieveRequestFactory
return new XMLMetadataRequestImpl(((ODataClient) client),
client.getURIBuilder(serviceRoot).appendMetadataSegment().build());
}
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public ODataEntitySetRequest<ODataEntitySet> getEntitySetRequest(final URI query) {
+ return new ODataEntitySetRequestImpl<ODataEntitySet>(client, query);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public ODataEntityRequest<ODataEntity> getEntityRequest(final URI query) {
+ return new ODataEntityRequestImpl<ODataEntity>(client, query);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public ODataPropertyRequest<ODataProperty> getPropertyRequest(final URI query) {
+ return new ODataPropertyRequestImpl<ODataProperty>(client, query);
+ }
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/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 f7e5ffa..2c1dd22 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
@@ -28,7 +28,7 @@ import org.apache.olingo.client.api.communication.request.ODataBatchableRequest;
import org.apache.olingo.client.api.communication.request.streamed.MediaEntityCreateStreamManager;
import org.apache.olingo.client.api.communication.request.streamed.ODataMediaEntityCreateRequest;
import org.apache.olingo.client.api.communication.response.ODataMediaEntityCreateResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.client.core.communication.request.AbstractODataStreamManager;
import org.apache.olingo.client.core.communication.response.AbstractODataResponse;
@@ -98,7 +98,7 @@ public class ODataMediaEntityCreateRequestImpl
private class ODataMediaEntityCreateResponseImpl extends AbstractODataResponse
implements ODataMediaEntityCreateResponse {
- private ODataEntity entity = null;
+ private CommonODataEntity entity = null;
/**
* Constructor.
@@ -122,7 +122,7 @@ public class ODataMediaEntityCreateRequestImpl
* {@inheritDoc }
*/
@Override
- public ODataEntity getBody() {
+ public CommonODataEntity getBody() {
if (entity == null) {
try {
final Container<Entry> container = odataClient.getDeserializer().toEntry(getRawResponse(), getFormat());
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/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 a22843f..614baa1 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
@@ -28,7 +28,7 @@ import org.apache.olingo.client.api.communication.request.ODataBatchableRequest;
import org.apache.olingo.client.api.communication.request.streamed.MediaEntityUpdateStreamManager;
import org.apache.olingo.client.api.communication.request.streamed.ODataMediaEntityUpdateRequest;
import org.apache.olingo.client.api.communication.response.ODataMediaEntityUpdateResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.client.core.communication.request.AbstractODataStreamManager;
import org.apache.olingo.client.core.communication.response.AbstractODataResponse;
@@ -101,7 +101,7 @@ public class ODataMediaEntityUpdateRequestImpl
private class ODataMediaEntityUpdateResponseImpl extends AbstractODataResponse
implements ODataMediaEntityUpdateResponse {
- private ODataEntity entity = null;
+ private CommonODataEntity entity = null;
/**
* Constructor.
@@ -125,7 +125,7 @@ public class ODataMediaEntityUpdateRequestImpl
* {@inheritDoc }
*/
@Override
- public ODataEntity getBody() {
+ public CommonODataEntity getBody() {
if (entity == null) {
try {
final Container<Entry> container = odataClient.getDeserializer().toEntry(getRawResponse(), getFormat());
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/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 2a0ea4f..4c86604 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
@@ -35,14 +35,13 @@ import org.apache.olingo.commons.api.data.Property;
import org.apache.olingo.commons.api.data.Value;
import org.apache.olingo.commons.api.domain.ODataCollectionValue;
import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
+import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
import org.apache.olingo.commons.api.domain.ODataInlineEntity;
import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
import org.apache.olingo.commons.api.domain.ODataLink;
import org.apache.olingo.commons.api.domain.ODataOperation;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.core.domain.ODataPropertyImpl;
+import org.apache.olingo.commons.api.domain.CommonODataProperty;
import org.apache.olingo.commons.api.domain.ODataServiceDocument;
import org.apache.olingo.commons.api.domain.ODataValue;
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
@@ -89,7 +88,7 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
}
@Override
- public Feed getFeed(final ODataEntitySet entitySet, final Class<? extends Feed> reference) {
+ public Feed getFeed(final CommonODataEntitySet entitySet, final Class<? extends Feed> reference) {
final Feed feed = ResourceFactory.newFeed(reference);
feed.setCount(entitySet.getCount());
@@ -99,7 +98,7 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
feed.setNext(next);
}
- for (ODataEntity entity : entitySet.getEntities()) {
+ for (CommonODataEntity entity : entitySet.getEntities()) {
feed.getEntries().add(getEntry(entity, ResourceFactory.entryClassForFeed(reference)));
}
@@ -107,15 +106,14 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
}
@Override
- public Entry getEntry(final ODataEntity entity, final Class<? extends Entry> reference) {
+ public Entry getEntry(final CommonODataEntity entity, final Class<? extends Entry> reference) {
return getEntry(entity, reference, true);
}
@Override
- public Entry getEntry(final ODataEntity entity, final Class<? extends Entry> reference, final boolean setType) {
+ public Entry getEntry(final CommonODataEntity entity, final Class<? extends Entry> reference, final boolean setType) {
final Entry entry = ResourceFactory.newEntry(reference);
- entry.setId(entity.getReference());
entry.setType(entity.getName());
// -------------------------------------------------------------
@@ -176,7 +174,7 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
entry.setMediaContentType(entity.getMediaContentType());
}
- for (ODataProperty property : entity.getProperties()) {
+ for (CommonODataProperty property : entity.getProperties()) {
entry.getProperties().add(getProperty(property, reference, setType));
}
@@ -194,13 +192,13 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
if (link instanceof ODataInlineEntity) {
// append inline entity
- final ODataEntity inlineEntity = ((ODataInlineEntity) link).getEntity();
+ final CommonODataEntity inlineEntity = ((ODataInlineEntity) link).getEntity();
LOG.debug("Append in-line entity\n{}", inlineEntity);
linkResource.setInlineEntry(getEntry(inlineEntity, ResourceFactory.entryClassForFormat(isXML)));
} else if (link instanceof ODataInlineEntitySet) {
// append inline feed
- final ODataEntitySet InlineFeed = ((ODataInlineEntitySet) link).getEntitySet();
+ final CommonODataEntitySet InlineFeed = ((ODataInlineEntitySet) link).getEntitySet();
LOG.debug("Append in-line feed\n{}", InlineFeed);
linkResource.setInlineFeed(getFeed(InlineFeed, ResourceFactory.feedClassForFormat(isXML)));
@@ -210,7 +208,7 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
}
@Override
- public Property getProperty(final ODataProperty property, final Class<? extends Entry> reference,
+ public Property getProperty(final CommonODataProperty property, final Class<? extends Entry> reference,
final boolean setType) {
final Property propertyResource = ResourceFactory.newProperty(reference);
@@ -243,7 +241,7 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
final ODataComplexValue _value = value.asComplex();
valueResource = new ComplexValueImpl();
- for (final Iterator<ODataProperty> itor = _value.iterator(); itor.hasNext();) {
+ for (final Iterator<CommonODataProperty> itor = _value.iterator(); itor.hasNext();) {
valueResource.asComplex().get().add(getProperty(itor.next(), reference, setType));
}
} else if (value.isCollection()) {
@@ -259,12 +257,14 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
}
@Override
- public ODataEntitySet getODataEntitySet(final Feed resource) {
+ public CommonODataEntitySet getODataEntitySet(final Feed resource) {
return getODataEntitySet(resource, null);
}
+ protected abstract boolean add(CommonODataEntitySet entitySet, CommonODataEntity entity);
+
@Override
- public ODataEntitySet getODataEntitySet(final Feed resource, final URI defaultBaseURI) {
+ public CommonODataEntitySet getODataEntitySet(final Feed resource, final URI defaultBaseURI) {
if (LOG.isDebugEnabled()) {
final StringWriter writer = new StringWriter();
client.getSerializer().feed(resource, writer);
@@ -276,7 +276,7 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
final URI next = resource.getNext();
- final ODataEntitySet entitySet = next == null
+ final CommonODataEntitySet entitySet = next == null
? client.getObjectFactory().newEntitySet()
: client.getObjectFactory().newEntitySet(URIUtils.getURI(base, next.toASCIIString()));
@@ -285,19 +285,19 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
}
for (Entry entryResource : resource.getEntries()) {
- entitySet.getEntities().add(getODataEntity(entryResource));
+ add(entitySet, getODataEntity(entryResource));
}
return entitySet;
}
@Override
- public ODataEntity getODataEntity(final Entry resource) {
+ public CommonODataEntity getODataEntity(final Entry resource) {
return getODataEntity(resource, null);
}
@Override
- public ODataEntity getODataEntity(final Entry resource, final URI defaultBaseURI) {
+ public CommonODataEntity getODataEntity(final Entry resource, final URI defaultBaseURI) {
if (LOG.isDebugEnabled()) {
final StringWriter writer = new StringWriter();
client.getSerializer().entry(resource, writer);
@@ -307,13 +307,11 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
final URI base = defaultBaseURI == null ? resource.getBaseURI() : defaultBaseURI;
- final ODataEntity entity = resource.getSelfLink() == null
+ final CommonODataEntity entity = resource.getSelfLink() == null
? client.getObjectFactory().newEntity(resource.getType())
: client.getObjectFactory().newEntity(resource.getType(),
URIUtils.getURI(base, resource.getSelfLink().getHref()));
- entity.setReference(resource.getId());
-
if (StringUtils.isNotBlank(resource.getETag())) {
entity.setETag(resource.getETag());
}
@@ -362,18 +360,13 @@ public abstract class AbstractODataBinder implements CommonODataBinder {
}
for (Property property : resource.getProperties()) {
- entity.getProperties().add(getODataProperty(property));
+ add(entity, getODataProperty(property));
}
return entity;
}
- @Override
- public ODataProperty getODataProperty(final Property property) {
- return new ODataPropertyImpl(property.getName(), getODataValue(property));
- }
-
- private ODataValue getODataValue(final Property resource) {
+ protected ODataValue getODataValue(final Property resource) {
ODataValue value = null;
if (resource.getValue().isPrimitive()) {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/main/java/org/apache/olingo/client/core/op/AbstractODataReader.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/op/AbstractODataReader.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/op/AbstractODataReader.java
index f21f16a..4ff36f9 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/op/AbstractODataReader.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/op/AbstractODataReader.java
@@ -25,11 +25,11 @@ import org.apache.olingo.client.api.CommonODataClient;
import org.apache.olingo.client.api.data.ServiceDocument;
import org.apache.olingo.commons.api.domain.ODataError;
import org.apache.olingo.commons.api.data.Property;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
+import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
import org.apache.olingo.client.api.domain.ODataEntitySetIterator;
import org.apache.olingo.client.api.edm.xml.Schema;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.CommonODataProperty;
import org.apache.olingo.commons.api.domain.ODataServiceDocument;
import org.apache.olingo.commons.api.domain.ODataValue;
import org.apache.olingo.client.api.edm.xml.XMLMetadata;
@@ -78,17 +78,17 @@ public abstract class AbstractODataReader implements CommonODataReader {
}
@Override
- public ODataEntitySet readEntitySet(final InputStream input, final ODataPubFormat format) {
+ public CommonODataEntitySet readEntitySet(final InputStream input, final ODataPubFormat format) {
return client.getBinder().getODataEntitySet(client.getDeserializer().toFeed(input, format).getObject());
}
@Override
- public ODataEntity readEntity(final InputStream input, final ODataPubFormat format) {
+ public CommonODataEntity readEntity(final InputStream input, final ODataPubFormat format) {
return client.getBinder().getODataEntity(client.getDeserializer().toEntry(input, format).getObject());
}
@Override
- public ODataProperty readProperty(final InputStream input, final ODataFormat format) {
+ public CommonODataProperty readProperty(final InputStream input, final ODataFormat format) {
final Property property = client.getDeserializer().toProperty(input, format).getObject();
return client.getBinder().getODataProperty(property);
}
@@ -107,19 +107,19 @@ public abstract class AbstractODataReader implements CommonODataReader {
if (ODataEntitySetIterator.class.isAssignableFrom(reference)) {
res = new Container<T>(
null, null, (T) new ODataEntitySetIterator(client, src, ODataPubFormat.fromString(format)));
- } else if (ODataEntitySet.class.isAssignableFrom(reference)) {
+ } else if (CommonODataEntitySet.class.isAssignableFrom(reference)) {
final Container<Feed> container = client.getDeserializer().toFeed(src, ODataPubFormat.fromString(format));
res = new Container<T>(
container.getContextURL(),
container.getMetadataETag(),
(T) client.getBinder().getODataEntitySet(container.getObject()));
- } else if (ODataEntity.class.isAssignableFrom(reference)) {
+ } else if (CommonODataEntity.class.isAssignableFrom(reference)) {
final Container<Entry> container = client.getDeserializer().toEntry(src, ODataPubFormat.fromString(format));
res = new Container<T>(
container.getContextURL(),
container.getMetadataETag(),
(T) client.getBinder().getODataEntity(container.getObject()));
- } else if (ODataProperty.class.isAssignableFrom(reference)) {
+ } else if (CommonODataProperty.class.isAssignableFrom(reference)) {
final Container<Property> container = client.getDeserializer().toProperty(src, ODataFormat.fromString(format));
res = new Container<T>(
container.getContextURL(),
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/main/java/org/apache/olingo/client/core/op/ODataWriterImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/op/ODataWriterImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/op/ODataWriterImpl.java
index 2b914b4..7ea9c99 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/op/ODataWriterImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/op/ODataWriterImpl.java
@@ -26,9 +26,9 @@ import java.util.Collection;
import java.util.Collections;
import org.apache.commons.io.IOUtils;
import org.apache.olingo.client.api.CommonODataClient;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.CommonODataProperty;
import org.apache.olingo.commons.api.format.ODataFormat;
import org.apache.olingo.commons.api.format.ODataPubFormat;
import org.apache.olingo.client.api.op.ODataWriter;
@@ -44,17 +44,17 @@ public class ODataWriterImpl implements ODataWriter {
}
@Override
- public InputStream writeEntities(final Collection<ODataEntity> entities, final ODataPubFormat format) {
+ public InputStream writeEntities(final Collection<CommonODataEntity> entities, final ODataPubFormat format) {
return writeEntities(entities, format, true);
}
@Override
public InputStream writeEntities(
- final Collection<ODataEntity> entities, final ODataPubFormat format, final boolean outputType) {
+ final Collection<CommonODataEntity> entities, final ODataPubFormat format, final boolean outputType) {
final ByteArrayOutputStream output = new ByteArrayOutputStream();
try {
- for (ODataEntity entity : entities) {
+ for (CommonODataEntity entity : entities) {
client.getSerializer().entry(client.getBinder().getEntry(
entity, ResourceFactory.entryClassForFormat(format == ODataPubFormat.ATOM), outputType), output);
}
@@ -66,17 +66,19 @@ public class ODataWriterImpl implements ODataWriter {
}
@Override
- public InputStream writeEntity(final ODataEntity entity, final ODataPubFormat format) {
+ public InputStream writeEntity(final CommonODataEntity entity, final ODataPubFormat format) {
return writeEntity(entity, format, true);
}
@Override
- public InputStream writeEntity(final ODataEntity entity, final ODataPubFormat format, final boolean outputType) {
- return writeEntities(Collections.<ODataEntity>singleton(entity), format, outputType);
+ public InputStream writeEntity(final CommonODataEntity entity, final ODataPubFormat format,
+ final boolean outputType) {
+
+ return writeEntities(Collections.<CommonODataEntity>singleton(entity), format, outputType);
}
@Override
- public InputStream writeProperty(final ODataProperty property, final ODataFormat format) {
+ public InputStream writeProperty(final CommonODataProperty property, final ODataFormat format) {
final ByteArrayOutputStream output = new ByteArrayOutputStream();
try {
client.getSerializer().property(client.getBinder().getProperty(
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/main/java/org/apache/olingo/client/core/op/impl/v3/ODataBinderImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/op/impl/v3/ODataBinderImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/op/impl/v3/ODataBinderImpl.java
index 3c5f5a4..28887dc 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/op/impl/v3/ODataBinderImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/op/impl/v3/ODataBinderImpl.java
@@ -18,11 +18,22 @@
*/
package org.apache.olingo.client.core.op.impl.v3;
+import java.net.URI;
import org.apache.olingo.commons.api.data.v3.LinkCollection;
import org.apache.olingo.client.api.domain.v3.ODataLinkCollection;
import org.apache.olingo.client.api.op.v3.ODataBinder;
import org.apache.olingo.client.core.op.AbstractODataBinder;
import org.apache.olingo.client.core.v3.ODataClientImpl;
+import org.apache.olingo.commons.api.data.Entry;
+import org.apache.olingo.commons.api.data.Feed;
+import org.apache.olingo.commons.api.data.Property;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
+import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
+import org.apache.olingo.commons.api.domain.CommonODataProperty;
+import org.apache.olingo.commons.api.domain.v3.ODataEntity;
+import org.apache.olingo.commons.api.domain.v3.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.v3.ODataProperty;
+import org.apache.olingo.commons.core.domain.v3.ODataPropertyImpl;
public class ODataBinderImpl extends AbstractODataBinder implements ODataBinder {
@@ -33,6 +44,41 @@ public class ODataBinderImpl extends AbstractODataBinder implements ODataBinder
}
@Override
+ public boolean add(final CommonODataEntity entity, final CommonODataProperty property) {
+ return ((ODataEntity) entity).getProperties().add((ODataProperty) property);
+ }
+
+ @Override
+ protected boolean add(final CommonODataEntitySet entitySet, final CommonODataEntity entity) {
+ return ((ODataEntitySet) entitySet).getEntities().add((ODataEntity) entity);
+ }
+
+ @Override
+ public ODataEntitySet getODataEntitySet(final Feed resource) {
+ return (ODataEntitySet) super.getODataEntitySet(resource);
+ }
+
+ @Override
+ public ODataEntitySet getODataEntitySet(final Feed resource, final URI defaultBaseURI) {
+ return (ODataEntitySet) super.getODataEntitySet(resource, defaultBaseURI);
+ }
+
+ @Override
+ public ODataEntity getODataEntity(final Entry resource) {
+ return (ODataEntity) super.getODataEntity(resource);
+ }
+
+ @Override
+ public ODataEntity getODataEntity(final Entry resource, final URI defaultBaseURI) {
+ return (ODataEntity) super.getODataEntity(resource, defaultBaseURI);
+ }
+
+ @Override
+ public ODataProperty getODataProperty(final Property property) {
+ return new ODataPropertyImpl(property.getName(), getODataValue(property));
+ }
+
+ @Override
public ODataLinkCollection getLinkCollection(final LinkCollection linkCollection) {
final ODataLinkCollection collection = new ODataLinkCollection(linkCollection.getNext());
collection.setLinks(linkCollection.getLinks());
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/main/java/org/apache/olingo/client/core/op/impl/v4/ODataBinderImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/op/impl/v4/ODataBinderImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/op/impl/v4/ODataBinderImpl.java
index 9c81baf..0acc7d1 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/op/impl/v4/ODataBinderImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/op/impl/v4/ODataBinderImpl.java
@@ -18,6 +18,7 @@
*/
package org.apache.olingo.client.core.op.impl.v4;
+import java.net.URI;
import org.apache.olingo.client.api.data.ServiceDocument;
import org.apache.olingo.client.api.data.ServiceDocumentItem;
import org.apache.olingo.commons.api.domain.ODataServiceDocument;
@@ -25,6 +26,16 @@ import org.apache.olingo.client.api.op.v4.ODataBinder;
import org.apache.olingo.client.core.uri.URIUtils;
import org.apache.olingo.client.api.v4.ODataClient;
import org.apache.olingo.client.core.op.AbstractODataBinder;
+import org.apache.olingo.commons.api.data.Entry;
+import org.apache.olingo.commons.api.data.Feed;
+import org.apache.olingo.commons.api.data.Property;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
+import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
+import org.apache.olingo.commons.api.domain.CommonODataProperty;
+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.core.domain.v4.ODataPropertyImpl;
public class ODataBinderImpl extends AbstractODataBinder implements ODataBinder {
@@ -35,6 +46,16 @@ public class ODataBinderImpl extends AbstractODataBinder implements ODataBinder
}
@Override
+ public boolean add(final CommonODataEntity entity, final CommonODataProperty property) {
+ return ((ODataEntity) entity).getProperties().add((ODataProperty) property);
+ }
+
+ @Override
+ protected boolean add(final CommonODataEntitySet entitySet, final CommonODataEntity entity) {
+ return ((ODataEntitySet) entitySet).getEntities().add((ODataEntity) entity);
+ }
+
+ @Override
public ODataServiceDocument getODataServiceDocument(final ServiceDocument resource) {
final ODataServiceDocument serviceDocument = super.getODataServiceDocument(resource);
@@ -56,4 +77,39 @@ public class ODataBinderImpl extends AbstractODataBinder implements ODataBinder
return serviceDocument;
}
+
+ @Override
+ public Entry getEntry(final CommonODataEntity entity, final Class<? extends Entry> reference, final boolean setType) {
+ final Entry entry = super.getEntry(entity, reference, setType);
+ entry.setId(((ODataEntity) entity).getReference());
+ return entry;
+ }
+
+ @Override
+ public ODataEntitySet getODataEntitySet(final Feed resource) {
+ return (ODataEntitySet) super.getODataEntitySet(resource);
+ }
+
+ @Override
+ public ODataEntitySet getODataEntitySet(final Feed resource, final URI defaultBaseURI) {
+ return (ODataEntitySet) super.getODataEntitySet(resource, defaultBaseURI);
+ }
+
+ @Override
+ public ODataEntity getODataEntity(final Entry resource) {
+ return (ODataEntity) super.getODataEntity(resource);
+ }
+
+ @Override
+ public ODataEntity getODataEntity(final Entry resource, final URI defaultBaseURI) {
+ final ODataEntity entity = (ODataEntity) super.getODataEntity(resource, defaultBaseURI);
+ entity.setReference(resource.getId());
+ return entity;
+ }
+
+ @Override
+ public ODataProperty getODataProperty(final Property property) {
+ return new ODataPropertyImpl(property.getName(), getODataValue(property));
+ }
+
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/main/java/org/apache/olingo/client/core/v3/ODataClientImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/v3/ODataClientImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/v3/ODataClientImpl.java
index d6d5e36..f1b5d23 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/v3/ODataClientImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/v3/ODataClientImpl.java
@@ -46,7 +46,9 @@ import org.apache.olingo.client.core.op.impl.v3.ODataReaderImpl;
import org.apache.olingo.client.core.op.impl.v3.ODataSerializerImpl;
import org.apache.olingo.client.core.uri.v3.URIBuilderImpl;
import org.apache.olingo.client.core.uri.v3.FilterFactoryImpl;
+import org.apache.olingo.commons.api.domain.v3.ODataObjectFactory;
import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
+import org.apache.olingo.commons.core.domain.v3.ODataObjectFactoryImpl;
public class ODataClientImpl extends AbstractODataClient implements ODataClient {
@@ -64,6 +66,8 @@ public class ODataClientImpl extends AbstractODataClient implements ODataClient
private final ODataBinder binder = new ODataBinderImpl(this);
+ private final ODataObjectFactory objectFactory = new ODataObjectFactoryImpl(getServiceVersion());
+
private final RetrieveRequestFactory retrieveReqFact = new RetrieveRequestFactoryImpl(this);
private final CUDRequestFactory cudReqFact = new CUDRequestFactoryImpl(this);
@@ -124,6 +128,11 @@ public class ODataClientImpl extends AbstractODataClient implements ODataClient
}
@Override
+ public ODataObjectFactory getObjectFactory() {
+ return objectFactory;
+ }
+
+ @Override
public RetrieveRequestFactory getRetrieveRequestFactory() {
return retrieveReqFact;
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/main/java/org/apache/olingo/client/core/v4/ODataClientImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/v4/ODataClientImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/v4/ODataClientImpl.java
index a5aafab..d379bcf 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/v4/ODataClientImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/v4/ODataClientImpl.java
@@ -46,7 +46,9 @@ import org.apache.olingo.client.core.op.impl.v4.ODataReaderImpl;
import org.apache.olingo.client.core.op.impl.v4.ODataSerializerImpl;
import org.apache.olingo.client.core.uri.v4.URIBuilderImpl;
import org.apache.olingo.client.core.uri.v4.FilterFactoryImpl;
+import org.apache.olingo.commons.api.domain.v4.ODataObjectFactory;
import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
+import org.apache.olingo.commons.core.domain.v4.ODataObjectFactoryImpl;
public class ODataClientImpl extends AbstractODataClient implements ODataClient {
@@ -64,6 +66,8 @@ public class ODataClientImpl extends AbstractODataClient implements ODataClient
private final ODataBinder binder = new ODataBinderImpl(this);
+ private final ODataObjectFactory objectFactory = new ODataObjectFactoryImpl(getServiceVersion());
+
private final RetrieveRequestFactory retrieveReqFact = new RetrieveRequestFactoryImpl(this);
private final CUDRequestFactory cudReqFact = new CUDRequestFactoryImpl(this);
@@ -123,6 +127,11 @@ public class ODataClientImpl extends AbstractODataClient implements ODataClient
}
@Override
+ public ODataObjectFactory getObjectFactory() {
+ return objectFactory;
+ }
+
+ @Override
public RetrieveRequestFactory getRetrieveRequestFactory() {
return retrieveReqFact;
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/test/java/org/apache/olingo/client/core/it/AbstractTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/AbstractTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/AbstractTestITCase.java
index bba68de..0a3b53d 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/AbstractTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/AbstractTestITCase.java
@@ -54,12 +54,12 @@ import org.apache.olingo.commons.api.data.Entry;
import org.apache.olingo.commons.api.data.Feed;
import org.apache.olingo.commons.api.domain.ODataCollectionValue;
import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
+import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
import org.apache.olingo.commons.api.domain.ODataInlineEntity;
import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.CommonODataProperty;
import org.apache.olingo.commons.api.domain.ODataValue;
import org.apache.olingo.commons.api.format.ODataPubFormat;
import org.apache.olingo.client.api.http.HttpMethod;
@@ -117,10 +117,10 @@ public abstract class AbstractTestITCase {
assertNotNull(foundActual);
if (foundOriginal instanceof ODataInlineEntity && foundActual instanceof ODataInlineEntity) {
- final ODataEntity originalInline = ((ODataInlineEntity) foundOriginal).getEntity();
+ final CommonODataEntity originalInline = ((ODataInlineEntity) foundOriginal).getEntity();
assertNotNull(originalInline);
- final ODataEntity actualInline = ((ODataInlineEntity) foundActual).getEntity();
+ final CommonODataEntity actualInline = ((ODataInlineEntity) foundActual).getEntity();
assertNotNull(actualInline);
checkProperties(originalInline.getProperties(), actualInline.getProperties());
@@ -128,23 +128,25 @@ public abstract class AbstractTestITCase {
}
}
- protected void checkProperties(final Collection<ODataProperty> original, final Collection<ODataProperty> actual) {
+ protected void checkProperties(final Collection<? extends CommonODataProperty> original,
+ final Collection<? extends CommonODataProperty> actual) {
+
assertTrue(original.size() <= actual.size());
// re-organize actual properties into a Map<String, ODataProperty>
- final Map<String, ODataProperty> actualProps = new HashMap<String, ODataProperty>(actual.size());
+ final Map<String, CommonODataProperty> actualProps = new HashMap<String, CommonODataProperty>(actual.size());
- for (ODataProperty prop : actual) {
+ for (CommonODataProperty prop : actual) {
assertFalse(actualProps.containsKey(prop.getName()));
actualProps.put(prop.getName(), prop);
}
assertTrue(actual.size() <= actualProps.size());
- for (ODataProperty prop : original) {
+ for (CommonODataProperty prop : original) {
assertNotNull(prop);
if (actualProps.containsKey(prop.getName())) {
- final ODataProperty actualProp = actualProps.get(prop.getName());
+ final CommonODataProperty actualProp = actualProps.get(prop.getName());
assertNotNull(actualProp);
if (prop.getValue() != null && actualProp.getValue() != null) {
@@ -168,13 +170,13 @@ public abstract class AbstractTestITCase {
original.getClass().getSimpleName(), actual.getClass().getSimpleName());
if (original.isComplex()) {
- final List<ODataProperty> originalFileds = new ArrayList<ODataProperty>();
- for (ODataProperty prop : original.asComplex()) {
+ final List<CommonODataProperty> originalFileds = new ArrayList<CommonODataProperty>();
+ for (CommonODataProperty prop : original.asComplex()) {
originalFileds.add(prop);
}
- final List<ODataProperty> actualFileds = new ArrayList<ODataProperty>();
- for (ODataProperty prop : (ODataComplexValue) actual) {
+ final List<CommonODataProperty> actualFileds = new ArrayList<CommonODataProperty>();
+ for (CommonODataProperty prop : (ODataComplexValue) actual) {
actualFileds.add(prop);
}
@@ -207,39 +209,42 @@ public abstract class AbstractTestITCase {
}
}
- protected ODataEntity getSampleCustomerInfo(final int id, final String sampleinfo) {
- final ODataEntity entity = getClient().getObjectFactory().newEntity(
+ protected CommonODataEntity getSampleCustomerInfo(final int id, final String sampleinfo) {
+ final CommonODataEntity entity = getClient().getObjectFactory().newEntity(
"Microsoft.Test.OData.Services.AstoriaDefaultService.CustomerInfo");
entity.setMediaEntity(true);
- entity.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Information",
- getClient().getObjectFactory().newPrimitiveValueBuilder().setText(sampleinfo).setType(
- EdmPrimitiveTypeKind.String).build()));
+ getClient().getBinder().add(entity,
+ getClient().getObjectFactory().newPrimitiveProperty("Information",
+ getClient().getObjectFactory().newPrimitiveValueBuilder().setText(sampleinfo).
+ setType(EdmPrimitiveTypeKind.String).build()));
return entity;
}
- protected ODataEntity getSampleCustomerProfile(
+ protected CommonODataEntity getSampleCustomerProfile(
final int id, final String sampleName, final boolean withInlineInfo) {
- final ODataEntity entity =
+ final CommonODataEntity entity =
getClient().getObjectFactory().newEntity("Microsoft.Test.OData.Services.AstoriaDefaultService.Customer");
// add name attribute
- entity.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Name",
- getClient().getObjectFactory().newPrimitiveValueBuilder().setText(sampleName).setType(
- EdmPrimitiveTypeKind.String).build()));
+ getClient().getBinder().add(entity,
+ getClient().getObjectFactory().newPrimitiveProperty("Name",
+ getClient().getObjectFactory().newPrimitiveValueBuilder().setText(sampleName).
+ setType(EdmPrimitiveTypeKind.String).build()));
// add key attribute
- entity.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("CustomerId",
- getClient().getObjectFactory().newPrimitiveValueBuilder().setText(String.valueOf(id)).setType(
- EdmPrimitiveTypeKind.Int32).build()));
+ getClient().getBinder().add(entity,
+ getClient().getObjectFactory().newPrimitiveProperty("CustomerId",
+ getClient().getObjectFactory().newPrimitiveValueBuilder().setText(String.valueOf(id)).
+ setType(EdmPrimitiveTypeKind.Int32).build()));
// add BackupContactInfo attribute (collection)
final ODataCollectionValue backupContactInfoValue = getClient().getObjectFactory().newCollectionValue(
"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)");
- entity.getProperties().add(getClient().getObjectFactory().newCollectionProperty("BackupContactInfo",
- backupContactInfoValue));
+ getClient().getBinder().add(entity,
+ getClient().getObjectFactory().newCollectionProperty("BackupContactInfo", backupContactInfoValue));
// add BackupContactInfo.ContactDetails attribute (complex)
final ODataComplexValue contactDetails = getClient().getObjectFactory().newComplexValue(
@@ -302,7 +307,7 @@ public abstract class AbstractTestITCase {
}
}
- protected void debugODataProperty(final ODataProperty property, final String message) {
+ protected void debugODataProperty(final CommonODataProperty property, final String message) {
LOG.debug(message + "\n{}", property.toString());
}
@@ -310,7 +315,7 @@ public abstract class AbstractTestITCase {
LOG.debug(message + "\n{}", value.toString());
}
- protected void debugODataEntity(final ODataEntity entity, final String message) {
+ protected void debugODataEntity(final CommonODataEntity entity, final String message) {
if (LOG.isDebugEnabled()) {
StringWriter writer = new StringWriter();
getClient().getSerializer().entry(getClient().getBinder().getEntry(entity, AtomEntryImpl.class), writer);
@@ -337,7 +342,7 @@ public abstract class AbstractTestITCase {
}
protected String getETag(final URI uri) {
- final ODataRetrieveResponse<ODataEntity> res = getClient().getRetrieveRequestFactory().
+ final ODataRetrieveResponse<CommonODataEntity> res = getClient().getRetrieveRequestFactory().
getEntityRequest(uri).execute();
try {
return res.getEtag();
@@ -346,12 +351,13 @@ public abstract class AbstractTestITCase {
}
}
- protected ODataEntity read(final ODataPubFormat format, final URI editLink) {
- final ODataEntityRequest req = getClient().getRetrieveRequestFactory().getEntityRequest(editLink);
+ protected CommonODataEntity read(final ODataPubFormat format, final URI editLink) {
+ final ODataEntityRequest<CommonODataEntity> req = getClient().getRetrieveRequestFactory().
+ getEntityRequest(editLink);
req.setFormat(format);
- final ODataRetrieveResponse<ODataEntity> res = req.execute();
- final ODataEntity entity = res.getBody();
+ final ODataRetrieveResponse<CommonODataEntity> res = req.execute();
+ final CommonODataEntity entity = res.getBody();
assertNotNull(entity);
@@ -362,10 +368,10 @@ public abstract class AbstractTestITCase {
return entity;
}
- protected ODataEntity createEntity(
+ protected CommonODataEntity createEntity(
final String serviceRootURL,
final ODataPubFormat format,
- final ODataEntity original,
+ final CommonODataEntity original,
final String entitySetName) {
final CommonURIBuilder<?> uriBuilder = getClient().getURIBuilder(serviceRootURL).
@@ -381,7 +387,7 @@ public abstract class AbstractTestITCase {
assertEquals(201, createRes.getStatusCode());
assertEquals("Created", createRes.getStatusMessage());
- final ODataEntity created = createRes.getBody();
+ final CommonODataEntity created = createRes.getBody();
assertNotNull(created);
debugODataEntity(created, "Just created");
@@ -389,9 +395,9 @@ public abstract class AbstractTestITCase {
return created;
}
- protected ODataEntity compareEntities(final String serviceRootURL,
+ protected CommonODataEntity compareEntities(final String serviceRootURL,
final ODataPubFormat format,
- final ODataEntity original,
+ final CommonODataEntity original,
final int actualObjectId,
final Collection<String> expands) {
@@ -405,13 +411,14 @@ public abstract class AbstractTestITCase {
}
}
- final ODataEntityRequest req = getClient().getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+ final ODataEntityRequest<CommonODataEntity> req = getClient().getRetrieveRequestFactory().
+ getEntityRequest(uriBuilder.build());
req.setFormat(format);
- final ODataRetrieveResponse<ODataEntity> res = req.execute();
+ final ODataRetrieveResponse<CommonODataEntity> res = req.execute();
assertEquals(200, res.getStatusCode());
- final ODataEntity actual = res.getBody();
+ final CommonODataEntity actual = res.getBody();
assertNotNull(actual);
// check defined links
@@ -427,7 +434,7 @@ public abstract class AbstractTestITCase {
protected void cleanAfterCreate(
final ODataPubFormat format,
- final ODataEntity created,
+ final CommonODataEntity created,
final boolean includeInline,
final String baseUri) {
@@ -437,15 +444,15 @@ public abstract class AbstractTestITCase {
if (includeInline) {
for (ODataLink link : created.getNavigationLinks()) {
if (link instanceof ODataInlineEntity) {
- final ODataEntity inline = ((ODataInlineEntity) link).getEntity();
+ final CommonODataEntity inline = ((ODataInlineEntity) link).getEntity();
if (inline.getEditLink() != null) {
toBeDeleted.add(URIUtils.getURI(baseUri, inline.getEditLink().toASCIIString()));
}
}
if (link instanceof ODataInlineEntitySet) {
- final ODataEntitySet inline = ((ODataInlineEntitySet) link).getEntitySet();
- for (ODataEntity entity : inline.getEntities()) {
+ final CommonODataEntitySet inline = ((ODataInlineEntitySet) link).getEntitySet();
+ for (CommonODataEntity entity : inline.getEntities()) {
if (entity.getEditLink() != null) {
toBeDeleted.add(URIUtils.getURI(baseUri, entity.getEditLink().toASCIIString()));
}
@@ -465,7 +472,8 @@ public abstract class AbstractTestITCase {
deleteRes.close();
- final ODataEntityRequest retrieveReq = getClient().getRetrieveRequestFactory().getEntityRequest(link);
+ final ODataEntityRequest<CommonODataEntity> retrieveReq = getClient().getRetrieveRequestFactory().
+ getEntityRequest(link);
// bug that needs to be fixed on the SampleService - cannot get entity not found with header
// Accept: application/json;odata=minimalmetadata
retrieveReq.setFormat(format == ODataPubFormat.JSON_FULL_METADATA ? ODataPubFormat.JSON : format);
@@ -483,25 +491,25 @@ public abstract class AbstractTestITCase {
}
protected void updateEntityDescription(
- final ODataPubFormat format, final ODataEntity changes, final UpdateType type) {
+ final ODataPubFormat format, final CommonODataEntity changes, final UpdateType type) {
updateEntityDescription(format, changes, type, null);
}
protected void updateEntityDescription(
- final ODataPubFormat format, final ODataEntity changes, final UpdateType type, final String etag) {
+ final ODataPubFormat format, final CommonODataEntity changes, final UpdateType type, final String etag) {
updateEntityStringProperty("Description", format, changes, type, etag);
}
protected void updateEntityStringProperty(final String propertyName,
- final ODataPubFormat format, final ODataEntity changes, final UpdateType type, final String etag) {
+ final ODataPubFormat format, final CommonODataEntity changes, final UpdateType type, final String etag) {
final URI editLink = changes.getEditLink();
final String newm = "New " + propertyName + "(" + System.currentTimeMillis() + ")";
- ODataProperty propertyValue = changes.getProperty(propertyName);
+ CommonODataProperty propertyValue = changes.getProperty(propertyName);
final String oldm;
if (propertyValue == null) {
@@ -513,16 +521,17 @@ public abstract class AbstractTestITCase {
assertNotEquals(newm, oldm);
- changes.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty(propertyName,
- getClient().getObjectFactory().newPrimitiveValueBuilder().setText(newm).build()));
+ getClient().getBinder().add(changes,
+ getClient().getObjectFactory().newPrimitiveProperty(propertyName,
+ getClient().getObjectFactory().newPrimitiveValueBuilder().setText(newm).build()));
update(type, changes, format, etag);
- final ODataEntity actual = read(format, editLink);
+ final CommonODataEntity actual = read(format, editLink);
propertyValue = null;
- for (ODataProperty prop : actual.getProperties()) {
+ for (CommonODataProperty prop : actual.getProperties()) {
if (prop.getName().equals(propertyName)) {
propertyValue = prop;
}
@@ -533,7 +542,7 @@ public abstract class AbstractTestITCase {
}
protected void update(
- final UpdateType type, final ODataEntity changes, final ODataPubFormat format, final String etag) {
+ final UpdateType type, final CommonODataEntity changes, final ODataPubFormat format, final String etag) {
final ODataEntityUpdateRequest req = getClient().getCUDRequestFactory().getEntityUpdateRequest(type, changes);
if (getClient().getConfiguration().isUseXHTTPMethod()) {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/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 b77ebf8..01e0d7b 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
@@ -19,25 +19,26 @@
package org.apache.olingo.client.core.it.v3;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
import java.io.InputStream;
import java.net.URI;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import org.apache.commons.io.IOUtils;
-import org.apache.olingo.client.api.communication.request.cud.v3.UpdateType;
import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
+import org.apache.olingo.client.api.communication.request.cud.v3.UpdateType;
import org.apache.olingo.client.api.communication.request.retrieve.ODataMediaRequest;
import org.apache.olingo.client.api.communication.request.streamed.MediaEntityCreateStreamManager;
import org.apache.olingo.client.api.communication.request.streamed.ODataMediaEntityCreateRequest;
import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
import org.apache.olingo.client.api.communication.response.ODataMediaEntityCreateResponse;
import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
+import org.apache.olingo.commons.api.domain.v3.ODataEntity;
+import org.apache.olingo.commons.api.domain.v3.ODataEntitySet;
import org.junit.Ignore;
import org.junit.Test;
@@ -68,14 +69,15 @@ public class AsyncTestITCase extends AbstractTestITCase {
final ODataRetrieveResponse<ODataEntity> entityRes = client.getRetrieveRequestFactory().
getEntityRequest(uri).execute();
- final ODataEntity entity = entityRes.getBody();
+ final CommonODataEntity entity = entityRes.getBody();
entity.getAssociationLinks().clear();
entity.getNavigationLinks().clear();
entity.getEditMediaLinks().clear();
entity.getProperties().remove(entity.getProperty("Description"));
- entity.getProperties().add(client.getObjectFactory().newPrimitiveProperty("Description",
- client.getObjectFactory().newPrimitiveValueBuilder().setText("AsyncTest#updateEntity").build()));
+ getClient().getBinder().add(entity,
+ client.getObjectFactory().newPrimitiveProperty("Description",
+ client.getObjectFactory().newPrimitiveValueBuilder().setText("AsyncTest#updateEntity").build()));
final ODataEntityUpdateRequest updateReq =
client.getCUDRequestFactory().getEntityUpdateRequest(uri, UpdateType.MERGE, entity);
@@ -116,7 +118,7 @@ public class AsyncTestITCase extends AbstractTestITCase {
assertEquals(201, createRes.getStatusCode());
- final ODataEntity created = createRes.getBody();
+ final CommonODataEntity created = createRes.getBody();
assertNotNull(created);
assertEquals(2, created.getProperties().size());
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/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 1ebe190..bd1419f 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
@@ -18,11 +18,6 @@
*/
package org.apache.olingo.client.core.it.v3;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
import java.net.URI;
import java.util.Collections;
import java.util.HashSet;
@@ -39,17 +34,24 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySe
import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.format.ODataPubFormat;
import org.apache.olingo.client.api.http.NoContentException;
import org.apache.olingo.client.api.uri.CommonURIBuilder;
import org.apache.olingo.client.core.uri.URIUtils;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
+import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
+import org.apache.olingo.commons.api.domain.CommonODataProperty;
+import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
+import org.apache.olingo.commons.api.domain.ODataLink;
+import org.apache.olingo.commons.api.domain.v3.ODataEntity;
+import org.apache.olingo.commons.api.domain.v3.ODataEntitySet;
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.format.ODataPubFormat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
import org.junit.Ignore;
import org.junit.Test;
@@ -66,10 +68,10 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
public void createAsAtom() {
final ODataPubFormat format = ODataPubFormat.ATOM;
final int id = 1;
- final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
+ final CommonODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
createEntity(getServiceRoot(), format, original, "Customer");
- final ODataEntity actual = compareEntities(getServiceRoot(), format, original, id, null);
+ final CommonODataEntity actual = compareEntities(getServiceRoot(), format, original, id, null);
cleanAfterCreate(format, actual, false, getServiceRoot());
}
@@ -78,10 +80,10 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
public void createAsJSON() {
final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
final int id = 2;
- final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
+ final CommonODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
createEntity(getServiceRoot(), format, original, "Customer");
- final ODataEntity actual = compareEntities(getServiceRoot(), format, original, id, null);
+ final CommonODataEntity actual = compareEntities(getServiceRoot(), format, original, id, null);
cleanAfterCreate(format, actual, false, getServiceRoot());
}
@@ -90,10 +92,10 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
public void createWithInlineAsAtom() {
final ODataPubFormat format = ODataPubFormat.ATOM;
final int id = 3;
- final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", true);
+ final CommonODataEntity original = getSampleCustomerProfile(id, "Sample customer", true);
createEntity(getServiceRoot(), format, original, "Customer");
- final ODataEntity actual =
+ final CommonODataEntity actual =
compareEntities(getServiceRoot(), format, original, id, Collections.<String>singleton("Info"));
cleanAfterCreate(format, actual, true, getServiceRoot());
@@ -104,10 +106,10 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
// this needs to be full, otherwise there is no mean to recognize links
final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
final int id = 4;
- final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", true);
+ final CommonODataEntity original = getSampleCustomerProfile(id, "Sample customer", true);
createEntity(getServiceRoot(), format, original, "Customer");
- final ODataEntity actual =
+ final CommonODataEntity actual =
compareEntities(getServiceRoot(), format, original, id, Collections.<String>singleton("Info"));
cleanAfterCreate(format, actual, true, getServiceRoot());
@@ -117,13 +119,13 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
public void createInlineWithoutLinkAsAtom() {
final ODataPubFormat format = ODataPubFormat.ATOM;
final int id = 5;
- final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
+ final CommonODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
original.addLink(client.getObjectFactory().newInlineEntity(
"Info", null, getSampleCustomerInfo(id, "Sample Customer_Info")));
createEntity(getServiceRoot(), format, original, "Customer");
- final ODataEntity actual =
+ final CommonODataEntity actual =
compareEntities(getServiceRoot(), format, original, id, Collections.<String>singleton("Info"));
boolean found = false;
@@ -144,13 +146,13 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
public void createInlineWithoutLinkAsJSON() {
final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
final int id = 6;
- final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
+ final CommonODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
original.addLink(client.getObjectFactory().newInlineEntity(
"Info", null, getSampleCustomerInfo(id, "Sample Customer_Info")));
createEntity(getServiceRoot(), format, original, "Customer");
- final ODataEntity actual =
+ final CommonODataEntity actual =
compareEntities(getServiceRoot(), format, original, id, Collections.<String>singleton("Info"));
boolean found = false;
@@ -170,7 +172,7 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
@Test
public void createWithNavigationAsAtom() {
final ODataPubFormat format = ODataPubFormat.ATOM;
- final ODataEntity actual = createWithNavigationLink(format, 5);
+ final CommonODataEntity actual = createWithNavigationLink(format, 5);
cleanAfterCreate(format, actual, false, getServiceRoot());
}
@@ -178,14 +180,14 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
public void createWithNavigationAsJSON() {
// this needs to be full, otherwise there is no mean to recognize links
final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
- final ODataEntity actual = createWithNavigationLink(format, 6);
+ final CommonODataEntity actual = createWithNavigationLink(format, 6);
cleanAfterCreate(format, actual, false, getServiceRoot());
}
@Test
public void createWithFeedNavigationAsAtom() throws EdmPrimitiveTypeException {
final ODataPubFormat format = ODataPubFormat.ATOM;
- final ODataEntity actual = createWithFeedNavigationLink(format, 7);
+ final CommonODataEntity actual = createWithFeedNavigationLink(format, 7);
cleanAfterCreate(format, actual, false, getServiceRoot());
}
@@ -193,14 +195,14 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
public void createWithFeedNavigationAsJSON() throws EdmPrimitiveTypeException {
// this needs to be full, otherwise there is no mean to recognize links
final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
- final ODataEntity actual = createWithFeedNavigationLink(format, 8);
+ final CommonODataEntity actual = createWithFeedNavigationLink(format, 8);
cleanAfterCreate(format, actual, false, getServiceRoot());
}
@Test
public void createWithBackNavigationAsAtom() throws EdmPrimitiveTypeException {
final ODataPubFormat format = ODataPubFormat.ATOM;
- final ODataEntity actual = createWithBackNavigationLink(format, 9);
+ final CommonODataEntity actual = createWithBackNavigationLink(format, 9);
cleanAfterCreate(format, actual, true, getServiceRoot());
}
@@ -208,7 +210,7 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
public void createWithBackNavigationAsJSON() throws EdmPrimitiveTypeException {
// this needs to be full, otherwise there is no mean to recognize links
final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
- final ODataEntity actual = createWithBackNavigationLink(format, 10);
+ final CommonODataEntity actual = createWithBackNavigationLink(format, 10);
cleanAfterCreate(format, actual, true, getServiceRoot());
}
@@ -225,7 +227,7 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
@Test
public void createReturnNoContent() {
final int id = 1;
- final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
+ final CommonODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
final ODataEntityCreateRequest createReq = client.getCUDRequestFactory().getEntityCreateRequest(
client.getURIBuilder(getServiceRoot()).appendEntitySetSegment("Customer").build(), original);
@@ -253,7 +255,7 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
@Ignore
public void issue135() {
final int id = 2;
- final ODataEntity original = getSampleCustomerProfile(id, "Sample customer for issue 135", false);
+ final CommonODataEntity original = getSampleCustomerProfile(id, "Sample customer for issue 135", false);
final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(getServiceRoot()).appendEntitySetSegment("Customer");
final ODataEntityCreateRequest createReq =
@@ -276,26 +278,28 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
}
}
- private ODataEntity createWithFeedNavigationLink(final ODataPubFormat format, final int id)
+ private CommonODataEntity createWithFeedNavigationLink(final ODataPubFormat format, final int id)
throws EdmPrimitiveTypeException {
final String sampleName = "Sample customer";
- final ODataEntity original = getSampleCustomerProfile(id, sampleName, false);
+ final CommonODataEntity original = getSampleCustomerProfile(id, sampleName, false);
final Set<Integer> keys = new HashSet<Integer>();
keys.add(-100);
keys.add(-101);
for (Integer key : keys) {
- final ODataEntity order =
+ final CommonODataEntity order =
client.getObjectFactory().newEntity("Microsoft.Test.OData.Services.AstoriaDefaultService.Order");
- order.getProperties().add(client.getObjectFactory().newPrimitiveProperty("OrderId",
- client.getObjectFactory().newPrimitiveValueBuilder().setValue(key).setType(EdmPrimitiveTypeKind.Int32)
- .build()));
- order.getProperties().add(client.getObjectFactory().newPrimitiveProperty("CustomerId",
- client.getObjectFactory().newPrimitiveValueBuilder().setValue(id).setType(EdmPrimitiveTypeKind.Int32)
- .build()));
+ getClient().getBinder().add(order,
+ client.getObjectFactory().newPrimitiveProperty("OrderId",
+ client.getObjectFactory().newPrimitiveValueBuilder().setValue(key).
+ setType(EdmPrimitiveTypeKind.Int32).build()));
+ getClient().getBinder().add(order,
+ client.getObjectFactory().newPrimitiveProperty("CustomerId",
+ client.getObjectFactory().newPrimitiveValueBuilder().setValue(id).
+ setType(EdmPrimitiveTypeKind.Int32).build()));
final ODataEntityCreateRequest createReq = client.getCUDRequestFactory().getEntityCreateRequest(
client.getURIBuilder(getServiceRoot()).appendEntitySetSegment("Order").build(), order);
@@ -306,24 +310,25 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
createReq.execute().getBody().getEditLink()));
}
- final ODataEntity created = createEntity(getServiceRoot(), format, original, "Customer");
+ final CommonODataEntity 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 = compareEntities(getServiceRoot(), format, created, id, null);
+ final CommonODataEntity actual = compareEntities(getServiceRoot(), format, created, id, null);
final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(getServiceRoot());
uriBuilder.appendEntitySetSegment("Customer").appendKeySegment(id).appendEntitySetSegment("Orders");
- final ODataEntitySetRequest req = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
+ final ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().
+ getEntitySetRequest(uriBuilder.build());
req.setFormat(format);
final ODataRetrieveResponse<ODataEntitySet> res = req.execute();
assertEquals(200, res.getStatusCode());
- final ODataEntitySet entitySet = res.getBody();
+ final CommonODataEntitySet entitySet = res.getBody();
assertNotNull(entitySet);
assertEquals(2, entitySet.getCount());
- for (ODataEntity entity : entitySet.getEntities()) {
+ for (CommonODataEntity entity : entitySet.getEntities()) {
final Integer key = entity.getProperty("OrderId").getPrimitiveValue().toCastValue(Integer.class);
final Integer customerId = entity.getProperty("CustomerId").getPrimitiveValue().toCastValue(Integer.class);
assertTrue(keys.contains(key));
@@ -340,32 +345,32 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
return actual;
}
- private ODataEntity createWithNavigationLink(final ODataPubFormat format, final int id) {
+ private CommonODataEntity createWithNavigationLink(final ODataPubFormat format, final int id) {
final String sampleName = "Sample customer";
- final ODataEntity original = getSampleCustomerProfile(id, sampleName, false);
+ final CommonODataEntity original = getSampleCustomerProfile(id, sampleName, false);
original.addLink(client.getObjectFactory().newEntityNavigationLink(
"Info", URI.create(getServiceRoot() + "/CustomerInfo(12)")));
- final ODataEntity created = createEntity(getServiceRoot(), format, original, "Customer");
+ final CommonODataEntity 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 = compareEntities(getServiceRoot(), format, created, id, null);
+ final CommonODataEntity actual = compareEntities(getServiceRoot(), format, created, id, null);
final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(getServiceRoot());
uriBuilder.appendEntitySetSegment("Customer").appendKeySegment(id).appendEntitySetSegment("Info");
- final ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+ final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
req.setFormat(format);
final ODataRetrieveResponse<ODataEntity> res = req.execute();
assertEquals(200, res.getStatusCode());
- final ODataEntity info = res.getBody();
+ final CommonODataEntity info = res.getBody();
assertNotNull(info);
boolean found = false;
- for (ODataProperty prop : info.getProperties()) {
+ for (CommonODataProperty prop : info.getProperties()) {
if ("CustomerInfoId".equals(prop.getName())) {
assertEquals("12", prop.getValue().toString());
found = true;
@@ -377,27 +382,29 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
return actual;
}
- private ODataEntity createWithBackNavigationLink(final ODataPubFormat format, final int id)
+ private CommonODataEntity createWithBackNavigationLink(final ODataPubFormat format, final int id)
throws EdmPrimitiveTypeException {
final String sampleName = "Sample customer";
- ODataEntity customer = getSampleCustomerProfile(id, sampleName, false);
- customer = createEntity(getServiceRoot(), format, customer, "Customer");
+ ODataEntity customer = (ODataEntity) getSampleCustomerProfile(id, sampleName, false);
+ customer = (ODataEntity) createEntity(getServiceRoot(), format, customer, "Customer");
ODataEntity order = client.getObjectFactory().newEntity(
"Microsoft.Test.OData.Services.AstoriaDefaultService.Order");
- order.getProperties().add(client.getObjectFactory().newPrimitiveProperty("CustomerId",
- client.getObjectFactory().newPrimitiveValueBuilder().setValue(id).
- setType(EdmPrimitiveTypeKind.Int32).build()));
- order.getProperties().add(client.getObjectFactory().newPrimitiveProperty("OrderId",
- client.getObjectFactory().newPrimitiveValueBuilder().setValue(id).
- setType(EdmPrimitiveTypeKind.Int32).build()));
+ getClient().getBinder().add(order,
+ client.getObjectFactory().newPrimitiveProperty("CustomerId",
+ client.getObjectFactory().newPrimitiveValueBuilder().setValue(id).
+ setType(EdmPrimitiveTypeKind.Int32).build()));
+ getClient().getBinder().add(order,
+ client.getObjectFactory().newPrimitiveProperty("OrderId",
+ client.getObjectFactory().newPrimitiveValueBuilder().setValue(id).
+ setType(EdmPrimitiveTypeKind.Int32).build()));
order.addLink(client.getObjectFactory().newEntityNavigationLink(
"Customer", URIUtils.getURI(getServiceRoot(), customer.getEditLink().toASCIIString())));
- order = createEntity(getServiceRoot(), format, order, "Order");
+ order = (ODataEntity) createEntity(getServiceRoot(), format, order, "Order");
ODataEntity changes = client.getObjectFactory().newEntity(
"Microsoft.Test.OData.Services.AstoriaDefaultService.Customer");
@@ -406,7 +413,7 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
"Orders", URIUtils.getURI(getServiceRoot(), order.getEditLink().toASCIIString())));
update(UpdateType.PATCH, changes, format, null);
- final ODataEntityRequest customerreq = client.getRetrieveRequestFactory().getEntityRequest(
+ final ODataEntityRequest<ODataEntity> customerreq = client.getRetrieveRequestFactory().getEntityRequest(
URIUtils.getURI(getServiceRoot(), order.getEditLink().toASCIIString() + "/Customer"));
customerreq.setFormat(format);
@@ -415,7 +422,7 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
assertEquals(Integer.valueOf(id),
customer.getProperty("CustomerId").getPrimitiveValue().toCastValue(Integer.class));
- final ODataEntitySetRequest orderreq = client.getRetrieveRequestFactory().getEntitySetRequest(
+ final ODataEntitySetRequest<ODataEntitySet> orderreq = client.getRetrieveRequestFactory().getEntitySetRequest(
URIUtils.getURI(getServiceRoot(), customer.getEditLink().toASCIIString() + "/Orders"));
orderreq.setFormat(format);
@@ -426,7 +433,7 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
orderres.getBody().getEntities().get(0).getProperty("OrderId").getPrimitiveValue().
toCastValue(Integer.class));
- final ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(
+ final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(
URIUtils.getURI(getServiceRoot(), customer.getEditLink().toASCIIString() + "?$expand=Orders"));
req.setFormat(format);
@@ -444,27 +451,33 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
}
private void multiKey(final ODataPubFormat format) {
- final ODataEntity message = client.getObjectFactory().newEntity(
+ final CommonODataEntity message = client.getObjectFactory().newEntity(
"Microsoft.Test.OData.Services.AstoriaDefaultService.Message");
- message.getProperties().add(client.getObjectFactory().newPrimitiveProperty("MessageId",
- client.getObjectFactory().newPrimitiveValueBuilder().setValue(1000).
- setType(EdmPrimitiveTypeKind.Int32).build()));
- message.getProperties().add(client.getObjectFactory().newPrimitiveProperty("FromUsername",
- client.getObjectFactory().newPrimitiveValueBuilder().setValue("1").
- setType(EdmPrimitiveTypeKind.String).build()));
- message.getProperties().add(client.getObjectFactory().newPrimitiveProperty("ToUsername",
- client.getObjectFactory().newPrimitiveValueBuilder().setValue("xlodhxzzusxecbzptxlfxprneoxkn").
- setType(EdmPrimitiveTypeKind.String).build()));
- message.getProperties().add(client.getObjectFactory().newPrimitiveProperty("Subject",
- client.getObjectFactory().newPrimitiveValueBuilder().setValue("Test subject").
- setType(EdmPrimitiveTypeKind.String).build()));
- message.getProperties().add(client.getObjectFactory().newPrimitiveProperty("Body",
- client.getObjectFactory().newPrimitiveValueBuilder().setValue("Test body").
- setType(EdmPrimitiveTypeKind.String).build()));
- message.getProperties().add(client.getObjectFactory().newPrimitiveProperty("IsRead",
- client.getObjectFactory().newPrimitiveValueBuilder().setValue(false).
- setType(EdmPrimitiveTypeKind.Boolean).build()));
+ getClient().getBinder().add(message,
+ client.getObjectFactory().newPrimitiveProperty("MessageId",
+ client.getObjectFactory().newPrimitiveValueBuilder().setValue(1000).
+ setType(EdmPrimitiveTypeKind.Int32).build()));
+ getClient().getBinder().add(message,
+ client.getObjectFactory().newPrimitiveProperty("FromUsername",
+ client.getObjectFactory().newPrimitiveValueBuilder().setValue("1").
+ setType(EdmPrimitiveTypeKind.String).build()));
+ getClient().getBinder().add(message,
+ client.getObjectFactory().newPrimitiveProperty("ToUsername",
+ client.getObjectFactory().newPrimitiveValueBuilder().setValue("xlodhxzzusxecbzptxlfxprneoxkn").
+ setType(EdmPrimitiveTypeKind.String).build()));
+ getClient().getBinder().add(message,
+ client.getObjectFactory().newPrimitiveProperty("Subject",
+ client.getObjectFactory().newPrimitiveValueBuilder().setValue("Test subject").
+ setType(EdmPrimitiveTypeKind.String).build()));
+ getClient().getBinder().add(message,
+ client.getObjectFactory().newPrimitiveProperty("Body",
+ client.getObjectFactory().newPrimitiveValueBuilder().setValue("Test body").
+ setType(EdmPrimitiveTypeKind.String).build()));
+ getClient().getBinder().add(message,
+ client.getObjectFactory().newPrimitiveProperty("IsRead",
+ client.getObjectFactory().newPrimitiveValueBuilder().setValue(false).
+ setType(EdmPrimitiveTypeKind.Boolean).build()));
final CommonURIBuilder<?> builder =
client.getURIBuilder(getServiceRoot()).appendEntitySetSegment("Message");
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityRetrieveTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityRetrieveTestITCase.java
index ddcd342..1b43c47 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityRetrieveTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityRetrieveTestITCase.java
@@ -18,11 +18,6 @@
*/
package org.apache.olingo.client.core.it.v3;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
import java.util.LinkedHashMap;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
@@ -30,16 +25,22 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRe
import org.apache.olingo.client.api.communication.request.retrieve.ODataRawRequest;
import org.apache.olingo.client.api.communication.response.ODataRawResponse;
import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
+import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
+import org.apache.olingo.commons.api.domain.CommonODataProperty;
import org.apache.olingo.commons.api.domain.ODataInlineEntity;
import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.v3.ODataEntity;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
import org.apache.olingo.commons.api.format.ODataPubFormat;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
import org.apache.olingo.commons.core.op.ResourceFactory;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
import org.junit.Test;
/**
@@ -55,7 +56,7 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(getServiceRoot()).
appendEntitySetSegment("Customer").appendKeySegment(-10).expand("Info");
- final ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+ final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
req.setFormat(format);
final ODataRetrieveResponse<ODataEntity> res = req.execute();
@@ -72,13 +73,13 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
for (ODataLink link : entity.getNavigationLinks()) {
if (link instanceof ODataInlineEntity) {
- final ODataEntity inline = ((ODataInlineEntity) link).getEntity();
+ final CommonODataEntity inline = ((ODataInlineEntity) link).getEntity();
assertNotNull(inline);
debugEntry(client.getBinder().getEntry(
inline, ResourceFactory.entryClassForFormat(format == ODataPubFormat.ATOM)), "Just read");
- final List<ODataProperty> properties = inline.getProperties();
+ final List<? extends CommonODataProperty> properties = inline.getProperties();
assertEquals(2, properties.size());
assertTrue(properties.get(0).getName().equals("CustomerInfoId")
@@ -108,7 +109,7 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(getServiceRoot()).
appendEntitySetSegment("Customer").appendKeySegment(-10).expand("Orders");
- final ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+ final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
req.setFormat(format);
final ODataRetrieveResponse<ODataEntity> res = req.execute();
@@ -119,7 +120,7 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
for (ODataLink link : entity.getNavigationLinks()) {
if (link instanceof ODataInlineEntitySet) {
- final ODataEntitySet inline = ((ODataInlineEntitySet) link).getEntitySet();
+ final CommonODataEntitySet inline = ((ODataInlineEntitySet) link).getEntitySet();
assertNotNull(inline);
debugFeed(client.getBinder().getFeed(inline, ResourceFactory.feedClassForFormat(
@@ -153,10 +154,10 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
final ODataRawResponse res = req.execute();
assertNotNull(res);
- final ODataEntitySet entitySet = res.getBodyAs(ODataEntitySet.class);
+ final CommonODataEntitySet entitySet = res.getBodyAs(CommonODataEntitySet.class);
assertNull(entitySet);
- final ODataEntity entity = res.getBodyAs(ODataEntity.class);
+ final CommonODataEntity entity = res.getBodyAs(CommonODataEntity.class);
assertNotNull(entity);
}
@@ -179,7 +180,7 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(getServiceRoot()).
appendEntitySetSegment("Message").appendKeySegment(multiKey);
- final ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+ final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
req.setFormat(format);
final ODataRetrieveResponse<ODataEntity> res = req.execute();
@@ -212,7 +213,7 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
final CommonURIBuilder<?> uriBuilder =
client.getURIBuilder(getServiceRoot()).appendEntitySetSegment("Product").appendKeySegment(-10);
- final ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+ final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
req.setFormat(format);
final ODataRetrieveResponse<ODataEntity> res = req.execute();
@@ -221,7 +222,7 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
final String etag = res.getEtag();
assertTrue(StringUtils.isNotBlank(etag));
- final ODataEntity product = res.getBody();
+ final CommonODataEntity product = res.getBody();
assertEquals(etag, product.getETag());
}
@@ -229,7 +230,7 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
public void issue99() {
final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(getServiceRoot()).appendEntitySetSegment("Car");
- final ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+ final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
req.setFormat(ODataPubFormat.JSON);
// this statement should cause an IllegalArgumentException bearing JsonParseException