You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ko...@apache.org on 2014/07/17 17:16:08 UTC

git commit: cleanup & new entry testcases

Repository: olingo-odata4-js
Updated Branches:
  refs/heads/master 97c0da688 -> d969f47cd


cleanup & new entry testcases


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/commit/d969f47c
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/tree/d969f47c
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/diff/d969f47c

Branch: refs/heads/master
Commit: d969f47cdbb50aa0d44a0bf5ab09e6f236a1d485
Parents: 97c0da6
Author: Sven Kobler <sv...@sap.com>
Authored: Thu Jul 17 17:15:45 2014 +0200
Committer: Sven Kobler <sv...@sap.com>
Committed: Thu Jul 17 17:15:45 2014 +0200

----------------------------------------------------------------------
 datajs/demo/tester.html           |  38 ++++++++++
 datajs/src/lib/cache.js           |  11 +--
 datajs/src/lib/cache/source.js    |  14 ----
 datajs/src/lib/datajs.js          |  71 -------------------
 datajs/src/lib/datajs/deferred.js |  12 +---
 datajs/src/lib/datajs/utils.js    |  11 ---
 datajs/src/lib/datajs/xml.js      |  11 ---
 datajs/src/lib/odata.js           |   7 --
 datajs/src/lib/odata/gml.js       |  10 ---
 datajs/src/lib/odata/handler.js   |   9 ---
 datajs/src/lib/odata/json.js      | 125 ++++++++++++---------------------
 datajs/src/lib/odata/metadata.js  |   9 ---
 datajs/src/lib/odata/net.js       |  11 +--
 datajs/src/lib/odata/utils.js     |   9 ---
 datajs/src/lib/odata/xml.js       |   7 --
 datajs/src/lib/store.js           |  10 +--
 datajs/src/lib/store/dom.js       |   9 ---
 datajs/src/lib/store/indexeddb.js |  11 ---
 datajs/src/lib/store/memory.js    |  13 ----
 19 files changed, 87 insertions(+), 311 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/demo/tester.html
----------------------------------------------------------------------
diff --git a/datajs/demo/tester.html b/datajs/demo/tester.html
index 0b0caa0..887ca84 100644
--- a/datajs/demo/tester.html
+++ b/datajs/demo/tester.html
@@ -37,6 +37,9 @@
         <button id="btnJSON_full_date_conversion">JSON odata.metadata=full (with date conversion)</button><br/>
         <button id="btnJSON_full_to_all">JSON odata.metadata=full; extendMetadataToLevel=all (with adding types for string, bool, numbers)</button><br/>
         <button id="btnJSON_full_to_all_date_conversion">JSON odata.metadata=full; extendMetadataToLevel=all (with adding types for string, bool, numbers) (with date conversion)</button><br/>
+        <button id="btnJSON_entry_minimal">Entry pure JSON odata.metadata=minimal</button><br/>
+        <button id="btnJSON_entry_minimal_to_full">Entry pure JSON odata.metadata=minimal; extendMetadataToLevel=full</button><br/>
+        <button id="btnJSON_entry_minimal_to_all">Entry pure JSON odata.metadata=minimal; extendMetadataToLevel=all</button><br/>
 
         <button id="btnMetaData">MetaData</button><br/>
         <button id="btnJSONwithMetaData">JSON with MetaData</button><br/>
@@ -101,6 +104,15 @@
                 };
                 datajs.V4.oData.read(requestUri, success, errorFunc);
             });
+
+            $('#btnJSON_entry_minimal').on("click", function(){
+                var requestUri = {
+                    requestUri : 'http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)',
+                    headers : { Accept : 'application/json;odata.metadata=minimal' }
+                };
+                datajs.V4.oData.read(requestUri, success, errorFunc);
+            });
+
             $('#btnJSON_full').on("click", function(){
                 var requestUri = {
                     requestUri : 'http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods',
@@ -182,6 +194,32 @@
                 getMetaData(metaDatasuccess);
             });
 
+            $('#btnJSON_entry_minimal_to_all').on("click", function(){
+                var metaDatasuccess = function(metadata){
+                    var requestUri = {
+                        requestUri : 'http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)',
+                        headers : { Accept : 'application/json;odata.metadata=minimal' },
+                        extendMetadataToLevel : 'all' ,
+                        recognizeDates : false
+                    };
+                    datajs.V4.oData.read(requestUri, success, errorFunc, null, null, metadata);
+                }
+                getMetaData(metaDatasuccess);
+            });
+
+            $('#btnJSON_entry_minimal_to_full').on("click", function(){
+                var metaDatasuccess = function(metadata){
+                    var requestUri = {
+                        requestUri : 'http://localhost:4002/tests/endpoints/FoodStoreDataServiceV4.svc/Foods(0)',
+                        headers : { Accept : 'application/json;odata.metadata=minimal' },
+                        extendMetadataToLevel : 'full' ,
+                        recognizeDates : false
+                    };
+                    datajs.V4.oData.read(requestUri, success, errorFunc, null, null, metadata);
+                }
+                getMetaData(metaDatasuccess);
+            });
+
             $('#btnJSONwithMetaData').on("click", function(){
                 var oHeaders = {
                     'Accept': 'text/html,application/xhtml+xml,application/xml,application/json;odata.metadata=full',

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/cache.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/cache.js b/datajs/src/lib/cache.js
index 5c74269..78536f2 100644
--- a/datajs/src/lib/cache.js
+++ b/datajs/src/lib/cache.js
@@ -17,11 +17,6 @@
  * under the License.
  */
 
-/* {
-    oldname:'cache.js',
-    updated:'20140514 12:59'
-}*/
-
 var utils = require('./datajs.js').utils;
 
 
@@ -45,8 +40,6 @@ var sliceJsonValueArray = utils.sliceJsonValueArray;
 var concatJsonValueArray = utils.concatJsonValueArray;
 var storeReq = require('./datajs.js').store;
 
-// CONTENT START
-
 var appendPage = function (operation, page) {
     /// <summary>Appends a page's data to the operation data.</summary>
     /// <param name="operation" type="Object">Operation with (i)ndex, (c)ount and (d)ata.</param>
@@ -1363,7 +1356,5 @@ exports.createDataCache = function (options) {
     return new DataCache(options);
 };
 
-// DATAJS INTERNAL START
-//window.datajs.estimateSize = estimateSize;
 exports.estimateSize = estimateSize;
-// DATAJS INTERNAL END
+

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/cache/source.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/cache/source.js b/datajs/src/lib/cache/source.js
index 579fa25..0f43ac8 100644
--- a/datajs/src/lib/cache/source.js
+++ b/datajs/src/lib/cache/source.js
@@ -17,21 +17,12 @@
  * under the License.
  */
  
-/* {
-    oldname:'cache_source.js',
-    updated:'20140514 12:59'
-}*/
-
-// cache-source.js
-
 var utils = require("./../datajs.js").utils;
 var odataRequest = require("./../odata.js");
 
 var parseInt10 = utils.parseInt10;
 var normalizeURICase = utils.normalizeURICase;
 
-// CONTENT START
-
 var appendQueryOption = function (uri, queryOption) {
     /// <summary>Appends the specified escaped query option to the specified URI.</summary>
     /// <param name="uri" type="String">URI to append option to.</param>
@@ -197,9 +188,4 @@ var ODataCacheSource = function (options) {
     return that;
 };
 
-// DATAJS INTERNAL START
 exports.ODataCacheSource = ODataCacheSource;
-//window.datajs.ODataCacheSource = ODataCacheSource;
-// DATAJS INTERNAL END
-
-// CONTENT END

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/datajs.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/datajs.js b/datajs/src/lib/datajs.js
index 7f13d09..88ed102 100644
--- a/datajs/src/lib/datajs.js
+++ b/datajs/src/lib/datajs.js
@@ -17,16 +17,6 @@
  * under the License.
  */
 
-/* {
-    oldname:'datajs.js',
-    updated:'20140514 12:59'
-}*/
-
-//var utils = require('./lib/utils.js');
-//var xml = require('./lib/xml.js');
-//var deferred = require('./lib/deferred.js');
-//var odata = require('./lib/odata.js');
-
 
 //expose all external usable functions via self.apiFunc = function
 exports.version = {
@@ -40,64 +30,3 @@ exports.deferred = require('./datajs/deferred.js');
 exports.utils = require('./datajs/utils.js');
 exports.xml = require('./datajs/xml.js');
 
-
-/*
-function extend(target) {
-    var sources = [].slice.call(arguments, 1);
-    sources.forEach(function (source) {
-        for (var prop in source) {
-            target[prop] = source[prop];
-        }
-    });
-    return target;
-}
-*/
-
-
-/*
-(function (window, undefined) {
-
-    var datajs = window.datajs || {};
-    var odata = window.OData || {};
-
-    // AMD support
-    if (typeof define === 'function' && define.amd) {
-        define('datajs', datajs);
-        define('OData', odata);
-    } else {
-        window.datajs = datajs;
-        window.OData = odata;
-    }
-
-    datajs.version = {
-        major: 1,
-        minor: 1,
-        build: 1
-    };
-
-    // INCLUDE: utils.js
-    // INCLUDE: xml.js
-
-    // INCLUDE: deferred.js
-
-    // INCLUDE: odata-utils.js
-    // INCLUDE: odata-net.js
-    // INCLUDE: odata-handler.js
-    // INCLUDE: odata-gml.js
-    // INCLUDE: odata-xml.js
-    // INCLUDE: odata-atom.js
-    // INCLUDE: odata-metadata.js
-    // INCLUDE: odata-json-light.js
-    // INCLUDE: odata-json.js
-    // INCLUDE: odata-batch.js
-    // INCLUDE: odata.js
-
-    // INCLUDE: store-dom.js
-    // INCLUDE: store-indexeddb.js
-    // INCLUDE: store-memory.js
-    // INCLUDE: store.js
-
-    // INCLUDE: cache-source.js
-    // INCLUDE: cache.js
-
-})(this);*/
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/datajs/deferred.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/datajs/deferred.js b/datajs/src/lib/datajs/deferred.js
index c20d08c..ab9bda3 100644
--- a/datajs/src/lib/datajs/deferred.js
+++ b/datajs/src/lib/datajs/deferred.js
@@ -17,13 +17,6 @@
  * under the License.
  */
  
-/* {
-    oldname:'deferred.js',
-    updated:'20140514 12:59'
-}*/
-
-// CONTENT START
-
 var forwardCall = function (thisValue, name, returnValue) {
     /// <summary>Creates a new function to forward a call.</summary>
     /// <param name="thisValue" type="Object">Value to use as the 'this' object.</param>
@@ -175,9 +168,6 @@ var createDeferred = function () {
     }
 };
 
-// DATAJS INTERNAL START
-//window.datajs.createDeferred = createDeferred;
-//window.datajs.DjsDeferred = DjsDeferred;
 exports.createDeferred = createDeferred;
 exports.DjsDeferred = DjsDeferred;
-// DATAJS INTERNAL END
+

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/datajs/utils.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/datajs/utils.js b/datajs/src/lib/datajs/utils.js
index 639a199..59c2969 100644
--- a/datajs/src/lib/datajs/utils.js
+++ b/datajs/src/lib/datajs/utils.js
@@ -17,11 +17,6 @@
  * under the License.
  */
  
-/* {
-    oldname:'utils.js',
-    updated:'20140514 12:59'
-}*/
-
 var activeXObject = function (progId) {
     /// <summary>Creates a new ActiveXObject from the given progId.</summary>
     /// <param name="progId" type="String" mayBeNull="false" optional="false">
@@ -527,9 +522,6 @@ var startsWith = function (input, search) {
     return input.indexOf(search) == 0;
 };
 
-
-
-// DATAJS INTERNAL START
 exports.activeXObject = activeXObject;
 exports.assigned = assigned;
 exports.contains = contains;
@@ -556,7 +548,4 @@ exports.sliceJsonValueArray = sliceJsonValueArray;
 exports.concatJsonValueArray = concatJsonValueArray;
 exports.startsWith = startsWith;
 exports.endsWith = endsWith;
-
-// DATAJS INTERNAL END
-
     
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/datajs/xml.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/datajs/xml.js b/datajs/src/lib/datajs/xml.js
index 68da35b..ca5c899 100644
--- a/datajs/src/lib/datajs/xml.js
+++ b/datajs/src/lib/datajs/xml.js
@@ -17,23 +17,14 @@
  * under the License.
  */
  
-/* {
-    oldname:'xml.js',
-    updated:'20140514 12:59'
-}*/
-
-
 var utils    = require('./utils.js');
 
 var activeXObject = utils.activeXObject;
 var djsassert = utils.djsassert;
 var extend = utils.extend;
 var isArray = utils.isArray;
-var isObject = utils.isObject;
 var normalizeURI = utils.normalizeURI;
 
-// CONTENT START
-
 // URI prefixes to generate smaller code.
 var http = "http://";
 var w3org = http + "www.w3.org/";               // http://www.w3.org/
@@ -789,7 +780,6 @@ var xmlSerializeNode = function (domNode) {
     throw { message: "XML serialization unsupported" };
 };
 
-// DATAJS INTERNAL START
 exports.http = http;
 exports.w3org = w3org;
 exports.xmlNS = xmlNS;
@@ -824,4 +814,3 @@ exports.xmlQualifiedName = xmlQualifiedName;
 exports.xmlSerialize = xmlSerialize;
 exports.xmlSerializeDescendants = xmlSerializeDescendants;
 exports.xmlSiblingElement = xmlSiblingElement;
-// DATAJS INTERNAL END

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/odata.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/odata.js b/datajs/src/lib/odata.js
index fa993e8..0da9108 100644
--- a/datajs/src/lib/odata.js
+++ b/datajs/src/lib/odata.js
@@ -17,13 +17,6 @@
  * under the License.
  */
 
-/* {
-    oldname:'odata.js',
-    updated:'20140514 12:59'
-}*/
-
-// odata.js
-
 // Imports
 var odataUtils    = exports.utils     = require('./odata/utils.js');
 var odataHandler  = exports.handler   = require('./odata/handler.js');

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/odata/gml.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/odata/gml.js b/datajs/src/lib/odata/gml.js
index 62e8468..b5ec698 100644
--- a/datajs/src/lib/odata/gml.js
+++ b/datajs/src/lib/odata/gml.js
@@ -17,18 +17,11 @@
  * under the License.
  */
 
-/* {
-    oldname:'odata-gml.js',
-    updated:'20140514 12:59'
-}*/
-
 
 var utils    = require('./../datajs.js').utils;
 var xml    = require('./../datajs.js').xml;
 var odataUtils    = require('./utils.js');
 
-
-
 var contains = utils.contains;
 var djsassert = utils.djsassert;
 var http = utils.http;
@@ -832,9 +825,6 @@ var gmlNewODataGeometryCollection = function (dom, value, isGeography) {
     return gmlNewODataMultiItem(dom, "MultiGeometry", "geometryMembers", value.geometries, gmlNewODataGeometryCollectionItem, isGeography);
 };
 
-// DATAJS INTERNAL START
 exports.gmlNewODataSpatialValue = gmlNewODataSpatialValue;
 exports.gmlReadODataSpatialValue = gmlReadODataSpatialValue;
 exports.gmlXmlNs = gmlXmlNs;
-// DATAJS INTERNAL END
-

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/odata/handler.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/odata/handler.js b/datajs/src/lib/odata/handler.js
index 8251198..58d0d81 100644
--- a/datajs/src/lib/odata/handler.js
+++ b/datajs/src/lib/odata/handler.js
@@ -17,12 +17,6 @@
  * under the License.
  */
 
-/* {
-    oldname:'odata-handler.js',
-    updated:'20140514 12:59'
-}*/
-
-
 var utils    = require('./../datajs.js').utils;
 var oDataUtils    = require('./utils.js');
 
@@ -34,7 +28,6 @@ var trimString = utils.trimString;
 
 var maxVersion = oDataUtils.maxVersion;
 
-// CONTENT START
 
 var MAX_DATA_SERVICE_VERSION = "4.0";
 
@@ -269,7 +262,6 @@ var textSerialize = function (handler, data /*, context */) {
 
 exports.textHandler = handler(textParse, textSerialize, "text/plain", MAX_DATA_SERVICE_VERSION);
 
-// DATAJS INTERNAL START
 exports.contentType = contentType;
 exports.contentTypeToString = contentTypeToString;
 exports.handler = handler;
@@ -279,4 +271,3 @@ exports.getRequestOrResponseHeader = getRequestOrResponseHeader;
 exports.getContentType = getContentType;
 exports.getDataServiceVersion = getDataServiceVersion;
 exports.MAX_DATA_SERVICE_VERSION = MAX_DATA_SERVICE_VERSION;
-// DATAJS INTERNAL END

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/odata/json.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/odata/json.js b/datajs/src/lib/odata/json.js
index 91f6d47..322078a 100644
--- a/datajs/src/lib/odata/json.js
+++ b/datajs/src/lib/odata/json.js
@@ -1,4 +1,4 @@
-/*
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -17,14 +17,9 @@
  * under the License.
  */
 
-/* {
-    oldname:'odata-json.js',
-    updated:'20140514 12:59'
-}*/
-
-var utils    = require('./../datajs.js').utils;
-var oDataUtils    = require('./utils.js');
-var oDataHandler    = require('./handler.js');
+var utils        = require('./../datajs.js').utils;
+var oDataUtils   = require('./utils.js');
+var oDataHandler = require('./handler.js');
 
 var odataNs = "odata";
 var odataAnnotationPrefix = odataNs + ".";
@@ -32,14 +27,12 @@ var contextUrlAnnotation = "@" + odataAnnotationPrefix + "context";
 
 var assigned = utils.assigned;
 var defined = utils.defined;
-var extend = utils.extend;
 var isArray = utils.isArray;
-var isDate = utils.isDate;
+//var isDate = utils.isDate;
 var isObject = utils.isObject;
-var normalizeURI = utils.normalizeURI;
+//var normalizeURI = utils.normalizeURI;
 var parseInt10 = utils.parseInt10;
 
-var contentType = oDataUtils.contentType;
 var formatDateTimeOffset = oDataUtils.formatDateTimeOffset;
 var formatDuration = oDataUtils.formatDuration;
 var formatJsonLight = oDataUtils.formatJsonLight;
@@ -57,12 +50,10 @@ var lookupProperty = oDataUtils.lookupProperty;
 var MAX_DATA_SERVICE_VERSION = oDataUtils.MAX_DATA_SERVICE_VERSION;
 var maxVersion = oDataUtils.maxVersion;
 var parseDateTime = oDataUtils.parseDateTime;
-var parseDuration = oDataUtils.parseDuration;
-var parseTimezone = oDataUtils.parseTimezone;
-var payloadTypeOf = oDataUtils.payloadTypeOf;
-var traverse = oDataUtils.traverse;
-
-// CONTENT START
+//var parseDuration = oDataUtils.parseDuration;
+//var parseTimezone = oDataUtils.parseTimezone;
+//var payloadTypeOf = oDataUtils.payloadTypeOf;
+//var traverse = oDataUtils.traverse;
 
 var PAYLOADTYPE_FEED = "f";
 var PAYLOADTYPE_ENTRY = "e";
@@ -204,9 +195,7 @@ var jsonParser = function (handler, text, context) {
             return extendMetadataFromPayload(json,context,recognizeDates);
         } else if (payloadFormat === 1) { //minmal
             if (!utils.isArray(model)) { // array was default for model in datajsV3 3.0 
-                //TODO use metadata in context to determine which properties need to be converted
-                // and extend the metadata
-                return extendMetadataFromContext(json,context,model,demandedFormat, recognizeDates);
+                return readPayloadMinimal(json, model, demandedFormat,recognizeDates);
             } else {
                 //error metadata in context required, TODO: throw a to be defined exception
             }
@@ -217,10 +206,6 @@ var jsonParser = function (handler, text, context) {
     }
 };
 
-var extendMetadataFromContext = function(json,context, model,demandedFormat,recognizeDates) {
-    return jsonLightReadPayload(json, model, demandedFormat,recognizeDates, false, context.contentType.properties['odata.metadata']);
-};
-
 var convertPrimitivetypesOnMetadataFull = function(data) {
     /// <summary>Converts some primitive data types in payload</summary>
     /// <param name="data">Date which will be extendet</param>
@@ -603,7 +588,7 @@ var parseContextUriFragment = function( fragments, model ) {
     return ret;
 };
 
-var jsonLightPayloadInfo = function (data, model) {
+var createPayloadInfo = function (data, model) {
     /// <summary>Infers the information describing the JSON light payload from its metadata annotation, structure, and data model.</summary>
     /// <param name="data" type="Object">Json light response payload object.</param>
     /// <param name="model" type="Object">Object describing an OData conceptual schema.</param>
@@ -631,44 +616,30 @@ var jsonLightPayloadInfo = function (data, model) {
     return parseContextUriFragment(fragment,model);
 };
 
-var jsonLightReadPayload = function (data, model, demandedFormat,recognizeDates, inferFeedAsComplexType, contentTypeOdata) {
-    /// <summary>Converts a JSON light response payload object into its library's internal representation.</summary>
-    /// <param name="data" type="Object">Json light response payload object.</param>
-    /// <param name="model" type="Object">Object describing an OData conceptual schema.</param>
-    /// <param name="recognizeDates" type="Boolean" optional="true">Flag indicating whether datetime literal strings should be converted to JavaScript Date objects.</param>
-    /// <param name="inferFeedAsComplexType" type="Boolean">True if a JSON light payload that looks like a feed should be reported as a complex type property instead.</param>
-    /// <param name="contentTypeOdata" type="string">Includes the type of json ( minimalmetadata, fullmetadata .. etc )</param>
+var readPayloadMinimal = function (data, model, demandedFormat,recognizeDates) {
+    /// <summary>Processe a JSON response payload with metadata-minimal</summary>
+    /// <param name="data" type="Object">Json response payload object</param>
+    /// <param name="model" type="Object">Object describing an OData conceptual schema</param>
+    /// <param name="demandedFormat" type="Number">2=extend to metedata-full, 3=extend to metadata-all</param>
+    /// <param name="recognizeDates" type="Boolean">Flag indicating whether datetime literal strings should be converted to JavaScript Date objects.</param>
     /// <returns type="Object">Object in the library's representation.</returns>
 
-    if (!isComplex(data)) {
-        return data;
-    }
-
-    contentTypeOdata = contentTypeOdata || "minimal";
     var baseURI = data[contextUrlAnnotation];
-    var payloadInfo = jsonLightPayloadInfo(data, model, inferFeedAsComplexType);
-    if (assigned(payloadInfo)) {
-        payloadInfo.contentTypeOdata = contentTypeOdata;
-    }
-    var typeName = null;
-    if (payloadInfo) {
-        delete data[contextUrlAnnotation];
-
-        typeName = payloadInfo.type;
-        switch (payloadInfo.detectedPayloadKind) {
-            case PAYLOADTYPE_FEED:
-                return jsonLightReadFeed(data, payloadInfo, baseURI, model, demandedFormat,recognizeDates);
-            case PAYLOADTYPE_COLLECTION:
-                return jsonLightReadTopCollectionProperty(data, typeName, baseURI, model, recognizeDates);
-            case PAYLOADTYPE_PRIMITIVE:
-                return jsonLightReadTopPrimitiveProperty(data, typeName, baseURI, recognizeDates);
-            case PAYLOADTYPE_SVCDOC:
-                return jsonLightReadSvcDocument(data, baseURI);
-            case PAYLOADTYPE_LINKS:
-                return jsonLightReadLinksDocument(data, baseURI);
-        }
-    }
-    return jsonLightReadObject(data, payloadInfo, baseURI, model, recognizeDates);
+    var payloadInfo = createPayloadInfo(data, model);
+
+    switch (payloadInfo.detectedPayloadKind) {
+        case PAYLOADTYPE_FEED:
+            return readPayloadMinimalFeed(data, model,payloadInfo, baseURI,  demandedFormat,recognizeDates);
+        case PAYLOADTYPE_COLLECTION:
+            return jsonLightReadTopCollectionProperty(data, payloadInfo.type, baseURI, model, recognizeDates);
+        case PAYLOADTYPE_PRIMITIVE:
+            return jsonLightReadTopPrimitiveProperty(data, payloadInfo.type, baseURI, recognizeDates);
+        case PAYLOADTYPE_SVCDOC:
+            return jsonLightReadSvcDocument(data, baseURI);
+        case PAYLOADTYPE_LINKS:
+            return jsonLightReadLinksDocument(data, baseURI);
+     }
+    return;
 };
 
 var jsonLightGetEntryKey = function (data, entityModel) {
@@ -700,16 +671,13 @@ var jsonLightGetEntryKey = function (data, entityModel) {
     return entityInstanceKey;
 };
 
-
-
-var jsonLightReadFeed = function (data, feedInfo, baseURI, model, demandedFormat,recognizeDates) {
+var readPayloadMinimalFeed = function (data, model,feedInfo, baseURI,  demandedFormat, recognizeDates) {
     var entries = [];
     var items = data.value;
     for (i = 0, len = items.length; i < len; i++) {
-        //TODO SK check if items[i] has @odata.type and use this type instead of  feedinfo
-        
-        if ( items[i]['@odata.type'] !== undefined) {
-            var typeName = items[i]['@odata.type'].substring(1);
+        var item = items[i];
+        if ( defined(item['@odata.type'])) { // in case of mixed feeds
+            var typeName = item['@odata.type'].substring(1);
             var type = lookupEntityType( typeName, model);
             var entryInfo = {
                 contentTypeOdata : feedInfo.contentTypeOdata,
@@ -719,9 +687,9 @@ var jsonLightReadFeed = function (data, feedInfo, baseURI, model, demandedFormat
                 typeName : typeName
             };
 
-            entry = jsonLightReadObject(items[i], entryInfo, baseURI, model, demandedFormat,recognizeDates);
+            entry = readPayloadMinimalObject(item, entryInfo, baseURI, model, demandedFormat,recognizeDates);
         } else {
-            entry = jsonLightReadObject(items[i], feedInfo, baseURI, model, demandedFormat,recognizeDates);
+            entry = readPayloadMinimalObject(item, feedInfo, baseURI, model, demandedFormat,recognizeDates);
         }
         
         entries.push(entry);
@@ -817,10 +785,10 @@ var checkProperties = function(data,objectInfoType,baseURI,model, demandedFormat
             if ( isArray(propertyValue)) {
                 data[name+'@odata.type'] = '#' + property.type;
                 for ( var i = 0; i < propertyValue.length; i++) {
-                    jsonLightReadComplexObject(propertyValue[0], property,baseURI,model,demandedFormat, recognizeDates);
+                    readPayloadMinimalComplexObject(propertyValue[0], property,baseURI,model,demandedFormat, recognizeDates);
                 }
             } else if (isObject(propertyValue) && (propertyValue !== null)) {
-                jsonLightReadComplexObject(propertyValue, property,baseURI,model,demandedFormat, recognizeDates);
+                readPayloadMinimalComplexObject(propertyValue, property,baseURI,model,demandedFormat, recognizeDates);
             } else {
                 if (demandedFormat === 3)  {
                     data[name+'@odata.type'] = '#' + property.type;
@@ -838,7 +806,7 @@ var checkProperties = function(data,objectInfoType,baseURI,model, demandedFormat
     }
 };
 
-var jsonLightReadComplexObject = function (data, property, baseURI, model, demandedFormat, recognizeDates) {
+var readPayloadMinimalComplexObject = function (data, property, baseURI, model, demandedFormat, recognizeDates) {
     var type = property.type;
     if (isCollectionType(property.type)) {
         type =property.type.substring(11,property.type.length-1);
@@ -854,13 +822,11 @@ var jsonLightReadComplexObject = function (data, property, baseURI, model, deman
     checkProperties(data,propertyType ,baseURI,model, demandedFormat, recognizeDates);
 };
 
-var jsonLightReadObject = function (data, objectInfo, baseURI, model, demandedFormat, recognizeDates) {
-    //var obj = {};
-
+var readPayloadMinimalObject = function (data, objectInfo, baseURI, model, demandedFormat, recognizeDates) {
     data['@odata.type'] = '#'+objectInfo.typeName;
 
     var keyType = objectInfo.type;
-    while (( keyType.key === undefined) && (keyType.baseType !== undefined)) {
+    while ((defined(keyType)) && ( keyType.key === undefined) && (keyType.baseType !== undefined)) {
         keyType = lookupEntityType(keyType.baseType, model);
     }
 
@@ -888,6 +854,3 @@ exports.jsonParser = jsonParser;
 exports.jsonSerializer = jsonSerializer;
 
 exports.parseJsonDateString = parseJsonDateString;
-exports.jsonLightPayloadInfo = jsonLightPayloadInfo;
-
-

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/odata/metadata.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/odata/metadata.js b/datajs/src/lib/odata/metadata.js
index 5ead579..a29db29 100644
--- a/datajs/src/lib/odata/metadata.js
+++ b/datajs/src/lib/odata/metadata.js
@@ -17,10 +17,6 @@
  * under the License.
  */
 
-/* {
-    oldname:'odata-metadata.js',
-    updated:'20140514 12:59'
-}*/
 
 var utils    = require('./../datajs.js').utils;
 var oDataXML    = require('./xml.js');
@@ -28,7 +24,6 @@ var oDSxml    = require('./../datajs.js').xml;
 var odataHandler    = require('./handler.js');
 
 // imports 
-
 var contains = utils.contains;
 var normalizeURI = utils.normalizeURI;
 var xmlAttributes = oDSxml.xmlAttributes;
@@ -50,8 +45,6 @@ var odataMetaXmlNs = oDataXML.odataMetaXmlNs;
 
 var xmlMediaType = "application/xml";
 
-// CONTENT START
-
 var schemaElement = function (attributes, elements, text, ns) {
     /// <summary>Creates an object that describes an element in an schema.</summary>
     /// <param name="attributes" type="Array">List containing the names of the attributes allowed for this element.</param>
@@ -515,10 +508,8 @@ var metadataParser = function (handler, text) {
 
 exports.metadataHandler = odataHandler.handler(metadataParser, null, xmlMediaType, MAX_DATA_SERVICE_VERSION);
 
-// DATAJS INTERNAL START
 exports.schema = schema;
 exports.scriptCase = scriptCase;
 exports.getChildSchema = getChildSchema;
 exports.parseConceptualModelElement = parseConceptualModelElement;
 exports.metadataParser = metadataParser;
-// DATAJS INTERNAL END

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/odata/net.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/odata/net.js b/datajs/src/lib/odata/net.js
index b2ebaef..759d56e 100644
--- a/datajs/src/lib/odata/net.js
+++ b/datajs/src/lib/odata/net.js
@@ -17,18 +17,12 @@
  * under the License.
  */
 
-/* {
-    oldname:'odata-net.js',
-    updated:'20140514 12:59'
-}*/
-
 var utils    = require('./../datajs.js').utils;
-    // Imports.
+// Imports.
 
 var defined = utils.defined;
 var delay = utils.delay;
 
-// CONTENT START
 var ticks = 0;
 
 var canUseJSONP = function (request) {
@@ -327,8 +321,7 @@ exports.defaultHttpClient = {
     }
 };
 
-// DATAJS INTERNAL START
 exports.canUseJSONP = canUseJSONP;
 exports.isAbsoluteUrl = isAbsoluteUrl;
 exports.isLocalUrl = isLocalUrl;
-// DATAJS INTERNAL END
+

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/odata/utils.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/odata/utils.js b/datajs/src/lib/odata/utils.js
index e99b2c1..f292621 100644
--- a/datajs/src/lib/odata/utils.js
+++ b/datajs/src/lib/odata/utils.js
@@ -17,11 +17,6 @@
  * under the License.
  */
 
-/* {
-    oldname:'odata-utils.js',
-    updated:'20140514 12:59'
-}*/
-
 var utils    = require('./../datajs.js').utils;
 
 // Imports
@@ -33,8 +28,6 @@ var isDate = utils.isDate;
 var isObject = utils.isObject;
 var parseInt10 = utils.parseInt10;
 
-// CONTENT START
-
 var dataItemTypeName = function (value, metadata) {
     /// <summary>Gets the type name of a data item value that belongs to a feed, an entry, a complex type property, or a collection property.</summary>
     /// <param name="value">Value of the data item from which the type name is going to be retrieved.</param>
@@ -1073,7 +1066,6 @@ var traverse = function (item, callback) {
     return callback("", traverseInternal(item, "", callback));
 };
 
-// DATAJS INTERNAL START
 exports.dataItemTypeName = dataItemTypeName;
 exports.EDM_BINARY = EDM_BINARY;
 exports.EDM_BOOLEAN = EDM_BOOLEAN;
@@ -1159,5 +1151,4 @@ exports.parseInt10 = parseInt10;
 exports.prepareRequest = prepareRequest;
 exports.removeNamespace = removeNamespace;
 exports.traverse = traverse;
-// DATAJS INTERNAL END
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/odata/xml.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/odata/xml.js b/datajs/src/lib/odata/xml.js
index dd9b9c2..b0f2694 100644
--- a/datajs/src/lib/odata/xml.js
+++ b/datajs/src/lib/odata/xml.js
@@ -17,11 +17,6 @@
  * under the License.
  */
 
-/* {
-    oldname:'odata-xml.js',
-    updated:'20140514 12:59'
-}*/
-
 var xml    = require('./../datajs.js').xml;
 var utils    = require('./../datajs.js').utils;
 var odata_utils    = require('./utils.js');
@@ -826,7 +821,6 @@ var xmlSerializer = function (handler, data, context) {
 
 exports.xmlHandler = odataHandler.handler(xmlParser, xmlSerializer, xmlMediaType, MAX_DATA_SERVICE_VERSION);
 
-// DATAJS INTERNAL START
 exports.adoDs = adoDs;
 exports.createAttributeExtension = createAttributeExtension;
 exports.createElementExtension = createElementExtension;
@@ -845,4 +839,3 @@ exports.xmlNewODataMetaElement = xmlNewODataMetaElement;
 exports.xmlNewODataDataElement = xmlNewODataDataElement;
 exports.xmlReadODataEdmPropertyValue = xmlReadODataEdmPropertyValue;
 exports.xmlReadODataProperty = xmlReadODataProperty;
-// DATAJS INTERNAL END

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/store.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/store.js b/datajs/src/lib/store.js
index f7f64a3..f943d3a 100644
--- a/datajs/src/lib/store.js
+++ b/datajs/src/lib/store.js
@@ -17,17 +17,10 @@
  * under the License.
  */
 
-/* {
-    oldname:'store.js',
-    updated:'20140514 12:59'
-}*/
-
 exports.DomStore       = DomStore       = require('./store/dom.js');
 exports.IndexedDBStore = IndexedDBStore = require('./store/indexeddb.js');
 exports.MemoryStore    = MemoryStore    = require('./store/memory.js');
 
-// CONTENT START
-
 var mechanisms = {
     indexeddb: IndexedDBStore,
     dom: DomStore,
@@ -58,7 +51,6 @@ exports.createStore = function (name, mechanism) {
     throw { message: "Failed to create store", name: name, mechanism: mechanism };
 };
 
-// DATAJS INTERNAL START
 exports.mechanisms = mechanisms;
-// DATAJS INTERNAL END
+
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/store/dom.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/store/dom.js b/datajs/src/lib/store/dom.js
index 60e4656..13b7e1e 100644
--- a/datajs/src/lib/store/dom.js
+++ b/datajs/src/lib/store/dom.js
@@ -17,19 +17,12 @@
  * under the License.
  */
 
-/* {
-    oldname:'store-dom.js',
-    updated:'20140514 12:59'
-}*/
-
 var utils = require('./../datajs.js').utils;
 
 // Imports.
 var throwErrorCallback = utils.throwErrorCallback;
 var delay = utils.delay;
 
-// CONTENT START
-
 var localStorage = null;
 
 var domStoreDateToJSON = function () {
@@ -319,6 +312,4 @@ DomStore.prototype.update = function (key, value, success, error) {
     }, error);
 };
 
-// DATAJS INTERNAL START
 module.exports = DomStore;
-// DATAJS INTERNAL END

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/store/indexeddb.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/store/indexeddb.js b/datajs/src/lib/store/indexeddb.js
index 0945d99..f71b62e 100644
--- a/datajs/src/lib/store/indexeddb.js
+++ b/datajs/src/lib/store/indexeddb.js
@@ -17,11 +17,6 @@
  * under the License.
  */
 
-/* {
-    oldname:'store-indexeddb.js',
-    updated:'20140514 12:59'
-}*/
-
 var utils = require('./../datajs.js').utils;
 
 
@@ -29,8 +24,6 @@ var utils = require('./../datajs.js').utils;
 var throwErrorCallback = utils.throwErrorCallback;
 var delay = utils.delay;
 
-// CONTENT START
-
 var indexedDB = window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.indexedDB;
 var IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange;
 var IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || {};
@@ -417,8 +410,4 @@ IndexedDBStore.prototype.update = function (key, value, success, error) {
     }, error);
 };
 
-// DATAJS INTERNAL START
 module.exports = IndexedDBStore;
-// DATAJS INTERNAL END
-
-// CONTENT END

http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/d969f47c/datajs/src/lib/store/memory.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/store/memory.js b/datajs/src/lib/store/memory.js
index 7c31eb3..464cdec 100644
--- a/datajs/src/lib/store/memory.js
+++ b/datajs/src/lib/store/memory.js
@@ -17,13 +17,6 @@
  * under the License.
  */
 
-/* {
-    oldname:'store-memory.js',
-    updated:'20140514 12:59'
-}*/
-
-
-
 var utils = require('./../datajs.js').utils;
 
 
@@ -31,8 +24,6 @@ var utils = require('./../datajs.js').utils;
 var throwErrorCallback = utils.throwErrorCallback;
 var delay = utils.delay;
 
-// CONTENT START
-
 var MemoryStore = function (name) {
     /// <summary>Constructor for store objects that use a sorted array as the underlying mechanism.</summary>
     /// <param name="name" type="String">Store name.</param>
@@ -233,8 +224,4 @@ MemoryStore.prototype.defaultError = throwErrorCallback;
 /// <summary>Identifies the underlying mechanism used by the store.</summary>
 MemoryStore.prototype.mechanism = "memory";
 
-// DATAJS INTERNAL START
 module.exports = MemoryStore;
-// DATAJS INTERNAL END
-
-    // CONTENT END