Repository: olingo-odata4
Updated Branches:
  refs/heads/master 6b7be9deb -> 58ecb3f5d


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/58ecb3f5/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 8c6273d..e968f9b 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
@@ -27,7 +27,7 @@ import 
org.apache.olingo.client.api.communication.request.cud.v3.CUDRequestFacto
 import org.apache.olingo.client.api.communication.request.cud.v3.UpdateType;
 import 
org.apache.olingo.client.api.communication.request.invoke.InvokeRequestFactory;
 import 
org.apache.olingo.client.api.communication.request.retrieve.v3.RetrieveRequestFactory;
-import 
org.apache.olingo.client.api.communication.request.streamed.v3.StreamedRequestFactory;
+import 
org.apache.olingo.client.api.communication.request.streamed.StreamedRequestFactory;
 import org.apache.olingo.commons.api.op.ODataSerializer;
 import org.apache.olingo.client.api.op.v3.ODataDeserializer;
 import org.apache.olingo.client.api.op.v3.ODataBinder;
@@ -40,7 +40,7 @@ import 
org.apache.olingo.client.core.communication.request.batch.v3.BatchRequest
 import 
org.apache.olingo.client.core.communication.request.cud.v3.CUDRequestFactoryImpl;
 import 
org.apache.olingo.client.core.communication.request.invoke.v3.InvokeRequestFactoryImpl;
 import 
org.apache.olingo.client.core.communication.request.retrieve.v3.RetrieveRequestFactoryImpl;
-import 
org.apache.olingo.client.core.communication.request.streamed.v3.StreamedRequestFactoryImpl;
+import 
org.apache.olingo.client.core.communication.request.streamed.StreamedRequestFactoryImpl;
 import org.apache.olingo.client.core.op.impl.v3.ODataBinderImpl;
 import org.apache.olingo.client.core.op.impl.v3.ODataDeserializerImpl;
 import org.apache.olingo.client.core.op.impl.v3.ODataReaderImpl;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/58ecb3f5/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 3a43644..58a46f5 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
@@ -27,7 +27,7 @@ import 
org.apache.olingo.client.api.communication.request.cud.v4.CUDRequestFacto
 import org.apache.olingo.client.api.communication.request.cud.v4.UpdateType;
 import 
org.apache.olingo.client.api.communication.request.invoke.InvokeRequestFactory;
 import 
org.apache.olingo.client.api.communication.request.retrieve.v4.RetrieveRequestFactory;
-import 
org.apache.olingo.client.api.communication.request.streamed.v4.StreamedRequestFactory;
+import 
org.apache.olingo.client.api.communication.request.streamed.StreamedRequestFactory;
 import 
org.apache.olingo.client.api.communication.request.v4.AsyncRequestFactory;
 import org.apache.olingo.commons.api.op.ODataSerializer;
 import org.apache.olingo.client.api.op.v4.ODataBinder;
@@ -41,7 +41,7 @@ import 
org.apache.olingo.client.core.communication.request.batch.v4.BatchRequest
 import 
org.apache.olingo.client.core.communication.request.cud.v4.CUDRequestFactoryImpl;
 import 
org.apache.olingo.client.core.communication.request.invoke.v4.InvokeRequestFactoryImpl;
 import 
org.apache.olingo.client.core.communication.request.retrieve.v4.RetrieveRequestFactoryImpl;
-import 
org.apache.olingo.client.core.communication.request.streamed.v4.StreamedRequestFactoryImpl;
+import 
org.apache.olingo.client.core.communication.request.streamed.StreamedRequestFactoryImpl;
 import 
org.apache.olingo.client.core.communication.request.v4.AsyncRequestFactoryImpl;
 import org.apache.olingo.client.core.op.impl.v4.ODataBinderImpl;
 import org.apache.olingo.client.core.op.impl.v4.ODataDeserializerImpl;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/58ecb3f5/lib/client-core/src/test/java/org/apache/olingo/client/core/v3/EntityTest.java
----------------------------------------------------------------------
diff --git 
a/lib/client-core/src/test/java/org/apache/olingo/client/core/v3/EntityTest.java
 
b/lib/client-core/src/test/java/org/apache/olingo/client/core/v3/EntityTest.java
index 20f7536..b73dc0d 100644
--- 
a/lib/client-core/src/test/java/org/apache/olingo/client/core/v3/EntityTest.java
+++ 
b/lib/client-core/src/test/java/org/apache/olingo/client/core/v3/EntityTest.java
@@ -55,7 +55,7 @@ public class EntityTest extends AbstractTest {
     
assertEquals("Microsoft.Test.OData.Services.AstoriaDefaultService.Customer", 
entity.getTypeName().toString());
     
assertTrue(entity.getEditLink().toASCIIString().endsWith("/Customer(-10)"));
     assertEquals(5, entity.getNavigationLinks().size());
-    assertEquals(2, entity.getEditMediaLinks().size());
+    assertEquals(2, entity.getMediaEditLinks().size());
 
     boolean check = false;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/58ecb3f5/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
----------------------------------------------------------------------
diff --git 
a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
 
b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
index 537dfcd..8c61a50 100644
--- 
a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
+++ 
b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
@@ -217,7 +217,7 @@ public class EntityTest extends AbstractTest {
 
     assertFalse(entity.isMediaEntity());
 
-    final ODataLink editMedia = entity.getEditMediaLink("Photo");
+    final ODataLink editMedia = entity.getMediaEditLink("Photo");
     assertNotNull(editMedia);
 
     final ODataEntity written = getClient().getBinder().getODataEntity(

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/58ecb3f5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Entity.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Entity.java 
b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Entity.java
index 67561f9..ab590a1 100644
--- 
a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Entity.java
+++ 
b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Entity.java
@@ -135,14 +135,14 @@ public interface Entity extends Linked, Annotatable {
    *
    * @return media content resource.
    */
-  String getMediaContentSource();
+  URI getMediaContentSource();
 
   /**
    * Set media content source.
    *
    * @param mediaContentSource media content source.
    */
-  void setMediaContentSource(String mediaContentSource);
+  void setMediaContentSource(URI mediaContentSource);
 
   /**
    * Set media content type.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/58ecb3f5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/CommonODataEntity.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/CommonODataEntity.java
 
b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/CommonODataEntity.java
index bfae953..1487b13 100644
--- 
a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/CommonODataEntity.java
+++ 
b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/CommonODataEntity.java
@@ -101,14 +101,14 @@ public interface CommonODataEntity extends ODataLinked, 
ODataInvokeResult {
    * @param name candidate link name
    * @return media-edit link with given name, if available, otherwise 
<tt>null</tt>
    */
-  ODataLink getEditMediaLink(String name);
+  ODataLink getMediaEditLink(final String name);
 
   /**
-   * Returns all entity media edit links.
+   * Returns entity media edit links.
    *
    * @return OData entity links.
    */
-  List<ODataLink> getEditMediaLinks();
+  List<ODataLink> getMediaEditLinks();
 
   /**
    * TRUE if read-only entity.
@@ -150,14 +150,14 @@ public interface CommonODataEntity extends ODataLinked, 
ODataInvokeResult {
    *
    * @return media content source.
    */
-  String getMediaContentSource();
+  URI getMediaContentSource();
 
   /**
    * Sets media content source.
    *
    * @param mediaContentSource media content source.
    */
-  void setMediaContentSource(String mediaContentSource);
+  void setMediaContentSource(URI mediaContentSource);
 
   /**
    * ETag of the binary stream represented by this media entity or named 
stream property.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/58ecb3f5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractEntity.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractEntity.java
 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractEntity.java
index 21ada97..7bc3fd5 100644
--- 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractEntity.java
+++ 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractEntity.java
@@ -18,9 +18,9 @@
  */
 package org.apache.olingo.commons.core.data;
 
+import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
-import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.Property;
@@ -51,7 +51,7 @@ public abstract class AbstractEntity extends 
AbstractODataObject implements Enti
 
   private final List<Property> properties = new ArrayList<Property>();
 
-  private String mediaContentSource;
+  private URI mediaContentSource;
 
   private String mediaContentType;
 
@@ -167,12 +167,12 @@ public abstract class AbstractEntity extends 
AbstractODataObject implements Enti
   }
 
   @Override
-  public String getMediaContentSource() {
+  public URI getMediaContentSource() {
     return this.mediaContentSource;
   }
 
   @Override
-  public void setMediaContentSource(final String mediaContentSource) {
+  public void setMediaContentSource(final URI mediaContentSource) {
     this.mediaContentSource = mediaContentSource;
   }
 
@@ -188,6 +188,6 @@ public abstract class AbstractEntity extends 
AbstractODataObject implements Enti
 
   @Override
   public boolean isMediaEntity() {
-    return StringUtils.isNotBlank(this.mediaContentSource);
+    return this.mediaContentSource != null;
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/58ecb3f5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomDeserializer.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomDeserializer.java
 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomDeserializer.java
index 27379da..dad1bfa 100644
--- 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomDeserializer.java
+++ 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomDeserializer.java
@@ -677,7 +677,7 @@ public class AtomDeserializer extends AbstractAtomDealer {
               entity.setMediaContentType(type.getValue());
               final Attribute src = 
event.asStartElement().getAttributeByName(QName.valueOf(Constants.ATOM_ATTR_SRC));
               if (src != null) {
-                entity.setMediaContentSource(src.getValue());
+                entity.setMediaContentSource(URI.create(src.getValue()));
               }
             }
           } else if (propertiesQName.equals(event.asStartElement().getName())) 
{

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/58ecb3f5/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 0f9750a..cfa83fb 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
@@ -309,8 +309,8 @@ public class AtomSerializer extends AbstractAtomDealer {
       if (StringUtils.isNotBlank(entity.getMediaContentType())) {
         writer.writeAttribute(Constants.ATTR_TYPE, 
entity.getMediaContentType());
       }
-      if (StringUtils.isNotBlank(entity.getMediaContentSource())) {
-        writer.writeAttribute(Constants.ATOM_ATTR_SRC, 
entity.getMediaContentSource());
+      if (entity.getMediaContentSource() != null) {
+        writer.writeAttribute(Constants.ATOM_ATTR_SRC, 
entity.getMediaContentSource().toASCIIString());
       }
       writer.writeEndElement();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/58ecb3f5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntityDeserializer.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntityDeserializer.java
 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntityDeserializer.java
index 567fadb..4641375 100644
--- 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntityDeserializer.java
+++ 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntityDeserializer.java
@@ -121,11 +121,11 @@ public class JSONEntityDeserializer extends 
AbstractJsonDeserializer<JSONEntityI
     }
 
     if (tree.hasNonNull(jsonMediaReadLink)) {
-      entity.setMediaContentSource(tree.get(jsonMediaReadLink).textValue());
+      
entity.setMediaContentSource(URI.create(tree.get(jsonMediaReadLink).textValue()));
       tree.remove(jsonMediaReadLink);
     }
     if (tree.hasNonNull(jsonMediaEditLink)) {
-      entity.setMediaContentSource(tree.get(jsonMediaEditLink).textValue());
+      
entity.setMediaContentSource(URI.create(tree.get(jsonMediaEditLink).textValue()));
       tree.remove(jsonMediaEditLink);
     }
     if (tree.hasNonNull(jsonMediaContentType)) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/58ecb3f5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntitySerializer.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntitySerializer.java
 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntitySerializer.java
index cb0280d..cee5b54 100644
--- 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntitySerializer.java
+++ 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/JSONEntitySerializer.java
@@ -26,10 +26,10 @@ import java.net.URI;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.data.Annotation;
-import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.Property;
+import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.commons.api.domain.ODataOperation;
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
@@ -87,12 +87,20 @@ public class JSONEntitySerializer extends 
AbstractJsonSerializer<JSONEntityImpl>
       valuable(jgen, property, property.getName());
     }
 
-    if (serverMode && entity.getEditLink() != null && 
StringUtils.isNotBlank(entity.getEditLink().getHref())) {
-      final URI link = URI.create(entity.getEditLink().getHref());
-      final String editLink = link.isAbsolute() ? link.toASCIIString()
-              : URI.create(entity.getBaseURI() + "/" + 
link.toASCIIString()).normalize().toASCIIString();
+    if (serverMode) {
+      if (entity.getEditLink() != null && 
StringUtils.isNotBlank(entity.getEditLink().getHref())) {
+        final URI link = URI.create(entity.getEditLink().getHref());
+        final String editLink = link.isAbsolute() ? link.toASCIIString()
+                : URI.create(entity.getBaseURI() + "/" + 
link.toASCIIString()).normalize().toASCIIString();
+
+        jgen.writeStringField(
+                version.getJSONMap().get(ODataServiceVersion.JSON_EDIT_LINK), 
editLink);
 
-      
jgen.writeStringField(version.getJSONMap().get(ODataServiceVersion.JSON_EDIT_LINK),
 editLink);
+        if (entity.isMediaEntity()) {
+          jgen.writeStringField(
+                  
version.getJSONMap().get(ODataServiceVersion.JSON_MEDIAREAD_LINK), editLink + 
"/$value");
+        }
+      }
     }
 
     links(entity, jgen);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/58ecb3f5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataEntity.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataEntity.java
 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataEntity.java
index 3152b3d..bbc66f7 100644
--- 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataEntity.java
+++ 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataEntity.java
@@ -56,7 +56,7 @@ public abstract class AbstractODataEntity extends 
AbstractODataPayload implement
   /**
    * In case of media entity, media content source.
    */
-  private String mediaContentSource;
+  private URI mediaContentSource;
 
   /**
    * Media ETag.
@@ -81,7 +81,7 @@ public abstract class AbstractODataEntity extends 
AbstractODataPayload implement
   /**
    * Media edit links.
    */
-  private final List<ODataLink> editMediaLinks = new ArrayList<ODataLink>();
+  private final List<ODataLink> mediaEditLinks = new ArrayList<ODataLink>();
 
   /**
    * Operations (legacy, functions, actions).
@@ -89,7 +89,7 @@ public abstract class AbstractODataEntity extends 
AbstractODataPayload implement
   private final List<ODataOperation> operations = new 
ArrayList<ODataOperation>();
 
   public AbstractODataEntity(final FullQualifiedName typeName) {
-    super(typeName == null? null: typeName.toString());
+    super(typeName == null ? null : typeName.toString());
     this.typeName = typeName;
   }
 
@@ -160,7 +160,7 @@ public abstract class AbstractODataEntity extends 
AbstractODataPayload implement
         break;
 
       case MEDIA_EDIT:
-        result = editMediaLinks.contains(link) ? false : 
editMediaLinks.add(link);
+        result = mediaEditLinks.contains(link) ? false : 
mediaEditLinks.add(link);
         break;
 
       default:
@@ -171,7 +171,7 @@ public abstract class AbstractODataEntity extends 
AbstractODataPayload implement
 
   @Override
   public boolean removeLink(final ODataLink link) {
-    return associationLinks.remove(link) || navigationLinks.remove(link) || 
editMediaLinks.remove(link);
+    return associationLinks.remove(link) || navigationLinks.remove(link);
   }
 
   private ODataLink getLink(final List<ODataLink> links, final String name) {
@@ -206,13 +206,13 @@ public abstract class AbstractODataEntity extends 
AbstractODataPayload implement
   }
 
   @Override
-  public ODataLink getEditMediaLink(final String name) {
-    return getLink(editMediaLinks, name);
+  public ODataLink getMediaEditLink(final String name) {
+    return getLink(mediaEditLinks, name);
   }
 
   @Override
-  public List<ODataLink> getEditMediaLinks() {
-    return editMediaLinks;
+  public List<ODataLink> getMediaEditLinks() {
+    return mediaEditLinks;
   }
 
   @Override
@@ -256,12 +256,12 @@ public abstract class AbstractODataEntity extends 
AbstractODataPayload implement
   }
 
   @Override
-  public String getMediaContentSource() {
+  public URI getMediaContentSource() {
     return mediaContentSource;
   }
 
   @Override
-  public void setMediaContentSource(final String mediaContentSource) {
+  public void setMediaContentSource(final URI mediaContentSource) {
     this.mediaContentSource = mediaContentSource;
   }
 

Reply via email to