You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ch...@apache.org on 2013/10/14 16:45:19 UTC

git commit: OLINGO-30 Use EdmMapping instead of write properties

Updated Branches:
  refs/heads/master 6750521fc -> 95eb8f189


OLINGO-30 Use EdmMapping instead of write properties

Deleted new fields at the write properties and used edm mapping object
instead.


Project: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/commit/95eb8f18
Tree: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/tree/95eb8f18
Diff: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/diff/95eb8f18

Branch: refs/heads/master
Commit: 95eb8f1892a14a99c2556c88eace0ef9bb13d30d
Parents: 6750521
Author: Christian Amend <ch...@apache.org>
Authored: Mon Oct 14 16:43:12 2013 +0200
Committer: Christian Amend <ch...@apache.org>
Committed: Mon Oct 14 16:43:12 2013 +0200

----------------------------------------------------------------------
 .../olingo/odata2/api/edm/EdmMapping.java       |  13 ++
 .../olingo/odata2/api/edm/provider/Mapping.java |  31 +++++
 .../api/ep/EntityProviderWriteProperties.java   |  39 +-----
 .../ep/producer/AtomEntryEntityProducer.java    |  59 +++++----
 .../ep/producer/JsonEntryEntityProducer.java    |  32 +++--
 .../ep/ODataEntityProviderPropertiesTest.java   |  14 +-
 .../core/ep/producer/AtomEntryProducerTest.java |  84 +++++++-----
 .../producer/JsonEntryEntityProducerTest.java   | 131 +++++++++++++------
 .../ep/producer/JsonFunctionImportTest.java     |   2 +-
 .../odata2/ref/processor/ListsProcessor.java    |  20 +--
 10 files changed, 252 insertions(+), 173 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/95eb8f18/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmMapping.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmMapping.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmMapping.java
index 750b407..c810fca 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmMapping.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmMapping.java
@@ -37,9 +37,22 @@ public interface EdmMapping {
    * 
    * @return mapping name as String
    */
+  @Deprecated
   String getMimeType();
 
   /**
+   * Gets the key under which the resource source value can be found in the data map.
+   * @return the key of the media resource source
+   */
+  String getMediaResourceSourceKey();
+
+  /**
+   * Gets the key under which the resource mime type can be found in the data map.
+   * @return the key of the media resource type
+   */
+  String getMediaResourceMimeTypeKey();
+
+  /**
    * Get the set object for this mapping
    * 
    * @return {@link Object} object

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/95eb8f18/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/Mapping.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/Mapping.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/Mapping.java
index f7f0f00..4cdb6de 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/Mapping.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/Mapping.java
@@ -29,6 +29,8 @@ public class Mapping implements EdmMapping {
   private String value;
   private String mimeType;
   private Object object;
+  private String mediaResourceSourceKey;
+  private String mediaResourceMimeTypeKey;
 
   @Override
   public String getInternalName() {
@@ -44,6 +46,16 @@ public class Mapping implements EdmMapping {
   public Object getObject() {
     return object;
   }
+  
+  @Override
+  public String getMediaResourceSourceKey() {
+    return mediaResourceSourceKey;
+  }
+
+  @Override
+  public String getMediaResourceMimeTypeKey() {
+    return mediaResourceMimeTypeKey;
+  }
 
   /**
    * Sets the value for this {@link Mapping}.
@@ -60,6 +72,7 @@ public class Mapping implements EdmMapping {
    * @param mimeType
    * @return {@link Mapping} for method chaining
    */
+  @Deprecated
   public Mapping setMimeType(final String mimeType) {
     this.mimeType = mimeType;
     return this;
@@ -74,4 +87,22 @@ public class Mapping implements EdmMapping {
     this.object = object;
     return this;
   }
+  
+  /**
+   * Sets the key for the resource source key which is used for the lookup in the data map
+   * @param mediaResourceSourceKey under which the source can be found in the data map
+   */
+  public void setMediaResourceSourceKey(String mediaResourceSourceKey) {
+    this.mediaResourceSourceKey = mediaResourceSourceKey;
+  }
+
+  /**
+   * Sets the key for the resource mime type key which is used for the lookup in the data map
+   * @param mediaResourceMimeTypeKey under which the mime type can be found in the data map
+   */
+  public void setMediaResourceMimeTypeKey(String mediaResourceMimeTypeKey) {
+    this.mediaResourceMimeTypeKey = mediaResourceMimeTypeKey;
+  }
+
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/95eb8f18/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderWriteProperties.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderWriteProperties.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderWriteProperties.java
index 227e1ef..2a7e978 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderWriteProperties.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderWriteProperties.java
@@ -34,6 +34,7 @@ import org.apache.olingo.odata2.api.uri.ExpandSelectTreeNode;
 public class EntityProviderWriteProperties {
 
   private URI serviceRoot;
+  @Deprecated
   private String mediaResourceMimeType;
   private InlineCount inlineCountType;
   private Integer inlineCount;
@@ -41,8 +42,6 @@ public class EntityProviderWriteProperties {
   private ExpandSelectTreeNode expandSelectTree;
   private Map<String, ODataCallback> callbacks = Collections.emptyMap();
   private URI selfLink;
-  private String mediaResourceSourceKey;
-  private String mediaResourceTypeKey;
 
   private EntityProviderWriteProperties() {}
 
@@ -66,6 +65,7 @@ public class EntityProviderWriteProperties {
    * Gets the MIME type of the media resource.
    * @return the MIME type of the media resource
    */
+  @Deprecated
   public final String getMediaResourceMimeType() {
     return mediaResourceMimeType;
   }
@@ -106,22 +106,6 @@ public class EntityProviderWriteProperties {
   public final String getNextLink() {
     return nextLink;
   }
-  
-  /**
-   * Gets the key under which the resource source value can be found in the data map.
-   * @return the key of the media resource source
-   */
-  public final String getMediaResourceSourceKey() {
-    return mediaResourceSourceKey;
-  }
-  
-  /**
-   * Gets the key under which the resource mime type can be found in the data map.
-   * @return the key of the media resource type
-   */
-  public final String getMediaResourceTypeKey() {
-    return mediaResourceTypeKey;
-  }
 
   public static ODataEntityProviderPropertiesBuilder serviceRoot(final URI serviceRoot) {
     return new ODataEntityProviderPropertiesBuilder().serviceRoot(serviceRoot);
@@ -134,28 +118,13 @@ public class EntityProviderWriteProperties {
     /**
      * @param mediaResourceMimeType the mediaResourceMimeType to set
      */
+    @Deprecated
     public final ODataEntityProviderPropertiesBuilder mediaResourceMimeType(final String mediaResourceMimeType) {
       properties.mediaResourceMimeType = mediaResourceMimeType;
       return this;
     }
     
     /**
-     * @param mediaResourceSourceKey the mediaResourceSourceKey to set
-     */
-    public final ODataEntityProviderPropertiesBuilder mediaResourceSourceKey(final String mediaResourceSourceKey) {
-      properties.mediaResourceSourceKey = mediaResourceSourceKey;
-      return this;
-    }
-    
-    /**
-     * @param mediaResourceTypeKey the mediaResourceTypeKey to set
-     */
-    public ODataEntityProviderPropertiesBuilder mediaResourceTypeKey(String mediaResourceTypeKey) {
-      properties.mediaResourceTypeKey = mediaResourceTypeKey;
-      return this;
-    }
-
-    /**
      * @param inlineCountType the inlineCountType to set
      */
     public final ODataEntityProviderPropertiesBuilder inlineCountType(final InlineCount inlineCountType) {
@@ -219,8 +188,6 @@ public class EntityProviderWriteProperties {
 
     public ODataEntityProviderPropertiesBuilder fromProperties(final EntityProviderWriteProperties properties) {
       this.properties.mediaResourceMimeType = properties.getMediaResourceMimeType();
-      this.properties.mediaResourceTypeKey = properties.getMediaResourceTypeKey();
-      this.properties.mediaResourceSourceKey = properties.getMediaResourceSourceKey();
       this.properties.inlineCountType = properties.getInlineCountType();
       this.properties.inlineCount = properties.getInlineCount();
       this.properties.nextLink = properties.getNextLink();

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/95eb8f18/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryEntityProducer.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryEntityProducer.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryEntityProducer.java
index 4da4ab1..1b24a9a 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryEntityProducer.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryEntityProducer.java
@@ -36,6 +36,7 @@ import org.apache.olingo.odata2.api.edm.EdmEntitySet;
 import org.apache.olingo.odata2.api.edm.EdmException;
 import org.apache.olingo.odata2.api.edm.EdmFacets;
 import org.apache.olingo.odata2.api.edm.EdmLiteralKind;
+import org.apache.olingo.odata2.api.edm.EdmMapping;
 import org.apache.olingo.odata2.api.edm.EdmMultiplicity;
 import org.apache.olingo.odata2.api.edm.EdmNavigationProperty;
 import org.apache.olingo.odata2.api.edm.EdmSimpleType;
@@ -312,13 +313,16 @@ public class AtomEntryEntityProducer {
   }
 
   private void appendAtomContentLink(final XMLStreamWriter writer, final EntityInfoAggregator eia,
-      final Map<String, Object> data, final String selfLink) throws EntityProviderException {
+      final Map<String, Object> data, final String selfLink) throws EntityProviderException, EdmException {
     try {
       String mediaResourceMimeType = properties.getMediaResourceMimeType();
       if (mediaResourceMimeType == null) {
-        String mediaResourceMimeTypeKey = properties.getMediaResourceTypeKey();
-        if (mediaResourceMimeTypeKey != null) {
-          mediaResourceMimeType = extractKey(data, mediaResourceMimeTypeKey);
+        EdmMapping entityTypeMapping = eia.getEntityType().getMapping();
+        if (entityTypeMapping != null) {
+          String mediaResourceMimeTypeKey = entityTypeMapping.getMediaResourceMimeTypeKey();
+          if (mediaResourceMimeTypeKey != null) {
+            mediaResourceMimeType = (String) data.get(mediaResourceMimeTypeKey);
+          }
         }
         if (mediaResourceMimeType == null) {
           mediaResourceMimeType = ContentType.APPLICATION_OCTET_STREAM.toString();
@@ -336,26 +340,36 @@ public class AtomEntryEntityProducer {
   }
 
   private void appendAtomContentPart(final XMLStreamWriter writer, final EntityInfoAggregator eia,
-      final Map<String, Object> data, final String selfLink) throws EntityProviderException {
+      final Map<String, Object> data, final String selfLink) throws EntityProviderException, EdmException {
     try {
 
-      String mediaResourceSourceKey = properties.getMediaResourceSourceKey();
+      // We have to support the media resource mime type at the properties till version 1.2 then this can be refactored
       String mediaResourceMimeType = properties.getMediaResourceMimeType();
-
+      EdmMapping entityTypeMapping = eia.getEntityType().getMapping();
       String self = null;
-      if (mediaResourceSourceKey != null) {
-        self = extractKey(data, mediaResourceSourceKey);
-      }
-      if (self == null) {
-        self = selfLink + "/$value";
-      }
 
-      if (mediaResourceMimeType == null) {
-        String mediaResourceMimeTypeKey = properties.getMediaResourceTypeKey();
-        if (mediaResourceMimeTypeKey != null) {
-          mediaResourceMimeType = extractKey(data, mediaResourceMimeTypeKey);
+      if (entityTypeMapping != null) {
+        String mediaResourceSourceKey = entityTypeMapping.getMediaResourceSourceKey();
+        if (mediaResourceSourceKey != null) {
+          self = (String) data.get(mediaResourceSourceKey);
+        }
+        if (self == null) {
+          self = selfLink + "/$value";
         }
         if (mediaResourceMimeType == null) {
+          String mediaResourceMimeTypeKey =
+              entityTypeMapping.getMimeType() != null ? entityTypeMapping.getMimeType()
+                  : entityTypeMapping.getMediaResourceMimeTypeKey();
+          if (mediaResourceMimeTypeKey != null) {
+            mediaResourceMimeType = (String) data.get(mediaResourceMimeTypeKey);
+          }
+          if (mediaResourceMimeType == null) {
+            mediaResourceMimeType = ContentType.APPLICATION_OCTET_STREAM.toString();
+          }
+        }
+      } else {
+        self = selfLink + "/$value";
+        if (mediaResourceMimeType == null) {
           mediaResourceMimeType = ContentType.APPLICATION_OCTET_STREAM.toString();
         }
       }
@@ -369,17 +383,6 @@ public class AtomEntryEntityProducer {
     }
   }
 
-  private String extractKey(final Map<String, Object> data, final String mediaResourceMimeTypeKey)
-      throws EntityProviderException {
-    Object key = data.get(mediaResourceMimeTypeKey);
-    if (key == null || key instanceof String) {
-      return (String) key;
-    } else {
-      throw new EntityProviderException(EntityProviderException.ILLEGAL_ARGUMENT
-          .addContent("Key must be of type String"));
-    }
-  }
-
   private void appendAtomMandatoryParts(final XMLStreamWriter writer, final EntityInfoAggregator eia,
       final Map<String, Object> data, final String selfLink) throws EntityProviderException {
     try {

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/95eb8f18/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducer.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducer.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducer.java
index 0659ad8..783aca3 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducer.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducer.java
@@ -29,6 +29,7 @@ import org.apache.olingo.odata2.api.edm.Edm;
 import org.apache.olingo.odata2.api.edm.EdmEntitySet;
 import org.apache.olingo.odata2.api.edm.EdmEntityType;
 import org.apache.olingo.odata2.api.edm.EdmException;
+import org.apache.olingo.odata2.api.edm.EdmMapping;
 import org.apache.olingo.odata2.api.edm.EdmMultiplicity;
 import org.apache.olingo.odata2.api.edm.EdmNavigationProperty;
 import org.apache.olingo.odata2.api.ep.EntityProviderException;
@@ -200,23 +201,38 @@ public class JsonEntryEntityProducer {
     }
     if (type.hasStream()) {
       jsonStreamWriter.separator();
+
+      // We have to support the media resource mime type at the properties till version 1.2 then this can be refactored
       String mediaResourceMimeType = properties.getMediaResourceMimeType();
-      if (mediaResourceMimeType == null) {
-        String mediaResourceMimeTypeKey = properties.getMediaResourceTypeKey();
-        if (mediaResourceMimeTypeKey != null) {
-          mediaResourceMimeType = extractKey(data, mediaResourceMimeTypeKey);
+      EdmMapping entityTypeMapping = entityInfo.getEntityType().getMapping();
+      String mediaSrc = null;
+
+      if (entityTypeMapping != null) {
+        String mediaResourceSourceKey = entityTypeMapping.getMediaResourceSourceKey();
+        if (mediaResourceSourceKey != null) {
+          mediaSrc = (String) data.get(mediaResourceSourceKey);
+        }
+        if (mediaSrc == null) {
+          mediaSrc = self + "/$value";
         }
         if (mediaResourceMimeType == null) {
+          mediaResourceMimeType =
+              entityTypeMapping.getMimeType() != null ? (String) data.get(entityTypeMapping.getMimeType())
+                  : (String) data.get(entityTypeMapping.getMediaResourceMimeTypeKey());
+          if (mediaResourceMimeType == null) {
+            mediaResourceMimeType = ContentType.APPLICATION_OCTET_STREAM.toString();
+          }
+        }
+      } else {
+        mediaSrc = self + "/$value";
+        if (mediaResourceMimeType == null) {
           mediaResourceMimeType = ContentType.APPLICATION_OCTET_STREAM.toString();
         }
       }
+
       jsonStreamWriter.namedStringValueRaw(FormatJson.CONTENT_TYPE, mediaResourceMimeType);
       jsonStreamWriter.separator();
 
-      String mediaSrc = self + "/$value";
-      if (properties.getMediaResourceSourceKey() != null) {
-        mediaSrc = (String) data.get(properties.getMediaResourceSourceKey());
-      }
       jsonStreamWriter.namedStringValue(FormatJson.MEDIA_SRC, mediaSrc);
       jsonStreamWriter.separator();
       jsonStreamWriter.namedStringValue(FormatJson.EDIT_MEDIA, location + "/$value");

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/95eb8f18/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/ODataEntityProviderPropertiesTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/ODataEntityProviderPropertiesTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/ODataEntityProviderPropertiesTest.java
index 04ecea1..0605628 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/ODataEntityProviderPropertiesTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/ODataEntityProviderPropertiesTest.java
@@ -66,8 +66,6 @@ public class ODataEntityProviderPropertiesTest extends BaseTest {
         .expandSelectTree(expandSelectTree)
         .inlineCount(1)
         .inlineCountType(InlineCount.ALLPAGES)
-        .mediaResourceTypeKey("~typeKey")
-        .mediaResourceSourceKey("~srcKey")
         .mediaResourceMimeType("image/png")
         .nextLink("http://localhost")
         .selfLink(selfLink)
@@ -78,8 +76,6 @@ public class ODataEntityProviderPropertiesTest extends BaseTest {
     assertEquals("Wrong expand select tree.", expandSelectTree, properties.getExpandSelectTree());
     assertEquals("Wrong self link.", selfLink, properties.getSelfLink());
     assertEquals("Wrong media resource mime type.", "image/png", properties.getMediaResourceMimeType());
-    assertEquals("Wrong media resource type key.", "~typeKey", properties.getMediaResourceTypeKey());
-    assertEquals("Wrong media resource src key.", "~srcKey", properties.getMediaResourceSourceKey());
     assertEquals("Wrong base uri.", "http://localhost:80/", properties.getServiceRoot().toASCIIString());
     assertEquals("Wrong inline count type.", InlineCount.ALLPAGES, properties.getInlineCountType());
     assertEquals("Wrong inline count.", Integer.valueOf(1), properties.getInlineCount());
@@ -95,7 +91,7 @@ public class ODataEntityProviderPropertiesTest extends BaseTest {
         .build();
     assertEquals("Wrong mime type.", "text/html", properties.getMediaResourceMimeType());
   }
-  
+
   @Test
   public void buildEntryPropertiesFromExisting() throws Exception {
     URI serviceRoot = new URI("http://localhost:80/");
@@ -108,25 +104,21 @@ public class ODataEntityProviderPropertiesTest extends BaseTest {
         .expandSelectTree(expandSelectTree)
         .inlineCount(1)
         .inlineCountType(InlineCount.ALLPAGES)
-        .mediaResourceTypeKey("~typeKey")
-        .mediaResourceSourceKey("~srcKey")
         .mediaResourceMimeType("image/png")
         .nextLink("http://localhost")
         .selfLink(selfLink)
         .build();
 
     //
-    final EntityProviderWriteProperties fromProperties = 
+    final EntityProviderWriteProperties fromProperties =
         EntityProviderWriteProperties.fromProperties(properties).build();
-    
+
     //
     assertEquals(1, fromProperties.getCallbacks().size());
     assertTrue(fromProperties.getCallbacks().containsKey("aCallback"));
     assertEquals(expandSelectTree, fromProperties.getExpandSelectTree());
     assertEquals(selfLink, fromProperties.getSelfLink());
     assertEquals("image/png", fromProperties.getMediaResourceMimeType());
-    assertEquals("~typeKey", fromProperties.getMediaResourceTypeKey());
-    assertEquals("~srcKey", fromProperties.getMediaResourceSourceKey());
     assertEquals("Wrong base uri.", "http://localhost:80/", fromProperties.getServiceRoot().toASCIIString());
     assertEquals("Wrong inline count type.", InlineCount.ALLPAGES, fromProperties.getInlineCountType());
     assertEquals("Wrong inline count.", Integer.valueOf(1), fromProperties.getInlineCount());

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/95eb8f18/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryProducerTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryProducerTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryProducerTest.java
index 9cc296e..b50a072 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryProducerTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryProducerTest.java
@@ -42,7 +42,9 @@ import org.apache.olingo.odata2.api.edm.Edm;
 import org.apache.olingo.odata2.api.edm.EdmConcurrencyMode;
 import org.apache.olingo.odata2.api.edm.EdmCustomizableFeedMappings;
 import org.apache.olingo.odata2.api.edm.EdmEntitySet;
+import org.apache.olingo.odata2.api.edm.EdmEntityType;
 import org.apache.olingo.odata2.api.edm.EdmFacets;
+import org.apache.olingo.odata2.api.edm.EdmMapping;
 import org.apache.olingo.odata2.api.edm.EdmProperty;
 import org.apache.olingo.odata2.api.edm.EdmTargetPath;
 import org.apache.olingo.odata2.api.edm.EdmTyped;
@@ -707,13 +709,11 @@ public class AtomEntryProducerTest extends AbstractProviderTest {
     Map<String, Object> localEmployeeData = new HashMap<String, Object>(employeeData);
     String mediaResourceSourceKey = "~src";
     localEmployeeData.put(mediaResourceSourceKey, "http://localhost:8080/images/image1");
-    EntityProviderWriteProperties localProperties =
-        EntityProviderWriteProperties.fromProperties(DEFAULT_PROPERTIES).mediaResourceSourceKey(mediaResourceSourceKey
-            ).build();
-    ODataResponse response =
-        ser.writeEntry(MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Employees"),
-            localEmployeeData,
-            localProperties);
+    EdmEntitySet employeesSet = MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Employees");
+    EdmMapping mapping = employeesSet.getEntityType().getMapping();
+    when(mapping.getMediaResourceSourceKey()).thenReturn(mediaResourceSourceKey);
+
+    ODataResponse response = ser.writeEntry(employeesSet, localEmployeeData, DEFAULT_PROPERTIES);
     String xmlString = verifyResponse(response);
 
     assertXpathExists(
@@ -729,15 +729,14 @@ public class AtomEntryProducerTest extends AbstractProviderTest {
     Map<String, Object> localEmployeeData = new HashMap<String, Object>(employeeData);
     String mediaResourceSourceKey = "~src";
     localEmployeeData.put(mediaResourceSourceKey, "http://localhost:8080/images/image1");
-    String mediaResourceTypeKey = "~type";
-    localEmployeeData.put(mediaResourceTypeKey, "image/jpeg");
-    EntityProviderWriteProperties localProperties =
-        EntityProviderWriteProperties.fromProperties(DEFAULT_PROPERTIES).mediaResourceSourceKey(mediaResourceSourceKey
-            ).mediaResourceTypeKey(mediaResourceTypeKey).build();
-    ODataResponse response =
-        ser.writeEntry(MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Employees"),
-            localEmployeeData,
-            localProperties);
+    String mediaResourceMimeTypeKey = "~type";
+    localEmployeeData.put(mediaResourceMimeTypeKey, "image/jpeg");
+    EdmEntitySet employeesSet = MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Employees");
+    EdmMapping mapping = employeesSet.getEntityType().getMapping();
+    when(mapping.getMediaResourceSourceKey()).thenReturn(mediaResourceSourceKey);
+    when(mapping.getMediaResourceMimeTypeKey()).thenReturn(mediaResourceMimeTypeKey);
+    when(mapping.getMimeType()).thenReturn(null);
+    ODataResponse response = ser.writeEntry(employeesSet, localEmployeeData, DEFAULT_PROPERTIES);
     String xmlString = verifyResponse(response);
 
     assertXpathExists(
@@ -753,13 +752,13 @@ public class AtomEntryProducerTest extends AbstractProviderTest {
     Map<String, Object> localRoomData = new HashMap<String, Object>(roomData);
     String mediaResourceSourceKey = "~src";
     localRoomData.put(mediaResourceSourceKey, "http://localhost:8080/images/image1");
-    EntityProviderWriteProperties localProperties =
-        EntityProviderWriteProperties.fromProperties(DEFAULT_PROPERTIES).mediaResourceSourceKey(mediaResourceSourceKey
-            ).build();
-    ODataResponse response =
-        ser.writeEntry(MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Rooms"),
-            localRoomData,
-            localProperties);
+    EdmEntitySet roomsSet = MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Rooms");
+    EdmEntityType roomType = roomsSet.getEntityType();
+    EdmMapping mapping = mock(EdmMapping.class);
+    when(roomType.getMapping()).thenReturn(mapping);
+    when(mapping.getMediaResourceSourceKey()).thenReturn(mediaResourceSourceKey);
+
+    ODataResponse response = ser.writeEntry(roomsSet, localRoomData, DEFAULT_PROPERTIES);
     String xmlString = verifyResponse(response);
 
     assertXpathNotExists(
@@ -775,15 +774,16 @@ public class AtomEntryProducerTest extends AbstractProviderTest {
     Map<String, Object> localRoomData = new HashMap<String, Object>(roomData);
     String mediaResourceSourceKey = "~src";
     localRoomData.put(mediaResourceSourceKey, "http://localhost:8080/images/image1");
-    String mediaResourceTypeKey = "~type";
-    localRoomData.put(mediaResourceTypeKey, "image/jpeg");
-    EntityProviderWriteProperties localProperties =
-        EntityProviderWriteProperties.fromProperties(DEFAULT_PROPERTIES).mediaResourceSourceKey(mediaResourceSourceKey
-            ).mediaResourceTypeKey(mediaResourceTypeKey).build();
-    ODataResponse response =
-        ser.writeEntry(MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Rooms"),
-            localRoomData,
-            localProperties);
+    String mediaResourceMimeTypeKey = "~type";
+    localRoomData.put(mediaResourceMimeTypeKey, "image/jpeg");
+    EdmEntitySet roomsSet = MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Rooms");
+    EdmEntityType roomType = roomsSet.getEntityType();
+    EdmMapping mapping = mock(EdmMapping.class);
+    when(roomType.getMapping()).thenReturn(mapping);
+    when(mapping.getMediaResourceSourceKey()).thenReturn(mediaResourceSourceKey);
+    when(mapping.getMediaResourceMimeTypeKey()).thenReturn(mediaResourceMimeTypeKey);
+
+    ODataResponse response = ser.writeEntry(roomsSet, localRoomData, DEFAULT_PROPERTIES);
     String xmlString = verifyResponse(response);
 
     assertXpathNotExists(
@@ -793,6 +793,26 @@ public class AtomEntryProducerTest extends AbstractProviderTest {
     assertXpathNotExists("/a:entry/a:content[@src=\"http://localhost:8080/images/image1\"]", xmlString);
   }
 
+  @Test
+  public void assureGetMimeTypeWinsOverGetMediaResourceMimeTypeKey() throws Exception {
+    // Keep this test till version 1.2
+    AtomEntityProvider ser = createAtomEntityProvider();
+    Map<String, Object> localEmployeeData = new HashMap<String, Object>(employeeData);
+    String mediaResourceMimeTypeKey = "~type";
+    localEmployeeData.put(mediaResourceMimeTypeKey, "wrong");
+    String originalMimeTypeKey = "~originalType";
+    localEmployeeData.put(originalMimeTypeKey, "right");
+    EdmEntitySet employeesSet = MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Employees");
+    EdmMapping mapping = employeesSet.getEntityType().getMapping();
+    when(mapping.getMediaResourceMimeTypeKey()).thenReturn(mediaResourceMimeTypeKey);
+    when(mapping.getMimeType()).thenReturn(originalMimeTypeKey);
+    ODataResponse response = ser.writeEntry(employeesSet, localEmployeeData, DEFAULT_PROPERTIES);
+    String xmlString = verifyResponse(response);
+
+    assertXpathExists("/a:entry/a:content[@type=\"right\"]", xmlString);
+    assertXpathNotExists("/a:entry/a:content[@type=\"wrong\"]", xmlString);
+  }
+
   private void verifyTagOrdering(final String xmlString, final String... toCheckTags) {
     XMLUnitHelper.verifyTagOrdering(xmlString, toCheckTags);
   }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/95eb8f18/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
index 0ce9980..8f53d84 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
@@ -22,6 +22,8 @@ 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 static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -37,6 +39,8 @@ import java.util.TimeZone;
 
 import org.apache.olingo.odata2.api.ODataCallback;
 import org.apache.olingo.odata2.api.edm.EdmEntitySet;
+import org.apache.olingo.odata2.api.edm.EdmEntityType;
+import org.apache.olingo.odata2.api.edm.EdmMapping;
 import org.apache.olingo.odata2.api.edm.EdmProperty;
 import org.apache.olingo.odata2.api.ep.EntityProviderException;
 import org.apache.olingo.odata2.api.ep.EntityProviderWriteProperties;
@@ -124,11 +128,9 @@ public class JsonEntryEntityProducerTest extends BaseTest {
     photoData.put("Id", 1);
     photoData.put("Type", "image/png");
     photoData.put("BinaryData", new byte[] { -1, 0, 1, 2 });
+    photoData.put("getType", "image/png");
 
-    EntityProviderWriteProperties writeProperties =
-        EntityProviderWriteProperties.fromProperties(DEFAULT_PROPERTIES).mediaResourceTypeKey("Type").build();
-
-    final ODataResponse response = new JsonEntityProvider().writeEntry(entitySet, photoData, writeProperties);
+    final ODataResponse response = new JsonEntityProvider().writeEntry(entitySet, photoData, DEFAULT_PROPERTIES);
     final String json = verifyResponse(response);
     assertEquals("{\"d\":{\"__metadata\":{"
         + "\"id\":\"" + BASE_URI + "Container2.Photos(Id=1,Type='image%2Fpng')\","
@@ -154,8 +156,8 @@ public class JsonEntryEntityProducerTest extends BaseTest {
     Mockito.when(node.getProperties()).thenReturn(Arrays.asList(property));
 
     EntityProviderWriteProperties writeProperties =
-        EntityProviderWriteProperties.fromProperties(DEFAULT_PROPERTIES).mediaResourceTypeKey("getImageType")
-            .serviceRoot(URI.create(BASE_URI)).expandSelectTree(node).build();
+        EntityProviderWriteProperties.fromProperties(DEFAULT_PROPERTIES).serviceRoot(URI.create(BASE_URI))
+            .expandSelectTree(node).build();
 
     final ODataResponse response = new JsonEntityProvider().writeEntry(entitySet, employeeData,
         writeProperties);
@@ -557,14 +559,12 @@ public class JsonEntryEntityProducerTest extends BaseTest {
 
     String mediaResourceSourceKey = "~src";
     employeeData.put(mediaResourceSourceKey, "http://localhost:8080/images/image1");
-    EntityProviderWriteProperties localProperties =
-        EntityProviderWriteProperties.fromProperties(DEFAULT_PROPERTIES).mediaResourceSourceKey(mediaResourceSourceKey
-            ).build();
-    ODataResponse response =
-        new JsonEntityProvider().writeEntry(MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet(
-            "Employees"),
-            employeeData,
-            localProperties);
+
+    EdmEntitySet employeesSet = MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Employees");
+    EdmMapping mapping = employeesSet.getEntityType().getMapping();
+    when(mapping.getMediaResourceSourceKey()).thenReturn(mediaResourceSourceKey);
+
+    ODataResponse response = new JsonEntityProvider().writeEntry(employeesSet, employeeData, DEFAULT_PROPERTIES);
     String jsonString = verifyResponse(response);
     Gson gson = new Gson();
     StringMap<Object> jsonMap = gson.fromJson(jsonString, StringMap.class);
@@ -604,16 +604,16 @@ public class JsonEntryEntityProducerTest extends BaseTest {
     employeeData.put("Location", locationData);
     String mediaResourceSourceKey = "~src";
     employeeData.put(mediaResourceSourceKey, "http://localhost:8080/images/image1");
-    String mediaResourceTypeKey = "~type";
-    employeeData.put(mediaResourceTypeKey, "image/jpeg");
-    EntityProviderWriteProperties localProperties =
-        EntityProviderWriteProperties.fromProperties(DEFAULT_PROPERTIES).mediaResourceSourceKey(mediaResourceSourceKey
-            ).mediaResourceTypeKey(mediaResourceTypeKey).build();
-    ODataResponse response =
-        new JsonEntityProvider().writeEntry(MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet(
-            "Employees"),
-            employeeData,
-            localProperties);
+    String mediaResourceMimeTypeKey = "~type";
+    employeeData.put(mediaResourceMimeTypeKey, "image/jpeg");
+
+    EdmEntitySet employeesSet = MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Employees");
+    EdmMapping mapping = employeesSet.getEntityType().getMapping();
+    when(mapping.getMediaResourceSourceKey()).thenReturn(mediaResourceSourceKey);
+    when(mapping.getMediaResourceMimeTypeKey()).thenReturn(mediaResourceMimeTypeKey);
+    when(mapping.getMimeType()).thenReturn(null);
+
+    ODataResponse response = new JsonEntityProvider().writeEntry(employeesSet, employeeData, DEFAULT_PROPERTIES);
     String jsonString = verifyResponse(response);
 
     Gson gson = new Gson();
@@ -637,13 +637,14 @@ public class JsonEntryEntityProducerTest extends BaseTest {
 
     String mediaResourceSourceKey = "~src";
     roomData.put(mediaResourceSourceKey, "http://localhost:8080/images/image1");
-    EntityProviderWriteProperties localProperties =
-        EntityProviderWriteProperties.fromProperties(DEFAULT_PROPERTIES).mediaResourceSourceKey(mediaResourceSourceKey
-            ).build();
-    ODataResponse response =
-        new JsonEntityProvider().writeEntry(MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Rooms"),
-            roomData,
-            localProperties);
+
+    EdmEntitySet roomsSet = MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Rooms");
+    EdmEntityType roomType = roomsSet.getEntityType();
+    EdmMapping mapping = mock(EdmMapping.class);
+    when(roomType.getMapping()).thenReturn(mapping);
+    when(mapping.getMediaResourceSourceKey()).thenReturn(mediaResourceSourceKey);
+
+    ODataResponse response = new JsonEntityProvider().writeEntry(roomsSet, roomData, DEFAULT_PROPERTIES);
     String jsonString = verifyResponse(response);
     Gson gson = new Gson();
     StringMap<Object> jsonMap = gson.fromJson(jsonString, StringMap.class);
@@ -666,15 +667,17 @@ public class JsonEntryEntityProducerTest extends BaseTest {
 
     String mediaResourceSourceKey = "~src";
     roomData.put(mediaResourceSourceKey, "http://localhost:8080/images/image1");
-    String mediaResourceTypeKey = "~type";
-    roomData.put(mediaResourceTypeKey, "image/jpeg");
-    EntityProviderWriteProperties localProperties =
-        EntityProviderWriteProperties.fromProperties(DEFAULT_PROPERTIES).mediaResourceSourceKey(mediaResourceSourceKey
-            ).mediaResourceTypeKey(mediaResourceTypeKey).build();
-    ODataResponse response =
-        new JsonEntityProvider().writeEntry(MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Rooms"),
-            roomData,
-            localProperties);
+    String mediaResourceMimeTypeKey = "~type";
+    roomData.put(mediaResourceMimeTypeKey, "image/jpeg");
+
+    EdmEntitySet roomsSet = MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Rooms");
+    EdmEntityType roomType = roomsSet.getEntityType();
+    EdmMapping mapping = mock(EdmMapping.class);
+    when(roomType.getMapping()).thenReturn(mapping);
+    when(mapping.getMediaResourceSourceKey()).thenReturn(mediaResourceSourceKey);
+    when(mapping.getMediaResourceMimeTypeKey()).thenReturn(mediaResourceMimeTypeKey);
+
+    ODataResponse response = new JsonEntityProvider().writeEntry(roomsSet, roomData, DEFAULT_PROPERTIES);
     String jsonString = verifyResponse(response);
     Gson gson = new Gson();
     StringMap<Object> jsonMap = gson.fromJson(jsonString, StringMap.class);
@@ -685,6 +688,54 @@ public class JsonEntryEntityProducerTest extends BaseTest {
     assertNull(jsonMap.get("content_type"));
     assertNull(jsonMap.get("edit_media"));
   }
+  
+  @SuppressWarnings("unchecked")
+  @Test
+  public void assureGetMimeTypeWinsOverGetMediaResourceMimeTypeKey() throws Exception {
+    // Keep this test till version 1.2
+    Map<String, Object> employeeData = new HashMap<String, Object>();
+
+    Calendar date = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
+    date.clear();
+    date.set(1999, 0, 1);
+
+    employeeData.put("EmployeeId", "1");
+    employeeData.put("ImmageUrl", null);
+    employeeData.put("ManagerId", "1");
+    employeeData.put("Age", new Integer(52));
+    employeeData.put("RoomId", "1");
+    employeeData.put("EntryDate", date);
+    employeeData.put("TeamId", "42");
+    employeeData.put("EmployeeName", "Walter Winter");
+
+    Map<String, Object> locationData = new HashMap<String, Object>();
+    Map<String, Object> cityData = new HashMap<String, Object>();
+    cityData.put("PostalCode", "33470");
+    cityData.put("CityName", "Duckburg");
+    locationData.put("City", cityData);
+    locationData.put("Country", "Calisota");
+
+    employeeData.put("Location", locationData);
+    String mediaResourceMimeTypeKey = "~type";
+    employeeData.put(mediaResourceMimeTypeKey, "wrong");
+    String originalMimeTypeKey = "~originalType";
+    employeeData.put(originalMimeTypeKey, "right");
+    
+    EdmEntitySet employeesSet = MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Employees");
+    EdmMapping mapping = employeesSet.getEntityType().getMapping();
+    when(mapping.getMediaResourceMimeTypeKey()).thenReturn(mediaResourceMimeTypeKey);
+    when(mapping.getMimeType()).thenReturn(originalMimeTypeKey);
+
+    ODataResponse response = new JsonEntityProvider().writeEntry(employeesSet, employeeData, DEFAULT_PROPERTIES);
+    String jsonString = verifyResponse(response);
+
+    Gson gson = new Gson();
+    StringMap<Object> jsonMap = gson.fromJson(jsonString, StringMap.class);
+    jsonMap = (StringMap<Object>) jsonMap.get("d");
+    jsonMap = (StringMap<Object>) jsonMap.get("__metadata");
+
+    assertEquals("right", jsonMap.get("content_type"));
+  }
 
   private String verifyResponse(final ODataResponse response) throws IOException {
     assertNotNull(response);

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/95eb8f18/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonFunctionImportTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonFunctionImportTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonFunctionImportTest.java
index 97314fd..001e7f1 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonFunctionImportTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonFunctionImportTest.java
@@ -131,7 +131,7 @@ public class JsonFunctionImportTest extends BaseTest {
         MockFacade.getMockEdm().getDefaultEntityContainer().getFunctionImport("OldestEmployee");
     final String uri = "http://host:80/service/";
     final EntityProviderWriteProperties properties =
-        EntityProviderWriteProperties.serviceRoot(URI.create(uri)).mediaResourceTypeKey("getImageType").build();
+        EntityProviderWriteProperties.serviceRoot(URI.create(uri)).build();
     Map<String, Object> employeeData = new HashMap<String, Object>();
     employeeData.put("EmployeeId", "1");
     employeeData.put("getImageType", "image/jpeg");

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/95eb8f18/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ListsProcessor.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ListsProcessor.java b/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ListsProcessor.java
index 16a9c8c..901fe59 100644
--- a/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ListsProcessor.java
+++ b/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ListsProcessor.java
@@ -194,7 +194,6 @@ public class ListsProcessor extends ODataSingleProcessor {
       values.add(getStructuralTypeValueMap(entryData, entityType));
     }
 
-    String mediaTypeKey = entityType.getMapping() == null ? null : entityType.getMapping().getMimeType();
     final EntityProviderWriteProperties feedProperties = EntityProviderWriteProperties
         .serviceRoot(context.getPathInfo().getServiceRoot())
         .inlineCountType(inlineCountType)
@@ -202,7 +201,6 @@ public class ListsProcessor extends ODataSingleProcessor {
         .expandSelectTree(UriParser.createExpandSelectTree(uriInfo.getSelect(), uriInfo.getExpand()))
         .callbacks(getCallbacks(data, entityType))
         .nextLink(nextLink)
-        .mediaResourceTypeKey(mediaTypeKey)
         .build();
 
     final int timingHandle = context.startRuntimeMeasurement("EntityProvider", "writeFeed");
@@ -828,14 +826,9 @@ public class ListsProcessor extends ODataSingleProcessor {
     }
 
     ODataContext context = getContext();
-    String mediaTypeKey = null;
-    if (type instanceof EdmStructuralType) {
-      EdmStructuralType structType = (EdmStructuralType) type;
-      mediaTypeKey = structType.getMapping() == null ? null : structType.getMapping().getMimeType();
 
-    }
     final EntityProviderWriteProperties entryProperties = EntityProviderWriteProperties
-        .serviceRoot(context.getPathInfo().getServiceRoot()).mediaResourceTypeKey(mediaTypeKey).build();
+        .serviceRoot(context.getPathInfo().getServiceRoot()).build();
 
     final int timingHandle = context.startRuntimeMeasurement("EntityProvider", "writeFunctionImport");
 
@@ -984,12 +977,10 @@ public class ListsProcessor extends ODataSingleProcessor {
         }
         WriteFeedCallbackResult result = new WriteFeedCallbackResult();
         result.setFeedData(values);
-        String mimeTypeKey =
-            entityType.getMapping() == null ? null : entityType.getMapping().getMimeType();
         EntityProviderWriteProperties inlineProperties =
             EntityProviderWriteProperties.serviceRoot(getContext().getPathInfo().getServiceRoot()).callbacks(
                 getCallbacks(relatedData, entityType)).expandSelectTree(context.getCurrentExpandSelectTreeNode())
-                .selfLink(context.getSelfLink()).mediaResourceTypeKey(mimeTypeKey).build();
+                .selfLink(context.getSelfLink()).build();
         result.setInlineProperties(inlineProperties);
         return result;
       } catch (final ODataException e) {
@@ -1011,12 +1002,10 @@ public class ListsProcessor extends ODataSingleProcessor {
           relatedData = null;
         }
         result.setEntryData(getStructuralTypeValueMap(relatedData, entityType));
-        String mimeTypeKey =
-            entityType.getMapping() == null ? null : entityType.getMapping().getMimeType();
+
         EntityProviderWriteProperties inlineProperties =
             EntityProviderWriteProperties.serviceRoot(getContext().getPathInfo().getServiceRoot()).callbacks(
                 getCallbacks(relatedData, entityType)).expandSelectTree(context.getCurrentExpandSelectTreeNode())
-                .mediaResourceTypeKey(mimeTypeKey)
                 .build();
         result.setInlineProperties(inlineProperties);
         return result;
@@ -1059,13 +1048,10 @@ public class ListsProcessor extends ODataSingleProcessor {
     final Map<String, Object> values = getStructuralTypeValueMap(data, entityType);
 
     ODataContext context = getContext();
-    String mimeTypeKey =
-        entitySet.getEntityType().getMapping() == null ? null : entitySet.getEntityType().getMapping().getMimeType();
     EntityProviderWriteProperties writeProperties = EntityProviderWriteProperties
         .serviceRoot(context.getPathInfo().getServiceRoot())
         .expandSelectTree(expandSelectTree)
         .callbacks(getCallbacks(data, entityType))
-        .mediaResourceTypeKey(mimeTypeKey)
         .build();
 
     final int timingHandle = context.startRuntimeMeasurement("EntityProvider", "writeEntry");